@font-face{font-family:"Bricolage Grotesque";src:url(/assets/fonts/bricolage.woff2) format("woff2");font-weight:200 800;font-display:swap}
@font-face{font-family:"Public Sans";src:url(/assets/fonts/public-sans.woff2) format("woff2");font-weight:100 900;font-display:swap}
:root{--cobalt:#2236c7;--cobalt-deep:#1a2aa0;--ink:#0f1a4f;--paper:#f4f6fd;--marigold:#ffc83d;--mist:#d9dff7;--white:#fff;--muted:#47507f;--gutter:clamp(16px,4vw,56px);--max:1240px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 "Public Sans",system-ui,sans-serif}
img,svg{max-width:100%;display:block}
h1,h2,h3{font-family:"Bricolage Grotesque",system-ui,sans-serif;line-height:1.08;letter-spacing:-.02em;margin:0;font-weight:700;text-wrap:balance}
h1{font-size:clamp(2.5rem,6.4vw,5.25rem)}
h2{font-size:clamp(1.85rem,3.6vw,2.9rem)}
h3{font-size:1.35rem;line-height:1.2;letter-spacing:-.01em}
p{margin:0 0 1em;max-width:66ch}
a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--marigold);outline-offset:2px;box-shadow:0 0 0 2px var(--ink)}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.skip{position:absolute;left:-999px;top:8px;background:var(--white);padding:8px 14px;z-index:5}
.skip:focus{left:8px}
.bar{background:var(--white);color:var(--ink)}
.bar-in{display:flex;align-items:center;justify-content:space-between;gap:16px 28px;padding-block:18px;flex-wrap:wrap}
.brand{display:block}
.brand img{height:40px;width:auto}
.nav{display:flex;flex-wrap:wrap;gap:6px 24px;font-size:1rem}
.nav a{text-decoration:none;padding-block:4px;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current=page]{border-bottom-color:var(--cobalt)}
.hero{background:var(--cobalt);color:var(--white);padding-block:clamp(36px,6vw,76px) clamp(40px,6vw,72px)}
.hero h1{max-width:17ch}
.lede{font-size:clamp(1.15rem,1.9vw,1.4rem);line-height:1.45;max-width:46ch;margin:1.1em 0 0}
.acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.8em}
.btn{display:inline-block;padding:13px 22px;border-radius:4px;font:600 1.0625rem/1.2 "Public Sans",sans-serif;text-decoration:none;background:var(--marigold);color:var(--ink);border:2px solid var(--marigold);cursor:pointer}
.btn:hover{background:var(--white);border-color:var(--white)}
.btn.line{background:transparent;color:inherit;border-color:currentColor}
.btn.line:hover{background:var(--white);border-color:var(--white);color:var(--ink)}
.zones{margin-top:clamp(36px,5vw,60px)}
.zones-note{font-size:.95rem;margin:0 0 14px;max-width:70ch}
.zone{display:grid;grid-template-columns:172px 1fr;gap:12px;align-items:center;padding-block:3px}
.zone-name{display:flex;justify-content:space-between;gap:10px;font-size:.95rem}
.zone-time{font-variant-numeric:tabular-nums;opacity:.85}
.cells{display:grid;grid-template-columns:repeat(24,1fr);gap:2px}
.cell{height:24px;background:var(--cobalt-deep)}
.cell.on{background:var(--marigold)}
.cell:first-child{box-shadow:-3px 0 0 var(--white)}
.band{padding-block:clamp(52px,7vw,96px)}
.band.tint{background:var(--mist)}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px clamp(32px,6vw,88px);align-items:start}
.rows{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.rows>li{padding-block:20px;border-bottom:1px solid #a9b2d8}
.rows h3{margin-bottom:.3em}
.rows p{margin:0}
.steps{list-style:none;counter-reset:s;margin:0;padding:0}
.steps li{counter-increment:s;display:grid;grid-template-columns:2.6rem 1fr;padding-block:16px;border-top:1px solid #a9b2d8}
.steps li:before{content:counter(s);font:700 1.5rem/1.2 "Bricolage Grotesque",sans-serif;color:var(--cobalt)}
.steps h3{margin-bottom:.25em}
.steps p{margin:0}
.doors{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px)}
.doors h2{font-size:clamp(1.6rem,2.8vw,2.2rem);margin-bottom:.5em}
.note{border-left:4px solid var(--marigold);padding:4px 0 4px 16px;margin-top:1.6em;max-width:60ch}
.note p:last-child{margin:0}
.prose h2{font-size:1.6rem;margin:1.6em 0 .5em}
.prose h2:first-child{margin-top:0}
.prose ul{padding-left:1.2em;max-width:62ch}
.form{display:grid;gap:18px;max-width:600px}
.form label{display:grid;gap:6px;font-weight:600}
.form input,.form select,.form textarea{font:400 1.0625rem/1.4 "Public Sans",sans-serif;color:var(--ink);padding:11px 12px;border:1.5px solid var(--muted);border-radius:4px;background:var(--white);width:100%}
.form textarea{min-height:170px;resize:vertical}
.form small{font-weight:400;color:var(--muted);font-size:.95rem}
.trap{position:absolute;left:-9999px}
.foot{background:var(--ink);color:var(--white);padding-block:36px;font-size:.98rem}
.foot-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 40px}
.foot p{margin:0}
.foot nav{display:flex;flex-wrap:wrap;gap:6px 20px}
@media (max-width:820px){.split,.doors{grid-template-columns:1fr}}
@media (max-width:600px){.zone{grid-template-columns:1fr;gap:3px;padding-block:6px}.zone-name{justify-content:flex-start}.cell{height:18px}.cells{gap:1px}}
