/* jeuLumi — production styles (Stage 2 conversion) */
:root { color-scheme: dark; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:#06071c; color:#f2f4f3; font-family:'Chivo',sans-serif; -webkit-font-smoothing:antialiased; }
img, video { max-width:100%; }
a { color:#00e5ff; text-decoration:none; }
a:hover { color:#ff8c42; }
button { font-family:inherit; }
:focus-visible { outline:2px solid #00e5ff; outline-offset:3px; }
summary::-webkit-details-marker { display:none; }
[id] { scroll-margin-top:90px; }

.jl-foot a { color: inherit; text-decoration: none; }
  .jl-foot a:hover { color:#ff8c42; }
  .jl-foot h2 { text-shadow:0 0 10px rgba(255,255,255,.25), 0 0 30px rgba(255,63,164,.45); }

.jl-ask summary { cursor:pointer; list-style:none; }
  .jl-ask summary::-webkit-details-marker { display:none; }
  .form-trap { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
  .form-message { margin:16px 0 0; padding:0; font-weight:600; line-height:1.5; font-size:15px; color:#f2f4f3; }
  .form-message--success { padding:14px 16px; background:rgba(57,255,20,.10); border:1px solid #39ff14; border-radius:10px; box-shadow:0 0 16px rgba(57,255,20,.12); }
  .form-message--error { padding:14px 16px; background:rgba(255,45,149,.10); border:1px solid #ff2d95; border-radius:10px; box-shadow:0 0 16px rgba(255,45,149,.12); }
  .jl-ask button:disabled { cursor:wait; opacity:.65; }
  .jl-ask input:focus, .jl-ask select:focus, .jl-ask textarea:focus { outline:none; border-color:rgba(0,229,255,.9) !important; box-shadow:0 0 0 1px rgba(0,229,255,.6), 0 0 24px rgba(0,229,255,.4); }

html, body { margin:0; padding:0; background:#0a0320; }
  * { box-sizing: border-box; }
  a { color: inherit; text-decoration: none; }
  a:hover { color:#ff8c42; }
  .grad-text { background:linear-gradient(90deg,#ff5b3c,#ffcf3f,#00e5ff,#b34dff,#ff3fa4); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .grad-btn { background:linear-gradient(120deg,#ffcf3f,#ff3fa4,#b34dff); }
  .grad-btn:hover { background:linear-gradient(120deg,#ffcf3f,#ff5b3c,#b34dff); }
  summary { cursor: pointer; list-style: none; }
  summary::-webkit-details-marker { display: none; }
  @media (max-width:820px) {
    .floor-chips { display:flex !important; }
    .floor-grid { grid-template-columns:1fr !important; grid-template-rows:auto auto auto auto !important; }
    .fl-cell[data-on="false"] { display:none !important; }
  }
  @keyframes slide-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

  @keyframes tile-pulse { 0%,100% { opacity:.10; } 50% { opacity:.55; } }
  .leaflet-container { background:#0a0c26 !important; font-family:'Chivo Mono',monospace; }
  .leaflet-tile { filter: invert(1) hue-rotate(190deg) saturate(.55) brightness(.82) contrast(1.05) !important; }
  .leaflet-control-attribution { background:rgba(6,7,28,.7) !important; color:rgba(242,244,243,.5) !important; font-size:9px !important; }
  .leaflet-control-attribution a { color:rgba(242,244,243,.6) !important; }

  /* neon poster layer */
  h1, h2 { text-shadow:0 0 10px rgba(255,255,255,.35), 0 0 34px rgba(255,63,164,.55), 0 0 68px rgba(0,229,255,.28); }
  h3 { text-shadow:none; }
  h1.grad-text, h2.grad-text, .grad-text { text-shadow:none; filter:drop-shadow(0 0 16px rgba(255,63,164,.55)); }
  .grad-btn { box-shadow:0 0 0 1.5px rgba(255,255,255,.5), 0 0 26px rgba(255,63,164,.6), 0 0 60px rgba(179,77,255,.35); transition:box-shadow .18s ease, transform .18s ease; }
  .grad-btn:hover { box-shadow:0 0 0 1.5px rgba(255,255,255,.85), 0 0 38px rgba(255,63,164,.85), 0 0 84px rgba(0,229,255,.45); transform:translateY(-1px); }
  input:focus, select:focus, textarea:focus { outline:none; border-color:rgba(0,229,255,.9) !important; box-shadow:0 0 0 1px rgba(0,229,255,.6), 0 0 24px rgba(0,229,255,.4); }

  @keyframes neon-flicker { 0%,100% { opacity:1; } 92% { opacity:1; } 94% { opacity:.72; } 96% { opacity:1; } }

html, body { margin:0; padding:0; background:#0a0320; }
  * { box-sizing: border-box; }
  a { color: inherit; text-decoration: none; }
  a:hover { color:#ff8c42; }
  .grad-btn { background:linear-gradient(120deg,#ffcf3f,#ff3fa4,#b34dff); }
  .grad-btn:hover { background:linear-gradient(120deg,#ffcf3f,#ff5b3c,#b34dff); }

  /* neon poster layer */
  h1, h2 { text-shadow:0 0 10px rgba(255,255,255,.35), 0 0 34px rgba(255,63,164,.55), 0 0 68px rgba(0,229,255,.28); }
  h3 { text-shadow:none; }
  h1.grad-text, h2.grad-text, .grad-text { text-shadow:none; filter:drop-shadow(0 0 16px rgba(255,63,164,.55)); }
  .grad-btn { box-shadow:0 0 0 1.5px rgba(255,255,255,.5), 0 0 26px rgba(255,63,164,.6), 0 0 60px rgba(179,77,255,.35); transition:box-shadow .18s ease, transform .18s ease; }
  .grad-btn:hover { box-shadow:0 0 0 1.5px rgba(255,255,255,.85), 0 0 38px rgba(255,63,164,.85), 0 0 84px rgba(0,229,255,.45); transform:translateY(-1px); }
  input:focus, select:focus, textarea:focus { outline:none; border-color:rgba(0,229,255,.9) !important; box-shadow:0 0 0 1px rgba(0,229,255,.6), 0 0 24px rgba(0,229,255,.4); }


html, body { margin:0; padding:0; background:#0a0320; }
  * { box-sizing: border-box; }
  a { color: inherit; text-decoration: none; }
  a:hover { color:#ff8c42; }
  .grad-btn { background:linear-gradient(120deg,#ffcf3f,#ff3fa4,#b34dff); }
  .grad-btn:hover { background:linear-gradient(120deg,#ffcf3f,#ff5b3c,#b34dff); }
  .leaflet-container { background:#0a0c26 !important; font-family:'Chivo Mono',monospace; }
  .leaflet-tile { filter: invert(1) hue-rotate(190deg) saturate(.55) brightness(.82) contrast(1.05) !important; }
  .leaflet-control-attribution { background:rgba(6,7,28,.7) !important; color:rgba(242,244,243,.5) !important; font-size:9px !important; }
  .leaflet-control-attribution a { color:rgba(242,244,243,.6) !important; }

  /* neon poster layer */
  h1, h2 { text-shadow:0 0 10px rgba(255,255,255,.35), 0 0 34px rgba(255,63,164,.55), 0 0 68px rgba(0,229,255,.28); }
  h3 { text-shadow:none; }
  h1.grad-text, h2.grad-text, .grad-text { text-shadow:none; filter:drop-shadow(0 0 16px rgba(255,63,164,.55)); }
  .grad-btn { box-shadow:0 0 0 1.5px rgba(255,255,255,.5), 0 0 26px rgba(255,63,164,.6), 0 0 60px rgba(179,77,255,.35); transition:box-shadow .18s ease, transform .18s ease; }
  .grad-btn:hover { box-shadow:0 0 0 1.5px rgba(255,255,255,.85), 0 0 38px rgba(255,63,164,.85), 0 0 84px rgba(0,229,255,.45); transform:translateY(-1px); }
  input:focus, select:focus, textarea:focus { outline:none; border-color:rgba(0,229,255,.9) !important; box-shadow:0 0 0 1px rgba(0,229,255,.6), 0 0 24px rgba(0,229,255,.4); }
  .form-trap { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
  .form-message { margin:16px 0 0; padding:0; font-weight:600; line-height:1.5; font-size:15px; }
  .form-message--success { padding:14px 16px; color:#ffffff; background:rgba(57,255,20,.10); border:1px solid #39ff14; border-radius:10px; box-shadow:0 0 16px rgba(57,255,20,.12); }
  .form-message--error { padding:14px 16px; color:#ffffff; background:rgba(255,45,149,.10); border:1px solid #ff2d95; border-radius:10px; box-shadow:0 0 16px rgba(255,45,149,.12); }
  button:disabled { cursor:wait; opacity:.65; }
  .size-rail { scrollbar-width:thin; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; }
  .size-rail::-webkit-scrollbar { height:4px; }
  .size-rail::-webkit-scrollbar-thumb { background:rgba(242,244,243,.22); border-radius:99px; }
  .size-rail > button { scroll-snap-align:start; }
  .size-rail > button:focus-visible { outline:2px solid #00e5ff; outline-offset:3px; }
  .size-panel { animation:sz-fade .28s ease; }
  @keyframes floor-tile { 0%,100% { opacity:1; } 50% { opacity:.35; } }
  @keyframes sz-fade { from { opacity:.35; transform:translateY(4px); } to { opacity:1; transform:none; } }
  @media (max-width:900px) {
    .size-panel-grid { grid-template-columns:1fr !important; gap:24px !important; }
    .size-cats { grid-template-columns:1fr !important; gap:18px !important; }
    .size-cats > div + div { border-left:none !important; padding-left:0 !important; border-top:1px solid rgba(242,244,243,.12); padding-top:18px; }
  }
  @media (prefers-reduced-motion:reduce) { .size-panel { animation:none; } .size-rail > button { transition:none !important; } }
  input[type="date"]::-webkit-calendar-picker-indicator, input[type="time"]::-webkit-calendar-picker-indicator, input[type="datetime-local"]::-webkit-calendar-picker-indicator { opacity:1; cursor:pointer; }



/* hover states converted from the design source */
[data-hv="f1"]:hover, [data-hv="f1"]:focus-visible { background:linear-gradient(120deg,#ffcf3f,#ff5b3c,#b34dff) !important; box-shadow:0 0 0 1.5px rgba(255,255,255,.85), 0 0 38px rgba(255,63,164,.85), 0 0 84px rgba(0,229,255,.45) !important; transform:translateY(-1px) !important; color:#06071c !important; }
[data-hv="f2"]:hover, [data-hv="f2"]:focus-visible { background:rgba(0,229,255,.18) !important; color:#ffffff !important; }
[data-hv="f3"]:hover, [data-hv="f3"]:focus-visible { background:rgba(0,229,255,.18) !important; color:#ffffff !important; }
[data-hv="f4"]:hover, [data-hv="f4"]:focus-visible { background:rgba(0,229,255,.18) !important; color:#ffffff !important; }
[data-hv="a5"]:hover, [data-hv="a5"]:focus-visible { background:linear-gradient(120deg,#ffcf3f,#ff5b3c,#b34dff) !important; box-shadow:0 0 0 1.5px rgba(255,255,255,.85), 0 0 38px rgba(255,63,164,.85), 0 0 84px rgba(0,229,255,.45) !important; transform:translateY(-1px) !important; }
[data-hv="h101"]:hover, [data-hv="h101"]:focus-visible { border-color:#00e5ff !important; background:rgba(0,229,255,.12) !important; }
[data-hv="h102"]:hover, [data-hv="h102"]:focus-visible { border-color:#ff3fa4 !important; background:rgba(255,63,164,.12) !important; }
[data-hv="h103"]:hover, [data-hv="h103"]:focus-visible { border-color:#d16bff !important; background:rgba(209,107,255,.12) !important; }
[data-hv="h104"]:hover, [data-hv="h104"]:focus-visible { background:rgba(0,229,255,.3) !important; }
[data-hv="h105"]:hover, [data-hv="h105"]:focus-visible { border-color:#00e5ff !important; }
[data-hv="h106"]:hover, [data-hv="h106"]:focus-visible { background:rgba(0,229,255,.3) !important; }
[data-hv="h107"]:hover, [data-hv="h107"]:focus-visible { background:rgba(0,229,255,.3) !important; box-shadow:0 0 28px rgba(0,229,255,.5) !important; }
[data-hv="h108"]:hover, [data-hv="h108"]:focus-visible { background:rgba(0,229,255,.3) !important; box-shadow:0 0 28px rgba(0,229,255,.5) !important; }
[data-hv="h109"]:hover, [data-hv="h109"]:focus-visible { background:rgba(0,229,255,.3) !important; }
[data-hv="h110"]:hover, [data-hv="h110"]:focus-visible { background:rgba(0,229,255,.3) !important; }
[data-hv="h111"]:hover, [data-hv="h111"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h112"]:hover, [data-hv="h112"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h113"]:hover, [data-hv="h113"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h114"]:hover, [data-hv="h114"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h115"]:hover, [data-hv="h115"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h116"]:hover, [data-hv="h116"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h117"]:hover, [data-hv="h117"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h118"]:hover, [data-hv="h118"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h119"]:hover, [data-hv="h119"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h120"]:hover, [data-hv="h120"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h121"]:hover, [data-hv="h121"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h122"]:hover, [data-hv="h122"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h123"]:hover, [data-hv="h123"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h124"]:hover, [data-hv="h124"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h125"]:hover, [data-hv="h125"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h126"]:hover, [data-hv="h126"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h127"]:hover, [data-hv="h127"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h128"]:hover, [data-hv="h128"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h129"]:hover, [data-hv="h129"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h130"]:hover, [data-hv="h130"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h131"]:hover, [data-hv="h131"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h132"]:hover, [data-hv="h132"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h133"]:hover, [data-hv="h133"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h134"]:hover, [data-hv="h134"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h135"]:hover, [data-hv="h135"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h136"]:hover, [data-hv="h136"]:focus-visible { color:#ff8c42 !important; }
[data-hv="h137"]:hover, [data-hv="h137"]:focus-visible { color:#ff8c42 !important; }
[data-hv="e138"]:hover, [data-hv="e138"]:focus-visible { background:rgba(0,229,255,.3) !important; }
[data-hv="r301"]:hover, [data-hv="r301"]:focus-visible { background:rgba(0,229,255,.3) !important; }
[data-hv="r302"]:hover, [data-hv="r302"]:focus-visible { color:#ff8c42 !important; }
[data-hv="r303"]:hover, [data-hv="r303"]:focus-visible { color:#ff8c42 !important; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}


/* ===============================================================
   Component classes + responsive behaviour (Stage 3)
   Desktop appearance is unchanged; every rule below is either a
   component class or scoped to a max-width media query.
   Inline styles from the design source still win by specificity,
   so overrides that must beat them carry !important.
   =============================================================== */

/* ---- media components ---- */
.game-media { position:relative; overflow:hidden; background:#171a3a; aspect-ratio:16 / 11; }
.game-video { position:absolute; top:0; left:0; width:100%; height:200%; object-fit:cover; object-position:top center; display:block; }

.event-media { position:relative; overflow:hidden; width:100%; max-width:400px; aspect-ratio:1 / 1;
  border-radius:18px; border:1px solid rgba(242,244,243,.14); background-color:#12142e; }
.event-media-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; }

/* ---- mobile navigation (hidden on desktop) ---- */
.mobile-menu-button { display:none; width:44px; height:44px; flex:0 0 auto; align-items:center; justify-content:center;
  flex-direction:column; gap:5px; padding:0; border:1px solid rgba(242,244,243,.22); border-radius:12px;
  background:rgba(10,3,32,.5); cursor:pointer; }
.mobile-menu-bar { display:block; width:20px; height:2px; border-radius:2px; background:#f2f4f3; transition:transform .2s, opacity .2s; }
.mobile-menu-button[aria-expanded="true"] .mobile-menu-bar:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.mobile-menu-button[aria-expanded="true"] .mobile-menu-bar:nth-child(2) { opacity:0; }
.mobile-menu-button[aria-expanded="true"] .mobile-menu-bar:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.mobile-nav { display:none; }
.mobile-nav[hidden] { display:none; }
.mobile-nav a { display:block; padding:15px 4px; font-size:17px; font-weight:600; color:#f2f4f3;
  border-bottom:1px solid rgba(242,244,243,.12); }
.mobile-nav a:last-child { border-bottom:none; }
.mobile-nav .mobile-nav-cta { margin-top:16px; padding:15px 22px; text-align:center; border-radius:999px;
  border-bottom:none; color:#06071c; background:linear-gradient(120deg,#ffcf3f,#ff3fa4,#b34dff); }

/* ===================== <= 1100px ===================== */
@media (max-width:1100px) {
  .site-header { padding-left:24px !important; padding-right:24px !important; gap:20px !important; }
  section { padding-left:24px !important; padding-right:24px !important; }
  .page-container { max-width:100% !important; }
  section > .page-container { padding-left:0 !important; padding-right:0 !important; }

  /* nothing but the header stays pinned */
  .experience-intro, .faq-intro { position:static !important; top:auto !important; }
  .experience-intro { margin-bottom:44px; }
  .faq-intro { margin-bottom:32px; }

  .auto-grid { grid-template-columns:1fr !important; gap:32px !important; }
  .event-media { max-width:400px; margin-inline:auto; }
}

/* ===================== <= 820px ===================== */
@media (max-width:820px) {
  .desktop-nav { display:none !important; }
  .mobile-menu-button { display:flex; }
  .site-header { flex-wrap:nowrap !important; gap:14px !important; padding:12px 20px !important; }
  .header-actions { gap:12px !important; }
  .header-actions .grad-btn { display:none !important; }

  .mobile-nav { display:block; position:absolute; left:0; right:0; top:100%;
    padding:12px 20px 22px; background:rgba(8,9,24,.98); backdrop-filter:blur(14px);
    border-bottom:1px solid rgba(242,244,243,.12); max-height:calc(100vh - 70px); overflow-y:auto; }
  .mobile-nav[hidden] { display:none; }
  .site-header { position:sticky !important; }

  section { padding-left:20px !important; padding-right:20px !important; }
  .tile-strip { height:64px !important; }
  .form-grid { grid-template-columns:1fr !important; }
  .form-wide { grid-column:span 1 !important; }
  .size-panel-grid { grid-template-columns:1fr !important; }
  .floor-chips { display:flex !important; }
  .floor-grid { grid-template-columns:1fr !important; grid-template-rows:auto auto auto auto !important; }
  .fl-cell[data-on="false"] { display:none !important; }
  .jl-footbar { flex-direction:column; align-items:flex-start !important; gap:16px !important; }
  .jl-footbar > div { flex-direction:column; gap:12px !important; order:1; }
  .jl-footbar > span:first-child { order:2; }
  .jl-footbar > span:last-child { order:3; }
}

/* ===================== <= 640px ===================== */
@media (max-width:640px) {
  section { padding-left:18px !important; padding-right:18px !important;
    padding-top:56px !important; padding-bottom:60px !important; }

  .hero { min-height:0 !important; padding-top:56px !important; padding-bottom:64px !important; }
  h1 { font-size:38px !important; }
  h2 { font-size:30px !important; }
  h3 { font-size:23px !important; }
  .tile-strip { height:58px !important; }
  details#reach-us { padding-left:20px !important; padding-right:20px !important; }
  .size-rail { margin-left:-18px; margin-right:-18px; padding-left:18px; padding-right:18px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

/* ---- generated pricing + kids callout ---- */
.kids-banner { display:flex; align-items:center; flex-wrap:wrap; gap:8px 20px; margin-bottom:14px;
  padding:12px 22px; border:1px solid rgba(0,229,255,.42); border-radius:14px;
  background:rgba(0,229,255,.07); box-shadow:0 0 22px rgba(0,229,255,.16); backdrop-filter:blur(6px); }
.kids-banner-line { display:flex; align-items:center; gap:12px; }
.kids-banner-sep { color:rgba(242,244,243,.35); }

@media (max-width:820px) {
  .pricing-grid { grid-template-columns:1fr !important; border-radius:18px !important; }
  /* two tight lines, price still the loudest element */
  .kids-banner { flex-direction:column; align-items:flex-start; gap:8px; padding:14px 16px; }
  .kids-banner-line { flex-wrap:wrap; gap:10px; }
}

/* ---- forms fit at every width ---- */
@media (max-width:900px) {
  .form-grid { grid-template-columns:1fr !important; }
  .form-wide { grid-column:span 1 !important; }
}
.form-grid input, .form-grid select, .form-grid textarea {
  width:100%; max-width:100%; min-width:0; box-sizing:border-box;
}
.form-grid label { min-width:0; }
details#reach-us, #quote { overflow:visible; }

/* mobile-only floor chips (desktop uses the scale ladder) */
.floor-chips { display:none; gap:8px; overflow-x:auto; padding-bottom:4px; margin-bottom:24px; }
@media (max-width:820px) { .floor-chips { display:flex !important; } }


/* ===============================================================
   Stage 4 — mobile rhythm pass
   One vertical scale for sections, one for cards. Rules are scoped
   to max-width queries, so desktop is untouched.
   =============================================================== */

/* decorative floor illustration keeps its own grid at every width */
.floor-tiles { grid-template-columns:repeat(8,1fr) !important; grid-template-rows:repeat(6,1fr) !important; gap:4px !important; }

@media (max-width:820px) {
  /* section rhythm: 64px between sections, never doubled */
  section { padding-top:64px !important; padding-bottom:64px !important; }
  section[style*="padding:0"] { padding-top:0 !important; }
  section[style*="padding:0 0 0"], section.jl-foot { padding-top:0 !important; padding-bottom:0 !important; }
  section.hero { padding-top:48px !important; }
  /* inner page containers never add a second layer of vertical padding */
  section > .page-container { padding-bottom:0 !important; }
  /* a tile strip IS the divider — the section must not pad above it */
  section:has(.tile-strip) { padding-top:0 !important; }
  .auto-grid { gap:24px !important; }

  /* the 3D floor reads as a flat top-down plan on phones */
  .floor-3d { transform:none !important; }

  /* stacked CTA banners */
  .cta-row { flex-direction:column !important; align-items:flex-start !important; gap:22px !important; }
  .cta-row > div:last-child { width:100%; }
  .cta-row a { flex:1; text-align:center; }
}

@media (max-width:640px) {
  /* card padding scale: 40/36/34 -> 22, wide banners -> 24/20 */
  [style*="padding:40px"], [style*="padding:36px"], [style*="padding:34px"] { padding:22px !important; }
  [style*="padding:40px 44px"], [style*="padding:44px"] { padding:24px 20px !important; }
  [style*="padding:26px 34px"], [style*="padding:22px 26px"] { padding:20px !important; }
  /* vertical dividers become horizontal rules once columns stack */
  .split-col, .size-cats > div + div { border-left:none !important; padding-left:0 !important;
    border-top:1px solid rgba(242,244,243,.16); padding-top:20px; }
}

@media (max-width:1100px) {
  /* stacked grid/flex children may not push past the column */
  .auto-grid > *, .page-container > * { min-width:0 !important; }
}

@media (max-width:820px) {
  .hero > div { min-width:0 !important; max-width:100% !important; }
  .hero { min-height:0 !important; }
}

/* generated FAQ questions (were per-element data-hv rules before the list moved to shared data) */
.faq-q > summary { cursor:pointer; list-style:none; }
.faq-q > summary:hover, .faq-q > summary:focus-visible { color:#ff8c42; }
.faq-q[open] > summary > span:last-child { color:#00e5ff; }

/* ---- compact contextual FAQ drawer (rentals + private events) ---- */
.faq-drawer-box { border:1px solid rgba(0,229,255,.38); border-radius:16px; background:rgba(10,3,32,.55);
  box-shadow:0 0 22px rgba(0,229,255,.14); backdrop-filter:blur(6px); overflow:hidden; }
.faq-drawer-bar { display:flex; align-items:center; justify-content:space-between; gap:24px; width:100%;
  padding:16px 22px; border:none; background:transparent; color:#f2f4f3; text-align:left; cursor:pointer; }
.faq-drawer-bar:hover { background:rgba(0,229,255,.06); }
.faq-drawer-head { display:flex; flex-direction:column; gap:4px; min-width:0; }
.faq-drawer-eyebrow { font-family:'Chivo Mono',monospace; font-size:10px; letter-spacing:.18em; color:#00e5ff; }
.faq-drawer-title { font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size:20px; letter-spacing:-.02em; }
.faq-drawer-sub { font-size:14px; color:rgba(242,244,243,.62); }
.faq-drawer-toggle { display:flex; align-items:center; gap:10px; flex:0 0 auto;
  font-family:'Chivo Mono',monospace; font-size:11px; letter-spacing:.12em; color:#00e5ff; }
.faq-drawer-plus { display:flex; align-items:center; justify-content:center; width:28px; height:28px;
  border:1px solid rgba(0,229,255,.5); border-radius:999px; font-size:16px; line-height:1;
  transition:transform .18s ease; }
.faq-drawer-bar[aria-expanded="true"] .faq-drawer-plus { transform:rotate(45deg); }
.faq-drawer-panel { padding:0 22px 14px; animation:faq-drawer-in .18s ease; }
@keyframes faq-drawer-in { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:none; } }
.faq-drawer-row { border-top:1px solid rgba(242,244,243,.12); }
.faq-drawer-row > summary { display:flex; align-items:center; justify-content:space-between; gap:18px;
  min-height:44px; padding:12px 0; cursor:pointer; list-style:none;
  font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:16.5px; letter-spacing:-.01em; }
.faq-drawer-row > summary::-webkit-details-marker { display:none; }
.faq-drawer-row > summary:hover { color:#ff8c42; }
.faq-drawer-mark { flex:0 0 auto; color:#00e5ff; font-size:15px; }
.faq-drawer-row[open] .faq-drawer-mark { color:#ff8c42; }
.faq-drawer-row[open] .faq-drawer-mark::after { content:""; }
.faq-drawer-row > p { margin:0 0 16px; font-size:15px; line-height:1.55; color:rgba(242,244,243,.72); max-width:680px; }
.faq-drawer-all { display:inline-block; margin-top:14px; font-family:'Chivo Mono',monospace; font-size:11px;
  letter-spacing:.12em; color:#00e5ff; }
@media (max-width:640px) {
  .faq-drawer-bar { flex-direction:column; align-items:flex-start; gap:12px; padding:16px 18px; }
  .faq-drawer-title { font-size:18px; }
  .faq-drawer-panel { padding:0 18px 14px; }
  .faq-drawer-row > summary { font-size:16px; }
}
@media (prefers-reduced-motion:reduce) {
  .faq-drawer-panel { animation:none; }
  .faq-drawer-plus { transition:none; }
}


/* ---- booking page: Bookeo widget wrapper ---- */
.bookeo-booking-wrapper { position:relative; z-index:1; width:100%; max-width:100%; box-sizing:border-box;
  min-height:520px; padding:12px; border:1px solid rgba(0,174,239,.20); border-radius:22px;
  background:rgba(5,10,48,.35); box-shadow:0 18px 44px rgba(3,5,24,.34); }
.bookeo-booking-wrapper > * { max-width:100%; }
.bookeo-booking-wrapper iframe, .bookeo-booking-wrapper table, .bookeo-booking-wrapper img {
  max-width:100% !important; }
.bookeo-booking-wrapper iframe { width:100% !important; border:0; display:block; }
.bookeo-loading { display:flex; align-items:center; gap:12px; padding:26px 4px; font-size:15px;
  line-height:1.5; color:rgba(242,244,243,.7); }
.bookeo-loading[hidden] { display:none; }
.bookeo-loading-dot { width:9px; height:9px; flex:0 0 auto; border-radius:999px; background:#00e5ff;
  box-shadow:0 0 12px rgba(0,229,255,.8); animation:bookeo-pulse 1.4s ease-in-out infinite; }
@keyframes bookeo-pulse { 0%,100% { opacity:1; } 50% { opacity:.25; } }
@media (prefers-reduced-motion: reduce) { .bookeo-loading-dot { animation:none; } }
.nav-cta-current { box-shadow:0 0 0 2px rgba(0,229,255,.85), 0 0 22px rgba(0,229,255,.45) !important; }
.mobile-nav .mobile-nav-cta[aria-current="page"] { box-shadow:0 0 0 2px rgba(0,229,255,.85); }
@media (max-width:820px) {
  .bookeo-booking-wrapper { padding:4px; border-radius:18px; min-height:460px; }
}
@media (max-width:640px) {
  .booking-reminders { gap:8px !important; }
}


/* ---- events hero photo collage ---- */
.event-collage { position:relative; width:100%; max-width:560px; margin-bottom:20px; }
.event-collage-glow { position:absolute; inset:-26px -20px -22px; pointer-events:none; filter:blur(32px);
  background:radial-gradient(ellipse 52% 44% at 50% 74%, rgba(123,44,255,.26), transparent 72%),
             radial-gradient(ellipse 32% 32% at 16% 14%, rgba(0,174,239,.16), transparent 74%),
             radial-gradient(ellipse 30% 30% at 86% 14%, rgba(255,106,0,.13), transparent 74%); }
.ev-frame { position:relative; display:grid; grid-template-columns:1fr 1fr;
  grid-template-rows:158px 1fr; gap:6px; height:412px;
  background:#fff; padding:7px; border-radius:18px; overflow:hidden;
  box-shadow:0 20px 46px rgba(4,2,18,.6), 0 0 30px rgba(123,44,255,.14);
  animation:ev-rise .55s cubic-bezier(.22,.7,.3,1) both;
  transition:transform .3s ease, box-shadow .3s ease; }
.ev-shot { position:relative; margin:0; min-width:0; min-height:0; overflow:hidden; background:#02020f; border-radius:3px; }
.ev-shot img { width:100%; height:100%; object-fit:cover; display:block; }
.ev-group { border-top-left-radius:12px; }
.ev-group img { object-position:50% 26%; filter:brightness(1.04) contrast(1.03); }
.ev-accent { border-top-right-radius:12px; }
.ev-accent img { object-position:56% 48%; }
.ev-main { grid-column:1 / -1; border-bottom-left-radius:12px; border-bottom-right-radius:12px; }
.ev-main img { object-position:50% 24%; filter:brightness(1.06) contrast(1.04); }
@keyframes ev-rise { from { opacity:0; transform:translateY(12px); } }
@media (hover:hover) and (pointer:fine) {
  .ev-frame:hover { transform:translateY(-4px); box-shadow:0 26px 54px rgba(4,2,18,.66), 0 0 40px rgba(123,44,255,.24); }
}
@media (max-width:1100px) { .event-collage { max-width:none; } .ev-frame { height:396px; grid-template-rows:150px 1fr; } }
@media (max-width:820px) {
  .ev-frame { height:352px; grid-template-rows:126px 1fr; gap:5px; padding:6px; border-radius:16px; }
  .ev-group, .ev-accent { border-top-left-radius:11px; border-top-right-radius:11px; }
  .ev-group { border-top-right-radius:3px; } .ev-accent { border-top-left-radius:3px; }
  .ev-main { border-bottom-left-radius:11px; border-bottom-right-radius:11px; }
}
@media (max-width:420px) { .ev-frame { height:320px; grid-template-rows:112px 1fr; gap:4px; padding:5px; } }
@media (prefers-reduced-motion: reduce) { .ev-frame { animation:none; } }

@media (max-width:820px) {
  #party-tiles { display:none !important; }
  .calc-hint { display:none !important; }
}
