/* BharatFirm site v2 — white theme, full-width bands, registrar precision (see DESIGN.md).
   Layout: full-bleed bands; content in a wide fluid container; real due dates are the main visual, no background texture. */
:root{
  color-scheme: light;
  --white:#FFFFFF; --paper:#F6F7FA; --ink:#181A27; --muted:#555A6B; --line:#E3E6ED;
  --brand:#9B1C2E; --brand-dark:#7E1424; --brand-soft:#FBEFF1;
  --marigold:#E8A21A; --marigold-soft:#FDF4E1; --leaf:#1E7A4B; --leaf-soft:#E7F4EC;
  /* category colours (text-safe on white) */
  --c-gst:#9B1C2E; --c-tds:#9A6100; --c-it:#6B3FA0; --c-roc:#1F5FAD; --c-llp:#0E7C86; --c-lab:#1E7A4B; --c-fema:#B4430C; --c-msme:#4B5163;
  --f-display:"Anek Latin","Segoe UI",system-ui,sans-serif;
  --f-body:"Public Sans","Segoe UI",system-ui,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --gutter:clamp(16px,4vw,64px); --max:1440px; --r:14px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--white);color:var(--ink);font:400 16px/1.6 var(--f-body);-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:inherit}
p{margin:0}
h1,h2,h3,h4{font-family:var(--f-display);margin:0;text-wrap:balance;letter-spacing:-.01em;line-height:1.08}
h1{font-size:clamp(2.6rem,6vw,5rem);font-weight:760}
h2{font-size:clamp(1.9rem,3.8vw,3rem);font-weight:720}
h3{font-size:1.28rem;font-weight:700;line-height:1.2}
.container{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.band{padding-block:clamp(56px,8vw,104px)}
.band.paper{background:var(--paper)}
.band.ink{background:var(--ink);color:#FFFFFF}
.band.brand{background:var(--brand);color:#FFFFFF}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font:500 .78rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--brand)}
.eyebrow::before{content:"";width:18px;height:3px;background:var(--marigold);border-radius:2px}
.band.ink .eyebrow,.band.brand .eyebrow{color:#FFD58A}
.lede{color:var(--muted);font-size:clamp(1.05rem,1.4vw,1.2rem);max-width:62ch}
.band.ink .lede,.band.brand .lede{color:rgba(255,255,255,.82)}
.sec-head{display:flex;flex-direction:column;gap:14px;margin-bottom:clamp(28px,4vw,48px);max-width:820px}
.sec-head.row{max-width:none;flex-direction:row;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px}
.sec-head.row > div{display:flex;flex-direction:column;gap:14px;max-width:780px}
:focus-visible{outline:3px solid var(--marigold);outline-offset:3px;border-radius:6px}
.mono{font-family:var(--f-mono)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 .97rem/1 var(--f-body);padding:15px 22px;border-radius:999px;border:1.5px solid var(--brand);background:var(--brand);color:#FFFFFF;text-decoration:none;cursor:pointer;white-space:nowrap;transition:transform .15s ease, box-shadow .15s ease, background .15s ease}
.btn:hover{background:var(--brand-dark);transform:translateY(-2px);box-shadow:0 10px 22px -12px rgba(155,28,46,.7)}
.btn.ghost{background:#FFFFFF;color:var(--ink);border-color:var(--line)}
.btn.ghost:hover{border-color:var(--ink);background:#FFFFFF;box-shadow:none}
.btn.wa{background:var(--leaf);border-color:var(--leaf)}
.btn.wa:hover{background:#17633D;box-shadow:0 10px 22px -12px rgba(30,122,75,.7)}
.btn.light{background:#FFFFFF;color:var(--brand);border-color:#FFFFFF}
.btn.light:hover{background:#FFF7F8}
.btn svg{width:18px;height:18px;flex:none}
.link{color:var(--brand);font-weight:600;text-decoration:none;display:inline-flex;gap:6px;align-items:center}
.link:hover{text-decoration:underline}
.link::after{content:"→";transition:transform .15s}
.link:hover::after{transform:translateX(3px)}

/* header */
.topbar{background:var(--ink);color:#FFFFFF;font-size:.86rem}
.topbar .container{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-block:8px;flex-wrap:wrap}
.topbar a{color:#FFD58A;font-weight:600;text-decoration:none}
.topbar .pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:#4CC48A;margin-right:8px;box-shadow:0 0 0 0 rgba(76,196,138,.7);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(76,196,138,.6)}70%{box-shadow:0 0 0 8px rgba(76,196,138,0)}100%{box-shadow:0 0 0 0 rgba(76,196,138,0)}}
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:12px}
.brand-link{display:flex;flex:none;text-decoration:none}
.navlinks{display:flex;align-items:center;gap:6px}
.navlinks a:not(.btn){text-decoration:none;font-weight:500;font-size:.96rem;color:var(--muted);padding:9px 12px;border-radius:8px}
.navlinks a:not(.btn):hover{color:var(--ink);background:var(--paper)}
.navlinks a[aria-current="page"]{color:var(--brand);background:var(--brand-soft)}
.navlinks .btn{margin-left:8px;padding:12px 18px}
.menu{display:none;background:#FFFFFF;border:1px solid var(--line);border-radius:10px;padding:9px 14px;font:600 .92rem var(--f-body);color:var(--ink);cursor:pointer}
@media (max-width:1040px){
  .navlinks{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:2px;padding:12px var(--gutter) 20px;background:#FFFFFF;border-bottom:1px solid var(--line);box-shadow:0 20px 30px -24px rgba(0,0,0,.25)}
  .navlinks.open{display:flex}
  .navlinks a:not(.btn){padding:12px 10px;font-size:1.05rem}
  .navlinks .btn{margin:8px 0 0}
  .menu{display:block}
}

/* ticker */
/* the label is opaque and the track starts after it, so chips never run under "Due next" */
.ticker{--tk-pad:calc(var(--gutter) + 116px);border-block:1px solid var(--line);background:#FFFFFF;overflow:hidden;position:relative}
.ticker .label{position:absolute;left:0;top:0;bottom:0;z-index:2;width:var(--tk-pad);display:flex;align-items:center;gap:8px;padding:0 0 0 var(--gutter);background:linear-gradient(90deg,#FFFFFF 84%,rgba(255,255,255,0));font:600 .74rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--brand)}
.track{display:flex;gap:12px;width:max-content;padding-block:12px;padding-left:var(--tk-pad);animation:scroll 60s linear infinite}
.ticker:hover .track{animation-play-state:paused}
.tk{display:inline-flex;align-items:center;gap:10px;padding:7px 14px;border-radius:999px;background:var(--paper);font-size:.9rem;white-space:nowrap}
.tk b{font:600 .82rem var(--f-mono)}
.tk .d{font:500 .78rem var(--f-mono);color:var(--muted)}
.tk.soon{background:var(--brand-soft)} .tk.soon .d{color:var(--brand)}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(calc(var(--tk-pad) / 2 - 50%))}}

/* hero */
.hero{background:#FFFFFF}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,480px);gap:clamp(32px,5vw,80px);align-items:center;padding-block:clamp(40px,6vw,80px)}
.hero-grid > *{min-width:0}
.intro{display:flex;flex-direction:column;gap:24px}
.hero h1{font-size:clamp(2.5rem,5vw,4.25rem)}
.hero h1 em{font-style:normal;color:var(--brand);position:relative;white-space:nowrap}
.hero h1 em::after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:.12em;background:var(--marigold);border-radius:4px;transform-origin:left;animation:underline 1.1s .4s cubic-bezier(.2,.8,.2,1) both}
@keyframes underline{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.cta{display:flex;flex-wrap:wrap;gap:12px}
.trust{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.trust li{font-size:.9rem;font-weight:500;padding:8px 14px;border-radius:999px;background:#FFFFFF;border:1px solid var(--line)}
.trust li::before{content:"✓";color:var(--leaf);font-weight:800;margin-right:7px}
@media (max-width:980px){.hero-grid{grid-template-columns:1fr}}

.card{background:#FFFFFF;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 24px 50px -32px rgba(24,26,39,.35)}

/* hero slider: calendar first, then a company's first month. Swipe, or use the buttons; initHeroSlider() in site.js.
   The track's bottom padding leaves room for card shadows inside the scroll container. */
.hslider{display:flex;flex-direction:column;gap:14px;min-width:0}
.hs-track{display:flex;align-items:center;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding-bottom:44px;margin-bottom:-44px}
.hs-track::-webkit-scrollbar{display:none}
.hs-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start}
.hs-nav{display:flex;justify-content:center;gap:8px}
.hs-dot{font:600 .72rem/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:#FFFFFF;color:var(--muted);cursor:pointer}
.hs-dot:hover{border-color:var(--ink);color:var(--ink)}
.hs-dot[aria-current="true"]{background:var(--brand);border-color:var(--brand);color:#FFFFFF}

/* slide 2: next filing + an example company's first month */
.stack{display:flex;flex-direction:column;gap:16px}
.next-card{padding:22px 24px;display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center}
.next-card .big{font:760 3.4rem/1 var(--f-display);color:var(--brand);font-variant-numeric:tabular-nums}
.next-card .big small{display:block;font:500 .72rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.next-card .what{display:flex;flex-direction:column;gap:4px;min-width:0}
.next-card .what b{font:700 1.15rem var(--f-display)}
.next-card .what span{color:var(--muted);font-size:.92rem}
.ledger{position:relative;padding:22px 22px 18px 44px}
.ledger::before{content:"";position:absolute;left:16px;top:0;bottom:0;width:4px;background:var(--brand);border-radius:2px}
.ledger::after{content:"";position:absolute;left:26px;top:16px;bottom:16px;border-left:2px dotted var(--marigold)}
.lhead{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.lhead strong{font:700 1.1rem var(--f-display)}
.tag{font:500 .68rem/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;padding:5px 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand);white-space:nowrap}
.cin{font:400 .75rem var(--f-mono);color:var(--muted);margin:2px 0 10px;overflow-wrap:anywhere}
.steps{list-style:none;margin:0;padding:0}
.steps li{display:grid;grid-template-columns:20px 1fr auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:.92rem}
.steps li > span:nth-child(2){min-width:0}
.dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);background:#FFFFFF}
.done .dot{background:var(--leaf);border-color:var(--leaf)}
.now .dot{border-color:var(--marigold);animation:ring 1.8s infinite}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(232,162,26,.55)}80%{box-shadow:0 0 0 7px rgba(232,162,26,0)}100%{box-shadow:0 0 0 0 rgba(232,162,26,0)}}
.when{font:400 .75rem var(--f-mono);color:var(--muted);white-space:nowrap}
.now .when{color:var(--ink);font-weight:500}
.note{font-size:.76rem;color:var(--muted);margin-top:8px}

/* hero month calendar: built from DUES by initMonthCal() in site.js */
.mcal{padding:clamp(18px,2.2vw,26px);display:flex;flex-direction:column;gap:14px;width:100%}
.mcal-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.mcal-head h2{font-size:1.45rem;font-weight:720}
.mcal-count{font:500 .76rem var(--f-mono);color:var(--muted)}
.mcal table{width:100%;border-collapse:collapse;table-layout:fixed}
.mcal th{font:500 .68rem var(--f-mono);letter-spacing:.08em;color:var(--muted);padding:0 0 6px;text-align:center}
.mcal th abbr{text-decoration:none}
.mcal td{text-align:center;vertical-align:top;padding:2px 0;height:48px}
.mcal .dn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;font:500 .9rem var(--f-mono);font-variant-numeric:tabular-nums}
.mcal td.past .dn{color:#A0A4B2}
.mcal td.today .dn{box-shadow:inset 0 0 0 2px var(--marigold);font-weight:600}
.mcal td.next .dn{background:var(--brand);color:#FFFFFF;font-weight:600}
.mcal td.today.next .dn{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px var(--marigold)}
.mcal .dots{display:flex;justify-content:center;gap:3px;margin-top:3px;height:6px}
.mcal i{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor}
.mcal td.past .dots{opacity:.4}
.mcal-key{display:flex;flex-wrap:wrap;gap:6px 14px;font:500 .7rem var(--f-mono);color:var(--muted)}
.mcal-key span{display:inline-flex;align-items:center;gap:6px}
.mcal-next{border-top:1px solid var(--line);padding-top:12px}
.mcal-next h3{font:600 .7rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.mcal-next ol{list-style:none;margin:0;padding:0}
.mcal-next li{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.mcal-next li:last-child{border-bottom:0;padding-bottom:0}
.mcal-next .nd{font:500 .82rem var(--f-mono);color:var(--muted);font-variant-numeric:tabular-nums}
.mcal-next .nf{font-weight:600;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* category chips */
.chip{display:inline-flex;align-items:center;gap:6px;font:600 .72rem/1 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;padding:6px 9px;border-radius:999px;white-space:nowrap;border:1px solid currentColor;background:#FFFFFF}
.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.cat-gst{color:var(--c-gst)} .cat-tds{color:var(--c-tds)} .cat-it{color:var(--c-it)} .cat-roc{color:var(--c-roc)}
.cat-llp{color:var(--c-llp)} .cat-lab{color:var(--c-lab)} .cat-fema{color:var(--c-fema)} .cat-msme{color:var(--c-msme)}

/* audience strip */
.aud{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.aud > div{background:#FFFFFF;border:1px solid var(--line);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;gap:8px;min-width:0;transition:transform .2s, box-shadow .2s, border-color .2s}
.aud > div:hover{transform:translateY(-4px);box-shadow:0 20px 40px -28px rgba(24,26,39,.4);border-color:#D2D6DF}
.aud b{font:700 1.15rem var(--f-display)}
.aud span{color:var(--muted);font-size:.94rem}
.aud .ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand)}
.aud .ic svg{width:22px;height:22px}
@media (max-width:1100px){.aud{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.aud{grid-template-columns:1fr}}

/* services */
.svcs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.svc{background:#FFFFFF;border:1px solid var(--line);border-radius:var(--r);padding:28px;display:flex;flex-direction:column;gap:12px;min-width:0;position:relative;overflow:hidden;transition:transform .2s, box-shadow .2s}
.svc::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--accent,var(--brand));transform:scaleX(.18);transform-origin:left;transition:transform .35s ease}
.svc:hover{transform:translateY(-4px);box-shadow:0 24px 44px -30px rgba(24,26,39,.45)}
.svc:hover::before{transform:scaleX(1)}
.svc .code{font:600 .72rem var(--f-mono);letter-spacing:.12em;color:var(--accent,var(--brand))}
.svc p{color:var(--muted)}
.pills{margin:4px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.pills li{font:500 .76rem var(--f-mono);border:1px solid var(--line);border-radius:6px;padding:4px 8px;background:var(--paper)}
@media (max-width:1100px){.svcs{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.svcs{grid-template-columns:1fr}}

/* due list (next 30 days) */
.due-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 18px}
.due{display:grid;grid-template-columns:62px 1fr auto;gap:14px;align-items:center;background:#FFFFFF;border:1px solid var(--line);border-radius:12px;padding:12px 16px;min-width:0;transition:border-color .2s, transform .2s}
.due:hover{border-color:#CBD0DA;transform:translateX(3px)}
.due > div{min-width:0}
.dbox{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;background:var(--paper);padding:6px 4px;line-height:1}
.dbox b{font:760 1.5rem var(--f-display)}
.dbox span{font:500 .66rem var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.due .t{font-weight:600;display:block}
.due .s{display:block;color:var(--muted);font-size:.86rem;line-height:1.4;margin-top:2px}
.due .meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.cd{font:600 .74rem var(--f-mono);padding:5px 9px;border-radius:999px;background:var(--paper);color:var(--muted);white-space:nowrap}
.cd.soon{background:var(--brand-soft);color:var(--brand)}
.cd.today{background:var(--brand);color:#FFFFFF}
.cd.past{background:#FFFFFF;color:#8A8FA0;border:1px dashed var(--line)}
.due.is-past{opacity:.6}
@media (max-width:900px){.due-list{grid-template-columns:1fr}}

/* updates cards */
.ups{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.up{background:#FFFFFF;border:1px solid var(--line);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;gap:12px;min-width:0;transition:transform .2s, box-shadow .2s}
.up:hover{transform:translateY(-4px);box-shadow:0 24px 44px -30px rgba(24,26,39,.45)}
.up time{font:500 .8rem var(--f-mono);color:var(--muted)}
.up p{color:var(--muted);font-size:.95rem}
.up .row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.new{font:700 .66rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:#FFFFFF;background:var(--brand);padding:5px 8px;border-radius:999px}
@media (max-width:1100px){.ups{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.ups{grid-template-columns:1fr}}

/* process */
.proc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:s}
.proc li{counter-increment:s;display:flex;flex-direction:column;gap:10px;min-width:0;position:relative;padding-top:58px}
.proc li::before{content:counter(s);position:absolute;top:0;left:0;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font:760 1.2rem var(--f-display);background:var(--brand);color:#FFFFFF}
.proc li::after{content:"";position:absolute;top:21px;left:52px;right:-14px;border-top:2px dashed #D9DCE4}
.proc li:last-child::after{display:none}
.proc p{color:var(--muted);font-size:.95rem}
@media (max-width:900px){.proc{grid-template-columns:1fr 1fr}.proc li::after{display:none}}
@media (max-width:520px){.proc{grid-template-columns:1fr}}

/* pricing */
.plans{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.plan{background:#FFFFFF;border:1px solid var(--line);border-radius:var(--r);padding:26px;display:flex;flex-direction:column;gap:14px;min-width:0;transition:transform .2s, box-shadow .2s}
.plan:hover{transform:translateY(-4px);box-shadow:0 24px 44px -30px rgba(24,26,39,.45)}
.plan.feat{border:2px solid var(--brand);box-shadow:0 30px 50px -34px rgba(155,28,46,.6)}
.pop{align-self:flex-start;font:600 .68rem var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:#FFFFFF;background:var(--brand);padding:5px 9px;border-radius:999px}
.price{font:760 2.2rem/1 var(--f-display);font-variant-numeric:tabular-nums}
.price small{font:400 .84rem var(--f-body);color:var(--muted)}
.incl{font:500 .8rem var(--f-mono);color:var(--muted);margin-top:-6px}
.plan ul{margin:0;padding-left:18px;color:var(--muted);font-size:.93rem;display:flex;flex-direction:column;gap:6px}
.plan .btn{margin-top:auto}
.terms{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:22px;font-size:.9rem;color:var(--muted)}
.terms b{color:var(--ink)}
.draft{display:inline-block;font:500 .76rem var(--f-mono);background:var(--marigold-soft);color:#7A4B00;padding:6px 10px;border-radius:8px;align-self:flex-start}
@media (max-width:1100px){.plans{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.plans{grid-template-columns:1fr}}

/* faq */
.faq{display:flex;flex-direction:column;gap:10px}
.faq details{background:#FFFFFF;border:1px solid var(--line);border-radius:12px;transition:border-color .2s}
.faq details[open]{border-color:#CBD0DA}
.faq summary{cursor:pointer;list-style:none;padding:18px 22px;font:650 1.08rem var(--f-display);display:flex;justify-content:space-between;gap:16px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:500 1.5rem/1 var(--f-mono);color:var(--brand);flex:none;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 22px 20px;color:var(--muted);max-width:80ch}

/* split layouts */
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,72px);align-items:start}
.split > *{min-width:0}
@media (max-width:900px){.split{grid-template-columns:1fr}}

/* contact form */
form.lead{display:grid;grid-template-columns:1fr 1fr;gap:14px;background:#FFFFFF;border:1px solid var(--line);border-radius:var(--r);padding:clamp(20px,3vw,32px);box-shadow:0 24px 50px -36px rgba(24,26,39,.4)}
.f{display:flex;flex-direction:column;gap:6px;min-width:0}
.f.full{grid-column:1/-1}
label{font:500 .84rem var(--f-body);color:var(--muted)}
input,select,textarea{font:400 1rem var(--f-body);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:13px;width:100%}
input:focus,select:focus,textarea:focus{background:#FFFFFF;border-color:var(--brand);outline:none;box-shadow:0 0 0 3px var(--brand-soft)}
textarea{min-height:100px;resize:vertical}
.msg{grid-column:1/-1;font-size:.92rem}
.msg.ok{color:var(--leaf)} .msg.err{color:var(--brand)}
.check{display:flex;gap:10px;align-items:flex-start;font:400 .92rem var(--f-body);color:var(--ink);cursor:pointer}
.check input{width:18px;height:18px;padding:0;margin:2px 0 0;flex:none;accent-color:var(--brand)}
.consent{grid-column:1/-1;font-size:.84rem;color:var(--muted)}
.consent a{color:var(--brand)}
@media (max-width:640px){form.lead{grid-template-columns:1fr}}
.ways{display:flex;flex-direction:column;gap:12px;margin-top:10px}
.way{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.way code{font:500 .96rem var(--f-mono);user-select:all;overflow-wrap:anywhere}
.copy-btn{font:500 .8rem var(--f-body);background:#FFFFFF;border:1px solid var(--line);border-radius:6px;padding:5px 10px;color:var(--ink);cursor:pointer}

/* CTA band */
.cta-band{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.cta-band h2{max-width:22ch}

/* footer */
footer.site{background:var(--ink);color:rgba(255,255,255,.75);padding-block:56px 32px;font-size:.92rem}
.fgrid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:32px}
.fgrid > *{min-width:0}
.fgrid h4{font:600 .78rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:#FFD58A;margin-bottom:12px}
.fgrid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.fgrid a{text-decoration:none;color:rgba(255,255,255,.85)}
.fgrid a:hover{color:#FFFFFF;text-decoration:underline}
.fbrand{display:flex;flex-direction:column;gap:14px;max-width:38ch}
.fbase{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);font-size:.84rem}
.fbase a{color:#FFFFFF}
.flegal{margin-top:10px;font-size:.8rem;color:rgba(255,255,255,.6)}
.prose{max-width:72ch;display:flex;flex-direction:column;gap:12px}
.prose h2{font-size:1.4rem;margin-top:18px}
.prose ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.prose p,.prose li{color:var(--muted)}
@media (max-width:900px){.fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.fgrid{grid-template-columns:1fr}}

/* page hero (inner pages) */
.phero{background:#FFFFFF;border-bottom:1px solid var(--line)}
.phero .container{padding-block:clamp(44px,6vw,80px);display:flex;flex-direction:column;gap:16px}
.crumbs{font:500 .8rem var(--f-mono);color:var(--muted)}
.crumbs a{color:var(--muted);text-decoration:none} .crumbs a:hover{color:var(--brand)}

/* calendar page */
.cal-tools{display:flex;flex-direction:column;gap:14px;position:sticky;top:calc(env(safe-area-inset-top,0px) + 68px);z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);padding-block:14px;border-bottom:1px solid var(--line)}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.fbtn{font:600 .78rem var(--f-mono);letter-spacing:.04em;text-transform:uppercase;padding:8px 12px;border-radius:999px;border:1.5px solid var(--line);background:#FFFFFF;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:all .15s}
.fbtn::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--cc,var(--muted))}
.fbtn[aria-pressed="true"]{border-color:var(--cc,var(--ink));color:var(--cc,var(--ink));background:#FFFFFF;box-shadow:inset 0 0 0 1px var(--cc,var(--ink))}
.fbtn[aria-pressed="false"]{opacity:.55}
.months{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.mbtn{flex:none;font:600 .86rem var(--f-body);padding:9px 14px;border-radius:10px;border:1px solid var(--line);background:#FFFFFF;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:64px}
.mbtn small{font:500 .64rem var(--f-mono);color:var(--muted)}
.mbtn[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:#FFFFFF}
.mbtn[aria-pressed="true"] small{color:#FFD58A}
.mbtn.cur:not([aria-pressed="true"]){border-color:var(--brand);color:var(--brand)}
.search{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.search input{max-width:360px;background:#FFFFFF}
.count{font:500 .82rem var(--f-mono);color:var(--muted)}
.mgroup{margin-top:32px}
.mgroup h3{display:flex;align-items:baseline;gap:12px;font-size:1.5rem;margin-bottom:14px}
.mgroup h3 small{font:500 .8rem var(--f-mono);color:var(--muted)}
.rows{display:flex;flex-direction:column;gap:8px}
.crow{display:grid;grid-template-columns:70px minmax(0,1.3fr) minmax(0,1.2fr) auto;gap:16px;align-items:center;background:#FFFFFF;border:1px solid var(--line);border-left:4px solid var(--cc,var(--line));border-radius:12px;padding:12px 16px}
.crow.is-past{opacity:.55}
.crow .t{font-weight:650}
.crow .s{color:var(--muted);font-size:.88rem;line-height:1.4;display:block}
.crow .who{font-size:.86rem;color:var(--muted)}
.crow .right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
@media (max-width:860px){.crow{grid-template-columns:62px minmax(0,1fr) auto}.crow .who{grid-column:2/3}}
.empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px;margin-top:24px}

/* guide page */
.toc{display:flex;flex-wrap:wrap;gap:8px}
.toc a{font:600 .82rem var(--f-body);text-decoration:none;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:#FFFFFF}
.toc a:hover{border-color:var(--brand);color:var(--brand)}
.law{display:grid;grid-template-columns:280px 1fr;gap:clamp(20px,4vw,56px);padding-block:40px;border-top:1px solid var(--line)}
.law > *{min-width:0}
.law .side{display:flex;flex-direction:column;gap:10px;position:sticky;top:110px;align-self:start}
.law .side p{color:var(--muted);font-size:.94rem}
.law ul.facts{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.law ul.facts li{background:var(--paper);border-radius:12px;padding:16px 18px;min-width:0}
.law ul.facts b{display:block;font:650 1rem var(--f-display);margin-bottom:4px}
.law ul.facts span{color:var(--muted);font-size:.92rem}
@media (max-width:900px){.law{grid-template-columns:1fr}.law .side{position:static}.law ul.facts{grid-template-columns:1fr}}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:#FFFFFF}
table.matrix{border-collapse:collapse;width:100%;min-width:720px;font-size:.92rem}
table.matrix th,table.matrix td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
table.matrix thead th{font:600 .72rem var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--paper)}
table.matrix td.c{text-align:center;font-weight:700}
.yes{color:var(--leaf)} .no{color:#A0A4B2} .maybe{color:#9A6100}
table.matrix tbody tr:hover{background:#FAFBFC}

/* updates page timeline */
.tl{position:relative;display:flex;flex-direction:column;gap:22px;padding-left:34px}
.tl::before{content:"";position:absolute;left:10px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--brand),var(--marigold))}
.tli{position:relative;background:#FFFFFF;border:1px solid var(--line);border-radius:var(--r);padding:24px 26px;display:flex;flex-direction:column;gap:12px}
.tli::before{content:"";position:absolute;left:-30px;top:28px;width:14px;height:14px;border-radius:50%;background:#FFFFFF;border:3px solid var(--brand)}
.tli .row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.tli time{font:600 .84rem var(--f-mono);color:var(--brand)}
.tli p{color:var(--muted)}
.todo{background:var(--leaf-soft);border-radius:10px;padding:14px 16px;font-size:.94rem}
.todo b{color:var(--leaf)}
.todo ul{margin:6px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.fine{font-size:.84rem;color:var(--muted);max-width:90ch}

/* mobile bar */
.mbar{display:none}
@media (max-width:640px){
  .mbar{display:grid;grid-template-columns:1fr 1fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:50;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:#FFFFFF;border-top:1px solid var(--line);box-shadow:0 -10px 24px -18px rgba(0,0,0,.3)}
  .mbar .btn{padding:13px 10px}
  footer.site{padding-bottom:110px}
}

/* reveal: elements are visible at rest; this only adds a gentle lift once in view */
.lift{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.lift.pre{transform:translateY(14px)}
@media (prefers-reduced-motion:reduce){
  html,.hs-track{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .lift.pre{transform:none}
}
.ticker .label .topbar-dot{width:8px;height:8px;border-radius:50%;background:var(--brand);animation:pulse 2s infinite}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* fixes after browser review */
.band.paper .law ul.facts li{background:#FFFFFF;border:1px solid var(--line)}
@media (max-width:700px){
  .cal-tools{position:static;padding-top:18px}
  .filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
  .fbtn{flex:none}
  .crow{grid-template-columns:56px minmax(0,1fr);gap:4px 14px;align-items:start}
  .crow .dbox{grid-row:span 3}
  .crow .who{grid-column:2;font-size:.82rem}
  .crow .right{grid-column:2;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;margin-top:4px}
}
