/* Tap2Order "After Hours" design system.
   Dark, cinematic hospitality: deep teal-black surfaces, cream type, one accent that always means
   "action": the logo orange (the --amber tokens keep their name). Display: Poppins ExtraBold, the
   closest match to the locked logo's lettering, set tight. Text: Hanken Grotesk.
   Motion: ease-out enter/exit, 140ms press at scale(.97), reveals only after JS opts in. */

/* Poppins runs wider than the face it replaced; size-adjust 86% keeps words per line (measured on all pages). */
@font-face{font-family:"Poppins";src:url(../fonts/poppins-800-latin.woff2) format("woff2");font-weight:700 800;font-style:normal;font-display:swap;size-adjust:86%}
@font-face{font-family:"Hanken Grotesk";src:url(../fonts/hanken-grotesk-latin-var.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}

:root{
  color-scheme:dark;
  --bg:#0a1517;--bg-2:#0d1b1d;--bg-3:#060f10;
  --surface:#13272a;--surface-2:#1a3134;--field:#0c1a1c;
  --text:#f4efe6;--text-2:#c6d2cf;--text-3:#98ada9;--dim:#43595a;
  --line:rgb(255 255 255/.1);--line-strong:rgb(255 255 255/.24);
  --amber:#ff8a1a;--amber-hover:#ffa54d;--on-amber:#1a1004;--amber-soft:rgb(255 138 26/.12);--amber-ring:rgb(255 138 26/.3);
  --teal:#2fb7a8;--ok:#5fd39a;--error:#ff8f7a;
  --font-display:"Poppins","Hanken Grotesk",system-ui,sans-serif;
  --font-sans:"Hanken Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --max:1240px;--head-h:76px;
  --r-xs:8px;--r-sm:12px;--r-md:20px;--r-lg:28px;--r-xl:40px;--r-pill:999px;
  --ring:0 0 0 1px var(--line) inset;
  --shadow-lg:0 40px 80px -30px rgb(0 0 0/.6),0 0 0 1px var(--line) inset;
  --glow:0 14px 40px -12px rgb(255 138 26/.65);
  --ease-out:cubic-bezier(.23,1,.32,1);--ease-drawer:cubic-bezier(.32,.72,0,1);
  --d-press:140ms;--d-hover:150ms;--d-pop:200ms;--d-panel:300ms;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip;scroll-padding-top:calc(var(--head-h) + 16px);background:var(--bg)}
body.editorial{margin:0;background:var(--bg);color:var(--text);font:400 17px/1.65 var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
:where(body.editorial) img{max-width:100%;height:auto;display:block}
body.editorial a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}
:where(body.editorial) :where(button,input,select,textarea){font:inherit;color:inherit}
body.editorial :focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:4px}
body.editorial ::selection{background:var(--amber);color:var(--on-amber)}
body.editorial .shell{width:min(var(--max),calc(100% - 48px));margin-inline:auto}
body.editorial .skip{position:absolute;top:-100px;left:1rem;background:var(--amber);color:var(--on-amber);padding:.7rem 1rem;z-index:1000;border-radius:var(--r-xs);font-weight:700}
body.editorial .skip:focus{top:1rem}
h1,h2,h3{text-wrap:balance}
p,li{text-wrap:pretty}
[hidden]{display:none!important}
.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}

/* ---------- Header ---------- */
.site-head{position:sticky;top:0;z-index:40;background:rgb(10 21 23/.86);-webkit-backdrop-filter:saturate(1.3) blur(14px);backdrop-filter:saturate(1.3) blur(14px);border-bottom:1px solid var(--line);transition:background-color var(--d-panel) ease,border-color var(--d-panel) ease}
.site-head.is-top{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom-color:transparent}
/* Over a hero photo the header keeps a soft top scrim so nav text stays at AA (4.5:1) on bright photo areas (a11y pass 2026-09-29). */
.site-head::before{content:"";position:absolute;inset:0 0 -24px;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgb(10 21 23/.6) 0%,rgb(10 21 23/.5) 68%,rgb(10 21 23/0) 100%);opacity:0;transition:opacity var(--d-panel) ease}
.site-head.is-top::before{opacity:1}
body:has(main>.contact-hero) .site-head::before{content:none}
.site-head-inner{display:flex;align-items:center;gap:1.5rem;min-height:var(--head-h)}
.wordmark{text-decoration:none;display:inline-flex;align-items:center;min-height:44px;flex-shrink:0}
.wordmark img{display:block;height:48px;width:auto}@media (max-width:760px){.wordmark img{height:38px}}
.primary-nav{display:flex;gap:.2rem;align-items:center;margin-left:auto}
.primary-nav>a,.nav-venues summary{font-size:.95rem;font-weight:500;text-decoration:none;cursor:pointer;padding:.5rem .75rem;border-radius:var(--r-pill);color:var(--text-3);transition:color var(--d-hover) ease;white-space:nowrap}
.primary-nav>a[aria-current="page"]{color:var(--text)}
@media(hover:hover) and (pointer:fine){.primary-nav>a:hover,.nav-venues summary:hover{color:var(--text)}}
.nav-venues{position:relative}
.nav-venues summary{list-style:none;display:inline-flex;align-items:center;gap:.35rem}
.nav-venues summary::-webkit-details-marker{display:none}
.nav-venues summary::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform var(--d-pop) var(--ease-out)}
.nav-venues[open] summary{color:var(--text)}
.nav-venues[open] summary::after{transform:translateY(1px) rotate(-135deg)}
.venue-menu{display:none;position:absolute;top:calc(100% + .7rem);left:-.4rem;background:var(--surface);border-radius:var(--r-md);box-shadow:var(--shadow-lg);min-width:240px;padding:.45rem;transform-origin:top left}
.nav-venues[open] .venue-menu{display:grid;animation:pop-in var(--d-pop) var(--ease-out)}
.venue-menu a{padding:.65rem .85rem;border-radius:var(--r-sm);text-decoration:none;font-size:.95rem;font-weight:500;color:var(--text-2)}
.venue-menu a:hover,.venue-menu a:focus-visible{background:var(--surface-2);color:var(--text)}
.head-link{font-size:.95rem;font-weight:500;text-decoration:none;color:var(--text-3);padding:.5rem .4rem;white-space:nowrap;transition:color var(--d-hover) ease}
.head-link:hover{color:var(--text)}
.head-action{margin-left:.25rem}
.site-head .head-action.button{min-height:44px;padding:0 1.15rem;font-size:.95rem}
/* One amber button per view: "Book a call" turns light while the page's own amber
   primary is in view (js/ui.js headerCta sets .is-quiet). Before JS runs, and with JS off, a page whose first
   section holds an amber button starts light. Colours only, same size; they ease only after the first state
   is set (.cta-ease), so there is no amber flash; instant under reduced motion. */
.site-head .head-action.button{transition:transform var(--d-press) var(--ease-out)}
.site-head .head-action.button.cta-ease{transition:transform var(--d-press) var(--ease-out),background-color 260ms ease,color 260ms ease}
.site-head .head-action.button.is-quiet,
html:not(.cta-watch) body:has(main > :first-child .button.amber) .site-head .head-action.button{--btn-bg:transparent;--btn-fg:var(--text);--btn-ring:var(--line-strong);box-shadow:0 0 0 1px var(--btn-ring) inset}
@media(hover:hover) and (pointer:fine){
  .site-head .head-action.button.is-quiet:hover,
  html:not(.cta-watch) body:has(main > :first-child .button.amber) .site-head .head-action.button:hover{--btn-bg:rgb(255 255 255/.04);--btn-ring:var(--text)}
}
@media(prefers-reduced-motion:reduce){.site-head .head-action.button,.site-head .head-action.button.cta-ease{transition:none!important}}
@keyframes pop-in{from{opacity:0;transform:scale(.97) translateY(-4px)}to{opacity:1;transform:none}}
.mobile-nav{display:none}
.mobile-nav summary{list-style:none;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;gap:.6rem;cursor:pointer;font-weight:600;font-size:.95rem;padding:0 .3rem}
.mobile-nav summary::-webkit-details-marker{display:none}
.burger{position:relative;width:18px;height:12px;display:inline-block}
.burger::before,.burger::after{content:"";position:absolute;left:0;right:0;height:1.75px;background:currentColor;border-radius:2px;transition:transform var(--d-panel) var(--ease-out),top var(--d-panel) var(--ease-out)}
.burger::before{top:2px}.burger::after{top:8px}
.mobile-nav[open] .burger::before{top:5px;transform:rotate(45deg)}
.mobile-nav[open] .burger::after{top:5px;transform:rotate(-45deg)}
.mobile-menu{display:none}
.mobile-nav[open] .mobile-menu{display:grid;animation:drawer-in var(--d-panel) var(--ease-drawer)}
@keyframes drawer-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* ---------- Buttons and links ---------- */
.button{--btn-bg:transparent;--btn-fg:var(--text);--btn-ring:var(--line-strong);display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:54px;padding:0 1.6rem;border:0;border-radius:var(--r-pill);background:var(--btn-bg);color:var(--btn-fg)!important;box-shadow:0 0 0 1px var(--btn-ring) inset;text-decoration:none!important;font:600 1rem/1.2 var(--font-sans);cursor:pointer;white-space:nowrap;touch-action:manipulation;transition:transform var(--d-press) var(--ease-out),background-color var(--d-hover) ease,box-shadow var(--d-panel) ease}
.button:active{transform:scale(.97)}
.button.amber{--btn-bg:var(--amber);--btn-fg:var(--on-amber);box-shadow:var(--glow)}
.button.dark,.button.light{--btn-bg:transparent;--btn-fg:var(--text);--btn-ring:var(--line-strong)}
@media(hover:hover) and (pointer:fine){
  .button.amber:hover{--btn-bg:var(--amber-hover)}
  .button.dark:hover,.button.light:hover{--btn-ring:var(--text);--btn-bg:rgb(255 255 255/.04)}
}
.button[disabled]{opacity:.6;cursor:progress}
.arrow{display:inline-block;transition:transform var(--d-hover) var(--ease-out)}
@media(hover:hover) and (pointer:fine){.button:hover .arrow,.text-link:hover .arrow{transform:translateX(3px)}}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.cta-note{font-size:.9rem;color:var(--text-3)!important;margin:1rem 0 0!important}
/* Proof row under the hero buttons: short, true reasons to act (offer-2026.md), each with an orange check. */
.hero-proof{display:flex;flex-wrap:wrap;gap:.45rem 1.1rem;margin:1.1rem 0 0;padding:0;list-style:none;font-size:.9rem;font-weight:500;line-height:1.35;color:var(--text-2)}
.hero-proof li{display:inline-flex;align-items:center;gap:.45rem}
.hero-proof li::before{content:"";width:9px;height:5px;margin-top:-3px;border-left:2px solid var(--amber);border-bottom:2px solid var(--amber);transform:rotate(-45deg);flex:none}
.text-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--amber)!important;text-decoration:underline;text-decoration-color:var(--amber-ring);text-underline-offset:5px;font-weight:600;transition:text-decoration-color var(--d-hover) ease}
.text-link:hover{text-decoration-color:currentColor}

/* ---------- Type ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font:600 .9rem/1.3 var(--font-sans);color:var(--amber);margin-bottom:1.1rem}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
/* Badge: a quiet glass pill on one line; a small orange dot with a soft halo carries the accent. */
.kicker{display:inline-flex;align-items:center;gap:.6rem;max-width:100%;white-space:nowrap;font:500 .9rem/1.2 var(--font-sans);letter-spacing:.005em;color:var(--text-2);margin-bottom:1.6rem;padding:.5rem .95rem .5rem .8rem;border-radius:var(--r-pill);background:rgb(255 255 255/.06);box-shadow:0 0 0 1px rgb(255 255 255/.14) inset;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.kicker::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 3px rgb(255 138 26/.22),0 0 12px rgb(255 138 26/.55);flex:none}
.section{padding:clamp(5rem,9vw,8.5rem) 0}
.section.bone,.section.ink{background:var(--bg-2)}
.section-header{max-width:780px;margin-bottom:clamp(2.2rem,4vw,3.4rem)}
.section h2{font:700 clamp(2.25rem,4.8vw,4.2rem)/1.02 var(--font-display);letter-spacing:-.03em;margin:0 0 1.1rem}
.section h3{font:700 1.25rem/1.25 var(--font-sans);letter-spacing:-.01em;margin:.2rem 0 .6rem}
.section p{margin:.4rem 0 1rem;color:var(--text-2)}
.section-lead{font-size:clamp(1.1rem,1.45vw,1.25rem);line-height:1.6;color:var(--text-2);max-width:60ch}
.lede{font-size:1.2rem;color:var(--text-2)}

/* ---------- Home hero ---------- */
.hero-editorial{position:relative;isolation:isolate;overflow:hidden;min-height:min(100svh,980px);display:grid;align-items:center;margin-top:calc(-1 * var(--head-h));padding:calc(var(--head-h) + clamp(2rem,5vw,4rem)) 0 clamp(4rem,7vw,6rem)}
.hero-photo{position:absolute;inset:0;z-index:-2}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:70% center}
.hero-editorial::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--bg) 0%,rgb(10 21 23/.94) 34%,rgb(10 21 23/.58) 62%,rgb(10 21 23/.38) 100%),linear-gradient(0deg,var(--bg) 0%,transparent 32%)}
.hero-inner{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(2rem,4vw,3rem);align-items:center}
.hero-copy{position:relative;z-index:1}
.hero-editorial h1{font:700 clamp(3.3rem,6.4vw,6.9rem)/1.02 var(--font-display);letter-spacing:-.03em;margin:0 0 1.75rem}
.hero-editorial h1 .warm{color:var(--amber);display:block}
.hero-sub{font-size:clamp(1.1rem,1.5vw,1.3rem);line-height:1.6;color:var(--text-2);max-width:31rem;margin:0 0 2.3rem}
.hero-sub b{color:var(--text);font-weight:600}
.hero-editorial .fl{margin-left:auto}
.scroll-cue{display:none}
@media(max-width:1100px){
  .scroll-cue{visibility:hidden;display:flex;flex-direction:column;align-items:center;gap:.5rem;width:max-content;min-width:44px;min-height:44px;margin:2rem auto 0;padding:.25rem .75rem;color:var(--text);text-decoration:none;font:700 .78rem/1 var(--font-sans);letter-spacing:.16em;text-transform:uppercase}
  .scroll-cue i{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;box-shadow:0 0 0 1.5px rgb(244 239 230/.55) inset;animation:cue-bob 1.8s cubic-bezier(.45,0,.55,1) infinite}
  .scroll-cue svg{width:18px;height:18px}
  .scroll-cue.is-ready{visibility:visible}
  .scroll-cue:hover i{box-shadow:0 0 0 1.5px var(--amber) inset;color:var(--amber)}
}
@keyframes cue-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}

/* Facts strip: four-column list of key facts. */
.facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none}
.facts-list li{padding:2.6rem 1.6rem 2.4rem 0}
.facts-list li+li{padding-left:1.6rem;border-left:1px solid var(--line)}
.facts-list strong{display:block;font:700 clamp(2.4rem,4.2vw,4rem)/1 var(--font-display);letter-spacing:-.035em;margin-bottom:.6rem;font-variant-numeric:tabular-nums}
.facts-list strong em{font-style:normal;color:var(--amber)}
.facts-list span{display:block;font-size:.95rem;line-height:1.5;color:var(--text-3)}

/* ---------- Inner page hero ---------- */
.page-hero{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;min-height:min(80svh,760px);margin-top:calc(-1 * var(--head-h))}
.page-hero .hero-picture{position:absolute;inset:0;z-index:-2}
.page-hero .hero-picture picture,.page-hero .hero-picture img{display:block;width:100%;height:100%}
.page-hero .hero-picture img{object-fit:cover;object-position:65% center}
.page-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--bg) 0%,rgb(10 21 23/.93) 38%,rgb(10 21 23/.55) 70%,rgb(10 21 23/.4) 100%),linear-gradient(0deg,var(--bg) 0%,transparent 35%)}
.page-hero .hero-copy{width:min(var(--max),calc(100% - 48px));margin-inline:auto;padding:calc(var(--head-h) + clamp(3rem,6vw,5rem)) 0 clamp(3.5rem,6vw,5rem)}
.page-hero h1{font:700 clamp(2.6rem,5.6vw,5.6rem)/1.02 var(--font-display);letter-spacing:-.03em;margin:0 0 1.5rem;max-width:16ch}
.page-hero .hero-copy>p{font-size:clamp(1.08rem,1.4vw,1.25rem);color:var(--text-2);max-width:34rem;margin:0 0 2rem}
.page-hero .hero-copy>p a{color:var(--amber);font-weight:600}

/* ---------- Content blocks ---------- */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.split picture{display:block;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg)}
.split picture img{width:100%;aspect-ratio:4/3.3;object-fit:cover}
/* Venue demo screenshots: guest phone and staff display side by side on one raised panel,
   an arrow between, a caption with a Sample tag under each. Stacked with a down arrow on phones and inside a .split column.
   The frames crop the dark page margin baked into the demo captures: all six venues share one frame geometry
   (phone 700x1278, frame ends at 1160; display 700x738, frame ends at 617), so the ratios hold on every page.
   Side by side, the columns share space 340:500 at every width and the side padding caps them at 340px and 500px. */
.venue-shots{--vs-gap:clamp(1.25rem,3vw,3rem);--vs-pad:clamp(1.5rem,3.5vw,3rem);display:grid;grid-template-columns:minmax(0,340fr) auto minmax(0,500fr);align-items:center;gap:var(--vs-gap);margin:0 0 clamp(2.4rem,4.5vw,3.6rem);padding:var(--vs-pad) max(var(--vs-pad),calc((100% - 892px - 2 * var(--vs-gap)) / 2));background:var(--bg-2);border-radius:var(--r-xl);box-shadow:var(--ring)}
.venue-shots .shot{margin:0;min-width:0;display:flex;flex-direction:column;gap:1rem}
.venue-shots .shot-img{display:block;overflow:hidden;box-shadow:0 30px 60px -28px rgb(0 0 0/.8)}
.venue-shots .shot-phone .shot-img{aspect-ratio:700/1160;border-radius:12% / 7.24%}
.venue-shots .shot-screen .shot-img{aspect-ratio:700/617;border-radius:8% / 9.08%}
.venue-shots .shot-img img{display:block;width:100%;height:auto;object-fit:fill}
.venue-shots .shot-phone img{aspect-ratio:700/1278}
.venue-shots .shot-screen img{aspect-ratio:700/738}
.venue-shots figcaption{font-size:.98rem;line-height:1.5;color:var(--text-3);max-width:40ch}
.venue-shots figcaption b{color:var(--text);font-weight:600}
.shot-tag{display:inline-block;margin-right:.35rem;padding:.12rem .55rem;border-radius:var(--r-pill);font:600 .72rem/1.5 var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--teal);box-shadow:0 0 0 1px rgb(47 183 168/.45) inset;vertical-align:1px}
.shot-arrow{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--amber-soft);color:var(--amber);box-shadow:0 0 0 1px var(--amber-ring) inset}
.shot-arrow svg{width:24px;height:24px}
.split>.venue-shots{grid-template-columns:minmax(0,1fr);margin:0;padding:var(--vs-pad)}
.split>.venue-shots .shot-phone,.split>.venue-shots .shot-screen{width:100%;justify-self:center}
.split>.venue-shots .shot-phone{max-width:340px}
.split>.venue-shots .shot-screen{max-width:500px}
.split>.venue-shots .shot-arrow{justify-self:center;transform:rotate(90deg)}
@media(max-width:760px){
  .venue-shots,.split>.venue-shots{grid-template-columns:minmax(0,1fr);padding:1.1rem;gap:1rem;border-radius:var(--r-lg)}
  .venue-shots .shot-phone,.venue-shots .shot-screen{width:100%;justify-self:center}
  .venue-shots .shot-phone{max-width:340px}
  .venue-shots .shot-screen{max-width:500px}
  .shot-arrow{justify-self:center;width:44px;height:44px;transform:rotate(90deg)}
}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.step{position:relative;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--ring);padding:2.1rem 1.9rem 2rem;display:flex;flex-direction:column;min-height:300px;overflow:hidden;transition:transform var(--d-panel) var(--ease-out)}
@media(hover:hover) and (pointer:fine){.step:hover{transform:translateY(-4px)}}
.step-num{font:700 6.2rem/.8 var(--font-display);letter-spacing:-.03em;color:transparent;-webkit-text-stroke:1.5px rgb(255 138 26/.6);display:block;margin-bottom:auto;font-variant-numeric:tabular-nums}
.step h3{font:700 1.65rem/1.1 var(--font-display);letter-spacing:-.025em;margin:1.8rem 0 .6rem}
.step p{color:var(--text-3);margin:0}
.steps-cta{margin-top:2rem}

.statement{padding:clamp(6rem,12vw,10rem) 0}
.statement p{font:700 clamp(2.6rem,6vw,6rem)/1.02 var(--font-display);letter-spacing:-.035em;margin:0;max-width:16ch;color:var(--text)}
.statement .w{transition:color 450ms ease}

.demo-launch{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:clamp(1.5rem,3vw,2.3rem)}
.demo-launch h3{font:700 1.6rem/1.1 var(--font-display);letter-spacing:-.02em;margin:0 0 .35rem}
.demo-launch>p{color:var(--text-3);font-size:.98rem;margin:0 0 1.3rem}
.venue-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.venue-chip{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:58px;padding:.8rem 1.1rem;border-radius:var(--r-sm);background:var(--surface-2);box-shadow:var(--ring);text-decoration:none;font-weight:600;transition:background-color var(--d-hover) ease,box-shadow var(--d-hover) ease,transform var(--d-press) var(--ease-out)}
.venue-chip .arrow{color:var(--amber)}
.venue-chip:active{transform:scale(.98)}
@media(hover:hover) and (pointer:fine){.venue-chip:hover{box-shadow:0 0 0 1px var(--amber-ring) inset;background:rgb(255 138 26/.08)}.venue-chip:hover .arrow{transform:translateX(3px)}}
.demo-launch .fine{font-size:.85rem;color:var(--text-3);margin:1.2rem 0 0}

.venue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.venue-card{position:relative;display:block;aspect-ratio:4/4.4;border-radius:var(--r-lg);overflow:hidden;text-decoration:none;isolation:isolate}
.venue-card picture{position:absolute;inset:0;z-index:-2}
.venue-card img{width:100%;height:100%;object-fit:cover;transition:transform 900ms var(--ease-out)}
.venue-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgb(5 11 12/.92) 0%,rgb(5 11 12/.35) 45%,transparent 70%)}
.venue-card-body{position:absolute;left:1.5rem;right:1.5rem;bottom:1.4rem;display:block}
.venue-card h3{font:700 2rem/1 var(--font-display);letter-spacing:-.03em;margin:0 0 .4rem;color:var(--text)}
.venue-card p{margin:0;color:#d3ddda;font-size:.98rem}
.venue-card .card-link{display:inline-flex;align-items:center;gap:.4rem;margin-top:.9rem;padding:.4rem .85rem;border-radius:var(--r-pill);background:rgb(255 255 255/.14);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.88rem;font-weight:600;color:var(--text);transition:background-color var(--d-hover) ease,color var(--d-hover) ease}
@media(hover:hover) and (pointer:fine){.venue-card:hover img{transform:scale(1.05)}.venue-card:hover .card-link{background:var(--amber);color:var(--on-amber)}.venue-card:hover .arrow{transform:translateX(3px)}}

.venue-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.venue-item{display:grid;grid-template-columns:120px 1fr;gap:1.1rem;align-items:center;padding:.75rem;border-radius:var(--r-md);background:var(--surface);box-shadow:var(--ring);text-decoration:none;transition:box-shadow var(--d-hover) ease}
.venue-item:hover{box-shadow:0 0 0 1px var(--amber-ring) inset}
.venue-item img{width:120px;height:96px;object-fit:cover;border-radius:var(--r-sm)}
.venue-item h3{margin:0 0 .25rem}
.venue-item p{font-size:.93rem;color:var(--text-3);margin:0}
.venue-item:not(:has(picture)){display:block;padding:1.1rem 1.25rem}

.roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,2.5rem)}
.roles article{border-top:1px solid var(--line-strong);padding-top:1.4rem}
.roles h3{font:700 2rem/1 var(--font-display);letter-spacing:-.03em;margin:0 0 .8rem}
.roles p{color:var(--text-3)}
.research-note{background:var(--surface);border-radius:var(--r-md);box-shadow:var(--ring);padding:1.1rem 1.3rem;max-width:750px;margin:1.3rem 0 1.5rem}
.research-note p{margin:0;color:var(--text-2);font-size:.97rem}

/* ---------- Pricing ---------- */
.plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.plan{position:relative;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--ring);padding:2.1rem 1.9rem 1.9rem;display:flex;flex-direction:column;align-items:stretch;gap:.2rem}
.plan h3{font:600 1.1rem/1.3 var(--font-sans);margin:0;color:var(--text-3)}
.plan-price{font:700 4.4rem/1 var(--font-display);margin:.6rem 0 .8rem!important;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--text)!important}
.plan-price span{font:500 1rem var(--font-sans);color:var(--text-3);letter-spacing:0}
.plan p:not(.plan-price){color:var(--text-3);min-height:4.9rem;margin-bottom:1.5rem}
.plan .button{margin-top:auto;width:100%}
.plan .button+.button{margin-top:.6rem}
.pricing-note{font-size:.9rem;color:var(--text-3)!important;max-width:900px;margin-top:1.4rem!important}
.proposal-list{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;list-style:none;margin:1.8rem 0 0;padding:1.3rem 0 0;border-top:1px solid var(--line);font-size:.95rem;color:var(--text-2)}
.proposal-list li{display:inline-flex;align-items:center;gap:.5rem}
.proposal-list li::before{content:"";width:13px;height:7px;border-left:1.75px solid var(--amber);border-bottom:1.75px solid var(--amber);transform:rotate(-45deg) translateY(-2px);flex:none}
.proposal-list .proposal-label{font-weight:600;color:var(--text)}
.proposal-list .proposal-label::before{display:none}
.pricing-panel{display:grid;grid-template-columns:1.5fr 1fr;gap:2rem;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--ring);padding:clamp(1.5rem,4vw,3rem)}
.pricing-panel h3{font:700 2rem/1.1 var(--font-display);letter-spacing:-.02em}

/* ---------- Links, FAQ ---------- */
.borough-links,.related-links{display:flex;flex-wrap:wrap;gap:.6rem}
.borough-links a,.related-links a{display:inline-flex;align-items:center;min-height:46px;padding:.55rem 1.1rem;border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--ring);text-decoration:none;font-weight:500;font-size:.97rem;color:var(--text-2);transition:box-shadow var(--d-hover) ease,color var(--d-hover) ease}
.borough-links a:hover,.related-links a:hover{box-shadow:0 0 0 1px var(--amber-ring) inset;color:var(--text)}
.faq-list{border-top:1px solid var(--line);max-width:900px}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{cursor:pointer;font-weight:600;font-size:1.12rem;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.35rem 0;min-height:44px;transition:color var(--d-hover) ease}
.faq-list summary:hover{color:var(--amber)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"";flex:none;width:32px;height:32px;border-radius:50%;background-color:var(--surface);background-image:linear-gradient(var(--amber),var(--amber)),linear-gradient(var(--amber),var(--amber));background-size:12px 1.75px,1.75px 12px;background-position:center;background-repeat:no-repeat;box-shadow:var(--ring);transition:transform var(--d-panel) var(--ease-out)}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list details>*:not(summary){margin:0 0 1.4rem;max-width:760px;color:var(--text-2)}
.faq-list details[open]>*:not(summary){animation:faq-in var(--d-panel) var(--ease-out)}
@keyframes faq-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.media-placeholder{border:1px dashed var(--line-strong);background:var(--surface);border-radius:var(--r-lg);padding:2rem;min-height:240px;display:flex;flex-direction:column;justify-content:center;align-items:start}
.media-placeholder strong{font:700 1.5rem var(--font-display)}

/* ---------- Contact and forms ---------- */
.contact-band{position:relative;overflow:hidden;isolation:isolate;background:var(--amber);color:var(--on-amber);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:clamp(5rem,9vw,8rem) 0}
.contact-band::before{content:"";position:absolute;right:-140px;top:-140px;width:560px;height:560px;border-radius:50%;z-index:-1;border:2px solid rgb(26 16 4/.14);box-shadow:0 0 0 70px rgb(26 16 4/.04),0 0 0 140px rgb(26 16 4/.03)}
.contact-band h2{font:700 clamp(3rem,6.4vw,6.2rem)/1.02 var(--font-display);letter-spacing:-.035em;margin:0 0 1.4rem;color:var(--on-amber);max-width:12.5ch}
.contact-band .section-lead,.contact-band .contact-copy p{color:#3b2408}
.contact-band .eyebrow{color:var(--on-amber)}
.contact-band .contact-copy a:not(.button){color:var(--on-amber);font-weight:600}
.contact-band .contact-copy .text-link{color:var(--on-amber)!important;text-decoration-color:rgb(26 16 4/.35)}
.contact-band .next-steps li{color:#3b2408}
.contact-band .next-steps b{color:var(--on-amber)}
.contact-band .next-steps li::before{background:var(--on-amber);color:var(--amber);box-shadow:none}
.contact-band .contact-copy :focus-visible{outline-color:var(--on-amber)}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.contact-direct{margin-top:1.8rem;font-size:1rem;color:var(--text-2)}
.contact-direct a{color:var(--text);font-weight:600}
.next-steps{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:1.1rem;counter-reset:ns}
.next-steps li{counter-increment:ns;display:grid;grid-template-columns:36px 1fr;gap:1rem;align-items:start;color:var(--text-3)}
.next-steps li::before{content:counter(ns);width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);box-shadow:var(--ring);font:700 .95rem var(--font-sans);color:var(--amber)}
.next-steps b{display:block;color:var(--text);font-weight:600}
.lead-form{background:var(--bg);color:var(--text);padding:clamp(1.5rem,3vw,2.4rem);border-radius:var(--r-lg);box-shadow:0 40px 80px -30px rgb(0 0 0/.55),0 0 0 1px var(--line) inset;position:relative}
.lead-form label,.lead-form legend{display:block;font-size:.92rem;font-weight:600;margin:0 0 .45rem;padding:0;color:var(--text)}
.lead-form .opt,.mini-form .opt{font-weight:400;color:var(--text-3)}
.lead-form input,.lead-form select,.lead-form textarea,.mini-form input,.mini-form textarea,.mini-form select{width:100%;border:0;box-shadow:0 0 0 1px var(--line-strong) inset;background:var(--field);min-height:52px;padding:.75rem .95rem;margin-bottom:1.1rem;border-radius:var(--r-sm);color:var(--text);font-size:16px;transition:box-shadow var(--d-hover) ease}
.lead-form ::placeholder,.mini-form ::placeholder{color:#6f8582}
.lead-form textarea,.mini-form textarea{min-height:100px;resize:vertical}
.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus,.mini-form input:focus,.mini-form textarea:focus,.mini-form select:focus{outline:none;box-shadow:0 0 0 1.5px var(--amber) inset,0 0 0 4px var(--amber-soft)}
.lead-form [aria-invalid="true"],.mini-form [aria-invalid="true"]{box-shadow:0 0 0 1.5px var(--error) inset}
.lead-form .button{width:100%;margin-top:.3rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 .9rem}
.chip-field{border:0;margin:0 0 1.1rem;padding:0;min-width:0}
.chip-options{display:flex;flex-wrap:wrap;gap:.45rem}
.chip-options label{position:relative;margin:0;font-weight:500;font-size:.93rem}
.chip-options input{position:absolute;opacity:0;width:1px;height:1px;margin:0;min-height:0}
.chip-options span{display:inline-flex;align-items:center;min-height:44px;padding:.45rem .95rem;border-radius:var(--r-pill);box-shadow:0 0 0 1px var(--line-strong) inset;background:var(--field);color:var(--text-2);cursor:pointer;transition:background-color var(--d-hover) ease,box-shadow var(--d-hover) ease,color var(--d-hover) ease,transform var(--d-press) var(--ease-out)}
.chip-options span:active{transform:scale(.97)}
.chip-options input:checked+span{background:var(--amber);box-shadow:none;color:var(--on-amber);font-weight:600}
.chip-options input:focus-visible+span{outline:2px solid var(--amber);outline-offset:2px}
@media(hover:hover) and (pointer:fine){.chip-options span:hover{box-shadow:0 0 0 1px var(--text-3) inset;color:var(--text)}}
.form-context{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:var(--amber-soft);box-shadow:0 0 0 1px var(--amber-ring) inset;color:var(--amber);border-radius:var(--r-sm);padding:.55rem .6rem .55rem .95rem;margin:0 0 1.1rem;font-size:.93rem;font-weight:500}
.form-context[hidden]{display:none}
.form-context strong{color:var(--text)}
.form-context button{border:0;background:transparent;color:inherit;cursor:pointer;min-height:36px;padding:0 .6rem;border-radius:var(--r-xs);font-size:.87rem;text-decoration:underline}
.form-more{margin:0 0 1rem}
.form-more summary{cursor:pointer;font-size:.93rem;font-weight:600;color:var(--amber);list-style:none;display:inline-flex;align-items:center;gap:.4rem;min-height:40px}
.form-more summary::-webkit-details-marker{display:none}
.form-more summary::before{content:"+";font-size:1.15rem;line-height:1}
.form-more[open] summary::before{content:"−"}
.form-more[open] summary{margin-bottom:.6rem}
.form-reassure{font-size:.86rem;color:var(--text-3)!important;text-align:center;margin:.9rem 0 0!important}
.form-legal{font-size:.8rem;line-height:1.5;color:var(--text-3)!important;text-align:center;margin:.75rem 0 0!important}
.form-legal a{color:var(--text-2);text-decoration:underline;text-underline-offset:2px}
.form-title{font:700 2.1rem/1 var(--font-display);letter-spacing:-.03em;margin:0 0 .4rem;color:var(--text)}
.form-intro{color:var(--text-3)!important;font-size:.97rem;margin:0 0 1.4rem!important}
.form-status{min-height:1.5rem;margin:.7rem 0 0;color:var(--text);font-size:.93rem}
.form-status:empty{min-height:0;margin:0}
.form-status.error{color:var(--error)}
.hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important}
.form-success{display:none}
.lead-form.is-sent>*:not(.form-success){display:none}
.lead-form.is-sent .form-success{display:block;animation:success-in 420ms var(--ease-out)}
.success-mark{width:52px;height:52px;border-radius:50%;background:var(--ok);display:grid;place-items:center;margin-bottom:1.1rem}
.success-mark::before{content:"";width:18px;height:10px;border-left:2.5px solid #06200f;border-bottom:2.5px solid #06200f;transform:rotate(-45deg) translate(1px,-2px)}
.form-success h3{font:700 2rem/1.05 var(--font-display);letter-spacing:-.03em;margin:0 0 .6rem;color:var(--text)}
.form-success p{color:var(--text-2)!important}
.form-success:focus{outline:none}
@keyframes success-in{from{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}
.is-shaking{animation:shake 300ms cubic-bezier(.22,1,.36,1)}
@keyframes shake{0%,100%{transform:none}25%{transform:translateX(-6px)}55%{transform:translateX(4px)}80%{transform:translateX(-2px)}}
.mini-form{max-width:620px}
.mini-form label{display:block;font-weight:600;font-size:.93rem;margin:.9rem 0 .4rem}
.mini-form .button{margin-top:1rem}

/* Contact page: the form is the page's job, so it sits in the first view. */
.page-hero.contact-hero{display:block;min-height:0;background:radial-gradient(60% 70% at 85% 10%,rgb(255 138 26/.16),transparent 70%),var(--bg)}
.page-hero.contact-hero::before{display:none}
.contact-hero .contact-grid{width:min(var(--max),calc(100% - 48px));margin-inline:auto;padding:calc(var(--head-h) + clamp(2.5rem,5vw,4.5rem)) 0 clamp(4rem,7vw,6rem)}
.page-hero.contact-hero .hero-copy{width:auto;margin:0;padding:0}
.contact-hero h1{max-width:13ch}
.page-hero .hero-copy>p.contact-direct{margin:1.8rem 0 0;font-size:1rem}
.contact-hero .lead-form{background:var(--surface)}

/* ---------- Thank-you and 404 ---------- */
.thanks{max-width:780px}
.thanks h1{font:700 clamp(3rem,6vw,5.4rem)/1.02 var(--font-display);letter-spacing:-.035em;margin:0 0 1.2rem}
.thanks .success-mark{width:60px;height:60px;margin-bottom:1.6rem}

/* ---------- Pricing page ---------- */
.plan-featured{box-shadow:0 0 0 1.5px var(--amber-ring) inset,0 40px 80px -40px rgb(255 138 26/.35);background:linear-gradient(165deg,#1d3a3c,var(--surface) 55%)}
.plan .plan-talk{align-self:center;margin-top:.9rem;font-size:.95rem}
.plan-badge{position:absolute;top:1.4rem;right:1.4rem;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--on-amber);background:var(--amber);padding:.3rem .7rem;border-radius:var(--r-pill)}
.plan .plan-fit{min-height:0!important;margin-bottom:1rem!important;color:var(--text-2)!important}
.plan-features{list-style:none;margin:0 0 1.6rem;padding:0;display:grid;gap:.55rem;font-size:.97rem;color:var(--text-2)}
.plan-features li{display:grid;grid-template-columns:18px 1fr;gap:.6rem;align-items:start}
.plan-features li::before{content:"";width:12px;height:7px;margin-top:.45em;border-left:1.75px solid var(--amber);border-bottom:1.75px solid var(--amber);transform:rotate(-45deg)}
.plan-features li:has(b)::before{visibility:hidden}
.plan-features b{color:var(--text);font-weight:600}
.plan-actions{margin-top:auto;display:grid;gap:.6rem}
.plan-actions .button{width:100%}
.table-scroll{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--r-md)}
.table-scroll .comparison-table{margin:0;min-width:640px}
.table-scroll.table-fit{margin:1.5rem 0}
.table-scroll.table-fit .comparison-table{min-width:0}
.plan-table td{text-align:center;font-variant-numeric:tabular-nums}
.plan-table thead th{text-align:center}
.plan-table thead th:first-child,.plan-table tbody th{text-align:left;font-weight:500;color:var(--text-2);background:transparent}
.plan-table thead th span{font-weight:500;color:var(--text-3);font-size:.9rem}
.plan-table tr.group th{background:var(--surface-2);color:var(--amber);font-weight:600;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase}
.path-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:14px}
.path-card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--ring);padding:2rem 1.9rem}
.path-card h3{font:700 1.8rem/1.05 var(--font-display);letter-spacing:-.025em;margin:0 0 1.2rem}
.terms-list li{margin:.9rem 0}
.terms-list b{color:var(--text)}
.welcome-steps .step{min-height:0}
.cycle-switch{display:inline-flex;gap:4px;padding:5px;margin:0 0 1.6rem;border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--ring)}
.cycle-switch button{border:0;background:transparent;color:var(--text-2);font:600 .95rem var(--font-sans);min-height:44px;padding:0 1.2rem;border-radius:var(--r-pill);cursor:pointer;transition:background-color var(--d-hover) ease,color var(--d-hover) ease}
.cycle-switch button span{font-weight:500;font-size:.8rem;color:var(--amber);margin-left:.35rem}
.cycle-switch button[aria-pressed="true"]{background:var(--teal);color:var(--bg)}
.cycle-switch button[aria-pressed="true"] span{color:var(--bg)}
.plan .plan-save{min-height:0!important;margin:-.4rem 0 1rem!important;color:var(--amber)!important;font-weight:600;font-size:.93rem}
.buy-cell{white-space:nowrap;text-align:right}
.buy-cell .button{min-height:44px;padding:0 1rem;font-size:.9rem}
.buy-cell .button+.button{margin-left:.4rem}
[data-welcome] .hero-copy .success-mark{margin-bottom:1.4rem}
[data-onboarding-book]{width:100%;margin-bottom:1rem}

/* ---------- CTA band (inner pages) ---------- */
.cta-strip{position:relative;overflow:hidden;isolation:isolate;background:var(--amber);color:var(--on-amber);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:clamp(4.5rem,8vw,7rem) 0}
.cta-strip::before{content:"";position:absolute;right:-140px;top:-160px;width:520px;height:520px;border-radius:50%;z-index:-1;border:2px solid rgb(26 16 4/.14);box-shadow:0 0 0 70px rgb(26 16 4/.04),0 0 0 140px rgb(26 16 4/.03)}
.cta-strip .shell{display:flex;justify-content:space-between;align-items:end;gap:2rem}
.cta-strip h2{font:700 clamp(2.6rem,5.2vw,5rem)/1.02 var(--font-display);letter-spacing:-.035em;margin:0 0 1rem;color:var(--on-amber);max-width:15ch}
.cta-strip p{max-width:620px;margin:0;color:#3b2408}
.cta-strip .button.amber{--btn-bg:var(--bg);--btn-fg:var(--text);box-shadow:none}
.cta-strip .button.light,.cta-strip .button.dark{--btn-fg:var(--on-amber);--btn-ring:rgb(26 16 4/.55)}
@media(hover:hover) and (pointer:fine){.cta-strip .button.amber:hover{--btn-bg:#1c2e30}.cta-strip .button.light:hover,.cta-strip .button.dark:hover{--btn-ring:var(--on-amber);--btn-bg:rgb(26 16 4/.06)}}
.cta-strip :focus-visible{outline-color:var(--on-amber)}

/* ---------- Footer ---------- */
.site-footer{background:var(--bg-3);color:var(--text-2);padding:clamp(4rem,7vw,5.5rem) 0 2rem}
.footer-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2rem 1.5rem}
.footer-grid h3,.footer-grid h2{font:600 .8rem/1.3 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin:0 0 1rem}
.footer-grid a{display:block;text-decoration:none;margin:.55rem 0;font-size:.95rem;color:var(--text-2);width:fit-content;transition:color var(--d-hover) ease}
.footer-grid a:hover{color:var(--amber)}
.footer-bottom{border-top:1px solid var(--line);margin-top:3rem;padding-top:1.3rem;font-size:.85rem;color:var(--text-3)}

/* ---------- Mobile sticky CTA (js/ui.js) ---------- */
.mobile-cta{display:none}
@media(max-width:760px){
  .mobile-cta{display:flex;gap:.45rem;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:50;padding:.45rem;background:rgb(19 39 42/.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:var(--r-pill);box-shadow:0 20px 40px -12px rgb(0 0 0/.6),0 0 0 1px var(--line-strong) inset;transform:translateY(calc(100% + 24px));opacity:0;transition:transform 420ms var(--ease-drawer),opacity 200ms ease;pointer-events:none}
  .mobile-cta.is-visible{transform:none;opacity:1;pointer-events:auto}
  .mobile-cta .button{flex:1;min-height:48px;padding:0 .8rem;font-size:.97rem}
  .mobile-cta .button.light{box-shadow:none}
}

/* ---------- Articles, blog, tables, legal ---------- */
.article-shell{max-width:820px;margin:auto;padding:clamp(3.5rem,7vw,6.5rem) 24px}
.article-shell h1{font:700 clamp(2.6rem,5.4vw,4.5rem)/1.02 var(--font-display);letter-spacing:-.03em;margin:0 0 1.2rem}
.article-shell h2{font:700 clamp(1.8rem,3.2vw,2.7rem)/1.02 var(--font-display);letter-spacing:-.025em;margin:3rem 0 1rem}
.article-shell h3{font:700 1.25rem/1.3 var(--font-sans);margin:2.1rem 0 .6rem}
.article-shell p,.article-shell li{font-size:1.1rem;line-height:1.78;color:var(--text-2)}
.article-shell p a,.article-shell li a{color:var(--amber);font-weight:500}
.article-shell strong{color:var(--text)}
.article-shell li{margin:.5rem 0}
.article-shell li::marker{color:var(--amber)}
.article-shell>.text-link:first-child{display:flex;width:fit-content;margin-bottom:1.6rem}
.article-shell .lede{font-size:1.28rem;color:var(--text-2)}
.article-shell .source-note{font-size:.92rem;color:var(--text-3);border-top:1px solid var(--line);margin-top:3rem;padding-top:1.1rem}
.article-shell .article-cta{background:var(--surface);box-shadow:0 0 0 1px var(--amber-ring) inset;border-radius:var(--r-lg);padding:clamp(1.5rem,3vw,2.2rem);margin-top:3rem}
.article-shell .article-cta h2{margin:0 0 .6rem}
.section .article-shell{padding-top:0;padding-bottom:0}
.blog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.blog-grid article{background:var(--surface);border-radius:var(--r-md);box-shadow:var(--ring);padding:1.6rem;transition:box-shadow var(--d-hover) ease}
.blog-grid article:hover{box-shadow:0 0 0 1px var(--amber-ring) inset}
.blog-grid h3,.blog-grid h2{font:700 1.6rem/1.05 var(--font-display);letter-spacing:-.025em;margin:0 0 .7rem;color:var(--text)}
.blog-grid a{text-decoration:none}
.blog-grid a:hover h3{color:var(--amber)}
.blog-grid p{color:var(--text-3)}
.context-list{margin:0;padding-left:1.2rem}
.context-list li{margin:.75rem 0;padding-left:.3rem;color:var(--text-2)}
.context-list li::marker{color:var(--amber)}
.comparison-table{width:100%;border-collapse:separate;border-spacing:0;margin:1.5rem 0;background:var(--surface);border-radius:var(--r-md);box-shadow:var(--ring);overflow:hidden}
.comparison-table th,.comparison-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:1rem;color:var(--text-2)}
.comparison-table tr:last-child td{border-bottom:0}
.comparison-table th{background:var(--surface-2);font-weight:600;color:var(--text)}
.legal .legal-wrap{max-width:none}
.legal h1{margin-top:.8rem}
.legal .legal-back{font-size:.93rem;color:var(--amber);font-weight:600;text-decoration:none}
.legal .legal-updated{font-size:.93rem;color:var(--text-3)}
.legal .legal-note{background:var(--surface);box-shadow:var(--ring);border-radius:var(--r-md);padding:1.1rem 1.3rem;margin:1.5rem 0;color:var(--text-2);font-size:1rem;line-height:1.7}
.legal .legal-note a{color:var(--amber)}

/* ---------- Consent card ---------- */
.t2o-consent{position:fixed;bottom:20px;left:20px;z-index:1000;width:min(380px,calc(100vw - 40px));background:var(--surface);color:var(--text);padding:24px;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);font:400 14px/1.55 var(--font-sans);animation:success-in 320ms var(--ease-out)}
.t2o-consent-icon{width:38px;height:38px;margin-bottom:10px}
.t2o-consent h2{font:700 1.5rem/1.05 var(--font-display);letter-spacing:-.02em;margin:0 0 10px}
.t2o-consent p{margin:0 0 18px;color:var(--text-2)}
.t2o-consent a{color:var(--amber);text-decoration:underline}
.t2o-consent-actions{display:flex;gap:10px}
.t2o-consent button{flex:1;min-height:46px;padding:8px 12px;cursor:pointer;font:600 14px var(--font-sans);border:0;border-radius:var(--r-pill);transition:transform var(--d-press) var(--ease-out)}
.t2o-consent button:active{transform:scale(.97)}
.t2o-consent [data-choice="denied"]{background:transparent;box-shadow:0 0 0 1px var(--line-strong) inset;color:var(--text)}
.t2o-consent [data-choice="granted"]{background:transparent;box-shadow:0 0 0 1px var(--line-strong) inset;color:var(--text)}

/* ---------- Motion (JS opt-in; content stays visible without JS) ---------- */

/* ---------- Responsive ---------- */
@media(max-width:1120px){
  .primary-nav>a,.nav-venues summary{font-size:.9rem;padding:.45rem .55rem}
  .primary-nav>a[href$="insights.html"]{display:none}
}
@media(max-width:1100px){
  .hero-inner{grid-template-columns:1fr}
  .hero-editorial .fl{margin:1.5rem auto 0;max-width:600px}
}
@media(max-width:1000px){
  .footer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hero-inner{grid-template-columns:1fr}
  .hero-editorial .fl{margin:1rem auto 0}
  .facts-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .facts-list li:nth-child(3){padding-left:0;border-left:0}
  .facts-list li:nth-child(n+3){border-top:1px solid var(--line)}
  .venue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .primary-nav,.head-action{display:none}
  .mobile-nav{display:block}
  .head-link{margin-left:auto}
  .mobile-menu{position:absolute;left:0;right:0;top:100%;background:var(--bg);padding:.5rem 24px 1.6rem;border-bottom:1px solid var(--line);box-shadow:0 30px 40px -24px rgb(0 0 0/.7);gap:0;max-height:calc(100svh - var(--head-h));overflow:auto;overscroll-behavior:contain}
  .mobile-menu a{padding:.9rem 0;text-decoration:none;font-weight:500;font-size:1.08rem;border-bottom:1px solid var(--line);color:var(--text-2)}
  .mobile-menu a:last-child{border-bottom:0}
  .mobile-menu .button{margin-top:1.1rem}
  .site-head:has(.mobile-nav[open]){background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}
}
@media(max-width:760px){
  html{scroll-padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  body.editorial{font-size:16px}
  :root{--head-h:60px}
  .site-head-inner{gap:.85rem}
  .wordmark img{height:34px}
  .head-link{font-size:.92rem;padding:.5rem .25rem}
  .mobile-nav summary{gap:.45rem;font-size:.92rem;padding:0 0 0 .25rem}
  .hero-editorial{padding-top:calc(var(--head-h) + 1.4rem)}
  .kicker{font-size:min(.84rem,3.55vw);gap:.5rem;margin-bottom:1.2rem;padding:.42rem .8rem .42rem .7rem}
  .hero-editorial h1{margin-bottom:1.2rem}
  .hero-sub{margin-bottom:1.7rem}
  .page-hero{min-height:0}
  .page-hero::before{background:linear-gradient(0deg,var(--bg) 8%,rgb(10 21 23/.82) 55%,rgb(10 21 23/.55) 100%)}
  /* Phone crops: a slot whose subject sits off-centre sets --hero-x-mobile on its <img> (crops.mobile_object_x in docs/image-slots.json). */
  .page-hero .hero-picture img{object-position:var(--hero-x-mobile,65%) center}
  /* Heavier phone scrim for a hero photo with a bright patch behind the copy (vs-bite, 2026-09-29: link contrast). */
  .page-hero.scrim-strong::before{background:linear-gradient(0deg,var(--bg) 8%,rgb(10 21 23/.88) 55%,rgb(10 21 23/.7) 100%)}
  .page-hero .hero-copy{padding:calc(var(--head-h) + 7rem) 0 2.5rem}
  .page-hero .eyebrow{padding:.3rem .75rem .3rem .65rem;border-radius:var(--r-pill);background:rgb(10 21 23/.86);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
  .hero-editorial::before{background:linear-gradient(0deg,var(--bg) 20%,rgb(10 21 23/.86) 60%,rgb(10 21 23/.6) 100%)}
  .steps,.split,.roles,.pricing-panel,.contact-grid,.plan-grid{grid-template-columns:1fr}
  .step{min-height:0}
  .step-num{font-size:4.4rem}
  .venue-list{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .section{padding:4.5rem 0}
  .contact-grid{gap:2.25rem}
  .plan p:not(.plan-price){min-height:0}
  .cta-strip .shell{display:block}
  .cta-strip .actions{margin-top:1.6rem}
  .cta-strip,.contact-band{border-radius:28px 28px 0 0}
  .blog-grid{grid-template-columns:1fr}
  .article-shell{padding:3rem 18px}
  .split>picture{order:-1}
  .site-footer{padding-bottom:7rem}
}
@media(max-width:600px){
  .venue-grid{grid-template-columns:1fr}
  .venue-card{aspect-ratio:16/12}
  .venue-chips{grid-template-columns:1fr 1fr}
  .field-row{grid-template-columns:1fr}
}
@media(max-width:430px){
  body.editorial .shell{width:calc(100% - 36px)}
  .hero-editorial h1{font-size:clamp(2.55rem,12.2vw,3.2rem)}
  .hero-sub{font-size:1.04rem;line-height:1.55}
  .hero-editorial .actions .button{min-height:50px}
  .hero-editorial .cta-note{margin-top:.8rem!important}
  .hero-proof{flex-direction:column;gap:.35rem;font-size:.86rem;margin-top:.9rem}
  .scroll-cue{margin-top:1.4rem}
  .actions .button{width:100%}
  .facts-list li,.facts-list li+li{padding:1.5rem .9rem 1.4rem 0}
  .facts-list li:nth-child(even){padding-left:.9rem}
  .facts-list strong{font-size:2.2rem}
  .venue-item{grid-template-columns:96px 1fr;gap:.8rem}
  .venue-item img{width:96px;height:84px}
  .lead-form{padding:1.3rem}
  .footer-grid{gap:1.25rem}
  .page-hero h1{font-size:clamp(2.6rem,12vw,3.2rem)}
  .page-hero .hero-copy,.contact-hero .contact-grid{width:calc(100% - 36px)}
}
@media(max-width:360px){
  .site-head-inner{gap:.6rem}
  .wordmark img{height:31px}
  .head-link{font-size:.86rem;padding:.5rem .15rem}
  .mobile-nav summary{font-size:.86rem;gap:.4rem}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-property:opacity,color,background-color,border-color,box-shadow!important;transition-duration:150ms!important}
  .button:active,.venue-chip:active,.chip-options span:active{transform:none}
  .is-shaking{animation:none}
}

/* ---------- Lean homepage flow (2026-09-29): hero problem lines, problem cards, stat cards, phone sample slot, promo bar ---------- */
.hero-pains{list-style:none;padding:0;margin:0 0 1.1rem;display:grid;gap:.45rem;max-width:36rem}
.hero-pains li{font-size:1.06rem;line-height:1.45;color:var(--text)}
.hero-pains b{color:var(--amber);font-weight:700}
.hero-alt{margin:.9rem 0 0;font-size:.95rem;line-height:1.5;color:var(--text-2)}
.pain-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:0;padding:0;list-style:none}
.pain-card{background:var(--surface);border-radius:var(--r-md);padding:1.4rem 1.3rem;box-shadow:var(--ring)}
.pain-card h3{color:var(--amber);font:700 1.15rem/1.25 var(--font-sans);margin:0 0 .5rem}
.pain-card p{margin:0;font-size:.98rem;line-height:1.55}
.pain-more,.stat-note{margin:1.4rem 0 0}
.stat-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.stat-card{background:var(--surface);border-radius:var(--r-md);padding:1.6rem 1.5rem;box-shadow:var(--ring)}
.stat-card strong{display:block;font:800 clamp(2.8rem,6vw,4rem)/1 var(--font-display);color:var(--amber);letter-spacing:-.03em;margin-bottom:.6rem}
.stat-card p{margin:0 0 .7rem;color:var(--text)}
.stat-card cite{font-style:normal;font-size:.85rem;line-height:1.4;color:var(--text-3)}
.stat-card cite a{color:inherit}
.sample-slot{display:none}
.promo-bar{position:relative;z-index:41;background:#17343a;color:var(--text);font:600 .9rem/1.35 var(--font-sans);text-align:center;padding:.65rem 3.2rem .65rem 1rem;border-bottom:1px solid rgb(255 138 26/.35)}
.promo-bar a{color:var(--amber);text-decoration:underline}
.promo-bar button{position:absolute;right:.25rem;top:50%;transform:translateY(-50%);background:none;border:0;min-width:44px;min-height:44px;font-size:1.35rem;line-height:1;color:var(--text);cursor:pointer}
@media(max-width:1000px){.pain-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  #features.section,#research.section{padding:3.2rem 0}
  .sample-slot{display:block;padding:.5rem 0 3rem;background:var(--bg)}
  .sample-slot .fl{margin:0 auto;max-width:600px}
}
@media(max-width:560px){
  .pain-grid,.stat-cards{grid-template-columns:1fr;gap:.75rem}
  .pain-card{padding:1.1rem 1.1rem}
  .stat-card{padding:1.3rem 1.2rem}
}

/* Conversion fixes (2026-09-29): pricing plans in the first view, contact form first on phones, wide tables on phones */
.page-hero.pricing-hero{min-height:0;display:block}
.page-hero.pricing-hero::before{display:none}
.page-hero.pricing-hero .hero-copy{padding:calc(var(--head-h) + clamp(1.5rem,3vw,2.5rem)) 0 0}
.page-hero.pricing-hero h1{font-size:clamp(2.1rem,4.2vw,3.6rem);max-width:22ch;margin-bottom:1rem}
.page-hero.pricing-hero .hero-copy>p{max-width:48rem;margin-bottom:.75rem;font-size:clamp(1rem,1.2vw,1.1rem)}
.pricing-hero+#plans{padding-top:clamp(1.5rem,3vw,2.25rem)}
.pricing-hero+#plans h2{font-size:clamp(1.6rem,3vw,2.4rem)}
.plan .plan-who{font-size:.95rem;color:var(--text-2);margin:-.25rem 0 1rem}
@media(max-width:760px){
  .contact-hero .contact-grid{gap:1.25rem}
  .contact-hero .hero-copy{display:contents}
  .contact-hero .hero-copy>*{order:2;margin-top:0;margin-bottom:0}
  .contact-hero .hero-copy>h1,.contact-hero .hero-copy>p:first-of-type{order:0}
  .contact-hero .contact-grid>.lead-form{order:1}
  .referral-hero .hero-copy>.next-steps{order:0}
}
@media(max-width:600px){
  .table-scroll.table-fit:has(th:nth-child(4)){-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),rgb(0 0 0/.35));mask-image:linear-gradient(90deg,#000 calc(100% - 28px),rgb(0 0 0/.35))}
  .table-scroll.table-fit:has(th:nth-child(4)) .comparison-table{min-width:640px}
  .table-scroll.table-fit:has(th:nth-child(4)) th:first-child,.table-scroll.table-fit:has(th:nth-child(4)) td:first-child{position:sticky;left:0;z-index:1;width:9.5rem;min-width:9.5rem;background:var(--surface-2)}
}
.lead-form .check-row{display:flex;gap:.7rem;align-items:flex-start;font-weight:500;min-height:44px;margin:0 0 1.2rem;cursor:pointer}
.lead-form .check-row input{width:22px;height:22px;min-height:0;flex:0 0 22px;margin:.1rem 0 0;padding:0;box-shadow:none;accent-color:var(--amber)}
.lead-form .check-row input:focus-visible{outline:2px solid var(--amber);outline-offset:3px;box-shadow:none}
.payout-line strong{display:block;color:var(--text);font-size:1.25em;margin-bottom:.3rem}
.referral-hero h1{font-size:clamp(2.4rem,4.6vw,4.2rem)}
/* Founder photo beside the booking forms: fixed box, no layout shift. */
.form-founder{display:flex;align-items:center;gap:.85rem;margin:0 0 1.25rem;font-weight:600;font-size:.98rem;line-height:1.35;color:var(--text)}
.form-founder img{flex:0 0 56px;width:56px;height:56px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px var(--line-strong)}
/* Affiliate: jump to the form on phones, where it sits below the steps. */
.jump-apply{display:none}
@media(max-width:760px){
  .referral-hero .hero-copy>.jump-apply{display:block;order:0}
  .jump-apply .text-link{display:inline-flex;align-items:center;min-height:44px;font-weight:600}
}
/* Wide comparison tables on phones: say they scroll sideways. */
@media(max-width:600px){
  .table-scroll:not(.table-fit)::after,.table-scroll.table-fit:has(th:nth-child(4))::after{content:"Swipe to compare \2192";content:"Swipe to compare \2192"/"";position:sticky;left:0;display:block;width:max-content;padding:.6rem .25rem .1rem;font:600 .85rem/1.2 var(--font-sans);color:var(--text-3)}
}
/* Affiliate: build and copy a personal ?ref= link (captured by js/site.js). */
.ref-link{margin-top:2.5rem;padding:clamp(1.25rem,3vw,2rem);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--ring)}
.ref-link h3{margin-top:0}
.ref-link label{display:block;font-size:.92rem;font-weight:600;margin:0 0 .45rem}
.ref-link input{width:100%;border:0;box-shadow:0 0 0 1px var(--line-strong) inset;background:var(--field);min-height:52px;padding:.75rem .95rem;border-radius:var(--r-sm);color:var(--text);font-size:16px}
.ref-link input:focus{outline:none;box-shadow:0 0 0 1.5px var(--amber) inset,0 0 0 4px var(--amber-soft)}
.ref-link input::placeholder{color:#6f8582}
.ref-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.9rem;align-items:end}
.ref-link-out{margin:.8rem 0 0;font-size:.95rem;color:var(--text-2);overflow-wrap:anywhere}
.ref-link-out:empty{display:none}
@media(max-width:600px){.ref-link-row{grid-template-columns:1fr}.ref-link-row .button{width:100%}}
