/* ============================================================
   EscapeGame Austria — "Midnight Petrol" design system
   ============================================================ */

/* ---------- 1. DESIGN TOKENS ---------- */
:root{
  /* Brand palette (per brief) */
  --brand:        #083849;   /* header / footer */
  --brand-700:    #0a4458;
  --brand-300:    #2c6c80;
  --accent:       #FF9900;   /* primary accent */
  --accent-600:   #E68A00;
  --accent-200:   #FFCC80;

  /* Cinematic near-black base (petrol pushed down) */
  --ink:          #04212b;
  --ink-900:      #03191f;
  --ink-800:      #062a36;
  --ink-700:      #0a3543;

  /* Neutrals */
  --paper:        #ffffff;
  --mist:         #eef2f3;   /* trend light gray */
  --mist-2:       #f6f8f9;

  /* Text on dark */
  --fg:           #eaf1f3;
  --fg-muted:     #9fb6bd;
  --fg-dim:       #6f8b93;

  /* Genre accents */
  --g-horror:     #d23b4e;
  --g-vampire:    #b1304b;
  --g-mystery:    #3fa7a0;
  --g-adventure:  #e8923a;
  --g-family:     #46b07a;

  /* Lines / surfaces */
  --line:         rgba(255,255,255,.10);
  --line-strong:  rgba(255,255,255,.18);
  --surface:      #073140;
  --surface-2:    #0a3a4b;

  /* Radius */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 22px;
  --r-pill: 999px;

  /* Shadows / glow */
  --shadow-1: 0 4px 18px rgba(0,0,0,.30);
  --shadow-2: 0 18px 50px rgba(0,0,0,.45);
  --glow:     0 0 0 1px rgba(255,153,0,.35), 0 10px 40px rgba(255,153,0,.18);

  /* Spacing scale */
  --s-1:.25rem; --s-2:.5rem; --s-3:.75rem; --s-4:1rem;
  --s-5:1.5rem; --s-6:2rem; --s-7:3rem; --s-8:4.5rem; --s-9:6.5rem;

  /* Layout */
  --container: 1200px;
  --container-narrow: 760px;
  --header-h: 116px;

  /* Type */
  --font-display: "Oswald", "Arial Narrow", system-ui, sans-serif;
  --font-body: "Inter", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- 2. RESET / BASE ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 10px); }
body{
  margin:0;
  font-family:var(--font-body);
  background:var(--ink);
  color:var(--fg);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:600; line-height:1.05; margin:0; letter-spacing:.01em; }
:focus-visible{ outline:3px solid var(--accent); outline-offset:3px; border-radius:4px; }

.skip-link{
  position:absolute; left:-999px; top:8px; z-index:1000;
  background:var(--accent); color:var(--ink); padding:.6rem 1rem; border-radius:var(--r-sm); font-weight:600;
}
.skip-link:focus{ left:12px; }

/* ---------- 3. LAYOUT ---------- */
.container{ width:min(100% - 2.5rem, var(--container)); margin-inline:auto; }
.container-narrow{ max-width:var(--container-narrow); }
.section{ padding:var(--s-9) 0; position:relative; }
.section-alt{ background:linear-gradient(180deg, var(--ink-900), var(--ink-800)); }
.section-head{ max-width:680px; margin:0 auto var(--s-7); text-align:center; }
.eyebrow{
  text-transform:uppercase; letter-spacing:.22em; font-size:.74rem; font-weight:600;
  color:var(--accent); margin:0 0 var(--s-3);
}
.section-title{
  font-size:clamp(2rem, 1rem + 4vw, 3.4rem);
  text-transform:uppercase; letter-spacing:.01em;
  line-height:1.14;
}
.section-lead{ color:var(--fg-muted); font-size:1.075rem; margin:var(--s-4) 0 0; }

/* ---------- 4. BUTTONS ---------- */
.btn{
  --bg:transparent; --c:var(--fg);
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-weight:600; font-size:.95rem; line-height:1;
  padding:.85rem 1.4rem; border-radius:var(--r-pill);
  border:1.5px solid transparent; background:var(--bg); color:var(--c);
  transition:transform .2s var(--ease), box-shadow .25s var(--ease), background .2s, color .2s, border-color .2s;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }
.btn-accent{ --bg:var(--accent); --c:#231a02; box-shadow:var(--glow); }
.btn-accent:hover{ --bg:var(--accent-600); box-shadow:0 0 0 1px rgba(255,153,0,.5), 0 14px 46px rgba(255,153,0,.28); }
.btn-outline{ border-color:var(--line-strong); color:var(--fg); background:rgba(255,255,255,.02); }
.btn-outline:hover{ border-color:var(--accent); color:var(--accent); }
.btn-ghost{ color:var(--fg); background:transparent; }
.btn-ghost:hover{ color:var(--accent); }
.btn-sm{ padding:.6rem 1rem; font-size:.85rem; }
.btn-lg{ padding:1.05rem 1.9rem; font-size:1.02rem; }
.btn-block{ display:flex; width:100%; }

/* ---------- 5. HEADER / NAV ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:color-mix(in srgb, var(--brand) 92%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .3s, background .3s;
}
.site-header.scrolled{ box-shadow:0 8px 30px rgba(0,0,0,.4); background:var(--brand); }
.header-inner{ display:flex; align-items:center; gap:var(--s-5); height:var(--header-h); }
.brand{ display:inline-flex; align-items:center; }
/* Real EscapeGame logo, recolored to the brand accent via CSS mask
   (source SVG is flat #EE7F07 → masking is lossless). Swap accent for
   #EE7F07 to restore the native orange. */
.brand-logo{
  display:block;
  width:130px; height:100%;
  object-fit:contain; object-position:left center;
}
.site-footer .brand-logo{ width:175px; height:80px; }

.nav-desktop{ display:flex; gap:1.4rem; margin-inline:auto; }
.nav-desktop a{ font-size:.92rem; font-weight:500; color:var(--fg); position:relative; padding:.3rem 0; }
.nav-desktop a::after{ content:""; position:absolute; left:0; bottom:-2px; height:2px; width:0; background:var(--accent); transition:width .25s var(--ease); }
.nav-desktop a:hover{ color:#fff; }
.nav-desktop a:hover::after{ width:100%; }

.header-actions{ display:flex; align-items:center; gap:.7rem; margin-left:auto; }

/* Switcher */
.switcher{ position:relative; }
.switcher-btn{
  display:inline-flex; align-items:center; gap:.4rem;
  background:rgba(255,255,255,.06); border:1px solid var(--line);
  color:var(--fg); padding:.45rem .7rem; border-radius:var(--r-pill); font-size:.85rem; font-weight:500;
}
.switcher-btn:hover{ border-color:var(--accent); }
.switcher-btn .chev{ transition:transform .2s; }
.switcher[data-open] .switcher-btn .chev{ transform:rotate(180deg); }
.switcher-menu{
  position:absolute; top:calc(100% + 8px); right:0; min-width:190px; z-index:50;
  list-style:none; margin:0; padding:.4rem; background:var(--surface-2);
  border:1px solid var(--line-strong); border-radius:var(--r-md); box-shadow:var(--shadow-2);
}
.switcher-menu li{ padding:.55rem .7rem; border-radius:var(--r-sm); font-size:.9rem; }
.switcher-menu li:hover, .switcher-menu li[aria-selected="true"]{ background:rgba(255,153,0,.14); color:var(--accent); }

/* Header phone */
.header-phone{ display:inline-flex; align-items:center; gap:.45rem; color:var(--fg); font-weight:600; font-size:.9rem; white-space:nowrap; }
.header-phone svg{ color:var(--accent); flex:0 0 auto; }
.header-phone:hover{ color:var(--accent); }

/* Flag chips */
.flag{ width:22px; height:22px; border-radius:50%; display:inline-block; flex:0 0 auto; box-shadow:inset 0 0 0 1px rgba(255,255,255,.25); background-size:cover; background-position:center; }
.flag-de{ background:linear-gradient(#1a1a1a 0 33.33%, #d00 33.33% 66.66%, #ffce00 66.66%); }
.flag-us{ background:
  linear-gradient(#3c3b6e,#3c3b6e) left top / 42% 53% no-repeat,
  repeating-linear-gradient(#b22234 0 7.7%, #fff 7.7% 15.4%); }

/* Language flag dropdown */
.lang{ position:relative; }
.lang-btn{ display:inline-flex; align-items:center; gap:.3rem; background:rgba(255,255,255,.06); border:1px solid var(--line); color:var(--fg); padding:.25rem .45rem .25rem .3rem; border-radius:var(--r-pill); cursor:pointer; }
.lang-btn:hover{ border-color:var(--accent); }
.lang-btn .chev{ transition:transform .2s; }
.lang[data-open] .lang-btn .chev{ transform:rotate(180deg); }
.lang-menu{ position:absolute; top:calc(100% + 8px); right:0; z-index:50; list-style:none; margin:0; padding:.35rem; min-width:110px; background:var(--surface-2); border:1px solid var(--line-strong); border-radius:var(--r-md); box-shadow:var(--shadow-2); }
.lang-menu li + li{ margin-top:.15rem; }
.lang-menu button{ width:100%; display:flex; align-items:center; gap:.5rem; background:none; border:none; color:var(--fg); font-weight:600; font-size:.85rem; padding:.45rem .55rem; border-radius:var(--r-sm); cursor:pointer; }
.lang-menu button:hover, .lang-menu button.is-active{ background:rgba(255,153,0,.14); color:var(--accent); }

/* Hamburger (always available — holds overflow nav) */
.hamburger{ display:flex; flex-direction:column; gap:5px; background:none; border:none; padding:.4rem; }
.hamburger span{ width:24px; height:2px; background:var(--fg); transition:transform .3s, opacity .2s; }
.hamburger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hamburger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.hamburger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* Mobile / overflow menu — full-screen */
.mobile-menu{ position:fixed; inset:0; z-index:120; background:linear-gradient(180deg, var(--brand), var(--ink-900)); display:flex; flex-direction:column; overflow-y:auto; padding:1rem 1.5rem 2.4rem; -webkit-overflow-scrolling:touch; }
.mobile-menu[hidden]{ display:none; }
.mobile-menu-head{ display:flex; align-items:center; justify-content:space-between; padding-bottom:.7rem; border-bottom:1px solid var(--line); }
.mobile-menu-head .brand-logo{ width:120px; height:55px; }
.mobile-close{ background:rgba(255,255,255,.06); border:1px solid var(--line); color:var(--fg); width:44px; height:44px; border-radius:50%; font-size:1.5rem; line-height:1; cursor:pointer; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; }
.mobile-close:hover{ border-color:var(--accent); color:var(--accent); }
.mobile-close svg{ display:block; }
.mobile-menu-body{ flex:1; display:grid; grid-template-columns:repeat(3, 1fr); gap:var(--s-6) var(--s-8); align-content:center; padding:var(--s-6) 0; max-width:1100px; margin:0 auto; width:100%; }
.mobile-col-title{ font-size:.76rem; text-transform:uppercase; letter-spacing:.14em; color:var(--accent); margin-bottom:.9rem; padding-bottom:.55rem; border-bottom:1px solid var(--line); }
.mobile-nav{ display:flex; flex-direction:column; }
.mobile-nav a{ font-family:var(--font-display); text-transform:uppercase; font-size:1.25rem; letter-spacing:.02em; padding:.5rem 0; color:var(--fg); transition:color .2s, padding-left .2s var(--ease); }
.mobile-nav a:hover{ color:var(--accent); padding-left:.4rem; }
.mobile-info{ display:flex; flex-direction:column; gap:.85rem; }
.mobile-info .mobile-col-title{ margin-bottom:.2rem; }
@media (max-width:720px){ .mobile-menu-body{ grid-template-columns:1fr; gap:var(--s-5); align-content:start; } }
.mobile-info-row{ display:flex; align-items:center; gap:.6rem; color:var(--fg-muted); font-weight:600; font-size:1.02rem; }
.mobile-info-row svg{ color:var(--accent); flex:0 0 auto; }
a.mobile-info-row:hover{ color:var(--accent); }
.mobile-info-hours{ font-weight:400; font-size:.92rem; }
.mobile-social{ display:flex; gap:.7rem; margin-top:.5rem; }
.mobile-social a{ width:44px; height:44px; border-radius:50%; border:1px solid var(--line); display:grid; place-items:center; color:var(--fg); transition:.2s; }
.mobile-social a:hover{ border-color:var(--accent); color:var(--accent); transform:translateY(-3px); }

/* ---------- 6. HERO ---------- */
.hero{ position:relative; min-height:min(92vh, 820px); display:flex; align-items:center; overflow:hidden; }
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-photo{
  position:absolute; inset:0;
  background:#06151b url("../assets/hero.jpg") center 38% / cover no-repeat;
  transform:scale(1.06);
  animation:slowpan 26s ease-in-out infinite alternate;
}
@keyframes slowpan{ from{ transform:scale(1.05) translate(0,0);} to{ transform:scale(1.12) translate(-2%,-2%);} }
.hero-vignette{
  position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(3,18,24,.92) 0%, rgba(3,18,24,.6) 38%, rgba(3,18,24,.22) 62%, rgba(3,18,24,.05) 85%),
    linear-gradient(180deg, rgba(3,25,31,.55) 0%, transparent 24%, transparent 44%, rgba(3,25,31,.35) 66%, rgba(3,25,31,.78) 85%, rgb(3,25,31) 100%),
    radial-gradient(120% 90% at 50% 10%, transparent 45%, rgba(2,12,16,.35) 100%);
}
.grain{
  position:absolute; inset:-50%; opacity:.05; pointer-events:none; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero-inner{ position:relative; z-index:2; padding:var(--s-8) 0; max-width:780px; }
.hero-title{ font-size:clamp(2.6rem, 1rem + 8vw, 5.6rem); text-transform:uppercase; letter-spacing:.005em; margin:var(--s-4) 0; text-shadow:0 2px 30px rgba(0,0,0,.6); }
/* German copy runs longer — ease the hero title down, German only */
html[lang="de"] .hero-title{ font-size:clamp(2.2rem, .8rem + 6.4vw, 4.6rem); line-height:1.06; }
html[lang="de"] .nx-title{ line-height:1.18; }
.accent-text{ color:var(--accent); }
.hero-sub{ font-size:clamp(1.05rem,.9rem + .8vw,1.3rem); color:var(--fg-muted); max-width:600px; text-shadow:0 1px 16px rgba(0,0,0,.55); }
.hero .eyebrow{ text-shadow:0 1px 14px rgba(0,0,0,.5); }
.hero-actions{ display:flex; flex-wrap:wrap; gap:.85rem; margin:var(--s-6) 0 var(--s-5); }
.hero-trust{ display:flex; align-items:center; gap:.55rem; font-size:.95rem; color:var(--fg-muted); }
.hero-trust .stars{ color:var(--accent); letter-spacing:.05em; }
.hero-trust strong{ color:#fff; font-size:1.05rem; }

.scroll-cue{ position:absolute; bottom:22px; left:50%; transform:translateX(-50%); z-index:3; width:26px; height:42px; border:2px solid var(--line-strong); border-radius:var(--r-pill); display:flex; justify-content:center; }
.scroll-cue span{ width:4px; height:8px; background:var(--accent); border-radius:2px; margin-top:7px; animation:scrolldot 1.8s var(--ease) infinite; }
@keyframes scrolldot{ 0%{ opacity:0; transform:translateY(-4px);} 40%{ opacity:1;} 80%,100%{ opacity:0; transform:translateY(12px);} }

/* Trust strip */
.trust-strip{ background:linear-gradient(180deg, rgba(3,25,31,0) 0%, rgba(8,56,73,.35) 45%, rgba(3,25,31,0) 100%); border:0; }
.trust-strip-inner{ display:flex; flex-wrap:wrap; gap:1rem 2rem; justify-content:center; padding:var(--s-4) 0; font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; color:var(--fg-muted); }
.trust-strip-inner span{ position:relative; }

/* ---------- 6b. SUMMER PROMO BAR ---------- */
.promo{ background:linear-gradient(110deg, var(--accent), var(--accent-600)); color:#231a02; position:relative; overflow:hidden; }
.promo::after{ content:""; position:absolute; inset:0; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); opacity:.05; mix-blend-mode:overlay; pointer-events:none; }
.promo-inner{ position:relative; z-index:1; display:flex; align-items:center; gap:1rem 2rem; flex-wrap:wrap; justify-content:space-between; padding:.85rem 0; }
.promo-text{ text-align:left; }
.promo-toprow{ display:flex; align-items:center; gap:.55rem; flex-wrap:wrap; margin-bottom:.5rem; }
.promo-badge{ display:inline-block; background:#231a02; color:var(--accent); font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; padding:.3rem .7rem; border-radius:var(--r-pill); line-height:1; }
/* timer styled as a badge-height pill, sitting next to the badge */
.promo-timer{ display:inline-flex; align-items:center; gap:.4rem; background:#231a02; color:var(--accent); font-size:.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; padding:.3rem .7rem; border-radius:var(--r-pill); line-height:1; }
.promo-timer-label{ opacity:.85; }
.promo-clock{ font-family:var(--font-display); font-size:.82rem; letter-spacing:.03em; color:var(--accent); font-variant-numeric:tabular-nums; line-height:1; }
.promo-headline{ margin:0; font-size:1.02rem; font-weight:600; }
.promo-headline strong{ font-family:var(--font-display); font-size:1.3rem; color:#7a1d12; }
.promo-cta{ background:#231a02; color:var(--accent); padding:.7rem 1.4rem; font-size:.9rem; box-shadow:none; }
.promo-cta:hover{ background:#000; color:var(--accent); transform:translateY(-2px); box-shadow:none; }
@media (max-width:680px){
  .promo-inner{ flex-direction:column; gap:.75rem; }
  .promo-text{ text-align:center; }
  .promo-toprow{ justify-content:center; }
  .promo-headline strong{ font-size:1.15rem; }
}

/* ---------- 7. ROOMS GRID ---------- */
.filters{ display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin-bottom:var(--s-7); }
.filters-loc{ margin-top:calc(var(--s-7) * -1 + .5rem); }
.filters-loc .chip{ font-size:.8rem; padding:.45rem .9rem; opacity:.92; }
.chip{
  background:rgba(255,255,255,.04); border:1px solid var(--line); color:var(--fg);
  padding:.55rem 1.1rem; border-radius:var(--r-pill); font-size:.88rem; font-weight:500;
  transition:.2s var(--ease);
}
.chip:hover{ border-color:var(--accent); color:var(--accent); }
.chip.is-active{ background:var(--accent); color:#231a02; border-color:var(--accent); }
.chip-actor, .chip-bestseller{ color:var(--accent); border-color:rgba(255,153,0,.45); }
.chip-actor:hover, .chip-bestseller:hover{ color:var(--accent); }
.chip-actor.is-active, .chip-bestseller.is-active{ color:#231a02; background:var(--accent); }

.rooms-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(300px,1fr)); gap:1.5rem; }
.room-card{
  position:relative; cursor:pointer;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;
}
/* whole-card click: the CTA's stretched hit-area covers the entire card */
.room-card .btn-block::after{ content:""; position:absolute; inset:0; z-index:3; }
/* keep the button transform-free so it never becomes a containing block
   (a transformed button would collapse its own stretched ::after to itself) */
.room-card .btn-block:hover, .room-card .btn-block:active{ transform:none; }
.room-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-2); border-color:var(--line-strong); }
.room-card.is-hidden{ display:none; }
/* bestseller rooms get a glowing gold outline so they stand out */
.room-card:has(.room-new.is-bestseller){ border-color:rgba(255,153,0,.55); box-shadow:0 0 0 1px rgba(255,153,0,.3); }
.room-card:has(.room-new.is-bestseller):hover{ border-color:var(--accent); box-shadow:0 0 0 1px rgba(255,153,0,.5), var(--shadow-2); }
.room-media{ position:relative; aspect-ratio:4/3; background:var(--ink-700); overflow:hidden; }
.room-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
/* per-room icon image — bottom-right, no backdrop */
.room-icon{ position:absolute; right:.55rem; bottom:.55rem; z-index:2; pointer-events:none; width:90px; height:90px; }
.room-card .room-icon-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; display:block; }
.room-card:hover .room-icon-img{ transform:none; }
.room-card:hover .room-media img{ transform:scale(1.06); }
.room-media::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(3,20,26,.45) 0%, transparent 35%, transparent 60%, rgba(3,20,26,.55)); }
.room-stamp{ position:absolute; top:.8rem; left:.8rem; z-index:2; display:flex; flex-direction:column; align-items:flex-start; gap:.4rem; }
.room-tag, .room-new, .room-loc{
  font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.1em;
  padding:.3rem .6rem; border-radius:var(--r-pill);
}
.room-tag{ background:rgba(0,0,0,.55); color:#fff; backdrop-filter:blur(4px); }
.room-loc{ display:inline-flex; align-items:center; gap:.35rem; background:rgba(0,0,0,.55); color:var(--accent); backdrop-filter:blur(4px); text-transform:none; letter-spacing:.02em; font-weight:600; max-width:100%; }
.room-loc svg{ flex:0 0 auto; }
/* top-right highlight badges. Base = secondary info (Live actor); sales badges below pop harder. */
.room-new{ position:absolute; top:.8rem; right:.8rem; z-index:2; background:rgba(3,16,21,.6); color:#fff; backdrop-filter:blur(4px); border:1px solid var(--line-strong); }
.room-new ~ .room-new{ top:calc(.8rem + 2.05rem); }          /* stack a second badge below the first */
.room-card > .room-new.is-bestseller{ top:-13px; right:1.1rem; z-index:4; }
.room-card:has(> .room-new.is-bestseller){ overflow:visible; }
.room-card:has(> .room-new.is-bestseller) .room-media{ border-radius:var(--r-lg) var(--r-lg) 0 0; }
.room-new.is-bestseller{
  background:linear-gradient(135deg,#FFD451,#f0901a); color:#231a02; border:none;
  box-shadow:0 0 0 1px rgba(255,153,0,.55), 0 8px 22px rgba(255,150,20,.42);
  animation:badgepulse 2.6s var(--ease) infinite;
}
.room-new.is-bestseller::before{ content:"★"; margin-right:.32em; }
.room-new.is-new{
  background:linear-gradient(135deg,#3ad07e,#1f9e5e); color:#04150e; border:none;
  box-shadow:0 0 0 1px rgba(58,208,126,.5), 0 8px 22px rgba(47,191,113,.38);
}
@keyframes badgepulse{
  0%,100%{ box-shadow:0 0 0 1px rgba(255,153,0,.55), 0 8px 22px rgba(255,150,20,.32); }
  50%{ box-shadow:0 0 0 1px rgba(255,153,0,.85), 0 10px 30px rgba(255,150,20,.6); }
}
.room-body{ padding:1.3rem 1.3rem 1.4rem; display:flex; flex-direction:column; gap:.85rem; flex:1; }
.room-name{ font-size:1.4rem; text-transform:uppercase; letter-spacing:.01em; }
.room-teaser{ color:var(--fg-muted); font-size:.94rem; margin:0; flex:1; }
.room-meta{ list-style:none; margin:auto 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:.55rem 1rem; font-size:.85rem; }
.room-meta li{ display:flex; justify-content:space-between; gap:.5rem; border-bottom:1px dashed var(--line); padding-bottom:.4rem; }
.room-meta li span:first-child{ color:var(--fg-dim); }
.room-meta strong{ color:var(--fg); font-weight:600; }

/* difficulty dots */
.dots{ display:inline-flex; gap:3px; align-items:center; }
.dots i{ display:inline-flex; color:rgba(255,255,255,.20); line-height:0; }
.dots i.on{ color:var(--accent); filter:drop-shadow(0 0 5px rgba(255,153,0,.55)); }
.dots i svg{ display:block; }

.rooms-empty{ text-align:center; color:var(--fg-muted); margin-top:var(--s-6); }
.rooms-empty p{ margin:0; }
.rooms-empty .btn{ margin-top:var(--s-4); }

/* Venue tabs (multi-location contact) */
.venue-tabs{ margin-top:var(--s-2); }
.venue-tabnav{ display:flex; gap:.5rem; flex-wrap:wrap; margin:.5rem 0 1rem; }
.venue-tab{ font:inherit; cursor:pointer; padding:.5rem .9rem; border-radius:var(--r-pill); background:var(--surface); color:var(--fg-muted); border:1px solid var(--line); font-weight:600; font-size:.88rem; transition:color .15s var(--ease), background .15s var(--ease); }
.venue-tab:hover{ color:var(--fg); }
.venue-tab.is-active{ background:var(--accent); color:#1a1205; border-color:var(--accent); }
.venue-panel[hidden]{ display:none; }
.venue-addr{ display:inline-block; margin-bottom:.7rem; color:var(--accent); font-weight:600; }

/* FAQ: categorized two-column layout */
.faq-grid{ display:grid; grid-template-columns:minmax(240px,.85fr) 1.4fr; gap:var(--s-7); align-items:start; }
.faq-aside{ position:sticky; top:calc(var(--header-h) + 1rem); }
.faq-aside .section-title{ margin-bottom:var(--s-5); }
.faq-cats{ display:flex; flex-direction:column; gap:.5rem; margin-bottom:var(--s-6); }
.faq-cat{ text-align:left; font:inherit; cursor:pointer; padding:.85rem 1.1rem; border-radius:var(--r-md); background:var(--surface); color:var(--fg-muted); border:1px solid var(--line); font-weight:700; letter-spacing:.03em; text-transform:uppercase; font-size:.8rem; transition:color .15s var(--ease), border-color .15s var(--ease), background .15s var(--ease); }
.faq-cat:hover{ color:var(--fg); }
.faq-cat.is-active{ color:var(--accent); border-color:var(--accent); background:rgba(255,153,0,.07); }
.faq-help{ display:inline-flex; align-items:center; gap:.55rem; color:var(--accent); font-weight:700; text-transform:uppercase; letter-spacing:.08em; font-size:.78rem; border-bottom:2px solid var(--accent); padding-bottom:.35rem; }
.faq-help svg{ transition:transform .15s var(--ease); }
.faq-help:hover svg{ transform:translateX(4px); }
.faq-list{ min-width:0; }
.faq-list .acc-item[hidden]{ display:none; }
@media (max-width:860px){
  .faq-grid{ grid-template-columns:1fr; gap:var(--s-5); }
  .faq-aside{ position:static; }
  .faq-cats{ flex-direction:row; flex-wrap:wrap; }
  .faq-cat{ flex:1 1 auto; text-align:center; }
}

/* Genre placeholder art (stand-in for photography) */
.genre-horror{   background:linear-gradient(140deg,#2a0a10,#5c1622 55%,#1a0508), radial-gradient(60% 60% at 60% 30%, rgba(210,59,78,.5), transparent 60%); }
.genre-horror2{  background:linear-gradient(140deg,#1d1410,#3d2a1c 55%,#100a08), radial-gradient(50% 50% at 40% 30%, rgba(210,140,90,.35), transparent 60%); }
.genre-vampire{  background:linear-gradient(140deg,#1a0712,#48132c 55%,#0d040a), radial-gradient(55% 55% at 65% 35%, rgba(177,48,75,.5), transparent 60%); }
.genre-mystery{  background:linear-gradient(140deg,#06231f,#0d4a40 55%,#04120f), radial-gradient(55% 55% at 60% 30%, rgba(63,167,160,.45), transparent 60%); }
.genre-mystery2{ background:linear-gradient(140deg,#10241f,#1c3a30 55%,#3a1212), radial-gradient(50% 50% at 55% 30%, rgba(210,59,78,.3), transparent 60%); }
.genre-adventure{ background:linear-gradient(140deg,#2a1c06,#7a4d12 55%,#160d04), radial-gradient(55% 55% at 60% 30%, rgba(232,146,58,.5), transparent 60%); }
.genre-family{   background:linear-gradient(140deg,#06241a,#125c3c 55%,#04120c), radial-gradient(55% 55% at 60% 30%, rgba(70,176,122,.45), transparent 60%); }

/* ---------- 7b. ABOUT US ---------- */
.about-inner{ display:grid; grid-template-columns:1fr 1fr; gap:var(--s-8); align-items:center; }
.about-media{ border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-2); aspect-ratio:4/3; }
.about-media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--ease); }
.about-media:hover img{ transform:scale(1.04); }
.about-copy .eyebrow{ margin-bottom:.6rem; }
.about-copy .section-title{ text-align:left; }
.about-rule{ display:block; width:64px; height:3px; border-radius:2px; background:var(--accent); margin:1.1rem 0 1.4rem; }
.about-copy p{ color:var(--fg-muted); font-size:1.02rem; line-height:1.75; margin:0 0 1.1rem; }
.about-cta{ margin-top:.8rem; text-transform:uppercase; letter-spacing:.08em; font-size:.85rem; }
/* keyword kicker folded into the hero H1 (SEO: primary keyword lives in the H1) */
.hero-h1-kw{ display:block; font-family:var(--font-body, "Inter", sans-serif); font-size:clamp(.78rem, .55rem + .6vw, .95rem); font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--accent); margin-bottom:.7rem; }
/* merged About block: specialist SEO copy behind a native read-more */
.about-more{ border-top:1px solid var(--line); margin:.2rem 0 1.4rem; }
.about-more > summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:.6rem; padding:1rem 0 .5rem; font-weight:600; color:var(--fg); font-size:1rem; }
.about-more > summary::-webkit-details-marker{ display:none; }
.about-more > summary .chev{ color:var(--accent); flex:none; transition:transform .3s var(--ease); }
.about-more[open] > summary .chev{ transform:rotate(180deg); }
.about-more-body{ display:flex; flex-direction:column; gap:1.1rem; padding-top:.3rem; }
.about-fact h3{ font-size:.98rem; text-transform:uppercase; letter-spacing:.04em; margin:0 0 .35rem; color:var(--accent); }
.about-fact p{ color:var(--fg-muted); font-size:.97rem; line-height:1.7; margin:0; }
.about-actions{ display:flex; gap:.8rem; flex-wrap:wrap; margin-top:.4rem; }

/* ---------- 8. WHY / FEATURES ---------- */
.feature-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(230px,1fr)); gap:1.5rem; }
.feature{ padding:1.7rem 1.5rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); transition:transform .3s var(--ease), border-color .3s; }
.feature:hover{ transform:translateY(-5px); border-color:var(--line-strong); }
.feature-icon{ width:52px; height:52px; border-radius:14px; display:grid; place-items:center; background:rgba(255,153,0,.12); color:var(--accent); margin-bottom:var(--s-4); }
.feature-icon svg{ width:26px; height:26px; }
.feature h3{ font-size:1.3rem; text-transform:uppercase; margin-bottom:.5rem; }
.feature p{ color:var(--fg-muted); font-size:.94rem; margin:0; }

/* ---------- 9. TOP 10 (vertical ranked list) ---------- */
.top10-layout{ display:grid; grid-template-columns:300px 1fr; gap:var(--s-6); align-items:center; }
.top10-head .eyebrow{ margin-bottom:.5rem; }
.top10-head .section-title{ text-align:left; }
.top10-head .section-lead{ text-align:left; }
.top10-nav{ display:flex; gap:.6rem; margin-top:var(--s-5); }
.top10-arrow{ width:48px; height:48px; border-radius:50%; border:1px solid var(--line-strong); background:rgba(255,255,255,.04); color:var(--fg); font-size:1.5rem; line-height:1; display:grid; place-items:center; transition:.2s var(--ease); }
.top10-arrow:hover{ border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }
.top10-arrow:disabled{ opacity:.3; cursor:default; transform:none; border-color:var(--line); color:var(--fg); }
.top10-scroller{ display:flex; gap:1.3rem; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; min-width:0; scroll-snap-type:x proximity; padding:.4rem .2rem 1.2rem; -webkit-overflow-scrolling:touch; scrollbar-width:thin; scrollbar-color:var(--line-strong) transparent; }
.top10-scroller::-webkit-scrollbar{ height:8px; }
.top10-scroller::-webkit-scrollbar-track{ background:transparent; }
.top10-scroller::-webkit-scrollbar-thumb{ background:var(--line-strong); border-radius:99px; }
.top10-scroller::-webkit-scrollbar-thumb:hover{ background:var(--accent); }
.top10-item{
  position:relative; display:flex; flex-direction:column; overflow:hidden;
  flex:0 0 250px; scroll-snap-align:start;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); color:var(--fg);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s;
}
.top10-item:hover{ transform:translateY(-6px); border-color:var(--accent); box-shadow:var(--shadow-2); }
.top10-rank{
  position:absolute; top:.7rem; left:.7rem; z-index:2;
  font-family:var(--font-display); font-size:1.4rem; font-weight:600; line-height:1; color:var(--accent);
  background:rgba(3,16,21,.62); backdrop-filter:blur(4px); padding:.25rem .6rem; border-radius:var(--r-pill);
}
.top10-photo{ width:100%; aspect-ratio:4/3; background:var(--ink-700); overflow:hidden; position:relative; }
.top10-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(3,16,21,.5) 0%, transparent 30%, transparent 70%, rgba(3,16,21,.5)); }
.top10-photo img{ width:100%; height:100%; object-fit:cover; transition:transform .45s var(--ease); }
.top10-item:hover .top10-photo img{ transform:scale(1.06); }
.top10-info{ display:flex; flex-direction:column; gap:.6rem; padding:1.1rem 1.2rem .5rem; flex:1; }
.top10-name{ font-family:var(--font-display); font-size:1.25rem; text-transform:uppercase; letter-spacing:.01em; line-height:1.05; }
.top10-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:.45rem .7rem; font-size:.8rem; color:var(--fg-muted); }
.top10-loc{ display:inline-flex; align-items:center; gap:.3rem; color:var(--fg-muted); width:100%; }
.top10-loc svg{ color:var(--accent); flex:0 0 auto; }
.top10-dots{ display:inline-flex; }
.top10-fact{ color:var(--fg); font-weight:500; }
.top10-best{ color:var(--accent); font-weight:600; width:100%; }
.top10-cta{ color:var(--accent); font-weight:600; font-size:.88rem; display:inline-flex; align-items:center; padding:0 1.2rem 1.2rem; transition:transform .2s var(--ease); }
.top10-item:hover .top10-cta{ transform:translateX(4px); }
@media (max-width:880px){
  .top10-layout{ grid-template-columns:1fr; align-items:start; gap:var(--s-5); }
  .top10-head .section-title{ font-size:clamp(1.8rem,1rem+5vw,2.4rem); }
}

/* ---------- 9b. COMPARE TABLE (legacy) ---------- */
.compare-wrap{ overflow-x:auto; border:1px solid var(--line); border-radius:var(--r-lg); }
.compare-table{ width:100%; border-collapse:collapse; min-width:720px; }
.compare-table th, .compare-table td{ padding:1rem 1.1rem; text-align:left; border-bottom:1px solid var(--line); font-size:.92rem; }
.compare-table thead th{ background:var(--brand); color:var(--fg); text-transform:uppercase; letter-spacing:.08em; font-size:.76rem; font-family:var(--font-display); font-weight:500; }
.compare-table tbody th{ font-family:var(--font-display); font-weight:500; font-size:1.02rem; color:#fff; }
.compare-table tbody tr:hover{ background:rgba(255,255,255,.03); }
.pill{ display:inline-block; padding:.25rem .65rem; border-radius:var(--r-pill); font-size:.74rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; }
.pill-horror{ background:rgba(210,59,78,.16); color:#ff8a98; }
.pill-mystery{ background:rgba(63,167,160,.16); color:#7fded6; }
.pill-adventure{ background:rgba(232,146,58,.16); color:#ffb877; }
.pill-family{ background:rgba(70,176,122,.16); color:#7fe0ad; }

/* ---------- 10. EVENTS ---------- */
.events-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.5rem; }
.event-card{ position:relative; border-radius:var(--r-lg); overflow:hidden; min-height:300px; display:flex; align-items:flex-end; border:1px solid var(--line); transition:transform .3s var(--ease); }
.event-card:hover{ transform:translateY(-5px); }
.event-card::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 25%, rgba(3,16,21,.92)); }
/* Photo-on-top variant (image above the text) */
.event-card--split{ flex-direction:column; align-items:stretch; justify-content:flex-start; background:var(--surface); }
.event-card--split::before{ display:none; }
.event-img{ flex:0 0 auto; width:100%; height:210px; overflow:hidden; }
.event-img img{ width:100%; height:100%; object-fit:cover; object-position:center 35%; display:block; transition:transform .45s var(--ease); }
.event-card--split:hover .event-img img{ transform:scale(1.05); }
.event-card--split .event-body{ padding:1.4rem 1.5rem 1.6rem; }
.event-body{ position:relative; padding:1.6rem 1.5rem; }
.event-body h3{ font-size:1.45rem; text-transform:uppercase; margin-bottom:.5rem; }
.event-body p{ color:var(--fg-muted); font-size:.94rem; margin:0 0 .9rem; }
.link-arrow{ color:var(--accent); font-weight:600; font-size:.92rem; }
.link-arrow:hover{ text-decoration:underline; }

/* ---------- 11. OFFERS ---------- */
.offers-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:1.5rem; }
.offer-card{ position:relative; padding:2rem 1.6rem; border-radius:var(--r-lg); background:var(--surface); border:1px dashed var(--line-strong); transition:transform .3s var(--ease), border-color .3s; }
.offer-card:hover{ transform:translateY(-5px); border-color:var(--accent); }
.offer-flag{ display:inline-block; font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; color:var(--accent); font-weight:600; margin-bottom:.7rem; }
.offer-card h3{ font-size:1.7rem; text-transform:uppercase; margin-bottom:.5rem; }
.offer-card p{ color:var(--fg-muted); font-size:.92rem; margin:0; }

/* ---------- 11b. SPECIAL OFFERS (deals) ---------- */
.deal-feature{
  display:flex; align-items:center; justify-content:space-between; gap:var(--s-6); flex-wrap:wrap;
  background:linear-gradient(110deg, var(--accent), var(--accent-600));
  color:#231a02; border-radius:var(--r-lg); padding:1.8rem 2rem; margin-bottom:1.6rem;
  box-shadow:0 18px 60px rgba(255,153,0,.18); position:relative; overflow:hidden;
}
.deal-feature::after{ content:""; position:absolute; inset:0; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); opacity:.05; mix-blend-mode:overlay; pointer-events:none; }
.deal-feature-text{ position:relative; z-index:1; }
.deal-badge{ display:inline-block; background:#231a02; color:var(--accent); font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; padding:.3rem .7rem; border-radius:var(--r-pill); margin-bottom:.7rem; }
.deal-feature-title{ font-size:clamp(1.5rem,1rem + 2.4vw,2.4rem); text-transform:uppercase; line-height:1; margin:0 0 .5rem; }
.deal-feature-pct{ color:#7a1d12; }
.deal-feature-text > p{ margin:0; max-width:44ch; font-size:.98rem; font-weight:500; }
.deal-scarcity{ margin-top:.6rem !important; font-weight:700; display:inline-flex; align-items:center; gap:.4rem; }
.deal-scarcity::before{ content:"⚠"; }
.deal-feature-cta{ position:relative; z-index:1; background:#231a02; color:var(--accent); box-shadow:none; white-space:nowrap; }
.deal-feature-cta:hover{ background:#000; color:var(--accent); box-shadow:none; }

.deals-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.2rem; }
.deal-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; display:flex; flex-direction:column; transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; }
.deal-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-2); border-color:var(--line-strong); }
.deal-img{ aspect-ratio:4/3; overflow:hidden; background:var(--ink-700); }
.deal-img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.deal-card:hover .deal-img img{ transform:scale(1.05); }
.deal-body{ padding:1.2rem 1.3rem 1.4rem; text-align:center; }
.deal-pct{ display:block; font-family:var(--font-display); font-size:2.4rem; line-height:1; color:var(--accent); font-weight:600; }
.deal-pct-free{ color:var(--accent); }
.deal-body h3{ font-size:1.2rem; text-transform:uppercase; margin:.5rem 0 .3rem; }
.deal-body p{ color:var(--fg-dim); font-size:.86rem; margin:0; }
.deals-cta{ text-align:center; margin-top:var(--s-6); }

/* ---------- 10b. OCCASIONS (events) ---------- */
.occasions{ margin-top:var(--s-7); text-align:center; }
.occasions-title{ font-size:1.5rem; text-transform:uppercase; margin-bottom:var(--s-5); }
.occasions-grid{ list-style:none; margin:0 0 var(--s-5); padding:0; display:flex; flex-wrap:wrap; gap:.7rem; justify-content:center; }
.occasions-grid li{ background:rgba(255,255,255,.04); border:1px solid var(--line); border-radius:var(--r-pill); padding:.55rem 1.1rem; font-size:.9rem; color:var(--fg-muted); transition:.2s var(--ease); }
.occasions-grid li:hover{ border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }

/* ---------- 11c. FRANCHISE ---------- */
.franchise-top{ display:grid; grid-template-columns:1fr 1.1fr; gap:var(--s-8); align-items:center; }
.franchise-copy .section-title{ text-align:left; }
.franchise-copy .eyebrow{ margin-bottom:.6rem; }
.franchise-copy > p{ color:var(--fg-muted); font-size:1.02rem; line-height:1.75; margin:0 0 var(--s-5); max-width:46ch; }
.franchise-media{ border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-2); aspect-ratio:16/9; }
.franchise-media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--ease); }
.franchise-media:hover img{ transform:scale(1.04); }
.franchise-regions{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:var(--s-5) var(--s-7); margin-top:var(--s-8); }
.fr-region{ border-top:2px solid var(--accent); padding-top:1rem; }
.fr-region h4{ font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; color:var(--accent); margin-bottom:.5rem; }
.fr-region p{ color:var(--fg-muted); font-size:.95rem; margin:0; line-height:1.6; }

/* ---------- 12. PACKAGES ---------- */
.packages-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:1.5rem; align-items:stretch; max-width:940px; margin-inline:auto; }
.package-card{ position:relative; padding:2rem 1.7rem; border-radius:var(--r-lg); background:var(--surface); border:1px solid var(--line); display:flex; flex-direction:column; gap:1rem; transition:transform .3s var(--ease); }
.package-card:hover{ transform:translateY(-5px); }
.package-featured{ background:linear-gradient(180deg,#0b455a,#073241); border-color:var(--accent); box-shadow:0 18px 60px rgba(255,153,0,.12); }
.package-badge{ position:absolute; top:-13px; left:1.7rem; background:var(--accent); color:#231a02; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; padding:.3rem .8rem; border-radius:var(--r-pill); }
.package-card h3{ font-size:1.7rem; text-transform:uppercase; }
.package-price{ font-size:1rem; color:var(--fg-muted); margin:0; }
.package-price strong{ font-family:var(--font-display); font-size:2.1rem; color:#fff; }
.package-card ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.6rem; flex:1; }
.package-card li{ padding-left:1.6rem; position:relative; color:var(--fg-muted); font-size:.92rem; }
.package-card li::before{ content:"✓"; position:absolute; left:0; color:var(--accent); font-weight:700; }

/* ---------- 13. GIFT CARDS ---------- */
.gift-inner{ display:grid; grid-template-columns:1fr 1fr; gap:var(--s-7); align-items:center; }
.gift-copy .section-head{ text-align:left; margin:0; max-width:none; }
.gift-copy .section-title, .gift-copy .eyebrow, .gift-copy .section-lead{ text-align:left; }
.gift-actions{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:var(--s-5); }
.gift-carousel{ position:relative; min-width:0; width:100%; max-width:430px; margin-inline:auto; }
.gift-viewport{ overflow:hidden; border-radius:var(--r-lg); }
.gift-track{ display:flex; width:100%; }
.giftcard{
  flex:0 0 100%; aspect-ratio:1.6/1; border-radius:var(--r-lg); padding:1.6rem;
  display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden;
  border:1px solid rgba(255,255,255,.15); box-shadow:var(--shadow-2);
}
.giftcard > *{ position:relative; z-index:2; }
/* festive birthday confetti */
.giftcard::after{ content:""; position:absolute; inset:0; z-index:1; opacity:.6;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Crect x='12' y='18' width='9' height='15' rx='2' fill='%23FFC42E' transform='rotate(25 16 25)'/%3E%3Ccircle cx='66' cy='28' r='5' fill='%23ffffff'/%3E%3Crect x='112' y='14' width='9' height='15' rx='2' fill='%234fd1c5' transform='rotate(-22 116 21)'/%3E%3Ccircle cx='34' cy='72' r='4.5' fill='%23ff6b81'/%3E%3Crect x='86' y='80' width='9' height='15' rx='2' fill='%23FFC42E' transform='rotate(42 90 87)'/%3E%3Ccircle cx='128' cy='108' r='5' fill='%23ffffff'/%3E%3Crect x='52' y='116' width='9' height='15' rx='2' fill='%234fd1c5' transform='rotate(-12 56 123)'/%3E%3Ccircle cx='104' cy='62' r='4' fill='%23ff6b81'/%3E%3Ccircle cx='20' cy='120' r='4' fill='%23FFC42E'/%3E%3C/svg%3E") 0 0 / 150px 150px; }
.giftcard::before{ content:"🎉"; position:absolute; top:1rem; right:1.3rem; z-index:2; font-size:1.7rem; line-height:1; filter:drop-shadow(0 2px 6px rgba(0,0,0,.4)); }
.gc-1{ background:linear-gradient(135deg,#0a4458,#06222c); }
.gc-2{ background:linear-gradient(135deg,#7a1e2b,#2a0810); }
.gc-3{ background:linear-gradient(135deg,#FFD451,#f0901a); color:#231a02; }
.gc-4{ background:linear-gradient(135deg,#4a2c6e,#1e1033); }
.gc-5{ background:linear-gradient(135deg,#1e6b4f,#08291d); }
/* offset the confetti per card so consecutive slides look clearly different */
.gc-2::after{ background-position:48px 26px; }
.gc-3::after{ background-position:90px 60px; }
/* image-based gift card designs (carousel slides) */
.giftcard-img{ flex:0 0 100%; min-width:0; }
.giftcard-img img{ display:block; width:100%; height:auto; }
/* room card hover teaser video */
.room-teaser{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .35s var(--ease); z-index:1; pointer-events:none; }
.room-card:hover .room-teaser{ opacity:1; }
/* photo-driven package cards */
.pkg-imgs{ position:relative; display:flex; gap:2px; height:180px; border-radius:var(--r-md); overflow:hidden; margin-bottom:1.2rem; }
.pkg-imgs img{ flex:1 1 0; width:0; min-width:0; height:100%; object-fit:cover; filter:saturate(.92) brightness(.9); transition:filter .3s var(--ease); }
.package-card:hover .pkg-imgs img{ filter:saturate(1) brightness(1); }
.pkg-imgs::after{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(4,20,26,.55)); }
/* old → new price on packages */
.package-was{ color:var(--fg-dim); text-decoration:line-through; text-decoration-thickness:1.5px; font-weight:600; margin-right:.15rem; }
.package-price strong{ color:var(--accent); }
.pkg-photo{ position:relative; }
.pkg-photo .package-badge{ z-index:3; }
.gc-4::after{ background-position:30px 100px; }
.gc-5::after{ background-position:110px 14px; }
.gc-brand{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:.1em; font-size:1.1rem; }
.gc-3 .gc-brand{ color:#231a02; }
.gc-value{ font-family:var(--font-display); font-size:2.6rem; line-height:1; }
.gc-label{ font-size:.85rem; opacity:.85; }
.carousel-controls{ display:flex; align-items:center; justify-content:center; gap:1rem; margin-top:1.1rem; }
.carousel-controls button{ width:40px; height:40px; border-radius:50%; border:1px solid var(--line-strong); background:rgba(255,255,255,.04); color:var(--fg); font-size:1.3rem; line-height:1; }
.carousel-controls button:hover{ border-color:var(--accent); color:var(--accent); }
.carousel-dots{ display:flex; gap:.5rem; }
.carousel-dots button{ width:9px; height:9px; padding:0; border-radius:50%; border:none; background:var(--line-strong); }
.carousel-dots button.is-active{ background:var(--accent); width:22px; border-radius:var(--r-pill); transition:.3s var(--ease); }

/* ---------- 14. REVIEWS ---------- */
.reviews-carousel{ max-width:1160px; margin:0 auto; }
.reviews-viewport{ overflow:hidden; padding:.3rem 0; }
.reviews-track{ display:flex; }
.review-slide{ flex:0 0 50%; box-sizing:border-box; padding:0 .65rem; display:flex; }
.review-slide > .review{ width:100%; height:100%; }
@media (max-width:760px){ .review-slide{ flex:0 0 100%; padding:0; } }
.review-slide .review:hover{ transform:none; box-shadow:none; border-color:var(--line-strong); }
.review{ margin:0; padding:0; overflow:hidden; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); display:flex; flex-direction:row; align-items:stretch; transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; }
.review:hover{ box-shadow:var(--shadow-2); border-color:var(--line-strong); }
.review-photo{ flex:0 0 38%; overflow:hidden; background:var(--ink-700); }
.review-photo img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.review:hover .review-photo img{ transform:scale(1.05); }
.review-body{ flex:1; display:flex; flex-direction:column; justify-content:center; padding:1.6rem 1.9rem; }
@media (max-width:620px){
  .review{ flex-direction:column; }
  .review-photo{ flex:0 0 auto; aspect-ratio:16/10; }
}
.review-stars{ color:var(--accent); letter-spacing:.1em; margin-bottom:.8rem; }
.review blockquote{ margin:0 0 1rem; font-size:1.02rem; line-height:1.55; }
.review figcaption{ color:var(--fg-dim); font-size:.88rem; }

/* ---------- 14b. BLOG ---------- */
.blog-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:var(--s-7); }
.blog-head .eyebrow{ margin-bottom:.4rem; }
.blog-head .section-title{ text-align:left; }
.blog-all{ font-size:.92rem; white-space:nowrap; }
.blog-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(290px,1fr)); gap:1.6rem; }
.blog-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; display:flex; flex-direction:column; transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; }
.blog-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-2); border-color:var(--line-strong); }
.blog-media{ display:block; aspect-ratio:16/9; overflow:hidden; background:var(--ink-700); }
.blog-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.blog-card:hover .blog-media img{ transform:scale(1.05); }
.blog-body{ padding:1.4rem 1.4rem 1.5rem; display:flex; flex-direction:column; gap:.7rem; flex:1; }
.blog-cat{ font-size:.72rem; text-transform:uppercase; letter-spacing:.14em; font-weight:700; color:var(--accent); }
.blog-card-title{ font-size:1.3rem; text-transform:uppercase; line-height:1.12; letter-spacing:.01em; }
.blog-card-title a:hover{ color:var(--accent); }
.blog-excerpt{ color:var(--fg-muted); font-size:.92rem; margin:0; flex:1; }
.blog-meta{ display:flex; gap:1.2rem; align-items:center; padding-top:.9rem; border-top:1px solid var(--line); font-size:.82rem; color:var(--fg-dim); }
.blog-date, .blog-read{ display:inline-flex; align-items:center; gap:.45rem; }
.blog-meta svg{ flex:0 0 auto; color:var(--accent); }

/* ---------- 15. FAQ ---------- */
.accordion{ display:flex; flex-direction:column; gap:.7rem; }
.acc-item{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; }
.acc-item summary{ list-style:none; cursor:pointer; padding:1.1rem 1.3rem; font-family:var(--font-display); font-size:1.1rem; line-height:1.3; text-transform:uppercase; letter-spacing:.01em; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.acc-item summary::-webkit-details-marker{ display:none; }
.acc-item summary::after{ content:"+"; color:var(--accent); font-size:1.5rem; line-height:1; align-self:center; margin-top:-2px; transition:transform .25s; }
.acc-item[open] summary::after{ transform:rotate(45deg); }
.acc-body{ padding:0 1.3rem 1.2rem; color:var(--fg-muted); }
.acc-body p{ margin:0; }

/* ---------- 16. BOOKING WIDGET ---------- */
.booking-widget{ max-width:920px; margin:0 auto; background:var(--surface); border:1px solid var(--line-strong); border-radius:var(--r-lg); padding:1.7rem; box-shadow:var(--shadow-2); }
.booking-fields{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-bottom:1.2rem; }
.booking-fields label, .contact-form label{ display:flex; flex-direction:column; gap:.4rem; font-size:.82rem; font-weight:600; color:var(--fg-muted); text-transform:uppercase; letter-spacing:.05em; }
.booking-fields select, .booking-fields input, .contact-form input, .contact-form select, .contact-form textarea{
  background:var(--ink-800); border:1px solid var(--line-strong); color:var(--fg);
  padding:.75rem .85rem; border-radius:var(--r-sm); font-family:inherit; font-size:.95rem; font-weight:400; text-transform:none; letter-spacing:0;
}
.contact-form select, .booking-fields select{ appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='m6 9 6 6 6-6' stroke='%23c8d4d9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .85rem center; background-size:15px; padding-right:2.5rem; }
.booking-fields select:focus, .contact-form :focus{ border-color:var(--accent); outline:none; }
.booking-note{ text-align:center; color:var(--fg-dim); font-size:.82rem; margin:.9rem 0 0; }
.booking-note code{ background:rgba(255,255,255,.07); padding:.1rem .35rem; border-radius:4px; font-size:.85em; }

/* ---------- 17. CONTACT ---------- */
.contact-inner{ display:grid; grid-template-columns:1.05fr 1fr; gap:var(--s-7); }
.contact-info .section-head{ text-align:left; margin:0 0 var(--s-7); max-width:none; }
.contact-info .section-title{ margin-bottom:var(--s-6); }
.contact-info .eyebrow, .contact-info .section-title{ text-align:left; }
.contact-list{ list-style:none; margin:0 0 var(--s-5); padding:0; display:flex; flex-direction:column; gap:1rem; }
.contact-list li{ display:flex; flex-direction:column; gap:.15rem; }
.contact-label{ display:inline-flex; align-items:center; gap:.45rem; font-size:.74rem; text-transform:uppercase; letter-spacing:.12em; color:var(--accent); font-weight:600; }
.contact-label svg{ flex:none; }
.contact-list a:hover{ color:var(--accent); }
.map-embed{ border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); aspect-ratio:16/10; }
.map-embed iframe{ width:100%; height:100%; border:0; filter:grayscale(.4) contrast(1.05) brightness(.9); }
.contact-form{ align-self:start; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.8rem; display:flex; flex-direction:column; gap:1rem; }
.contact-form h3{ font-size:1.5rem; text-transform:uppercase; }
.form-status{ font-size:.88rem; color:var(--accent); margin:.3rem 0 0; min-height:1.2em; }
.form-status:empty{ display:none; }

/* ---------- 18. FOOTER ---------- */
.site-footer{ background:var(--brand); position:relative; }
.footer-main{ padding:var(--s-7) 0 var(--s-5); }
/* "What makes an escape game" SEO explainer */
.nx{ position:relative; overflow:hidden; background:linear-gradient(180deg, transparent 0%, var(--ink-900) 20%, var(--ink-900) 80%, transparent 100%); }
.nx::before{ content:""; position:absolute; inset:0; pointer-events:none; background:url("/assets/pattern.png?v=1") repeat; background-size:320px; opacity:.05; -webkit-mask-image:linear-gradient(180deg, transparent 0, #000 15%, #000 85%, transparent 100%); mask-image:linear-gradient(180deg, transparent 0, #000 15%, #000 85%, transparent 100%); }
.nx-grid{ position:relative; display:grid; grid-template-columns:1fr 1.15fr; gap:var(--s-8); align-items:center; }
.nx-title{ font-family:var(--font-display); font-weight:700; text-transform:uppercase; line-height:1.08; letter-spacing:.01em; color:var(--accent); font-size:clamp(2.1rem, 4.4vw, 3.9rem); max-width:12ch; margin:0; }
.nx-body{ display:flex; flex-direction:column; gap:var(--s-6); }
.nx-item h3{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:.1em; color:var(--accent); font-size:1.1rem; margin:0 0 .55rem; }
.nx-item p{ color:var(--fg-muted); line-height:1.75; margin:0; font-size:1.02rem; }
@media (max-width:820px){ .nx-grid{ grid-template-columns:1fr; gap:var(--s-6); } .nx-title{ max-width:none; } }
.deals-note{ text-align:center; color:var(--fg-muted); font-size:.9rem; max-width:64ch; margin:var(--s-5) auto 0; line-height:1.6; }

/* Ablauf: how-it-works timeline */
.flow .section-title{ color:var(--accent); }
.flow-line{ list-style:none; margin:var(--s-7) auto 0; padding:0; max-width:1000px; position:relative; }
.flow-line::before{ content:""; position:absolute; left:50%; top:12px; bottom:12px; width:2px; background:rgba(255,153,0,.45); transform:translateX(-50%); }
.flow-step{ position:relative; display:grid; grid-template-columns:1fr 72px 1fr; align-items:center; margin-bottom:var(--s-5); }
.flow-dot{ grid-column:2; justify-self:center; width:64px; height:64px; border-radius:50%; background:var(--accent); color:#1a1205; display:flex; align-items:center; justify-content:center; position:relative; z-index:1; }
.flow-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.4rem 1.6rem; }
.flow-card h3{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:.06em; color:var(--accent); margin:0 0 .5rem; font-size:1.05rem; }
.flow-card p{ color:var(--fg-muted); line-height:1.7; margin:0; }
.flow-left .flow-card{ grid-column:1; text-align:right; }
.flow-right .flow-card{ grid-column:3; }
@media (max-width:760px){
  .flow-line::before{ left:32px; }
  .flow-step{ grid-template-columns:64px 1fr; gap:1rem; }
  .flow-dot{ grid-column:1; width:56px; height:56px; }
  .flow-left .flow-card, .flow-right .flow-card{ grid-column:2; text-align:left; }
}

/* Audience: "perfect entertainment for" internal-link grid */
.audience-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; margin-top:var(--s-6); }
@media (max-width:920px){ .audience-grid{ grid-template-columns:repeat(2,1fr); } }
.aud-card{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:.85rem; padding:2.4rem 1.9rem; border-radius:var(--r-lg); background:var(--ink-800); border:1px solid var(--line); color:var(--fg); text-decoration:none; transition:border-color .2s var(--ease), transform .2s var(--ease); }
.aud-card:hover{ border-color:var(--accent); transform:translateY(-3px); }
.aud-ico{ color:#fff; display:flex; }
.aud-card h3{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:.05em; color:#fff; margin:0; font-size:1.35rem; }
.aud-card p{ color:var(--fg-muted); line-height:1.65; margin:0; font-size:.98rem; }
.aud-btn{ margin-top:.5rem; display:inline-block; padding:.7rem 1.4rem; border-radius:var(--r-pill); background:rgba(255,255,255,.1); color:#fff; font-weight:600; font-size:.9rem; transition:background .2s var(--ease), color .2s var(--ease); }
.aud-card:hover .aud-btn{ background:var(--accent); color:#1a1205; }
@media (max-width:760px){ .audience-grid{ grid-template-columns:1fr; } }

/* Repeating brand pattern on header + footer (semi-transparent) */
.site-header::before, .site-footer::before{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:url("/assets/pattern.png?v=1");
  background-repeat:repeat; background-size:285px;
  opacity:.06;
}
.header-inner{ position:relative; z-index:1; }
.site-footer > *{ position:relative; z-index:1; }
.footer-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.4fr; gap:var(--s-6); }
.footer-brand p{ color:var(--fg-muted); font-size:.92rem; max-width:320px; margin:1rem 0; }
.socials{ display:flex; gap:.6rem; }
.socials a{ width:40px; height:40px; border-radius:50%; border:1px solid var(--line); display:grid; place-items:center; color:var(--fg); transition:.2s; }
.socials a:hover{ border-color:var(--accent); color:var(--accent); transform:translateY(-3px); }
.footer-col{ display:flex; flex-direction:column; gap:.7rem; }
.footer-col h4{ font-size:.82rem; text-transform:uppercase; letter-spacing:.12em; color:var(--accent); margin-bottom:.4rem; }
.footer-col a{ color:var(--fg-muted); font-size:.92rem; }
.footer-col a:hover{ color:#fff; }
/* Footer contact column (replaces newsletter) */
.footer-contact .fc-line{ display:flex; align-items:flex-start; gap:.6rem; color:var(--fg-muted); font-size:.92rem; line-height:1.45; }
.footer-contact .fc-line svg{ flex:0 0 auto; margin-top:.15rem; color:var(--accent); }
.footer-contact .fc-line:hover{ color:#fff; }
.fc-hours-title{ margin-top:.6rem; }
.footer-hours{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0; }
.footer-hours li{ display:flex; justify-content:space-between; gap:1rem; padding:.45rem 0; border-bottom:1px solid var(--line); font-size:.9rem; color:var(--fg-muted); }
.footer-hours li span:first-child{ color:var(--fg); }

.newsletter{ display:flex; gap:.5rem; }
.newsletter input{ flex:1; background:var(--ink-800); border:1px solid var(--line-strong); color:var(--fg); padding:.7rem .8rem; border-radius:var(--r-sm); min-width:0; }
.newsletter input:focus{ border-color:var(--accent); outline:none; }
.newsletter-status{ font-size:.84rem; color:var(--accent); min-height:1.1em; margin:.5rem 0 0; }
/* SEO band sits just above the footer (own brand band, included per page) */
.footer-seo-band{ border-top:1px solid var(--line); padding-top:var(--s-8); }
.footer-seo{ display:grid; grid-template-columns:1fr 1fr; gap:1rem var(--s-7); margin-bottom:0; padding-bottom:var(--s-7); border-bottom:1px solid var(--line); }
/* show only the language block matching <html lang> */
.footer-seo[data-seo-lang]{ display:none; }
html[lang="en"] .footer-seo[data-seo-lang="en"],
html[lang="de"] .footer-seo[data-seo-lang="de"]{ display:grid; }
.footer-seo h2{ grid-column:1 / -1; font-size:1.15rem; text-transform:uppercase; letter-spacing:.06em; color:var(--fg); margin-bottom:.4rem; }
.footer-seo-col p{ color:var(--fg-dim); font-size:.88rem; line-height:1.7; margin:0 0 1rem; }
.footer-seo-col strong{ color:var(--fg-muted); font-weight:600; }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; margin-top:var(--s-7); padding-top:var(--s-5); border-top:1px solid var(--line); font-size:.85rem; color:var(--fg-dim); }
.footer-bottom nav{ display:flex; gap:1.3rem; }
.footer-bottom a:hover{ color:var(--accent); }

/* ---------- Special offer slide-up (gift cards) ---------- */
.special{ position:fixed; left:1.2rem; bottom:1.2rem; z-index:96; }
.special-tab{ display:inline-flex; align-items:center; gap:.5rem; background:var(--accent); color:#231a02; font-weight:700; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; padding:.62rem 1.05rem; border:none; border-radius:var(--r-pill); box-shadow:0 10px 28px rgba(0,0,0,.45); cursor:pointer; transition:background .2s, transform .2s var(--ease); }
.special-tab:hover{ background:var(--accent-600); transform:translateY(-2px); }
.special-chev{ transition:transform .3s var(--ease); }
.special.is-open .special-chev{ transform:rotate(180deg); }
.special-panel{
  position:absolute; left:0; bottom:calc(100% + .7rem); width:320px; max-width:calc(100vw - 2.4rem);
  background:var(--surface-2); border:1px solid var(--line-strong); border-radius:var(--r-lg);
  box-shadow:var(--shadow-2); padding:1.2rem;
  opacity:0; visibility:hidden; transform:translateY(14px);
  transition:opacity .25s var(--ease), transform .25s var(--ease), visibility .25s;
}
.special.is-open .special-panel{ opacity:1; visibility:visible; transform:none; }
.special-close{ position:absolute; top:.5rem; right:.5rem; z-index:5; width:30px; height:30px; border-radius:50%; background:rgba(0,0,0,.55); border:1px solid rgba(255,255,255,.28); color:#fff; font-size:1.1rem; line-height:0; padding:0; display:inline-flex; align-items:center; justify-content:center; text-align:center; cursor:pointer; transition:background .2s, transform .2s; }
.special-close:hover{ background:rgba(0,0,0,.82); transform:scale(1.06); }
.special-gc{ aspect-ratio:1.6/1; border-radius:var(--r-md); background:linear-gradient(135deg,#FF9900,#f0901a); color:#231a02; padding:.9rem 1rem; display:flex; flex-direction:column; justify-content:space-between; margin-bottom:.9rem; box-shadow:var(--shadow-1); position:relative; overflow:hidden; }
.special-gc::after{ content:""; position:absolute; inset:0; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); opacity:.06; mix-blend-mode:overlay; }
.special-gc-brand{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:.08em; font-size:1rem; position:relative; }
.special-gc-label{ font-weight:700; text-transform:uppercase; letter-spacing:.05em; font-size:.82rem; align-self:flex-end; position:relative; }
.special-body h3{ font-size:1.2rem; text-transform:uppercase; margin-bottom:.4rem; }
.special-body p{ color:var(--fg-muted); font-size:.88rem; line-height:1.55; margin:0 0 .9rem; }

/* ---------- Geo / location popover (anchored under the city switcher) ---------- */
.geo{ position:fixed; z-index:130; width:min(330px, calc(100vw - 1.4rem)); top:90px; right:1.4rem; }
.geo[hidden]{ display:none; }
.geo-box{ position:relative; background:var(--surface-2); border:1px solid var(--line-strong); border-radius:var(--r-lg); box-shadow:var(--shadow-2); padding:1.5rem 1.3rem 1.3rem; text-align:center; max-height:min(72vh,560px); overflow:auto; }
.geo-box::before{ content:""; position:absolute; top:-7px; right:24px; width:12px; height:12px; background:var(--surface-2); border-left:1px solid var(--line-strong); border-top:1px solid var(--line-strong); transform:rotate(45deg); }
.geo-close{ position:absolute; top:.5rem; right:.7rem; background:none; border:none; color:var(--fg-muted); font-size:1.4rem; line-height:1; cursor:pointer; }
.geo-close:hover{ color:var(--accent); }
.geo-pin{ display:inline-grid; place-items:center; width:48px; height:48px; border-radius:50%; background:rgba(255,153,0,.12); color:var(--accent); margin-bottom:.5rem; }
.geo-pin svg{ width:26px; height:26px; }
.geo-box h3{ font-size:1.2rem; text-transform:uppercase; margin-bottom:.4rem; }
.geo-step > p{ color:var(--fg-muted); font-size:.86rem; margin:0 auto 1rem; }
.geo-actions{ display:flex; flex-direction:column; gap:.5rem; }
.geo-actions .btn{ width:100%; min-width:0; }
.geo-grid{ display:grid; grid-template-columns:1fr; gap:1rem; text-align:left; margin-top:.8rem; }
.geo-region h4{ font-size:.76rem; text-transform:uppercase; letter-spacing:.12em; color:var(--accent); margin-bottom:.6rem; padding-bottom:.4rem; border-bottom:1px solid var(--line); }
.geo-region ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.3rem; }
.geo-region button{ width:100%; text-align:left; background:none; border:1px solid transparent; border-radius:var(--r-sm); color:var(--fg); font-weight:600; font-size:.95rem; padding:.5rem .6rem; cursor:pointer; transition:.15s var(--ease); }
.geo-region button span{ display:block; color:var(--fg-dim); font-weight:400; font-size:.8rem; }
.geo-region button:hover{ border-color:var(--accent); background:rgba(255,153,0,.08); color:var(--accent); }
.geo-region button:hover span{ color:var(--fg-muted); }
@media (max-width:480px){ .geo-grid{ grid-template-columns:1fr; gap:1.1rem; } .geo-box h3{ font-size:1.35rem; } }

/* ---------- 19. REVEAL ANIMATION ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }

/* ---------- 20. RESPONSIVE ---------- */
/* progressive header collapse → hidden items stay reachable via the burger */
@media (max-width:1180px){ .nav-collapsible{ display:none; } }
@media (max-width:1080px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:960px){ .nav-desktop{ display:none; } }
@media (max-width:920px){
  .gift-inner, .contact-inner, .about-inner, .franchise-top{ grid-template-columns:1fr; }
  .about-inner, .franchise-top{ gap:var(--s-6); }
  .franchise-media{ order:-1; }
  .booking-fields{ grid-template-columns:1fr 1fr; }
}
@media (max-width:760px){
  :root{ --header-h:84px; }
  .brand-logo{ width:131px; height:60px; }
  .section{ padding:var(--s-8) 0; }
  .footer-grid{ grid-template-columns:1fr; }
  .footer-seo{ grid-template-columns:1fr; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
}
@media (max-width:640px){ .header-phone-num{ display:none; } .header-phone{ padding:.25rem; } }
@media (max-width:430px){ .header-phone{ display:none; } .header-actions{ gap:.5rem; } }
@media (max-width:480px){
  .booking-fields{ grid-template-columns:1fr; }
  .hero-actions .btn{ flex:1; }
  .room-meta{ grid-template-columns:1fr; }
}

/* ---------- 21. REDUCED MOTION ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; }
  .hero-photo{ animation:none; }
}

/* new gift card — CSS "Magic Edition" credit-card, matches the PNG cards */
.gift-cc{
  position:relative; aspect-ratio:900/568; border-radius:14px; overflow:hidden;
  padding:8% 8% 0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.4rem;
  background:
    radial-gradient(120% 80% at 80% 0%, rgba(139,92,246,.4), transparent 55%),
    linear-gradient(135deg,#2a1550,#150a2c);
  box-shadow:inset 0 0 0 1px rgba(198,181,253,.14);
}
.gift-cc-brand{
  display:flex; align-items:center; gap:.6rem;
  font-family:var(--font-display); font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  font-size:clamp(1.3rem,4.6vw,2.1rem); line-height:.92; color:var(--accent);
}
.gift-cc-tag{ font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.gift-cc-num{ position:absolute; left:8%; bottom:11%; font-family:var(--font-display); letter-spacing:.2em; font-size:clamp(.85rem,2.8vw,1.35rem); color:rgba(255,255,255,.16); }

/* magic wand souvenir accent on the Kids package */
.pkg-wand{
  position:absolute; right:-14px; top:-10px; width:clamp(78px,9vw,120px); height:auto; z-index:3;
  pointer-events:none; transform:rotate(8deg); filter:drop-shadow(0 8px 16px rgba(0,0,0,.45));
  animation:pkg-wand-bob 4.5s ease-in-out infinite;
}
@keyframes pkg-wand-bob{ 0%,100%{ transform:rotate(8deg) translateY(0);} 50%{ transform:rotate(4deg) translateY(-8px);} }
@media (max-width:560px){ .pkg-wand{ width:64px; } }
@media (prefers-reduced-motion: reduce){ .pkg-wand{ animation:none; } }

/* horizontal step-flow (merged into the Why section) */
.flow-row-label{ text-align:center; text-transform:uppercase; letter-spacing:.14em; font-size:.8rem; font-weight:700; color:var(--fg-muted); margin:var(--s-6) 0 var(--s-5); }
.flow-row{ list-style:none; padding:0; margin:0 0 1.4rem; display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; position:relative; }
.flow-row::before{ content:""; position:absolute; top:60px; left:18%; right:18%; height:2px; background:linear-gradient(90deg, transparent, var(--line-strong) 20%, var(--line-strong) 80%, transparent); z-index:0; }
.flow-hstep{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; text-align:center; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:2rem 1.6rem 1.7rem; transition:transform .25s var(--ease), border-color .25s; }
.flow-hstep:hover{ transform:translateY(-4px); border-color:var(--line-strong); }
.flow-hdot{ width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--accent); color:#231a02; box-shadow:0 8px 20px rgba(0,0,0,.35); margin-bottom:1.1rem; }
.flow-hstep h3{ font-size:1.15rem; margin:0 0 .55rem; }
.flow-hstep p{ color:var(--fg-muted); font-size:.95rem; line-height:1.66; margin:0; }
@media (max-width:820px){ .flow-row{ grid-template-columns:1fr; gap:1rem; } .flow-row::before{ display:none; } }

/* iOS safe-area: fill the notch / status-bar strip with the header colour + pattern */
.site-header{ padding-top: env(safe-area-inset-top, 0px); }
.mobile-menu{ padding-top: env(safe-area-inset-top, 0px); }

/* blog: city filter + pagination */
.blog-filters{ justify-content:center; margin-bottom:var(--s-6); }
.blog-pager{ display:flex; gap:.5rem; justify-content:center; margin-top:var(--s-7); flex-wrap:wrap; }
.blog-page{ min-width:42px; height:42px; padding:0 .6rem; border-radius:10px; border:1px solid var(--line); background:var(--surface); color:var(--fg); font-family:var(--font-display,"Oswald",sans-serif); font-weight:600; cursor:pointer; transition:border-color .2s, background .2s, color .2s; }
.blog-page:hover{ border-color:var(--line-strong); }
.blog-page.is-active{ background:var(--accent); color:#231a02; border-color:var(--accent); }

/* Nürnberg merged Why block: consistent round gold icons + no connector line */
.why-merged .flow-row::before{ display:none; }
.why-merged .feature-icon{ width:56px; height:56px; border-radius:50%; background:var(--accent); color:#231a02; }
.why-merged .feature-icon svg{ width:26px; height:26px; }
/* gift "Magic Edition" card inside the special-offer slide-up */
.special-cc{ margin-bottom:1rem; }

/* About block polish: real photo + stats strip + icons on Spiel/Spass/Spannung */
.about-visual{ display:flex; flex-direction:column; gap:1rem; }
.about-visual .about-media{ aspect-ratio:auto; }
.about-visual .about-media img{ aspect-ratio:3/2; }
.about-stats{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,1fr); gap:.7rem; }
.about-stats li{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); padding:.8rem .4rem; display:flex; flex-direction:column; align-items:center; gap:.15rem; text-align:center; }
.about-stats b{ font-family:var(--font-display,"Oswald",sans-serif); font-size:1.25rem; line-height:1; color:var(--accent); }
.about-stats span{ font-size:.68rem; text-transform:uppercase; letter-spacing:.1em; color:var(--fg-muted); }
.about-fact h3{ display:flex; align-items:center; gap:.6rem; }
.about-fact-ico{ width:34px; height:34px; flex:none; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(255,153,0,.13); color:var(--accent); box-shadow:inset 0 0 0 1px rgba(255,153,0,.25); }
@media (max-width:460px){ .about-stats{ grid-template-columns:repeat(2,1fr); } }
.about-stat-flags{ display:flex; gap:.35rem; align-items:center; justify-content:center; }
.about-stat-flags .flag{ width:22px; height:22px; }

/* About: sticky visual column, starts at top of block; 4-room collage */
.about-inner.about-sticky{ align-items:start; }
.about-sticky .about-visual{ position:sticky; top:calc(env(safe-area-inset-top, 0px) + 96px); }
.about-collage{ display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.about-collage img{ width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; display:block; border-radius:var(--r-md); border:1px solid var(--line); filter:saturate(.95) brightness(.96); transition:transform .4s var(--ease), filter .3s; }
.about-collage img:hover{ transform:scale(1.03); filter:saturate(1.05) brightness(1.02); }
@media (max-width:880px){ .about-sticky .about-visual{ position:static; } }
.special-card-img{ display:block; width:100%; height:auto; border-radius:12px; margin-bottom:1rem; box-shadow:0 10px 26px rgba(0,0,0,.45); }
/* offers: full descriptions + condition tag on cards */
.deal-desc{ color:var(--fg-muted); font-size:.9rem; line-height:1.55; margin:.4rem 0 .6rem; }
.deal-cond{ font-size:.68rem; text-transform:uppercase; letter-spacing:.14em; color:var(--accent); font-weight:700; margin:0; }
/* offers inner page rows */
.offer-row{ display:grid; grid-template-columns:.9fr 1.1fr; gap:0; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; }
.offer-row + .offer-row{ margin-top:var(--s-5); }
.offer-row:nth-child(even){ grid-template-columns:1.1fr .9fr; }
.offer-row:nth-child(even) .offer-img{ order:2; }
.offer-img{ min-height:260px; }
.offer-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.offer-body{ padding:2rem 2.2rem; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:.5rem; }
.offer-pct{ font-family:var(--font-display,"Oswald",sans-serif); font-weight:700; font-size:2.4rem; line-height:1; color:var(--accent); }
.offer-body h2{ font-size:1.5rem; text-transform:uppercase; margin:0; }
.offer-body p{ color:var(--fg-muted); line-height:1.65; margin:.3rem 0 .4rem; }
@media (max-width:760px){ .offer-row, .offer-row:nth-child(even){ grid-template-columns:1fr; } .offer-row:nth-child(even) .offer-img{ order:0; } .offer-img{ min-height:200px; } }
/* merged events+audience grid: photo cards with full SEO texts, 3 per row */
.events-grid--merged{ grid-template-columns:repeat(3,1fr); }
.events-grid--merged .event-body p{ font-size:.92rem; }
@media (max-width:980px){ .events-grid--merged{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .events-grid--merged{ grid-template-columns:1fr; } }
.about-copy .about-actions{ margin-top:var(--s-5); }
/* offer validity chip */
.deal-cond{ display:inline-flex; align-items:center; gap:.45rem; background:var(--accent); color:#231a02; border:0; border-radius:var(--r-pill); padding:.4rem .95rem; width:auto; align-self:center; font-weight:800; letter-spacing:.06em; font-size:.72rem; box-shadow:0 6px 16px rgba(255,153,0,.25); }
.deal-cond svg{ stroke:#231a02; }
.offer-body .deal-cond{ align-self:flex-start; margin-top:.2rem; }
/* angebote page: offers as 2-per-row cards */
.offers-2up{ display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; }
.offers-2up .offer-row, .offers-2up .offer-row:nth-child(even){ grid-template-columns:1fr; margin-top:0; }
.offers-2up .offer-row:nth-child(even) .offer-img{ order:0; }
.offers-2up .offer-img{ min-height:0; aspect-ratio:4/3; }
.offers-2up .offer-body{ padding:1.6rem 1.8rem 1.8rem; }
@media (max-width:760px){ .offers-2up{ grid-template-columns:1fr; } }
p.deal-cond, .deal-cond span, .offer-body p.deal-cond, .deal-body p.deal-cond{ color:#231a02; }
/* visually separate the About/explainer block from the rooms grid above */
.about-sep{ background:linear-gradient(180deg, var(--ink-800), var(--ink-900)); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
/* why-merged: unify both card rows (flow steps + feature cards) */
.why-merged .flow-hstep{ align-items:flex-start; text-align:left; padding:1.6rem 1.5rem; }
.why-merged .flow-hdot{ width:56px; height:56px; margin-bottom:1rem; box-shadow:none; }
.why-merged .flow-hstep h3, .why-merged .feature h3{ font-family:var(--font-display,"Oswald",sans-serif); font-size:1.05rem; text-transform:uppercase; letter-spacing:.03em; margin:0 0 .5rem; }
.why-merged .flow-hstep p, .why-merged .feature p{ font-size:.94rem; line-height:1.62; margin:0; color:var(--fg-muted); }
.why-merged .feature{ padding:1.6rem 1.5rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); }
.why-merged .feature-icon{ margin-bottom:1rem; }
/* merged events grid: card links styled as buttons */
.events-grid--merged .link-arrow{ display:inline-flex; align-items:center; gap:.4rem; margin-top:auto; align-self:flex-start; padding:.55rem 1.2rem; border:0; border-radius:var(--r-pill); background:var(--accent); color:#231a02; font-weight:700; font-size:.86rem; text-decoration:none; transition:filter .2s; }
.events-grid--merged .link-arrow:hover{ filter:brightness(1.06); }
/* kontakt: maps link as a small button */
.maps-link{ display:inline-flex; align-self:flex-start; width:auto; align-items:center; gap:.45rem; margin-top:.5rem; padding:.5rem 1rem; border:1px solid var(--accent); border-radius:var(--r-pill); color:var(--accent); font-weight:600; font-size:.86rem; text-decoration:none; transition:background .2s, color .2s, border-color .2s; }
.maps-link svg, .maps-link span{ transition:color .2s; }
.maps-link:hover{ background:var(--accent); border-color:var(--accent); }
.maps-link:hover, .maps-link:hover span, .maps-link:hover svg{ color:#231a02; }
/* homepage offer badges: compact + spacing from text (match angebote page) */
.deal-body .deal-cond{ margin-top:.85rem; font-size:.64rem; padding:.34rem .8rem; letter-spacing:.1em; }
.deal-body .deal-cond svg{ width:11px; height:11px; }

/* offers 2up: equal image heights regardless of body length */
.offers-2up .offer-row{ display:flex; flex-direction:column; }
.offers-2up .offer-img{ aspect-ratio:4/3; flex:0 0 auto; width:100%; height:auto; }
.offers-2up .offer-body{ flex:1 1 auto; }

/* ─── Gift builder widget ─── */
.gw{ display:grid; grid-template-columns:1.4fr .9fr; gap:var(--s-6); align-items:start; }
.gw-step{ margin-bottom:var(--s-5); }
.gw-h{ display:flex; align-items:center; gap:.6rem; font-family:var(--font-display,"Oswald",sans-serif); text-transform:uppercase; font-size:1.05rem; margin:0 0 .9rem; }
.gw-n{ width:26px; height:26px; border-radius:50%; background:var(--accent); color:#231a02; display:inline-flex; align-items:center; justify-content:center; font-size:.85rem; font-weight:800; }
.gw-cats{ display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:.9rem; }
.gw-cat{ padding:.35rem .85rem; border-radius:var(--r-pill); border:1px solid var(--line); background:transparent; color:var(--fg-muted); font:inherit; font-size:.82rem; cursor:pointer; transition:.15s; }
.gw-cat.is-active{ background:var(--accent); border-color:var(--accent); color:#231a02; font-weight:700; }
.gw-designs{ display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem; }
.gw-design{ padding:0; border:2px solid transparent; border-radius:var(--r-md); overflow:hidden; background:var(--ink-800); cursor:pointer; aspect-ratio:16/10; }
.gw-design img{ width:100%; height:100%; object-fit:cover; display:block; }
.gw-design.is-active{ border-color:var(--accent); box-shadow:0 0 0 3px rgba(255,153,0,.22); }
.gw-design.is-hidden{ display:none; }
.gw-amounts{ display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }
.gw-amt{ padding:.55rem 1.1rem; border-radius:var(--r-pill); border:1px solid var(--line); background:transparent; color:var(--fg); font:inherit; font-weight:600; cursor:pointer; transition:.15s; }
.gw-amt.is-active{ background:var(--accent); border-color:var(--accent); color:#231a02; }
.gw-custom{ display:inline-flex; align-items:center; gap:.3rem; border:1px solid var(--line); border-radius:var(--r-pill); padding:.15rem .6rem .15rem .9rem; }
.gw-custom input{ width:70px; background:transparent; border:0; color:var(--fg); font:inherit; font-weight:600; }
.gw-custom input:focus{ outline:none; }
.gw-delivery{ display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
.gw-radio{ display:flex; flex-direction:column; gap:.2rem; padding:.9rem 1rem; border:1px solid var(--line); border-radius:var(--r-md); cursor:pointer; transition:.15s; }
.gw-radio input{ position:absolute; opacity:0; pointer-events:none; }
.gw-radio.is-active{ border-color:var(--accent); background:rgba(255,153,0,.06); }
.gw-radio-t{ font-weight:700; }
.gw-radio-d{ font-size:.8rem; color:var(--fg-muted); }
.gw-fields{ display:grid; gap:.6rem; }
.gw-fields input, .gw-fields textarea{ width:100%; font:inherit; color:var(--fg); background:var(--ink-800); border:1px solid var(--line); border-radius:var(--r-md); padding:.7rem .9rem; resize:vertical; }
.gw-fields input:focus, .gw-fields textarea:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(255,153,0,.2); }
.gw-preview{ position:sticky; top:96px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.3rem; }
.gw-preview-card{ border-radius:var(--r-md); overflow:hidden; margin-bottom:1rem; aspect-ratio:16/10; background:var(--ink-800); }
.gw-preview-card img{ width:100%; height:100%; object-fit:cover; display:block; }
.gw-summary{ list-style:none; margin:0 0 1.1rem; padding:0; display:grid; gap:.55rem; }
.gw-summary li{ display:flex; justify-content:space-between; gap:1rem; font-size:.92rem; border-bottom:1px solid var(--line); padding-bottom:.5rem; }
.gw-summary span{ color:var(--fg-muted); }
.gw-submit{ width:100%; justify-content:center; }
.gw-note{ text-align:center; margin:.8rem 0 0; font-size:.85rem; }
.gw-note a{ color:var(--fg-muted); }
@media (max-width:860px){ .gw{ grid-template-columns:1fr; } .gw-preview{ position:static; } }
@media (max-width:520px){ .gw-delivery{ grid-template-columns:1fr; } }
/* FAQ answer wrapped in <a> for SEO indexing, must not look/behave like a link */
.acc-link{ color:inherit; text-decoration:none; display:block; cursor:default; }
/* gift advantages: cooler cards */
#advantages .feat-card{ transition:transform .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease); }
#advantages .feat-card:hover{ transform:translateY(-6px); border-color:var(--accent); box-shadow:0 18px 40px rgba(0,0,0,.35); }
#advantages .feat-ico{ transition:transform .25s var(--ease); }
#advantages .feat-card:hover .feat-ico{ transform:scale(1.1) rotate(-4deg); }
/* gift advantages: clean 4-col grid */
.adv-grid{ grid-template-columns:repeat(4,1fr); }
@media (max-width:1000px){ .adv-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .adv-grid{ grid-template-columns:1fr; } }
/* gift box cards: photo on top, button pinned to bottom */
#boxen .opt-card{ display:flex; flex-direction:column; }
#boxen .opt-card .btn{ margin-top:auto; }
.opt-media{ display:block; border-radius:var(--r-md); overflow:hidden; margin-bottom:1rem; aspect-ratio:16/10; background:var(--ink-800); }
.opt-media img{ width:100%; height:100%; object-fit:cover; display:block; }

.special-promo{ display:flex; align-items:center; gap:.5rem; margin:0 0 .8rem; padding:.6rem .85rem; background:linear-gradient(90deg, rgba(255,153,0,.16), rgba(255,153,0,.06)); color:var(--accent); font-weight:700; font-size:.82rem; line-height:1.35; letter-spacing:.01em; border:1px solid rgba(255,153,0,.4); border-radius:12px; }
.special-promo::before{ content:""; flex:none; width:8px; height:8px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px rgba(255,153,0,.18); }
/* Before/After slider (DIY box) */
.ba{ position:relative; border-radius:var(--r-md); overflow:hidden; margin-bottom:1rem; aspect-ratio:16/10; background:var(--ink-800); user-select:none; }
.ba-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.ba-before{ position:absolute; inset:0; clip-path:inset(0 50% 0 0); will-change:clip-path; }

.ba-divider{ position:absolute; top:0; bottom:0; left:50%; width:2px; background:var(--accent); transform:translateX(-1px); pointer-events:none; }
.ba-handle{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:38px; height:38px; border-radius:50%; background:var(--accent); display:flex; align-items:center; justify-content:center; box-shadow:0 4px 12px rgba(0,0,0,.4); }
.ba-range{ position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; }
.ba-label{ position:absolute; bottom:8px; font-size:.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#fff; background:rgba(3,18,24,.7); padding:.15rem .5rem; border-radius:var(--r-pill); pointer-events:none; }
.ba-label-l{ left:8px; } .ba-label-r{ right:8px; }
/* Gift box option cards: button not full-width, keep gap above button */
#boxen .opt-card .btn{ align-self:flex-start; margin-top:auto; }
#boxen .opt-card > p{ margin-bottom:1.25rem; }
/* Gift hero */
.gift-hero{ position:relative; overflow:visible; padding-bottom:9rem; isolation:isolate; }
.gift-hero::before{ content:""; position:absolute; inset:0; z-index:-2; background:url("/assets/gift/hero-bg.jpg") center 30%/cover no-repeat; opacity:.5; }
.gift-hero::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(4,33,43,.96) 0%, rgba(4,33,43,.82) 45%, rgba(4,33,43,.45) 100%), linear-gradient(180deg, rgba(4,33,43,.25), rgba(4,33,43,.92) 92%); }
.gift-hero .breadcrumb{ padding:0; margin:0 0 1rem; }
.gift-hero-inner{ display:grid; grid-template-columns:1.02fr .98fr; gap:var(--s-5); align-items:center; }
.gift-hero .hero-title{ margin:.35rem 0 1rem; text-shadow:none; }
.gift-hero-lead{ color:var(--fg-muted); font-size:1.06rem; line-height:1.6; max-width:40ch; margin:0 0 1.7rem; }
.gift-hero .ev-hero-cta{ display:flex; flex-wrap:wrap; gap:.75rem; }
.gift-hero-media{ position:relative; width:100%; max-width:520px; margin-inline:auto; aspect-ratio:4/3; }
.gh-card{ position:absolute; top:50%; left:50%; width:66%; height:auto; border-radius:14px; transform-origin:center center; box-shadow:0 24px 50px rgba(0,0,0,.5); }
.gh-card--back{ z-index:1; transform:translate(calc(-50% - 74px), calc(-50% - 30px)) rotate(-17deg); }
.gh-card--mid{ z-index:2; transform:translate(calc(-50% - 20px), calc(-50% - 6px)) rotate(-6deg); }
.gh-card--front{ z-index:3; transform:translate(calc(-50% + 54px), calc(-50% + 20px)) rotate(8deg); box-shadow:0 30px 60px rgba(0,0,0,.6); }
@media (max-width:820px){
  .gift-hero-inner{ grid-template-columns:1fr; gap:var(--s-4); }
  .gift-hero-media{ order:-1; max-width:420px; }
  .gift-hero-lead{ max-width:none; }
}

/* Gift design marquee (hero seam) */
.gift-marquee{ position:relative; z-index:3; margin-top:-95px; margin-bottom:-85px; overflow:hidden; padding:.4rem 0 1.2rem; -webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
.gift-marquee-track{ display:flex; gap:1.1rem; width:max-content; animation:giftMarquee 46s linear infinite; }
.gift-marquee:hover .gift-marquee-track{ animation-play-state:paused; }
.gm-card{ flex:none; width:232px; aspect-ratio:16/10; border-radius:var(--r-md); overflow:hidden; border:1px solid var(--line); box-shadow:none; cursor:pointer; text-decoration:none; transition:transform .3s var(--ease), border-color .3s var(--ease); }
@media (max-width:600px){ .gm-card{ width:200px; } }
.gm-card img{ width:100%; height:100%; object-fit:cover; display:block; }
.gm-card:hover{ transform:translateY(-5px); border-color:var(--accent); }
@keyframes giftMarquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .gift-marquee-track{ animation:none; } }
/* balance the breathing room so the strip reads as a divider centred on the seam */
.gift-marquee + #advantages{ padding-top:7.6rem; }
.special-close svg{ display:block; }

/* room card hover trailer */
.room-media{ position:relative; }
.room-hover-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .35s var(--ease); pointer-events:none; }
.room-card:hover .room-hover-video.is-playing, .room-card:focus-within .room-hover-video.is-playing{ opacity:1; }


/* combo packs page: reference-style cards */
.cp-chips{ display:flex; gap:.5rem; margin:0 0 .9rem; flex-wrap:wrap; }
.cp-chip{ display:inline-flex; align-items:center; padding:.32rem .8rem; border-radius:var(--r-pill); font-size:.78rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; border:1px solid rgba(255,153,0,.45); color:var(--accent); background:rgba(255,153,0,.1); }
.cp-chip--hot{ background:var(--accent); color:#231a02; border-color:var(--accent); }
.pack-sec{ display:block; margin:1.1rem 0 .4rem; font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--fg-dim); }
.pack-note{ margin:0 0 .4rem; font-size:.85rem; color:var(--accent); font-weight:600; }
.pack-rooms li span{ color:var(--fg-muted); }
.pack-meta{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:1rem; padding-top:.9rem; border-top:1px dashed var(--line); font-size:.86rem; color:var(--fg-muted); }
.pack-meta > span{ display:inline-flex; align-items:center; gap:.45rem; }
.pack-meta svg{ color:var(--accent); flex:none; }
.pack-price{ margin:.9rem 0 1rem; font-size:1.05rem; color:var(--fg-muted); }
.pack-price s{ opacity:.55; margin:0 .25rem; }
.pack-price strong{ font-family:var(--font-display); font-size:1.9rem; color:var(--accent); margin-right:.25rem; }
.cp-band{ background:var(--accent); padding:2.2rem 0; }
.cp-band-inner{ display:flex; align-items:center; justify-content:space-between; gap:1.2rem; flex-wrap:wrap; }
.cp-band h2{ margin:0; color:#231a02; font-size:clamp(1.4rem,3vw,2rem); text-transform:uppercase; }
.btn-dark{ background:#0b2531; color:#fff; border:1px solid #0b2531; }
.btn-dark:hover{ background:#083849; }

/* blog meta: icons, date left / read time right */
.blog-meta{ display:flex; justify-content:space-between; align-items:center; gap:.6rem; }
.bm-item{ display:inline-flex; align-items:center; gap:.4rem; white-space:nowrap; }
.bm-item svg{ color:var(--accent); flex:none; }

/* enquiry form UX (event pages) */
.fld-date-wrap{ position:relative; display:block; }
.fld-date-wrap > svg{ position:absolute; right:.85rem; top:50%; transform:translateY(-50%); color:var(--accent); pointer-events:none; }
.fld-date-wrap input[type="date"]{ width:100%; padding-right:2.6rem; }
.fld-date-wrap input[type="date"]::-webkit-calendar-picker-indicator{ position:absolute; inset:0; width:auto; height:auto; opacity:0; cursor:pointer; }
.stepper{ display:flex; align-items:stretch; width:100%; }
.stepper input[type="number"]{ text-align:center; flex:1; min-width:0; border-radius:0; -moz-appearance:textfield; }
.stepper input::-webkit-outer-spin-button, .stepper input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.stepper button{ width:46px; flex:none; background:var(--surface); border:1px solid var(--line-strong); color:var(--accent); font-size:1.25rem; font-weight:700; cursor:pointer; transition:background .15s; }
.stepper button:first-child{ border-radius:12px 0 0 12px; border-right:0; }
.stepper button:last-child{ border-radius:0 12px 12px 0; border-left:0; }
.stepper button:hover{ background:rgba(255,153,0,.15); }
.enq-form textarea{ min-height:170px; }
.enq-form .is-invalid{ border-color:#e5484d !important; box-shadow:0 0 0 3px rgba(229,72,77,.14); }
.fld-err{ display:block; margin-top:.35rem; color:#ff8589; font-size:.82rem; }
/* enquiry map (kontakt-style) */
.enq-map{ position:relative; z-index:0; isolation:isolate; margin-top:var(--s-5); border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); aspect-ratio:16/11; }
.enq-leaflet{ position:absolute; inset:0; background:#0b1f28; }
.enq-leaflet .leaflet-tile-pane{ filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.92) sepia(.5) saturate(1.7) hue-rotate(-14deg); }
.enq-leaflet .leaflet-control-attribution{ background:rgba(6,26,34,.55); color:rgba(255,255,255,.45); font-size:9px; }
.kt-map-badge{ position:absolute; left:14px; bottom:14px; z-index:500; background:rgba(6,26,34,.86); backdrop-filter:blur(4px); border:1px solid var(--line); border-radius:var(--r-md); padding:.75rem .9rem; display:grid; gap:.12rem; max-width:min(88%,320px); }
.kt-map-badge strong{ font-size:.95rem; }
.kt-map-badge > span{ color:var(--fg-muted); font-size:.82rem; }
.kt-map-actions{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.55rem; }
.kt-map-btn{ display:inline-flex; align-items:center; gap:.4rem; padding:.38rem .75rem; border-radius:var(--r-pill); border:1px solid var(--line-strong); color:var(--fg); font-size:.8rem; font-weight:600; text-decoration:none; transition:.15s; }
.kt-map-btn--accent{ background:var(--accent); border-color:var(--accent); }
.kt-map-btn--accent, .kt-map-btn--accent span, .kt-map-btn--accent svg{ color:#231a02; }
.hp-pin .hp-pin-inner{ display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50% 50% 50% 0; background:var(--accent); transform:rotate(-45deg); box-shadow:0 8px 18px rgba(0,0,0,.5); }
.hp-pin .hp-pin-inner img{ width:20px; height:20px; object-fit:contain; transform:rotate(45deg); }

/* event cards: whole card clickable via stretched link */
a.event-card{ color:inherit; text-decoration:none; cursor:pointer; }
.events-grid .event-card:hover{ transform:none; border-color:var(--line-strong); box-shadow:0 14px 34px rgba(0,0,0,.35); }

/* map enlarge button + fullscreen modal (shared) */
.kt-map-expand{ position:absolute; top:14px; right:14px; z-index:500; width:38px; height:38px; padding:0; border-radius:50%; border:1px solid var(--line-strong); background:rgba(6,26,34,.86); backdrop-filter:blur(4px); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:.15s; }
.kt-map-expand:hover{ border-color:var(--accent); color:var(--accent); }
.kt-mapmodal{ position:fixed; inset:0; z-index:2000; background:rgba(3,16,21,.9); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; padding:clamp(12px,3vw,40px); }
.kt-mapmodal[hidden]{ display:none; }
.kt-mapmodal-inner{ width:min(1200px,100%); height:min(80vh,820px); border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line-strong); box-shadow:0 30px 80px rgba(0,0,0,.6); }
#enqLeafletBig, #ktLeafletBig{ width:100%; height:100%; background:#0b1f28; }
#enqLeafletBig .leaflet-tile-pane, #ktLeafletBig .leaflet-tile-pane{ filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.92) sepia(.5) saturate(1.7) hue-rotate(-14deg); }
.kt-mapmodal-close{ position:absolute; top:18px; right:18px; z-index:2; width:38px; height:38px; border-radius:50%; border:1px solid var(--line-strong); background:rgba(0,0,0,.55); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.kt-mapmodal-close:hover{ border-color:var(--accent); color:var(--accent); }

/* featured pack: bestseller-style flag on the photo */
.pack-media{ position:relative; }
.pack-flag{ position:absolute; top:.8rem; right:.8rem; z-index:2; font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.1em; padding:.3rem .6rem; border-radius:var(--r-pill); background:var(--accent); color:#231a02; }

/* event page hero with a photo backdrop */
.page-hero.has-photo{ position:relative; isolation:isolate; min-height:calc(100vh - var(--header-h, 72px)); display:flex; align-items:flex-end; padding-bottom:clamp(2.5rem, 7vh, 5rem); text-align:left; }
.page-hero.has-photo .cp-chips, .page-hero.has-photo .cp-hero-cta, .page-hero.has-photo .ev-hero-cta{ justify-content:flex-start; }
.page-hero.has-photo .page-hero-lead{ margin-inline:0; }
.page-hero.has-photo > .container{ width:min(100% - 2.5rem, var(--container)); margin-inline:auto; }
.page-hero.has-photo::before{ content:""; position:absolute; inset:0; z-index:-2; background:var(--hero-img) center 32%/cover no-repeat; opacity:.8; }
.page-hero.has-photo::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(4,33,43,.82) 0%, rgba(4,33,43,.55) 45%, rgba(4,33,43,.2) 100%), linear-gradient(180deg, rgba(4,33,43,.15), rgba(4,33,43,.9) 96%); }

.blog-card-body h3{ text-transform:uppercase; font-size:1.25rem; line-height:1.14; letter-spacing:.01em; }

/* help block directly after the FAQ list, same width */
.accordion ~ .help-cta, details ~ .help-cta{ margin-top:var(--s-5); }

/* pack cards: keep the CTA off the meta row */
.pack-card .pack-meta{ margin-bottom:1.2rem; }

/* summer AC tip band */
.summer-tip{ display:flex; gap:1.3rem; align-items:flex-start; background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:var(--r-lg); padding:1.6rem 1.7rem; }
.summer-ico{ flex:none; width:56px; height:56px; border-radius:50%; background:rgba(255,153,0,.14); color:var(--accent); display:flex; align-items:center; justify-content:center; }
.summer-badge{ display:inline-block; margin-bottom:.5rem; padding:.28rem .7rem; border-radius:var(--r-pill); background:var(--accent); color:#231a02; font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.summer-tip-text h2{ font-family:var(--font-display); text-transform:uppercase; font-size:1.25rem; margin:0 0 .45rem; }
.summer-tip-text p{ margin:0; color:var(--fg-muted); line-height:1.6; }
@media (max-width:560px){ .summer-tip{ flex-direction:column; } }

/* branded scrollbars (page + inner scrollers) */
html{ scrollbar-width:thin; scrollbar-color:rgba(255,153,0,.55) #062430; }
body *{ scrollbar-width:thin; scrollbar-color:rgba(255,153,0,.55) #062430; }
html::-webkit-scrollbar, body *::-webkit-scrollbar{ width:10px; height:10px; }
html::-webkit-scrollbar-track, body *::-webkit-scrollbar-track{ background:#062430; }
html::-webkit-scrollbar-thumb, body *::-webkit-scrollbar-thumb{ background:rgba(255,153,0,.5); border-radius:99px; border:2px solid #062430; }
html::-webkit-scrollbar-thumb:hover, body *::-webkit-scrollbar-thumb:hover{ background:var(--accent); }

/* uppercase card titles (feature / arrival / delivery-option cards) */
.feat-card h3, .kt-arrive-card h3, .opt-card h3{ text-transform:uppercase; letter-spacing:.01em; }
