/* Hinton AI Consulting Group — site styles
   Layout: executive brief. Dark navy bands bracket airy white reading sections; mono labels act like control IDs. */
:root{
  --bg:#ffffff; --surface:#f4f6f9; --line:#dde2ea; --ink:#0d1626; --ink-2:#3f4a5c; --ink-3:#5f697c;
  --navy:#0b1730; --navy-2:#13213f; --on-navy:#e8edf5; --on-navy-2:#a3b0c6; --navy-line:#24345a;
  --accent:#0a7699; --accent-soft:#e3f2f7; --cyan:#4fc6e6; --danger:#b42f2f;
  --f-display:"Newsreader", Georgia, "Times New Roman", serif;
  --f-body:"IBM Plex Sans", "Segoe UI", Helvetica, Arial, sans-serif;
  --f-mono:"IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
  --wrap:1180px; --gutter:clamp(16px,4vw,40px);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#080e1a; --surface:#0e1729; --line:#1f2c45; --ink:#e7ecf4; --ink-2:#b2bccb; --ink-3:#95a1b5;
  --navy:#050a14; --navy-2:#0c1528; --on-navy:#e8edf5; --on-navy-2:#9dabc2; --navy-line:#1d2b48;
  --accent:#4fc6e6; --accent-soft:#0f2a38; --cyan:#4fc6e6; --danger:#f08080; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#080e1a; --surface:#0e1729; --line:#1f2c45; --ink:#e7ecf4; --ink-2:#b2bccb; --ink-3:#95a1b5;
  --navy:#050a14; --navy-2:#0c1528; --on-navy:#e8edf5; --on-navy-2:#9dabc2; --navy-line:#1d2b48;
  --accent:#4fc6e6; --accent-soft:#0f2a38; --cyan:#4fc6e6; --danger:#f08080; color-scheme:dark}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 var(--f-body);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:var(--accent)}
h1,h2,h3{font-family:var(--f-display);font-weight:500;text-wrap:balance;margin:0;letter-spacing:-.01em}
h1{font-size:clamp(2.4rem,5.6vw,4.4rem);line-height:1.04}
h2{font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.12}
h3{font-size:1.3rem;line-height:1.25}
p{margin:0}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.prose{max-width:66ch;color:var(--ink-2)}
.prose p+p{margin-top:1em}
.label{font:500 .74rem/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.navy .label{color:var(--cyan)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--bg);padding:8px 12px;z-index:100}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ph{border-bottom:1px dashed currentColor;opacity:.85}

/* header */
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--navy) 95%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--navy-line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:20px;height:68px}
.brand{display:flex;align-items:center;gap:12px;color:var(--on-navy);text-decoration:none}
.mark{width:34px;height:34px;flex:none}
.brand b{font:600 1.02rem/1.1 var(--f-display);letter-spacing:.01em;display:block}
.brand small{font:500 .62rem/1.2 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--on-navy-2)}
nav.main ul{display:flex;gap:2px;list-style:none;margin:0;padding:0}
nav.main a{display:block;padding:8px 10px;color:var(--on-navy-2);text-decoration:none;font-size:.88rem;font-weight:500}
nav.main a:hover{color:var(--on-navy)}
nav.main a[aria-current="page"]{color:var(--on-navy);box-shadow:inset 0 -2px 0 var(--cyan)}
nav.main a.nav-cta{background:var(--cyan);color:#06121f;margin-left:8px;border-radius:3px}
nav.main a.nav-cta[aria-current="page"]{box-shadow:none}
.menu-btn{display:none;background:none;border:1px solid var(--navy-line);color:var(--on-navy);font:500 .8rem var(--f-mono);letter-spacing:.1em;padding:8px 12px;border-radius:3px;cursor:pointer}
@media (max-width:1080px){
  .menu-btn{display:block}
  nav.main{position:absolute;left:0;right:0;top:68px;background:var(--navy);border-bottom:1px solid var(--navy-line);display:none;max-height:calc(100vh - 68px);overflow-y:auto}
  nav.main.open{display:block}
  nav.main ul{flex-direction:column;padding:12px var(--gutter) 20px}
  nav.main a{padding:12px 4px;font-size:1rem;border-bottom:1px solid var(--navy-line)}
  nav.main a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--cyan);padding-left:14px}
  nav.main a.nav-cta{margin:14px 0 0;text-align:center}
}

/* buttons */
.btns{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:3px;font:600 .95rem/1.2 var(--f-body);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:transform .2s, background .2s}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--cyan);color:#06121f}
.btn-ghost{border-color:var(--navy-line);color:var(--on-navy);background:transparent}
.btn-ghost:hover{border-color:var(--on-navy-2)}
.btn-dark{background:var(--ink);color:var(--bg)}
.btn-outline{border-color:var(--ink);color:var(--ink);background:transparent}
.btn .arr{font-family:var(--f-mono)}
.btn svg{width:18px;height:18px;flex:none}

/* sections */
section.band{padding-block:clamp(64px,9vw,112px)}
.navy{background:var(--navy);color:var(--on-navy)}
.navy .prose,.navy p{color:var(--on-navy-2)}
.tint{background:var(--surface)}
.head{display:grid;gap:16px;margin-bottom:44px;max-width:760px}
.link-mono{font:500 .85rem var(--f-mono)}

/* hero */
.hero{position:relative;overflow:hidden;padding-block:clamp(72px,11vw,140px) clamp(64px,8vw,104px)}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.55;pointer-events:none}
.hero .wrap{position:relative;display:grid;gap:28px}
.hero h1 span{display:block}
.hero h1 .dim{color:var(--on-navy-2)}
.hero .lede{font-size:clamp(1.05rem,1.6vw,1.22rem);max-width:60ch;color:var(--on-navy-2)}
.subhero{padding-block:clamp(64px,9vw,112px) clamp(48px,6vw,80px)}
.subhero .wrap{display:grid;gap:22px}
.subhero h1{font-size:clamp(2.1rem,4.6vw,3.6rem);max-width:22ch}
.subhero .lede{max-width:64ch;font-size:1.1rem;color:var(--on-navy-2)}

/* service cards */
.practices-label{padding:28px 0 18px}
.svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.svc{background:var(--bg);padding:34px 30px 30px;display:grid;grid-template-rows:auto auto 1fr auto;gap:14px;text-decoration:none;color:inherit;transition:background .25s}
.svc:hover{background:var(--surface)}
.svc .code{font:500 .72rem var(--f-mono);letter-spacing:.12em;color:var(--ink-3)}
.svc p{color:var(--ink-2)}
.svc .more{font:500 .82rem var(--f-mono);color:var(--accent);letter-spacing:.04em}
@media (max-width:860px){.svc-grid{grid-template-columns:1fr}}

/* lifecycle */
.flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));border-top:1px solid var(--navy-line)}
.flow li{padding:22px 14px 0 0;position:relative;display:grid;gap:8px;align-content:start}
.flow li::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;border-radius:50%;background:var(--navy);border:1.5px solid var(--cyan)}
.flow .n{font:500 .72rem var(--f-mono);color:var(--on-navy-2)}
.flow b{font:500 1.15rem var(--f-display);color:var(--on-navy)}
.flow small{color:var(--on-navy-2);font-size:.84rem;line-height:1.45}
@media (max-width:980px){.flow{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:34px}}
@media (max-width:520px){.flow{grid-template-columns:1fr;border-top:0;border-left:1px solid var(--navy-line);row-gap:22px;padding-left:20px}.flow li{padding:0}.flow li::before{top:6px;left:-25px}}

/* split */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,80px);align-items:start}
.stack{display:grid;gap:18px;align-content:start;min-width:0}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.gaps{display:grid;margin:0;border-top:1px solid var(--line)}
.gap-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}
.gap-row dt{font:500 .78rem var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.gap-row dd{margin:0;color:var(--ink-2);font-size:.95rem}
@media (max-width:480px){.gap-row{grid-template-columns:1fr;gap:4px}}

/* chips / lists */
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.chips li{border:1px solid var(--line);padding:7px 12px;border-radius:2px;font-size:.88rem;color:var(--ink-2);background:var(--bg)}
.navy .chips li{border-color:var(--navy-line);background:transparent;color:var(--on-navy)}
.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 40px}
.cols.two{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:860px){.cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:540px){.cols,.cols.two{grid-template-columns:1fr}}
.item{padding:20px 0;border-top:1px solid var(--line);display:grid;gap:6px;align-content:start;min-width:0}
.item h3{font-size:1.12rem}
.item p{color:var(--ink-2);font-size:.94rem}
.navy .item{border-color:var(--navy-line)}
.navy .item h3{color:var(--on-navy)}

/* industries */
.ind{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.ind>div{background:var(--bg);padding:24px 22px;display:grid;gap:6px;align-content:start;min-width:0}
.ind h3{font-size:1.08rem}
.ind p{font-size:.88rem;color:var(--ink-2)}
@media (max-width:900px){.ind{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:460px){.ind{grid-template-columns:1fr}}

/* regions */
.regions{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:1px;background:var(--navy-line);border:1px solid var(--navy-line);list-style:none;margin:0;padding:0}
.regions li{background:var(--navy);padding:18px;display:grid;gap:4px}
.regions b{font:500 1.05rem var(--f-display)}
.regions small{font:500 .7rem var(--f-mono);letter-spacing:.1em;color:var(--on-navy-2);text-transform:uppercase}

/* numbered approach */
.steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}
.steps li{counter-increment:s;display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;padding:18px 0;border-top:1px solid var(--line)}
.steps li::before{content:counter(s,decimal-leading-zero);font:500 .85rem var(--f-mono);color:var(--accent);padding-top:3px}
.steps h3{font:600 1rem var(--f-body);margin-bottom:2px;letter-spacing:0}
.steps p{color:var(--ink-2);font-size:.93rem}
@media (max-width:760px){.steps{grid-template-columns:1fr}}

/* deliverables card */
.engage{border:1px solid var(--line);background:var(--bg);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.engage .l{background:var(--navy);color:var(--on-navy);padding:36px;display:grid;gap:16px;align-content:start}
.engage .l p{color:var(--on-navy-2)}
.engage .r{padding:36px}
.engage ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.engage ul li{padding:12px 0;border-bottom:1px solid var(--line);font-size:.95rem;display:flex;gap:10px}
.engage ul li::before{content:"✓";color:var(--accent);font-weight:600}
@media (max-width:820px){.engage{grid-template-columns:1fr}.engage ul{grid-template-columns:1fr}}

/* governance questions */
.qs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--navy-line);border:1px solid var(--navy-line);counter-reset:q;list-style:none;margin:0;padding:0}
.qs li{background:var(--navy);padding:24px;display:grid;gap:8px;counter-increment:q;font:500 1.15rem/1.3 var(--f-display);color:var(--on-navy)}
.qs li::before{content:"Q" counter(q,decimal-leading-zero);font:500 .72rem var(--f-mono);color:var(--cyan);letter-spacing:.1em}
@media (max-width:860px){.qs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:500px){.qs{grid-template-columns:1fr}}

.frameworks{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.frameworks>div{background:var(--bg);padding:22px 18px;display:grid;gap:6px;align-content:start}
.frameworks h3{font:500 .95rem var(--f-mono);letter-spacing:0}
.frameworks p{font-size:.84rem;color:var(--ink-2)}
@media (max-width:900px){.frameworks{grid-template-columns:repeat(2,minmax(0,1fr))}}
.notice{border-left:3px solid var(--accent);background:var(--accent-soft);padding:16px 20px;color:var(--ink);font-size:.93rem;max-width:80ch}

/* architecture */
.arch{display:grid}
.layer{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;align-items:center;padding:16px 0;position:relative}
.layer+.layer::before{content:"";position:absolute;left:99px;top:-10px;width:1px;height:20px;background:var(--cyan)}
.layer .box{border:1px solid var(--cyan);background:var(--navy-2);color:var(--on-navy);padding:14px 16px;text-align:center;font:500 1.02rem var(--f-display);border-radius:2px}
.layer .ctrl{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.layer .ctrl li{font:400 .78rem var(--f-mono);border:1px dashed var(--navy-line);color:var(--on-navy-2);padding:5px 9px;border-radius:2px}
.layer .ctrl li:first-child{color:var(--cyan);border:1px solid color-mix(in srgb,var(--cyan) 45%,transparent)}
@media (max-width:640px){.layer{grid-template-columns:1fr;gap:10px}.layer+.layer::before{left:50%}}
.perim{border:1px dashed var(--navy-line);padding:24px clamp(14px,3vw,28px) 16px;position:relative;margin-top:14px}
.perim>.label{position:absolute;top:-9px;left:20px;background:var(--navy);padding:0 8px}

.threats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 36px}
@media (max-width:860px){.threats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:540px){.threats{grid-template-columns:1fr}}
.tag{font:500 .7rem var(--f-mono);color:var(--accent);letter-spacing:.08em;text-transform:uppercase}

/* about */
.founder{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,80px)}
@media (max-width:860px){.founder{grid-template-columns:1fr}}
.monogram{aspect-ratio:4/5;max-width:100%;background:var(--navy);display:grid;place-items:center;position:relative;overflow:hidden;border:1px solid var(--line);margin:0}
.monogram span{font:500 clamp(5rem,12vw,8rem)/1 var(--f-display);color:var(--on-navy);letter-spacing:-.04em}
.monogram figcaption{position:absolute;bottom:18px;left:20px;right:20px;font:500 .72rem var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--on-navy-2);display:flex;justify-content:space-between}
.exp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);list-style:none;margin:0;padding:0}
.exp-grid li{background:var(--bg);padding:20px;display:grid;gap:4px}
.exp-grid b{font:500 1.05rem var(--f-display)}
.exp-grid span{font-size:.88rem;color:var(--ink-2)}
@media (max-width:820px){.exp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:460px){.exp-grid{grid-template-columns:1fr}}
.principle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--navy-line)}
.principle>div{padding:28px 24px 0 0;display:grid;gap:10px;align-content:start}
.principle h3{font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.1;color:var(--on-navy)}
@media (max-width:720px){.principle{grid-template-columns:1fr}}

/* credentials */
.cred-cat{display:grid;gap:18px}
.cred-cat+.cred-cat{margin-top:48px}
.cred-cat-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px;border-bottom:1px solid var(--line);padding-bottom:12px}
.cred-cat-head h3{font-size:1.4rem}
.cred-cat-head p{font-size:.9rem;color:var(--ink-3)}
.creds{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;list-style:none;margin:0;padding:0}
.cred{border:1px solid var(--line);background:var(--bg);padding:18px 18px 16px;display:grid;gap:6px;align-content:start;min-width:0;position:relative}
.cred .issuer{font:500 .68rem var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.cred b{font:600 .98rem/1.35 var(--f-body);color:var(--ink)}
.cred span.sub{font-size:.84rem;color:var(--ink-2);line-height:1.4}
.cred.hl{border-color:var(--accent);background:var(--accent-soft)}
.cred.ms::after{content:"Microsoft";position:absolute;top:14px;right:14px;font:500 .62rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--bg);background:var(--ink);padding:3px 6px;border-radius:2px}
.cred.ms{padding-right:96px}
.cred-key{display:flex;flex-wrap:wrap;gap:20px;list-style:none;margin:0 0 32px;padding:0;font:500 .74rem var(--f-mono);letter-spacing:.06em;color:var(--ink-2);text-transform:uppercase}
.cred-key li{display:flex;align-items:center;gap:8px}
.cred-key .sw{width:22px;height:14px;border:1px solid var(--accent);background:var(--accent-soft);border-radius:2px}
.cred-key .ms-sw{font:500 .6rem var(--f-mono);background:var(--ink);color:var(--bg);padding:2px 5px;border-radius:2px}

/* capability statement + downloads */
.capstat{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--navy-line)}
.capstat>div{padding:clamp(24px,4vw,40px);display:grid;gap:16px;align-content:start;min-width:0}
.capstat>div+div{border-left:1px solid var(--navy-line)}
@media (max-width:820px){.capstat{grid-template-columns:1fr}.capstat>div+div{border-left:0;border-top:1px solid var(--navy-line)}}
.facts{display:grid;margin:0}
.facts>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;padding:11px 0;border-bottom:1px solid var(--navy-line)}
.facts dt{font:500 .72rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--on-navy-2)}
.facts dd{margin:0;color:var(--on-navy);font-size:.94rem}
@media (max-width:460px){.facts>div{grid-template-columns:1fr;gap:2px}}
.dl-note{font-size:.86rem;color:var(--ink-2);border-left:2px solid var(--accent);padding-left:12px}
.navy .dl-note{color:var(--on-navy-2)}
.resource{border:1px solid var(--line);background:var(--bg);display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:24px;align-items:center;padding:24px clamp(20px,3vw,32px)}
.resource .doc{width:52px;height:64px;border:1.5px solid var(--ink);position:relative;display:grid;place-items:end start;padding:6px;font:500 .6rem var(--f-mono);color:var(--ink)}
.resource .doc::before{content:"";position:absolute;top:-1.5px;right:-1.5px;width:14px;height:14px;background:var(--bg);border-left:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}
.resource h3{font-size:1.2rem}
.resource p{color:var(--ink-2);font-size:.92rem;margin-top:4px}
@media (max-width:700px){.resource{grid-template-columns:1fr}.resource .doc{display:none}}

/* insights */
.ins-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
@media (max-width:900px){.ins-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.ins-grid{grid-template-columns:1fr}}
.ins{border-top:2px solid var(--ink);padding-top:18px;display:grid;gap:10px;align-content:start}
.ins .meta{display:flex;justify-content:space-between;font:500 .72rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.ins p{color:var(--ink-2);font-size:.94rem}

/* CTA bands */
.cta-band .wrap{display:grid;grid-template-columns:minmax(0,1.3fr) auto;gap:32px;align-items:end}
.cta-band .wrap>div{min-width:0}
.cta-band p{margin-top:14px;max-width:56ch}
@media (max-width:820px){.cta-band .wrap{grid-template-columns:1fr}}
.intl-cta{border-top:1px solid var(--navy-line)}
.intl-cta .wrap{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:28px;align-items:center;padding-block:40px}
.intl-cta .globe{width:56px;height:56px}
.intl-cta h2{font-size:clamp(1.4rem,2.4vw,1.8rem)}
.intl-cta p{margin-top:6px}
@media (max-width:820px){.intl-cta .wrap{grid-template-columns:1fr}.intl-cta .globe{display:none}}

/* form */
.form-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(32px,6vw,72px)}
@media (max-width:900px){.form-grid{grid-template-columns:1fr}}
form.consult{display:grid;gap:22px;border:1px solid var(--line);padding:clamp(20px,4vw,40px);background:var(--bg)}
.form-intro{display:grid;gap:6px}
.intl-flag{display:flex;gap:10px;align-items:center;font-size:.9rem;background:var(--accent-soft);border:1px solid var(--accent);padding:10px 14px}
.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
@media (max-width:560px){.row{grid-template-columns:1fr}}
.field{display:grid;gap:7px;min-width:0}
.field label,fieldset legend{font:600 .86rem var(--f-body);color:var(--ink)}
.hint{font-size:.8rem;color:var(--ink-3)}
.req{color:var(--accent)}
input[type=text],input[type=email],select,textarea{width:100%;font:400 .97rem var(--f-body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:2px;padding:12px 13px}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:var(--danger)}
textarea{min-height:160px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}
fieldset{border:0;padding:0;margin:0;display:grid;gap:10px;min-width:0}
legend{padding:0;margin-bottom:10px}
.checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media (max-width:560px){.checks{grid-template-columns:1fr}}
.checks label{display:flex;gap:10px;align-items:center;font-size:.93rem;color:var(--ink-2);border:1px solid var(--line);padding:10px 12px;border-radius:2px;cursor:pointer}
.checks input,.consent input{accent-color:var(--accent);width:16px;height:16px;flex:none}
.checks label:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}
.checks label:has(input:focus-visible){outline:2px solid var(--cyan);outline-offset:2px}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;color:var(--ink-2)}
.consent input{margin-top:4px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.err{color:var(--danger);font-size:.88rem;font-weight:500}
.fine{font-size:.82rem;color:var(--ink-3)}
.done{border:1px solid var(--accent);background:var(--accent-soft);padding:28px;display:grid;gap:10px}
.side-list{display:grid;margin-top:28px;border-top:1px solid var(--line)}
.side-list>div{padding:16px 0;border-bottom:1px solid var(--line);display:grid;gap:4px}
.side-list b{font:500 .76rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase}
.side-list span,.side-list address{color:var(--ink-2);font-size:.94rem;font-style:normal}
.aside-box{margin-top:28px;border:1px solid var(--line);padding:22px;display:grid;gap:12px}

/* legal pages */
.legal-body{display:grid;grid-template-columns:220px minmax(0,1fr);gap:clamp(28px,5vw,64px)}
@media (max-width:860px){.legal-body{grid-template-columns:1fr}}
.toc{position:sticky;top:96px;align-self:start;display:grid;gap:8px;font-size:.88rem}
.toc ol{margin:0;padding-left:1.2em;display:grid;gap:6px;color:var(--ink-3)}
.toc a{color:var(--ink-2);text-decoration:none}
.toc a:hover{color:var(--accent)}
@media (max-width:860px){.toc{position:static}}
.legal{max-width:70ch;color:var(--ink-2)}
.legal h2{font-size:1.5rem;color:var(--ink);margin:40px 0 12px;scroll-margin-top:90px}
.legal h2:first-of-type{margin-top:0}
.legal p,.legal ul{margin:0 0 14px}
.legal ul{padding-left:1.2em}
.legal li{margin-bottom:6px}
.legal address{font-style:normal}

/* 404 */
.nf{padding-block:clamp(72px,12vw,150px)}
.nf .code{font:500 clamp(4rem,14vw,9rem)/1 var(--f-mono);color:var(--cyan);letter-spacing:-.04em}
.nf-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1px;background:var(--navy-line);border:1px solid var(--navy-line);list-style:none;margin:0;padding:0}
.nf-links a{display:block;background:var(--navy);padding:18px;color:var(--on-navy);text-decoration:none}
.nf-links a:hover{background:var(--navy-2)}
.nf-links small{display:block;font:500 .7rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--on-navy-2);margin-top:4px}

/* footer */
footer.site{background:var(--navy);color:var(--on-navy-2);padding-block:64px 32px;border-top:1px solid var(--navy-line)}
.foot{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr)) minmax(0,1.2fr);gap:32px}
@media (max-width:1000px){.foot{grid-template-columns:repeat(3,minmax(0,1fr))}.foot .foot-brand{grid-column:1/-1}}
@media (max-width:560px){.foot{grid-template-columns:1fr}}
.foot-brand{display:grid;gap:14px;align-content:start}
.foot-brand p{font-size:.92rem;max-width:38ch}
.foot-h{font:500 .72rem var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--on-navy);margin:0 0 14px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.foot a{color:var(--on-navy-2);text-decoration:none;font-size:.92rem}
.foot a:hover{color:var(--on-navy);text-decoration:underline}
.foot-contact li{display:grid;gap:2px;font-size:.92rem}
.foot-contact small{font:500 .66rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--on-navy-2);opacity:.8}
.foot-contact span,.foot-contact a{color:var(--on-navy)}
.legal-bar{margin-top:48px;padding-top:22px;border-top:1px solid var(--navy-line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;font-size:.8rem}
.legal-bar ul{display:flex;flex-wrap:wrap;gap:18px;list-style:none;margin:0;padding:0}
.legal-bar a{color:var(--on-navy-2)}

.reveal{animation:rise .7s ease both}
@keyframes rise{from{opacity:.001;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
