/* TopReach design system: tokens, type, header, footer, buttons. Shared by the static website (site.css)
   and the portal-rendered pricing and service pages (pricing.css). Self-hosted font only: the CSP is font-src 'self'. */
/* Calibri is used from the visitor's own computer (Windows/Office). Everyone else gets Carlito, an OFL font with
   identical letter widths, self-hosted (the CSP is font-src 'self'). Calibri has regular and bold only. */
@font-face{font-family:"Carlito";src:url("/assets/fonts/carlito-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Carlito";src:url("/assets/fonts/carlito-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Carlito";src:url("/assets/fonts/carlito-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
:root{
  --bg:#ffffff;--tone:#f5f5f2;--tone-2:#ecece7;--ink:#17191b;--ink-soft:#4f555b;--ink-dim:#80868c;
  --line:#dcdcd6;--line-strong:#767b80;--accent:#bd3f17;--accent-ink:#ffffff;--accent-hover:#9f3412;--accent-tone:#fbeee8;
  --ok:#246343;--ok-tone:#e7f2ec;--bad:#a32e23;--bad-tone:#fbeceb;--warn:#80500c;--warn-tone:#fbf3e3;
  --inv-bg:#17191b;--inv-ink:#f5f5f2;--inv-soft:#b9bcbf;
  --font:Calibri,"Carlito",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --step-small:clamp(.8125rem,.79rem + .1vw,.875rem);--step-body:clamp(1.125rem,1.06rem + .3vw,1.3125rem);
  --step-lead:clamp(1.375rem,1.2rem + .75vw,1.75rem);--step-head:clamp(2rem,1.3rem + 3.2vw,4rem);--step-display:clamp(2.75rem,1.4rem + 5.2vw,6rem);
  --margin:clamp(16px,3.4vw,48px);--gap:clamp(16px,2vw,28px);--section:clamp(96px,11vw,200px);--max:1440px;
  --radius:6px;--ease:cubic-bezier(.2,.7,.2,1);--fast:160ms;--mid:320ms;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:88px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--step-body);line-height:1.5;letter-spacing:-.005em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img,svg{display:block;max-width:100%;height:auto}
h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.008em;line-height:1.08;text-wrap:balance}
p{margin:0;text-wrap:pretty}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.18em}
a:hover{text-decoration-thickness:2px}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:2px}
::selection{background:var(--ink);color:var(--bg)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:var(--margin);top:-80px;z-index:100;background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:var(--radius);text-decoration:none}
.skip:focus{top:12px}

/* Buttons: one shape across the site */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:48px;padding:0 22px;border-radius:var(--radius);border:1.5px solid transparent;font-weight:700;font-size:1rem;letter-spacing:-.01em;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background-color var(--fast) var(--ease),color var(--fast) var(--ease),border-color var(--fast) var(--ease),transform var(--fast) var(--ease)}
.btn:active{transform:scale(.97)}
.btn-accent{background:var(--accent);color:var(--accent-ink)}
.btn-accent:hover{background:var(--accent-hover);text-decoration:none}
.btn-line{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-line:hover{background:var(--ink);color:var(--bg);text-decoration:none}
.btn-small{min-height:40px;padding:0 16px;font-size:.9375rem}
.btn[disabled]{opacity:.45;cursor:not-allowed}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;transition:border-color var(--mid) var(--ease)}
.site-header.is-scrolled{border-bottom-color:var(--line)}
.site-header .bar{max-width:var(--max);margin:0 auto;padding:0 var(--margin);height:68px;display:flex;align-items:center;gap:28px}
.wordmark{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:1.1875rem;letter-spacing:-.008em;text-decoration:none;min-height:44px}
.wordmark img{width:22px;height:22px}
.nav-desktop{display:flex;gap:4px;margin-left:12px}
.nav-desktop a,.nav-login{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;font-size:.9375rem;color:var(--ink-soft);text-decoration:none;border-radius:var(--radius);transition:color var(--fast) var(--ease)}
.nav-desktop a:hover,.nav-login:hover,.nav-desktop a[aria-current]{color:var(--ink)}
.nav-desktop a[aria-current]{text-decoration:underline;text-underline-offset:.5em;text-decoration-thickness:2px}
.nav-actions{margin-left:auto;display:flex;align-items:center;gap:8px}
.nav-mobile{display:none}
@media (max-width:899px){
  .nav-desktop,.nav-actions{display:none}
  .nav-mobile{display:block;margin-left:auto}
  .nav-mobile>summary{list-style:none;cursor:pointer;min-height:44px;min-width:44px;display:inline-flex;align-items:center;gap:8px;padding:0 14px;border:1.5px solid var(--ink);border-radius:var(--radius);font-weight:700;font-size:.9375rem}
  .nav-mobile>summary::-webkit-details-marker{display:none}
  .nav-mobile>summary::after{content:"";width:14px;height:8px;border-top:2px solid currentColor;border-bottom:2px solid currentColor}
  .nav-mobile[open]>summary::after{height:2px;border-bottom:0}
  .nav-mobile:not([open])>nav{display:none}
  .nav-mobile>nav{position:fixed;left:0;right:0;top:68px;bottom:0;background:var(--bg);padding:12px var(--margin) 32px;display:flex;flex-direction:column;overflow-y:auto;border-top:1px solid var(--line)}
  .nav-mobile>nav a:not(.btn){display:flex;align-items:center;min-height:56px;font-size:1.5rem;font-weight:700;letter-spacing:-.008em;text-decoration:none;border-bottom:1px solid var(--line)}
  .nav-mobile>nav .btn{margin-top:24px;width:100%}
}

/* Footer: invitation over a cropped name */
.site-footer{background:var(--inv-bg);color:var(--inv-ink);overflow:hidden;margin-top:0}
.site-footer a{color:var(--inv-ink)}
.footer-top{max-width:var(--max);margin:0 auto;padding:clamp(72px,9vw,140px) var(--margin) 56px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap)}
.footer-invite{grid-column:1/span 5}
.footer-line{font-size:clamp(2.25rem,1.4rem + 3.4vw,4.5rem);font-weight:700;letter-spacing:-.008em;line-height:.98;margin-bottom:28px}
.footer-alt{margin-top:16px;color:var(--inv-soft)}
.footer-cols{grid-column:7/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.footer-cols h2{font-size:var(--step-small);font-weight:700;letter-spacing:0;color:var(--inv-soft);margin-bottom:14px}
.footer-cols ul{list-style:none;margin:0;padding:0}
.footer-cols li a{display:inline-flex;align-items:center;min-height:36px;font-size:.9375rem;text-decoration:none}
.footer-cols li a:hover{text-decoration:underline}
.footer-legal{max-width:var(--max);margin:0 auto;padding:16px var(--margin);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;font-size:var(--step-small);color:var(--inv-soft)}
.footer-legal span:last-child{display:flex;flex-wrap:wrap;gap:4px 20px}
.footer-legal a{color:var(--inv-soft);display:inline-flex;align-items:center;min-height:32px}
.footer-name{margin:0;padding:0 var(--margin);font-size:clamp(5rem,26vw,24rem);font-weight:700;letter-spacing:-.008em;line-height:.8;white-space:nowrap;color:#6a6f74;transform:translateY(18%);user-select:none}
@media (max-width:899px){
  .footer-invite,.footer-cols{grid-column:1/-1}
  .footer-cols{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:32px}
  .footer-invite .btn{width:100%}
  .footer-name{font-size:34vw}
}

/* TopReach public website. Direction: "the sentence is the layout" (taste skill, .taste-skill/direction.json).
   Each section is a short statement with its proof beside it. One accent, on actions only. */
main{display:block}
picture{display:contents}
main>*:not(.hero):not(.switches):not(.stages):not(.closing):not(.mobile-cta):not(.plan-strip){max-width:var(--max);margin-left:auto;margin-right:auto;padding-left:var(--margin);padding-right:var(--margin)}
.kicker{font-size:var(--step-small);font-weight:700;color:var(--ink-soft);margin-bottom:18px;letter-spacing:0}
.lead{font-size:var(--step-lead);line-height:1.38;color:var(--ink-soft);max-width:38ch;letter-spacing:-.008em}
.muted{color:var(--ink-soft)}
.small{font-size:var(--step-small)}
.section-title{font-size:var(--step-head);max-width:20ch}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.note{background:var(--tone);border-radius:var(--radius);padding:16px 20px;margin:24px 0}
.tag{display:inline-block;font-size:var(--step-small);font-weight:700;background:var(--warn-tone);color:var(--warn);padding:4px 10px;border-radius:var(--radius);margin-bottom:24px}
.page-intro{padding-top:clamp(56px,8vw,128px);padding-bottom:clamp(40px,5vw,72px)}
.page-intro h1{font-size:clamp(2.25rem,1.2rem + 5.2vw,6rem);max-width:16ch;margin-bottom:28px;line-height:.98;letter-spacing:-.008em}
.crumbs{padding-top:24px}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;font-size:var(--step-small);color:var(--ink-soft)}
.crumbs li+li::before{content:"/";margin-right:6px;color:var(--ink-dim)}
.crumbs a{display:inline-flex;align-items:center;min-height:32px}
.crumbs+section .page-intro,.crumbs+.page-intro{padding-top:clamp(32px,5vw,80px)}
.band{background:var(--tone);border-radius:var(--radius);padding:clamp(32px,5vw,72px)!important;margin-top:var(--section);margin-bottom:var(--section);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 48px;align-items:center}
.band>h2,.band>p{grid-column:1}
.band>.btn,.band>.actions{grid-column:2;grid-row:1/span 2;margin-top:0!important}
@media (max-width:899px){.band{grid-template-columns:1fr}.band>.btn,.band>.actions{grid-column:1;grid-row:auto;margin-top:20px!important}}
.band h2{font-size:clamp(1.75rem,1.2rem + 2vw,3rem);margin-bottom:14px}
.band p{color:var(--ink-soft);max-width:56ch}

.panel{background:var(--tone);border-radius:var(--radius);padding:clamp(24px,3vw,48px)}
.panel p,.contact-layout p{max-width:62ch}

/* Forms */
label{display:block;font-weight:700;font-size:1rem;margin:20px 0 8px}
input:not([type=checkbox]):not([type=range]),select,textarea{width:100%;min-height:52px;padding:12px 14px;border:1.5px solid var(--line-strong);border-radius:var(--radius);background:var(--bg);font-size:1.0625rem;transition:border-color var(--fast) var(--ease)}
input:hover,select:hover,textarea:hover{border-color:var(--ink)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:1px;border-color:var(--ink)}
input[aria-invalid=true]{border-color:var(--bad)}
input:disabled{background:var(--tone);color:var(--ink-dim)}
textarea{resize:vertical;min-height:120px}
.form-error{color:var(--bad);font-weight:700;margin-top:12px}
.consent{display:flex;gap:12px;align-items:flex-start;margin-top:20px}
.consent input{width:22px;height:22px;margin-top:3px;flex:none;accent-color:var(--accent)}
.consent label{margin:0;font-weight:400;font-size:.9375rem}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.link-btn{background:none;border:0;padding:0;min-height:44px;color:var(--ink);text-decoration:underline;cursor:pointer;font-size:.9375rem;display:block;margin-top:8px}
form .btn[type=submit]{margin-top:24px}

/* ---- Hero: search your business, over a real street in London, Ontario ---- */
/* No overflow clipping: the restaurant suggestions list must be able to hang below the hero. The photo and scrim are
   pinned to the hero's own box (inset:0), and z-index keeps the open list above the plan strip that follows. */
.hero{position:relative;z-index:5;isolation:isolate;min-height:calc(100svh - 68px);display:grid;align-items:center;color:#fff;background:var(--inv-bg)}
.hero-inner{max-width:var(--max);margin:0 auto;width:100%;padding:clamp(56px,10vh,120px) var(--margin) clamp(72px,12vh,140px);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;gap:var(--gap)}
.hero-copy{min-width:0;position:relative;z-index:2}
/* Drawn map of downtown London, Ontario: flat tone steps on the ink field, one orange pin */
.hero-map{position:relative;align-self:stretch;min-height:520px;margin-right:calc(-1 * var(--margin));overflow:hidden;border-radius:28px 0 0 28px}
.hero-map svg{position:absolute;inset:0;width:100%;height:100%;display:block;background:#1d2023}
.hm-block{fill:#2a2e32}.hm-block-2{fill:#30353a}.hm-park{fill:#2b3a31}
.hm-river{fill:none;stroke:#29404d;stroke-width:54;stroke-linecap:round}.hm-river-2{stroke-width:40}
.hm-label{fill:#8b9197;font-size:15px;font-weight:700;letter-spacing:.02em}
.hm-pin path{fill:#5b6167}.hm-pin circle{fill:#1d2023}
.hm-pin-you path{fill:var(--accent)}.hm-pin-you circle{fill:#fff}
.hm-ring{fill:none;stroke:var(--accent);stroke-width:3;opacity:0;transform-box:fill-box;transform-origin:center}
@media (prefers-reduced-motion:no-preference){.hm-ring{animation:hm-ping 2.8s var(--ease) infinite}}
@keyframes hm-ping{0%{transform:scale(.4);opacity:.9}80%,100%{transform:scale(2.2);opacity:0}}
.hero-h1{font-size:clamp(3rem,1.4rem + 6.4vw,7.5rem);line-height:.92;letter-spacing:-.008em;font-weight:700;max-width:11ch;color:#fff}
.hero-kicker{display:block;font-size:var(--step-body);font-weight:700;letter-spacing:-.01em;line-height:1.4;color:#ffd9c7;margin-bottom:20px}
.hero-lead{font-size:var(--step-lead);line-height:1.38;letter-spacing:-.008em;color:#e9e9e6;max-width:40ch;margin:28px 0 36px}
.hero-search{max-width:820px}
.search-box{display:flex;align-items:center;gap:8px;background:#fff;border-radius:999px;padding:8px;box-shadow:0 24px 60px rgba(0,0,0,.28)}
.search-box .ac-wrap{position:relative;flex:1;display:flex;align-items:center}
.search-icon{position:absolute;left:18px;width:24px;height:24px;fill:none;stroke:var(--ink-soft);stroke-width:2.2;stroke-linecap:round;pointer-events:none}
.search-box input{border:0!important;background:transparent!important;min-height:60px!important;padding:0 16px 0 54px!important;font-size:clamp(1.0625rem,1rem + .4vw,1.3125rem)!important;color:var(--ink);border-radius:999px!important}
.search-box input:focus-visible{outline:none!important}
.search-box:focus-within{box-shadow:0 0 0 4px var(--accent),0 24px 60px rgba(0,0,0,.28)}
.search-box .btn{min-height:60px;padding:0 28px;border-radius:999px;font-size:1.0625rem;margin-top:0!important}
.audit-bar .audit-note{margin-top:16px;font-size:var(--step-small);color:#dcdcd8}
.hero-facts{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 0;padding:0}
.hero-facts li{border:1.5px solid rgba(255,255,255,.4);border-radius:999px;padding:6px 14px;font-size:.9375rem;font-weight:700}
/* Suggestions from the compiled search (app.js fills #audit-suggestions) */
.ac-list{position:absolute;z-index:20;left:-8px;right:-8px;top:calc(100% + 14px);list-style:none;margin:0;padding:8px;background:#fff;color:var(--ink);border-radius:20px;box-shadow:0 24px 60px rgba(0,0,0,.3)}
.ac-list [role=option]{display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-radius:12px;cursor:pointer;min-height:56px;justify-content:center}
.ac-list [role=option] strong{font-size:1.0625rem}
.ac-list [role=option] span{font-size:.9375rem;color:var(--ink-soft)}
.ac-list [role=option]:hover,.ac-list [aria-selected=true]{background:var(--tone)}
.ac-credit{font-size:.75rem;color:var(--ink-soft);padding:8px 16px 4px;text-align:right}
@media (max-width:899px){
  .hero{min-height:0}
  .hero-inner{padding:56px var(--margin) 72px}
  .hero-h1{font-size:clamp(2.75rem,13vw,4.5rem)}
  .search-box{flex-direction:column;align-items:stretch;border-radius:24px;padding:8px}
  .search-box .btn{width:100%;border-radius:18px}
  .search-box input{border-radius:18px!important}
  .ac-list{left:0;right:0}
  .hero-inner{grid-template-columns:minmax(0,1fr)}
  .hero-map{min-height:0;height:240px;margin:16px calc(-1 * var(--margin)) -72px;border-radius:0}
}
/* Status labels and search glyph shared by the stages panel and showcase */
.ui-glass{font-size:1.15em;color:var(--ink-soft)}
.ok>b,b.ok{background:var(--ok-tone);color:var(--ok)}
.bad>b,b.bad{background:var(--bad-tone);color:var(--bad)}
.unk>b,b.unk{background:var(--warn-tone);color:var(--warn)}

/* ---- Plan strip: seven tall photo cards sliding continuously (site.js: pause; reduced motion: swipe row) ---- */
main>.plan-strip{max-width:none;padding:var(--section) 0 0}
.ps-head{max-width:var(--max);margin:0 auto 32px;padding:0 var(--margin);display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap}
.ps-pause{min-height:48px;padding:0 20px;border-radius:999px;border:1.5px solid var(--ink);background:var(--bg);color:var(--ink);font-weight:700;font-size:1rem;cursor:pointer}
.ps-pause:hover{background:var(--ink);color:var(--bg)}
.ps-viewport{overflow:hidden}
.ps-track{list-style:none;margin:0;padding:0 0 8px;display:flex;gap:16px;width:max-content;animation:ps-slide 70s linear infinite}
@keyframes ps-slide{to{transform:translateX(calc(-50% - 8px))}}
.plan-strip:hover .ps-track,.plan-strip:focus-within .ps-track,.plan-strip.is-paused .ps-track,.plan-strip.is-offscreen .ps-track{animation-play-state:paused}
.ps-card{flex:none;width:clamp(260px,26vw,400px);aspect-ratio:3/4;border-radius:28px;overflow:hidden;position:relative;background:var(--inv-bg)}
.ps-card a{position:absolute;inset:0;display:block;color:#fff;text-decoration:none}
.ps-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 600ms var(--ease)}
.ps-card a:hover .ps-photo{transform:scale(1.04)}
.ps-fade{position:absolute;inset:auto 0 0 0;height:62%;background:linear-gradient(to top,rgba(16,17,19,.94) 0%,rgba(16,17,19,.72) 42%,rgba(16,17,19,0) 100%)}
.ps-text{position:absolute;left:clamp(20px,2vw,32px);right:clamp(20px,2vw,32px);bottom:clamp(20px,2vw,32px);display:grid;gap:4px}
.ps-price{font-size:clamp(2.25rem,1.6rem + 1.8vw,3.5rem);font-weight:700;line-height:1}
.ps-price small{font-size:1rem;font-weight:400;color:#e2e2de}
.ps-name{font-size:clamp(1.375rem,1.1rem + .8vw,1.875rem);font-weight:700;color:#d8d8d4;line-height:1.1}
.ps-meta{font-size:.9375rem;color:#e8e8e4;margin-top:4px}
.ps-card a:focus-visible{outline:3px solid var(--accent);outline-offset:-3px;border-radius:28px}
.ps-note{max-width:var(--max);margin:16px auto 0;padding:0 var(--margin);text-align:center;color:var(--ink-soft);font-size:var(--step-small)}
@media (max-width:899px){.ps-card{width:72vw;border-radius:22px}}
@media (prefers-reduced-motion:reduce){
  .ps-viewport{overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--margin)}
  .ps-track{animation:none!important}
  .ps-card{scroll-snap-align:start}
  .ps-card[aria-hidden=true]{display:none}
}

/* ---- Proof: the scoring method as six category cards ---- */
.method{padding-top:clamp(72px,8vw,128px)}
.method-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:28px var(--gap);padding-bottom:clamp(28px,3vw,40px);border-bottom:1px solid var(--line)}
.method-intro .kicker{color:var(--accent);margin-bottom:12px}
.method-intro h2{font-size:clamp(2.25rem,1.4rem + 2.6vw,3.75rem);line-height:1.02;letter-spacing:-.012em;max-width:16ch;text-wrap:balance}
.method-lead{font-size:var(--step-body);color:var(--ink-soft);max-width:46ch;margin-top:16px;line-height:1.45;text-wrap:pretty}
.method-lead strong{color:var(--ink)}
.method-stats{display:flex;margin:0}
.method-stats>div{padding:0 clamp(16px,2vw,28px);border-left:1px solid var(--line)}
.method-stats>div:first-child{padding-left:0;border-left:0}
.method-stats dt{font-size:var(--step-small);color:var(--ink-soft);font-weight:700}
.method-stats dd{margin:2px 0 0;font-size:clamp(2rem,1.5rem + 1.4vw,2.75rem);font-weight:700;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.method-body{margin-top:clamp(24px,2.6vw,36px)}
.method-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.method-card{position:relative;background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:22px 22px 8px;overflow:clip;transition:border-color var(--fast) var(--ease),box-shadow var(--mid) var(--ease),transform var(--mid) var(--ease)}
.method-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--mid) var(--ease)}
.method-card:hover,.method-card:focus-within{border-color:#e9b8a6;box-shadow:0 1px 2px rgba(23,25,27,.04),0 12px 32px -12px rgba(189,63,23,.18)}
.method-card:hover::before,.method-card:focus-within::before{transform:scaleX(1)}
.mc-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.mc-head h3{font-size:clamp(1.25rem,1.1rem + .4vw,1.5rem);line-height:1.2;letter-spacing:-.01em}
.mc-weight{margin:0;flex:none;font-weight:700;font-size:1.125rem;color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap}
.mc-num{font-size:clamp(2rem,1.6rem + 1vw,2.5rem);line-height:1;letter-spacing:-.02em}
.mc-bar{height:4px;border-radius:4px;background:var(--tone-2);margin:16px 0 14px;overflow:hidden}
.mc-bar span{display:block;height:100%;border-radius:inherit;background:var(--accent);transform-origin:left}
.mc-bar[data-w="25"] span{width:25%}.mc-bar[data-w="20"] span{width:20%}.mc-bar[data-w="15"] span{width:15%}.mc-bar[data-w="5"] span{width:5%}
.mc-examples{font-size:1rem;line-height:1.45;color:var(--ink-soft);margin-bottom:10px;min-height:2.9em}
.mc-checks{border-top:1px solid var(--line)}
.mc-checks summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:48px;font-size:1rem;font-weight:700;color:var(--ink);border-radius:var(--radius)}
.mc-checks summary::-webkit-details-marker{display:none}
.mc-checks summary::after{content:"";flex:none;width:8px;height:8px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:translateY(-2px) rotate(45deg);transition:transform var(--mid) var(--ease)}
.mc-checks[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.mc-checks summary:hover span{color:var(--accent)}
.mc-checks summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.mc-checks ul{list-style:none;margin:0;padding:2px 0 16px;display:grid;gap:8px}
.mc-checks li{position:relative;padding-left:18px;font-size:.9375rem;line-height:1.4;color:var(--ink)}
.mc-checks li::before{content:"";position:absolute;left:2px;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--accent-tone);box-shadow:inset 0 0 0 1.5px var(--accent)}
.method-clients{margin-top:24px;color:var(--ink-soft);font-size:var(--step-small)}
@media (prefers-reduced-motion:no-preference){
  .method-card:hover{transform:translateY(-2px)}
  @supports (interpolate-size:allow-keywords){
    .mc-checks{interpolate-size:allow-keywords}
    .mc-checks::details-content{height:0;overflow:clip;transition:height 260ms var(--ease),content-visibility 260ms allow-discrete}
    .mc-checks[open]::details-content{height:auto}
  }
}
@media (max-width:1079px){.method-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:899px){
  .method-head{grid-template-columns:minmax(0,1fr);align-items:start}
  .method-stats>div{flex:1}
}
@media (max-width:639px){
  .method-grid{grid-template-columns:minmax(0,1fr);gap:12px}
  .method-card{padding:18px 18px 6px}
  .mc-examples{min-height:0}
}

/* ---- Features: sentences with switches ---- */
.switches{margin-top:var(--section)}
.switches .section-title{max-width:var(--max);margin:0 auto 40px;padding:0 var(--margin)}
.switch-band{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:var(--gap);min-height:20vh;padding:28px max(var(--margin),calc((100vw - var(--max)) / 2 + var(--margin)));transition:background-color var(--mid) var(--ease)}

.switch-line{font-size:clamp(1.75rem,1rem + 2.6vw,3.5rem);color:var(--ink-dim);transition:color var(--mid) var(--ease)}
.switch-detail{grid-column:1;font-size:1.0625rem;max-width:62ch;color:var(--ink);display:grid;grid-template-rows:0fr;opacity:0;transition:opacity var(--mid) var(--ease),margin var(--mid) var(--ease)}
.switch-band.on .switch-line{color:var(--ink)}
.switch-band.on .switch-detail{opacity:1;margin-top:12px}
.switch-band:not(.on) .switch-detail{height:0;overflow:hidden}
.switch-band.on:nth-child(3n+2){background:var(--accent-tone)}
.switch-band.on:nth-child(3n+3){background:var(--tone)}
.switch-band.on:nth-child(3n+4){background:var(--ok-tone)}
.switch{grid-column:2;grid-row:1/span 2;width:4.2rem;height:2.4rem;border-radius:999px;border:0;background:var(--tone-2);padding:4px;cursor:pointer;position:relative;flex:none;transition:background-color var(--mid) var(--ease)}
.switch i{position:absolute;top:4px;left:4px;width:calc(2.4rem - 8px);height:calc(2.4rem - 8px);border-radius:50%;background:var(--bg);box-shadow:0 1px 2px rgba(0,0,0,.18);transition:transform var(--mid) var(--ease)}
.switch[aria-checked=true]{background:var(--ink)}
.switch[aria-checked=true] i{transform:translateX(1.8rem)}
@media (max-width:899px){.switch-band{min-height:132px}.switch-line{font-size:6.4vw}.switch-detail{font-size:.9375rem}}

/* ---- How it works: drag through the stages ---- */
.stages{margin-top:var(--section);display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr auto;min-height:88svh}
.stages-copy{grid-row:1;grid-column:1;background:var(--tone);padding:clamp(40px,5vw,80px) var(--margin) 56px max(var(--margin),calc((100vw - var(--max)) / 2 + var(--margin)))}
.stages-title{font-size:var(--step-head);margin-bottom:clamp(28px,4vw,56px)}
.stage-clause{font-size:clamp(1.75rem,1.1rem + 2.2vw,3.25rem);line-height:1.02;letter-spacing:-.008em;max-width:14ch;margin-bottom:20px}
.stage-text p{max-width:40ch;color:var(--ink-soft)}
.stage-text{animation:fade 200ms var(--ease)}
.stage-static{padding-left:1.2em}
.stages-field{grid-row:1;grid-column:2;background:var(--inv-bg);display:grid;place-items:center;padding:48px var(--margin)}
.stage-ui{width:min(440px,100%);background:var(--bg);border-radius:var(--radius);padding:24px;display:grid;gap:10px;animation:fade 200ms var(--ease)}
.ui-label{font-size:var(--step-small);font-weight:700;color:var(--ink-soft)}
.ui-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:.9375rem}
.ui-row b{font-size:.8125rem;padding:3px 8px;border-radius:4px;background:var(--tone);white-space:nowrap}
.ui-actions{display:flex;gap:8px;margin-top:8px}
.ui-btn{background:var(--ink);color:var(--bg);border-radius:4px;padding:8px 14px;font-weight:700;font-size:.875rem}
.ui-btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.stages-control{grid-column:1/-1;grid-row:2;background:var(--tone);padding:20px max(var(--margin),calc((100vw - var(--max)) / 2 + var(--margin))) 28px}
.stages-control input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:44px;background:transparent;cursor:pointer;margin:0}
.stages-control input[type=range]::-webkit-slider-runnable-track{height:8px;background:linear-gradient(to right,var(--ink) var(--fill,0%),var(--line-strong) var(--fill,0%));border-radius:0}
.stages-control input[type=range]::-moz-range-track{height:8px;background:var(--line-strong)}
.stages-control input[type=range]::-moz-range-progress{height:8px;background:var(--ink)}
.stages-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:32px;height:32px;margin-top:-12px;background:var(--accent);border:0;border-radius:4px}
.stages-control input[type=range]::-moz-range-thumb{width:32px;height:32px;background:var(--accent);border:0;border-radius:4px}
.stage-names{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr)}
.stage-names li:nth-child(2){text-align:center;transform:translateX(-16%)}
.stage-names li:nth-child(3){text-align:center;transform:translateX(16%)}
.stage-names li:last-child{text-align:right}
.stage-names button{background:none;border:0;min-height:44px;padding:0 4px;font-size:1rem;color:var(--ink-soft);cursor:pointer;font-weight:400}
.stage-names .is-current button{color:var(--ink);font-weight:700}
.stages-field~.stages-control .stage-names button{mix-blend-mode:normal}
@keyframes fade{from{opacity:0}to{opacity:1}}
@media (max-width:899px){
  .stages{grid-template-columns:1fr;min-height:0}
  .stages-field{grid-row:1;grid-column:1;padding:32px var(--margin)}
  .stages-control{grid-row:2;background:var(--tone);padding:20px var(--margin) 0}
  .stages-control input[type=range]::-webkit-slider-thumb{width:40px;height:40px;margin-top:-16px}
  .stage-names{grid-template-columns:repeat(2,1fr);gap:0 12px}
  .stage-names li{text-align:left!important;transform:none!important}
  .stages-copy{grid-row:3;grid-column:1;padding:24px var(--margin) 48px}
  .stage-clause{font-size:9vw}
}

/* ---- Showcase: headline you can type ---- */
.showcase{padding-top:var(--section);min-height:70svh}
.showcase .section-title{font-size:var(--step-small);font-weight:700;letter-spacing:0;color:var(--ink-soft);margin-bottom:12px;max-width:none}
.type-line{border:0!important;padding:0!important;background:transparent!important;font-size:clamp(3rem,1.4rem + 6vw,8.25rem)!important;font-weight:700;letter-spacing:-.008em;line-height:1.05;min-height:0!important;caret-color:var(--accent);width:100%;border-bottom:2px solid var(--line)!important;border-radius:0!important}
.type-line:focus-visible{outline:none;border-bottom-color:var(--accent)!important}
.answer{margin-top:48px;max-width:560px}
.answer-rows{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:8px;animation:fade 200ms var(--ease)}
.answer-rows li{display:flex;align-items:center;gap:12px;background:var(--tone);border-radius:var(--radius);padding:14px 16px;font-weight:400}
.answer-rows b{margin-left:auto;font-size:.8125rem;color:var(--ink-soft);font-weight:400}
.answer-note{color:var(--ink-soft);margin-bottom:20px}
.examples{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:40px}
.examples button{background:none;border:0;padding:0;min-height:44px;font-size:1.0625rem;color:var(--ink-soft);text-decoration:underline;text-underline-offset:.2em;cursor:pointer}
.examples button:hover{color:var(--ink)}
@media (max-width:899px){.type-line{font-size:11vw!important}.answer{margin-top:28px}.examples{gap:8px}.examples button{background:var(--tone);text-decoration:none;padding:0 14px;border-radius:var(--radius);color:var(--ink)}}

/* ---- Industries block ---- */
.industries-block{padding-top:var(--section)}
.ib-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);align-items:end;margin-bottom:48px}
.ib-head h2{grid-column:1/span 7}
.ib-head p{grid-column:9/-1;color:var(--ink-soft)}
.ib-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.ib-list a{display:flex;flex-direction:column;gap:6px;text-decoration:none}
.ib-photo,.ig-photo{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);margin-bottom:12px;transition:transform var(--mid) var(--ease)}
.ib-list a:hover .ib-photo,.industry-grid a:hover .ig-photo{transform:scale(1.015)}
.ib-name{font-size:1.375rem;font-weight:700;letter-spacing:-.008em}
.ib-short{color:var(--ink-soft)}
.ib-caption{margin-top:20px;font-size:var(--step-small);color:var(--ink-soft)}
@media (max-width:899px){.ib-head h2,.ib-head p{grid-column:1/-1}.ib-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:559px){.ib-list{grid-template-columns:1fr}.ib-photo{aspect-ratio:3/2}}

/* ---- Pricing: one-time websites, monthly SEO, one-time audit ---- */
.pricing-block{padding-top:var(--section)}
.pricing-block .section-title{margin-bottom:20px}
.pricing-intro{font-size:var(--step-lead);color:var(--ink-soft);max-width:46ch;margin:0 0 56px;line-height:1.38;letter-spacing:-.008em}
.buy-title{font-size:clamp(1.5rem,1.1rem + 1.4vw,2.25rem);margin:0 0 20px;scroll-margin-top:96px}
.pb-group+.pb-group{margin-top:72px}
.pb-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.pb-card{background:var(--tone);border-radius:var(--radius);padding:clamp(24px,2.6vw,36px);display:flex;flex-direction:column;gap:12px}
.pb-card.pb-pick{background:var(--inv-bg);color:var(--inv-ink)}
.pb-card h4{font-size:clamp(1.375rem,1.1rem + .9vw,1.875rem);letter-spacing:-.008em;font-weight:700}
.pb-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;margin:4px 0}
.pb-amount{font-size:clamp(2.5rem,1.6rem + 2.6vw,4rem);font-weight:700;letter-spacing:-.008em;line-height:1}
.pb-amount small{font-size:1.0625rem;font-weight:400;letter-spacing:0;margin-right:2px}
.pb-period{font-size:1rem;color:var(--ink-soft)}
.pb-pick .pb-period,.pb-pick .pb-desc,.pb-pick .pb-scope{color:var(--inv-soft)}
.pb-desc{color:var(--ink-soft)}
.pb-scope{font-size:.9375rem;font-weight:700}
.pb-card .btn{margin-top:auto;align-self:stretch}
.pb-pick .btn-line{border-color:var(--inv-ink);color:var(--inv-ink)}
.pb-care{margin-top:20px;background:var(--accent-tone);border-radius:var(--radius);padding:18px 24px;max-width:none}
.pb-audit{margin-top:72px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px 40px;align-items:center;border-top:2px solid var(--ink);padding-top:28px}
.pb-audit h3{font-size:clamp(1.375rem,1.1rem + .9vw,1.875rem);margin-bottom:6px}
.pb-audit p:not(.pb-price){color:var(--ink-soft);max-width:60ch}
.plan-links{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:40px}
.plan-links a{display:inline-flex;align-items:center;min-height:44px;font-weight:700}
@media (max-width:899px){.pb-grid{grid-template-columns:1fr}.pb-audit{grid-template-columns:1fr}.pb-audit .btn{width:100%}}

/* ---- FAQ: wide heading, indented questions ---- */
.faq-block{padding-top:var(--section)}
.wide{font-size:clamp(2.5rem,1.4rem + 4vw,5.5rem);letter-spacing:-.008em;max-width:14ch}
.faq-list{margin-top:80px;margin-left:calc(100% / 12 * 4)}
.faq{border-radius:var(--radius);transition:background-color var(--mid) var(--ease);margin:0 -24px 12px;padding:0 24px}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:center;min-height:56px;padding:12px 0}
.faq summary::-webkit-details-marker{display:none}
.faq summary h3{font-size:clamp(1.1875rem,1rem + .5vw,1.5rem);font-weight:400;letter-spacing:-.008em;line-height:1.3}
.faq summary::after{content:"";flex:none;width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-3px);transition:transform var(--mid) var(--ease)}
.faq[open]{background:var(--tone)}
.faq[open] summary::after{transform:rotate(-135deg) translateY(-3px)}
.faq p{padding:0 0 24px;max-width:48ch;color:var(--ink-soft)}
/* Answers open with a height transition where the browser supports it; elsewhere they open instantly. */
@supports (interpolate-size:allow-keywords){
  :root{interpolate-size:allow-keywords}
  .faq::details-content{height:0;overflow:clip;transition:height 280ms var(--ease),content-visibility 280ms allow-discrete}
  .faq[open]::details-content{height:auto}
}
@media (max-width:899px){.faq-list{margin-left:0;margin-top:40px}.faq{margin:0 calc(var(--margin) * -1) 4px;padding:0 var(--margin);border-radius:0}}

/* ---- Closing: the idea again, inverted ---- */
.closing{margin-top:var(--section);background:var(--inv-bg);color:var(--inv-ink);min-height:80svh;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(72px,10vw,160px) max(var(--margin),calc((100vw - var(--max)) / 2 + var(--margin))) 48px}
.closing h2{font-size:clamp(3rem,1rem + 7vw,9rem);line-height:.92;letter-spacing:-.008em}
.closing-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:24px;margin-top:64px}
.closing-foot p{font-size:var(--step-lead);max-width:30ch;color:var(--inv-soft)}
.closing-foot .btn{min-height:56px;padding:0 28px}
.closing+.mobile-cta+*{border-top:1px solid #34383c}
@media (max-width:899px){.closing h2{font-size:13vw}.closing-foot .btn{width:100%}}

/* Mobile sticky call to action (app.js toggles .show) */
.mobile-cta{position:fixed;left:12px;right:12px;bottom:12px;z-index:40;display:none;gap:8px;padding:8px;background:var(--bg);border:1px solid var(--line);border-radius:10px;transform:translateY(140%);transition:transform var(--mid) var(--ease)}
.mobile-cta .btn{flex:1}
.mobile-cta.show{transform:none}
.at-end .mobile-cta{transform:translateY(140%)}
[data-page="/"] .footer-invite{display:none}
[data-page="/"] .footer-cols{grid-column:1/-1}
@media (max-width:899px){.mobile-cta{display:flex}}

/* Reveal on scroll (app.js adds .reveal then .in on the homepage) */
.reveal{opacity:0;transform:translateY(16px);transition:opacity 600ms var(--ease),transform 600ms var(--ease)}
.reveal.in{opacity:1;transform:none}
.rise{opacity:0;transform:translateY(12px);transition:opacity 480ms var(--ease),transform 480ms var(--ease)}
.rise.in{opacity:1;transform:none}

/* ---- Inner pages ---- */
.contact-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);padding-bottom:var(--section)}
.contact-layout form{grid-column:1/span 7}
.contact-layout form h2{font-size:1.75rem;margin-bottom:8px}
.contact-aside{grid-column:9/-1}
.aside-photo{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius);margin-bottom:28px}
.contact-aside h2{font-size:1.5rem;margin-bottom:16px}
.next-steps{padding-left:1.2em;display:grid;gap:10px;margin:0 0 20px}
#enquiry-form textarea{margin-bottom:4px}
.enq-done{grid-column:1/span 7;display:grid;gap:14px;align-content:start}
.enq-done:focus{outline:none}
.enq-done h2{font-size:clamp(1.75rem,1.3rem + 1.4vw,2.5rem)}
.reach{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:28px}
.reach-link{display:inline-flex;align-items:center;min-height:44px;font-size:1.25rem;font-weight:700}
#enquiry-panel{margin-top:28px;border-top:1px solid var(--line);padding-top:24px}
#enquiry-panel h3{font-size:1.25rem}
#enquiry-text{white-space:pre-wrap;background:var(--tone);border-radius:var(--radius);padding:16px;font:inherit;font-size:.9375rem;margin:12px 0 0}
#picked-place{margin-top:8px;color:var(--ink-soft)}
.filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.filter{min-height:44px;padding:0 18px;border-radius:999px;border:1.5px solid var(--line-strong);background:var(--bg);cursor:pointer;font-weight:700;transition:all var(--fast) var(--ease)}
.filter:hover{border-color:var(--ink)}
.filter.selected{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.service-list{list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.service-list.compact{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.service-card{display:flex;flex-direction:column;gap:10px;height:100%;padding:28px;border-radius:var(--radius);background:var(--tone);text-decoration:none;transition:background-color var(--fast) var(--ease)}
.service-card:hover{background:var(--tone-2)}
.service-card h2,.service-card h3{font-size:1.5rem;letter-spacing:-.008em}
.service-card p{color:var(--ink-soft)}
.sc-cat{font-size:var(--step-small);font-weight:700;color:var(--ink-soft)}
.sc-more{margin-top:auto;padding-top:12px;font-weight:700;text-decoration:underline;text-underline-offset:.2em}
@media (max-width:899px){.contact-layout form,.contact-aside{grid-column:1/-1}.service-list{grid-template-columns:1fr}}
.industry-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,3vw,48px)}
.industry-grid a{display:flex;flex-direction:column;gap:8px;text-decoration:none}
.industry-grid .ig-photo{aspect-ratio:3/2}
.industry-grid h2{font-size:clamp(1.75rem,1.2rem + 1.6vw,2.75rem)}
.industry-grid p{color:var(--ink-soft)}
.ig-flag{font-size:var(--step-small);font-weight:700;color:var(--accent)}
@media (max-width:899px){.industry-grid{grid-template-columns:1fr}}
.industry-hero,.about-hero{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);align-items:end;padding-bottom:var(--gap)}
.industry-hero>div,.about-hero>.page-intro{grid-column:1/span 7}
.industry-hero .page-intro{padding-bottom:0}
.industry-hero .page-intro h1{font-size:clamp(2.5rem,1.4rem + 3.8vw,5rem)}
.industry-photo,.about-photo{grid-column:9/-1;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius)}
@media (max-width:899px){.industry-hero>div,.about-hero>.page-intro,.industry-photo,.about-photo{grid-column:1/-1}.industry-photo,.about-photo{aspect-ratio:3/2}}
.searches,.matters,.ind-services{padding-top:clamp(72px,8vw,140px)}
.searches h2,.matters h2,.ind-services h2,.ind-more h2,.split h2{font-size:clamp(1.75rem,1.2rem + 2vw,3.25rem);max-width:22ch;margin-bottom:32px}
.search-chips{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.search-chips li{display:inline-flex;gap:10px;align-items:center;background:var(--tone);border-radius:999px;padding:12px 20px;font-size:1.125rem;font-weight:400}
.matters-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px var(--gap);counter-reset:m}
.matters-list li{counter-increment:m;border-top:2px solid var(--ink);padding-top:20px}
.matters-list h3{font-size:1.5rem;margin-bottom:10px}
.matters-list p{color:var(--ink-soft);max-width:48ch}
@media (max-width:899px){.matters-list{grid-template-columns:1fr}}
.ind-pricing{margin-top:28px;max-width:72ch}
.first-checks{padding-top:clamp(72px,8vw,140px)}
.first-checks h2{font-size:clamp(1.75rem,1.2rem + 2vw,3.25rem);max-width:22ch;margin-bottom:32px}
.check-list{list-style:none;margin:0 0 16px;padding:0;counter-reset:chk;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gap)}
.check-list li{counter-increment:chk;background:var(--tone);border-radius:var(--radius);padding:24px 22px;display:flex;flex-direction:column;gap:8px}
.check-list li::before{content:counter(chk);font-size:2.25rem;font-weight:700;line-height:1;color:var(--accent)}
.check-list h3{font-size:1.1875rem;letter-spacing:-.005em}
.check-list p{color:var(--ink-soft);font-size:1rem}
@media (max-width:1099px){.check-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:599px){.check-list{grid-template-columns:1fr}}
.ind-figure{margin:clamp(72px,8vw,140px) 0 0}
.ind-figure-img{width:100%;aspect-ratio:21/9;object-fit:cover;border-radius:var(--radius)}
.ind-figure figcaption{margin-top:10px;font-size:var(--step-small);color:var(--ink-soft)}
.ind-more{padding-top:clamp(56px,6vw,96px);padding-bottom:var(--section)}
.ind-more{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);align-items:start}
.ind-more h2{grid-column:1/span 5;margin-bottom:0}
.ind-more ul{grid-column:7/-1;list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px}
@media (max-width:899px){.ind-more h2,.ind-more ul{grid-column:1/-1}}
.ind-more a{display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border:1.5px solid var(--ink);border-radius:var(--radius);text-decoration:none;font-weight:700}
.ind-more a:hover{background:var(--ink);color:var(--bg)}
.ind-scan{margin-bottom:0!important}
.split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);padding-top:clamp(72px,8vw,140px)}
.split>h2{grid-column:1/span 5}
.split>div{grid-column:7/-1;display:grid;gap:16px;align-content:start}
.split>div p{color:var(--ink-soft)}
.split>div .btn{justify-self:start}
.credits{padding-left:1.2em;margin:0;display:grid;gap:8px;font-size:.9375rem;color:var(--ink-soft)}
#photo-credits{padding-bottom:var(--section)}
@media (max-width:899px){.split>h2,.split>div{grid-column:1/-1}}
.process-list{list-style:none;margin:0;padding:0;display:grid;gap:0}
.process-list li{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);padding:40px 0;border-top:1px solid var(--line)}
.pl-n{grid-column:1/span 2;font-size:var(--step-head);font-weight:700;letter-spacing:-.008em;line-height:1;color:var(--ink-dim)}
.process-list li>div{grid-column:4/-1}
.process-list h2{font-size:clamp(1.5rem,1.1rem + 1.4vw,2.5rem);margin-bottom:10px}
.process-list p{color:var(--ink-soft);max-width:56ch}
.reading{max-width:72ch;padding-bottom:var(--section)}
.reading h2{font-size:1.75rem;margin:40px 0 12px}
.reading p{color:var(--ink-soft)}
.reading .btn{margin-top:32px}
.demo-tabs{display:flex;flex-wrap:wrap;gap:8px}
.report-preview{margin:24px 0 0}
.report-preview img{width:100%;border-radius:var(--radius);border:1px solid var(--line)}
.report-preview figcaption{font-size:var(--step-small);color:var(--ink-soft);margin-top:10px}
main>.actions:last-child{padding-bottom:var(--section)}
.link-list{list-style:none;margin:0 0 var(--section);padding:0;display:grid;gap:4px;font-size:1.5rem;font-weight:700}
.link-list a{display:inline-flex;min-height:48px;align-items:center}
#main>.panel{margin-bottom:var(--section)}
.panel h2{font-size:1.5rem;margin:32px 0 8px}
.panel h2:first-child{margin-top:0}

/* ---- Scan and report (markup generated by app.js) ---- */
.scan-page{padding-top:clamp(40px,6vw,96px);padding-bottom:var(--section);max-width:880px!important}
.scan-card{background:var(--tone);border-radius:var(--radius);padding:clamp(28px,4vw,56px)}
.scan-card h1{font-size:clamp(2rem,1.2rem + 3vw,3.75rem);margin-bottom:8px}
.scan-bar{height:8px;background:var(--tone-2);border-radius:4px;margin:28px 0;overflow:hidden}
.scan-bar i{display:block;height:100%;width:calc(var(--p,6) * 1%);background:var(--accent);transition:width 600ms var(--ease)}
.scan-steps{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.scan-steps li{display:flex;gap:14px;align-items:center;padding:10px 0;color:var(--ink-dim);transition:color var(--mid) var(--ease)}
.st-icon{width:22px;height:22px;border-radius:50%;border:2px solid currentColor;flex:none;position:relative}
.scan-steps [data-state=running]{color:var(--ink)}
.scan-steps [data-state=running] .st-icon{border-color:var(--accent);border-right-color:transparent;animation:spin 900ms linear infinite}
.scan-steps [data-state=done]{color:var(--ink)}
.scan-steps [data-state=done] .st-icon{background:var(--ok);border-color:var(--ok)}
.scan-steps [data-state=done] .st-icon::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.scan-steps [data-state=skipped]{color:var(--ink-soft);text-decoration:line-through}
@keyframes spin{to{transform:rotate(360deg)}}
.preview-wrap{position:relative}
.preview-blur{filter:blur(6px);opacity:.55;padding:32px;background:var(--tone);border-radius:var(--radius);user-select:none}
.pv-head{display:flex;gap:20px;align-items:center}
.pv-ring{width:80px;height:80px;border-radius:50%;border:6px solid var(--accent);display:grid;place-items:center;font-weight:700}
.pv-cats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:24px 0}
.pv-cat{background:var(--bg);border-radius:4px;padding:10px;display:flex;justify-content:space-between}
.pv-lines i{display:block;height:12px;background:var(--tone-2);border-radius:6px;margin:10px 0}
.unlock-card{position:relative;margin-top:-180px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(24px,3vw,40px);max-width:520px;margin-left:auto;margin-right:auto}
.unlock-card h2{font-size:1.75rem;margin-bottom:8px}
.report-full{display:grid;gap:clamp(40px,5vw,72px)}
.report-full:focus{outline:none}
.rp-head{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.rp-head .eyebrow{font-size:var(--step-small);font-weight:700;color:var(--ink-soft);letter-spacing:0}
.rp-head h1{font-size:clamp(2rem,1.2rem + 3vw,3.75rem)}
.rp-ring{--s:0;width:132px;height:132px;flex:none;border-radius:50%;background:conic-gradient(var(--accent) calc(var(--s) * 1%),var(--tone-2) 0);display:grid;place-items:center;position:relative}
.rp-ring::before{content:"";position:absolute;inset:12px;border-radius:50%;background:var(--bg)}
.rp-ring strong,.rp-ring span{position:relative}
.rp-ring strong{font-size:2.5rem;letter-spacing:-.008em;line-height:1}
.rp-ring span{font-size:.8125rem;color:var(--ink-soft);position:absolute;bottom:30px}
.rp-grade{font-size:1.25rem;font-weight:700;margin:4px 0}
.rp-section h2{font-size:clamp(1.5rem,1.1rem + 1.4vw,2.25rem);margin-bottom:20px}
.rp-cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.rp-cat{background:var(--tone);border-radius:var(--radius);padding:18px;display:grid;gap:10px}
.rp-cat.na{opacity:.7}
.rp-cat-top{display:flex;justify-content:space-between;gap:12px;font-weight:700}
.rp-bar{height:6px;border-radius:3px;background:var(--tone-2);overflow:hidden}
.rp-bar i{display:block;height:100%;width:calc(var(--w,0) * 1%);background:var(--ink)}
.rp-opp{background:var(--accent-tone);border-radius:var(--radius);padding:clamp(24px,3vw,40px)}
.rp-searches{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.rp-search{background:var(--tone);border-radius:var(--radius);padding:18px}
.rp-q{font-weight:700}
.rp-rank{font-size:1.5rem;font-weight:700;letter-spacing:-.008em;margin:6px 0 10px}
.rp-search ol{padding-left:1.2em;margin:0;color:var(--ink-soft);font-size:.9375rem}
.rp-checks{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.rp-checks>li{display:flex;gap:16px;align-items:flex-start;background:var(--tone);border-radius:var(--radius);padding:18px}
.rp-checks p{margin-top:4px}
.st-pill{font-size:.8125rem;font-weight:700;padding:4px 10px;border-radius:4px;flex:none;min-width:88px;text-align:center}
.st-pill.pass{background:var(--ok-tone);color:var(--ok)}
.st-pill.warn{background:var(--warn-tone);color:var(--warn)}
.st-pill.fail{background:var(--bad-tone);color:var(--bad)}
.rp-src{display:inline-block;margin-top:8px;font-size:.8125rem;color:var(--ink-soft)}
.rp-pass summary{cursor:pointer;font-size:clamp(1.5rem,1.1rem + 1.4vw,2.25rem);font-weight:700;letter-spacing:-.008em;min-height:48px;margin-bottom:16px}
.rp-cta{background:var(--inv-bg);color:var(--inv-ink);border-radius:var(--radius);padding:clamp(32px,5vw,64px)}
.rp-cta h2{font-size:clamp(2rem,1.2rem + 3vw,3.5rem)}
.rp-cta p{color:var(--inv-soft);margin-top:12px}
.button.light{background:var(--accent);color:#fff;border-color:var(--accent)}
.button.outline-light{border-color:var(--inv-ink);color:var(--inv-ink)}
.rp-cta .button{display:inline-flex;align-items:center;min-height:48px;padding:0 22px;border-radius:var(--radius);border:1.5px solid;font-weight:700;text-decoration:none}
.rp-notes{display:grid;gap:6px;font-size:.875rem;color:var(--ink-soft)}
.gp-disclaimer{color:var(--ink-soft);font-size:.875rem;margin-bottom:16px}
.gp-tabs{display:inline-flex;gap:4px;background:var(--tone);padding:4px;border-radius:999px;margin-bottom:16px}
.gp-tabs [role=tab]{border:0;background:none;min-height:44px;padding:0 18px;border-radius:999px;cursor:pointer;font-weight:700}
.gp-tabs [aria-selected=true]{background:var(--ink);color:var(--bg)}
.gp-panel{border:1px solid var(--line);border-radius:var(--radius);padding:clamp(16px,2vw,28px)}
.gp-search{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:10px 16px;margin-bottom:20px}
.gp-grid{display:grid;grid-template-columns:3fr 2fr;gap:20px}
@media (max-width:760px){.gp-grid{grid-template-columns:1fr}.pv-cats{grid-template-columns:1fr 1fr}.unlock-card{margin-top:-120px}}
.gp-block{margin-bottom:20px}
.gp-label{font-size:.8125rem;font-weight:700;color:var(--ink-soft);margin-bottom:8px}
.gp-pack{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.gp-pack-item{display:flex;gap:12px;align-items:center;background:var(--tone);border-radius:4px;padding:10px 12px}
.gp-pack-item.you{outline:2px solid var(--accent)}
.gp-pin span{width:26px;height:26px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:.8125rem}
.gp-pack-item.you .gp-pin span{background:var(--accent)}
.gp-you-below{margin-top:8px;color:var(--bad);font-size:.9375rem}
.gp-url{font-size:.875rem;color:var(--ok)}
.gp-title{font-size:1.25rem;font-weight:700;color:#1a0dab}
.gp-rich{font-size:.875rem;color:var(--ink-soft)}
.gp-desc.missing{color:var(--bad)}
.gp-profile{background:var(--tone);border-radius:var(--radius);padding:18px}
.gp-facts{list-style:none;margin:12px 0;padding:0;display:grid;gap:6px;font-size:.9375rem}
.gp-facts li::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:10px;vertical-align:middle}
.gp-facts .ok::before{background:var(--ok)}
.gp-facts .bad::before{background:var(--bad)}
.gp-btns{display:flex;flex-wrap:wrap;gap:6px}
.gp-btns span{border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:.8125rem}
.gp-btns .hot{background:var(--accent);color:#fff;border-color:var(--accent)}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}.reveal{opacity:1;transform:none}}

/* ---- Scan page: next step after the unlocked report ---- */
.report-next{margin:clamp(40px,5vw,72px) 0 0;padding-top:clamp(32px,4vw,48px);border-top:1px solid var(--line)}
.rn-head{max-width:60ch}
.rn-head .kicker{color:var(--accent);margin-bottom:10px}
.rn-head h2{font-size:clamp(1.75rem,1.2rem + 1.8vw,2.75rem);line-height:1.08;letter-spacing:-.012em;text-wrap:balance}
.rn-head p:last-child{color:var(--ink-soft);margin-top:12px}
.rn-options{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.rn-option{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;padding:22px;background:var(--bg);transition:border-color var(--fast) var(--ease),box-shadow var(--mid) var(--ease)}
.rn-option:hover,.rn-option:focus-within{border-color:#e9b8a6;box-shadow:0 12px 32px -14px rgba(189,63,23,.2)}
.rn-name{font-size:var(--step-small);font-weight:700;color:var(--ink-soft)}
.rn-option h3{font-size:clamp(1.25rem,1.1rem + .4vw,1.5rem);line-height:1.2;margin-top:6px}
.rn-price{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin-top:12px;color:var(--accent)}
.rn-price small{font-size:1rem;font-weight:400;color:var(--ink-soft);letter-spacing:0}
.rn-text{color:var(--ink-soft);font-size:1rem;line-height:1.45;margin:10px 0 20px;flex:1}
.rn-option .btn{align-self:flex-start}
.rn-foot{margin-top:20px;color:var(--ink-soft)}
@media (max-width:899px){.rn-options{grid-template-columns:minmax(0,1fr)}}
