/* Layout: survey sheet. A navy brand band (header + hero with a live half-cell potential map),
   then concrete-grey report sections on a two-column grid, closing on a navy footer. */
:root{
  /* brand context: fixed in both themes (header, hero, footer) */
  --navy:#0F1B27; --navy-2:#162536; --navy-line:#2A3B52;
  --on-navy:#FFFFFF; --silver:#C9D1DC; --silver-2:#8A96A8; --rust-hi:#E58A5E;
  /* page context: light values */
  --bg:#EEF1F4; --surface:#FFFFFF; --tint:#E3E8EE; --ink:#0F1B27; --ink-2:#4E5A6B;
  --line:#CDD4DD; --accent:#A8461F; --btn:#B4502A; --btn-ink:#FFFFFF; --ok:#2F7D5B; --err:#B3261E;
  /* type */
  --f-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-body:"IBM Plex Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --t-xs:.75rem; --t-sm:.875rem; --t-base:1.0625rem; --t-lg:1.1875rem; --t-h3:1.3125rem;
  --t-h2:clamp(1.75rem,1.3rem + 1.8vw,2.375rem); --t-h1:clamp(2.25rem,1.35rem + 3.6vw,3.625rem);
  --gutter:20px; --maxw:1180px; --r:6px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0A121C; --surface:#111C2A; --tint:#132030; --ink:#E4E9EF; --ink-2:#9AA6B6;
    --line:#223146; --accent:#E58A5E; --btn:#E58A5E; --btn-ink:#0F1B27; --ok:#5CC497; --err:#FF8A80;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0A121C; --surface:#111C2A; --tint:#132030; --ink:#E4E9EF; --ink-2:#9AA6B6;
  --line:#223146; --accent:#E58A5E; --btn:#E58A5E; --btn-ink:#0F1B27; --ok:#5CC497; --err:#FF8A80;
  color-scheme:dark;
}

*{box-sizing:border-box}
[hidden]{display:none !important}
html{scroll-behavior:smooth; scroll-padding-top:84px}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }
body{margin:0; background:var(--bg); color:var(--ink); font-family:var(--f-body); font-size:var(--t-base); line-height:1.6; -webkit-font-smoothing:antialiased}
img{max-width:100%; display:block}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--rust-hi); outline-offset:3px; border-radius:3px}
.wrap{max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter)}
.skip{position:absolute; left:-9999px; top:8px; z-index:100; background:var(--on-navy); color:var(--navy); padding:8px 14px; border-radius:4px}
.skip:focus{left:12px}
h1,h2,h3{font-family:var(--f-display); font-weight:700; text-wrap:balance; margin:0}
h2{font-size:var(--t-h2); font-stretch:112%; line-height:1.1; letter-spacing:-.005em}
h3{font-size:var(--t-h3); font-stretch:106%; line-height:1.25}
p{margin:0}
.label{font-family:var(--f-mono); font-size:var(--t-xs); font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--accent)}

/* Buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:0 20px; border-radius:var(--r); font:600 .9375rem/1 var(--f-body); text-decoration:none; border:1px solid transparent; cursor:pointer; transition:background-color .15s, color .15s, border-color .15s}
.btn-primary{background:var(--btn); color:var(--btn-ink)}
.btn-primary:hover{filter:brightness(1.07)}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--line)}
.btn-ghost:hover{border-color:var(--ink-2)}
.on-navy .btn-primary{background:var(--rust-hi); color:var(--navy)}
.on-navy .btn-ghost{color:var(--on-navy); border-color:var(--navy-line)}
.on-navy .btn-ghost:hover{border-color:var(--silver-2)}

/* Header */
.site-header{position:sticky; top:env(safe-area-inset-top,0px); z-index:50; background:var(--navy); border-bottom:1px solid var(--navy-line)}
.site-header .wrap{display:flex; align-items:center; gap:20px; min-height:68px; position:relative}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--on-navy); min-width:0}
.brand img{height:46px; width:auto; flex:none}
.brand-text{display:flex; flex-direction:column; min-width:0}
.brand-name{font-family:var(--f-display); font-stretch:125%; font-weight:700; letter-spacing:.07em; font-size:1rem; line-height:1.15; color:var(--on-navy)}
.brand-sub{font-size:.625rem; font-weight:500; letter-spacing:.17em; text-transform:uppercase; color:var(--silver-2); white-space:nowrap}
.nav{margin-left:auto; display:flex; align-items:center; gap:2px}
.nav a{color:var(--silver); text-decoration:none; font-size:.9375rem; padding:8px 12px; border-radius:4px}
.nav a:hover{color:var(--on-navy); background:var(--navy-2)}
.header-cta{min-height:40px; padding:0 16px; font-size:.875rem}
.menu-btn{display:none; margin-left:auto; background:transparent; border:1px solid var(--navy-line); color:var(--on-navy); border-radius:var(--r); min-height:40px; padding:0 14px; font:500 .875rem/1 var(--f-body); cursor:pointer}
@media (max-width: 940px){
  .menu-btn{display:inline-flex; align-items:center}
  .header-cta{display:none}
  .nav{display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; background:var(--navy); padding:8px var(--gutter) 18px; border-bottom:1px solid var(--navy-line)}
  .nav.open{display:flex}
  .nav a{padding:12px 8px; border-bottom:1px solid var(--navy-line); border-radius:0}
}
@media (max-width: 420px){ .brand-sub{display:none} }

/* Hero */
.hero{background:var(--navy); color:var(--silver); position:relative; overflow:hidden; border-bottom:1px solid var(--navy-line)}
.hero::before{content:""; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(var(--navy-line) 1px, transparent 1px), linear-gradient(90deg, var(--navy-line) 1px, transparent 1px);
  background-size:48px 48px; opacity:.32;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 90%); mask-image:linear-gradient(180deg,#000 0%,transparent 90%)}
.hero .wrap{position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:56px; align-items:center; padding-block:72px 84px}
.hero-copy{min-width:0}
.hero .label{color:var(--rust-hi)}
.hero h1{font-size:var(--t-h1); font-stretch:115%; line-height:1.04; letter-spacing:-.012em; color:var(--on-navy); margin:18px 0 22px}
.hero .lead{font-size:var(--t-lg); line-height:1.55; max-width:33em}
.hero-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:30px}
.hero-facts{list-style:none; margin:40px 0 0; padding:20px 0 0; border-top:1px solid var(--navy-line); display:flex; flex-wrap:wrap; gap:10px 28px; font-family:var(--f-mono); font-size:.8125rem; color:var(--silver-2)}
.hero-facts b{color:var(--silver); font-weight:500}
@media (max-width: 980px){ .hero .wrap{grid-template-columns:minmax(0,1fr); gap:44px; padding-block:52px 60px} }

/* Figure: half-cell potential map */
.fig{margin:0; min-width:0; background:var(--navy-2); border:1px solid var(--navy-line); border-radius:8px; padding:18px 18px 16px; box-shadow:0 24px 60px -30px rgba(0,0,0,.6)}
.fig-head{display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; font-family:var(--f-mono); font-size:var(--t-xs); color:var(--silver-2); margin-bottom:12px}
.fig-head strong{color:var(--on-navy); font-weight:500; letter-spacing:.06em; text-transform:uppercase}
.map-wrap{position:relative; border-radius:4px; overflow:hidden}
#hcp{display:block; width:100%; height:auto; aspect-ratio:16/10; cursor:crosshair; background:var(--navy)}
.scan{position:absolute; top:0; bottom:0; left:0; width:2px; background:var(--on-navy); box-shadow:0 0 14px 2px rgba(255,255,255,.45); opacity:0; pointer-events:none; animation:scan 2.4s cubic-bezier(.45,0,.25,1) .4s 1 both}
@keyframes scan{0%{left:0;opacity:0}8%{opacity:.9}92%{opacity:.9}100%{left:100%;opacity:0}}
@media (prefers-reduced-motion: reduce){ .scan{display:none} }
.readout{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; margin-top:12px; padding:10px 12px; background:var(--navy); border:1px solid var(--navy-line); border-radius:4px; font-family:var(--f-mono); font-size:.8125rem; min-height:44px}
.readout .pt{color:var(--on-navy); font-weight:500}
.readout .mv{color:var(--on-navy); font-variant-numeric:tabular-nums}
.readout .ro-band{color:var(--silver-2)}
.legend{list-style:none; margin:14px 0 0; padding:0; display:grid; gap:7px; font-size:.8125rem}
.legend li{display:grid; grid-template-columns:12px 8.6em minmax(0,1fr) 3.2em; grid-template-areas:"sw rng mean pct"; gap:10px; align-items:center}
.legend .sw{grid-area:sw} .legend .rng{grid-area:rng} .legend .mean{grid-area:mean; min-width:0} .legend .pct{grid-area:pct}
.legend .sw{width:12px; height:12px; border-radius:2px}
.legend .rng{font-family:var(--f-mono); color:var(--on-navy); font-variant-numeric:tabular-nums; white-space:nowrap}
.legend .pct{font-family:var(--f-mono); color:var(--silver-2); text-align:right; font-variant-numeric:tabular-nums}
.fig-note{margin-top:12px; font-size:var(--t-xs); color:var(--silver-2); line-height:1.5}
@media (max-width: 560px){ .legend li{grid-template-columns:12px minmax(0,1fr) 3em; grid-template-areas:"sw rng pct" ". mean mean"; gap:2px 10px} .legend .mean{color:var(--silver-2)} }

/* Generic sections */
.band{padding-block:92px}
.band + .band{border-top:1px solid var(--line)}
.band.tint{background:var(--tint)}
@media (max-width: 720px){ .band{padding-block:60px} }
.sec-head, .ex-head{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:20px 64px; align-items:end; margin-bottom:52px}
.sec-head h2, .ex-head h2{margin-top:12px}
.ex-head{margin-bottom:28px}
.sec-head p, .ex-head p{color:var(--ink-2); max-width:40em}
@media (max-width: 820px){ .sec-head, .ex-head{grid-template-columns:minmax(0,1fr); margin-bottom:28px} }

/* Audience strip */
.audience{background:var(--surface); border-bottom:1px solid var(--line)}
.audience .wrap{display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:12px 32px; padding-block:22px}
.aud-main{display:flex; flex-wrap:wrap; align-items:center; gap:10px 0; min-width:0}
.audience .label{color:var(--ink-2); flex-basis:100%}
.audience ul{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px 26px}
.audience li{display:inline-flex; align-items:center; gap:9px; font-weight:500; font-size:.9375rem}
.audience li::before{content:""; width:5px; height:5px; background:var(--accent); flex:none}
.aud-link{font-weight:600; font-size:.9375rem; color:var(--accent); text-decoration:none}
.aud-link:hover{text-decoration:underline}
@media (max-width: 1100px){ .audience .wrap{grid-template-columns:minmax(0,1fr)} }

/* Tabs */
.tabs-scroll{overflow-x:auto; scrollbar-width:none}
.tabs-scroll::-webkit-scrollbar{display:none}
.tablist{display:flex; gap:2px; width:max-content; min-width:100%; border-bottom:1px solid var(--line)}
.tab{appearance:none; background:none; border:0; border-bottom:3px solid transparent; margin-bottom:-1px; padding:14px 18px 12px; font:600 .9688rem/1.2 var(--f-body); color:var(--ink-2); cursor:pointer; white-space:nowrap; border-radius:4px 4px 0 0}
.tab:hover{color:var(--ink); background:var(--tint)}
.tab[aria-selected="true"]{color:var(--ink); border-bottom-color:var(--accent)}
.tab:focus-visible{outline-offset:-3px}
.panels{padding-top:34px}
.panel:focus-visible{outline-offset:8px}
.panel-intro{color:var(--ink-2); max-width:46em; margin-bottom:24px}
@media (max-width: 640px){
  .tablist{flex-wrap:wrap; width:auto; gap:8px; border-bottom:0}
  .tab{border:1px solid var(--line); border-radius:999px; margin:0; padding:9px 14px; font-size:.875rem; background:var(--surface)}
  .tab:hover{background:var(--surface)}
  .tab[aria-selected="true"]{background:var(--ink); color:var(--bg); border-color:var(--ink)}
  .panels{padding-top:24px}
}

/* Florida callout */
.fl{display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:32px 56px; align-items:start}
.fl .body{display:grid; gap:16px; color:var(--ink-2); max-width:38em}
.fl .body p:first-child{color:var(--ink)}
.stamp{justify-self:start; display:inline-flex; align-items:center; gap:10px; font-family:var(--f-mono); font-size:var(--t-xs); letter-spacing:.08em; text-transform:uppercase; color:var(--ink-2)}
.stamp span{border:1px solid var(--line); background:var(--surface); padding:4px 8px; border-radius:3px; color:var(--ink)}
.checks{list-style:none; margin:0; padding:22px 24px; display:grid; gap:12px; background:var(--surface); border:1px solid var(--line); border-radius:8px}
.checks li{display:grid; grid-template-columns:20px minmax(0,1fr); gap:10px; align-items:start}
.checks svg{margin-top:4px; color:var(--accent)}
.checks li.checks-title{display:block}
.checks-title{font-family:var(--f-mono); font-size:var(--t-xs); letter-spacing:.12em; text-transform:uppercase; color:var(--ink-2); padding-bottom:4px; border-bottom:1px solid var(--line)}
.small{font-size:var(--t-sm); color:var(--ink-2)}
@media (max-width: 860px){ .fl{grid-template-columns:minmax(0,1fr)} }

/* Services */
.services{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 64px}
.svc{padding:22px 0 26px; border-top:1px solid var(--line); display:grid; gap:8px; align-content:start}
.services .svc:nth-child(-n+2){border-top:0; padding-top:0}
.svc-tests{font-family:var(--f-mono); font-size:.75rem; color:var(--accent); margin-top:4px}
.svc-tag{font-family:var(--f-mono); font-size:var(--t-xs); color:var(--ink-2); letter-spacing:.06em}
.svc p{color:var(--ink-2); max-width:36em}
.svc ul{margin:4px 0 0; padding:0; list-style:none; display:grid; gap:6px; font-size:.9688rem}
.svc li{display:grid; grid-template-columns:14px minmax(0,1fr); gap:10px}
.svc li::before{content:""; width:6px; height:6px; margin-top:.62em; background:var(--accent)}
@media (max-width: 760px){ .services{grid-template-columns:minmax(0,1fr)} .services .svc:nth-child(2){border-top:1px solid var(--line); padding-top:22px} }

/* Methods table */
.table-scroll{overflow-x:auto; border:1px solid var(--line); border-radius:8px; background:var(--surface)}
.methods{width:100%; border-collapse:collapse; font-size:.9688rem}
.methods th,.methods td{text-align:left; vertical-align:top; padding:16px 20px; border-bottom:1px solid var(--line)}
.methods tr:last-child td{border-bottom:0}
.methods thead th{font-family:var(--f-mono); font-size:var(--t-xs); font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-2); background:var(--tint)}
.methods td:first-child{font-weight:600; width:24%}
.methods td:nth-child(2){color:var(--ink-2)}
.methods td:last-child{font-family:var(--f-mono); font-size:.8125rem; white-space:nowrap; width:1%}
@media (max-width: 680px){
  .table-scroll{border:0; background:transparent; overflow:visible}
  .methods thead{display:none}
  .methods, .methods tbody, .methods tr, .methods td{display:block; width:auto}
  .methods tr{background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:14px 16px; margin-bottom:10px}
  .methods td{padding:0; border:0}
  .methods td:first-child{width:auto; margin-bottom:4px}
  .methods td:last-child{width:auto; white-space:normal; margin-top:8px; color:var(--accent)}
}

/* Process & report panel */
.process{display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:36px 56px; align-items:start}
@media (max-width: 900px){ .process{grid-template-columns:minmax(0,1fr)} }
.steps{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 32px; counter-reset:step}
.steps li{counter-increment:step; padding:14px 0 18px; border-top:2px solid var(--ink); display:grid; gap:4px; align-content:start}
.steps h3{font-size:1.0625rem}
.steps li::before{content:counter(step,decimal-leading-zero); font-family:var(--f-mono); font-size:var(--t-sm); color:var(--accent); font-weight:500}
.steps p{color:var(--ink-2); font-size:.9063rem; line-height:1.5}
@media (max-width: 480px){ .steps{grid-template-columns:minmax(0,1fr)} }

/* Report */
.sheet{background:var(--surface); border:1px solid var(--line); border-radius:4px; padding:28px 30px 44px; box-shadow:0 1px 0 var(--line), 0 26px 50px -34px rgba(15,27,39,.45); position:relative; min-width:0}
.sheet-top{display:flex; justify-content:space-between; gap:16px; align-items:flex-start; padding-bottom:16px; border-bottom:2px solid var(--ink)}
.sheet-co{font-family:var(--f-display); font-stretch:125%; font-weight:700; font-size:.8125rem; letter-spacing:.06em; line-height:1.3}
.sheet-co span{display:block; font-family:var(--f-body); font-weight:400; font-stretch:100%; font-size:.6875rem; letter-spacing:.04em; color:var(--ink-2)}
.sheet-meta{font-family:var(--f-mono); font-size:.6875rem; color:var(--ink-2); text-align:right; line-height:1.6; white-space:nowrap}
.sheet-title{font-family:var(--f-display); font-stretch:118%; font-weight:800; font-size:1.375rem; letter-spacing:.02em; margin:20px 0 4px}
.sheet-sub{font-size:var(--t-sm); color:var(--ink-2); margin-bottom:14px}
.toc{list-style:none; margin:0; padding:0; display:grid; gap:2px; font-size:.9063rem}
.toc li{display:flex; gap:12px; padding:7px 0; border-bottom:1px dashed var(--line)}
.toc li:last-child{border-bottom:0}
.toc .n{font-family:var(--f-mono); color:var(--accent); width:2.4em; flex:none; font-variant-numeric:tabular-nums}
.toc .sub{color:var(--ink-2); font-size:var(--t-sm)}
.sheet-tag{position:absolute; right:-1px; bottom:-1px; font-family:var(--f-mono); font-size:.6875rem; color:var(--ink-2); background:var(--tint); border:1px solid var(--line); padding:3px 8px; border-radius:4px 0 4px 0}

/* Structures */
.structs{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px}
.struct{background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:18px 20px 16px; display:grid; gap:6px; align-content:start}
.struct h3{font-size:1.0625rem}
.struct p{color:var(--ink-2); font-size:.9063rem; line-height:1.5}
.struct .tests{font-family:var(--f-mono); font-size:.75rem; color:var(--accent); padding-top:10px; margin-top:4px; border-top:1px solid var(--line)}
@media (max-width: 900px){ .structs{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width: 560px){ .structs{grid-template-columns:minmax(0,1fr)} }

/* Founders (inside contact) */
.founders{display:grid; gap:10px}
.founders > .k{font-family:var(--f-mono); font-size:var(--t-xs); letter-spacing:.1em; text-transform:uppercase; color:var(--ink-2)}
.people{list-style:none; margin:0; padding:0; display:grid; gap:8px}
.people li{display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:14px; align-items:center; padding:12px 14px; background:var(--surface); border:1px solid var(--line); border-radius:8px}
.mono-tile{width:42px; height:42px; border-radius:6px; background:var(--navy); color:var(--silver); display:grid; place-items:center; font-family:var(--f-display); font-stretch:125%; font-weight:700; font-size:.8125rem; letter-spacing:.04em}
.who{display:grid; min-width:0; line-height:1.35}
.who b{font-weight:600; font-size:.9688rem}
.who .role{font-size:.8125rem; color:var(--ink-2)}
.people .tel{font-family:var(--f-mono); font-size:.875rem; font-variant-numeric:tabular-nums; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--line); white-space:nowrap}
.people .tel:hover{border-color:var(--accent)}
@media (max-width: 520px){ .people li{grid-template-columns:42px minmax(0,1fr)} .people .tel{grid-column:2; justify-self:start} }

/* Contact */
.contact{display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:48px 64px; align-items:start}
.contact-info{display:grid; gap:22px}
.contact-info h2{margin-top:-6px}
.contact-info > p{color:var(--ink-2)}
.info-list{list-style:none; margin:0; padding:0; display:grid; gap:0; border-top:1px solid var(--line)}
.info-list li{display:grid; grid-template-columns:7.5em minmax(0,1fr); gap:12px; padding:14px 0; border-bottom:1px solid var(--line); align-items:baseline}
.info-list .k{font-family:var(--f-mono); font-size:var(--t-xs); letter-spacing:.1em; text-transform:uppercase; color:var(--ink-2)}
.info-list .v{min-width:0; overflow-wrap:anywhere}
.copy-row{display:flex; flex-wrap:wrap; align-items:center; gap:10px}
.email{font-family:var(--f-mono); font-size:.9375rem; user-select:all}
.mini-btn{font:500 .75rem/1 var(--f-body); padding:7px 10px; border-radius:4px; border:1px solid var(--line); background:var(--surface); color:var(--ink); cursor:pointer}
.mini-btn:hover{border-color:var(--ink-2)}
form.quote{background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:28px; display:grid; gap:18px; min-width:0}
.row{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px}
@media (max-width: 560px){ .row{grid-template-columns:minmax(0,1fr)} form.quote{padding:20px} }
.field{display:grid; gap:6px; min-width:0}
.field label, fieldset legend{font-size:.875rem; font-weight:600}
.req{color:var(--accent)}
input[type=text],input[type=email],input[type=tel],select,textarea{width:100%; font:inherit; font-size:1rem; color:var(--ink); background:var(--bg); border:1px solid var(--line); border-radius:var(--r); padding:11px 12px; min-height:46px}
textarea{min-height:110px; resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent); outline-offset:0; border-color:transparent}
fieldset{border:0; margin:0; padding:0; display:grid; gap:10px; min-width:0}
.chips{display:flex; flex-wrap:wrap; gap:8px}
.chip{position:relative}
.chip input{position:absolute; opacity:0; inset:0; cursor:pointer}
.chip span{display:inline-flex; align-items:center; min-height:38px; padding:0 14px; border:1px solid var(--line); border-radius:999px; font-size:.875rem; background:var(--bg); cursor:pointer}
.chip input:checked + span{background:var(--ink); color:var(--bg); border-color:var(--ink)}
.chip input:focus-visible + span{outline:2px solid var(--accent); outline-offset:2px}
.form-foot{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px}
.form-foot .small{max-width:28em}
.err-msg{color:var(--err); font-size:.875rem}
.result{border:1px solid var(--line); border-radius:8px; padding:18px; background:var(--bg); display:grid; gap:12px}
.result h3{font-size:1.0625rem}
.result pre{margin:0; white-space:pre-wrap; overflow-wrap:anywhere; font-family:var(--f-mono); font-size:.8125rem; line-height:1.55; background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:12px; max-height:260px; overflow:auto}
.result .ok{color:var(--ok); font-weight:600}
@media (max-width: 900px){ .contact{grid-template-columns:minmax(0,1fr)} }

/* Footer */
.site-footer{background:var(--navy); color:var(--silver-2); font-size:.875rem}
.site-footer .wrap{display:grid; grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr)); gap:32px 48px; padding-block:52px 28px}
.site-footer .brand-name{font-size:.9375rem}
.foot-col{display:grid; gap:8px; align-content:start}
.foot-col h4{margin:0 0 4px; font-family:var(--f-mono); font-size:var(--t-xs); font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--silver)}
.site-footer a{color:var(--silver); text-decoration:none}
.foot-blurb{margin-top:12px; max-width:30em}
.site-footer a:hover{color:var(--on-navy); text-decoration:underline}
.legal{grid-column:1 / -1; border-top:1px solid var(--navy-line); padding-top:20px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 24px; font-size:.8125rem}
@media (max-width: 760px){ .site-footer .wrap{grid-template-columns:minmax(0,1fr)} }

/* ===== v3 multi-page additions ===== */
/* Header: language link and earlier collapse (one more nav item) */
.nav a.lang{font-family:var(--f-mono); font-size:.8125rem; letter-spacing:.04em; border:1px solid var(--navy-line); margin-left:6px; padding:6px 10px}
@media (max-width: 1080px){
  .menu-btn{display:inline-flex; align-items:center}
  .header-cta{display:none}
  .nav{display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; background:var(--navy); padding:8px var(--gutter) 18px; border-bottom:1px solid var(--navy-line)}
  .nav.open{display:flex}
  .nav a{padding:12px 8px; border-bottom:1px solid var(--navy-line); border-radius:0}
  .nav a.lang{margin:10px 0 0; border:1px solid var(--navy-line); border-radius:4px; align-self:flex-start; padding:8px 12px}
}

/* Homepage H1 with keyword line */
.hero h1.has-label{margin-top:0}
.hero h1 .h1-label{display:block; margin-bottom:18px; line-height:1.5; font-stretch:100%; letter-spacing:.14em}
.hero h1 .h1-main{display:block}
.fig-note a{color:var(--silver); text-underline-offset:3px}
.fig-note a:hover{color:var(--on-navy)}

/* "Learn more" links */
.more{display:inline-flex; align-items:center; gap:6px; font-weight:600; font-size:.9375rem; color:var(--accent); text-decoration:none; justify-self:start; margin-top:6px}
.more:hover{text-decoration:underline; text-underline-offset:3px}
.methods td a{color:inherit; text-decoration-color:var(--accent); text-decoration-thickness:1px; text-underline-offset:3px}
.methods td a:hover{color:var(--accent)}
a.struct{color:inherit; text-decoration:none; transition:border-color .15s, box-shadow .15s}
a.struct h3::after{content:" →"; color:var(--accent); font-family:var(--f-body); font-weight:600}
a.struct:hover{border-color:var(--ink-2); box-shadow:0 10px 24px -18px rgba(15,27,39,.45)}

/* Service page hero */
.page-hero{background:var(--navy); color:var(--silver); position:relative; overflow:hidden; border-bottom:1px solid var(--navy-line)}
.page-hero::before{content:""; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(var(--navy-line) 1px, transparent 1px), linear-gradient(90deg, var(--navy-line) 1px, transparent 1px);
  background-size:48px 48px; opacity:.32;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 95%); mask-image:linear-gradient(180deg,#000 0%,transparent 95%)}
.page-hero .wrap{position:relative; padding-block:28px 64px}
.page-hero .label{color:var(--rust-hi)}
.page-hero h1{font-size:clamp(2rem,1.35rem + 2.7vw,3.125rem); font-stretch:112%; line-height:1.06; letter-spacing:-.01em; color:var(--on-navy); margin:14px 0 20px; max-width:20em}
.page-hero .lead{font-size:var(--t-lg); line-height:1.55; max-width:46em}
.page-hero .hero-facts{margin-top:34px}
@media (max-width: 720px){ .page-hero .wrap{padding-block:20px 48px} }

/* Breadcrumbs */
.crumbs{margin:0 0 40px; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:6px 10px; font-family:var(--f-mono); font-size:var(--t-xs); color:var(--silver-2)}
.crumbs li{display:inline-flex; gap:10px; align-items:center}
.crumbs li + li::before{content:"/"; color:var(--navy-line)}
.crumbs a{color:var(--silver); text-decoration:none}
.crumbs a:hover{color:var(--on-navy); text-decoration:underline}

/* Article layout */
.doc{display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:48px 72px; align-items:start}
.doc-main{display:grid; gap:48px; max-width:46em; min-width:0}
.doc-sec{display:grid; gap:14px; scroll-margin-top:96px}
.doc-sec h2{font-size:clamp(1.375rem,1.15rem + .9vw,1.75rem); font-stretch:110%; line-height:1.15}
.doc-sec p{color:var(--ink-2)}
.doc-sec p.small{font-size:var(--t-sm)}
.doc-sec ul{margin:0; padding:0; list-style:none; display:grid; gap:10px}
.doc-sec li{display:grid; grid-template-columns:14px minmax(0,1fr); gap:10px; color:var(--ink-2)}
.doc-sec li::before{content:""; width:6px; height:6px; margin-top:.66em; background:var(--accent)}
.doc-sec li b{color:var(--ink); font-weight:600}
.doc-sec a{text-underline-offset:3px}
.doc-sec .table-scroll{margin:4px 0}
.doc-sec .methods td:first-child{width:38%; white-space:nowrap; font-family:var(--f-mono); font-size:.875rem; font-weight:500}
.doc-sec .methods td:last-child{font-family:var(--f-body); font-size:.9688rem; white-space:normal; width:auto; color:var(--ink-2)}
@media (max-width: 680px){ .doc-sec .methods td:first-child{white-space:normal} .doc-sec .methods td:last-child{color:var(--ink-2)} }
.doc-side{position:sticky; top:96px; display:grid; gap:16px; min-width:0}
.glance{background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:20px 22px 22px}
.glance-title{font-family:var(--f-mono); font-size:var(--t-xs); letter-spacing:.12em; text-transform:uppercase; color:var(--ink-2); padding-bottom:10px; border-bottom:1px solid var(--line)}
.glance dl{margin:0}
.glance dt{font-family:var(--f-mono); font-size:var(--t-xs); letter-spacing:.08em; text-transform:uppercase; color:var(--accent); margin-top:16px}
.glance dd{margin:4px 0 0; font-size:.9375rem; line-height:1.5}
.cta-card{background:var(--navy); color:var(--silver); border-radius:8px; padding:22px; display:grid; gap:12px; border:1px solid var(--navy-line)}
.cta-card strong{font-family:var(--f-display); font-stretch:108%; font-size:1.125rem; color:var(--on-navy); line-height:1.25}
.cta-card p{font-size:.9375rem}
.cta-card .btn{background:var(--rust-hi); color:var(--navy); justify-self:start}
.cta-card .email{color:var(--on-navy); font-size:.875rem}
@media (max-width: 960px){ .doc{grid-template-columns:minmax(0,1fr)} .doc-side{position:static; grid-template-columns:repeat(auto-fit,minmax(260px,1fr))} }

/* FAQ */
.faq{border-top:1px solid var(--line); max-width:52em}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer; list-style:none; padding:18px 44px 18px 0; position:relative; font-weight:600; font-size:1.0625rem; line-height:1.4}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; position:absolute; right:6px; top:14px; font-family:var(--f-mono); font-size:1.375rem; line-height:1; color:var(--accent)}
.faq details[open] summary::after{content:"−"}
.faq summary:hover{color:var(--accent)}
.faq details p{padding:0 0 20px; color:var(--ink-2); max-width:46em}

/* Related services */
.related{display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:16px}
.rel{display:grid; gap:8px; align-content:start; background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:18px 20px 20px; text-decoration:none; color:var(--ink); transition:border-color .15s, box-shadow .15s}
.rel:hover{border-color:var(--ink-2); box-shadow:0 10px 24px -18px rgba(15,27,39,.45)}
.rel .k{font-family:var(--f-mono); font-size:var(--t-xs); color:var(--accent); letter-spacing:.06em}
.rel strong{font-family:var(--f-display); font-stretch:106%; font-size:1.0625rem; line-height:1.3}
.rel p{color:var(--ink-2); font-size:.9063rem; line-height:1.5}
.rel .go{font-weight:600; font-size:.875rem; color:var(--accent); margin-top:4px}

/* CTA band */
.cta-band{background:var(--navy-2); color:var(--silver); border-top:1px solid var(--navy-line)}
.cta-band .wrap{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:22px 48px; padding-block:56px}
.cta-band h2{color:var(--on-navy)}
.cta-band p{max-width:38em; margin-top:10px}
.cta-band .btn-primary{background:var(--rust-hi); color:var(--navy)}
.cta-band .actions{display:flex; flex-wrap:wrap; gap:12px}

/* Footer: four columns */
.site-footer .wrap{grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr))}
@media (max-width: 960px){ .site-footer .wrap{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width: 560px){ .site-footer .wrap{grid-template-columns:minmax(0,1fr)} }

/* 404 */
.nf{min-height:50vh; display:grid; align-content:center; gap:16px}
.nf ul{list-style:none; margin:8px 0 0; padding:0; display:grid; gap:8px}

.sec-head.solo{grid-template-columns:minmax(0,1fr); margin-bottom:28px}
