/* Delk Consulting — site styles. Version B system, promoted to the whole site. */
/* Extracted from b/index.html so every page shares one stylesheet. */

:root{
  --paper:#FBFBFA; --white:#FFFFFF; --ink:#0F1216; --ink-2:#565D66; --ink-3:#8A9098;
  --navy:#022C61; --navy-deep:#02224B; --line:#E2E3DF; --line-2:#CFD1CB;
  --sans:"Inter Tight",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --measure:64ch; --wrap:1240px; --gutter:clamp(1.25rem,5vw,4.5rem);
  /* one type scale for the whole page: every block reads from these */
  --t-body:clamp(1.125rem,1.05vw + .78rem,1.3rem);     /* 18 to 20.8px */
  --t-lead:clamp(1.25rem,1.1vw + .9rem,1.5rem);        /* 20 to 24px, hero sub and intro */
  --t-h1:clamp(2.25rem,4.4vw,4rem);                    /* 36 to 64px */
  --t-h2:clamp(2rem,3.2vw,2.9rem);                     /* 32 to 46px, section heads */
  --t-h3:clamp(1.45rem,1.7vw,1.85rem);                 /* 23 to 30px, item heads */
  --t-label:.8rem;                                     /* mono eyebrows and roles */
  --t-small:.95rem;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:var(--t-body);line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-0.022em;line-height:1.08;text-wrap:balance}
p{margin:0}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.eyebrow{font-family:var(--mono);font-size:var(--t-label);font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;color:var(--navy)}

.review{position:sticky;top:0;z-index:60;background:#101318;color:#C9CDD4;
  font-family:var(--mono);font-size:.68rem;letter-spacing:.05em}
.review-in{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:center;
  max-width:var(--wrap);margin-inline:auto;padding:.55rem var(--gutter)}
.review b{color:#fff;font-weight:600}
.review a{color:#8FB3E6;text-decoration:none;border-bottom:1px solid transparent}
.review a:hover{border-bottom-color:#8FB3E6}
.review .sp{flex:1}

.head{padding-block:clamp(1.5rem,3vw,2.5rem)}
.head-in{display:flex;align-items:center;gap:1.5rem}
.head img{width:clamp(84px,7vw,112px)}
.head .place{margin-left:auto;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-3)}

/* hero */
.hero{padding-block:clamp(2.75rem,6vw,5rem) clamp(2rem,4vw,3rem)}
.hero h1{font-size:var(--t-h1);font-weight:600;line-height:1.08;max-width:27ch}
.hero h1 span{color:var(--ink-3)}
.hero .sub{margin-top:1.75rem;font-size:var(--t-lead);line-height:1.5;color:var(--ink-2);
  max-width:52ch}
.hero .cta{margin-top:2.25rem;display:flex;flex-wrap:wrap;gap:.9rem}

/* figures */
.figs{border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.figs-in{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:860px){.figs-in{grid-template-columns:repeat(2,1fr)}}
@media (max-width:460px){.figs-in{grid-template-columns:1fr}}
.fig{padding:clamp(1.5rem,3vw,2.25rem) clamp(1rem,2vw,1.75rem);border-left:1px solid var(--line)}
.fig:first-child{border-left:0;padding-left:0}
@media (max-width:860px){.fig:nth-child(3){border-left:0;padding-left:0}}
@media (max-width:460px){.fig{border-left:0;padding-left:0;border-top:1px solid var(--line)}
  .fig:first-child{border-top:0}}
.fig b{display:block;font-size:clamp(1.9rem,3.2vw,2.9rem);font-weight:600;line-height:1;
  letter-spacing:-0.03em;font-variant-numeric:tabular-nums;color:var(--navy)}
.fig small{display:block;margin-top:.7rem;font-family:var(--mono);font-size:var(--t-label);
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);line-height:1.6}

section{padding-block:clamp(3rem,6vw,5rem)}
.sechead{display:flex;flex-direction:column;gap:.9rem;margin-bottom:clamp(1.75rem,3.5vw,2.75rem)}
.sechead h2{font-size:var(--t-h2);max-width:26ch}
.prose{display:flex;flex-direction:column;gap:1.1rem;max-width:var(--measure);color:var(--ink-2)}
.prose.lead{font-size:var(--t-lead);line-height:1.5;color:var(--ink)}
.prose a{color:var(--navy);text-decoration:underline;text-underline-offset:.18em}

/* how we work: two models */
.models{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,3vw,3rem)}
@media (max-width:820px){.models{grid-template-columns:1fr}}
.model{border-top:2px solid var(--navy);padding-top:1.25rem}
.model h3{font-size:var(--t-h3);margin-bottom:.35rem}
.model .kind{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:.9rem}
.model p{color:var(--ink-2);max-width:46ch}

/* people */
.principals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,2.5rem)}
@media (max-width:860px){.principals{grid-template-columns:1fr}}
.pr{display:flex;flex-direction:column;gap:1rem}
.pr img{width:88px}
.pr h3{font-size:var(--t-h3)}
.pr .role{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-3);margin-top:.3rem}

/* clients */
.logos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1.5rem,3vw,2.75rem);align-items:center}
@media (max-width:480px){.logos{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* class names must match those emitted by /assets/site.js */
.logos .client{display:grid;place-items:center;min-height:96px;min-width:0}
.logos .client img{max-height:75px;max-width:min(100%,200px);width:auto;object-fit:contain;
  filter:grayscale(1) brightness(.4);opacity:.8}
.logos .client .stand-in{font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-3);text-align:center;line-height:1.5;overflow-wrap:anywhere}

/* annual planning strip */
.ap{border-top:1px solid var(--line);padding-block:clamp(2rem,4vw,2.75rem)}
.ap-in{display:flex;align-items:center;justify-content:space-between;
  gap:clamp(1.25rem,4vw,3rem);flex-wrap:wrap}
.ap-txt{max-width:60ch}
.ap-txt h2{font-size:var(--t-h3);margin:.8rem 0 .6rem}
.ap-txt p{color:var(--ink-2);margin:0}
.ap .btn{flex:none}
@media (max-width:640px){.ap .btn{width:100%;text-align:center}}

/* closing cta */
.close-band{background:var(--navy);color:#fff}
.close-in{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(1.5rem,4vw,4rem);
  align-items:end;padding-block:clamp(3rem,6vw,5rem)}
@media (max-width:820px){.close-in{grid-template-columns:1fr;align-items:start}}
.close-in h2{font-size:var(--t-h2);max-width:24ch}
.close-in p{margin-top:1.1rem;color:#B9C9E0;max-width:48ch}
.close-in .eyebrow{color:#8FB3E6}

.btn{display:inline-block;padding:.9rem 1.9rem;background:var(--navy);color:var(--paper);
  border:1px solid var(--navy);font-family:var(--mono);font-size:.78rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--navy-deep)}
.btn.inv{background:#fff;color:var(--navy);border-color:#fff}
.btn.inv:hover{background:#E8EEF7}
.btn.ghost{background:transparent;color:var(--navy)}
.btn.ghost:hover{background:rgba(2,44,97,.06)}

/* dialog */
#formPanel{background:var(--white);width:min(640px,100%);padding:clamp(1.5rem,3vw,2.5rem);
  margin-inline:auto;position:relative;border:1px solid var(--line-2)}
dialog{border:0;padding:0;background:transparent;width:100%;
  max-width:min(640px,calc(100vw - 2rem));max-height:calc(100vh - 3rem)}
dialog::backdrop{background:rgba(8,10,14,.66)}
dialog #formPanel{max-height:calc(100vh - 3rem);overflow-y:auto}
.p-title{font-size:var(--t-h3);font-weight:600;color:var(--ink);
  margin-bottom:1.4rem;padding-right:2rem}
.p-close{position:absolute;top:1.1rem;right:1.1rem;background:none;border:0;cursor:pointer;
  color:var(--ink-2);font-size:1.3rem;line-height:1;padding:.3rem .45rem}
form{display:flex;flex-direction:column;gap:1.15rem}
.fg{display:flex;flex-direction:column;gap:.45rem}
.gl{font-family:var(--mono);font-size:var(--t-label);font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--navy)}
.gl .rq{font-weight:400;opacity:.65;margin-left:.4em;text-transform:none;letter-spacing:0}
.fh{font-size:var(--t-small);color:var(--ink-3);line-height:1.45}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
@media (max-width:520px){.pair{grid-template-columns:1fr}}
form label{display:grid;gap:.3rem;font-size:.85rem;color:var(--ink-3)}
form input[type=text],form input[type=email],form input[type=tel],form textarea{
  font-family:var(--sans);font-size:1.0625rem;color:var(--ink);background:#FAFAF8;
  border:1px solid var(--line-2);padding:.75rem .8rem;width:100%;border-radius:0}
form input:focus,form textarea:focus{outline:2px solid var(--navy);outline-offset:1px;
  border-color:var(--navy)}
form textarea{min-height:130px;resize:vertical}
.choices{display:flex;flex-direction:column;gap:.55rem;margin-top:.2rem}
#formPanel label.choice{display:flex;align-items:center;gap:.65rem;font-size:1rem;
  color:var(--ink);cursor:pointer}
#formPanel label.choice input{width:1rem;height:1rem;accent-color:var(--navy);margin:0;flex:none}
#formPanel .btn{align-self:flex-start;margin-top:.3rem}
.msg{font-size:1rem;line-height:1.6;border-left:3px solid var(--navy);padding-left:.85rem}
.msg[hidden]{display:none}
.msg.err{border-left-color:#9E2B2B;color:#9E2B2B}

footer{border-top:1px solid var(--line);padding-block:2.5rem}
.foot{display:flex;flex-wrap:wrap;gap:1rem 2.5rem;align-items:center;
  font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-3)}
.foot img{width:80px}
.foot .sp{flex:1}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---- current-content layout ---- */
/* Initiatives: four items on the navy band, as on the live site */
.band{background:var(--navy);color:#EAEFF7}
.band .eyebrow{color:#8FB3E6}
.band h2{color:#fff}
.items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
@media (max-width:760px){.items{grid-template-columns:minmax(0,1fr)}}
.item{padding:clamp(1.65rem,3vw,2.4rem) clamp(1.65rem,3vw,2.65rem);
  border-top:1px solid #1D4275;border-left:1px solid #1D4275;min-width:0}
.item:nth-child(-n+2){border-top:0}
.item:nth-child(odd){border-left:0;padding-left:0}
@media (max-width:760px){.item{border-left:0;padding-left:0}
  .item:nth-child(2){border-top:1px solid #1D4275}}
.item h3{font-size:var(--t-h3);margin-bottom:.8rem;color:#fff}
.item p{color:#CBD9EC;max-width:52ch}

/* Services: two rows, live copy, thin rules */
.svc{display:flex;flex-direction:column}
.svc-row{padding-block:clamp(1.65rem,3vw,2.4rem);border-top:1px solid var(--line)}
.svc-row:first-child{border-top:0;padding-top:0}
.svc-row h3{font-size:var(--t-h3);margin-bottom:.8rem}
.svc-row p{color:var(--ink-2);max-width:var(--measure)}

/* Bios: live homepage blurbs */
.bios{display:flex;flex-direction:column}
.bio{display:grid;grid-template-columns:clamp(96px,8vw,120px) minmax(0,1fr);
  gap:clamp(1.1rem,2.5vw,2.25rem);align-items:start;
  padding-block:clamp(1.4rem,2.6vw,2rem);border-top:1px solid var(--line)}
.bio:first-child{border-top:0;padding-top:0}
@media (max-width:600px){.bio{grid-template-columns:minmax(0,1fr)}
  .bio img{width:clamp(88px,26vw,104px)}}
.bio h3{font-size:var(--t-h3);margin-bottom:.35rem}
.bio .role{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:.9rem}
.bio p{color:var(--ink-2);max-width:var(--measure)}
.bio p a{color:var(--navy);text-decoration:underline;text-underline-offset:.18em}

/* about page: reuses .bios/.bio from the homepage, with headings a level up */
.page-head{padding-block:clamp(2.5rem,5vw,4rem) clamp(1.25rem,2.5vw,2rem)}
.page-head h1{font-size:var(--t-h2);max-width:24ch}
.page-head .eyebrow{margin-bottom:.9rem}
.bio h2{font-size:var(--t-h3);margin-bottom:.35rem}
.bio .prose{margin-top:.2rem}
.bio-stand{display:grid;place-items:center;aspect-ratio:1;background:var(--navy);color:#fff;
  font-family:var(--mono);font-size:1.15rem;letter-spacing:.06em}
.head a{display:inline-flex;align-items:center}
.back{display:inline-block;margin-top:.5rem;color:var(--navy);
  text-decoration:underline;text-underline-offset:.18em}
