:root{
  /* WARM SCHEME — kept in sync with preview.html homepage tokens */
  --ink:#241A12; --text-2:#5C5046; --text-3:#8C7F72;
  --surface:#F5ECDB; --tonal:#ECDDC4; --c-high:#E4D2B4; --c-higher:#DCC8A6; --c-highest:#D4BC94;
  --night:#140C07; --inverse:#211A14; --on-dark:#FBF5EC; --on-dark-muted:#CBBCA9;
  --accent:#DA2B26; --accent-hover:#B71F1B; --glow:#FF8A3D; --strike:#FF6A3D;
  --grad:linear-gradient(135deg,#FFB23E 0%,#F2541C 50%,#DA2B26 100%);
  --divider:rgba(70,45,25,.07); --outline:rgba(70,45,25,.14);
  --fill-cool:rgba(210,150,90,.10); --fill-cool-hover:rgba(210,150,90,.22);
  --font-brand:"Google Sans Flex","Google Sans",Figtree,"Helvetica Neue",Arial,sans-serif;
  --font-mono:"Google Sans Code","Roboto Mono",ui-monospace,monospace;
  --font-display:"Fraunces","Georgia",serif;
  --page-margin:72px; --nav-h:52px; --max-w:1600px;
  --r-sm:8px; --r-md:16px; --r-lg:24px; --r-xl:36px; --r-pill:9999px;
  --eb:cubic-bezier(.34,1.85,.64,1); --ex:cubic-bezier(.19,1,.22,1); --eq:cubic-bezier(.23,1,.32,1);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;font-family:var(--font-brand);color:var(--ink);background:var(--surface);
  font-size:17.5px;line-height:1.45;letter-spacing:.01em;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:560;line-height:1.04;letter-spacing:-.018em;}
p{margin:0;}
.container{max-width:var(--max-w);margin-inline:auto;padding-inline:var(--page-margin);}
.material-symbols-outlined{font-family:"Material Symbols Outlined";font-weight:normal;line-height:1;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 26px;border-radius:var(--r-pill);
  font-size:15.5px;font-weight:500;letter-spacing:.01em;cursor:pointer;border:1px solid transparent;
  transition:background var(--ex) .3s,color .3s,border-color .3s,transform .3s var(--eb),box-shadow .3s;
  white-space:nowrap;
}
.btn:active{transform:scale(.97);}
.btn-primary{background:var(--ink);color:#fff;}
.btn-primary:hover{background:#33271E;box-shadow:0 8px 24px rgba(33,20,10,.20);}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--outline);}
.btn-ghost:hover{background:var(--fill-cool);border-color:transparent;}
.btn-accent{background:var(--accent);color:#fff;}
.btn-accent:hover{background:var(--accent-hover);box-shadow:0 8px 30px rgba(218,43,38,.42);}
.btn-ghost-dark{background:transparent;color:var(--on-dark);border-color:rgba(230,234,240,.22);}
.btn-ghost-dark:hover{background:rgba(255,255,255,.08);}
.btn-sm{height:40px;padding:0 18px;font-size:14.5px;}

/* ---------- nav ---------- */
.nav{position:fixed;inset:0 0 auto 0;height:var(--nav-h);z-index:50;display:flex;align-items:center;
  transition:background .4s var(--ex),box-shadow .4s,border-color .4s;border-bottom:1px solid transparent;}
.nav.scrolled{background:rgba(245,236,219,.88);backdrop-filter:blur(18px) saturate(1.4);border-color:var(--divider);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;width:100%;}
/* Full-bleed nav so the logo sits in the true top-left corner on any screen
   width (not boxed inside the centered 1600px container). */
.nav .container{max-width:none;padding-inline:10px;}
.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:500;letter-spacing:-.02em;margin-left:0;}
.brand-logo{height:40px;width:auto;display:block;}
.brand .ball{width:18px;height:18px;border-radius:50%;background:var(--grad);box-shadow:0 0 12px rgba(242,84,28,.55);}
.nav-links{display:flex;gap:30px;}
.nav-links a{font-size:15px;color:var(--text-2);transition:color .25s;}
.nav-links a:hover{color:var(--ink);}
/* ---------- Attractions dropdown ---------- */
.nav-dd{position:relative;display:inline-flex;align-items:center;}
.nav-dd-label{display:inline-flex;align-items:center;gap:2px;font-family:inherit;font-size:15px;line-height:1;
  color:var(--text-2);background:none;border:0;cursor:pointer;padding:0;transition:color .25s;}
.nav-dd-caret{font-size:18px;transition:transform .25s var(--ex);}
.nav-dd:hover .nav-dd-label,.nav-dd:focus-within .nav-dd-label{color:var(--ink);}
.nav-dd:hover .nav-dd-caret,.nav-dd:focus-within .nav-dd-caret{transform:rotate(180deg);}
.nav-dd-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);
  min-width:174px;display:flex;flex-direction:column;gap:1px;padding:8px;z-index:60;
  background:rgba(245,236,219,.98);backdrop-filter:blur(18px) saturate(1.4);
  border:1px solid var(--divider);border-radius:var(--r-md);box-shadow:0 20px 44px -18px rgba(33,20,10,.42);
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s var(--ex),transform .22s var(--ex),visibility .22s;}
.nav-dd-menu::before{content:"";position:absolute;top:-9px;left:0;right:0;height:9px;}
.nav-dd:hover .nav-dd-menu,.nav-dd:focus-within .nav-dd-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(2px);}
.nav-dd-menu a{padding:10px 14px;border-radius:var(--r-sm);font-size:15px;color:var(--text-2);white-space:nowrap;transition:background .2s,color .2s;}
.nav-dd-menu a:hover{background:var(--fill-cool);color:var(--ink);}
.nav-actions{display:flex;align-items:center;gap:16px;}
.status{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--text-2);}
.status .dot{width:8px;height:8px;border-radius:50%;background:#22C55E;box-shadow:0 0 0 4px rgba(34,197,94,.18);animation:pulse 2.4s infinite;}
.nav-toggle{display:none;background:none;border:0;font-size:22px;cursor:pointer;color:var(--ink);}
@keyframes pulse{50%{box-shadow:0 0 0 7px rgba(34,197,94,0);}}

/* ---------- hero (background image + overlaid text + CTA) ---------- */
.hero{padding-top:calc(var(--nav-h) + 24px);padding-bottom:24px;}
.hero-banner{position:relative;border-radius:var(--r-xl);overflow:hidden;isolation:isolate;
  display:flex;align-items:flex-end;min-height:clamp(540px,78vh,760px);}
/* BACKGROUND LAYER — replace the <div class="hero-bg"> with <img class="hero-bg" src="..."> for a real photo */
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  background:linear-gradient(135deg,#3a261a 0%,#1c1009 55%,#140c07 100%);}
.hero-scrim{position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(18,11,6,.86) 0%,rgba(18,11,6,.55) 42%,rgba(18,11,6,.12) 80%),
             linear-gradient(0deg,rgba(18,11,6,.72) 0%,rgba(18,11,6,0) 55%);}
.hero-overlay{position:relative;z-index:2;color:#fff;padding:clamp(34px,5vw,72px);max-width:740px;}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:rgba(255,255,255,.82);margin-bottom:20px;letter-spacing:.01em;}
.eyebrow .ball{width:14px;height:14px;border-radius:50%;background:var(--grad);}
.hero-title{font-size:clamp(40px,6.2vw,76px);letter-spacing:-.045em;line-height:1.02;color:#fff;}
.hero-sub{max-width:540px;margin-top:18px;font-size:clamp(17px,1.9vw,21px);line-height:1.4;color:rgba(255,255,255,.84);letter-spacing:-.01em;}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:30px;}
.hero-overlay .hero-cta{justify-content:flex-start;}
.btn-light{background:#fff;color:var(--ink);}
.btn-light:hover{background:#F4ECDF;box-shadow:0 10px 30px rgba(0,0,0,.28);}
.btn-glass{background:rgba(255,255,255,.10);color:#fff;border-color:rgba(255,255,255,.30);backdrop-filter:blur(8px);}
.btn-glass:hover{background:rgba(255,255,255,.18);border-color:transparent;}
.trust{margin-top:24px;font-size:13.5px;color:rgba(255,255,255,.78);letter-spacing:.01em;}
.trust b{color:#fff;font-weight:500;}
.hero-ph-tag{position:absolute;z-index:3;right:18px;top:18px;display:inline-flex;align-items:center;gap:7px;
  font-size:12.5px;color:rgba(255,255,255,.78);background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);
  padding:7px 13px;border-radius:var(--r-pill);backdrop-filter:blur(8px);}
.hero-ph-tag .material-symbols-outlined{font-size:16px;}

/* ---------- marquee ---------- */
.marquee{padding:42px 0;border-block:1px solid var(--divider);overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);}
.m-track{display:flex;align-items:center;gap:60px;width:max-content;animation:scroll 40s linear infinite;}
.m-track .material-symbols-outlined{font-size:34px;color:var(--strike);opacity:.72;}
.m-track svg{width:33px;height:33px;color:var(--strike);opacity:.72;flex:0 0 auto;}
@keyframes scroll{to{transform:translateX(-50%);}}

/* ---------- mission ---------- */
.mission{padding:120px 0;}
.mission-text{max-width:1180px;font-size:clamp(34px,5.2vw,68px);font-weight:450;line-height:1.1;letter-spacing:-.03em;overflow-wrap:anywhere;}
.mission-text .w{color:var(--ink);transition:color .5s var(--eq);}
.js .mission-text .w{color:#D9C7AD;}
.js .mission-text.in .w{color:var(--ink);}

/* ---------- showcase ---------- */
.showcase{padding:40px 0 90px;}
.showcase .feature-media{will-change:transform,opacity;box-shadow:0 30px 70px -24px rgba(18,19,23,.16);}
.showcase .feature-copy{will-change:transform;}
.feature-row{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;padding:60px 0;border-top:1px solid var(--divider);}
.feature-row:first-child{border-top:0;}
.feature-row.reverse .feature-copy{order:2;}
.feature-copy h3{font-size:clamp(28px,3.4vw,42px);letter-spacing:-.03em;}
.feature-copy p{margin-top:18px;font-size:19px;color:var(--text-2);max-width:440px;}
.feature-copy .more{display:inline-flex;align-items:center;gap:6px;margin-top:24px;font-size:15px;color:var(--accent);font-weight:500;}
.feature-copy .more .material-symbols-outlined{font-size:18px;transition:transform .3s var(--eb);}
.feature-copy .more:hover .material-symbols-outlined{transform:translateX(4px);}
.feature-media{position:relative;aspect-ratio:4/3;border-radius:var(--r-lg);overflow:hidden;display:grid;place-items:center;background:var(--tonal);border:1px solid var(--divider);}
.feature-media .material-symbols-outlined{font-size:84px;color:var(--accent);opacity:.9;}
.feature-media .tag{position:absolute;left:18px;bottom:16px;color:#fff;font-size:13.5px;background:rgba(33,20,10,.74);
  padding:6px 13px;border-radius:var(--r-pill);backdrop-filter:blur(8px);}
.m-lanes,.m-food{background:var(--tonal);}
.m-bar,.m-arcade{background:var(--c-high);}

/* ---------- personas ---------- */
.personas{padding:60px 0 90px;}
.section-title{font-size:clamp(34px,4.2vw,48px);letter-spacing:-.035em;margin-bottom:40px;}
.persona-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.persona-card{position:relative;aspect-ratio:3/3.5;border-radius:var(--r-lg);overflow:hidden;display:flex;align-items:flex-end;
  padding:28px;color:#fff;transition:transform .45s var(--eb),box-shadow .45s;}
.persona-card::before{content:"";position:absolute;inset:0;background:linear-gradient(transparent 35%,rgba(0,0,0,.55));}
.persona-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(18,19,23,.22);}
.p-date{background:radial-gradient(130% 130% at 25% 8%,#4a1b12,#19100a 72%);}
.p-league{background:radial-gradient(130% 130% at 25% 8%,#4a3110,#19100a 72%);}
.p-private{background:radial-gradient(130% 130% at 25% 8%,#451224,#190910 72%);}
.persona-card .label{position:relative;z-index:1;}
.persona-card .label h4{font-size:26px;letter-spacing:-.005em;}
.persona-card .label p{margin-top:8px;font-size:15px;color:rgba(255,255,255,.82);max-width:240px;}

/* ---------- dual cta ---------- */
.dual{padding:50px 0;}
.dual-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.dual-cell{background:var(--tonal);border:1px solid var(--divider);border-radius:var(--r-xl);padding:56px 48px;}
.dual-cell h3{font-size:26px;letter-spacing:-.01em;}
.dual-cell p{margin:14px 0 28px;color:var(--text-2);font-size:18px;}

/* ---------- events ---------- */
.events{padding:80px 0;}
.events-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:36px;}
.events-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.event-card{border:1px solid var(--divider);border-radius:var(--r-lg);overflow:hidden;background:var(--surface);
  transition:transform .4s var(--eb),box-shadow .4s,border-color .4s;}
.event-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px rgba(18,19,23,.10);border-color:transparent;}
.event-thumb{aspect-ratio:16/10;display:grid;place-items:center;background:var(--c-high);}
.event-thumb .material-symbols-outlined{font-size:46px;color:var(--accent);opacity:.9;}
.event-body{padding:20px 20px 24px;}
.event-body h4{font-size:19px;letter-spacing:-.005em;}
.event-time{display:inline-block;margin:10px 0 8px;font-family:var(--font-mono);font-size:12.5px;color:var(--accent-hover);letter-spacing:.02em;}
.event-body p{font-size:14.5px;color:var(--text-2);}
.t1,.t3{background:var(--tonal);} .t2,.t4{background:var(--c-high);}

/* ---------- hours & pricing ---------- */
.hp{padding:40px 0 90px;}
.hp-panel{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--tonal);border:1px solid var(--divider);border-radius:var(--r-xl);overflow:hidden;}
.hp-cell{padding:48px 56px;}
.hp-cell+.hp-cell{border-left:1px solid var(--divider);}
.hp-cell h3{font-size:24px;letter-spacing:-.005em;margin-bottom:22px;}
.hp-cell ul{list-style:none;margin:0;padding:0;}
.hp-cell li{display:flex;justify-content:space-between;gap:24px;padding:13px 0;border-top:1px solid var(--divider);font-size:16.5px;color:var(--text-2);}
.hp-cell li:first-child{border-top:0;}
.hp-cell li b{color:var(--ink);font-weight:500;}

/* ---------- interactive dot field ---------- */
.dots-section{padding:70px 0 100px;}
.dots-wrap{position:relative;width:100%;height:clamp(360px,52vh,520px);}
#dotsCanvas{position:absolute;inset:0;width:100%;height:100%;display:block;}

/* ---------- dark booking cta ---------- */
.book{position:relative;margin:0 var(--page-margin) 40px;border-radius:var(--r-xl);overflow:hidden;
  background:radial-gradient(120% 160% at 80% 0%,#3a1c10,#160c07 65%);color:var(--on-dark);
  padding:96px 64px;text-align:center;}
.book::before{content:"";position:absolute;width:320px;height:320px;border-radius:50%;right:-60px;top:-110px;
  background:radial-gradient(circle,rgba(242,84,28,.55),transparent 70%);filter:blur(80px);opacity:.5;}
.book h2{position:relative;font-size:clamp(34px,4.4vw,52px);letter-spacing:-.04em;}
.book .hero-cta{margin-top:34px;}
.book-meta{position:relative;margin-top:26px;color:var(--on-dark-muted);font-size:15px;}

/* ---------- footer ---------- */
/* Footer reveal (site-wide, matches the home page): the footer is pinned behind
   the page (sticky at the viewport bottom) and main slides up over it, slowly
   uncovering it on the last stretch of scroll. main needs an opaque background
   and a higher z-index for the footer to hide behind it. */
main{position:relative;z-index:1;background:var(--surface);
  box-shadow:0 26px 50px -14px rgba(33,20,10,.22);}
.footer{padding:72px 0 40px;border-top:1px solid var(--divider);position:sticky;bottom:0;z-index:0;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:40px;}
.footer-brand{font-size:20px;font-weight:500;display:flex;flex-direction:column;gap:6px;}
.footer-brand small{color:var(--text-3);font-weight:400;font-size:14px;}
.footer-col h5{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin:0 0 16px;font-weight:500;}
.footer-col a{display:block;color:var(--text-2);font-size:15px;padding:6px 0;transition:color .25s;}
.footer-col a:hover{color:var(--ink);}
.footer-news h5{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin:0 0 16px;}
.footer-news input{width:100%;height:48px;border-radius:var(--r-pill);border:1px solid var(--outline);
  padding:0 20px;font-family:inherit;font-size:15px;background:var(--surface);}
.footer-news input:focus{outline:2px solid var(--accent);border-color:transparent;}
.footer-legal{display:flex;justify-content:space-between;margin-top:56px;padding-top:24px;border-top:1px solid var(--divider);color:var(--text-3);font-size:13.5px;}

/* ---------- reveal ---------- */
.reveal{transition:opacity .9s var(--ex),transform .9s var(--ex);}
.js .reveal{opacity:0;transform:translateY(42px) scale(.985);}
.reveal.in{opacity:1;transform:none;}

/* ---------- responsive ---------- */
@media(max-width:1024px){
  :root{--page-margin:40px;}
  .nav-toggle{display:block;}
  .feature-row{gap:48px;padding:52px 0;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px;}
  /* mobile nav drawer — the hamburger toggles body.nav-open (see app.js) */
  .nav-links{
    position:fixed;top:var(--nav-h);left:0;right:0;
    flex-direction:column;gap:0;align-items:stretch;
    padding:6px var(--page-margin) 18px;
    background:rgba(245,236,219,.97);backdrop-filter:blur(18px) saturate(1.4);
    border-bottom:1px solid var(--divider);box-shadow:0 20px 44px -20px rgba(33,20,10,.4);
    transform:translateY(-14px);opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .28s var(--ex),transform .28s var(--ex),visibility .28s;
    max-height:calc(100dvh - var(--nav-h));overflow-y:auto;
  }
  .nav-links a{font-size:18px;padding:15px 2px;border-top:1px solid var(--divider);color:var(--text-2);}
  .nav-links a:first-child{border-top:0;}
  body.nav-open .nav-links{transform:none;opacity:1;visibility:visible;pointer-events:auto;}
  /* Attractions dropdown collapses to inline stacked links inside the drawer */
  .nav-dd{flex-direction:column;align-items:stretch;width:100%;}
  .nav-dd-label{font-size:18px;padding:15px 2px;border-top:1px solid var(--divider);justify-content:space-between;color:var(--text-2);width:100%;}
  .nav-dd-menu{position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;min-width:0;
    background:none;border:0;box-shadow:none;backdrop-filter:none;padding:0 0 0 16px;}
  .nav-dd-menu::before{display:none;}
  .nav-dd-menu a{font-size:17px;padding:12px 2px;border-top:1px solid var(--divider);}
  .nav-dd-caret{display:none;}
}
@media(max-width:767px){
  :root{--page-margin:20px;}
  .feature-row{grid-template-columns:1fr;gap:28px;padding:44px 0;}
  .feature-row.reverse .feature-copy{order:0;}
  .persona-grid{grid-template-columns:1fr;}
  .dual-grid,.hp-panel{grid-template-columns:1fr;}
  .hp-cell+.hp-cell{border-left:0;border-top:1px solid var(--divider);}
  .events-grid{grid-template-columns:1fr 1fr;}
  /* Kill the 3D scroll-in tilt on phones: the rotateY swings the wide media
     panels past the viewport edge (clipped by overflow-x:hidden, but it leaves
     the panel corners cropped). Flat + upright reads cleaner on a small screen. */
  .showcase .feature-media,.showcase .feature-copy{transform:none!important;}
  .status{display:none;}
  .nav-actions .btn-primary{display:none;}
  .book{margin-inline:20px;padding:64px 28px;}
  .footer-grid{grid-template-columns:1fr;}
  .footer-legal{flex-direction:column;gap:8px;}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
  .js .reveal{opacity:1;transform:none;}
  .js .mission-text .w{color:var(--ink);}
}


/* ========================================================================
   SUBPAGE COMPONENTS  — lanes / menu / arcade / leagues / parties / book
   Built on the same tokens as the home page. Added for the category pages.
   ======================================================================== */
.nav-links a[aria-current="page"]{color:var(--ink);}

/* compact interior hero */
.hero-banner.compact{min-height:clamp(340px,46vh,440px);}
.hero-banner.compact .hero-title{font-size:clamp(34px,5vw,60px);}

/* generic section + heads */
.section{padding:84px 0;}
.section.tight{padding:48px 0;}
.section.tonal{background:var(--tonal);border-block:1px solid var(--divider);}
.section-head{max-width:760px;margin-bottom:48px;}
.section-head.center{margin-inline:auto;text-align:center;}
.section-head .kicker{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-hover);margin-bottom:14px;}
.section-head h2{font-size:clamp(30px,4vw,44px);letter-spacing:-.03em;}
.section-head .lede{margin-top:18px;}
.lede{font-size:clamp(18px,2vw,21px);line-height:1.5;color:var(--text-2);}

/* info / benefit cards */
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.info-grid.cols-2{grid-template-columns:repeat(2,1fr);}
.info-grid.cols-4{grid-template-columns:repeat(4,1fr);}
.info-card{background:var(--tonal);border:1px solid var(--divider);border-radius:var(--r-lg);padding:30px;transition:transform .4s var(--eb),box-shadow .4s,border-color .4s;}
.info-card:hover{transform:translateY(-4px);box-shadow:0 20px 44px rgba(18,19,23,.10);border-color:transparent;}
.info-card .ico{display:grid;place-items:center;width:50px;height:50px;border-radius:var(--r-md);background:var(--c-high);margin-bottom:18px;}
.info-card .ico .material-symbols-outlined{font-size:27px;color:var(--accent);}
.info-card h3{font-size:20px;letter-spacing:-.01em;}
.info-card p{margin-top:10px;font-size:15.5px;color:var(--text-2);line-height:1.5;}

/* price / package cards */
.price-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch;}
.price-cards.cols-2{grid-template-columns:repeat(2,1fr);max-width:880px;margin-inline:auto;}
.price-card{position:relative;background:var(--surface);border:1px solid var(--outline);border-radius:var(--r-xl);padding:40px 34px;display:flex;flex-direction:column;transition:transform .4s var(--eb),box-shadow .4s;}
.price-card:hover{transform:translateY(-5px);box-shadow:0 24px 50px rgba(18,19,23,.12);}
.price-card.feature{border-color:transparent;box-shadow:0 24px 60px rgba(218,43,38,.16);background:linear-gradient(180deg,#FFFDF6,var(--tonal));}
.price-card .pc-tag{position:absolute;top:-12px;left:34px;font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:#fff;background:var(--accent);padding:5px 12px;border-radius:var(--r-pill);}
.price-card h3{font-size:22px;letter-spacing:-.01em;}
.price-card .price{margin:14px 0 2px;font-size:42px;font-weight:450;letter-spacing:-.04em;line-height:1;}
.price-card .price span{font-size:16px;color:var(--text-3);letter-spacing:0;font-weight:400;}
.price-card .sub{font-size:14.5px;color:var(--text-3);margin-bottom:24px;}
.price-card ul{list-style:none;margin:0 0 28px;padding:0;display:flex;flex-direction:column;gap:12px;}
.price-card li{display:flex;gap:10px;font-size:15px;color:var(--text-2);line-height:1.4;}
.price-card li .material-symbols-outlined{font-size:19px;color:var(--accent);flex:0 0 auto;}
.price-card .btn{margin-top:auto;justify-content:center;}

/* spec / data list */
.spec-list{list-style:none;margin:0;padding:0;}
.spec-list li{display:flex;justify-content:space-between;gap:24px;padding:14px 0;border-top:1px solid var(--divider);font-size:16.5px;color:var(--text-2);}
.spec-list li:first-child{border-top:0;}
.spec-list li b{color:var(--ink);font-weight:500;}

/* menu */
.menu-cols{display:grid;grid-template-columns:1fr 1fr;gap:52px 64px;}
.menu-block h3{font-size:23px;letter-spacing:-.02em;display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.menu-block h3 .material-symbols-outlined{font-size:22px;color:var(--accent);}
.menu-block .blurb{font-size:14px;color:var(--text-3);margin-bottom:16px;}
.menu-item{display:grid;grid-template-columns:1fr auto;gap:3px 16px;padding:13px 0;border-top:1px solid var(--divider);}
.menu-item .nm{font-size:16.5px;color:var(--ink);font-weight:500;letter-spacing:-.005em;}
.menu-item .pr{font-family:var(--font-mono);font-size:15px;color:var(--accent-hover);white-space:nowrap;}
.menu-item .ds{grid-column:1/-1;font-size:13.5px;color:var(--text-2);line-height:1.4;}

/* league cards */
.league-list{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.league-card{background:var(--tonal);border:1px solid var(--divider);border-radius:var(--r-lg);padding:28px 30px;display:flex;flex-direction:column;}
.league-card .lc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;}
.league-card h3{font-size:21px;letter-spacing:-.01em;}
.league-card .tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;padding:5px 11px;border-radius:var(--r-pill);background:var(--c-high);color:var(--accent-hover);white-space:nowrap;}
.league-card p{margin:10px 0 18px;font-size:15px;color:var(--text-2);line-height:1.5;}
.league-card .meta{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-direction:column;gap:9px;}
.league-card .meta li{display:flex;align-items:center;gap:10px;font-size:14.5px;color:var(--text-2);}
.league-card .meta .material-symbols-outlined{font-size:18px;color:var(--accent);}
.league-card .btn{margin-top:auto;align-self:flex-start;}

/* numbered steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.steps.cols-4{grid-template-columns:repeat(4,1fr);}
.step .n{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--ink);color:#fff;font-size:16px;font-weight:500;margin-bottom:18px;}
.step h4{font-size:18px;letter-spacing:-.01em;}
.step p{margin-top:8px;font-size:15px;color:var(--text-2);line-height:1.5;}

/* faq accordion */
.faq{max-width:840px;}
.faq details{border-top:1px solid var(--divider);}
.faq details:last-child{border-bottom:1px solid var(--divider);}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 4px;font-size:18px;font-weight:500;letter-spacing:-.01em;cursor:pointer;list-style:none;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary .material-symbols-outlined{transition:transform .3s var(--eb);color:var(--text-3);}
.faq details[open] summary .material-symbols-outlined{transform:rotate(45deg);}
.faq .ans{padding:0 4px 22px;font-size:16px;color:var(--text-2);line-height:1.55;max-width:680px;}

/* booking form */
.form-card{background:var(--tonal);border:1px solid var(--divider);border-radius:var(--r-xl);padding:clamp(28px,4vw,48px);}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.field{display:flex;flex-direction:column;gap:8px;}
.field.full{grid-column:1/-1;}
.field label{font-size:14px;font-weight:500;color:var(--ink);}
.field input,.field select,.field textarea{height:50px;border-radius:var(--r-md);border:1px solid var(--outline);background:var(--surface);padding:0 16px;font-family:inherit;font-size:15.5px;color:var(--ink);transition:border-color .25s,box-shadow .25s;}
.field textarea{height:auto;padding:14px 16px;resize:vertical;min-height:110px;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(218,43,38,.18);}
.form-note{margin-top:18px;font-size:13.5px;color:var(--text-3);display:flex;align-items:flex-start;gap:8px;}
.form-note .material-symbols-outlined{font-size:17px;color:var(--accent);flex:0 0 auto;}

/* light callout band */
.callout{background:var(--tonal);border:1px solid var(--divider);border-radius:var(--r-xl);padding:clamp(32px,4vw,52px);display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap;}
.callout .ct-copy{flex:1 1 320px;}
.callout h3{font-size:clamp(24px,3vw,32px);letter-spacing:-.02em;}
.callout p{margin-top:10px;color:var(--text-2);font-size:17px;max-width:560px;}
.callout .ct-actions{display:flex;gap:12px;flex-wrap:wrap;}

/* explicit photo placeholders */
.photo-ph{position:relative;border-radius:var(--r-lg);overflow:hidden;display:grid;place-items:center;background:var(--c-high);border:1px solid var(--divider);min-height:240px;}
.photo-ph .material-symbols-outlined{font-size:44px;color:var(--accent);opacity:.85;}
.photo-ph .ph-label{position:absolute;left:14px;bottom:12px;display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-3);background:var(--surface);border:1px solid var(--divider);padding:5px 11px;border-radius:var(--r-pill);}
.photo-ph .ph-label .material-symbols-outlined{font-size:14px;color:var(--text-3);opacity:1;}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.gallery .photo-ph{aspect-ratio:1/1;min-height:0;}
.gallery .photo-ph.wide{grid-column:span 2;aspect-ratio:2/1;}

/* small note line */
.fineprint{margin-top:20px;font-size:13px;color:var(--text-3);display:inline-flex;align-items:center;gap:7px;}
.fineprint .material-symbols-outlined{font-size:16px;}

/* subpage responsive */
@media(max-width:1024px){
  .info-grid.cols-4{grid-template-columns:1fr 1fr;}
  .price-cards{grid-template-columns:1fr;max-width:520px;margin-inline:auto;}
  .menu-cols{grid-template-columns:1fr;gap:44px;}
  .steps.cols-4{grid-template-columns:1fr 1fr;}
}
@media(max-width:767px){
  .info-grid,.info-grid.cols-2,.info-grid.cols-4{grid-template-columns:1fr;}
  .price-cards.cols-2{grid-template-columns:1fr;max-width:520px;}
  .league-list{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .steps,.steps.cols-4{grid-template-columns:1fr;}
  .gallery{grid-template-columns:1fr 1fr;}
  .section{padding:56px 0;}
  .callout{flex-direction:column;align-items:flex-start;}
  /* 16px min on form controls so iOS Safari doesn't zoom the page on focus. */
  .field input,.field select,.field textarea,.footer-news input{font-size:16px;}
}

/* v2 helpers */
.review-card .stars{color:var(--strike);font-size:15px;letter-spacing:2px;margin-bottom:12px;}
.review-card blockquote{margin:0;font-size:15.5px;line-height:1.55;color:var(--text-2);}
.review-card .who{margin-top:16px;font-size:14px;color:var(--ink);font-weight:500;}
.review-card .who span{color:var(--text-3);font-weight:400;}
.incl-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.incl-list li{display:flex;align-items:flex-start;gap:11px;font-size:16px;color:var(--text-2);}
.incl-list li .material-symbols-outlined{font-size:20px;color:var(--accent);flex:0 0 auto;}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;}
@media(max-width:900px){.split{grid-template-columns:1fr;gap:32px;}}
