/* ==========================================================================
   pages.css — components used by the interior pages only.
   Same register as site.css: thin rules, Saira labels, brass as the accent,
   fact density treated as the aesthetic. Everything here survives print.
   ========================================================================== */

/* ---------- section heading ---------- */
.sh{max-width:68ch;margin-bottom:clamp(36px,4.5vw,64px)}
.sh .eb{display:block;margin-bottom:var(--s4)}
.sh h2{margin-bottom:var(--s5)}

/* ---------- small print note ---------- */
.note{
  margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid var(--line);
  font-size:var(--t-sm);color:var(--ink-3);max-width:76ch;
}
.dark .note{border-color:rgba(255,255,255,.16);color:rgba(255,255,255,.6)}

/* ---------- KPI band ---------- */
.band{padding-block:0}
.kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line)}
@media(max-width:820px){.kpi{grid-template-columns:1fr}}
.kpi li{background:var(--shade);padding:clamp(26px,3vw,40px)}
.kpi b{display:block;font-family:var(--f-d);font-weight:700;font-size:var(--t-lg);
  text-transform:uppercase;letter-spacing:.01em;color:var(--brass-l);margin-bottom:10px}
.kpi span{display:block;font-size:var(--t-sm);color:var(--ink-2);max-width:34ch}

/* ---------- how-to-buy: the five paths ---------- */
.paths{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.path{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,3vw,48px);
  background:var(--white);padding:clamp(30px,3.6vw,54px) clamp(24px,3vw,52px)}
@media(max-width:700px){.path{grid-template-columns:1fr;gap:var(--s4)}}
.path__n{font-family:var(--f-d);font-weight:700;font-size:var(--t-lg);line-height:1;
  color:var(--line-2);letter-spacing:.02em}
.path__c h3{margin-bottom:8px}
.path__ceil{font-family:var(--f-d);font-weight:700;font-size:var(--t-md);
  text-transform:uppercase;letter-spacing:.04em;color:var(--brass-l);margin-bottom:var(--s5)}
.path__c > p{margin-bottom:var(--s5);max-width:68ch}
.path__d{display:grid;grid-template-columns:repeat(3,1fr);gap:0 var(--s6);
  border-top:1px solid var(--line);padding-top:var(--s5)}
@media(max-width:860px){.path__d{grid-template-columns:1fr;gap:var(--s4)}}
.path__d dt{font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}
.path__d dd{margin:0;font-size:var(--t-sm);color:var(--ink-2)}

/* ---------- vehicles held / not held ---------- */
.veh{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.veh__r{display:grid;grid-template-columns:1.1fr .6fr 2fr;gap:var(--s5);
  background:var(--white);padding:var(--s5) var(--s6);align-items:baseline}
@media(max-width:820px){.veh__r{grid-template-columns:1fr;gap:var(--s2)}.veh__hd{display:none}}
.veh__hd{background:var(--shade-2)}
.veh__hd span{font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3)}
.veh__n{font-family:var(--f-d);font-weight:600;font-size:var(--t-b);text-transform:uppercase;
  letter-spacing:.02em;color:var(--ink)}
.veh__s{font-family:var(--f-d);font-weight:700;font-size:var(--t-xs);letter-spacing:.12em;
  text-transform:uppercase}
.veh__s--y{color:var(--blue-l)}
.veh__s--n{color:var(--ink-3)}
.veh__d{font-size:var(--t-sm);color:var(--ink-2);max-width:54ch}

/* ---------- what a source selection turns on ---------- */
.evs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line)}
@media(max-width:940px){.evs{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.evs{grid-template-columns:1fr}}
.ev{background:var(--shade);padding:clamp(26px,3vw,42px)}
.ev h3{margin-bottom:var(--s3)}
.ev p{font-size:var(--t-sm);max-width:40ch}
.ev__v{margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid var(--line);
  font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);letter-spacing:.08em;
  text-transform:uppercase;color:var(--brass-l)}
.ev__v .tbd{font-style:normal;color:var(--ink-3)}

/* ---------- deliberately empty section ---------- */
.empty{border:1px dashed var(--line-2);padding:clamp(28px,3.4vw,48px);max-width:78ch}
.empty .tbd{display:block;font-family:var(--f-d);font-weight:600;font-size:var(--t-md);
  text-transform:uppercase;letter-spacing:.06em;color:var(--brass);font-style:normal;
  margin-bottom:var(--s4)}
.empty p + p{margin-top:var(--s4)}

/* ---------- prose ---------- */
.prose{max-width:72ch}
.prose p + p{margin-top:var(--s5)}

/* ---------- substitutions list (about) ---------- */
.subs{margin-top:clamp(40px,5vw,72px);border-top:1px solid var(--line);padding-top:var(--s7)}
.subs h3{margin-bottom:var(--s5)}
.subs__l{counter-reset:s;max-width:80ch}
.subs__l li{counter-increment:s;position:relative;padding:16px 0 16px 46px;
  border-bottom:1px solid var(--line);font-size:var(--t-sm)}
.subs__l li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:16px;
  font-family:var(--f-d);font-weight:700;font-size:var(--t-xs);letter-spacing:.08em;
  color:var(--brass)}
.subs__l b{color:var(--ink);font-weight:600}

/* ---------- people & past performance ---------- */
.person,.pp{border:1px solid var(--line);padding:clamp(24px,3vw,40px);background:var(--shade)}
.person + .person,.pp + .pp{margin-top:1px}
.person__role{font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);letter-spacing:.12em;
  text-transform:uppercase;color:var(--brass);margin:6px 0 var(--s4)}
.person__certs{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--s4)}
.person__certs li{border:1px solid var(--line-2);padding:6px 12px;font-size:var(--t-xs)}
.pp__d > div{display:grid;grid-template-columns:13ch 1fr;gap:4px var(--s5);padding:10px 0;
  border-bottom:1px solid var(--line)}
@media(max-width:480px){.pp__d > div{grid-template-columns:1fr}}
.pp__d dt{font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.pp__d dd{margin:0;font-size:var(--t-sm);color:var(--ink-2)}

/* ==========================================================================
   THE DATA BLOCK — the highest-value element on the site.
   Selectable text, never an image. Prints clean into a market research file.
   ========================================================================== */
.db{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(28px,4vw,72px);
  border-top:1px solid var(--line)}
@media(max-width:760px){.db{grid-template-columns:1fr}}
.db > div{display:grid;grid-template-columns:19ch 1fr;align-items:baseline;gap:4px var(--s4);
  padding:14px 0;border-bottom:1px solid var(--line)}
@media(max-width:560px){.db > div{grid-template-columns:1fr}}
.db dt{font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);
  letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3)}
.db dd{margin:0;font-size:var(--t-sm);font-weight:500;color:var(--ink);
  -webkit-user-select:all;user-select:all}
.db dd .tbd{-webkit-user-select:auto;user-select:auto}

.db__poc{display:flex;flex-wrap:wrap;gap:var(--s6);align-items:flex-end;
  justify-content:space-between;margin-top:var(--s7);padding-top:var(--s6);
  border-top:2px solid var(--brass)}
.db__poc h3{margin-bottom:var(--s3)}
.db__who{font-weight:600;color:var(--ink)}
.db__act{display:flex;flex-wrap:wrap;gap:var(--s3)}
@media(max-width:560px){.db__act{width:100%}.db__act .btn{width:100%}}

/* ---------- two-column page layout (contact) ---------- */
.cols{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,5vw,88px);align-items:start}
@media(max-width:940px){.cols{grid-template-columns:1fr}}
.cols__side .eb{display:block;margin-bottom:var(--s4)}
.cols__side h2{margin-bottom:var(--s5)}
.cols__side p{margin-bottom:var(--s6)}
.side__d{border-top:1px solid var(--line)}
.side__d > div{display:grid;grid-template-columns:14ch 1fr;gap:4px var(--s4);padding:12px 0;
  border-bottom:1px solid var(--line)}
@media(max-width:480px){.side__d > div{grid-template-columns:1fr}}
.side__d dt{font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);
  letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3)}
.side__d dd{margin:0;font-size:var(--t-sm);color:var(--ink)}

/* ---------- forms ---------- */
.form{border:1px solid var(--line);background:var(--shade);padding:clamp(26px,3.2vw,48px)}
.form__g{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5)}
@media(max-width:620px){.form__g{grid-template-columns:1fr}}
.f{display:block;margin-bottom:var(--s5)}
.form__g .f{margin-bottom:0}
.form__g + .form__g,.form__g + .f{margin-top:var(--s5)}
.f > span{display:block;font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);
  letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);margin-bottom:9px}
.f i{font-style:normal;color:var(--brass)}
.f input,.f select,.f textarea{
  width:100%;background:var(--white);color:var(--ink);
  border:1px solid var(--line-2);padding:13px 15px;font-size:var(--t-sm);
  min-height:50px;transition:border-color .2s var(--e);
}
.f textarea{min-height:auto;resize:vertical;line-height:1.55}
.f input:hover,.f select:hover,.f textarea:hover{border-color:var(--ink-3)}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--blue-l);outline:none;
  box-shadow:0 0 0 1px var(--blue-l)}
.f input[type="file"]{padding:11px 14px;color:var(--ink-2)}
.f input::placeholder,.f textarea::placeholder{color:var(--ink-3)}
.f select{appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),
                   linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;
  background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:44px}
.form .btn{margin-top:var(--s5)}
.form__note{margin-top:var(--s4);font-size:var(--t-xs);color:var(--ink-3)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ==========================================================================
   CAPABILITY STATEMENT — laid out to print to a single page.
   ========================================================================== */
.cs{padding-block:clamp(40px,5vw,72px)}
.cs__bar{display:flex;flex-wrap:wrap;gap:var(--s5);align-items:center;
  justify-content:space-between;border:1px solid var(--line);background:var(--shade);
  padding:var(--s5) var(--s6);margin-bottom:var(--s7)}
.cs__bar p{font-size:var(--t-sm);color:var(--ink-2);max-width:62ch}
.cs__doc{border:1px solid var(--line);padding:clamp(28px,4vw,56px);background:var(--white);
  max-width:900px;margin-inline:auto}
.cs__hd{display:flex;flex-wrap:wrap;gap:var(--s5);align-items:flex-end;
  justify-content:space-between;padding-bottom:var(--s5);border-bottom:2px solid var(--brass)}
.cs__wm{height:38px;width:auto}
.cs__id{text-align:right;font-size:var(--t-xs);color:var(--ink-2);line-height:1.8}
.cs__id b{color:var(--ink)}
@media(max-width:640px){.cs__id{text-align:left}}
.cs__s{margin-top:var(--s6)}
.cs__s h2{font-family:var(--f-d);font-weight:700;font-size:var(--t-xs);letter-spacing:.14em;
  text-transform:uppercase;color:var(--brass);margin-bottom:var(--s4)}
.cs__s p{font-size:var(--t-sm);max-width:none}
.cs__comp{display:grid;grid-template-columns:1fr 1fr;gap:10px var(--s6)}
@media(max-width:640px){.cs__comp{grid-template-columns:1fr}}
.cs__comp li{font-size:var(--t-sm);padding:8px 0;border-bottom:1px solid var(--line)}
.cs__comp b{display:block;font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.cs__comp span{color:var(--ink-3);font-size:var(--t-xs)}
.cs__diff li{font-size:var(--t-sm);padding:9px 0 9px 18px;position:relative;
  border-bottom:1px solid var(--line)}
.cs__diff li::before{content:"";position:absolute;left:0;top:17px;width:7px;height:1px;
  background:var(--brass)}
.cs__data{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s6)}
@media(max-width:640px){.cs__data{grid-template-columns:1fr}}
.cs__data > div{display:flex;gap:var(--s4);padding:7px 0;border-bottom:1px solid var(--line)}
.cs__data dt{flex:none;min-width:14ch;font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);
  letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
.cs__data dd{margin:0;font-size:var(--t-xs);color:var(--ink);-webkit-user-select:all;user-select:all}
.cs__ft{margin-top:var(--s6);padding-top:var(--s4);border-top:1px solid var(--line);
  font-size:var(--t-xs);color:var(--ink-2)}

/* ==========================================================================
   PRINT — every page has to survive a black-and-white market research file.
   ========================================================================== */
@media print{
  .ph,.band,.sec,.cs{padding-block:14pt}
  .ph{background:none;border-color:#999}
  .kpi li,.ev,.spec,.path,.veh__r,.form,.cs__doc,.empty,.person,.pp{background:#fff!important}
  .paths,.veh,.specs,.evs,.kpi{background:#fff;border-color:#999}
  .db dt,.db dd,.cs__data dd{color:#000}
  .db,.db > div,.spec__codes > div,.side__d > div,.cs__data > div,.cs__comp li,
  .cs__diff li,.subs__l li,.pp__d > div{border-color:#bbb}
  .db__poc,.cs__hd{border-top-color:#000;border-bottom-color:#000}
  .eb,.path__ceil,.ev__v,.cs__s h2,.spec__codes dt,.empty .tbd{color:#000}
  .cs__bar,.close,.form,.db__act{display:none!important}
  .cs__doc{border:0;padding:0;max-width:none}
  a[href^="http"]::after,a[href^="/"]::after{content:""}
}

/* ==========================================================================
   PAGE HEADER — two columns. The single-column version left half the page
   empty beside the heading, which read as unfinished rather than spare.
   ========================================================================== */
.ph{position:relative;overflow:hidden;padding-block:clamp(56px,7vw,110px) clamp(64px,8vw,128px);
  border-bottom:1px solid var(--line);
  background:radial-gradient(130% 150% at 85% -20%,rgba(20,38,26,.9) 0%,rgba(20,38,26,0) 62%),var(--white)}
.ph__in{position:relative;z-index:2;display:grid;grid-template-columns:1.25fr 1fr;
  gap:clamp(32px,5vw,96px);align-items:start}
@media(max-width:940px){.ph__in{grid-template-columns:1fr;gap:var(--s7)}}
/* the right column has no eyebrow above it, so nudge it down to sit level with the h1 */
@media(min-width:941px){.ph__s{padding-top:calc(var(--t-xs) + var(--s5) + 2px)}}
.ph .eb{display:block;margin-bottom:var(--s5);color:var(--brass)}
.ph h1{max-width:17ch}
.ph__t{position:relative}
.ph__art{position:absolute;right:0;bottom:0;width:clamp(42px,5vw,64px);color:var(--blue);
  opacity:.5;pointer-events:none}
@media(max-width:940px){.ph__art{display:none}}
.ph__s .lede{max-width:46ch}
.ph__m{margin-top:var(--s6);border-top:1px solid var(--line)}
.ph__m > div{display:grid;grid-template-columns:15ch 1fr;gap:var(--s4);padding:11px 0;
  border-bottom:1px solid var(--line)}
@media(max-width:480px){.ph__m > div{grid-template-columns:1fr;gap:2px}}
.ph__m dt{font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);letter-spacing:.11em;
  text-transform:uppercase;color:var(--ink-3)}
.ph__m dd{margin:0;font-size:var(--t-sm);color:var(--ink)}
.ph__topo{position:absolute;left:0;right:0;bottom:-1px;height:clamp(70px,9vw,118px);
  color:var(--brass);opacity:.17;pointer-events:none;z-index:1}
.ph__topo svg{width:100%;height:100%}
.ph--tall{padding-block:clamp(80px,12vw,180px)}

/* section heading, split so the lede uses the right half */
.sh--split{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(24px,4vw,88px);
  align-items:end;max-width:none}
@media(max-width:940px){.sh--split{grid-template-columns:1fr;gap:var(--s5);align-items:start}}
.sh--split h2{margin-bottom:0}
.sh--split .lede{max-width:48ch}

/* ==========================================================================
   CAPABILITY CARDS — icon, name, code chips. Replaces the old lopsided
   two-column spec card.
   ========================================================================== */
.caps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line)}
@media(max-width:1080px){.caps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.caps{grid-template-columns:1fr}}
.cap{background:var(--white);padding:clamp(26px,2.6vw,38px);display:flex;flex-direction:column;
  transition:background-color .3s var(--e)}
.cap:hover{background:var(--shade-2)}
.cap__hd{display:flex;gap:var(--s4);align-items:flex-start;margin-bottom:var(--s5)}
.cap__ic{flex:none;width:46px;height:46px;color:var(--brass-l);display:block}
.cap__ic svg{width:100%;height:100%}
.cap__hd h3{margin-bottom:4px}
.cap__n{font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3)}
.cap__b{font-size:var(--t-sm);color:var(--ink-2);margin-bottom:var(--s5);flex:1}
.cap__c{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}

/* NAICS chips — gold = chased, slate = registered */
.chip{font-family:var(--f-d);font-weight:600;font-size:11px;letter-spacing:.06em;
  border:1px solid var(--line-2);padding:5px 9px;color:var(--ink-3);background:var(--shade)}
.chip b{font-weight:600}
.chip span{display:none}
.chip--t1{color:#0A0D0A;background:var(--brass-l);border-color:var(--brass-l)}

/* tier-one list */
.t1l{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line)}
@media(max-width:940px){.t1l{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.t1l{grid-template-columns:1fr}}
.t1l li{background:var(--white);padding:18px 22px;display:grid;grid-template-columns:8ch 1fr;
  gap:var(--s4);align-items:baseline}
.t1l b{font-family:var(--f-d);font-weight:700;font-size:var(--t-b);color:var(--brass-l);
  letter-spacing:.02em}
.t1l span{font-size:var(--t-sm);color:var(--ink-2)}

/* ---------- the full 77-code table ---------- */
.ntw{border:1px solid var(--line);overflow-x:auto}
.nt-tbl{width:100%;border-collapse:collapse;min-width:560px}
.nt-tbl th{text-align:left;font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
  background:var(--shade-2);padding:14px 20px;border-bottom:1px solid var(--line)}
.nt-tbl td{padding:11px 20px;font-size:var(--t-sm);color:var(--ink-2);
  border-bottom:1px solid var(--rule-2)}
.nt-tbl tr:last-child td{border-bottom:0}
.nt-tbl tbody tr:hover td{background:var(--shade)}
.nt-tbl .nc{font-family:var(--f-d);font-weight:600;color:var(--ink);letter-spacing:.03em;
  width:11ch;-webkit-user-select:all;user-select:all}
.nt-tbl .nt{font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3);width:13ch}
.nt-tbl .is-t1 .nc{color:var(--brass-l)}
.nt-tbl .is-t1 .nt{color:var(--brass)}

/* ==========================================================================
   HOW TO BUY — three-column path rows, so the detail list fills the width
   the paragraph used to leave empty.
   ========================================================================== */
.paths{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.path{display:grid;grid-template-columns:auto 1.1fr 1.3fr;gap:clamp(20px,3vw,48px);
  background:var(--white);padding:clamp(28px,3.2vw,46px) clamp(24px,3vw,46px);align-items:start}
@media(max-width:1000px){.path{grid-template-columns:auto 1fr}
  .path__d{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.path{grid-template-columns:1fr;gap:var(--s4)}
  .path__d{grid-template-columns:1fr}}
.path__l{display:flex;flex-direction:column;gap:var(--s4);align-items:flex-start;min-width:9ch}
.path__n{font-family:var(--f-d);font-weight:700;font-size:var(--t-lg);line-height:1;
  color:var(--line-2);letter-spacing:.02em}
.path__st{font-family:var(--f-d);font-weight:600;font-size:10px;letter-spacing:.11em;
  text-transform:uppercase;padding:5px 9px;border:1px solid;white-space:nowrap}
.path__st--now{color:var(--blue-l);border-color:rgba(111,176,138,.45)}
.path__st--soon{color:var(--brass);border-color:rgba(176,141,70,.5)}
.path--soon{background:var(--shade)}
.path--soon .path__ceil{color:var(--ink-3)}
.path__c h3{margin-bottom:8px}
.path__ceil{font-family:var(--f-d);font-weight:700;font-size:var(--t-md);text-transform:uppercase;
  letter-spacing:.03em;color:var(--brass-l);margin-bottom:var(--s5)}
.path__p{font-size:var(--t-sm);max-width:46ch}
.path__d{display:grid;gap:var(--s5);align-content:start}
.path__d dt{font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:5px}
.path__d dd{margin:0;font-size:var(--t-sm);color:var(--ink-2)}

.veh__s--p{color:var(--brass-l)}
.buy__r--soon .buy__n,.buy__r--soon .buy__c{opacity:.62}

/* nonmanufacturer-rule panel */
.nmr{display:grid;grid-template-columns:1fr auto;gap:clamp(28px,4vw,72px);align-items:center}
@media(max-width:820px){.nmr{grid-template-columns:1fr}.nmr__art{display:none}}
.nmr p{max-width:66ch}
.nmr p + p{margin-top:var(--s5)}
.nmr__art{width:clamp(90px,10vw,140px);color:var(--brass);opacity:.4}
.nmr__art svg{width:100%;height:100%}

/* a qualifier on a credential — quieter than the value it qualifies */
.qual{color:var(--ink-3);font-size:var(--t-xs)}

/* spruce + contour motifs */
svg.veg{display:block;width:100%;height:auto}
svg.topo{display:block;width:100%;height:100%}

/* Grid children default to min-width:auto, so a wide min-content child can push
   the track past the viewport. /about/ overflowed 15px on a 375px screen this way. */
.sf > *,.caps > *,.paths > *,.path > *,.kpi > *,.t1l > *,.evs > *,.cols > *{min-width:0}
.sf__pts li{min-width:0}
.sf__pts li span{min-width:0;overflow-wrap:anywhere}

/* ==========================================================================
   v24 — VISUAL PASS. Layout 4 hero, section strip, photo bands, charts,
   threshold ladder, delivery timeline, location map.
   Rule: alternate text with something visual. Nothing above the fold but the
   photograph, the page's name and one line.
   ========================================================================== */

/* ---------- hero (layout 4, chosen 2026-10-09) ---------- */
.hero2{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;
  justify-content:center;text-align:center;min-height:min(62vh,600px);background:#070A07}
.hero2 > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero2::after{content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(70% 80% at 50% 50%,rgba(7,10,7,.5),rgba(7,10,7,.74))}
.hero2 .shell{padding-block:clamp(72px,10vw,120px)}
.hero2__eb{display:block;font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);
  letter-spacing:.22em;text-transform:uppercase;color:var(--brass-l);margin-bottom:18px;
  text-shadow:0 1px 12px rgba(0,0,0,.8)}
.hero2 h1{font-family:var(--f-d);font-weight:700;text-transform:uppercase;line-height:.95;
  color:#fff;font-size:clamp(2.5rem,1.4rem + 4vw,4.8rem);margin:0;
  text-shadow:0 2px 28px rgba(0,0,0,.55)}
.hero2 p{margin:22px auto 0;max-width:48ch;font-size:var(--t-md);line-height:1.55;
  color:rgba(255,255,255,.86);text-shadow:0 1px 16px rgba(0,0,0,.8)}
@media(max-width:640px){.hero2{min-height:auto}.hero2 .shell{padding-block:88px 72px}
  .hero2 h1{font-size:2.35rem}.hero2 p{font-size:1rem}}

/* ---------- section strip — tells you what's further down ---------- */
.jump{background:var(--white);border-bottom:1px solid var(--line)}
.jump ol{display:flex;flex-wrap:wrap;gap:0;margin:0;padding:0;list-style:none}
.jump li{flex:1 1 0;min-width:160px;border-right:1px solid var(--line)}
.jump li:last-child{border-right:0}
.jump a{display:flex;gap:12px;align-items:baseline;padding:22px clamp(16px,2vw,28px);
  font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-2);transition:color .25s var(--e),background-color .25s var(--e)}
.jump a:hover{color:#fff;background:var(--shade)}
.jump b{color:var(--brass-l);font-weight:700}
@media(max-width:760px){.jump ol{display:grid;grid-template-columns:1fr 1fr}
  .jump li{border-bottom:1px solid var(--line)}.jump li:nth-child(2n){border-right:0}}

/* ---------- full-width photo band with a single line over it ---------- */
.band2{position:relative;isolation:isolate;overflow:hidden;min-height:min(56vh,520px);
  display:flex;align-items:flex-end}
.band2 > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.band2::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(to top,rgba(7,10,7,.88),rgba(7,10,7,.15) 70%)}
.band2 .shell{width:100%;padding-block:clamp(48px,6vw,80px)}
.band2 blockquote{margin:0;font-family:var(--f-d);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.6rem,1rem + 2.4vw,3rem);line-height:1.02;color:#fff;max-width:20ch}
.band2 cite{display:block;margin-top:18px;font-style:normal;font-family:var(--f-d);
  font-weight:600;font-size:var(--t-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--brass-l)}

/* ---------- bar chart — codes per category, tier split ---------- */
.chart{display:grid;gap:10px}
.chart__r{display:grid;grid-template-columns:minmax(150px,280px) 1fr 3ch;gap:var(--s5);align-items:center}
@media(max-width:620px){.chart__r{grid-template-columns:1fr 3ch;gap:6px 12px}
  .chart__n{grid-column:1/-1}}
.chart__n{font-size:var(--t-sm);color:var(--ink);display:flex;gap:10px;align-items:center}
.chart__n svg{width:22px;height:22px;color:var(--brass-l);flex:none}
.chart__b{height:14px;display:flex;background:var(--shade-2)}
.chart__b i{display:block;height:100%}
.chart__b .t1{background:var(--brass-l)}
.chart__b .t2{background:#4C5E48}
.chart__v{font-family:var(--f-d);font-weight:700;font-size:var(--t-sm);color:var(--ink);text-align:right}
.chart__k{display:flex;gap:28px;margin-top:var(--s6);font-family:var(--f-d);font-weight:600;
  font-size:var(--t-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.chart__k span{display:inline-flex;gap:8px;align-items:center}
.chart__k i{width:14px;height:14px;display:inline-block}

/* ---------- threshold ladder — which path applies at which dollar value ---------- */
.ladder{position:relative;padding-top:12px}
.ladder__scale{display:grid;grid-template-columns:1fr 2fr 2.6fr 1.6fr;border-bottom:1px solid var(--line-2)}
.ladder__scale span{padding:0 0 12px 10px;border-left:1px solid var(--line-2);
  font-family:var(--f-d);font-weight:700;font-size:var(--t-sm);color:var(--ink)}
.ladder__scale span small{display:block;font-weight:600;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3);margin-top:2px}
.ladder__rows{display:grid;gap:10px;margin-top:18px}
.lr{display:grid;grid-template-columns:1fr 2fr 2.6fr 1.6fr;align-items:center}
.lr__bar{height:46px;display:flex;align-items:center;padding:0 16px;
  font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);letter-spacing:.1em;
  text-transform:uppercase;color:#0A0D0A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lr--card .lr__bar{grid-column:1/2;background:var(--brass-l)}
.lr--sap .lr__bar{grid-column:1/3;background:#C9A660}
.lr--sb .lr__bar{grid-column:1/5;background:var(--blue-l)}
.lr--sub .lr__bar{grid-column:1/5;background:#4C5E48;color:#fff}
.lr--sdv .lr__bar{grid-column:1/4;background:transparent;border:1.5px dashed var(--brass);color:var(--brass-l)}
.ladder__note{margin-top:var(--s5);font-size:var(--t-sm);color:var(--ink-3)}
@media(max-width:760px){
  .ladder__scale{display:none}
  .lr{grid-template-columns:1fr}
  .lr .lr__bar{grid-column:1/-1!important;white-space:normal;height:auto;padding:12px 14px;
    flex-direction:column;align-items:flex-start;gap:3px}
  .lr__bar::after{content:attr(data-range);display:block;font-weight:500;letter-spacing:.04em;
    text-transform:none;font-family:var(--f);font-size:var(--t-sm);margin-top:2px;opacity:.85}
}

/* ---------- delivery timeline ---------- */
.tl{display:grid;grid-template-columns:repeat(6,1fr);gap:0;position:relative;margin-top:var(--s5)}
.tl::before{content:"";position:absolute;left:0;right:0;top:15px;height:1px;background:rgba(255,255,255,.22)}
.tl li{position:relative;padding:44px 18px 0 0;list-style:none}
.tl li::before{content:"";position:absolute;left:0;top:8px;width:15px;height:15px;border-radius:50%;
  background:var(--navy);border:2px solid var(--brass-l)}
.tl li:first-child::before{background:var(--brass-l)}
.tl b{display:block;font-family:var(--f-d);font-weight:700;font-size:var(--t-b);text-transform:uppercase;
  letter-spacing:.02em;color:#fff;margin-bottom:4px}
.tl em{display:block;font-style:normal;font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);
  letter-spacing:.12em;text-transform:uppercase;color:var(--brass-l);margin-bottom:10px}
.tl span{display:block;font-size:var(--t-sm);color:rgba(255,255,255,.7);line-height:1.5}
@media(max-width:1000px){.tl{grid-template-columns:repeat(3,1fr);row-gap:var(--s7)}}
@media(max-width:620px){.tl{grid-template-columns:1fr;row-gap:0}
  .tl::before{left:7px;right:auto;top:0;bottom:0;width:1px;height:auto}
  .tl li{padding:0 0 30px 36px}.tl li::before{top:3px}}

/* ---------- location map ---------- */
.loc{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,88px);align-items:center}
@media(max-width:900px){.loc{grid-template-columns:1fr}}
.loc__map{color:var(--ink-3)}
.loc__map svg{width:100%;height:auto;display:block}
.loc__dl{border-top:1px solid var(--line)}
.loc__dl > div{display:grid;grid-template-columns:13ch 1fr;gap:var(--s4);padding:12px 0;border-bottom:1px solid var(--line)}
.loc__dl dt{font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);letter-spacing:.11em;
  text-transform:uppercase;color:var(--ink-3)}
.loc__dl dd{margin:0;font-size:var(--t-sm);color:var(--ink)}

/* photo split where the image side is a real photograph */
.sf__m.ph-img img{object-fit:cover}
.ev h3{display:flex;gap:12px;align-items:center}
.ev h3 svg{width:26px;height:26px;color:var(--brass-l);flex:none}

/* anchors land below the sticky nav, not under it */
[id]{scroll-margin-top:calc(var(--navh) + 20px)}
/* evaluation cards: brass index numerals instead of forced icon metaphors */
.evs{counter-reset:ev}
.ev{counter-increment:ev;position:relative;padding-top:clamp(56px,5vw,72px)}
.ev::before{content:counter(ev,decimal-leading-zero);position:absolute;top:clamp(22px,2.4vw,32px);
  left:clamp(26px,3vw,42px);font-family:var(--f-d);font-weight:700;font-size:var(--t-lg);
  color:var(--brass);opacity:.85;line-height:1}
.sf__c .empty{max-width:none;margin-top:var(--s2)}

/* Interior photo splits: the image fills the cell but never sets its height.
   A portrait source was stretching the About veteran row to ~1,100px.
   Scoped to .ph-img so the homepage's splits are untouched. */
.sf__m.ph-img{position:relative;min-height:min(62vh,560px)}
.sf__m.ph-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(max-width:980px){.sf__m.ph-img{min-height:52vw}}

/* About — the map sits in the photo cell beside the firm description */
.sf__map{display:flex;align-items:center;justify-content:center;background:var(--shade);
  padding:clamp(32px,4.5vw,72px);color:var(--ink-3);border-left:1px solid var(--line)}
.sf__map svg{width:100%;max-width:600px;height:auto;display:block}
@media(max-width:980px){.sf__map{border-left:0;border-top:1px solid var(--line);min-height:0;padding:40px var(--gutter)}}

/* About — "where we are" spread across the page */
.where{border-top:1px solid var(--line)}
.where__dl{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);margin:0}
.where__dl > div{padding:22px 24px 24px 0;border-right:1px solid var(--line)}
.where__dl > div + div{padding-left:24px}
.where__dl > div:last-child{border-right:0}
.where__dl dt{font-family:var(--f-d);font-weight:600;font-size:var(--t-xs);letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}
.where__dl dd{margin:0;font-size:var(--t-b);color:var(--ink)}
@media(max-width:860px){.where__dl{grid-template-columns:1fr 1fr}
  .where__dl > div:nth-child(2){border-right:0}
  .where__dl > div:nth-child(3){padding-left:0}
  .where__dl > div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:480px){.where__dl{grid-template-columns:1fr}
  .where__dl > div,.where__dl > div + div{padding:16px 0;border-right:0;border-bottom:1px solid var(--line)}
  .where__dl > div:last-child{border-bottom:0}}
/* on a phone, read the firm description first, then the map */
@media(max-width:980px){.sf--flip .sf__map{order:2}}

/* v27 — <picture> wraps hero/band/split images for WebP; let the img stay the positioned box */
.hero2 picture,.band2 picture,.ph-img picture{display:contents}
.hero2 img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.band2 img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}

/* 404 */
.hero2--404{min-height:calc(100vh - var(--navh))}
.nf__act{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:34px}
.hero2--404 .btn-o{color:#fff;border-color:rgba(255,255,255,.5)}

/* privacy — a readable single column */
.prose-page{max-width:74ch}
.prose-page h2{margin:var(--s7) 0 var(--s3)}
.prose-page p + p{margin-top:var(--s4)}
.prose-page .note{margin-top:var(--s8)}

/* footer privacy link */
.ft__b a{color:rgba(255,255,255,.6)}
.ft__b a:hover{color:#fff}

/* capability statement prints as a clean one-page document */
@media print{
  .ft,.skip,.jump,.cs__bar{display:none!important}
  .cs{padding:0}
  .cs__doc,.cs__doc *{color:#000!important}
  .cs__s h2{color:#6B4F12!important}
  .cs__hd{border-bottom-color:#6B4F12!important}
  .cs__wm{filter:invert(1)}
  @page{size:letter;margin:.5in}
}

/* capability statement — fit to ONE letter page. The screen layout printed to three. */
@media print{
  @page{size:letter;margin:.42in .45in}
  html,body{font-size:9pt;line-height:1.35}
  .cs .shell{padding:0;max-width:none}
  .cs__doc{padding:0!important}
  .cs__hd{padding-bottom:8pt;gap:10pt}
  .cs__wm{height:28pt}
  .cs__id{font-size:7.5pt;line-height:1.5}
  .cs__s{margin-top:10pt;break-inside:avoid}
  .cs__s h2{font-size:7.5pt;letter-spacing:.14em;margin-bottom:5pt}
  .cs__s p{font-size:8.5pt;line-height:1.42}
  .cs__comp{grid-template-columns:repeat(3,1fr);gap:0 14pt}
  .cs__comp li{padding:3.5pt 0;break-inside:avoid}
  .cs__comp b{font-size:7pt;letter-spacing:.05em}
  .cs__comp span{font-size:6.5pt;line-height:1.35}
  .cs__diff{display:grid;grid-template-columns:1fr 1fr;gap:0 14pt}
  .cs__diff li{font-size:8pt;padding:4pt 0 4pt 11pt;line-height:1.38}
  .cs__diff li::before{top:9pt;width:6pt}
  .cs__data{grid-template-columns:repeat(3,1fr);gap:0 12pt}
  .cs__data > div{padding:3.5pt 0;gap:6pt}
  .cs__data dt{min-width:9ch;font-size:6.5pt}
  .cs__data dd{font-size:7.5pt}
  .cs__ft{margin-top:9pt;padding-top:6pt;font-size:7.5pt}
}
.cs__btns{display:flex;flex-wrap:wrap;gap:10px}
.vet__who{margin-bottom:8px;color:var(--ink)}
