@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=Unbounded:wght@700;800;900&display=swap");

:root {
  --ink: #080808;
  --paper: #f5f4ef;
  --red: #ef233c;
  --navy: #082b55;
  --gold: #ffc94a;
  --acid: #ef233c;
  --orange: #ef233c;
  --violet: #ef233c;
  --cyan: #ffffff;
  --muted: #aaa7a2;
  --line: rgba(255,255,255,.16);
  --display: "Unbounded", Arial Black, sans-serif;
  --body: "Montserrat", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { max-width:100%; overflow-x:clip; scroll-behavior:smooth; }
body { margin:0; background:var(--ink); color:white; font-family:var(--body); max-width:100%; overflow-x:clip; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
img { max-width: 100%; }
[hidden] { display: none !important; }

.site-header {
  align-items: center; display: flex; height: 84px; justify-content: space-between; left: 0;
  padding: 0 4vw; position: fixed; right: 0; top: 0; transition: .3s ease; z-index: 50;
}
.site-header.scrolled, .city-header { background: rgba(13,13,13,.9); backdrop-filter: blur(14px); border-bottom: 1px solid var(--line); }
.home-page .site-header { display:none; }
.home-header-link {
  animation:home-pill-glow 5s ease-in-out infinite alternate; backdrop-filter: blur(12px); background:linear-gradient(110deg,rgba(8,43,85,.7),rgba(239,35,60,.62),rgba(255,201,74,.48)); background-size:200% 200%; border:1px solid rgba(255,255,255,.28);
  border-radius: 999px; color: rgba(255,255,255,.82); font-size: .64rem; font-weight: 700;
  letter-spacing: .15em; padding: .75rem 1.15rem; text-transform: uppercase; transition: .25s;
}
.home-header-link:hover { background: white; border-color: white; color: var(--ink); }
.brand { align-items: baseline; display: inline-flex; font-family: var(--display); font-size: 1.45rem; font-weight: 900; letter-spacing: -.06em; line-height: 1; }
.brand-eight { color: var(--red); font-size: 2.15em; line-height: .5; margin-left: .04em; }
.brand.has-logo img { display:block; height:62px; max-width:215px; object-fit:contain; width:190px; }
.brand.has-logo .brand-word, .brand.has-logo .brand-eight { display: none; }
.header-note { color: rgba(255,255,255,.55); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; }
.mini-link { border-bottom: 1px solid rgba(255,255,255,.45); font-size: .75rem; letter-spacing: .08em; padding-bottom: 4px; text-transform: uppercase; }
.mini-link span { color: var(--acid); }
.city-header .mini-link { color:#fff; }
.city-header .mini-link:hover { color:var(--gold); }

.home-hero { min-height: 100svh; overflow: hidden; position: relative; }
.home-hero::before {
  background: linear-gradient(180deg, rgba(8,8,8,.52) 0%, rgba(8,8,8,.18) 44%, rgba(8,8,8,.7) 100%);
  content: ""; inset: 0; position: absolute; z-index: 1;
}
.home-hero::after { animation:home-color-wash 11s ease-in-out infinite alternate; background:radial-gradient(circle at 15% 25%,rgba(239,35,60,.38),transparent 31%),radial-gradient(circle at 86% 30%,rgba(255,201,74,.24),transparent 28%),radial-gradient(circle at 65% 88%,rgba(8,43,85,.55),transparent 38%); content:""; inset:-8%; mix-blend-mode:screen; pointer-events:none; position:absolute; z-index:1; }
.hero-video { height: 100%; inset: 0; object-fit: cover; object-position:center center; opacity: .84; position: absolute; width: 100%; }
.hero-noise { background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E"); inset: 0; opacity: .23; pointer-events: none; position: absolute; z-index: 2; }
.orb { border-radius: 18%; filter: none; opacity: .98; position: absolute; transform: rotate(12deg); }
.orb-one { animation: float 8s ease-in-out infinite; background: transparent; border: 3.8vw solid rgba(239,35,60,.14); height: 42vw; right: -12vw; top: 8vh; width: 42vw; }
.orb-two { animation:float 11s ease-in-out infinite reverse; background:transparent; border:3.5vw solid rgba(255,201,74,.13); bottom:-38vw; height:52vw; left:-15vw; width:52vw; }
.orb-three { animation:float-three 13s ease-in-out infinite alternate; background:transparent; border:2.4vw solid rgba(38,121,202,.14); height:30vw; left:8vw; top:-16vw; width:30vw; }
@keyframes float { 50% { transform: translate3d(-3vw, 2vw, 0) scale(1.05); } }
@keyframes float-three { 50% { transform:translate3d(6vw,5vw,0) rotate(32deg) scale(1.12); } }
@keyframes home-color-wash { to { transform:translate3d(3%,-2%,0) scale(1.08); } }
@keyframes home-pill-glow { to { background-position:100% 50%; box-shadow:0 0 28px rgba(239,35,60,.22); } }
.hero-content {
  align-items: center; display: flex; flex-direction: column; justify-content: center; min-height: 100svh;
  padding: 4rem 4vw 5rem; position: relative; text-align: center; z-index: 3;
}
.hero-content::before {
  border: 1px solid rgba(255,255,255,.12); content: ""; inset: 3rem 3vw 3vw; pointer-events: none;
  position: absolute;
}
.hero-central-logo {
  filter:drop-shadow(0 14px 28px rgba(0,0,0,.5)); height:172px; margin-bottom:1.3rem;
  object-fit:contain; position:relative; width:286px; z-index:1;
}
.eyebrow, .kicker { color: var(--acid); font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.hero-content h1 {
  font-family: var(--display); font-size: clamp(3.5rem, 8.5vw, 8.5rem); font-weight: 900;
  letter-spacing: -.075em; line-height: .82; margin: 1.2rem 0 3.2rem; position: relative;
  text-transform: uppercase; z-index: 1;
}
.hero-content h1 span { display: block; }
.hero-content h1 .outline { display: block; height: auto; margin: -.03em auto 0; max-width: 100%; overflow: visible; width: 5.45em; }
.neon-mask-text, .neon-glow-line, .neon-tube-line {
  fill: transparent; font-family: var(--display); font-size: 180px; font-weight: 900; letter-spacing: -12px;
  paint-order: stroke fill;
}
.neon-mask-text { fill: black; stroke: black; stroke-width: 8px; }
.neon-glow-line {
  animation: neon-glow 2.4s steps(1,end) infinite; filter: url(#neon-blur); opacity: 0; stroke: #ff1738; stroke-width: 13px;
}
.neon-tube-line { animation: neon-tube 2.4s steps(1,end) infinite; stroke: white; stroke-width: 3px; }
@keyframes neon-tube {
  0%, 22%, 31%, 38%, 49%, 62%, 93%, 100% { stroke: white; }
  23%, 30%, 39%, 48%, 63%, 92% { stroke: #ff1738; }
}
@keyframes neon-glow {
  0%, 22%, 31%, 38%, 49%, 62%, 93%, 100% { opacity: 0; }
  23%, 30%, 39%, 48% { opacity: .78; }
  63%, 92% { opacity: 1; }
}
.hero-copy {
  backdrop-filter: blur(10px); background: rgba(8,8,8,.32); border-left: 2px solid var(--red);
  font-size: clamp(.82rem, 1vw, .96rem); line-height: 1.7; margin: 0 auto; max-width: 620px;
  padding: .85rem 1.25rem; position: relative; z-index: 1;
}
.hero-complex-cta { background:linear-gradient(110deg,var(--red),#ca1631); box-shadow:0 15px 40px rgba(239,35,60,.28); min-width:min(420px,88vw); position:relative; z-index:4; }
.hero-complex-cta:hover { background:var(--gold); color:var(--navy); }
.round-cta { align-items: center; background: var(--red); border-radius: 50%; bottom: 4vw; color: white; display: flex; font-size: 1.5rem; height: 74px; justify-content: center; left: 4vw; position: absolute; transition: .25s; width: 74px; }
.round-cta:hover { transform: rotate(-20deg) scale(1.08); }
.hero-index { bottom: 4vw; color: rgba(255,255,255,.35); font-family: var(--display); font-size: .9rem; letter-spacing: .14em; position: absolute; right: 4vw; z-index: 3; }

.destinations, .activity-section, .events-section { background: var(--paper); color: var(--ink); padding: 6vw 4vw; }
.home-page .destinations { background:linear-gradient(160deg,#fff3c9 0,#f5f4ef 28%,#edf4fc 100%); }
.section-head { align-items: end; display: flex; justify-content: space-between; margin-bottom: 3.5vw; }
.section-head h2, .info-section h2, .visit-section h2 { font-family: var(--display); font-size: clamp(2.2rem, 3.8vw, 4rem); font-weight: 900; letter-spacing: -.055em; line-height: .96; margin: .7rem 0 0; }
.section-head .kicker { color: var(--red); }
.section-intro { color: #555; line-height: 1.65; margin: 0; max-width: 390px; }
.city-grid { display: grid; gap: 1.2vw; grid-template-columns: repeat(2, 1fr); }
.city-card { --card-a:#ef233c; --card-b:#082b55; --card-c:#ffc94a; aspect-ratio: 1.6; background:var(--card-b); border:1px solid rgba(255,255,255,.45); border-radius:22px; box-shadow:0 20px 45px rgba(8,43,85,.16); color:white; isolation:isolate; overflow:hidden; padding:2rem; position:relative; transform:translateY(0); transition:.4s cubic-bezier(.2,.8,.2,1); }
.city-card:nth-child(2) { --card-a:#ff9638; --card-b:#98142d; --card-c:#ffe37a; }
.city-card:nth-child(3) { --card-a:#1878c9; --card-b:#071f42; --card-c:#ef233c; }
.city-card:nth-child(4) { --card-a:#ffc94a; --card-b:#ef233c; --card-c:#082b55; }
.city-card-bg { background:linear-gradient(135deg,var(--card-b),var(--card-a) 58%,var(--card-c)); background-position:center; background-size:180% 180%; inset:0; opacity:.96; position:absolute; transition:transform .7s; }
.city-card-bg[style] { background-blend-mode:multiply; background-position:center; background-size:cover; }
.city-card::before { animation:city-card-flow 8s ease-in-out infinite alternate; background:radial-gradient(circle at 16% 12%,rgba(255,255,255,.42),transparent 24%),linear-gradient(125deg,rgba(255,201,74,.18),transparent 42%,rgba(239,35,60,.26)); content:""; inset:-20%; mix-blend-mode:screen; pointer-events:none; position:absolute; z-index:1; }
.city-card:nth-child(even)::before { animation-direction:alternate-reverse; animation-duration:10s; }
.city-card::after { background:linear-gradient(180deg,rgba(3,12,26,.06),rgba(3,12,26,.84)); content:""; inset:0; position:absolute; z-index:1; }
.city-card-orbits { height:78%; pointer-events:none; position:absolute; right:-12%; top:-24%; width:56%; z-index:2; }
.city-card-orbits i { animation:city-card-orbit 13s linear infinite; border:1px solid rgba(255,255,255,.48); border-radius:42%; inset:0; position:absolute; }
.city-card-orbits i:nth-child(2) { animation-direction:reverse; animation-duration:18s; border-color:color-mix(in srgb,var(--card-c) 72%,white); inset:17%; }
.city-card-orbits i:nth-child(3) { animation-duration:9s; border:3px solid color-mix(in srgb,var(--card-a) 68%,white); inset:35%; }
.city-card:hover { transform: translateY(-7px); }
.city-card:hover .city-card-bg { transform: scale(1.06); }
.city-card-top, .city-card-bottom { align-items: center; display: flex; justify-content: space-between; position: relative; z-index: 3; }
.city-card-top { font-size: .68rem; letter-spacing: .13em; text-transform: uppercase; }
.status-dot { background: var(--red); border-radius: 50%; box-shadow: 0 0 0 5px rgba(239,35,60,.18); height: 7px; margin-right: -40%; width: 7px; }
.is-coming .status-dot { background: white; box-shadow: 0 0 0 5px rgba(255,255,255,.16); }
.department { border: 1px solid rgba(255,255,255,.35); border-radius: 50%; display: grid; font-size: .8rem; height: 43px; place-items: center; width: 43px; }
.city-card-bottom { bottom: 2rem; gap: 1.5rem; left: 2rem; right: 2rem; position: absolute; }
.city-card-bottom > div { min-width: 0; }
.city-card small { font-size: .65rem; letter-spacing: .16em; text-transform: uppercase; }
.city-card h3 { font-family: var(--display); font-size: clamp(1.8rem, 2.8vw, 3.3rem); letter-spacing: -.05em; line-height: .92; margin: .55rem 0 0; text-transform: uppercase; }
.card-arrow {
  align-items: center; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; display: flex;
  flex: 0 0 58px; height: 58px; justify-content: center; transition: .25s; width: 58px;
}
.card-arrow svg { fill: none; height: 21px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; transition: transform .25s; width: 21px; }
.city-card:hover .card-arrow { background: var(--red); border-color: var(--red); color: white; }
.city-card:hover .card-arrow svg { transform: translate(2px,-2px); }
@keyframes city-card-flow { to { transform:translate3d(8%,-5%,0) rotate(2deg) scale(1.08); } }
@keyframes city-card-orbit { to { transform:rotate(360deg); } }
.loading-card, .empty-state { color: #777; padding: 3rem 0; }
.manifesto { align-items:center; animation:manifesto-flow 10s ease-in-out infinite alternate; background:linear-gradient(120deg,var(--red),#bd1530 38%,var(--navy) 72%,#0c4d8e); background-size:180% 180%; display:flex; min-height:60vh; overflow:hidden; padding:4vw; position:relative; }
.manifesto-mark { color: rgba(255,255,255,.1); font-family: var(--display); font-size: 40vw; font-weight: 900; line-height: .5; margin-left: -4vw; }
.manifesto p { font-family: var(--display); font-size: clamp(2.5rem, 4.8vw, 5.5rem); font-weight: 800; letter-spacing: -.05em; line-height: 1; position: absolute; right: 8vw; text-transform: uppercase; }
.manifesto em { color: white; font-style: normal; font-weight: 800; }
.activity-ticker { background:#6d7178; color:white; overflow:hidden; padding:1.3rem 0; }
.ticker-track { animation: ticker 24s linear infinite; display: flex; font-family: var(--display); font-size: 1.2rem; font-weight: 800; gap: 2rem; white-space: nowrap; width: max-content; }
.ticker-item { align-items:center; display:flex; gap:.65rem; text-transform:uppercase; }
.ticker-item img,.ticker-item i { align-items:center; background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.28); border-radius:50%; display:flex; height:38px; justify-content:center; object-fit:contain; padding:.42rem; width:38px; }
.ticker-item img { filter:brightness(0) invert(1); }
.ticker-item i { color:white; font-style:normal; padding:0; }
@keyframes ticker { to { transform: translateX(-50%); } }
@keyframes manifesto-flow { to { background-position:100% 60%; } }
.site-footer { align-items: center; background: #080808; color: #aaa; display: grid; font-size: .72rem; gap: 2rem; grid-template-columns: 1fr 1.5fr 1fr; padding: 4rem 4vw; }
.footer-brand { color: white; }
.footer-links { display: flex; gap: 1.5rem; }
.footer-signature { align-items:center; display:flex; gap:.8rem; }
.footer-signature > img { height:58px; object-fit:contain; width:92px; }
.footer-signature > span { color:#666; font-size:.65rem; text-transform:uppercase; }
.footer-signature a img { height:38px; object-fit:contain; width:125px; }
.footer-legal { text-align:center; }
.footer-legal .footer-links { flex-wrap:wrap; font-size:.6rem; justify-content:center; letter-spacing:.05em; text-transform:uppercase; }
.footer-access { justify-content:flex-end; }
.app-install-button { align-items:center; animation:app-install-pulse 3s ease-in-out infinite; background:linear-gradient(115deg,var(--red),#c91831 58%,var(--navy)); border:1px solid rgba(255,255,255,.42); border-radius:999px; bottom:1.2rem; box-shadow:0 12px 35px rgba(0,0,0,.34); color:white; cursor:pointer; display:flex; flex-direction:column; line-height:1.05; padding:.72rem 1.15rem; position:fixed; right:1.2rem; text-align:left; z-index:450; }
.app-install-button img { border-radius:50%; height:34px; margin-bottom:.35rem; object-fit:cover; width:34px; }
.app-install-button span { font-size:.5rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.app-install-button b { font-family:var(--display); font-size:.72rem; }
@keyframes app-install-pulse { 50% { box-shadow:0 12px 40px rgba(239,35,60,.48); transform:translateY(-3px); } }

.city-header { height:100px; }
.city-header .brand.has-logo img { height:90px; max-width:none; width:auto; }
.city-nav { display:flex; font-size:.79rem; font-weight:600; gap:2rem; letter-spacing:.09em; text-transform:uppercase; }
.city-nav a,.city-nav button { background:none; border:0; color:#bbb; cursor:pointer; font-size:inherit; letter-spacing:inherit; padding:0; text-transform:uppercase; }
.city-nav a:hover,.city-nav button:hover { color: var(--acid); }
.nav-dropdown { position:relative; }
.nav-dropdown::after { content:""; height:1rem; left:-1rem; position:absolute; right:-1rem; top:100%; }
.nav-dropdown button span { color:var(--red); margin-left:.25rem; }
.nav-dropdown-menu { background:linear-gradient(145deg,#111827,#090b10); border:1px solid #343949; box-shadow:0 18px 45px rgba(0,0,0,.5); display:flex; flex-direction:column; left:-1rem; min-width:230px; opacity:0; padding:.7rem; pointer-events:none; position:absolute; top:calc(100% + .9rem); transform:translateY(-6px); transition:opacity .18s,transform .18s,visibility .18s; visibility:hidden; z-index:100; }
.nav-dropdown-menu a { border-bottom:1px solid #292929; font-size:.62rem; letter-spacing:.06em; padding:.8rem .6rem; white-space:nowrap; }
.nav-dropdown-menu a:hover { background:rgba(239,35,60,.12); color:white; padding-left:.9rem; }
.nav-dropdown-menu a:last-child { border-bottom:0; }
.nav-dropdown:not(:hover):not(:focus-within) .nav-dropdown-menu { transition-delay:.16s; }
.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu { opacity:1; pointer-events:auto; transform:translateY(0); visibility:visible; }
.mobile-menu-toggle { display:none; }
.button { align-items: center; background: var(--red); border: 0; color: white; cursor: pointer; display: inline-flex; font-size: .72rem; font-weight: 700; gap: 2rem; justify-content: center; letter-spacing: .09em; min-height: 54px; padding: 0 1.5rem; text-transform: uppercase; transition: .25s; }
.button:hover { background: white; color:var(--ink); transform: translateY(-2px); }
.button-small { min-height: 42px; padding: 0 1.2rem; }
.city-hero { min-height:88vh; overflow:hidden; padding-top:100px; position:relative; }
.city-hero-media { background: linear-gradient(135deg,transparent 0 58%,rgba(239,35,60,.94) 58% 76%,transparent 76%), radial-gradient(circle at 72% 42%,#ef233c 0,transparent 34%), #111; inset: 0; position: absolute; background-position:center; background-size:cover; }
.city-hero-media::after { background: linear-gradient(90deg,rgba(0,0,0,.85),rgba(0,0,0,.08)),linear-gradient(0deg,rgba(0,0,0,.65),transparent 60%); content:""; inset:0; position:absolute; }
.city-hero-content { display:flex; flex-direction:column; justify-content:flex-end; min-height:calc(88vh - 100px); padding:4vw; position:relative; z-index:3; }
.back-link { color: #bbb; font-size: .68rem; letter-spacing: .12em; margin-bottom: auto; text-transform: uppercase; }
.city-title-row { align-items: end; display: flex; justify-content: space-between; }
.city-title-row h1 { font-family: var(--display); font-size: clamp(3.2rem, 7vw, 7.5rem); letter-spacing: -.07em; line-height: .86; margin: 2rem 0; text-transform: uppercase; }
.dept-badge { align-items: center; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; display: flex; font-family: var(--display); font-size: 2rem; height: 100px; justify-content: center; margin-bottom: 2rem; width: 100px; }
.city-lead { font-size: clamp(1rem, 1.6vw, 1.4rem); line-height: 1.55; max-width: 630px; }
.hero-actions { align-items: center; display: flex; gap: 2rem; margin-top: 2rem; }
.text-link { border-bottom: 1px solid currentColor; font-size: .75rem; letter-spacing: .08em; padding-bottom: .3rem; text-transform: uppercase; }
.hero-social-band { align-items:center; background:rgba(4,13,28,.72); border:1px solid rgba(255,255,255,.22); box-shadow:0 18px 55px rgba(0,0,0,.28); display:flex; flex-wrap:wrap; gap:.9rem 1.1rem; margin-top:1.3rem; max-width:620px; padding:.8rem .95rem; position:relative; z-index:3; }
.hero-social-band b { color:var(--gold); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; }
.hero-social-band div { display:flex; flex-wrap:wrap; gap:.55rem; }
.hero-social-band a,.strip-social-links a { align-items:center; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); color:white; display:inline-flex; font-size:.62rem; font-weight:900; justify-content:center; letter-spacing:.08em; min-height:36px; padding:.65rem .85rem; text-transform:uppercase; transition:transform .22s,background .22s,color .22s,border-color .22s; }
.hero-social-band a:hover,.strip-social-links a:hover { background:var(--gold); border-color:var(--gold); color:#111; transform:translateY(-2px); }
.section-head.compact { margin-bottom: 2.5vw; }
.activity-grid { display:grid; gap:1rem; grid-template-columns:repeat(12,minmax(0,1fr)); }
.promo-pulse-bar { animation:promo-heartbeat 1.8s ease-in-out infinite; background:#ef233c; color:white; display:flex; flex-wrap:wrap; gap:.8rem 1.2rem; margin:0 0 2rem; padding:1rem 1.2rem; }
.promo-pulse-bar span { font-size:.78rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.promo-pulse-bar b { color:var(--gold); margin-right:.4rem; }
.activity-card:nth-child(6n+1) { grid-column:span 5; }
.activity-card:nth-child(6n+2) { grid-column:span 3; }
.activity-card:nth-child(6n+3) { grid-column:span 4; }
.activity-card:nth-child(6n+4) { grid-column:span 3; }
.activity-card:nth-child(6n+5) { grid-column:span 5; }
.activity-card:nth-child(6n+6) { grid-column:span 4; }
.complex-info-strip { align-items:center; background:linear-gradient(90deg,#fff1c6,#fffaf0); border-bottom:1px solid rgba(8,43,85,.12); border-left:6px solid var(--red); color:var(--navy); display:flex; justify-content:space-between; padding:1.25rem 4vw; }
.complex-info-strip > div:first-child { display:flex; flex-direction:column; gap:.3rem; }
.complex-info-strip b { font-family:var(--display); font-size:1rem; text-transform:uppercase; }
.complex-info-strip span,.complex-info-strip a { font-size:.7rem; }
.today-city-hours { align-items:flex-end; display:flex; flex-direction:column; gap:.2rem; text-align:right; }
.today-city-hours > span { text-transform:capitalize; }
.today-city-hours strong { color:var(--red); font-family:var(--display); font-size:1.25rem; }
.today-city-hours small { color:rgba(8,43,85,.65); font-size:.55rem; text-transform:uppercase; }
.strip-social-links { align-items:center; display:flex; flex-wrap:wrap; gap:.45rem; justify-content:flex-end; }
.strip-social-links > span { color:var(--red); font-size:.56rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.strip-social-links a { background:var(--navy); border-color:var(--navy); min-height:32px; padding:.55rem .7rem; }
.city-page .activity-section { background:linear-gradient(180deg,#fff 0%,#f3f1eb 100%); padding-bottom:6vw; position:relative; }
.city-page .activity-section::before { display:none; }
.activity-card { animation:activity-card-colors 7s ease-in-out infinite alternate; background:linear-gradient(125deg,#ef233c,#ff5a35 48%,#a90f28); background-size:220% 220%; border-top:4px solid var(--gold); color:white; display:flex; flex-direction:column; isolation:isolate; min-height:330px; overflow:hidden; padding:1.7rem; position:relative; transition:.35s; }
.activity-card:nth-child(3n+2) { animation-delay:-2.4s; background:linear-gradient(125deg,#0c3c75,#1674c8 48%,#061a35); background-size:220% 220%; border-top-color:#55a8ff; }
.activity-card:nth-child(3n) { animation-delay:-4.8s; background:linear-gradient(125deg,#ffcb4c,#ff9b2f 50%,#fff0a8); background-size:220% 220%; border-top-color:var(--red); color:var(--navy); }
.activity-card::before { animation:activity-gradient 8s ease-in-out infinite alternate; background:radial-gradient(circle at 75% 20%,rgba(255,255,255,.24),transparent 33%),linear-gradient(125deg,transparent 35%,rgba(255,255,255,.1),transparent 65%); content:""; inset:0; position:absolute; z-index:-1; }
.activity-card-media { background-position:center; background-size:cover; filter:saturate(1.15) contrast(1.05); inset:0; opacity:.24; position:absolute; transform:scale(1.03); transition:opacity .45s,transform .8s cubic-bezier(.2,.8,.2,1); z-index:-2; }
.activity-card:hover { border-top-color:white; box-shadow:0 18px 35px rgba(8,43,85,.2); transform:translateY(-6px); }
.activity-card:hover .activity-card-media { opacity:.42; transform:scale(1.1); }
.activity-card:hover p,.activity-card:hover span { color:rgba(255,255,255,.84); }
.activity-card:nth-child(3n):hover p,.activity-card:nth-child(3n):hover span { color:rgba(8,43,85,.82); }
.activity-card:hover .activity-icon { border-color:var(--red); color:white; }
.activity-card:hover .activity-icon img { filter:brightness(0) invert(1); }
.activity-card:nth-child(3n):hover .activity-icon { border-color:var(--navy); color:var(--navy); }
.activity-card:nth-child(3n):hover .activity-icon img { filter:brightness(0) saturate(100%) invert(16%) sepia(43%) saturate(1673%) hue-rotate(174deg) brightness(87%); }
.activity-icon { align-items:center; align-self:flex-end; backdrop-filter:blur(8px); background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.65); border-radius:50%; display:flex; font-family:var(--display); font-size:2rem; height:72px; justify-content:center; width:72px; }
.activity-card:nth-child(3n+2) .activity-icon { border-color:rgba(255,255,255,.55); color:white; }
.activity-card:nth-child(3n) .activity-icon { border-color:rgba(8,43,85,.4); color:var(--navy); }
.activity-icon img,.giant-activity-icon img { height: 60%; object-fit: contain; width: 60%; }
.giant-activity-icon img { filter: brightness(0) invert(1); }
.activity-card > div:last-child { margin-top: auto; }
.activity-card p, .event-body p { color:rgba(255,255,255,.75); font-size:.65rem; letter-spacing:.13em; text-transform:uppercase; }
.activity-card:nth-child(3n) p { color:rgba(8,43,85,.7); }
.activity-card h3 { font-family: var(--display); font-size: 2rem; line-height: 1; margin: .6rem 0 1rem; text-transform: uppercase; }
.activity-card span { color:rgba(255,255,255,.78); font-size:.85rem; line-height:1.55; }
.activity-card:nth-child(3n) span { color:rgba(8,43,85,.76); }
@keyframes activity-gradient { from { transform:translate3d(-2%,0,0) scale(1); } to { transform:translate3d(2%,-2%,0) scale(1.08); } }
@keyframes activity-card-colors { from { background-position:0% 50%; } to { background-position:100% 50%; } }
.info-section { background:#fff; display:block; position:relative; }
.schedule-panel { background:linear-gradient(135deg,#fff7df,#fff 70%); border-top:5px solid var(--red); color:var(--navy); padding:4vw 9vw; }
.price-panel { background:#ecebe7; color:#111; padding:7vw 4vw; }
.price-panel .section-head { margin-bottom:3rem; }
.price-panel .section-intro { color:#666; }
.weekly-pricing-list { display:flex; flex-direction:column; gap:4rem; }
.weekly-pricing-block > h3 { font-family:var(--display); font-size:clamp(1.7rem,3vw,3.2rem); margin:0 0 1.5rem; text-transform:uppercase; }
.weekly-pricing-cards { display:grid; gap:1rem; grid-template-columns:1fr 1fr; }
.weekly-price-card { background:linear-gradient(155deg,#ef233c,#c81731); border:1px solid rgba(255,255,255,.14); border-radius:7px; box-shadow:0 18px 42px rgba(0,0,0,.18); color:var(--gold); padding:1.7rem 1.8rem; }
.weekly-price-card.holidays { background:linear-gradient(155deg,#0b376a,#061d3b); }
.weekly-price-card h4 { color:white; font-family:var(--display); font-size:clamp(1.35rem,2vw,2.2rem); font-weight:700; margin:0 0 .8rem; text-align:left; }
.weekly-price-head,.weekly-price-row { align-items:center; display:grid; gap:1rem; grid-template-columns:1.2fr .8fr 1fr; }
.weekly-price-head { min-height:42px; }
.weekly-price-head span { background:var(--gold); border-radius:4px; color:#c81731; font-weight:800; grid-column:3; padding:.62rem .5rem; text-align:center; }
.weekly-price-row { border-top:1px solid rgba(255,255,255,.12); font-family:var(--display); font-size:clamp(.68rem,1vw,.9rem); min-height:45px; text-transform:uppercase; }
.weekly-price-row span:nth-child(2) { text-align:center; }
.weekly-price-row strong { background:var(--gold); border-radius:4px; color:#c81731; font-size:.92rem; padding:.58rem .45rem; text-align:center; }
.weekly-price-note { color:var(--gold); font-family:var(--display); font-size:.68rem; margin:.8rem 0 0; text-align:center; }
.simple-price-list { background:#111; color:white; padding:2rem; }
.schedule-choice { color:#5e6673; font-size:.82rem; margin:1.5rem 0 .75rem; }
.schedule-tabs { display:flex; gap:.65rem; margin:0 0 1rem; }
.schedule-tabs button { background:white; border:1px solid rgba(8,43,85,.2); border-radius:999px; color:var(--navy); cursor:pointer; font-size:.68rem; font-weight:800; letter-spacing:.08em; padding:.85rem 1.25rem; text-transform:uppercase; transition:.2s; }
.schedule-tabs button:hover { border-color:var(--red); }
.schedule-tabs button.active { background:var(--red); border-color:var(--red); color:white; box-shadow:0 7px 18px rgba(239,35,60,.2); }
.schedule-list { background:white; border:1px solid rgba(8,43,85,.11); border-radius:8px; padding:.35rem 1rem; }
.schedule-row, .price-row { align-items:center; border-bottom:1px solid rgba(8,43,85,.1); display:flex; justify-content:space-between; min-height:49px; }
.schedule-row:last-child { border-bottom:0; }
.schedule-row span { color:#566171; }
.schedule-row strong { color:var(--navy); font-family:var(--display); font-size:1.08rem; }
.closure-alert { align-items:center; background:linear-gradient(110deg,#071c37,#102f58 62%,#5c1225); border:1px solid rgba(255,201,74,.36); border-radius:14px; box-shadow:0 16px 35px rgba(0,0,0,.22); color:white; display:flex; gap:1rem; margin-top:1rem; overflow:hidden; padding:1.15rem 1.3rem; position:relative; }
.closure-alert::after { background:var(--red); content:""; height:140px; opacity:.18; position:absolute; right:-65px; top:-65px; transform:rotate(35deg); width:140px; }
.closure-alert i { animation:closure-pulse 1.7s ease-in-out infinite; background:var(--red); border:5px solid rgba(239,35,60,.2); border-radius:50%; box-shadow:0 0 0 7px rgba(239,35,60,.08); flex:0 0 auto; height:14px; width:14px; }
.closure-alert div { display:flex; flex-direction:column; gap:.35rem; position:relative; z-index:1; }
.closure-alert b { color:var(--gold); font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; }
.closure-alert span { font-size:clamp(.76rem,1.1vw,.9rem); line-height:1.5; }
@keyframes closure-pulse { 50% { box-shadow:0 0 0 12px rgba(239,35,60,0); transform:scale(1.08); } }
.price-list { margin-top: 3rem; }
.price-row span { display: flex; flex-direction: column; }
.price-row small { color: rgba(255,255,255,.55); margin-top: .2rem; }
.price-row strong { color: white; font-family: var(--display); font-size: 1.15rem; }
.fine-print { color: rgba(255,255,255,.5); font-size: .7rem; line-height: 1.5; margin-top: 2rem; }
.event-grid { display: grid; gap: 1.3rem; grid-template-columns: repeat(3,1fr); }
.city-page .events-section { background:linear-gradient(135deg,#fff1c7,#fff 62%); border-top:5px solid var(--gold); }
.event-card { background: white; border-bottom:4px solid var(--navy); box-shadow:0 12px 30px rgba(8,43,85,.08); }
.event-card:nth-child(2n) { border-bottom-color:var(--red); }
.event-image { align-items: flex-start; aspect-ratio: 1.4; background: radial-gradient(circle at 30% 20%,#ff7a55,transparent 40%),linear-gradient(145deg,#322f78,#111); background-position:center; background-size:cover; display: flex; padding: 1rem; }
.event-image span { background: var(--acid); font-size: .65rem; font-weight: 700; padding: .6rem; text-transform: uppercase; }
.event-body { padding: 1.5rem; }
.event-body h3 { font-family: var(--display); font-size: 1.5rem; margin: .5rem 0; text-transform: uppercase; }
.event-body > span { color: #666; font-size: .85rem; line-height: 1.5; }
.no-events { background:white; border:1px solid rgba(8,43,85,.16); border-left:6px solid var(--red); grid-column:1/-1; padding:2.8rem; text-align:center; }
.no-events > span { color:var(--gold); font-size:2rem; }
.no-events h3 { font-family: var(--display); font-size:clamp(1.5rem,2.4vw,2.1rem); margin:1rem; text-transform:uppercase; }
.no-events p { color: #777; }
.visit-section { background:linear-gradient(135deg,var(--navy),#061a35); color:white; display:grid; gap:3vw; grid-template-columns:.72fr 1.28fr; padding:4vw; }
.visit-copy { align-self:center; }
.visit-section .kicker { color:var(--gold); }
.visit-details { border-top:1px solid rgba(255,255,255,.2); margin-top:1.6rem; max-width:520px; }
.visit-detail { border-bottom:1px solid rgba(255,255,255,.16); display:flex; flex-direction:column; gap:.32rem; padding:.9rem 0; }
.visit-detail span { color:var(--gold); font-size:.58rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.visit-detail strong { color:white; font-size:.88rem; font-weight:600; line-height:1.5; }
a.visit-detail:hover strong { color:var(--gold); }
.visit-actions { align-items:flex-start; display:flex; flex-direction:column; gap:.9rem; margin-top:1.3rem; }
.city-social-links { display:flex; flex-wrap:wrap; gap:.7rem; }
.city-social-links a { border:1px solid rgba(255,255,255,.22); color:white; font-size:.7rem; font-weight:800; letter-spacing:.08em; padding:.85rem 1rem; text-transform:uppercase; }
.map-button { background:var(--gold); color:#111; margin-top:.5rem; }
.city-map { background:#050f1f; border:4px solid white; min-height:360px; overflow:hidden; }
.city-map iframe { border:0; display:block; height:100%; min-height:360px; width:100%; }
.not-found { min-height: 85vh; padding: 15vh 4vw; text-align: center; }
.not-found > span { color: var(--red); font-family: var(--display); font-size: 12rem; font-weight: 900; line-height: .7; }
.not-found h1 { font-family: var(--display); font-size: 4rem; text-transform: uppercase; }

.coming-page { background: #080808; min-height: 100svh; overflow-x: hidden; }
.coming-header { background: transparent; }
.coming-main { align-items: center; display: flex; min-height: 100svh; overflow: hidden; padding: 8rem 4vw 5rem; position: relative; }
.coming-main::before { background: linear-gradient(90deg,rgba(8,8,8,.2),rgba(8,8,8,.75)); content: ""; inset: 0; pointer-events: none; position: absolute; z-index: 1; }
.coming-shape { background: var(--red); position: absolute; }
.coming-shape-one { border-radius: 22%; height: 58vw; right: -18vw; top: -14vw; transform: rotate(16deg); width: 58vw; }
.coming-shape-two { background: transparent; border: 5vw solid rgba(239,35,60,.36); border-radius: 24%; bottom: -34vw; height: 62vw; left: 18vw; transform: rotate(-12deg); width: 62vw; }
.coming-content { max-width: 880px; position: relative; z-index: 3; }
.coming-pulse { animation: pulse 1.8s ease-in-out infinite; background: var(--red); border-radius: 50%; display: inline-block; height: 8px; margin-right: .65rem; width: 8px; }
@keyframes pulse { 50% { box-shadow: 0 0 0 9px rgba(239,35,60,.12); } }
.coming-content h1 { font-family: var(--display); letter-spacing: -.065em; line-height: 1.04; margin: 2rem 0; text-transform: uppercase; }
.coming-content h1 > span { color: white; display: block; font-size: clamp(1.7rem,3vw,3.2rem); line-height:1.1; margin-bottom: 1.5rem; }
.coming-content h1 strong { color: white; display: block; font-size: clamp(2.5rem,4.8vw,5.2rem); font-weight: 900; line-height:1.05; -webkit-text-stroke: 0; }
.coming-copy { font-size: clamp(1rem,1.35vw,1.3rem); line-height: 1.7; max-width: 620px; }
.coming-actions { align-items: center; display: flex; gap: 2rem; margin-top: 2.5rem; }
.coming-actions > span { color: rgba(255,255,255,.55); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.coming-eight { bottom: -8vw; color: rgba(255,255,255,.05); font-family: var(--display); font-size: 34vw; font-weight: 900; line-height: .7; position: absolute; right: -2vw; z-index: 2; }
.coming-activities { bottom: 2rem; color: rgba(255,255,255,.38); font-size: .62rem; left: 4vw; letter-spacing: .16em; margin: 0; position: absolute; text-transform: uppercase; z-index: 3; }

.inner-page { background: var(--paper); color: var(--ink); }
.inner-page .site-header { color: white; }
.inner-hero { background: #0b0b0b; color: white; min-height: 58vh; padding: 12rem 4vw 5rem; position: relative; }
.inner-hero::after { color: rgba(239,35,60,.16); content: "8"; font-family: var(--display); font-size: 34vw; font-weight: 900; line-height: .7; position: absolute; right: 3vw; top: 6rem; }
.inner-hero > * { max-width: 850px; position: relative; z-index: 1; }
.inner-hero h1 { font-family: var(--display); font-size: clamp(3.2rem,7vw,7rem); letter-spacing: -.075em; line-height: .9; margin: 1.3rem 0; }
.inner-hero > p:last-child { color: #aaa; font-size: 1.1rem; line-height: 1.7; }
.today-hours { align-items: center; background: var(--red); color: white; display: flex; justify-content: space-between; min-height: 280px; padding: 4vw; }
.today-hours h2 { font-family: var(--display); font-size: clamp(1.4rem,3vw,3rem); letter-spacing: -.04em; margin: .8rem 0; text-transform: uppercase; }
.today-hours .kicker { color: white; }
.today-hours > strong { font-family: var(--display); font-size: clamp(2.6rem,6vw,6.5rem); letter-spacing: -.07em; text-align: right; }
.schedule-mode-chip { border: 1px solid rgba(255,255,255,.45); display: inline-block; font-size: .65rem; letter-spacing: .1em; padding: .6rem .8rem; text-transform: uppercase; }
.all-hours { background:#f5f6f8; padding:5rem max(4vw,3rem); }
.schedule-heading { margin:0 auto 2rem; max-width:1180px; }
.schedule-heading h2 { color:var(--navy); font-family:var(--display); font-size:clamp(1.8rem,3vw,3rem); margin:.35rem 0 0; text-transform:uppercase; }
.schedule-period-grid { display:grid; gap:1.25rem; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0 auto; max-width:1180px; }
.schedule-period-card { background:#fff; border:1px solid rgba(8,43,85,.1); border-radius:12px; box-shadow:0 12px 30px rgba(8,43,85,.08); overflow:hidden; }
.schedule-period-card > header { background:var(--navy); color:#fff; min-height:118px; padding:1.25rem 1.5rem; position:relative; }
.schedule-period-card > header span { color:#ffd65a; font-size:.62rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.schedule-period-card > header h3 { font-family:var(--display); font-size:clamp(1.05rem,1.7vw,1.5rem); margin:.3rem 0 0; text-transform:uppercase; }
.schedule-period-holidays > header { background:var(--red); }
.schedule-period-holidays > header span { color:#fff0a8; }
.active-period-label { background:#ffd65a; border-radius:999px; bottom:.8rem; color:var(--navy); display:none; font-size:.56rem; font-weight:900; left:1.5rem; letter-spacing:.06em; padding:.42rem .65rem; position:absolute; text-transform:uppercase; }
.schedule-period-card.is-active-period { border-color:#ffd65a; box-shadow:0 15px 36px rgba(8,43,85,.13); }
.schedule-period-card.is-active-period .active-period-label { display:inline-block; }
.schedule-period-card .schedule-page-list { border-top:0; padding:.25rem 1rem; }
.schedule-period-card .schedule-page-row { min-height:58px; padding:0 .35rem; }
.schedule-period-card .schedule-page-row span { font-size:.86rem; }
.schedule-period-card .schedule-page-row strong { font-size:.92rem; text-align:right; }
.schedule-period-card .schedule-page-row.is-today { background:#fff3c4; color:var(--navy); margin:0 -.35rem; padding:0 .7rem; }
.schedule-period-card .schedule-page-row.is-today small { color:var(--red); }
.schedule-empty { color:#6c7480; margin:0; padding:2rem 1rem; text-align:center; }
.schedule-page-list { border-top: 1px solid #ccc; }
.schedule-page-row { align-items: center; border-bottom: 1px solid #ccc; display: flex; justify-content: space-between; min-height: 78px; padding: 0 1rem; }
.schedule-page-row span { display: flex; flex-direction: column; font-weight: 600; }
.schedule-page-row small { color: var(--red); font-size: .55rem; letter-spacing: .08em; margin-top: .3rem; text-transform: uppercase; }
.schedule-page-row strong { font-family: var(--display); font-size: 1.3rem; }
.schedule-page-row.is-today { background: #111; color: white; }
.public-closures { margin-top: 2rem; }
.activity-detail-hero { background:#0b0b0b; color:white; display:grid; grid-template-columns:1fr 1fr; min-height:88vh; padding-top:100px; }
.activity-detail-media { background: linear-gradient(145deg,#ef233c,#26060b 45%,#111); background-position: center; background-size: cover; }
.activity-detail-copy { background:linear-gradient(145deg,#101722,#080b11); display:flex; flex-direction:column; justify-content:center; padding:6vw; position:relative; }
.activity-detail-copy::before { animation:activity-gradient 9s ease-in-out infinite alternate; background:radial-gradient(circle at 90% 15%,rgba(239,35,60,.28),transparent 36%); content:""; inset:0; pointer-events:none; position:absolute; }
.activity-detail-copy > * { position:relative; }
.activity-trampoline .activity-detail-copy { background:linear-gradient(145deg,#061a35,#0c3c75); }
.activity-laser .activity-detail-copy { background:linear-gradient(145deg,#2a0711,#b5122c); }
.activity-bar .activity-detail-copy { background:linear-gradient(145deg,#5c2e00,#ef233c); }
.activity-billard .activity-detail-copy { background:linear-gradient(145deg,#061a35,#15528d); }
.activity-arcade .activity-detail-copy { background:linear-gradient(145deg,#ef233c,#d77c00); }
.giant-activity-icon { align-items: center; border: 2px solid var(--red); border-radius: 50%; color: var(--red); display: flex; font-family: var(--display); font-size: 4rem; height: 130px; justify-content: center; margin: 4rem 0 2rem; width: 130px; }
.activity-detail-copy h1 { font-family:var(--display); font-size:clamp(2.8rem,5.2vw,5.4rem); letter-spacing:-.065em; line-height:.92; margin:1rem 0; text-transform:uppercase; }
.activity-detail-copy > p:last-child { color: #aaa; line-height: 1.7; max-width: 580px; }
.activity-detail-content { display:grid; gap:3vw; grid-template-columns:1.1fr .9fr; padding:4.5vw; }
.activity-detail-content.has-weekly-pricing { background:#f5f3ec; grid-template-columns:1fr; }
.activity-detail-content h2,.formula-copy h2,.corporate-story h2 { font-family:var(--display); font-size:clamp(2.2rem,4.2vw,4.3rem); letter-spacing:-.055em; line-height:.98; margin:.8rem 0 1.5rem; text-transform:uppercase; }
.rich-copy { color: #555; font-size: 1.05rem; line-height: 1.8; white-space: pre-line; }
.activity-pricing { background:linear-gradient(145deg,#111827,#080b11); color:white; overflow:hidden; padding:3rem; position:relative; }
.activity-pricing::before { background:var(--red); border-radius:36%; content:""; height:190px; opacity:.16; position:absolute; right:-95px; top:-105px; transform:rotate(28deg); width:190px; }
.activity-pricing > * { position:relative; z-index:1; }
.activity-pricing.weekly { background:#fffaf0; border:1px solid rgba(8,43,85,.12); border-top:6px solid var(--red); color:var(--navy); padding:clamp(1.5rem,3vw,3rem); }
.activity-pricing.weekly > .kicker { color:var(--red); margin-top:0; }
.detail-price-row { align-items:center; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); border-radius:10px; display:flex; justify-content:space-between; margin-top:.7rem; padding:1rem 1.1rem; transition:transform .25s,background .25s; }
.detail-price-row:hover { background:rgba(255,255,255,.13); transform:translateX(5px); }
.detail-price-row strong { color: var(--red); font-family: var(--display); font-size: 1.2rem; }
.detail-price-row span { display: flex; flex-direction: column; gap: .25rem; }
.detail-price-row small { color: var(--red); font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.detail-price-row em { color: #888; font-size: .68rem; font-style: normal; }
.activity-trampoline .activity-detail-content { background:linear-gradient(135deg,#edf5ff,#fff8df); }
.activity-trampoline .activity-pricing { background:linear-gradient(145deg,#082b55,#0d5797 68%,#0b1f3a); }
.activity-trampoline .activity-pricing::before { background:var(--gold); }
.activity-trampoline .detail-price-row strong,.activity-trampoline .activity-pricing .kicker { color:var(--gold); }
.activity-laser .activity-detail-content { background:linear-gradient(135deg,#fff0f2,#eef4fb); }
.activity-laser .activity-pricing { background:linear-gradient(145deg,#260712,#9f1028 62%,#ef233c); }
.activity-laser .activity-pricing::before { background:var(--gold); }
.activity-laser .detail-price-row strong { color:var(--gold); }
.activity-bar .activity-detail-content { background:linear-gradient(135deg,#fff4d7,#fff0ed); }
.activity-bar .activity-pricing { background:linear-gradient(145deg,#6b3100,#d86410 55%,#ef233c); }
.activity-bar .activity-pricing::before { background:var(--gold); opacity:.24; }
.activity-bar .detail-price-row strong,.activity-bar .activity-pricing .kicker { color:#ffe089; }
.activity-billard .activity-detail-content { background:linear-gradient(135deg,#e9f4ff,#f8f0f2); }
.activity-billard .activity-pricing { background:linear-gradient(145deg,#061a35,#0c4d88 65%,#ef233c); }
.activity-billard .detail-price-row strong { color:var(--gold); }
.activity-arcade .activity-detail-content { background:linear-gradient(135deg,#fff2d2,#ffe8ed); }
.activity-arcade .activity-pricing { background:linear-gradient(145deg,#d77c00,#ef233c 62%,#9e1026); }
.activity-arcade .activity-pricing::before { background:#082b55; opacity:.22; }
.activity-arcade .detail-price-row strong { color:#fff1ad; }
.activity-trampoline .detail-price-row em,.activity-laser .detail-price-row em,.activity-bar .detail-price-row em,.activity-billard .detail-price-row em,.activity-arcade .detail-price-row em { color:rgba(255,255,255,.68); }
.activity-video { background: #111; padding: 6vw; }
.activity-video video,.inline-video { display: block; max-height: 75vh; width: 100%; }
.formula-section { display: grid; grid-template-columns: 1fr 1fr; min-height: 75vh; }
.formula-section.reverse .formula-media { order: 2; }
.formula-media { align-items: flex-start; background: linear-gradient(145deg,#ef233c,#180307 62%,#111); background-position: center; background-size: cover; display: flex; padding: 3rem; }
.formula-media span { background: white; color: #111; font-size: .65rem; font-weight: 800; letter-spacing: .1em; padding: .8rem; text-transform: uppercase; }
.formula-copy { align-self: center; padding: 6vw; }
.formula-copy > p:not(.kicker) { color: #666; line-height: 1.7; }
.formula-link { margin-top: 1rem; }
.formula-section { background:#fff; overflow:hidden; }
.formula-section:nth-child(3n+2) .formula-copy { background:linear-gradient(145deg,#fff6da,#fff); }
.formula-section:nth-child(3n) .formula-copy { background:linear-gradient(145deg,#edf4ff,#fff); }
.formula-section.formula-anniversaire-enfant .formula-media { animation:celebration-bg 11s ease-in-out infinite alternate; background-color:var(--red); background-image:linear-gradient(135deg,#ef233c,#ff7a35 55%,#ffc94a); background-size:160% 160%; }
.formula-section.formula-formule-adulte .formula-media { animation:celebration-bg 12s ease-in-out infinite alternate; background-color:var(--navy); background-image:linear-gradient(135deg,#061a35,#0c3c75 58%,#ef233c); background-size:160% 160%; }
.formula-section.formula-evg-evjf .formula-media { background-image:linear-gradient(135deg,#ffc94a,#ef233c 52%,#0c3c75); }
.package-grid { display: grid; gap: .8rem; margin-top: 2rem; }
.package-card { border: 1px solid #ccc; display: grid; gap: .6rem; padding: 1.2rem; }
.package-card p { font-weight: 800; margin: 0; text-transform: uppercase; }
.package-card strong { color: var(--red); font-family: var(--display); font-size: 1.3rem; }
.package-card span { color: #555; line-height: 1.55; }
.package-card small { color: #999; }
.inline-video { margin-top: 2rem; }
.corporate-hero { align-items: center; background: linear-gradient(90deg,rgba(8,8,8,.95),rgba(8,8,8,.35)),radial-gradient(circle at 78% 45%,#ef233c,transparent 38%),#111; background-position: center; background-size: cover; color: white; display: flex; min-height: 88vh; padding: 9rem 7vw 5rem; }
.corporate-hero > div { max-width: 850px; }
.corporate-hero h1 { font-family: var(--display); font-size: clamp(3.4rem,7vw,7.4rem); letter-spacing: -.07em; line-height: .92; margin: 1.5rem 0; text-transform: uppercase; }
.corporate-hero p:not(.eyebrow) { color: #ccc; font-size: 1.1rem; line-height: 1.7; max-width: 650px; }
.corporate-story { display: grid; gap: 8vw; grid-template-columns: 1fr 1fr; padding: 8vw; }
.corporate-story > p { align-self: center; color: #555; font-size: 1.1rem; line-height: 1.8; }
.corporate-highlights { display: grid; grid-template-columns: repeat(3,1fr); }
.corporate-highlights article { background: #111; color: white; min-height: 330px; padding: 3rem; }
.corporate-highlights article:nth-child(2) { background: var(--red); }
.corporate-highlights span { color: #777; font-family: var(--display); }
.corporate-highlights h2 { font-family:var(--display); font-size:1.5rem; line-height:1.15; margin-top:1rem; text-transform:uppercase; }
.corporate-highlights p { color: #aaa; line-height: 1.6; }
.corporate-highlights article:nth-child(2) p { color: white; }
.corporate-gallery { display: grid; grid-template-columns: repeat(3,1fr); }
.corporate-gallery div { aspect-ratio: 1.3; background-position: center; background-size: cover; }
.corporate-page { background:#f5f2e9; color:var(--navy); }
.corporate-hero-pro { align-items:flex-end; background:linear-gradient(135deg,#061a35,#0c3c75); background-position:center; background-size:cover; color:white; display:flex; min-height:92vh; overflow:hidden; padding:10rem 6vw 6rem; position:relative; }
.corporate-hero-pro > video { height:100%; inset:0; object-fit:cover; position:absolute; width:100%; }
.corporate-hero-shade { background:linear-gradient(90deg,rgba(4,17,36,.95) 0%,rgba(4,17,36,.7) 48%,rgba(4,17,36,.16) 100%),linear-gradient(0deg,rgba(4,17,36,.68),transparent 55%); inset:0; position:absolute; }
.corporate-hero-pro::after { animation:corporate-orbit 14s linear infinite; border:5vw solid rgba(239,35,60,.18); border-radius:42%; content:""; height:42vw; position:absolute; right:-17vw; top:-16vw; width:42vw; }
.corporate-hero-pro-content { max-width:900px; position:relative; z-index:2; }
.corporate-hero-pro h1 { font-family:var(--display); font-size:clamp(3.2rem,6.5vw,7rem); letter-spacing:-.07em; line-height:.92; margin:1.2rem 0 1.5rem; max-width:1050px; text-transform:uppercase; }
.corporate-hero-pro-content > p:not(.eyebrow) { color:#d5dfeb; font-size:clamp(.95rem,1.4vw,1.2rem); line-height:1.7; max-width:680px; }
.corporate-hero-actions { align-items:center; display:flex; gap:1.5rem; margin-top:2.2rem; }
.corporate-quote-button { background:var(--gold); color:var(--navy); }
.corporate-quote-button:hover { background:white; }
.corporate-discover { border-bottom:1px solid rgba(255,255,255,.55); font-size:.65rem; letter-spacing:.08em; padding-bottom:.35rem; text-transform:uppercase; }
.corporate-hero-note { backdrop-filter:blur(12px); background:rgba(8,43,85,.65); border-left:4px solid var(--red); bottom:6rem; display:flex; flex-direction:column; gap:.8rem; padding:1.3rem 1.5rem; position:absolute; right:6vw; z-index:2; }
.corporate-hero-note span { color:var(--gold); font-size:.58rem; letter-spacing:.1em; text-transform:uppercase; }
.corporate-hero-note strong { font-family:var(--display); font-size:1rem; line-height:1.25; text-transform:uppercase; }
.corporate-rail { background:var(--gold); color:var(--navy); overflow:hidden; padding:1rem 0; }
.corporate-rail > div { animation:license-marquee 24s linear infinite; display:flex; font-family:var(--display); font-size:.7rem; gap:1.5rem; letter-spacing:.05em; text-transform:uppercase; white-space:nowrap; width:max-content; }
.corporate-rail i { color:var(--red); font-style:normal; }
.corporate-why { background:linear-gradient(145deg,#fff8e3,#f5f2e9 55%,#edf4fc); padding:6vw; }
.corporate-section-head { display:grid; gap:2rem; grid-template-columns:.45fr 1.15fr .8fr; margin-bottom:3rem; }
.corporate-section-head .kicker { white-space:nowrap; }
.corporate-section-head h2,.corporate-story-copy h2,.corporate-final-cta h2 { font-family:var(--display); font-size:clamp(2.2rem,4.3vw,4.7rem); letter-spacing:-.06em; line-height:.98; margin:0; text-transform:uppercase; }
.corporate-section-head h2,.corporate-story-copy h2 { white-space:pre-line; }
.corporate-section-head > p:last-child { color:#586575; line-height:1.7; margin:0; }
.corporate-benefit-grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.corporate-benefit-card { background:white; box-shadow:0 14px 35px rgba(8,43,85,.1); min-height:360px; overflow:hidden; position:relative; transition:.35s; }
.corporate-benefit-card:hover { box-shadow:0 25px 55px rgba(8,43,85,.2); transform:translateY(-8px); }
.corporate-benefit-media { background:linear-gradient(145deg,#0c3c75,#ef233c); background-position:center; background-size:cover; height:48%; min-height:170px; position:relative; transition:transform .8s; }
.corporate-benefit-media::after { background:linear-gradient(0deg,rgba(8,43,85,.68),transparent); content:""; inset:0; position:absolute; }
.corporate-benefit-card:hover .corporate-benefit-media { transform:scale(1.04); }
.corporate-benefit-card > div:last-child { border-top:5px solid var(--red); padding:1.4rem; position:relative; }
.corporate-benefit-card:nth-child(2n) > div:last-child { border-top-color:var(--gold); }
.corporate-benefit-card h3,.corporate-offer-grid h3 { font-family:var(--display); font-size:1.1rem; line-height:1.15; margin:0 0 .8rem; text-transform:uppercase; }
.corporate-benefit-card p { color:#66717e; font-size:.8rem; line-height:1.6; margin:0; }
.corporate-media-story { background:var(--navy); color:white; display:grid; grid-template-columns:.85fr 1.15fr; min-height:70vh; }
.corporate-story-copy { align-self:center; padding:6vw; }
.corporate-story-copy .kicker { color:var(--gold); }
.corporate-story-copy > p:not(.kicker) { color:#c6d2df; line-height:1.75; margin:1.5rem 0; max-width:570px; }
.corporate-story-media { background:radial-gradient(circle at 30% 30%,var(--red),transparent 35%),linear-gradient(145deg,#0c3c75,#061a35); background-position:center; background-size:cover; min-height:540px; position:relative; }
.corporate-story-media::after { border:1px solid rgba(255,255,255,.4); content:""; inset:2rem; position:absolute; }
.corporate-offers { background:linear-gradient(125deg,var(--red),#c51530 70%,#8f0c22); color:white; padding:6vw; }
.corporate-offers .kicker { color:var(--gold); }
.corporate-section-head.light { grid-template-columns:.45fr 1.55fr; }
.corporate-offer-grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
.corporate-offer-grid article { border:1px solid rgba(255,255,255,.6); border-radius:14px; box-shadow:0 0 24px rgba(255,255,255,.1); display:flex; flex-direction:column; min-height:280px; padding:1.6rem; transition:.3s; }
.corporate-offer-grid article:hover { background:white; color:var(--navy); transform:translateY(-6px); }
.corporate-offer-grid p { color:rgba(255,255,255,.82); font-size:.82rem; line-height:1.65; }
.corporate-offer-grid article:hover p { color:#64707d; }
.corporate-offer-grid a { color:var(--gold); font-size:.62rem; font-weight:800; letter-spacing:.08em; margin-top:auto; text-transform:uppercase; }
.corporate-offer-grid article:hover a { color:var(--red); }
.corporate-offers-cta { background:var(--gold); color:var(--navy); display:flex; margin:2.5rem auto 0; max-width:330px; }
.corporate-gallery-pro { background:#f5f2e9; padding:6vw; }
.corporate-gallery-grid { display:grid; gap:.8rem; grid-template-columns:repeat(3,1fr); }
.corporate-gallery-grid figure { margin:0; overflow:hidden; }
.corporate-gallery-grid img { aspect-ratio:1.35; display:block; object-fit:cover; transition:transform .8s; width:100%; }
.corporate-gallery-grid figure:hover img { transform:scale(1.06); }
.corporate-final-cta { align-items:center; background:var(--gold); color:var(--navy); display:flex; gap:3rem; justify-content:space-between; padding:4vw 6vw; }
.corporate-final-cta .kicker { color:var(--red); }
.corporate-final-cta .button { flex:0 0 auto; }
.corporate-motion-ready [data-corporate-reveal] { opacity:0; transform:translateY(35px); transition:opacity .7s,transform .7s cubic-bezier(.2,.8,.2,1); transition-delay:var(--corporate-delay,0ms); }
.corporate-motion-ready [data-corporate-reveal].is-visible { opacity:1; transform:none; }
@keyframes corporate-orbit { to { transform:rotate(360deg); } }

/* Entreprises — composition inspirée de la référence fournie, adaptée à Central 8 */
.corporate-page .corporate-hero-pro { min-height:68vh; padding-bottom:4.5rem; }
.corporate-page .corporate-hero-pro h1 { font-size:clamp(2.8rem,5.2vw,5.8rem); max-width:900px; }
.corporate-why { background:#082c54; color:white; padding:4.6rem max(5vw,1.2rem); }
.corporate-speed-title { align-items:center; display:flex; gap:.8rem; justify-content:center; margin:0 auto 2.3rem; max-width:760px; text-align:center; }
.corporate-speed-title > span { background:rgba(255,255,255,.85); height:1px; max-width:110px; width:14vw; }
.corporate-speed-title h2 { color:white; font-family:var(--display); font-size:clamp(1rem,1.8vw,1.35rem); letter-spacing:-.035em; margin:0; text-transform:uppercase; }
.corporate-benefit-grid { display:grid; gap:1rem; grid-template-columns:repeat(5,minmax(0,1fr)); margin:0 auto; max-width:1120px; }
.corporate-benefit-card { border-radius:13px; box-shadow:0 18px 35px rgba(0,0,0,.2); color:white; min-height:320px; overflow:hidden; position:relative; isolation:isolate; }
.corporate-benefit-card::after { background:linear-gradient(180deg,rgba(5,25,49,.15),rgba(5,25,49,.88)); content:""; inset:0; position:absolute; z-index:-1; }
.corporate-benefit-card:nth-child(2)::after { background:linear-gradient(180deg,rgba(255,250,229,.65),rgba(255,242,198,.94)); }
.corporate-benefit-card:nth-child(3)::after { background:linear-gradient(180deg,rgba(241,91,22,.55),rgba(224,66,8,.95)); }
.corporate-benefit-card:nth-child(4)::after { background:linear-gradient(180deg,rgba(239,35,60,.6),rgba(196,14,47,.96)); }
.corporate-benefit-card:nth-child(5)::after { background:linear-gradient(180deg,rgba(48,20,75,.35),rgba(7,37,73,.95)); }
.corporate-benefit-card:hover { box-shadow:0 25px 50px rgba(0,0,0,.32); transform:translateY(-7px); }
.corporate-benefit-media { background-position:center; background-size:cover; height:auto; inset:0; min-height:0; position:absolute; transition:transform .8s; z-index:-2; }
.corporate-benefit-media::after { display:none; }
.corporate-benefit-card > div:last-child { border:0; display:flex; flex-direction:column; height:100%; justify-content:flex-start; padding:1.35rem 1.15rem; position:relative; z-index:2; }
.corporate-benefit-card:nth-child(2) > div:last-child { border:0; color:var(--navy); }
.corporate-benefit-card h3 { color:white; font-size:clamp(.82rem,1.15vw,1.05rem); margin-bottom:1rem; }
.corporate-benefit-card:nth-child(2) h3 { color:var(--navy); }
.corporate-benefit-card p { color:rgba(255,255,255,.92); font-size:.74rem; line-height:1.45; }
.corporate-benefit-card:nth-child(2) p { color:#17334f; }
.corporate-centered-cta { background:var(--gold); border:2px solid var(--navy); border-radius:999px; color:var(--navy); display:flex; margin:2.2rem auto 0; max-width:250px; min-height:46px; padding:.8rem 1.4rem; }
.corporate-centered-cta:hover { background:white; color:var(--navy); }
.corporate-offers { background:#ef2944; color:white; padding:4.6rem max(5vw,1.2rem); }
.corporate-offer-grid { display:grid; gap:1rem; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0 auto; max-width:1120px; }
.corporate-offer-grid article { border:1px solid rgba(255,255,255,.92); border-radius:20px; box-shadow:0 0 16px rgba(255,255,255,.35); min-height:250px; padding:1.5rem; }
.corporate-offer-grid h3 { border-bottom:1px solid rgba(255,255,255,.75); padding-bottom:1rem; text-align:center; }
.corporate-offer-grid p { font-size:.78rem; }
.corporate-offers-cta { margin-top:2.2rem; }
.contact-layout { background:#0b0b0b; color:white; display:grid; grid-template-columns:minmax(340px,.82fr) minmax(560px,1.18fr); min-height:100vh; padding-top:100px; }
.contact-copy {
  background: radial-gradient(circle at 100% 0,rgba(239,35,60,.7),transparent 38%),linear-gradient(145deg,#141414,#080808);
  min-height:calc(100vh - 100px); overflow:hidden; padding:clamp(5rem,8vw,9rem) 5vw; position:relative;
}
.contact-copy::after { border: 4vw solid rgba(239,35,60,.11); border-radius: 24%; bottom: -18vw; content:""; height: 32vw; position:absolute; right:-16vw; transform:rotate(18deg); width:32vw; }
.contact-copy h1 { font-family: var(--display); font-size: clamp(2.8rem,4.6vw,5.2rem); letter-spacing: -.07em; line-height: .95; margin: 2rem 0; overflow-wrap:anywhere; text-transform: uppercase; }
.contact-copy > p:last-of-type { color: #aaa; line-height: 1.75; max-width: 520px; }
.contact-details { border-top:1px solid rgba(255,255,255,.14); display: flex; flex-direction: column; gap: 1rem; margin-top: 4rem; padding-top:2rem; position:relative; z-index:1; }
.contact-details a,.contact-details span { color: #ddd; font-size: .78rem; letter-spacing:.03em; }
.contact-form-wrap { background: #f3f1eb; color: #111; padding: clamp(4rem,6vw,7rem) clamp(2rem,6vw,7rem); }
.contact-form-heading { border-bottom:1px solid #d5d2ca; margin-bottom:2.6rem; padding-bottom:2rem; }
.contact-form-heading > span { color:var(--red); font-size:.68rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.contact-form-heading h2 { font-family:var(--display); font-size:clamp(1.8rem,2.7vw,3rem); letter-spacing:-.055em; line-height:1.08; margin:.8rem 0; text-transform:uppercase; }
.contact-form-heading p { color:#666; font-size:.86rem; line-height:1.6; margin:0; }
.contact-form-wrap form { max-width:850px; }
.contact-form-wrap label { display:block; margin-bottom:1.35rem; }
.contact-form-wrap label > span:first-child { display:block; font-size:.68rem; font-weight:700; letter-spacing:.07em; margin-bottom:.55rem; text-transform:uppercase; }
.contact-form-wrap label b { color:var(--red); }
.contact-form-wrap input:not([type="checkbox"]),.contact-form-wrap select,.contact-form-wrap textarea {
  appearance:none; background:transparent; border:0; border-bottom:1px solid #aaa69c; border-radius:0; color:#111;
  outline:0; padding:.8rem .15rem; transition:.2s; width:100%;
}
.contact-form-wrap textarea { border:1px solid #c6c2b8; min-height:150px; padding:1rem; resize:vertical; }
.contact-form-wrap select {
  background-image:linear-gradient(45deg,transparent 50%,#111 50%),linear-gradient(135deg,#111 50%,transparent 50%);
  background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%; background-repeat:no-repeat; background-size:5px 5px,5px 5px; padding-right:2rem;
}
.contact-form-wrap input::placeholder,.contact-form-wrap textarea::placeholder { color:#9b978e; }
.contact-form-wrap input:not([type="checkbox"]):focus,.contact-form-wrap select:focus { border-bottom-color:var(--red); box-shadow:0 2px 0 -1px var(--red); }
.contact-form-wrap textarea:focus { border-color:var(--red); box-shadow:0 0 0 1px var(--red); }
.contact-form-grid { display: grid; gap: 1.5rem; grid-template-columns: 1fr 1fr; }
.contact-consent { align-items:flex-start; cursor:pointer; display:flex !important; gap:.8rem; margin:1.8rem 0 !important; }
.contact-consent input { accent-color:var(--red); flex:0 0 auto; height:19px; margin:.1rem 0 0; width:19px; }
.contact-consent span { color:#555; display:block !important; font-size:.72rem !important; font-weight:500 !important; letter-spacing:0 !important; line-height:1.55; margin:0 !important; text-transform:none !important; }
.contact-submit-row { align-items:center; border-top:1px solid #d5d2ca; display:flex; justify-content:space-between; padding-top:1.5rem; }
.contact-submit-row small { color:#777; font-size:.66rem; }
.contact-submit-row .button { min-width:235px; }
.contact-submit-row .button:hover { color:#111; }
.contact-feedback { background: #dff2dc; color: #255d1b; margin:1rem 0; padding: 1rem; }
.contact-feedback.error { background: #ffe1dd; color: #9d2013; }
.celebration-hero { align-items:center; animation:celebration-bg 12s ease-in-out infinite alternate; background:linear-gradient(120deg,#061a35,#0c3c75 38%,#ef233c 72%,#ffc94a); background-position:center; background-size:180% 180%; color:white; display:flex; min-height:82vh; overflow:hidden; padding:9rem 7vw 5rem; position:relative; }
.celebration-hero::before { background:linear-gradient(90deg,rgba(4,16,35,.88),rgba(4,16,35,.18)); content:""; inset:0; position:absolute; }
.is-child-formula .celebration-hero { background-image:linear-gradient(120deg,#ef233c,#ff6b35 38%,#ffc94a 67%,#0c3c75); }
.is-adult-formula .celebration-hero { background-image:linear-gradient(120deg,#061a35,#0c3c75 48%,#ef233c 80%,#ffc94a); }
.celebration-hero > div { max-width:920px; position:relative; z-index:2; }
.celebration-hero h1 { font-family:var(--display); font-size:clamp(3rem,5.8vw,6.2rem); letter-spacing:-.065em; line-height:.94; margin:1.6rem 0 1rem; text-transform:uppercase; }
.celebration-hero p:not(.eyebrow) { font-size:1.05rem; line-height:1.7; max-width:650px; }
.celebration-hero .button { margin-top:2rem; }
.confetti-field { inset:0; max-width:none!important; pointer-events:none; position:absolute!important; z-index:1!important; }
.confetti-field i { animation:confetti-fall var(--duration) linear infinite; animation-delay:var(--delay); background:var(--red); height:16px; left:var(--x); opacity:.82; position:absolute; top:-10%; transform:rotate(0); width:7px; }
.confetti-field i:nth-child(3n+2) { background:var(--gold); border-radius:50%; height:9px; width:9px; }
.confetti-field i:nth-child(3n) { background:#5ca8ff; height:13px; width:5px; }
@keyframes confetti-fall { 0% { transform:translate3d(0,-10vh,0) rotate(0); } 100% { transform:translate3d(var(--drift),105vh,0) rotate(var(--rotation)); } }
@keyframes celebration-bg { to { background-position:100% 45%; } }
.celebration-intro { background:linear-gradient(120deg,var(--red),#c41631 65%,var(--navy)); color:white; padding:4.5vw 10vw; }
.is-adult-formula .celebration-intro { background:linear-gradient(120deg,var(--navy),#0c3c75 65%,var(--red)); }
.celebration-intro .kicker { color:var(--gold); }
.celebration-intro h2 { font-family:var(--display); font-size:clamp(1.7rem,3vw,3.2rem); letter-spacing:-.045em; line-height:1.18; margin:.8rem 0; max-width:1050px; text-transform:uppercase; }
.celebration-packages { background:#f7f3e7; display:grid; gap:1rem; grid-template-columns:repeat(3,1fr); padding:5vw 7vw; }
.celebration-packages article { background:white; border:0; border-top:5px solid var(--red); box-shadow:0 14px 35px rgba(8,43,85,.08); display:flex; flex-direction:column; min-height:280px; padding:1.7rem; transition:.3s; }
.celebration-packages article:nth-child(2n) { border-top-color:var(--navy); }
.celebration-packages article:nth-child(3n) { border-top-color:var(--gold); }
.celebration-packages article:hover { transform:translateY(-5px); }
.celebration-packages article > span { color:var(--red); font-family:var(--display); }
.celebration-packages article > p { font-family:var(--display); font-size:1.2rem; margin:1rem 0 .8rem; text-transform:uppercase; }
.celebration-packages article > strong { color:var(--red); font-family:var(--display); font-size:1.5rem; }
.celebration-packages article > div { color:#555; font-size:.82rem; line-height:1.6; margin:1rem 0; }
.celebration-packages article > small { color:#999; margin-top:auto; }
.celebration-packages { background:radial-gradient(circle at 10% 20%,rgba(255,201,74,.42),transparent 28%),radial-gradient(circle at 90% 75%,rgba(12,60,117,.2),transparent 30%),#f7f3e7; gap:clamp(1rem,2.2vw,2.2rem); }
.is-adult-formula .celebration-packages { background:radial-gradient(circle at 12% 22%,rgba(239,35,60,.2),transparent 30%),radial-gradient(circle at 90% 70%,rgba(255,201,74,.25),transparent 28%),#eaf0f7; }
.celebration-packages .formula-tier-card { background:white; border:0; box-shadow:0 18px 45px rgba(8,43,85,.15); display:grid; grid-template-rows:auto 1fr auto; min-height:460px; overflow:hidden; padding:0; }
.celebration-packages .formula-tier-card:only-child { grid-column:2; }
.formula-tier-card header { background:linear-gradient(145deg,#f00046,#d9083f); color:white; min-height:165px; padding:1.5rem; text-align:center; }
.is-adult-formula .formula-tier-card header { background:linear-gradient(145deg,#082b55,#0c4d8e 72%,#ef233c); }
.formula-stars { color:#fff200; font-size:1.35rem; letter-spacing:.12em; line-height:1; min-height:1.4rem; }
.formula-tier-card header span { display:block; font-size:.72rem; margin:1.2rem 0 .35rem; text-transform:uppercase; }
.formula-tier-card header h3 { font-family:var(--display); font-size:1.9rem; line-height:1; margin:0; text-transform:uppercase; }
.formula-tier-card .formula-tier-content { border-left:2px solid var(--navy); color:#202632; font-size:.84rem; line-height:1.42; margin:1rem 1.8rem; padding-left:.8rem; white-space:pre-line; }
.formula-tier-card footer { align-items:baseline; background:#dfe1e6; color:var(--red); display:flex; gap:.45rem; justify-content:center; min-height:68px; padding:1rem; }
.formula-tier-card footer strong { color:var(--red); font-family:var(--display); font-size:1.65rem; }
.formula-tier-card footer em { font-size:.82rem; font-style:italic; }
.celebration-packages .formula-tier-card:hover { box-shadow:0 28px 60px rgba(8,43,85,.22); transform:translateY(-8px) rotate(.2deg); }
.celebration-booking-main { background:var(--gold); border:2px solid var(--gold); color:var(--navy); font-size:.72rem; margin-top:1.4rem; min-width:250px; }
.celebration-booking-main:hover { background:white; border-color:white; color:var(--navy); }
.celebration-booking-band { align-items:center; background:linear-gradient(115deg,var(--red),#b70d2b 70%,var(--navy)); color:white; display:flex; gap:2rem; justify-content:space-between; padding:3rem 7vw; }
.celebration-booking-band p { color:var(--gold); font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.celebration-booking-band h2,.celebration-booking-bottom h2 { font-family:var(--display); font-size:clamp(1.5rem,3vw,3rem); letter-spacing:-.055em; margin:.5rem 0; max-width:820px; text-transform:uppercase; }
.celebration-booking-band a,.celebration-booking-bottom a { background:var(--gold); border-radius:999px; color:var(--navy); flex:0 0 auto; font-size:.68rem; font-weight:800; letter-spacing:.08em; padding:1.1rem 1.6rem; text-transform:uppercase; }
.celebration-booking-bottom { align-items:center; background:var(--navy); color:white; display:flex; gap:2rem; justify-content:space-between; padding:3rem 7vw; }
.celebration-gallery { background:var(--navy); color:white; padding:5vw 7vw; }
.celebration-gallery-head { align-items:end; display:flex; justify-content:space-between; margin-bottom:2rem; }
.celebration-gallery-head .kicker { color:var(--gold); }
.celebration-gallery-head h2 { font-family:var(--display); font-size:clamp(2rem,3.5vw,3.8rem); letter-spacing:-.05em; margin:0; text-transform:uppercase; }
.celebration-gallery-grid { display:grid; gap:.8rem; grid-template-columns:repeat(3,1fr); }
.celebration-gallery-grid figure { margin:0; overflow:hidden; transform:translateY(calc((var(--gallery-index) % 2) * 1.5rem)); }
.celebration-gallery-grid img { aspect-ratio:1.3; display:block; height:100%; object-fit:cover; transition:transform .8s; width:100%; }
.celebration-gallery-grid figure:hover img { transform:scale(1.07); }
.legal-page { background:var(--paper); color:var(--ink); }
.legal-layout { min-height:75vh; padding:10rem max(4vw,calc((100vw - 900px)/2)) 6rem; }
.legal-layout h1 { font-family:var(--display); font-size:clamp(2.8rem,5vw,5.4rem); letter-spacing:-.06em; margin:2rem 0 4rem; text-transform:uppercase; }
.legal-layout article { color:#4e4e4e; font-size:.95rem; line-height:1.9; }
.legal-content { background:white; border-left:5px solid var(--red); box-shadow:0 18px 45px rgba(8,43,85,.08); max-width:920px; padding:clamp(1.4rem,3vw,3rem); }
.legal-content h2,.legal-content h3 { color:var(--navy); font-family:var(--display); letter-spacing:-.035em; line-height:1.08; margin:2.3rem 0 .9rem; text-transform:uppercase; }
.legal-content h2:first-child,.legal-content h3:first-child { margin-top:0; }
.legal-content h2 { font-size:clamp(1.45rem,2.4vw,2.4rem); }
.legal-content h3 { font-size:clamp(1.15rem,1.8vw,1.7rem); }
.legal-content p { margin:0 0 1rem; }
.legal-content ul { margin:0 0 1.3rem; padding-left:1.2rem; }
.legal-content li { margin:.35rem 0; }
.legal-content strong { color:var(--navy); }
.legal-content u { text-decoration-color:var(--red); text-decoration-thickness:2px; text-underline-offset:.18em; }
.join-layout { background:#f3f1eb; color:#111; min-height:100vh; padding-top:100px; }
.join-hero { background:linear-gradient(135deg,#071a34,#0b315e 58%,#ef233c); color:white; padding:clamp(6rem,9vw,9rem) max(1.2rem,7vw) clamp(3rem,5vw,5rem); }
.join-hero h1 { font-family:var(--display); font-size:clamp(3rem,6vw,6.2rem); letter-spacing:-.065em; line-height:.9; margin:1rem 0; text-transform:uppercase; }
.join-hero p:not(.eyebrow) { color:#e9eef6; font-size:1rem; line-height:1.7; max-width:720px; }
.join-content { display:grid; gap:4vw; grid-template-columns:minmax(320px,.95fr) minmax(520px,1.05fr); padding:5vw max(1.2rem,6vw); }
.job-list { display:grid; gap:1rem; }
.job-card { background:white; border-left:5px solid var(--red); box-shadow:0 15px 35px rgba(8,43,85,.08); padding:1.6rem; }
.job-card > span { color:var(--red); font-size:.65rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.job-card h2 { font-family:var(--display); font-size:clamp(1.35rem,2vw,2.1rem); letter-spacing:-.045em; line-height:1.05; margin:.8rem 0 .4rem; text-transform:uppercase; }
.job-card h3 { color:var(--navy); font-size:.82rem; margin:0 0 1rem; text-transform:uppercase; }
.job-card p { color:#5b6570; font-size:.84rem; line-height:1.65; white-space:pre-line; }
.job-card .button { margin-top:1rem; }
.job-apply-form { background:white; box-shadow:0 18px 45px rgba(8,43,85,.08); padding:clamp(1.4rem,3vw,2.4rem); }
.job-apply-form label { display:block; margin-bottom:1.2rem; }
.job-apply-form label > span:first-child { display:block; font-size:.68rem; font-weight:700; letter-spacing:.07em; margin-bottom:.55rem; text-transform:uppercase; }
.job-apply-form input:not([type="checkbox"]),.job-apply-form select,.job-apply-form textarea { background:#f7f6f2; border:1px solid #d7d3ca; border-radius:0; color:#111; font:inherit; min-height:48px; padding:.8rem; width:100%; }
.job-apply-form textarea { min-height:130px; resize:vertical; }
.group-page { background:#071326; color:white; overflow-x:hidden; }
.group-header { background:rgba(4,13,28,.9); border-bottom:1px solid rgba(255,255,255,.08); }
.group-hero { align-items:center; background:radial-gradient(circle at 78% 22%,rgba(239,35,60,.5),transparent 30%),linear-gradient(135deg,#061225 0%,#0b2a52 58%,#150914 100%); display:grid; gap:5vw; grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr); min-height:88vh; overflow:hidden; padding:9rem max(1.2rem,6vw) 5rem; position:relative; }
.group-hero::before { background:linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(0deg,rgba(255,255,255,.06) 1px,transparent 1px); background-size:80px 80px; content:""; inset:0; opacity:.25; position:absolute; transform:translateY(calc(var(--hero-shift,0px) * -1)); }
.group-hero::after { animation:group-orbit 18s linear infinite; border:2.2rem solid rgba(255,255,255,.07); border-radius:34%; content:""; height:44vw; position:absolute; right:-16vw; top:-14vw; width:44vw; }
.group-hero-grid { background:linear-gradient(120deg,transparent,rgba(255,255,255,.12),transparent); height:160%; left:-60%; position:absolute; top:-30%; transform:rotate(18deg); width:42%; }
.group-hero-copy { position:relative; z-index:2; }
.group-hero h1 { font-family:var(--display); font-size:clamp(2.7rem,4.7vw,5.35rem); letter-spacing:-.055em; line-height:.92; margin:1.1rem 0 .55rem; max-width:760px; text-transform:uppercase; }
.group-hero h1 span { color:var(--gold); display:block; }
.group-hero h2 { color:white; font-family:var(--display); font-size:clamp(1.35rem,2.45vw,2.75rem); letter-spacing:-.04em; line-height:1.04; margin:0 0 1.6rem; max-width:760px; text-transform:uppercase; }
.group-hero-copy > p:not(.eyebrow) { color:#dbe5f2; font-size:clamp(.98rem,1.18vw,1.12rem); line-height:1.75; max-width:680px; }
.group-hero-copy strong { color:var(--gold); }
.group-hero-actions { align-items:center; display:flex; flex-wrap:wrap; gap:1rem; margin-top:2rem; }
.group-scroll-link { color:var(--gold); font-size:.68rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.group-logo-stack { display:grid; gap:1rem; perspective:900px; position:relative; z-index:2; }
.group-logo-card,.group-brand-panel { align-items:center; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); box-shadow:0 25px 70px rgba(0,0,0,.22); display:flex; justify-content:center; margin:0; min-height:145px; overflow:hidden; padding:1.6rem; transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translate3d(var(--mx,0),var(--my,0),0); transition:transform .18s ease,background .3s,border-color .3s,box-shadow .3s; }
.group-logo-card::after,.group-brand-panel::after { background:linear-gradient(115deg,transparent,rgba(255,255,255,.22),transparent); content:""; inset:0; position:absolute; transform:translateX(-130%); transition:transform .7s; }
.group-logo-card:hover::after,.group-brand-panel:hover::after { transform:translateX(130%); }
.group-logo-card:hover,.group-brand-panel:hover { border-color:rgba(255,201,74,.48); box-shadow:0 32px 90px rgba(0,0,0,.32); }
.group-logo-card img,.group-brand-panel img { display:block; max-height:105px; max-width:100%; object-fit:contain; position:relative; z-index:2; }
.group-logo-card.featured { animation:group-card-pulse 4.8s ease-in-out infinite; background:rgba(239,35,60,.24); }
.group-intro { background:#f3f1eb; color:var(--navy); display:grid; gap:5vw; grid-template-columns:1.25fr .75fr; padding:6vw; }
.group-intro-text p { font-size:clamp(1rem,1.35vw,1.22rem); line-height:1.75; margin:0 0 1rem; }
.group-metrics { background:var(--red); color:white; display:grid; gap:1px; grid-template-columns:1fr; min-height:280px; padding:0; }
.group-metrics article { background:rgba(255,255,255,.08); display:grid; gap:.45rem; padding:1.4rem; }
.group-metrics strong { color:var(--gold); font-family:var(--display); font-size:clamp(2.6rem,4.4vw,4.7rem); line-height:.82; }
.group-metrics span { color:white; font-family:var(--display); font-size:.9rem; line-height:1.1; text-transform:uppercase; }
.group-section { padding:6vw; }
.group-section-head { display:grid; gap:2rem; grid-template-columns:.45fr 1.1fr; margin-bottom:2.8rem; }
.group-section h2,.group-final h2 { font-family:var(--display); font-size:clamp(2rem,3.7vw,4.35rem); letter-spacing:-.055em; line-height:.98; margin:0; text-transform:uppercase; }
.group-section p,.group-final p { color:#d5dfeb; font-size:.95rem; line-height:1.78; }
.group-section strong,.group-final strong { color:var(--gold); }
.group-two-cols { display:grid; gap:4vw; grid-template-columns:.9fr 1.1fr; }
.group-activity-list { display:grid; gap:.7rem; grid-template-columns:repeat(2,minmax(0,1fr)); list-style:none; margin:0; padding:0; }
.group-activity-list li { background:white; color:var(--navy); font-family:var(--display); font-size:.9rem; padding:1.1rem; position:relative; text-transform:uppercase; transition:transform .25s,background .25s,color .25s; }
.group-activity-list li:hover { background:var(--gold); transform:translateX(8px); }
.group-wide-text { border-left:5px solid var(--red); margin:3rem 0 0; max-width:1080px; padding-left:1.5rem; }
.group-speed { align-items:center; background:#111923; display:grid; gap:5vw; grid-template-columns:.9fr 1.1fr; }
.group-speed .group-brand-panel { background:#080d15; min-height:330px; }
.group-speed .group-brand-panel img { max-height:210px; }
.group-city-tags { display:flex; flex-wrap:wrap; gap:.7rem; margin:1.4rem 0; }
.group-city-tags span { background:var(--gold); color:var(--navy); font-size:.68rem; font-weight:900; letter-spacing:.08em; padding:.75rem 1rem; text-transform:uppercase; }
.group-invest { background:#f3f1eb; color:var(--navy); }
.group-invest .kicker { color:var(--red); }
.group-invest p { color:#425063; max-width:980px; }
.group-invest strong { color:var(--red); }
.group-final { background:linear-gradient(135deg,var(--red),#93152a 70%,#071326); color:white; padding:7vw; }
.group-final .kicker { color:var(--gold); }
.group-final h2 { max-width:1050px; }
.group-final p { max-width:900px; }
.group-final > strong { background:white; color:var(--navy); display:block; font-family:var(--display); font-size:clamp(1.15rem,2vw,2.2rem); line-height:1.2; margin-top:2.5rem; max-width:1040px; padding:1.6rem; text-transform:uppercase; }
.group-motion-ready [data-reveal] { opacity:0; transform:translateY(34px); transition:opacity .75s ease,transform .75s cubic-bezier(.2,.8,.2,1); transition-delay:var(--reveal-delay,0ms); }
.group-motion-ready [data-reveal].is-visible { opacity:1; transform:none; }
@keyframes group-orbit { to { transform:rotate(360deg); } }
@keyframes group-card-pulse { 50% { background:rgba(239,35,60,.34); box-shadow:0 28px 82px rgba(239,35,60,.18); } }

.license-page { background:#f6f3ea; color:var(--navy); }
.license-header { background:rgba(5,18,38,.96); }
.license-nav { display:flex; gap:1.5rem; font-size:.62rem; letter-spacing:.09em; text-transform:uppercase; }
.license-nav a { color:#d5dbe4; }
.license-nav a:hover { color:var(--gold); }
.license-hero { background:radial-gradient(circle at 20% 20%,rgba(239,35,60,.38),transparent 32%),linear-gradient(135deg,#061a35,#092e5a); color:white; display:grid; gap:6vw; grid-template-columns:1.15fr .85fr; min-height:84vh; padding:10rem 6vw 6rem; }
.license-hero-copy { align-self:center; max-width:850px; }
.license-hero h1 { font-family:var(--display); font-size:clamp(3.2rem,6.4vw,7rem); letter-spacing:-.07em; line-height:.9; margin:1.2rem 0 1.8rem; text-transform:uppercase; }
.license-hero h1 em { color:var(--gold); font-style:normal; }
.license-hero-copy > p:not(.eyebrow) { color:#d9e1ec; font-size:1.05rem; line-height:1.75; max-width:680px; }
.license-text-link { border-bottom:1px solid var(--gold); color:var(--gold); font-size:.68rem; font-weight:800; letter-spacing:.09em; padding-bottom:.3rem; text-transform:uppercase; }
.license-hero-card { align-self:center; background:#fff; border-top:6px solid var(--red); box-shadow:0 25px 60px rgba(0,0,0,.25); color:var(--navy); padding:2.2rem; }
.license-hero-card h2 { font-family:var(--display); font-size:clamp(1.8rem,2.8vw,3rem); letter-spacing:-.05em; line-height:1; margin:.7rem 0 1rem; text-transform:uppercase; }
.license-hero-card > p:not(.kicker) { color:#5b6572; font-size:.86rem; line-height:1.65; }
.license-tags { display:flex; flex-wrap:wrap; gap:.45rem; margin:1.4rem 0; }
.license-tags span { background:#fff0bd; color:var(--navy); font-size:.58rem; font-weight:800; padding:.55rem .7rem; text-transform:uppercase; }
.license-direct { border-top:1px solid #dce0e5; display:flex; flex-direction:column; gap:.38rem; padding-top:1.2rem; }
.license-direct strong { color:var(--red); font-family:var(--display); font-size:.78rem; text-transform:uppercase; }
.license-direct span,.license-direct a { color:#596371; font-size:.7rem; }
.license-stats { background:var(--gold); display:grid; grid-template-columns:repeat(3,1fr); padding:0 6vw; }
.license-stats article { border-right:1px solid rgba(8,43,85,.18); display:grid; gap:.15rem; padding:2rem; }
.license-stats article:last-child { border-right:0; }
.license-stats strong { color:var(--red); font-family:var(--display); font-size:2.4rem; line-height:1; }
.license-stats span { font-family:var(--display); font-size:.78rem; text-transform:uppercase; }
.license-stats p { color:#314760; font-size:.7rem; margin:.25rem 0 0; }
.license-section { padding:6vw; }
.license-section-head { display:grid; gap:2rem; grid-template-columns:.45fr 1.2fr .8fr; margin-bottom:3rem; }
.license-section-head .kicker { color:var(--red); }
.license-section-head h2,.license-conditions h2,.license-contact h2 { font-family:var(--display); font-size:clamp(2.2rem,4.2vw,4.4rem); letter-spacing:-.06em; line-height:.98; margin:0; text-transform:uppercase; }
.license-section-head > p:last-child,.license-conditions > div:first-child > p:last-child { color:#5d6671; line-height:1.7; margin:0; }
.license-card-grid { display:grid; gap:1rem; grid-template-columns:repeat(3,1fr); }
.license-card-grid article { background:white; border-top:5px solid var(--red); box-shadow:0 10px 35px rgba(8,43,85,.07); min-height:230px; padding:1.7rem; }
.license-card-grid article:nth-child(2n) { border-top-color:var(--navy); }
.license-card-grid article:nth-child(3n) { border-top-color:var(--gold); }
.license-card-grid article > span { color:var(--red); font-family:var(--display); font-size:.65rem; }
.license-card-grid h3 { font-family:var(--display); font-size:1.25rem; line-height:1.1; margin:1rem 0 .8rem; text-transform:uppercase; }
.license-card-grid p { color:#626b76; font-size:.82rem; line-height:1.65; }
.license-conditions { background:linear-gradient(135deg,var(--red),#c91530); color:white; display:grid; gap:6vw; grid-template-columns:.7fr 1.3fr; padding:6vw; }
.license-conditions .kicker { color:var(--gold); }
.license-conditions > div:first-child > p:last-child { color:rgba(255,255,255,.78); margin-top:1.5rem; }
.condition-list { background:white; color:var(--navy); padding:.5rem 1.8rem; }
.condition-list article { align-items:center; border-bottom:1px solid #dde1e6; display:grid; gap:1rem; grid-template-columns:.7fr 1.5fr .6fr; min-height:105px; }
.condition-list article:last-child { border-bottom:0; }
.condition-list span { font-family:var(--display); font-size:.72rem; text-transform:uppercase; }
.condition-list p { color:#65707d; font-size:.75rem; line-height:1.5; }
.condition-list strong,.condition-list a { color:var(--red); font-family:var(--display); font-size:.86rem; text-align:right; }
.license-support { background:#fff; }
.license-support .license-card-grid { grid-template-columns:repeat(4,1fr); }
.license-support .license-card-grid article { background:#f6f3ea; }
.license-process { background:var(--navy); color:white; padding:6vw; }
.license-process .license-section-head > p:last-child { color:#c3cfdd; }
.license-process .kicker { color:var(--gold); }
.license-process ol { display:grid; gap:1rem; grid-template-columns:repeat(3,1fr); list-style:none; margin:0; padding:0; }
.license-process li { background:#fff; color:var(--navy); display:flex; gap:1.2rem; min-height:190px; padding:1.6rem; }
.license-process h3 { font-family:var(--display); margin:.2rem 0 1rem; text-transform:uppercase; }
.license-process li p { color:#5f6975; font-size:.8rem; line-height:1.65; }
.license-faq { background:#fff5d6; }
.license-faq > div:last-child { margin-left:auto; max-width:980px; }
.license-faq details { background:white; border-left:4px solid var(--red); margin-bottom:.65rem; padding:0 1.4rem; }
.license-faq summary { cursor:pointer; font-family:var(--display); font-size:.92rem; list-style:none; padding:1.25rem 0; text-transform:uppercase; }
.license-faq summary span { color:var(--red); float:right; font-family:var(--body); font-size:.55rem; letter-spacing:.08em; }
.license-faq details p { color:#626c78; font-size:.82rem; line-height:1.7; margin:0; padding:0 0 1.4rem; }
.license-contact { background:#f5f3ec; display:grid; gap:6vw; grid-template-columns:.7fr 1.3fr; padding:6vw; }
.license-contact-copy .kicker { color:var(--red); }
.license-contact-copy > p:nth-of-type(2) { color:#606a76; line-height:1.7; margin:1.5rem 0; }
.license-contact-copy > a { color:var(--red); font-family:var(--display); font-size:.85rem; }
.license-contact form { background:white; border-top:6px solid var(--gold); box-shadow:0 15px 40px rgba(8,43,85,.08); padding:2rem; }
.license-form-grid { display:grid; gap:1rem; grid-template-columns:1fr 1fr; }
.license-form-grid label { display:flex; flex-direction:column; gap:.5rem; }
.license-form-grid label > span { font-size:.62rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.license-form-grid .full { grid-column:1/-1; }
.license-form-grid input,.license-form-grid select,.license-form-grid textarea { background:#f7f6f2; border:1px solid #d7dbe0; border-radius:0; color:var(--navy); font:inherit; font-size:.8rem; min-height:48px; padding:.8rem; width:100%; }
.license-form-grid textarea { min-height:140px; resize:vertical; }
.license-form-grid .license-consent { align-items:flex-start; flex-direction:row; margin:.5rem 0; }
.license-consent input { min-height:auto; width:auto; }
.license-consent span { color:#586370; font-size:.65rem!important; line-height:1.55; text-transform:none!important; }
.license-contact .button { margin-top:1rem; }
.form-status { font-size:.75rem; min-height:1.2rem; }
.form-status.success { color:#167046; }
.form-status.error { color:var(--red); }
.license-progress { background:linear-gradient(90deg,var(--gold),var(--red)); height:3px; left:0; position:fixed; top:0; transform:scaleX(0); transform-origin:left; width:100%; z-index:1000; }
.license-nav a { position:relative; transition:color .25s; }
.license-nav a::after { background:var(--gold); bottom:-.55rem; content:""; height:2px; left:0; position:absolute; transform:scaleX(0); transform-origin:left; transition:transform .25s; width:100%; }
.license-nav a.active { color:var(--gold); }
.license-nav a.active::after { transform:scaleX(1); }
.license-hero { animation:license-hero-flow 14s ease-in-out infinite alternate; background-size:140% 140%; overflow:hidden; position:relative; }
.license-hero > *:not(.license-hero-orbit):not(.license-scroll-cue) { position:relative; z-index:2; }
.license-hero-copy > * { animation:license-copy-in .8s both; }
.license-hero-copy > *:nth-child(2) { animation-delay:.08s; }
.license-hero-copy > *:nth-child(3) { animation-delay:.16s; }
.license-hero-copy > *:nth-child(4) { animation-delay:.24s; }
.license-hero-orbit { height:min(54vw,720px); pointer-events:none; position:absolute; right:-18vw; top:-18vw; width:min(54vw,720px); z-index:1; }
.license-hero-orbit i { animation:license-orbit 18s linear infinite; border:1px solid rgba(255,255,255,.18); border-radius:42%; inset:0; position:absolute; }
.license-hero-orbit i:nth-child(2) { animation-direction:reverse; animation-duration:24s; border-color:rgba(255,201,74,.25); inset:14%; }
.license-hero-orbit i:nth-child(3) { animation-duration:13s; border:3px solid rgba(239,35,60,.35); inset:29%; }
.license-hero-card { transform:perspective(1100px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg)) translateY(var(--card-y,0)); transition:transform .18s ease-out,box-shadow .3s; }
.license-hero-card:hover { --card-y:-7px; box-shadow:0 35px 80px rgba(0,0,0,.32); }
.license-tags span { animation:license-tag-pulse 5s ease-in-out infinite; transition:background .25s,color .25s,transform .25s; }
.license-tags span:nth-child(2n) { animation-delay:-1.7s; }
.license-tags span:nth-child(3n) { animation-delay:-3.1s; }
.license-tags span:hover { background:var(--red); color:white; transform:translateY(-3px); }
.license-scroll-cue { align-items:center; bottom:1.5rem; color:rgba(255,255,255,.72); display:flex; font-size:.58rem; gap:.8rem; left:6vw; letter-spacing:.12em; position:absolute; text-transform:uppercase; z-index:3; }
.license-scroll-cue span { animation:license-scroll 1.7s ease-in-out infinite; color:var(--gold); font-size:1rem; }
.license-marquee { background:var(--navy); color:white; overflow:hidden; padding:1rem 0; }
.license-marquee > div { animation:license-marquee 24s linear infinite; display:flex; gap:1.6rem; width:max-content; }
.license-marquee span { font-family:var(--display); font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; }
.license-marquee i { color:var(--red); font-style:normal; }
.license-stats article { overflow:hidden; position:relative; transition:background .3s,transform .3s; }
.license-stats article::after { background:rgba(255,255,255,.22); border-radius:50%; content:""; height:130px; position:absolute; right:-80px; top:-80px; transition:transform .5s; width:130px; }
.license-stats article:hover { background:#ffd96f; transform:translateY(-4px); }
.license-stats article:hover::after { transform:scale(1.8); }
.license-card-grid article,.license-process li,.condition-list article { position:relative; transition:transform .35s,box-shadow .35s,background .35s; }
.license-card-grid article::after { background:linear-gradient(120deg,transparent,rgba(255,255,255,.75),transparent); content:""; inset:0; pointer-events:none; position:absolute; transform:translateX(-130%); transition:transform .75s; }
.license-card-grid article:hover { box-shadow:0 22px 48px rgba(8,43,85,.14); transform:translateY(-8px); }
.license-card-grid article:hover::after { transform:translateX(130%); }
.condition-list article:hover { background:#fff6dc; transform:translateX(-7px); }
.license-process li:hover { background:var(--gold); box-shadow:0 18px 45px rgba(0,0,0,.2); transform:translateY(-7px); }
.license-faq details { transition:box-shadow .3s,transform .3s,background .3s; }
.license-faq details[open] { background:#fffdf6; box-shadow:0 15px 35px rgba(8,43,85,.09); transform:translateX(7px); }
.license-faq summary::after { color:var(--red); content:"+"; float:right; font-family:var(--display); margin-left:1rem; transition:transform .3s; }
.license-faq details[open] summary::after { transform:rotate(45deg); }
.license-form-grid input,.license-form-grid select,.license-form-grid textarea { transition:border-color .2s,box-shadow .2s,background .2s; }
.license-form-grid input:focus,.license-form-grid select:focus,.license-form-grid textarea:focus { background:white; border-color:var(--red); box-shadow:0 0 0 4px rgba(239,35,60,.1); outline:0; }
.license-motion-ready [data-reveal] { opacity:0; transform:translateY(38px); transition:opacity .75s ease,transform .75s cubic-bezier(.2,.8,.2,1); transition-delay:var(--reveal-delay,0ms); }
.license-motion-ready [data-reveal].is-visible { opacity:1; transform:translateY(0); }
@keyframes license-hero-flow { to { background-position:100% 70%; } }
@keyframes license-orbit { to { transform:rotate(360deg); } }
@keyframes license-tag-pulse { 50% { background:#ffe69a; transform:translateY(-2px); } }
@keyframes license-scroll { 50% { transform:translateY(7px); } }
@keyframes license-marquee { to { transform:translateX(-50%); } }
@keyframes license-copy-in { from { opacity:0; transform:translateY(24px); } }
@keyframes promo-heartbeat { 0%,100% { transform:scale(1); box-shadow:0 0 0 rgba(239,35,60,0); } 12% { transform:scale(1.018); box-shadow:0 12px 34px rgba(239,35,60,.28); } 24% { transform:scale(1); } 36% { transform:scale(1.012); } 48% { transform:scale(1); } }

@media (max-width: 800px) {
  .site-header { height: 66px; padding: 0 1.2rem; }
  .city-header { backdrop-filter:none; height:78px; z-index:500; }
  .license-header { backdrop-filter:none; z-index:500; }
  .header-note { display:none; }
  body.menu-open { overflow:hidden; }
  body.menu-open .city-header,body.menu-open .license-header { background:#071a34; }
  .mobile-menu-toggle { align-items:center; background:transparent; border:0; color:white; cursor:pointer; display:flex; font-size:.65rem; font-weight:800; gap:.75rem; letter-spacing:.12em; padding:.7rem 0; position:relative; text-transform:uppercase; z-index:503; }
  .mobile-menu-toggle i,.mobile-menu-toggle i::before,.mobile-menu-toggle i::after { background:currentColor; content:""; display:block; height:2px; position:relative; transition:.25s; width:22px; }
  .mobile-menu-toggle i::before { position:absolute; top:-7px; }
  .mobile-menu-toggle i::after { position:absolute; top:7px; }
  .mobile-menu-toggle[aria-expanded="true"] i { background:transparent; }
  .mobile-menu-toggle[aria-expanded="true"] i::before { top:0; transform:rotate(45deg); }
  .mobile-menu-toggle[aria-expanded="true"] i::after { top:0; transform:rotate(-45deg); }
  .city-nav,.license-nav { align-items:stretch; background:linear-gradient(155deg,#061a35,#0b2e56 68%,#6b1023); bottom:0; display:flex; flex-direction:column; gap:0; height:calc(100dvh - 66px); left:0; max-height:none; opacity:0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; padding:1rem 1.2rem calc(2rem + env(safe-area-inset-bottom)); pointer-events:none; position:fixed!important; right:0; top:66px; transform:translateY(-105%); transition:opacity .25s,transform .35s cubic-bezier(.2,.8,.2,1); width:100vw; z-index:501; }
  .city-header .city-nav { height:calc(100dvh - 78px); top:78px; }
  .city-nav.mobile-open,.license-nav.mobile-open { opacity:1; pointer-events:auto; transform:none; }
  .city-nav > a,.city-nav > .nav-dropdown > button,.license-nav > a { border-bottom:1px solid rgba(255,255,255,.13); color:white; display:block; padding:1rem .2rem; text-align:left; width:100%; }
  .nav-dropdown { position:relative; }
  .nav-dropdown::after { display:none; }
  .nav-dropdown-menu { background:rgba(2,14,30,.62); border:0; box-shadow:none; display:none; left:auto; min-width:0; opacity:1; padding:.25rem .7rem; pointer-events:auto; position:static; transform:none; visibility:visible; }
  .nav-dropdown.mobile-submenu-open .nav-dropdown-menu { display:flex; max-height:none; }
  .nav-dropdown:hover .nav-dropdown-menu:not(:focus-within) { transform:none; }
  .nav-dropdown-menu a { padding:.85rem .45rem; white-space:normal; }
  .hero-content { padding: 7rem 1.2rem 7rem; }
  .hero-content::before { inset: 5.2rem .75rem 1rem; }
  .hero-central-logo { height:128px; margin-bottom:1.2rem; width:212px; }
  .city-header .brand.has-logo img { height:70px; max-width:none; width:auto; }
  .hero-content h1 { font-size: 18vw; line-height: .82; }
  .hero-content h1 .outline { margin-left: 0; }
  .hero-copy { margin: 0; max-width: 88%; }
  .hero-actions,.hero-social-band { align-items:flex-start; flex-direction:column; }
  .hero-social-band { max-width:100%; }
  .orb-three { height:70vw; left:-20vw; top:-30vw; width:70vw; }
  .round-cta { bottom: 1.5rem; left: 1.2rem; }
  .destinations, .activity-section, .events-section { padding: 5rem 1.2rem; }
  .section-head { align-items: flex-start; flex-direction: column; gap: 2rem; }
  .section-head > div { max-width:100%; min-width:0; width:100%; }
  .section-head h2, .info-section h2, .visit-section h2 { font-size:clamp(2.25rem,10vw,3rem); line-height:1; hyphens:none; overflow-wrap:normal; word-break:normal; }
  .section-head h2,.city-title-row h1 { hyphens:none; overflow-wrap:normal; word-break:normal; }
  .city-grid, .activity-grid, .event-grid, .info-section { grid-template-columns: 1fr; }
  .activity-card:nth-child(n) { grid-column:auto; }
  .city-card { aspect-ratio: 1.1; padding: 1.4rem; }
  .city-card-orbits { height:62%; right:-18%; top:-10%; width:74%; }
  .city-card-bottom { bottom: 1.4rem; left: 1.4rem; right: 1.4rem; }
  .status-dot { margin-right: -15%; }
  .manifesto { min-height: 50vh; }
  .manifesto p { left: 1.2rem; right: 1.2rem; }
  .site-footer { align-items: flex-start; flex-direction: column; gap: 1.5rem; padding: 3rem 1.2rem; }
  .site-footer { display:flex; }
  .app-install-button { bottom:calc(.8rem + env(safe-area-inset-bottom)); right:.8rem; }
  .footer-legal { text-align:left; }
  .footer-legal .footer-links,.footer-access { justify-content:flex-start; }
  .city-hero { padding-top:78px; }
  .city-hero-content { min-height:calc(92vh - 78px); padding:2rem 1.2rem; }
  .city-title-row { align-items:flex-start; flex-direction:column; gap:1rem; }
  .city-title-row h1 { font-size:clamp(2.65rem,11vw,4.8rem); line-height:.94; margin:1rem 0 .5rem; max-width:100%; }
  .dept-badge { height: 60px; width: 60px; }
  .activity-card { min-height: 310px; }
  .complex-info-strip { align-items:flex-start; flex-direction:column; gap:1.5rem; padding:1.5rem 1.2rem; }
  .today-city-hours { align-items:flex-start; text-align:left; }
  .strip-social-links { justify-content:flex-start; }
  .schedule-panel, .price-panel { padding: 5rem 1.2rem; }
  .visit-section { gap:2rem; grid-template-columns:1fr; padding:4rem 1.2rem; }
  .city-map,.city-map iframe { min-height:300px; }
  .visit-actions { align-items: flex-start; }
  .coming-main { align-items: flex-start; padding: 8rem 1.2rem 5rem; }
  .coming-shape-one { height: 110vw; right: -50vw; top: 5vh; width: 110vw; }
  .coming-content h1 > span { font-size: 7vw; }
  .coming-content h1 strong { font-size: 9.5vw; line-height: 1.1; }
  .coming-copy { max-width: 90%; }
  .coming-actions { align-items: flex-start; flex-direction: column; gap: 1.2rem; }
  .coming-eight { bottom: 4rem; font-size: 58vw; }
  .inner-hero { min-height: 50vh; padding: 9rem 1.2rem 4rem; }
  .today-hours { align-items: flex-start; flex-direction: column; gap: 2rem; padding: 4rem 1.2rem; }
  .today-hours > strong { text-align: left; }
  .all-hours { padding: 5rem 1.2rem; }
  .activity-detail-hero,.activity-detail-content,.formula-section,.corporate-story,.contact-layout,.join-content { grid-template-columns: 1fr; }
  .activity-detail-hero,.contact-layout { padding-top:78px; }
  .join-layout { padding-top:78px; }
  .join-hero,.join-content { padding-left:1.2rem; padding-right:1.2rem; }
  .contact-copy { min-height:calc(100vh - 78px); }
  .activity-detail-media { min-height: 42vh; }
  .activity-detail-copy { padding: 4rem 1.2rem; }
  .activity-detail-copy h1,.inner-hero h1,.celebration-hero h1,.corporate-hero h1,.corporate-hero-pro h1,.contact-copy h1,.license-hero h1 { hyphens:none; overflow-wrap:normal; word-break:normal; }
  .formula-media { min-height: 48vh; }
  .formula-section.reverse .formula-media { order: 0; }
  .formula-copy,.corporate-story { padding: 5rem 1.2rem; }
  .corporate-highlights,.corporate-gallery { grid-template-columns: 1fr; }
  .corporate-hero-pro { min-height:72vh; padding:8rem 1.2rem 4rem; }
  .corporate-hero-note { display:none; }
  .corporate-hero-actions { align-items:flex-start; flex-direction:column; }
  .corporate-section-head { gap:1rem; grid-template-columns:1fr; }
  .corporate-why,.corporate-offers,.corporate-gallery-pro { padding:4rem 1.2rem; }
  .corporate-benefit-grid,.corporate-offer-grid { grid-template-columns:1fr; max-width:460px; }
  .corporate-benefit-card { min-height:285px; }
  .corporate-speed-title > span { width:10vw; }
  .corporate-media-story { grid-template-columns:1fr; }
  .corporate-story-copy { padding:4rem 1.2rem; }
  .corporate-story-media { min-height:55vh; }
  .corporate-section-head.light { grid-template-columns:1fr; }
  .corporate-gallery-grid { grid-template-columns:1fr; }
  .corporate-final-cta { align-items:flex-start; flex-direction:column; padding:4rem 1.2rem; }
  .contact-copy,.contact-form-wrap { padding: 5rem 1.2rem; }
  .contact-form-grid { grid-template-columns: 1fr; }
  .weekly-pricing-cards { grid-template-columns:1fr; }
  .weekly-price-card { padding:1.5rem 1rem; }
  .weekly-price-head,.weekly-price-row { gap:.5rem; grid-template-columns:1fr .65fr .9fr; }
  .weekly-price-row { font-size:.68rem; }
  .contact-submit-row { align-items:stretch; flex-direction:column; gap:1rem; }
  .contact-submit-row .button { width:100%; }
  .celebration-hero { min-height:72vh; padding:8rem 1.2rem 4rem; }
  .celebration-packages { grid-template-columns:1fr; padding:4rem 1.2rem; }
  .celebration-packages .formula-tier-card { min-height:430px; }
  .celebration-packages .formula-tier-card:only-child { grid-column:auto; }
  .celebration-booking-band,.celebration-booking-bottom { align-items:flex-start; flex-direction:column; padding:2.5rem 1.2rem; }
  .celebration-intro,.celebration-gallery { padding:4rem 1.2rem; }
  .celebration-gallery-head { align-items:flex-start; flex-direction:column; gap:.8rem; }
  .celebration-gallery-grid { grid-template-columns:1fr; }
  .celebration-gallery-grid figure { transform:none; }
  .license-hero,.license-conditions,.license-contact,.group-hero,.group-intro,.group-section-head,.group-two-cols,.group-speed { grid-template-columns:1fr; padding:8rem 1.2rem 4rem; }
  .group-hero { min-height:0; }
  .group-hero h1 { font-size:clamp(2.5rem,12vw,4.2rem); }
  .group-hero h2 { font-size:clamp(1.25rem,6.5vw,2.1rem); }
  .group-hero-actions { align-items:flex-start; flex-direction:column; }
  .group-section,.group-final { padding:4rem 1.2rem; }
  .group-logo-stack figure,.group-brand-panel { min-height:120px; }
  .group-speed .group-brand-panel { min-height:220px; }
  .group-activity-list { grid-template-columns:1fr; }
  .group-metrics { transform:none!important; }
  .license-hero { gap:3rem; }
  .license-hero-orbit { height:100vw; right:-48vw; top:-18vw; width:100vw; }
  .license-scroll-cue { display:none; }
  .license-stats,.license-card-grid,.license-support .license-card-grid,.license-process ol { grid-template-columns:1fr; }
  .license-stats { padding:0 1.2rem; }
  .license-stats article { border-bottom:1px solid rgba(8,43,85,.18); border-right:0; padding:1.3rem .3rem; }
  .license-section,.license-process { padding:4rem 1.2rem; }
  .license-section-head { gap:1rem; grid-template-columns:1fr; }
  .license-card-grid article { min-height:0; }
  .condition-list { padding:.5rem 1rem; }
  .condition-list article { align-items:flex-start; grid-template-columns:1fr; padding:1.2rem 0; }
  .condition-list article p { margin:0; }
  .condition-list strong,.condition-list a { text-align:left; }
  .license-contact { padding-top:4rem; }
  .license-form-grid { grid-template-columns:1fr; }
  .license-form-grid label { grid-column:1; }
}

@media (max-width: 520px) {
  .schedule-period-grid { grid-template-columns:1fr; }
  .all-hours { padding:4rem 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .license-marquee > div { animation:none; }
  .license-motion-ready [data-reveal] { opacity:1; transform:none; }
}
