/* Treforest Escape Rooms - site styles */

:root {
 /* Lifted cinematic palette - charcoal, not near-black */
 --bg-deep: #161a22;
 --bg-panel: #1e2430;
 --bg-elevated: #272e3c;
 --border: rgba(255, 245, 230, 0.1);
 --border-accent: rgba(141, 198, 63, 0.32);
 --text: #f2eee6;
 --text-muted: #a9a39a;
 --accent: #8dc63f;
 --accent-bright: #a8e053;
 --accent-dim: rgba(141, 198, 63, 0.12);
 --danger: #c44c3d;
 --glow: 0 0 28px rgba(141, 198, 63, 0.08);
 --shadow-card: 0 12px 36px rgba(0, 0, 0, 0.28);
 --shadow-accent: 0 6px 24px rgba(141, 198, 63, 0.18);
 --font-display: "Bebas Neue", "Impact", sans-serif;
 --font-body: "Barlow", "Avenir Next", "Segoe UI", sans-serif;
 --font-ui: "Barlow", "Avenir Next", "Segoe UI", sans-serif;
 /* Locked type ladder — use everywhere */
 --text-nav: 0.875rem;
 --text-nav-weight: 600;
 --text-eyebrow: 0.72rem;
 --text-h1-hero: clamp(2.7rem, 6.8vw, 4.1rem);
 --text-h1-page: clamp(2.15rem, 5vw, 3.05rem);
 --text-section: clamp(1.85rem, 3.8vw, 2.45rem);
 --text-card-title: clamp(1.45rem, 2.5vw, 1.8rem);
 --text-subhead: clamp(1.05rem, 1.6vw, 1.2rem);
 --text-lead: 1.05rem;
 --text-body: 0.98rem;
 --text-small: 0.875rem;
 --letter-display: 0.04em;
 --radius: 10px;
 --radius-lg: 14px;
 --header-h: 88px;
 --nav-mobile-max: 1100px;
 --section-space: 3.25rem;
 --section-header-space: 1.85rem;
 --max: 1120px;
 --ink-on-accent: #1a1406;
}

*,
*::before,
*::after {
 box-sizing: border-box;
}

html {
 scroll-behavior: smooth;
}

body {
 margin: 0;
 font-family: var(--font-body);
 font-size: 17px;
 line-height: 1.65;
 color: var(--text);
 background: var(--bg-deep);
 min-height: 100vh;
}

body::before {
 content: "";
 position: fixed;
 inset: 0;
 pointer-events: none;
 background:
 radial-gradient(ellipse 90% 45% at 50% -15%, rgba(255, 236, 210, 0.05), transparent 50%),
 radial-gradient(ellipse 60% 40% at 85% 20%, rgba(141, 198, 63, 0.04), transparent 55%),
 linear-gradient(180deg, rgba(22, 26, 34, 0) 0%, var(--bg-deep) 100%);
 z-index: -1;
}

img {
 max-width: 100%;
 height: auto;
 display: block;
}

a {
 color: var(--accent-bright);
 text-decoration-thickness: 1px;
 text-underline-offset: 3px;
}

a:hover {
 color: #f0ffd9;
}

.site-header {
 position: sticky;
 top: 0;
 z-index: 100;
 height: var(--header-h);
 background: rgba(22, 26, 34, 0.92);
 backdrop-filter: blur(14px);
 border-bottom: 1px solid var(--border);
 box-shadow: 0 6px 24px rgba(0, 0, 0, 0.22);
}

.site-header::after {
 content: "";
 position: absolute;
 left: 0;
 right: 0;
 bottom: 0;
 height: 1px;
 background: linear-gradient(
 90deg,
 transparent 0%,
 rgba(141, 198, 63, 0.35) 50%,
 transparent 100%
 );
 pointer-events: none;
}

.header-inner {
 max-width: var(--max);
 margin: 0 auto;
 padding: 0 1.25rem;
 height: 100%;
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 1rem;
}

.logo {
 display: flex;
 align-items: center;
 text-decoration: none;
 color: var(--text);
}

.logo-img {
 display: block;
 height: 68px;
 width: auto;
 max-width: min(480px, 88vw);
 object-fit: contain;
 object-position: left center;
}

@media (max-width: 900px) {
 .logo-img {
 height: 44px;
 max-width: min(200px, calc(100vw - 12.5rem));
 }
}

@media (max-width: 480px) {
 .logo-img {
 height: 40px;
 max-width: min(168px, calc(100vw - 12rem));
 }
}

.site-footer .logo-img {
 height: 56px;
 max-width: 400px;
}

@media (max-width: 480px) {
 .site-footer .logo-img {
 height: 46px;
 max-width: min(320px, 92vw);
 }
}

.nav-desktop {
 display: flex;
 align-items: center;
 gap: 0.25rem;
}

.nav-desktop a {
 color: var(--text-muted);
 text-decoration: none;
 font-size: var(--text-nav);
 font-weight: var(--text-nav-weight);
 letter-spacing: 0.05em;
 text-transform: uppercase;
 padding: 0.5rem 0.85rem;
 border-radius: 6px;
 transition: color 0.2s, background 0.2s;
}

.nav-desktop > a {
 white-space: nowrap;
 flex-shrink: 0;
 line-height: 1.2;
 text-align: center;
}

.nav-desktop a:hover {
 color: var(--text);
 background: rgba(255, 255, 255, 0.05);
}

.nav-desktop a.nav-cta {
 background: linear-gradient(180deg, var(--accent-bright) 0%, #6ea126 100%);
 color: var(--ink-on-accent);
 border: none;
 font-weight: var(--text-nav-weight);
 white-space: nowrap;
 flex-shrink: 0;
 line-height: 1.2;
 padding: 0.5rem 1rem;
 box-shadow: 0 2px 12px rgba(141, 198, 63, 0.22);
 animation: navCtaPulse 2.6s ease-in-out infinite;
}

.nav-desktop a.nav-cta:hover {
 background: linear-gradient(180deg, #b8ef5a 0%, #7db32a 100%);
 color: var(--ink-on-accent);
 box-shadow: 0 4px 16px rgba(141, 198, 63, 0.3);
 animation: none;
}

.nav-desktop a.nav-cta:focus-visible {
 animation: none;
}

@keyframes navCtaPulse {
 0%,
 100% {
 box-shadow: 0 2px 10px rgba(141, 198, 63, 0.2);
 transform: scale(1);
 }
 50% {
 box-shadow: 0 3px 16px rgba(141, 198, 63, 0.42);
 transform: scale(1.045);
 }
}

@media (prefers-reduced-motion: reduce) {
 .nav-desktop a.nav-cta {
 animation: none;
 }
}

@media (max-width: 1100px) {
 .nav-desktop a.nav-cta {
 animation: none;
 transform: none;
 }
}

.nav-desktop a.nav-contact[aria-current="page"] {
 color: var(--accent-bright);
}

.nav-label-short {
 display: none;
}

.nav-rooms {
 position: relative;
}

.nav-rooms-trigger {
 display: inline-flex;
 align-items: center;
 gap: 0.35rem;
 color: var(--text-muted);
 font-family: inherit;
 font-size: var(--text-nav);
 font-weight: var(--text-nav-weight);
 letter-spacing: 0.05em;
 text-transform: uppercase;
 padding: 0.5rem 0.85rem;
 border-radius: 6px;
 border: none;
 background: transparent;
 cursor: pointer;
 transition: color 0.2s, background 0.2s;
}

.nav-rooms-trigger:hover,
.nav-rooms.is-open .nav-rooms-trigger {
 color: var(--text);
 background: rgba(255, 255, 255, 0.05);
}

.nav-rooms-chevron {
 transition: transform 0.2s ease;
}

.nav-rooms.is-open .nav-rooms-chevron {
 transform: rotate(180deg);
}

.nav-rooms-menu {
 position: absolute;
 top: calc(100% + 0.35rem);
 left: 0;
 z-index: 120;
 min-width: 17.5rem;
 padding: 0.65rem;
 background: rgba(30, 36, 48, 0.98);
 border: 1px solid var(--border);
 border-radius: var(--radius);
 box-shadow: var(--shadow-card);
 opacity: 0;
 visibility: hidden;
 transform: translateY(-6px);
 transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
}

.nav-rooms.is-open .nav-rooms-menu,
.nav-rooms:hover .nav-rooms-menu {
 opacity: 1;
 visibility: visible;
 transform: translateY(0);
}

.nav-rooms-group + .nav-rooms-group {
 margin-top: 0.55rem;
 padding-top: 0.55rem;
 border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.nav-rooms-label {
 margin: 0 0 0.35rem;
 padding: 0 0.55rem;
 color: var(--accent-bright);
 font-size: 0.68rem;
 font-weight: 700;
 letter-spacing: 0.12em;
 text-transform: uppercase;
}

.nav-rooms-menu a {
 display: block;
 padding: 0.45rem 0.55rem;
 border-radius: 6px;
 color: var(--text);
 text-decoration: none;
 font-size: var(--text-small);
 font-weight: 500;
 letter-spacing: 0;
 text-transform: none;
 transition: background 0.2s, color 0.2s;
}

.nav-rooms-menu a:hover {
 background: rgba(255, 255, 255, 0.06);
 color: var(--text);
}

.nav-rooms-all {
 display: block;
 margin-top: 0.55rem;
 padding: 0.55rem 0.55rem 0.35rem;
 border-top: 1px solid rgba(255, 255, 255, 0.08);
 color: var(--accent-bright) !important;
 font-size: 0.82rem !important;
 font-weight: 600 !important;
 letter-spacing: 0.04em;
 text-transform: uppercase;
}

@media (max-width: 1180px) {
 /* Keep full “Book now” label. short swap retired */
 .nav-label-long {
 display: inline;
 }

 .nav-label-short {
 display: none;
 }
}

.trust-row {
 border-block: 1px solid var(--border);
 background: linear-gradient(
 90deg,
 transparent 0%,
 rgba(141, 198, 63, 0.05) 50%,
 transparent 100%
 );
}

.trust-row-inner {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.5rem 0.85rem;
 padding: 0.85rem 1rem;
 font-size: 0.88rem;
 font-weight: 600;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.trust-row-inner span:not([aria-hidden]) {
 color: var(--text);
}

.venue-spotlight {
 padding-top: 0;
}

.venue-spotlight-grid {
 display: grid;
 gap: 2rem;
 align-items: center;
 grid-template-columns: 1.1fr 1fr;
}

.venue-spotlight-media {
 border-radius: var(--radius);
 overflow: hidden;
 border: 1px solid var(--border);
 aspect-ratio: 16 / 9;
 background: var(--bg-panel);
}

.venue-spotlight-media img {
 display: block;
 width: 100%;
 height: 100%;
 object-fit: cover;
}

.venue-spotlight-copy h2 {
 margin: 0 0 0.75rem;
}

.venue-spotlight-copy p {
 margin: 0 0 1.25rem;
 color: var(--text-muted);
 line-height: 1.65;
}

@media (max-width: 860px) {
 .venue-spotlight-grid {
 grid-template-columns: 1fr;
 }
}

.hero-offers {
 margin: 0 0 0.85rem;
 font-size: 0.92rem;
}

.hero-offers a {
 color: var(--accent-bright);
 font-weight: 600;
 text-decoration: none;
}

.hero-offers a:hover {
 text-decoration: underline;
}

.booking-offer-note {
 max-width: 720px;
 margin: 0 auto 1.25rem;
 padding: 0.85rem 1rem;
 border-radius: var(--radius);
 border: 1px solid rgba(141, 198, 63, 0.25);
 background: rgba(141, 198, 63, 0.06);
 color: var(--text-muted);
 font-size: 0.95rem;
 line-height: 1.55;
 text-align: center;
}

.booking-offer-note a {
 color: var(--accent-bright);
 font-weight: 600;
}

.nav-toggle {
 display: none;
}

.nav-toggle-label {
 display: none;
 cursor: pointer;
 padding: 0.4rem 0.65rem;
 border-radius: 8px;
 border: 1px solid var(--border);
 color: var(--text);
 align-items: center;
 gap: 0.4rem;
 background: rgba(255, 255, 255, 0.03);
}

.nav-toggle-text {
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 line-height: 1;
}

.nav-toggle-label svg {
 display: block;
 flex-shrink: 0;
}

.nav-mobile {
 display: none;
}

@media (max-width: 1100px) {
 /* Sticky bar: Book / Menu. Contact sits with other links in the drawer */
 .header-inner {
 align-items: center !important;
 }

 .nav-desktop {
 display: flex;
 align-items: center;
 order: 2;
 margin-left: auto;
 margin-top: 0 !important;
 gap: 0.35rem;
 height: 38px;
 }

 .nav-desktop > :not(.nav-cta) {
 display: none !important;
 }

 .nav-desktop a.nav-cta,
 .nav-toggle-label {
 display: inline-flex !important;
 align-items: center;
 justify-content: center;
 height: 38px !important;
 min-height: 38px !important;
 max-height: 38px !important;
 padding: 0 0.85rem !important;
 margin: 0 !important;
 box-sizing: border-box;
 border-radius: 3px !important;
 font-family: var(--font-ui, "Barlow", sans-serif) !important;
 font-size: 0.72rem !important;
 font-weight: 700 !important;
 letter-spacing: 0.1em !important;
 text-transform: uppercase !important;
 line-height: 1 !important;
 text-shadow: none !important;
 backdrop-filter: none !important;
 -webkit-backdrop-filter: none !important;
 box-shadow: none !important;
 animation: none !important;
 transform: none !important;
 transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
 min-width: 5.75rem;
 }

 .nav-toggle-label {
 color: var(--text) !important;
 background: rgba(255, 255, 255, 0.04) !important;
 border: 1px solid rgba(255, 255, 255, 0.32) !important;
 }

 .nav-toggle-label:hover {
 background: rgba(255, 255, 255, 0.08) !important;
 border-color: rgba(255, 255, 255, 0.5) !important;
 color: var(--text) !important;
 }

 .nav-desktop a.nav-cta {
 order: 1;
 color: var(--ink-on-accent) !important;
 background: var(--accent) !important;
 background-image: none !important;
 border: 1px solid var(--accent) !important;
 }

 .nav-desktop a.nav-cta:hover {
 background: var(--accent-bright) !important;
 border-color: var(--accent-bright) !important;
 color: var(--ink-on-accent) !important;
 }

 .nav-toggle-label {
 flex-shrink: 0;
 order: 2;
 gap: 0.4rem;
 }

 .nav-toggle-text {
 font: inherit !important;
 letter-spacing: inherit !important;
 text-transform: inherit !important;
 }

 .nav-toggle-label svg {
 width: 18px;
 height: 18px;
 }

 .nav-mobile {
 display: flex;
 flex-direction: column;
 align-items: stretch;
 justify-content: flex-start;
 position: fixed;
 top: var(--header-h);
 left: 0;
 right: 0;
 z-index: 101;
 /* No bottom:0. header backdrop-filter makes fixed kids use the header as containing block */
 width: 100%;
 min-height: calc(100svh - var(--header-h));
 max-height: calc(100svh - var(--header-h));
 overflow-y: auto;
 -webkit-overflow-scrolling: touch;
 background: #0b0e14;
 border-bottom: none;
 padding: 0.5rem 1rem calc(1.25rem + env(safe-area-inset-bottom, 0px));
 gap: 0.05rem;
 transform: translateY(-100%);
 opacity: 0;
 visibility: hidden;
 pointer-events: none;
 transition: transform 0.25s ease, opacity 0.25s ease, visibility 0.25s;
 }

 .nav-toggle:checked ~ .nav-mobile {
 transform: translateY(0);
 opacity: 1;
 visibility: visible;
 pointer-events: auto;
 }

 .nav-mobile > a {
 color: var(--text);
 text-decoration: none;
 padding: 0.68rem 0.85rem;
 border-radius: 8px;
 font-weight: var(--text-nav-weight);
 font-size: var(--text-nav);
 letter-spacing: 0.05em;
 text-transform: uppercase;
 }

 .nav-mobile > a:hover {
 background: rgba(255, 255, 255, 0.06);
 }

 .nav-mobile > a.nav-contact[aria-current="page"] {
 color: var(--accent-bright);
 background: rgba(255, 255, 255, 0.06) !important;
 }

 /* Rooms first in the drawer */
 .nav-mobile-rooms {
 display: flex;
 flex-direction: column;
 gap: 0.1rem;
 margin: 0 0 0.35rem;
 padding: 0.1rem 0 0.55rem;
 border-top: 0;
 border-bottom: 1px solid rgba(255, 255, 255, 0.1);
 }

 .nav-mobile-rooms-label {
 margin: 0 0 0.1rem;
 padding: 0 0.35rem;
 color: rgba(247, 243, 235, 0.45);
 font-size: 0.66rem;
 font-weight: 700;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 }

 .nav-mobile-rooms a {
 color: var(--text);
 text-decoration: none;
 padding: 0.62rem 0.85rem;
 border-radius: 8px;
 font-weight: var(--text-nav-weight);
 font-size: var(--text-nav);
 letter-spacing: 0.05em;
 text-transform: uppercase;
 }

 .nav-mobile-rooms a:hover {
 background: rgba(255, 255, 255, 0.06);
 }

 .nav-mobile-rooms-all {
 color: var(--accent-bright) !important;
 font-weight: 600 !important;
 }

 /* Book stays in the sticky header. no duplicate in the drawer */
 .nav-mobile > a.nav-cta {
 display: none;
 }
}

.btn {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 gap: 0.5rem;
 font-family: var(--font-body);
 font-size: 0.875rem;
 font-weight: 700;
 letter-spacing: 0.07em;
 text-transform: uppercase;
 text-decoration: none;
 padding: 0.9rem 1.5rem;
 border-radius: 8px;
 border: none;
 cursor: pointer;
 transition: transform 0.15s ease, box-shadow 0.2s, background 0.2s, color 0.2s;
}

.btn:active {
 transform: translateY(1px);
}

.btn-primary {
 position: relative;
 overflow: hidden;
 background: linear-gradient(180deg, var(--accent-bright) 0%, #6ea126 100%);
 color: var(--ink-on-accent);
 box-shadow: var(--shadow-accent);
}

.btn-primary::before {
 content: "";
 position: absolute;
 inset: 0;
 background: linear-gradient(120deg, transparent 30%, rgba(255, 255, 255, 0.28) 50%, transparent 70%);
 transform: translateX(-120%);
 transition: transform 0.55s ease;
}

.btn-primary:hover::before {
 transform: translateX(120%);
}

.btn-primary:hover {
 color: var(--ink-on-accent);
 box-shadow: 0 8px 28px rgba(141, 198, 63, 0.35);
 transform: translateY(-1px);
}

.btn-sm {
 padding: 0.7rem 1.1rem;
 font-size: 0.8rem;
}

.btn-secondary {
 background: transparent;
 color: var(--text);
 border: 1px solid var(--border);
}

.btn-secondary:hover {
 border-color: rgba(141, 198, 63, 0.5);
 color: var(--accent-bright);
 background: rgba(255, 255, 255, 0.03);
}

.btn-ghost {
 background: rgba(255, 255, 255, 0.06);
 color: var(--text);
 border: 1px solid transparent;
}

.btn-ghost:hover,
.btn-ghost:focus-visible,
.btn-ghost:active {
 background: rgba(141, 198, 63, 0.25);
 border-color: rgba(141, 198, 63, 0.5);
 color: #f4ffe7;
 outline: none;
}

/* Non-link CTA: same green look as .btn-ghost hover, not clickable */
.btn-coming-soon {
 pointer-events: none;
 cursor: default;
 background: rgba(141, 198, 63, 0.25);
 border: 1px solid rgba(141, 198, 63, 0.5);
 color: #f4ffe7;
 user-select: none;
}

.btn-block {
 width: 100%;
}

.btn svg {
 flex-shrink: 0;
}

.wrap {
 max-width: var(--max);
 margin: 0 auto;
 padding: 0 1.25rem;
}

.wrap-wide {
 max-width: 1360px;
 margin: 0 auto;
 padding: 0 1.25rem;
}

.section {
 padding: var(--section-space) 0;
}

.section--flush-top {
 padding-top: 0;
}

.section-header {
 margin-bottom: var(--section-header-space);
 text-align: center;
}

.eyebrow {
 font-size: var(--text-eyebrow);
 font-weight: 700;
 letter-spacing: 0.18em;
 text-transform: uppercase;
 color: var(--accent);
 margin: 0 0 0.75rem;
 display: inline-flex;
 align-items: center;
 gap: 0.65rem;
}

.eyebrow::before,
.eyebrow::after {
 content: "";
 width: 1.5rem;
 height: 1px;
 background: linear-gradient(90deg, transparent, rgba(141, 198, 63, 0.55));
}

.eyebrow::after {
 background: linear-gradient(90deg, rgba(141, 198, 63, 0.55), transparent);
}

.section-title {
 font-family: var(--font-display);
 font-size: var(--text-section);
 font-weight: 400;
 letter-spacing: 0.04em;
 line-height: 1.1;
 margin: 0 0 0.75rem;
 text-transform: uppercase;
 color: var(--text);
}

.section-lead {
 max-width: 560px;
 margin: 0 auto;
 color: var(--text-muted);
 font-size: var(--text-lead);
 line-height: 1.6;
}

.hero {
 padding: 2.25rem 0 0;
 position: relative;
}

/* Atmospheric glow that sits behind the left hero content */
.hero::before {
 content: "";
 position: absolute;
 top: -4rem;
 left: -8%;
 width: 55%;
 height: 130%;
 background: radial-gradient(ellipse 70% 60% at 30% 40%,
 rgba(141, 198, 63, 0.07) 0%,
 rgba(141, 198, 63, 0.025) 50%,
 transparent 75%);
 pointer-events: none;
 z-index: 0;
}

/* Ensure hero children sit above the glow */
.hero-grid > * {
 position: relative;
 z-index: 1;
}

/* ── Left column ── */
.hero-content {
 display: flex;
 flex-direction: column;
 align-items: flex-start;
 gap: 0;
}

/* Vertical accent line beside the headline */
.hero-headline-wrap {
 display: flex;
 align-items: stretch;
 gap: 1.1rem;
 margin-bottom: 1.25rem;
}

.hero-accent-line {
 display: block;
 width: 3px;
 border-radius: 999px;
 flex-shrink: 0;
 background: linear-gradient(
 180deg,
 rgba(141, 198, 63, 0) 0%,
 rgba(141, 198, 63, 0.9) 20%,
 rgba(141, 198, 63, 0.9) 80%,
 rgba(141, 198, 63, 0) 100%
 );
 box-shadow: 0 0 12px rgba(141, 198, 63, 0.55);
 animation: accent-flicker 4s ease-in-out infinite;
}

@keyframes accent-flicker {
 0%, 100% { opacity: 1; box-shadow: 0 0 10px rgba(141, 198, 63, 0.5); }
 45% { opacity: 0.82; box-shadow: 0 0 20px rgba(141, 198, 63, 0.75); }
 50% { opacity: 0.6; box-shadow: 0 0 5px rgba(141, 198, 63, 0.3); }
 55% { opacity: 0.95; box-shadow: 0 0 18px rgba(141, 198, 63, 0.65); }
}

/* Remove the old h1 bottom margin since headline-wrap handles it */
.hero-headline-wrap h1 {
 margin-bottom: 0;
}

/* ── Staggered entrance animations ── */
@keyframes hero-fade-up {
 from {
 opacity: 0;
 transform: translateY(18px);
 }
 to {
 opacity: 1;
 transform: translateY(0);
 }
}

.hero-anim {
 animation: hero-fade-up 0.75s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.hero-anim--1 { animation-delay: 0.05s; }
.hero-anim--2 { animation-delay: 0.2s; }
.hero-anim--3 { animation-delay: 0.38s; }
.hero-anim--4 { animation-delay: 0.55s; }

@media (prefers-reduced-motion: reduce) {
 .hero-anim { animation: none; }
 .hero-accent-line { animation: none; }
}

.hero-grid {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 2.5rem;
 align-items: center;
 padding-bottom: 1.25rem;
}

@media (max-width: 900px) {
 .hero-grid {
 grid-template-columns: 1fr;
 gap: 1.75rem;
 padding-bottom: 1rem;
 }
}

.hero-badge {
 display: inline-flex;
 align-items: center;
 gap: 0.5rem;
 padding: 0.35rem 0.85rem;
 border-radius: 999px;
 background: linear-gradient(135deg, rgba(141, 198, 63, 0.22) 0%, rgba(141, 198, 63, 0.1) 100%);
 border: 1px solid rgba(141, 198, 63, 0.5);
 color: var(--accent-bright);
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 margin-bottom: 1.25rem;
 box-shadow: 0 0 18px rgba(141, 198, 63, 0.18), inset 0 1px 0 rgba(255,255,255,0.08);
}

.hero-badge .dot {
 width: 6px;
 height: 6px;
 border-radius: 50%;
 background: var(--accent);
 animation: pulse 2s ease infinite;
}

@keyframes pulse {
 0%,
 100% {
 opacity: 1;
 }
 50% {
 opacity: 0.4;
 }
}

.hero h1 {
 font-family: var(--font-display);
 font-size: var(--text-h1-hero);
 font-weight: 400;
 letter-spacing: 0.03em;
 line-height: 0.98;
 margin: 0 0 1.25rem;
 text-transform: uppercase;
 color: var(--text);
}

.hero h1 span {
 color: var(--accent-bright);
}

.hero-lead {
 font-size: 1.05rem;
 color: var(--text-muted);
 max-width: 38ch;
 margin: 0 0 1.75rem;
 line-height: 1.6;
}

.hero-actions {
 display: flex;
 flex-wrap: nowrap;
 gap: 0.75rem;
 margin-bottom: 1rem;
 width: fit-content;
 max-width: 100%;
}

.hero-facts {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.5rem 1.25rem;
 margin: 0;
 padding: 1rem 0 0;
 border-top: 1px solid var(--border);
 font-size: 0.78rem;
 font-weight: 600;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.hero-facts span {
 display: inline-flex;
 align-items: center;
 gap: 0.5rem;
}

.hero-facts span:not(:last-child)::after {
 content: "·";
 margin-left: 1.25rem;
 color: rgba(255, 255, 255, 0.2);
 font-weight: 400;
}

@media (max-width: 640px) {
 .hero-facts span:not(:last-child)::after {
 display: none;
 }

 .hero-facts {
 flex-direction: column;
 gap: 0.35rem;
 text-align: center;
 }
}

@media (max-width: 600px) {
 .hero-actions {
 flex-direction: column;
 align-items: stretch;
 width: 100%;
 }

 .hero-actions .btn {
 width: 100%;
 justify-content: center;
 }
}

.hero-helper {
 margin: 0.25rem 0 0;
 font-size: 0.92rem;
 color: var(--text-muted);
}

.hero-helper a {
 color: var(--accent-bright);
 font-weight: 600;
}

.hero-phone {
 margin: 0 0 1.5rem;
 font-size: 0.95rem;
}

.hero-phone a {
 color: var(--text);
 font-weight: 700;
 font-size: 1.05rem;
}

.hero-phone a:hover {
 color: var(--accent-bright);
}

@media (max-width: 1100px) {
 body.nav-open {
 overflow: hidden;
 }
}

.breadcrumbs {
 padding: 0.75rem 1.25rem 0;
}

.breadcrumbs ol {
 list-style: none;
 margin: 0;
 padding: 0;
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.35rem 0.5rem;
 font-size: 0.82rem;
 color: var(--text-muted);
}

.breadcrumbs li {
 display: inline-flex;
 align-items: center;
 gap: 0.5rem;
}

.breadcrumbs li + li::before {
 content: "/";
 color: rgba(255, 255, 255, 0.2);
 font-weight: 400;
}

.breadcrumbs a {
 color: var(--text-muted);
 text-decoration: none;
 font-weight: 500;
}

.breadcrumbs a:hover {
 color: var(--accent-bright);
}

.breadcrumbs [aria-current="page"] {
 color: var(--text);
 font-weight: 600;
}

.blog-signup-cta {
 padding: 1.75rem 0 0;
 border-top: 1px solid var(--border);
 margin-top: 0.5rem;
}

.blog-signup-cta p {
 margin: 0;
 text-align: center;
 color: var(--text-muted);
 font-size: 0.95rem;
}

.blog-signup-cta a {
 font-weight: 600;
}

.hero-meta {
 display: flex;
 flex-wrap: wrap;
 gap: 1.5rem;
 padding-top: 1.5rem;
 border-top: 1px solid var(--border);
}

.hero-meta dt {
 font-size: 0.65rem;
 letter-spacing: 0.18em;
 text-transform: uppercase;
 color: var(--text-muted);
 margin: 0 0 0.2rem;
}

.hero-meta dd {
 margin: 0;
 font-weight: 600;
 font-size: 0.95rem;
}

.hero-visual {
 position: relative;
 border-radius: var(--radius-lg);
 overflow: hidden;
 aspect-ratio: 4 / 3;
 background: var(--bg-panel);
 border: 1px solid rgba(141, 198, 63, 0.35);
 box-shadow:
 0 0 0 1px rgba(141, 198, 63, 0.07),
 0 0 55px rgba(141, 198, 63, 0.14),
 0 28px 70px rgba(0, 0, 0, 0.55);
 animation: panel-pulse 5s ease-in-out infinite;
}

@keyframes panel-pulse {
 0%, 100% { box-shadow: 0 0 0 1px rgba(141, 198, 63, 0.07), 0 0 45px rgba(141, 198, 63, 0.1), 0 28px 70px rgba(0,0,0,0.55); }
 50% { box-shadow: 0 0 0 1px rgba(141, 198, 63, 0.14), 0 0 70px rgba(141, 198, 63, 0.2), 0 28px 70px rgba(0,0,0,0.55); }
}

.hero-visual-scene {
 position: absolute;
 inset: 0;
 z-index: 0;
}

.hero-visual-photo {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center 35%;
 opacity: 0.38;
 filter: saturate(0.75) contrast(1.1);
}

.hero-visual-grid {
 position: absolute;
 inset: 0;
 background-image:
 linear-gradient(rgba(141, 198, 63, 0.05) 1px, transparent 1px),
 linear-gradient(90deg, rgba(141, 198, 63, 0.05) 1px, transparent 1px);
 background-size: 24px 24px;
 mask-image: radial-gradient(ellipse 75% 65% at 50% 48%, #000 10%, transparent 100%);
 opacity: 0.4;
}

.hero-visual-vignette {
 position: absolute;
 inset: 0;
 background:
 radial-gradient(ellipse 80% 70% at 50% 48%, transparent 0%, rgba(10, 12, 16, 0.5) 60%, rgba(10, 12, 16, 0.96) 100%),
 linear-gradient(to top, rgba(10, 12, 16, 0.92) 0%, transparent 38%);
}

/* HUD corner brackets */
.hero-hud {
 position: absolute;
 width: 14px;
 height: 14px;
 border-color: rgba(141, 198, 63, 0.45);
 border-style: solid;
 pointer-events: none;
 z-index: 2;
 animation: hud-breathe 3.2s ease-in-out infinite;
}
.hero-hud--tl { top: 0.6rem; left: 0.6rem; border-width: 2px 0 0 2px; animation-delay: 0s; }
.hero-hud--tr { top: 0.6rem; right: 0.6rem; border-width: 2px 2px 0 0; animation-delay: 1.6s; }
.hero-hud--bl { bottom: 0.6rem; left: 0.6rem; border-width: 0 0 2px 2px; animation-delay: 0.8s; }
.hero-hud--br { bottom: 0.6rem; right: 0.6rem; border-width: 0 2px 2px 0; animation-delay: 2.4s; }

@keyframes hud-breathe {
 0%, 100% { opacity: 0.45; border-color: rgba(141, 198, 63, 0.4); }
 50% { opacity: 1; border-color: rgba(168, 224, 83, 0.85); }
}

/* REC indicator */
.hero-rec {
 position: absolute;
 top: 0.65rem;
 right: 0.85rem;
 z-index: 4;
 display: inline-flex;
 align-items: center;
 gap: 0.28rem;
 font-size: 0.52rem;
 font-weight: 700;
 letter-spacing: 0.14em;
 color: rgba(220, 70, 55, 0.8);
 pointer-events: none;
}

.hero-rec-dot {
 width: 5px;
 height: 5px;
 border-radius: 50%;
 background: #e03030;
 box-shadow: 0 0 8px rgba(224, 48, 48, 0.9);
 flex-shrink: 0;
 animation: rec-blink 1.3s ease-in-out infinite;
}

@keyframes rec-blink {
 0%, 38%, 100% { opacity: 1; }
 55%, 88% { opacity: 0.08; }
}

/* Live pill. absolute so it costs zero layout height */
.hero-mission-header {
 position: absolute;
 top: 0.55rem;
 left: 50%;
 z-index: 3;
 transform: translateX(-50%);
 display: inline-flex;
 align-items: center;
 gap: 0.4rem;
 padding: 0.28rem 0.6rem;
 border-radius: 999px;
 background: rgba(10, 12, 16, 0.9);
 border: 1px solid rgba(141, 198, 63, 0.3);
 white-space: nowrap;
}

.hero-mission-live {
 display: inline-flex;
 align-items: center;
 gap: 0.3rem;
 font-size: 0.6rem;
 font-weight: 700;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

.hero-mission-dot {
 width: 6px;
 height: 6px;
 border-radius: 50%;
 background: var(--accent-bright);
 box-shadow: 0 0 7px rgba(168, 224, 83, 0.7);
 animation: pulse 1.8s ease infinite;
}

.hero-mission-status {
 font-size: 0.6rem;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: rgba(232, 228, 220, 0.85);
 transition: color 0.3s ease;
}

/* Main content. flex column, centered */
.hero-visual-inner {
 position: relative;
 z-index: 1;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 gap: 0.5rem;
 height: 100%;
 padding: 0.5rem 1.5rem 1rem;
 text-align: center;
}

/* Rectangular countdown box */
.countdown-frame {
 position: relative;
 border: 1px solid rgba(141, 198, 63, 0.36);
 background: rgba(10, 12, 16, 0.76);
 border-radius: 12px;
 padding: 0.9rem 1.5rem 0.75rem;
 box-shadow:
 0 0 0 1px rgba(141, 198, 63, 0.08),
 0 0 32px rgba(141, 198, 63, 0.18),
 inset 0 1px 0 rgba(255, 255, 255, 0.05);
 overflow: hidden;
 animation: frame-breathe 4s ease-in-out infinite;
}

@keyframes frame-breathe {
 0%, 100% { box-shadow: 0 0 0 1px rgba(141, 198, 63, 0.08), 0 0 28px rgba(141, 198, 63, 0.15), inset 0 1px 0 rgba(255,255,255,0.05); }
 50% { box-shadow: 0 0 0 1px rgba(141, 198, 63, 0.18), 0 0 44px rgba(141, 198, 63, 0.28), inset 0 1px 0 rgba(255,255,255,0.05); }
}

/* Static scanlines */
.countdown-frame::before {
 content: "";
 position: absolute;
 inset: 0;
 background: repeating-linear-gradient(
 180deg,
 rgba(255, 255, 255, 0.04) 0, rgba(255, 255, 255, 0.04) 1px,
 transparent 2px, transparent 4px
 );
 opacity: 0.18;
 pointer-events: none;
 z-index: 0;
}

/* Moving scan sweep */
.countdown-frame::after {
 content: "";
 position: absolute;
 left: 0;
 right: 0;
 height: 30%;
 background: linear-gradient(
 180deg,
 transparent 0%,
 rgba(141, 198, 63, 0.04) 45%,
 rgba(141, 198, 63, 0.09) 50%,
 rgba(141, 198, 63, 0.04) 55%,
 transparent 100%
 );
 animation: scan-sweep 3.5s linear infinite;
 pointer-events: none;
 z-index: 0;
}

@keyframes scan-sweep {
 0% { top: -30%; }
 100% { top: 130%; }
}

.countdown-frame > * {
 position: relative;
 z-index: 1;
}

.countdown-time {
 display: block;
 font-family: var(--font-display);
 font-size: clamp(3.5rem, 9vw, 4.75rem);
 letter-spacing: 0.08em;
 color: var(--accent-bright);
 line-height: 1;
 text-shadow:
 0 0 10px rgba(141, 198, 63, 0.9),
 0 0 30px rgba(141, 198, 63, 0.45),
 0 0 70px rgba(141, 198, 63, 0.15);
 font-variant-numeric: tabular-nums;
 transition: color 1.4s ease, text-shadow 1.4s ease;
}

.countdown-time.is-critical {
 color: #ff7d6d;
 text-shadow: 0 0 20px rgba(255, 125, 109, 0.5);
}

.countdown-label {
 display: block;
 margin-top: 0.35rem;
 font-size: 0.62rem;
 letter-spacing: 0.22em;
 text-transform: uppercase;
 color: rgba(141, 198, 63, 0.55);
 transition: color 1.4s ease;
}

/* (hero-mission-meta removed) */

/* Panic states */

/* Stage 1: active (20%+). frame breathes a little faster, no number jitter */
.hero-visual.panic-active .countdown-frame {
 animation: frame-breathe 2.2s ease-in-out infinite;
}

/* Stage 2: warn (40%+). amber shift across the whole panel */
.hero-visual.panic-warn {
 border-color: rgba(240, 155, 40, 0.32);
 animation: warn-pulse 1.7s ease-in-out infinite !important;
}

@keyframes warn-pulse {
 0%, 100% { box-shadow: 0 0 0 1px rgba(240, 155, 40, 0.06), 0 0 30px rgba(240, 155, 40, 0.15), 0 28px 70px rgba(0,0,0,0.55); }
 50% { box-shadow: 0 0 0 1px rgba(240, 155, 40, 0.16), 0 0 58px rgba(240, 155, 40, 0.3), 0 28px 70px rgba(0,0,0,0.55); }
}

.hero-visual.panic-warn .countdown-frame {
 border-color: rgba(240, 155, 40, 0.5);
 animation: frame-breathe-amber 1.5s ease-in-out infinite !important;
}

@keyframes frame-breathe-amber {
 0%, 100% { box-shadow: 0 0 0 1px rgba(240, 155, 40, 0.08), 0 0 24px rgba(240, 155, 40, 0.2), inset 0 1px 0 rgba(255,255,255,0.05); }
 50% { box-shadow: 0 0 0 1px rgba(240, 155, 40, 0.18), 0 0 42px rgba(240, 155, 40, 0.36), inset 0 1px 0 rgba(255,255,255,0.05); }
}

.hero-visual.panic-warn .countdown-time {
 color: #f0a030;
 text-shadow:
 0 0 10px rgba(240, 160, 48, 0.9),
 0 0 30px rgba(240, 160, 48, 0.45),
 0 0 70px rgba(240, 160, 48, 0.15);
}

.hero-visual.panic-warn .countdown-label,
.hero-visual.panic-warn .hero-mission-status {
 color: rgba(240, 160, 48, 0.7);
}

.hero-visual.panic-warn .hero-time-bar-fill {
 background: linear-gradient(90deg, #f0a030, rgba(240, 160, 48, 0.6));
 box-shadow: 0 0 10px rgba(240, 160, 48, 0.7);
}

/* Stage 3: critical (72%+). full red, chromatic aberration */
.hero-visual.panic-critical {
 border-color: rgba(255, 100, 80, 0.5);
 animation: panic-flare 0.85s ease-in-out infinite !important;
}

@keyframes panic-flare {
 0%, 100% { box-shadow: 0 0 0 1px rgba(255, 100, 80, 0.12), 0 0 35px rgba(255, 100, 80, 0.25), 0 28px 70px rgba(0,0,0,0.55); }
 50% { box-shadow: 0 0 0 2px rgba(255, 100, 80, 0.32), 0 0 70px rgba(255, 100, 80, 0.48), 0 28px 70px rgba(0,0,0,0.55); }
}

.hero-visual.panic-critical .countdown-frame {
 border-color: rgba(255, 125, 109, 0.65);
 animation: frame-breathe-red 0.9s ease-in-out infinite !important;
}

@keyframes frame-breathe-red {
 0%, 100% { box-shadow: 0 0 0 1px rgba(255, 125, 109, 0.1), 0 0 24px rgba(255, 125, 109, 0.28), inset 0 1px 0 rgba(255,255,255,0.05); }
 50% { box-shadow: 0 0 0 1px rgba(255, 125, 109, 0.22), 0 0 48px rgba(255, 125, 109, 0.5), inset 0 1px 0 rgba(255,255,255,0.05); }
}

.hero-visual.panic-critical .countdown-time {
 color: #ff7d6d;
 text-shadow:
 -2px 0 rgba(255, 20, 80, 0.45),
 2px 0 rgba(0, 240, 200, 0.35),
 0 0 18px rgba(255, 125, 109, 0.95),
 0 0 40px rgba(255, 125, 109, 0.55);
}

.hero-visual.panic-critical .countdown-label,
.hero-visual.panic-critical .hero-mission-status {
 color: #ffc9bf;
}

/* Room label strip at bottom of panel interior */
.hero-panel-foot {
 position: absolute;
 bottom: 0.9rem;
 left: 1rem;
 right: 1rem;
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 0.5rem;
}

.hero-panel-room {
 font-family: var(--font-display);
 font-size: 0.72rem;
 letter-spacing: 0.2em;
 text-transform: uppercase;
 color: rgba(141, 198, 63, 0.6);
}

.hero-panel-cam {
 font-size: 0.58rem;
 letter-spacing: 0.18em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.2);
}

/* Time-drain bar. sits on bottom edge of the panel */
.hero-time-bar {
 position: absolute;
 bottom: 0;
 left: 0;
 right: 0;
 height: 3px;
 background: rgba(255, 255, 255, 0.06);
 z-index: 2;
}

.hero-time-bar-fill {
 height: 100%;
 width: 100%;
 transform-origin: left center;
 background: linear-gradient(90deg, var(--accent-bright), rgba(141, 198, 63, 0.6));
 box-shadow: 0 0 10px rgba(141, 198, 63, 0.7);
 transition: background 0.4s ease, box-shadow 0.4s ease;
}

.hero-visual.panic-critical .hero-time-bar-fill {
 background: linear-gradient(90deg, #ff7d6d, rgba(255, 125, 109, 0.6));
 box-shadow: 0 0 10px rgba(255, 125, 109, 0.7);
}

.hero-visual.is-complete .countdown-frame {
 border-color: rgba(168, 224, 83, 0.52);
 box-shadow: 0 0 32px rgba(168, 224, 83, 0.25);
}

.hero-visual.is-complete .hero-time-bar-fill {
 width: 0%;
}

/* Escape flash. brief green surge when team escapes */
.hero-visual.escape-flash {
 animation: escape-surge 0.65s ease-out !important;
}

@keyframes escape-surge {
 0% { box-shadow: 0 0 0 3px rgba(168, 224, 83, 0.7), 0 0 100px rgba(168, 224, 83, 0.55), 0 28px 70px rgba(0,0,0,0.55); }
 100% { box-shadow: 0 0 0 1px rgba(141, 198, 63, 0.07), 0 0 45px rgba(141, 198, 63, 0.1), 0 28px 70px rgba(0,0,0,0.55); }
}

/* Random glitch. fires via JS .is-glitching class */
.hero-visual::after {
 content: "";
 position: absolute;
 left: 0;
 right: 0;
 top: 20%;
 height: 2px;
 background: linear-gradient(90deg, transparent 0%, rgba(141, 198, 63, 0.5) 20%, rgba(255, 255, 255, 0.35) 50%, rgba(141, 198, 63, 0.5) 80%, transparent 100%);
 z-index: 10;
 pointer-events: none;
 opacity: 0;
}

.hero-visual.is-glitching::after {
 opacity: 1;
 animation: glitch-scanline 0.28s steps(3) 1 forwards;
}

@keyframes glitch-scanline {
 0% { top: 15%; opacity: 1; }
 35% { top: 58%; opacity: 0.7; }
 65% { top: 28%; opacity: 1; }
 90% { top: 72%; opacity: 0.4; }
 100% { top: 85%; opacity: 0; }
}

/* Glitch: only the background scene shifts. numbers stay readable */
@keyframes glitch-scene {
 0% { transform: translate(0, 0); filter: none; }
 15% { transform: translate(-4px, 0); filter: hue-rotate(-30deg) brightness(1.2); opacity: 0.75; }
 35% { transform: translate(4px, 0); filter: hue-rotate(25deg); opacity: 0.9; }
 55% { transform: translate(-2px, 0); filter: hue-rotate(-15deg) brightness(1.1); }
 75% { transform: translate(2px, 0); filter: none; opacity: 1; }
 100% { transform: translate(0, 0); filter: none; }
}

/* Border-only flash on the countdown frame. no transform, numbers stay still */
@keyframes glitch-border-flash {
 0% { border-color: rgba(141, 198, 63, 0.36); }
 30% { border-color: rgba(255, 255, 255, 0.65); box-shadow: 0 0 30px rgba(255, 255, 255, 0.18); }
 60% { border-color: rgba(141, 198, 63, 0.7); }
 100% { border-color: rgba(141, 198, 63, 0.36); }
}

.hero-visual.is-glitching .hero-visual-scene {
 animation: glitch-scene 0.28s steps(3) !important;
}

.hero-visual.is-glitching .countdown-frame {
 animation: glitch-border-flash 0.28s linear !important;
}

@media (prefers-reduced-motion: reduce) {
 .hero::before,
 .hero-visual,
 .hero-visual.panic-warn,
 .hero-visual.panic-critical,
 .hero-visual.escape-flash,
 .hero-visual.is-glitching .countdown-frame,
 .hero-visual.is-glitching .hero-visual-scene,
 .hero-visual.is-glitching::after,
 .countdown-frame,
 .hero-visual.panic-warn .countdown-frame,
 .hero-visual.panic-critical .countdown-frame,
 .hero-mission-dot,
 .hero-rec-dot,
 .hero-hud,
 .hero-visual.panic-active .countdown-frame,
 .countdown-time,
 .countdown-label {
 animation: none !important;
 transition: none !important;
 }

 .countdown-frame::after {
 display: none;
 }

 .hero-visual.panic-critical .countdown-time {
 color: #ff7d6d;
 text-shadow:
 0 0 18px rgba(255, 125, 109, 0.95),
 0 0 40px rgba(255, 125, 109, 0.55);
 }
}

@keyframes tv-flicker {
 0% {
 opacity: 0.85;
 filter: contrast(1.05) saturate(1.05);
 }
 25% {
 opacity: 1;
 }
 50% {
 opacity: 0.78;
 filter: contrast(1.2) saturate(1.15);
 }
 75% {
 opacity: 0.96;
 }
 100% {
 opacity: 0.82;
 filter: contrast(1.12) saturate(1.08);
 }
}

@keyframes pulse-jitter {
 0% {
 transform: translate(0, 0) skewX(0deg);
 }
 25% {
 transform: translate(1px, -1px) skewX(-1deg);
 }
 50% {
 transform: translate(-1px, 1px) skewX(1deg);
 }
 75% {
 transform: translate(1px, 1px) skewX(-0.7deg);
 }
 100% {
 transform: translate(-1px, -1px) skewX(0.7deg);
 }
}

@keyframes screen-shake {
 0% {
 transform: translate(0, 0);
 }
 20% {
 transform: translate(-1px, 1px);
 }
 40% {
 transform: translate(1px, -1px);
 }
 60% {
 transform: translate(-1px, -1px);
 }
 80% {
 transform: translate(1px, 1px);
 }
 100% {
 transform: translate(0, 0);
 }
}

.games-type-intro {
 margin: 0 auto 2.25rem;
 color: var(--text-muted);
 font-size: 1.05rem;
 line-height: 1.6;
 width: 100%;
 max-width: 48rem;
 text-align: center;
}

.games-type-intro a {
 color: var(--accent-bright);
 font-weight: 600;
 text-decoration: none;
}

.games-type-intro a:hover {
 text-decoration: underline;
}

.games-group + .games-group {
 margin-top: 3rem;
 padding-top: 2.75rem;
 border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.games-group-header {
 margin-bottom: 1.25rem;
 width: 100%;
 max-width: none;
}

.games-group-title {
 margin: 0 0 0.45rem;
 font-family: var(--font-display);
 font-size: clamp(1.65rem, 3vw, 2rem);
 font-weight: 400;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 color: var(--text);
}

.games-group-lead {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.98rem;
 line-height: 1.6;
 width: 100%;
 max-width: none;
}

.game-card-kind {
 margin: 0 0 0.35rem;
 color: var(--accent-bright);
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 flex: 0 0 auto;
}

.games-grid {
 display: grid;
 grid-template-columns: repeat(2, 1fr);
 gap: 1.5rem;
}

@media (min-width: 900px) {
 #live-rooms .games-grid,
 #vr-games .games-grid {
 grid-template-columns: repeat(3, 1fr);
 }
}

@media (max-width: 700px) {
 .games-grid {
 grid-template-columns: 1fr;
 }
}

.game-card {
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 overflow: hidden;
 display: flex;
 flex-direction: column;
 transition: border-color 0.2s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.game-card:hover {
 border-color: rgba(141, 198, 63, 0.25);
 box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4);
 transform: translateY(-4px);
}

.game-card-media {
 aspect-ratio: 16/9;
 background: linear-gradient(160deg, var(--bg-elevated), #0d0f14);
 display: block;
 padding: 0;
 position: relative;
 overflow: hidden;
}

.game-card-media > img {
 width: 100%;
 height: 100%;
 object-fit: contain;
 object-position: center;
 display: block;
 background-color: #0d0f14;
}

.game-card-media--virtual > img {
 object-fit: contain;
}

.game-card-virtual-badge {
 position: absolute;
 top: 14px;
 right: -34px;
 z-index: 2;
 width: 118px;
 padding: 6px 0 5px;
 background: #8dc63f;
 color: #fff;
 font-family: Arial, Helvetica, sans-serif;
 font-size: 10.5px;
 font-weight: 700;
 letter-spacing: 0.2em;
 text-align: center;
 text-transform: uppercase;
 transform: rotate(45deg);
 transform-origin: center center;
 pointer-events: none;
 line-height: 1;
 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.28);
}

.game-card-coming-soon-badge,
.game-page-coming-soon-badge {
 position: absolute;
 top: 14px;
 right: -34px;
 z-index: 2;
 width: 132px;
 padding: 7px 0 6px;
 background: #8dc63f;
 color: #0a0c10;
 font-family: Arial, Helvetica, sans-serif;
 font-size: 10px;
 font-weight: 700;
 letter-spacing: 0.12em;
 text-align: center;
 text-transform: uppercase;
 transform: rotate(45deg);
 transform-origin: center center;
 pointer-events: none;
 line-height: 1;
 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
}

.game-card-title a {
 color: inherit;
 text-decoration: none;
}

.game-card-title a:hover {
 color: var(--accent);
}

a.game-card-media {
 text-decoration: none;
}

a.game-card-media:focus-visible {
 outline: 2px solid var(--accent);
 outline-offset: 2px;
}

.game-card-media.heist {
 background:
 linear-gradient(to top, rgba(10, 12, 16, 0.25), rgba(10, 12, 16, 0.25)),
 url("../assets/the-heist.png");
 background-size: contain;
 background-position: center;
 background-repeat: no-repeat;
 background-color: #0d0f14;
}

.game-card-media.mine {
 background:
 linear-gradient(to top, rgba(10, 12, 16, 0.25), rgba(10, 12, 16, 0.25)),
 url("../assets/the-mine.png");
 background-size: contain;
 background-position: center;
 background-repeat: no-repeat;
 background-color: #0d0f14;
}

.game-card-media.vault {
 background:
 linear-gradient(to top, rgba(10, 12, 16, 0.25), rgba(10, 12, 16, 0.25)),
 url("../assets/the-vault.png");
 background-size: contain;
 background-position: center;
 background-repeat: no-repeat;
 background-color: #0d0f14;
}

.game-card-media.school-of-magic {
 background:
 linear-gradient(to top, rgba(10, 12, 16, 0.25), rgba(10, 12, 16, 0.25)),
 url("../assets/school-of-magic.png");
 background-size: contain;
 background-position: center;
 background-repeat: no-repeat;
 background-color: #0d0f14;
}

.game-card-media.lunarscape {
 background:
 linear-gradient(to top, rgba(10, 12, 16, 0.25), rgba(10, 12, 16, 0.25)),
 url("../assets/lunarscape-mission-z.vr-game-bundle.png");
 background-size: contain;
 background-position: center;
 background-repeat: no-repeat;
 background-color: #0d0f14;
}

.game-card-media.b-block-breakout {
 background-color: #0d0f14;
 background-image:
 linear-gradient(to top, rgba(10, 12, 16, 0.25), rgba(10, 12, 16, 0.25)),
 url("../assets/b-block-breakout.png");
 background-size: 100% 100%, contain;
 background-position: center, center;
 background-repeat: no-repeat, no-repeat;
 overflow: hidden;
}

.game-card-media.mansion-of-death {
 background:
 linear-gradient(to top, rgba(10, 12, 16, 0.25), rgba(10, 12, 16, 0.25)),
 url("../assets/mansion-of-death.png");
 background-size: contain;
 background-position: center;
 background-repeat: no-repeat;
 background-color: #0d0f14;
}

.game-card-media.dollmakers-curse {
 background:
 linear-gradient(to top, rgba(10, 12, 16, 0.25), rgba(10, 12, 16, 0.25)),
 url("../assets/the-dollmakers-curse.png");
 background-size: contain;
 background-position: center;
 background-repeat: no-repeat;
 background-color: #0d0f14;
}

.game-card-body {
 padding: 1.35rem 1.35rem 1.5rem;
 flex: 1;
 display: flex;
 flex-direction: column;
 gap: 0.15rem;
}

.game-card-title {
 font-family: var(--font-display);
 font-size: clamp(1.25rem, 2.4vw, 1.75rem);
 letter-spacing: 0.06em;
 margin: 0 0 0.85rem;
 text-transform: uppercase;
 line-height: 1.1;
}

.game-card-body > p:not(.game-card-kind) {
 margin: 0 0 1.25rem;
 color: var(--text-muted);
 font-size: 0.95rem;
 flex: 1;
}

.game-tags {
 display: flex;
 flex-wrap: wrap;
 gap: 0.5rem;
 margin-bottom: 1rem;
}

.tag {
 font-size: 0.68rem;
 font-weight: 700;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 padding: 0.35rem 0.65rem;
 border-radius: 4px;
 background: rgba(255, 255, 255, 0.06);
 color: var(--text-muted);
 box-shadow: inset 0 0 0 1px rgba(141, 198, 63, 0.08);
}

.info-strip {
 background: linear-gradient(155deg, rgba(141, 198, 63, 0.04) 0%, var(--bg-panel) 42%);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 padding: 2rem;
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 2rem;
 box-shadow: var(--shadow-card);
 position: relative;
 overflow: hidden;
}

.info-strip::before {
 content: "";
 position: absolute;
 top: 0;
 left: 0;
 right: 0;
 height: 2px;
 background: linear-gradient(90deg, transparent, rgba(141, 198, 63, 0.55), transparent);
}

@media (max-width: 800px) {
 .info-strip {
 grid-template-columns: 1fr;
 }
}

.info-strip h3 {
 font-family: var(--font-display);
 font-size: 1.35rem;
 letter-spacing: 0.06em;
 margin: 0 0 1rem;
 text-transform: uppercase;
}

.info-strip ul {
 margin: 0;
 padding: 0;
 list-style: none;
 color: var(--text-muted);
 font-size: 0.95rem;
}

.opening-note {
 margin: 0.8rem 0 0;
 color: var(--accent-bright);
 font-size: 0.88rem;
 font-weight: 700;
 letter-spacing: 0.04em;
 text-transform: uppercase;
}

.info-strip li {
 padding: 0.35rem 0;
 border-bottom: 1px solid var(--border);
}

.info-strip li:last-child {
 border-bottom: none;
}

.price-row {
 display: flex;
 justify-content: space-between;
 gap: 1rem;
 padding: 0.4rem 0;
 border-bottom: 1px solid var(--border);
 font-size: 0.95rem;
}

.price-row:last-child {
 border-bottom: none;
}

.price-row span:last-child {
 color: var(--accent-bright);
 font-weight: 600;
}

.visit-actions-inline {
 display: flex;
 flex-wrap: wrap;
 gap: 0.5rem;
 margin-top: 1rem;
}

.visit-map-wrap--lean {
 grid-template-columns: 1fr;
 margin-top: 1.5rem;
}

.visit-map-wrap--lean .visit-map-frame {
 min-height: 300px;
}

.visit-map-wrap--lean .visit-map-frame iframe {
 min-height: 300px;
}

.visit-map-overlay-link {
 position: absolute;
 right: 1rem;
 bottom: 1rem;
 z-index: 2;
 display: inline-flex;
 align-items: center;
 padding: 0.55rem 0.9rem;
 border-radius: 8px;
 background: rgba(10, 12, 16, 0.82);
 backdrop-filter: blur(8px);
 border: 1px solid rgba(255, 255, 255, 0.14);
 color: var(--text);
 font-size: 0.78rem;
 font-weight: 600;
 letter-spacing: 0.05em;
 text-decoration: none;
 text-transform: uppercase;
 transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.visit-map-overlay-link:hover,
.visit-map-overlay-link:focus-visible {
 border-color: rgba(141, 198, 63, 0.45);
 color: var(--accent-bright);
 background: rgba(10, 12, 16, 0.92);
}

.contact-map-panel {
 margin-top: 2rem;
 min-height: 320px;
 border-radius: var(--radius-lg);
 overflow: hidden;
 border: 1px solid var(--border-accent);
 box-shadow: var(--shadow-card);
}

.contact-map-panel iframe {
 min-height: 320px;
}

.contact-map-caption {
 position: absolute;
 top: 1rem;
 left: 1rem;
 z-index: 2;
 display: flex;
 flex-direction: column;
 gap: 0.15rem;
 max-width: min(360px, calc(100% - 2rem));
 padding: 0.85rem 1rem;
 border-radius: 8px;
 background: rgba(10, 12, 16, 0.82);
 backdrop-filter: blur(8px);
 border: 1px solid rgba(255, 255, 255, 0.12);
}

.contact-map-caption strong {
 font-family: var(--font-display);
 font-size: 1.1rem;
 letter-spacing: 0.05em;
 text-transform: uppercase;
 line-height: 1.1;
}

.contact-map-caption span {
 color: var(--text-muted);
 font-size: 0.88rem;
}

.cta-band {
 text-align: center;
 padding: 2rem 1.75rem;
 border-radius: var(--radius-lg);
 background:
 radial-gradient(ellipse 80% 100% at 50% 0%, rgba(141, 198, 63, 0.16), transparent 60%),
 linear-gradient(135deg, rgba(141, 198, 63, 0.12) 0%, var(--bg-panel) 52%);
 border: 1px solid var(--border-accent);
 margin-top: 2.25rem;
 box-shadow: var(--shadow-card);
}

.cta-band h2 {
 font-family: var(--font-display);
 font-size: clamp(1.75rem, 4vw, 2.5rem);
 letter-spacing: 0.05em;
 margin: 0 0 0.65rem;
 text-transform: uppercase;
}

.cta-band p {
 margin: 0 auto 1.25rem;
 max-width: 480px;
 color: var(--text-muted);
}

.booking-panel {
 position: relative;
 overflow: hidden;
 border-radius: var(--radius-lg);
 border: 1px solid var(--border-accent);
 background: var(--bg-panel);
 box-shadow: var(--shadow-card);
}

.legal-panel {
 padding: 1.75rem 1.5rem 2rem;
}

.legal-panel p,
.legal-panel li {
 color: var(--text-muted);
 line-height: 1.65;
}

.legal-panel ul {
 margin: 0.75rem 0 1rem;
 padding-left: 1.25rem;
}

.legal-panel li + li {
 margin-top: 0.4rem;
}

.legal-updated {
 margin: 0 0 1.25rem;
 color: var(--text-muted);
 font-size: 0.85rem;
}

.booking-panel #otcContainer {
 min-height: 420px;
}

.booking-panel iframe,
.booking-embed-iframe {
 display: block;
 width: 100%;
 border: none;
 background: #fff;
}

.booking-loading {
 margin: 0;
 padding: 1.5rem 1rem;
 text-align: center;
 color: var(--text-muted);
 font-size: 0.92rem;
}

.booking-panel.is-loaded .booking-loading {
 display: none;
}

.book-page-section {
 padding-top: 2rem;
 padding-bottom: 2.5rem;
}

.book-page-header {
 margin-bottom: 1.5rem;
}

.book-page-lead {
 max-width: 40rem;
 margin-left: auto;
 margin-right: auto;
 margin-top: 0.75rem;
 text-align: center;
 color: var(--text-muted);
 font-size: 0.95rem;
 line-height: 1.55;
}

.book-page-lead a {
 color: var(--accent-bright);
 text-decoration: underline;
 text-underline-offset: 2px;
}

.book-page-foot {
 margin-top: 1.5rem;
 text-align: center;
}

.book-page-back {
 color: var(--text-muted);
 font-size: 0.92rem;
 text-decoration: none;
 transition: color 0.2s ease;
}

.book-page-back:hover,
.book-page-back:focus-visible {
 color: var(--accent-bright);
}

@media (max-width: 640px) {
 .booking-panel #otcContainer {
 min-height: 360px;
 }

 .booking-panel iframe,
 .booking-embed-iframe {
 min-height: 360px !important;
 }
}

.site-footer {
 border-top: 1px solid var(--border);
 padding: 3rem 0 2rem;
 margin-top: 2rem;
 background: #07080b;
 position: relative;
}

.site-footer::before {
 content: "";
 position: absolute;
 top: 0;
 left: 0;
 right: 0;
 height: 1px;
 background: linear-gradient(90deg, transparent, rgba(141, 198, 63, 0.35), transparent);
}

.footer-grid {
 display: grid;
 grid-template-columns: 1.15fr repeat(3, minmax(0, 1fr));
 gap: 1.75rem 2rem;
 margin-bottom: 1.75rem;
 align-items: start;
}

@media (max-width: 900px) {
 .footer-grid {
 grid-template-columns: 1fr 1fr;
 gap: 1.5rem;
 }
}

@media (max-width: 560px) {
 .footer-grid {
 grid-template-columns: 1fr;
 }
}

/* Find us column */
.footer-col--find .footer-address {
 color: var(--text-muted);
 font-size: 0.88rem;
 line-height: 1.6;
 margin: 0 0 0.5rem;
}

.footer-directions {
 display: inline-flex;
 align-items: center;
 gap: 0.3rem;
 color: var(--accent-bright) !important;
 font-size: 0.88rem;
 font-weight: 600;
 margin-top: 0.25rem;
}

.footer-directions::after {
 content: "→";
 font-size: 0.8em;
}

.footer-brand p {
 color: var(--text-muted);
 font-size: 0.95rem;
 margin: 0.75rem 0 0;
 max-width: 320px;
}

.footer-col h4 {
 font-family: var(--font-display);
 font-size: 1.1rem;
 letter-spacing: 0.08em;
 margin: 0 0 1rem;
 text-transform: uppercase;
}

.footer-col a {
 display: block;
 color: var(--text-muted);
 text-decoration: none;
 padding: 0.28rem 0;
 font-size: 0.92rem;
}

.footer-col a:hover {
 color: var(--accent-bright);
}

.social-row {
 display: flex;
 gap: 0.75rem;
 margin-top: 1rem;
}

.social-row a {
 display: inline-flex;
 width: 40px;
 height: 40px;
 align-items: center;
 justify-content: center;
 border-radius: 8px;
 background: rgba(255, 255, 255, 0.06);
 border: 1px solid var(--border);
 color: var(--text);
 padding: 0;
}

.social-row a:hover {
 background: rgba(141, 198, 63, 0.15);
 border-color: rgba(141, 198, 63, 0.35);
 color: var(--accent-bright);
}

.footer-bottom {
 padding-top: 1.5rem;
 border-top: 1px solid var(--border);
 display: flex;
 flex-wrap: wrap;
 justify-content: space-between;
 gap: 1rem;
 font-size: 0.82rem;
 color: var(--text-muted);
}

.footer-bottom a {
 color: var(--text-muted);
}

.page-hero {
 padding: 2.75rem 0 1.75rem;
 text-align: center;
 position: relative;
}

.page-hero h1 {
 font-family: var(--font-display);
 font-size: var(--text-h1-page);
 font-weight: 400;
 letter-spacing: 0.05em;
 line-height: 1.08;
 margin: 0 0 0.65rem;
 text-transform: uppercase;
 color: var(--text);
}

.page-hero p,
.page-hero .page-hero-lead {
 margin: 0 auto;
 max-width: 36rem;
 color: var(--text-muted);
 font-size: var(--text-lead);
 line-height: 1.6;
}

.faq-list {
 max-width: 920px;
 margin: 0 auto;
 display: grid;
 gap: 0.9rem;
}

.faq-item {
 border: 1px solid var(--border);
 border-radius: 10px;
 background: var(--bg-panel);
 overflow: hidden;
}

.faq-item summary {
 list-style: none;
 cursor: pointer;
 background: rgba(255, 255, 255, 0.04);
 color: var(--text-muted);
 font-weight: 700;
 padding: 1rem 1.1rem;
 border-bottom: 1px solid transparent;
 transition: background 0.2s, color 0.2s, border-color 0.2s;
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 1rem;
}

.faq-item summary::after {
 content: "+";
 flex-shrink: 0;
 width: 1.75rem;
 height: 1.75rem;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 border-radius: 999px;
 border: 1px solid var(--border);
 color: var(--accent-bright);
 font-size: 1.1rem;
 font-weight: 400;
 line-height: 1;
 transition: transform 0.2s ease, background 0.2s ease;
}

.faq-item[open] summary::after {
 content: "−";
 background: rgba(141, 198, 63, 0.15);
 border-color: var(--border-accent);
}

.faq-item summary::-webkit-details-marker {
 display: none;
}

.faq-item[open] summary {
 background: var(--accent-dim);
 color: var(--accent-bright);
 border-bottom-color: rgba(141, 198, 63, 0.35);
}

.faq-item p {
 margin: 0;
 padding: 1rem 1.1rem 1.2rem;
 color: var(--text-muted);
}

.faq-item p + ul {
 margin: -0.5rem 0 0;
 padding: 0 1.1rem 1.2rem 2.25rem;
 color: var(--text-muted);
 font-size: 0.95rem;
}

.faq-item ul li {
 margin: 0.35rem 0;
}

.offers-grid {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 1rem;
}

@media (max-width: 900px) {
 .offers-grid {
 grid-template-columns: repeat(2, 1fr);
 }
}

@media (max-width: 640px) {
 .offers-grid {
 grid-template-columns: 1fr;
 }
}

.offer-card {
 background: linear-gradient(165deg, rgba(141, 198, 63, 0.05) 0%, var(--bg-panel) 48%);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 padding: 1.35rem;
 display: flex;
 flex-direction: column;
 gap: 0.55rem;
 transition: border-color 0.2s ease, transform 0.25s ease, box-shadow 0.25s ease;
 position: relative;
 overflow: hidden;
}

.offer-card::before {
 content: "";
 position: absolute;
 top: 0;
 left: 0;
 right: 0;
 height: 2px;
 background: linear-gradient(90deg, var(--accent), transparent);
 opacity: 0.65;
}

.offer-card:hover {
 border-color: var(--border-accent);
 transform: translateY(-3px);
 box-shadow: var(--shadow-card);
}

.offer-card h3 {
 margin: 0;
 font-family: var(--font-display);
 font-size: 1.7rem;
 letter-spacing: 0.06em;
 text-transform: uppercase;
}

.offer-main {
 margin: 0.3rem 0 0;
 color: var(--accent-bright);
 font-weight: 700;
}

.offer-code,
.offer-time {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.92rem;
}

.offer-detail {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.92rem;
 line-height: 1.55;
}

.offer-detail strong {
 color: var(--text);
}

.offers-important {
 margin-bottom: 2.5rem;
 padding: 1.1rem 1.5rem 1.25rem;
 background: var(--bg-panel);
 border: 1px solid rgba(141, 198, 63, 0.28);
 border-radius: var(--radius-lg);
 position: relative;
 overflow: hidden;
}

.offers-important::before {
 content: "";
 position: absolute;
 top: 0; left: 0; right: 0;
 height: 2px;
 background: linear-gradient(90deg, var(--accent), transparent);
 opacity: 0.6;
}

.offers-important-title {
 margin: 0 0 0.9rem;
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: var(--text-muted);
 font-family: var(--font-body);
}

.offers-rules {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 0.75rem;
}

.offers-rule {
 display: flex;
 gap: 0.6rem;
 align-items: flex-start;
}

.offers-rule-icon {
 flex-shrink: 0;
 display: flex;
 align-items: center;
 justify-content: center;
 width: 1.6rem;
 height: 1.6rem;
 font-family: var(--font-display);
 font-size: 0.78rem;
 letter-spacing: 0.04em;
 color: var(--accent-bright);
 background: rgba(141, 198, 63, 0.1);
 border: 1px solid rgba(141, 198, 63, 0.25);
 border-radius: 50%;
}

.offers-rule strong {
 display: block;
 font-size: 0.82rem;
 font-weight: 700;
 color: var(--text);
 margin-bottom: 0.15rem;
}

.offers-rule p {
 margin: 0;
 font-size: 0.8rem;
 line-height: 1.5;
 color: var(--text-muted);
}

@media (max-width: 700px) {
 .offers-rules {
 grid-template-columns: 1fr;
 gap: 0.65rem;
 }
}

.offer-card .btn {
 margin-top: auto;
}

.discount-signup {
 padding: 1.75rem 0 2rem;
}

.register-interest-hero {
 display: flex;
 flex-direction: column;
 align-items: center;
 max-width: 40rem;
 margin: 0 auto;
 padding-top: 3.25rem;
 padding-bottom: 3rem;
 text-align: center;
 position: relative;
}

.register-interest-hero::before {
 content: "";
 position: absolute;
 left: 50%;
 top: 0;
 transform: translateX(-50%);
 width: min(640px, 90vw);
 height: 180px;
 background: radial-gradient(ellipse at center, rgba(141, 198, 63, 0.12), transparent 70%);
 pointer-events: none;
 z-index: -1;
}

.register-interest-hero h1 {
 width: 100%;
 margin-bottom: 1.15rem;
}

.register-interest-lead {
 width: 100%;
 max-width: 34rem;
 margin: 0;
 color: var(--text-muted);
 font-size: 1rem;
 line-height: 1.55;
 text-align: center;
}

.register-interest-form {
 width: 100%;
 max-width: 34rem;
 margin: 1.35rem 0 0;
 padding: 0;
}

.register-interest-hero .register-interest-form.discount-signup {
 padding: 0;
}

.register-interest-form-row {
 display: flex;
 flex-wrap: wrap;
 align-items: stretch;
 gap: 0.65rem;
 width: 100%;
}

.register-interest-form-row .discount-signup-field {
 flex: 1 1 14rem;
 min-width: 0;
 margin: 0;
}

.register-interest-form-row .discount-signup-field label {
 display: none;
}

.register-interest-form-row input[type="email"] {
 width: 100%;
 min-height: 2.85rem;
 margin: 0;
}

.register-interest-form-row .btn-primary {
 flex: 0 0 auto;
 min-height: 2.85rem;
 padding-inline: 1.25rem;
 white-space: nowrap;
}

.register-interest-form .discount-signup-message {
 margin: 0.65rem 0 0;
 text-align: center;
}

.register-interest-note {
 width: 100%;
 max-width: 34rem;
 margin: 0.8rem 0 0;
 font-size: 0.9rem;
 color: var(--text-muted);
 line-height: 1.5;
 text-align: center;
}

.register-interest-links {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 align-items: center;
 gap: 0.55rem 1.1rem;
 width: 100%;
 max-width: 34rem;
 margin: 1.15rem 0 0;
 font-size: 0.92rem;
}

.register-interest-links a {
 display: inline;
 padding: 0;
 min-height: 0;
 border: 0;
 border-radius: 0;
 background: none;
 color: var(--accent-bright);
 font-weight: 600;
 text-decoration: underline;
 text-underline-offset: 0.18em;
}

.register-interest-links a:hover {
 border: 0;
 color: #f0ffd9;
}

.game-page-register-callout {
 margin: 0;
 padding: 1.25rem 1.2rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-md, 12px);
 background: linear-gradient(145deg, rgba(141, 198, 63, 0.06) 0%, var(--bg-panel) 55%);
}

.game-page-register-callout p {
 margin: 0.65rem 0 1.15rem;
 color: var(--text-muted);
 line-height: 1.6;
 max-width: 42rem;
 font-size: 0.92rem;
}

.game-page-register-callout .game-page-section-heading {
 margin-bottom: 0;
}

.discount-signup-inner {
 display: grid;
 grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
 gap: 1.25rem 2rem;
 align-items: end;
 padding: 0;
 border: 0;
 border-radius: 0;
 background: transparent;
 box-shadow: none;
}

main > .wrap:has(.register-interest-hero) + .discount-signup .discount-signup-inner {
 max-width: 52rem;
 margin: 0 auto;
}

.discount-signup-copy .eyebrow {
 margin: 0 0 0.35rem;
 justify-content: flex-start;
}

.discount-signup-copy .eyebrow::before,
.discount-signup-copy .eyebrow::after {
 display: none;
}

.discount-signup-copy h3 {
 margin: 0 0 0.4rem;
 font-family: var(--font-display);
 font-size: clamp(1.45rem, 2.8vw, 1.85rem);
 letter-spacing: 0.04em;
 text-transform: uppercase;
 line-height: 1.05;
}

.discount-signup-copy > p {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.92rem;
 line-height: 1.45;
 max-width: 34ch;
}

.discount-signup-perks {
 display: none;
}

.discount-signup-form-col {
 padding: 0;
 border: 0;
 border-radius: 0;
 background: transparent;
}

.discount-signup-form label {
 display: block;
 margin-bottom: 0.28rem;
 color: var(--text-muted);
 font-size: 0.68rem;
 text-transform: uppercase;
 letter-spacing: 0.1em;
 font-weight: 700;
}

.discount-signup-fields {
 display: flex;
 flex-direction: column;
 gap: 0.65rem;
 margin-bottom: 0.65rem;
}

.discount-signup-fields--row {
 flex-direction: row;
 gap: 0.65rem;
}

.discount-signup-field {
 flex: 1;
 min-width: 0;
}

.discount-signup-help {
 margin: 0.55rem 0 0;
 font-size: 0.78rem;
 color: var(--text-muted);
 line-height: 1.4;
}

.discount-signup-actions {
 display: flex;
 align-items: stretch;
}

.discount-signup-actions .btn {
 width: 100%;
 padding: 0.75rem 1.15rem;
 box-shadow: none;
}

.discount-signup-form input[type="email"] {
 width: 100%;
 border-radius: 6px;
 border: 1px solid var(--border);
 background: rgba(255, 255, 255, 0.04);
 color: var(--text);
 padding: 0.65rem 0.8rem;
 font-size: 0.92rem;
}

.discount-signup-form input[type="email"]::placeholder {
 color: rgba(255, 255, 255, 0.35);
}

.discount-signup-form input[type="email"]:focus {
 outline: none;
 border-color: rgba(141, 198, 63, 0.55);
 box-shadow: 0 0 0 2px rgba(141, 198, 63, 0.12);
}

.discount-signup-message {
 display: none;
 margin: 0.65rem 0 0;
 border-radius: 6px;
 border: 1px solid transparent;
 padding: 0.55rem 0.7rem;
 font-size: 0.85rem;
 line-height: 1.4;
 min-height: 0;
}

.discount-signup-message.show {
 display: block;
}

.discount-signup-message.info {
 background: rgba(141, 198, 63, 0.12);
 border-color: rgba(141, 198, 63, 0.35);
 color: #d8f6b4;
}

.discount-signup-message.success {
 background: rgba(141, 198, 63, 0.15);
 border-color: rgba(141, 198, 63, 0.45);
 color: #f4ffe7;
}

.discount-signup-message.error {
 background: rgba(196, 76, 61, 0.18);
 border-color: rgba(196, 76, 61, 0.5);
 color: #ffd0c8;
}

@media (max-width: 820px) {
 .discount-signup-inner {
 grid-template-columns: 1fr;
 padding: 0;
 gap: 1rem;
 align-items: start;
 }

 .discount-signup-fields--row {
 flex-direction: column;
 }

 .discount-signup-copy > p {
 max-width: none;
 }
}

@media (max-width: 640px) {
 .offers-important ul {
 columns: 1;
 }
}

.contact-note {
 margin: 0 0 1rem;
 font-size: 0.95rem;
 color: var(--text-muted);
}

.contact-detail-label {
 color: var(--text);
 font-weight: 700;
}

.contact-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.75rem;
 margin-top: 1rem;
}

.contact-social-wrap {
 margin-top: 1.75rem;
 padding: 1.5rem 2rem;
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: 14px;
 text-align: center;
}

.contact-social-title {
 font-family: var(--font-display);
 font-size: 1.2rem;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 margin: 0 0 1rem;
}

.contact-form-section {
 margin-top: 1.75rem;
}

.contact-form-section-inner {
 max-width: 720px;
 margin-left: auto;
 margin-right: auto;
 padding: 1.75rem 1.5rem;
 background: var(--bg-elevated);
 border: 1px solid var(--border);
 border-radius: 14px;
 box-shadow: var(--glow);
}

@media (min-width: 640px) {
 .contact-form-section-inner {
 padding: 2rem 2.25rem;
 }
}

.contact-form-heading {
 margin: 0 0 0.65rem;
 font-family: var(--font-display);
 font-size: 1.25rem;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: var(--text);
}

.contact-form-intro {
 margin: 0 0 1.35rem;
 color: var(--text-muted);
 font-size: 0.95rem;
 line-height: 1.65;
 text-align: center;
 max-width: 42rem;
 margin-left: auto;
 margin-right: auto;
}

.contact-form {
 position: relative;
 display: flex;
 flex-direction: column;
 gap: 0.9rem;
}

.contact-form-row {
 display: flex;
 flex-direction: column;
 gap: 0.9rem;
}

@media (min-width: 640px) {
 .contact-form-row--split {
 flex-direction: row;
 align-items: flex-start;
 }

 .contact-form-row--split .contact-form-field {
 flex: 1;
 min-width: 0;
 }
}

.contact-form-field label {
 display: block;
 margin-bottom: 0.35rem;
 color: var(--text-muted);
 font-size: 0.85rem;
 font-weight: 700;
 letter-spacing: 0.06em;
 text-transform: uppercase;
}

.contact-form-field input,
.contact-form-field textarea {
 width: 100%;
 border-radius: 8px;
 border: 1px solid var(--border);
 background: #0d0f14;
 color: var(--text);
 padding: 0.82rem 0.95rem;
 font-size: 0.95rem;
 font-family: var(--font-body);
}

.contact-form-field input:focus,
.contact-form-field textarea:focus {
 outline: none;
 border-color: rgba(141, 198, 63, 0.45);
 box-shadow: 0 0 0 3px rgba(141, 198, 63, 0.16);
}

.contact-form-field textarea {
 min-height: 140px;
 resize: vertical;
}

.contact-captcha-row {
 display: flex;
 flex-wrap: wrap;
 align-items: flex-end;
 gap: 0.75rem;
}

.contact-captcha-row .contact-form-field {
 flex: 1;
 min-width: 120px;
}

.contact-captcha-question {
 margin: 0 0 0.35rem;
 font-size: 0.9rem;
 color: var(--accent-bright);
 font-weight: 600;
}

.contact-honeypot {
 position: absolute;
 left: -9999px;
 width: 1px;
 height: 1px;
 overflow: hidden;
 opacity: 0;
 pointer-events: none;
}

.contact-form-submit {
 margin-top: 0.35rem;
 width: 100%;
}

@media (min-width: 640px) {
 .contact-form-submit {
 width: auto;
 align-self: flex-start;
 min-width: 200px;
 }
}

.contact-form-message {
 margin: 0;
 font-size: 0.9rem;
 min-height: 1.25rem;
}

.contact-form-message.success {
 color: var(--accent-bright);
}

.contact-form-message.error {
 color: #ffb4a8;
}

.contact-form-message.info {
 color: #a8d4ff;
}

.contact-form-hint {
 margin-top: 0.85rem;
 font-size: 0.9rem;
 line-height: 1.45;
 color: var(--text-muted);
 max-width: 42rem;
}

/* --- Google reviews marquee (index) --- */
.reviews-section {
 overflow: hidden;
}

.reviews-summary {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.35rem 0.5rem;
}

.reviews-google-link {
 font-weight: 600;
 white-space: nowrap;
}

/* Legacy. keep for any remaining references */
.reviews-google-score {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.35rem 0.5rem;
 margin: 0 auto 0.5rem;
 max-width: 560px;
 font-size: 1rem;
 color: var(--text-muted);
}

/* Dual platform rating row */
.reviews-score-row {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.75rem 1.25rem;
 margin: 0 auto 0.5rem;
 font-size: 0.95rem;
 color: var(--text-muted);
}

.reviews-score-badge {
 display: inline-flex;
 align-items: center;
 gap: 0.35rem;
 padding: 0.4rem 0.85rem;
 border-radius: 999px;
 border: 1px solid var(--border);
 background: rgba(255,255,255,0.03);
 white-space: nowrap;
}

.reviews-score-badge .reviews-stars {
 color: #f5c518;
 letter-spacing: 0.04em;
 font-size: 0.85em;
}

.reviews-score-badge strong {
 color: var(--text);
 font-size: 0.9rem;
}

.reviews-platform-link {
 font-size: 0.78rem;
 font-weight: 600;
 color: var(--text-muted);
 border-left: 1px solid var(--border);
 padding-left: 0.6rem;
 margin-left: 0.1rem;
 white-space: nowrap;
 transition: color 0.15s;
}

.reviews-platform-link:hover {
 color: var(--accent-bright);
}

.reviews-score-badge--ta .reviews-stars {
 color: #34e0a1;
}

.reviews-score-divider {
 width: 1px;
 height: 1.4rem;
 background: var(--border);
 display: none; /* hidden on mobile, shown on wider screens */
}

@media (min-width: 560px) {
 .reviews-score-divider {
 display: block;
 }
}

.reviews-google-score .reviews-stars,
.reviews-google-score strong {
 color: var(--text);
}

.home-faq-teaser {
 padding-top: calc(var(--section-space) - 0.5rem);
}

/* Cookie consent. full-width bottom bar (normal UK pattern for analytics) */
.cookie-consent {
 position: fixed;
 left: 0;
 right: 0;
 bottom: 0;
 z-index: 130;
 max-width: none;
 width: 100%;
 margin: 0;
 padding: 0.9rem 1.25rem calc(0.9rem + env(safe-area-inset-bottom, 0px));
 background: rgba(12, 14, 18, 0.96);
 border: 0;
 border-top: 1px solid rgba(255, 255, 255, 0.12);
 border-radius: 0;
 box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.45);
 backdrop-filter: blur(10px);
}

.cookie-consent-copy--short {
 display: none;
}

.cookie-consent-inner {
 display: flex;
 flex-direction: row;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
 gap: 0.85rem 1.25rem;
 max-width: var(--max);
 margin: 0 auto;
 width: 100%;
 box-sizing: border-box;
}

.cookie-consent-copy {
 margin: 0;
 flex: 1 1 16rem;
 min-width: 0;
 color: rgba(242, 238, 230, 0.82);
 font-family: var(--font-body);
 font-size: 0.92rem;
 line-height: 1.45;
}

.cookie-consent-copy a {
 color: var(--accent-bright);
 text-decoration: underline;
 text-underline-offset: 2px;
}

.cookie-consent-copy a:hover {
 color: #c6f06a;
}

.cookie-consent-actions {
 display: flex;
 flex-wrap: nowrap;
 flex-shrink: 0;
 gap: 0.55rem;
}

.cookie-consent-btn {
 appearance: none;
 border: 1px solid rgba(255, 255, 255, 0.28);
 border-radius: 2px;
 min-height: 2.5rem;
 min-width: 5.5rem;
 padding: 0.55rem 1.1rem;
 background: transparent;
 color: var(--text);
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.82rem;
 font-weight: 700;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 cursor: pointer;
 transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.cookie-consent-btn:hover {
 border-color: rgba(255, 255, 255, 0.5);
 background: rgba(255, 255, 255, 0.06);
}

.cookie-consent-btn--accept {
 border-color: var(--accent);
 background: var(--accent);
 color: var(--ink-on-accent, #0a0c10);
}

.cookie-consent-btn--accept:hover {
 border-color: var(--accent-bright);
 background: var(--accent-bright);
 color: var(--ink-on-accent, #0a0c10);
}

body.cookie-banner-visible {
 padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
}

@media (max-width: 700px) {
 .cookie-consent {
  padding: 0.85rem 1rem calc(0.85rem + env(safe-area-inset-bottom, 0px));
 }

 body.has-mobile-book-bar.cookie-banner-visible .cookie-consent {
  bottom: 0;
  border-bottom: 0;
 }

 .cookie-consent-inner {
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
 }

 .cookie-consent-copy--full {
  display: none;
 }

 .cookie-consent-copy--short {
  display: block;
  flex: none;
  font-size: 0.88rem;
  line-height: 1.4;
 }

 .cookie-consent-actions {
  width: 100%;
 }

 .cookie-consent-btn {
  flex: 1 1 0;
  min-width: 0;
 }

 body.has-mobile-book-bar.cookie-banner-visible {
  padding-bottom: calc(7.25rem + env(safe-area-inset-bottom, 0px));
 }

 body.cookie-banner-visible:not(.has-mobile-book-bar) {
  padding-bottom: calc(7.25rem + env(safe-area-inset-bottom, 0px));
 }
}

/* Homepage hero: keep Book clear of cookie chip */
body.page-home.cookie-banner-visible .chrono-copy {
 padding-bottom: calc(2.75rem + env(safe-area-inset-bottom, 0px));
}

@media (max-width: 900px) {
 body.page-home.cookie-banner-visible .chrono-copy {
 padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
 }

 body.page-home.has-mobile-book-bar.cookie-banner-visible .chrono-copy {
 padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
 }
}

.faq-teaser-list {
 list-style: none;
 margin: 0;
 padding: 0;
 display: grid;
 gap: 1rem;
 grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.faq-teaser-list li {
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius);
 padding: 1.1rem 1.2rem;
 transition: border-color 0.2s ease, background 0.2s ease;
}

.faq-teaser-list li:hover {
 border-color: rgba(141, 198, 63, 0.22);
 background: rgba(141, 198, 63, 0.03);
}

.faq-teaser-list h3 {
 margin: 0 0 0.45rem;
 font-size: 1rem;
}

.faq-teaser-list p {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.92rem;
 line-height: 1.5;
}

.faq-teaser-more {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem;
 justify-content: center;
 margin: 1.5rem 0 0;
}

.visit-map-wrap {
 margin-top: 2rem;
 display: grid;
 grid-template-columns: 1fr minmax(220px, 280px);
 border-radius: var(--radius-lg);
 overflow: hidden;
 border: 1px solid var(--border-accent);
 box-shadow: var(--shadow-card), inset 0 1px 0 rgba(255, 255, 255, 0.04);
 background: var(--bg-panel);
}

.visit-map-frame {
 position: relative;
 min-height: 280px;
 background: #0d1016;
}

.visit-map-frame:not(.visit-location-map)::after {
 content: "";
 position: absolute;
 inset: 0;
 pointer-events: none;
 background: linear-gradient(180deg, rgba(10, 12, 16, 0.35) 0%, transparent 28%, transparent 72%, rgba(10, 12, 16, 0.5) 100%);
 z-index: 1;
}

.visit-map-frame iframe {
 display: block;
 width: 100%;
 height: 100%;
 min-height: 280px;
 border: 0;
 filter: grayscale(88%) invert(90%) hue-rotate(185deg) brightness(0.82) contrast(1.08) saturate(0.65);
}

.visit-location-map {
 position: relative;
 min-height: 320px;
 background: #0a0c10;
 overflow: hidden;
 isolation: isolate;
}

.visit-location-map iframe {
 position: absolute;
 inset: 0;
 display: block;
 width: 100%;
 height: 100%;
 border: 0;
 filter: grayscale(100%) invert(88%) hue-rotate(180deg) brightness(0.78) contrast(1.12) saturate(0.55);
 transform: scale(1.035);
 transform-origin: center center;
}

.visit-location-map::after {
 content: "";
 position: absolute;
 inset: 0;
 z-index: 1;
 pointer-events: none;
 background: linear-gradient(
 165deg,
 rgba(10, 12, 16, 0.22) 0%,
 transparent 32%,
 transparent 68%,
 rgba(10, 12, 16, 0.38) 100%
 );
}

.visit-map-badge {
 display: flex;
 flex-direction: column;
 justify-content: center;
 gap: 0.55rem;
 padding: 1.5rem 1.35rem;
 background: linear-gradient(160deg, rgba(141, 198, 63, 0.1) 0%, var(--bg-elevated) 55%);
 border-left: 1px solid var(--border);
}

.visit-map-badge-label {
 margin: 0;
 font-size: 0.68rem;
 font-weight: 700;
 letter-spacing: 0.18em;
 text-transform: uppercase;
 color: var(--accent);
}

.visit-map-badge strong {
 font-family: var(--font-display);
 font-size: 1.45rem;
 letter-spacing: 0.05em;
 text-transform: uppercase;
 line-height: 1.05;
}

.visit-map-badge-address {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.92rem;
 line-height: 1.55;
}

.visit-map-badge .btn {
 margin-top: 0.35rem;
}

@media (max-width: 768px) {
 .visit-map-wrap {
 grid-template-columns: 1fr;
 }

 .visit-map-badge {
 border-left: 0;
 border-top: 1px solid var(--border);
 }
}

.mobile-book-bar,
body.has-mobile-book-bar {
 display: none !important;
 padding-bottom: 0 !important;
}

.reviews-marquee-wrap {
 margin-top: 0.75rem;
}

.reviews-marquee-clip {
 overflow: hidden;
 margin: 0 -1.25rem;
 padding: 0.65rem 1.25rem;
 mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
 -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}

.reviews-marquee-track {
 display: flex;
 gap: 1.25rem;
 width: max-content;
 animation: reviews-marquee-scroll linear infinite;
 animation-duration: calc(var(--reviews-marquee-sec, 75) * 1s);
}

@keyframes reviews-marquee-scroll {
 from {
 transform: translateX(0);
 }
 to {
 transform: translateX(-50%);
 }
}

@media (prefers-reduced-motion: reduce) {
 .reviews-marquee-track {
 animation: none;
 flex-wrap: wrap;
 justify-content: center;
 width: 100%;
 max-width: var(--max);
 margin: 0 auto;
 }

 .game-card:hover {
 transform: none;
 }

 .blog-card:hover {
 transform: none;
 }
}

.review-card {
 flex: 0 0 auto;
 width: min(340px, 85vw);
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: 12px;
 padding: 1.1rem 1.2rem;
 box-shadow: 0 8px 28px rgba(0, 0, 0, 0.2);
 transition: border-color 0.2s ease, box-shadow 0.25s ease;
}

.review-card-top {
 display: flex;
 align-items: flex-start;
 gap: 0.75rem;
 margin-bottom: 0.65rem;
}

.review-card-photo {
 width: 40px;
 height: 40px;
 border-radius: 50%;
 object-fit: cover;
 flex-shrink: 0;
 border: 1px solid var(--border);
}

.review-card-photo--placeholder {
 display: block;
 background: rgba(255, 255, 255, 0.08);
}

.review-card-photo--initial {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 40px;
 height: 40px;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-weight: 700;
 font-size: 0.95rem;
 line-height: 1;
 color: var(--text);
 background: linear-gradient(145deg, rgba(141, 198, 63, 0.22), rgba(255, 255, 255, 0.06));
}

.review-card-source {
 font-size: 0.72rem;
 color: var(--text-muted);
 letter-spacing: 0.04em;
}

.review-card-source::before {
 content: "";
 display: inline-block;
 width: 12px;
 height: 12px;
 margin-right: 0.3rem;
 vertical-align: -2px;
 background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234285F4' d='M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z'/%3E%3Cpath fill='%2334A853' d='M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z'/%3E%3Cpath fill='%23FBBC05' d='M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z'/%3E%3Cpath fill='%23EA4335' d='M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* TripAdvisor source badge */
.review-card-source--ta {
 color: #34e0a1;
}

.review-card-source--ta::before {
 background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='50' fill='%2334e0a1'/%3E%3Ccircle cx='50' cy='50' r='28' fill='%23fff'/%3E%3Ccircle cx='50' cy='50' r='14' fill='%2300af87'/%3E%3C/svg%3E") center / contain no-repeat;
}

.reviews-loading {
 margin: 0;
 padding: 2rem 1rem;
 color: var(--text-muted);
 font-size: 0.92rem;
 white-space: nowrap;
}

.review-card-meta {
 display: flex;
 flex-direction: column;
 gap: 0.15rem;
 min-width: 0;
 margin-bottom: 0.65rem;
}

.review-card-author {
 font-weight: 700;
 font-size: 0.92rem;
 color: var(--text);
}

.review-card-stars {
 color: var(--accent-bright);
 font-size: 0.85rem;
 letter-spacing: 0.06em;
 line-height: 1.2;
}

.review-card-time {
 font-size: 0.78rem;
 color: var(--text-muted);
}

.review-card-text {
 margin: 0;
 font-size: 0.9rem;
 line-height: 1.55;
 color: var(--text-muted);
}

.reviews-fallback {
 text-align: center;
 margin: 1rem 0 0;
 color: var(--text-muted);
 font-size: 0.95rem;
}

.reviews-attribution {
 margin: 1.25rem 0 0;
 text-align: center;
 font-size: 0.78rem;
 color: var(--text-muted);
 line-height: 1.5;
 max-width: 36rem;
 margin-left: auto;
 margin-right: auto;
}

.skip-link {
 position: absolute;
 left: -9999px;
 z-index: 999;
 padding: 0.75rem 1rem;
 background: var(--accent);
 color: #0a0c10;
 font-weight: 700;
}

.skip-link:focus {
 left: 1rem;
 top: 1rem;
}

/* Blog listing & posts */
.blog-list {
 list-style: none;
 margin: 0;
 padding: 0;
 display: grid;
 gap: 1rem;
}

@media (min-width: 720px) {
 .blog-list {
 grid-template-columns: repeat(2, 1fr);
 gap: 1.25rem;
 }
}

.blog-card {
 margin: 0;
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius);
 box-shadow: var(--glow);
 transition: border-color 0.2s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.blog-card:hover {
 border-color: rgba(141, 198, 63, 0.25);
 transform: translateY(-2px);
 box-shadow: 0 12px 36px rgba(0, 0, 0, 0.35);
}

.blog-card a {
 display: block;
 padding: 1.25rem 1.35rem;
 color: inherit;
 text-decoration: none;
}

.blog-card a:hover h2 {
 color: var(--accent-bright);
}

.blog-card h2 {
 font-family: var(--font-body);
 font-size: 1.15rem;
 font-weight: 700;
 line-height: 1.35;
 margin: 0 0 0.5rem;
}

.blog-card p {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.95rem;
 line-height: 1.55;
}

.blog-post-page .page-hero {
 padding-bottom: 0.5rem;
}

.blog-post {
 max-width: 42rem;
 margin: 0 auto;
 padding: 0 0 2.5rem;
}

.blog-prose {
 font-size: 1rem;
}

.blog-prose > p:first-child {
 margin-top: 0;
}

.blog-prose h3 {
 font-family: var(--font-body);
 font-size: 1.05rem;
 font-weight: 700;
 margin: 2rem 0 0.65rem;
 color: var(--text);
}

.blog-prose h4 {
 font-family: var(--font-body);
 font-size: 1rem;
 font-weight: 700;
 margin: 1.5rem 0 0.5rem;
}

.blog-prose p {
 margin: 0 0 1rem;
}

.blog-prose ul {
 margin: 0 0 1rem;
 padding-left: 1.25rem;
}

.blog-prose li {
 margin-bottom: 0.35rem;
}

.blog-prose strong {
 font-weight: 700;
 color: var(--text);
}

.blog-back {
 margin: 2rem 0 0;
 padding-top: 1.5rem;
 border-top: 1px solid var(--border);
}

/* --- Game / room pages --- */
.game-page .wrap {
 padding-left: clamp(1.35rem, 4.5vw, 2.75rem);
 padding-right: clamp(1.35rem, 4.5vw, 2.75rem);
}

.game-page .breadcrumbs {
 padding-top: 1.35rem;
 padding-bottom: 0.75rem;
}

.game-page-hero-wrap {
 padding-bottom: 0.25rem;
 text-align: center;
 position: relative;
 width: 100%;
 max-width: 100%;
 overflow-x: hidden;
 background:
 radial-gradient(ellipse 70% 55% at 12% 0%, rgba(141, 198, 63, 0.09), transparent 58%),
 radial-gradient(ellipse 50% 40% at 88% 20%, rgba(141, 198, 63, 0.05), transparent 50%);
}

.game-page-hero-wrap.page-hero {
 text-align: center;
 padding-top: 1.15rem;
 padding-bottom: 0.75rem;
}

.game-page-hero-wrap::after {
 display: none;
}

.game-page-hero-wrap h1 {
 text-align: center;
}

.game-page-hero-wrap::before {
 display: none;
}

.game-page-hero {
 display: flex;
 flex-direction: column;
 gap: clamp(1rem, 2.5vw, 1.35rem);
 align-items: stretch;
 min-width: 0;
 max-width: 52rem;
 margin: 0 auto;
 width: 100%;
}

.game-page-hero > div:first-child {
 display: flex;
 flex-direction: column;
 align-items: center;
 text-align: center;
 min-width: 0;
 width: 100%;
}

@media (max-width: 960px) {
 .game-page-hero-wrap.page-hero {
 padding-top: 0.85rem;
 padding-bottom: 0.5rem;
 }

 .game-page-hero .eyebrow {
 display: flex;
 width: 100%;
 max-width: 100%;
 justify-content: center;
 }

 .game-page-hero h1 {
 font-size: clamp(1.75rem, 8vw, 2.35rem);
 }

 .game-page-content--compact {
 width: 100%;
 max-width: 100%;
 min-width: 0;
 }

 .game-page-storyline {
 max-width: none;
 }

 .game-page .breadcrumbs {
 padding-top: 1.1rem;
 }

 .game-page .breadcrumbs + .game-page-hero-wrap {
 padding-top: 0.65rem;
 }
}

.game-page-hero-media {
 order: -1;
 position: relative;
 width: 100%;
 min-width: 0;
 max-width: 100%;
 border-radius: 14px;
 overflow: hidden;
 border: 1px solid rgba(141, 198, 63, 0.18);
 background: var(--bg-elevated);
 box-shadow:
 0 22px 60px rgba(0, 0, 0, 0.34),
 0 0 34px rgba(141, 198, 63, 0.08);
}

.game-page-hero-media::after {
 content: "";
 position: absolute;
 inset: 0;
 background:
 linear-gradient(180deg, transparent 62%, rgba(0, 0, 0, 0.18)),
 radial-gradient(ellipse 90% 70% at 10% 0%, rgba(141, 198, 63, 0.08), transparent 54%);
 pointer-events: none;
}

.game-page-hero img {
 width: 100%;
 max-width: 100%;
 height: auto;
 aspect-ratio: 16 / 9;
 object-fit: contain;
 display: block;
 border: 0;
 border-radius: 0;
 background: var(--bg-elevated);
}

.game-page-hero h1 {
 margin: 0 0 0.35rem;
 line-height: 1.05;
 font-size: clamp(2rem, 4.5vw, 2.75rem);
 letter-spacing: 0.04em;
}

.game-page-hero .eyebrow {
 margin-bottom: 0.5rem;
 justify-content: center;
}

.game-page-hook {
 margin: 1.35rem 0 0;
 max-width: 44rem;
 line-height: 1.55;
 color: var(--text);
 font-size: clamp(1.02rem, 2vw, 1.18rem);
 font-weight: 400;
}

.game-page-hero .section-lead {
 margin-top: 0 !important;
 margin-bottom: 0 !important;
}

.game-page-stats {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.5rem;
 margin: 0.85rem 0 0;
 width: 100%;
}

@media (min-width: 640px) {
 .game-page-stats {
 grid-template-columns: repeat(4, minmax(0, 1fr));
 }
}

.game-page-stats .tag {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 0.42rem;
 width: 100%;
 min-height: 2.25rem;
 padding: 0.45rem 0.5rem;
 border: 1px solid rgba(141, 198, 63, 0.2);
 border-radius: 999px;
 background:
 linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.025)),
 rgba(0, 0, 0, 0.18);
 color: var(--text);
 box-shadow: none;
 font-size: 0.68rem;
 letter-spacing: 0.07em;
 text-align: center;
}

@media (max-width: 480px) {
 .game-page-stats .tag {
 font-size: 0.64rem;
 padding: 0.38rem 0.45rem;
 min-height: 2.1rem;
 }
}

.game-page-stats .tag::before {
 content: "";
 width: 0.34rem;
 height: 0.34rem;
 border-radius: 50%;
 background: var(--accent);
 box-shadow: 0 0 12px rgba(141, 198, 63, 0.42);
}

.game-page-age-note {
 margin: 0.85rem 0 0;
 max-width: 36rem;
 font-size: 0.9rem;
 line-height: 1.55;
 color: var(--text-muted);
}

.game-page-age-note a {
 color: inherit;
 text-decoration: underline;
 text-underline-offset: 0.15em;
}

.game-page-age-note a:hover {
 color: var(--accent);
}

.game-page-hero-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem;
 margin: 1.5rem 0 0;
}

.game-page-body {
 position: relative;
 padding-top: 1.35rem;
 padding-bottom: 3.5rem;
 overflow-x: hidden;
 background:
 radial-gradient(ellipse 70% 45% at 18% 0%, rgba(141, 198, 63, 0.055), transparent 62%),
 linear-gradient(180deg, rgba(255, 255, 255, 0.012), transparent 34%);
}

.game-page-body.section--flush-top {
 padding-top: 1.35rem;
}

.game-page-body > .wrap {
 width: 100%;
}

.game-page-sheet {
 width: 100%;
 max-width: var(--max);
 margin: 0 auto;
}

.game-page-content--compact {
 max-width: none;
 margin-inline: 0;
 display: flex;
 flex-direction: column;
 gap: 0;
}

.game-page-storyline {
 position: relative;
 max-width: 52rem;
 padding: clamp(1.3rem, 3vw, 1.65rem);
 border: 1px solid rgba(141, 198, 63, 0.24);
 border-radius: var(--radius-lg);
 background:
 radial-gradient(ellipse 80% 130% at 0% 0%, rgba(141, 198, 63, 0.12), transparent 58%),
 linear-gradient(145deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.018) 44%, rgba(0, 0, 0, 0.18));
 box-shadow:
 0 22px 70px rgba(0, 0, 0, 0.32),
 inset 0 1px 0 rgba(255, 255, 255, 0.06);
 overflow: hidden;
}

.game-page-storyline::before {
 content: "";
 position: absolute;
 inset: 0 auto 0 0;
 width: 3px;
 background: linear-gradient(180deg, var(--accent), transparent);
}

.game-page-storyline::after {
 content: none;
 position: absolute;
 right: 1.1rem;
 bottom: -0.7rem;
 font-family: var(--font-display);
 font-size: clamp(3.5rem, 10vw, 6rem);
 letter-spacing: 0.08em;
 color: rgba(255, 255, 255, 0.025);
 pointer-events: none;
}

.game-page-kicker {
 margin: 0 0 0.55rem;
 font-family: var(--font-display);
 font-size: 0.82rem;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

.game-page-storyline p:last-child {
 position: relative;
 z-index: 1;
 margin: 0;
 max-width: 43rem;
 font-size: clamp(1.02rem, 2vw, 1.14rem);
 line-height: 1.66;
 color: var(--text);
}

.game-page-points {
 display: none;
}

.game-page-note {
 padding: 0;
 border: none;
 background: none;
 margin-bottom: 1.75rem;
}

.game-page-note p {
 margin: 0;
 font-size: 1rem;
 line-height: 1.7;
 color: var(--text-muted);
 max-width: 38rem;
}

.game-page-note a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-page-mini-faq {
 display: grid;
 gap: 0.45rem;
 padding: 0;
 border: none;
 border-radius: 0;
 background: none;
}

.game-page-faq-item {
 border: 1px solid rgba(255, 255, 255, 0.06);
 border-radius: 8px;
 background: rgba(0, 0, 0, 0.15);
}

.game-page-faq-more {
 margin: 0.5rem 0 0;
 font-size: 0.88rem;
}

.game-page-faq-more a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-page-more {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.5rem 0.7rem;
 padding-top: 1.35rem;
 margin-top: 0.15rem;
 border-top: 1px solid var(--border);
}

.game-page-more-label {
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.game-page-more a {
 padding: 0.25rem 0.55rem;
 border: 1px solid rgba(141, 198, 63, 0.16);
 border-radius: 999px;
 background: rgba(255, 255, 255, 0.025);
 font-size: 0.86rem;
 font-weight: 600;
 color: var(--accent-bright);
 text-decoration: none;
}

.game-page-more a:hover {
 color: #f0ffd9;
 border-color: rgba(141, 198, 63, 0.36);
 text-decoration: none;
}

.game-page-cta-bar {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.75rem 1rem;
 padding-top: 0.35rem;
 margin-top: 0;
}

.game-page-cta-bar .btn-primary {
 min-width: min(100%, 14rem);
 justify-content: center;
 box-shadow:
 0 12px 34px rgba(141, 198, 63, 0.24),
 0 0 0 1px rgba(255, 255, 255, 0.05) inset;
}

.game-page-useful {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.45rem 0.65rem;
 margin-top: -0.15rem;
 color: var(--text-muted);
 font-size: 0.86rem;
}

.game-page-useful span {
 font-size: 0.68rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.game-page-useful a {
 color: var(--accent-bright);
 font-weight: 600;
 text-decoration: none;
}

.game-page-useful a::after {
 content: "→";
 margin-left: 0.28rem;
 opacity: 0.75;
}

.game-page-useful a:hover {
 color: #f0ffd9;
 text-decoration: underline;
 text-underline-offset: 0.16em;
}

.game-page-cta-link {
 font-size: 0.9rem;
 font-weight: 600;
 color: var(--accent-bright);
}

.game-page-layout {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(250px, 290px);
 gap: clamp(1.75rem, 4vw, 2.75rem);
 align-items: start;
}

.game-page-content {
 min-width: 0;
 display: flex;
 flex-direction: column;
 gap: 1.75rem;
}

.game-page-storyline a,
.game-page-details-item a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-page-section-heading {
 margin: 0 0 0.75rem;
 font-family: var(--font-display);
 font-size: 1.05rem;
 letter-spacing: 0.07em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.game-page-highlights {
 margin: 0;
 padding: 0;
 border: 0;
}

.game-page-facts {
 display: flex;
 flex-wrap: wrap;
 gap: 0.6rem;
 margin: 0;
 padding: 0;
 list-style: none;
}

.game-page-facts li {
 display: inline-flex;
 align-items: center;
 min-height: 2.1rem;
 padding: 0.48rem 0.78rem;
 border: 1px solid rgba(141, 198, 63, 0.18);
 border-radius: 999px;
 background:
 linear-gradient(180deg, rgba(255, 255, 255, 0.052), rgba(255, 255, 255, 0.02)),
 rgba(0, 0, 0, 0.12);
 font-size: 0.84rem;
 line-height: 1.3;
 color: var(--text-muted);
}

.game-page-facts li::before {
 content: "";
 width: 0.38rem;
 height: 0.38rem;
 margin-right: 0.45rem;
 border-radius: 50%;
 background: var(--accent);
 box-shadow: 0 0 12px rgba(141, 198, 63, 0.42);
}

.game-page-details {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.85rem;
 padding: 0;
 border: 0;
 background: none;
}

.game-page-details-item {
 position: relative;
 padding: 1.05rem 1.1rem 1.1rem;
 border: 1px solid rgba(255, 255, 255, 0.085);
 border-radius: var(--radius-md, 12px);
 background:
 radial-gradient(ellipse 80% 80% at 0% 0%, rgba(141, 198, 63, 0.075), transparent 58%),
 linear-gradient(165deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.018) 48%, rgba(0, 0, 0, 0.12));
 box-shadow:
 0 16px 48px rgba(0, 0, 0, 0.24),
 inset 0 1px 0 rgba(255, 255, 255, 0.05);
 overflow: hidden;
}

.game-page-details-item::before {
 content: "";
 position: absolute;
 inset: 0 0 auto 0;
 height: 2px;
 background: linear-gradient(90deg, var(--accent), transparent);
 opacity: 0.7;
}

.game-page-details-heading {
 margin: 0 0 0.45rem;
 font-family: var(--font-display);
 font-size: 0.86rem;
 font-weight: 400;
 letter-spacing: 0.09em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

.game-page-details-item p {
 margin: 0;
 font-size: 0.89rem;
 line-height: 1.58;
 color: var(--text-muted);
}

.game-page-details-item a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-page-local {
 position: relative;
 padding: 1rem 1.1rem 1.05rem;
 border: 1px solid rgba(141, 198, 63, 0.16);
 border-radius: var(--radius-md, 12px);
 background:
 radial-gradient(ellipse 90% 120% at 100% 0%, rgba(141, 198, 63, 0.08), transparent 56%),
 rgba(255, 255, 255, 0.025);
 overflow: hidden;
}

.game-page-local::after {
 content: "CF37";
 position: absolute;
 right: 0.85rem;
 bottom: -0.75rem;
 font-family: var(--font-display);
 font-size: clamp(3rem, 9vw, 5rem);
 letter-spacing: 0.08em;
 color: rgba(255, 255, 255, 0.025);
 pointer-events: none;
}

.game-page-local .game-page-kicker {
 margin-bottom: 0.35rem;
 font-size: 0.76rem;
}

.game-page-local h2 {
 position: relative;
 z-index: 1;
 margin: 0 0 0.35rem;
 font-family: var(--font-display);
 font-size: clamp(1.25rem, 3vw, 1.65rem);
 line-height: 1;
 letter-spacing: 0.05em;
 text-transform: uppercase;
}

.game-page-local p:last-child {
 position: relative;
 z-index: 1;
 max-width: 42rem;
 margin: 0;
 color: var(--text-muted);
 font-size: 0.92rem;
 line-height: 1.58;
}

@media (max-width: 640px) {
 .game-page-details {
 grid-template-columns: 1fr;
 gap: 0.85rem;
 }

 .game-page-details-item + .game-page-details-item {
 padding-top: 0.85rem;
 border-top: 1px solid var(--border);
 }
}

.game-page-panel {
 padding: 1.15rem 1.2rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-md, 12px);
 background: var(--bg-panel);
}

.game-page-faq {
 margin: 0;
 padding: 0;
 border: 0;
}

.game-page-faq-list {
 display: grid;
 gap: 0.45rem;
}

.game-page-faq .faq-item {
 border: 1px solid rgba(255, 255, 255, 0.06);
 border-radius: 8px;
 background: rgba(0, 0, 0, 0.15);
}

.game-page-faq .faq-item p a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-page-review {
 margin: 0;
 padding: 0;
 border: 0;
}

.game-page-review-quote {
 margin: 0;
 padding: 1rem 1.05rem;
 border-left: 3px solid var(--accent);
 border-radius: 0 var(--radius-md, 12px) var(--radius-md, 12px) 0;
 background: rgba(255, 255, 255, 0.03);
}

.game-page-review-quote p {
 margin: 0 0 0.65rem;
 font-size: 0.92rem;
 line-height: 1.58;
 color: var(--text-muted);
 font-style: italic;
}

.game-page-review-quote footer {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.35rem 0.45rem;
 font-size: 0.78rem;
 color: var(--text-muted);
}

.game-page-review-author {
 font-weight: 700;
 color: var(--text);
 font-style: normal;
}

.game-page-review-stars {
 color: var(--accent);
 letter-spacing: 0.05em;
}

.game-page-review-quote footer a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-page-sidebar {
 position: sticky;
 top: calc(var(--header-h, 72px) + 1rem);
 display: flex;
 flex-direction: column;
 gap: 0.85rem;
}

.game-page-sidebar-card {
 padding: 1.15rem 1.1rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-md, 12px);
 background: var(--bg-panel);
}

.game-page-sidebar-card--book {
 background: linear-gradient(165deg, rgba(141, 198, 63, 0.1) 0%, var(--bg-panel) 58%);
 border-color: rgba(141, 198, 63, 0.28);
}

.game-page-sidebar-eyebrow {
 margin: 0 0 0.65rem;
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.game-page-sidebar-cta {
 width: 100%;
 justify-content: center;
}

.game-page-sidebar-link {
 display: inline-block;
 margin-top: 0.65rem;
 font-size: 0.88rem;
 font-weight: 600;
 color: var(--accent-bright);
}

.game-page-sidebar-title {
 margin: 0 0 0.75rem;
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.game-page-sidebar .game-page-facts {
 margin: 0;
 display: grid;
 gap: 0.55rem;
}

.game-page-fact {
 display: grid;
 grid-template-columns: 5.5rem minmax(0, 1fr);
 gap: 0.5rem;
 align-items: baseline;
 padding-bottom: 0.55rem;
 border-bottom: 1px solid var(--border);
}

.game-page-fact:last-child {
 padding-bottom: 0;
 border-bottom: 0;
}

.game-page-fact dt {
 margin: 0;
 font-size: 0.68rem;
 font-weight: 700;
 letter-spacing: 0.07em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.game-page-fact dd {
 margin: 0;
 font-size: 0.88rem;
 line-height: 1.4;
 color: var(--text);
}

.game-page-related {
 margin: 0;
 padding: 0;
 border: 0;
}

.game-page-related-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.6rem;
}

.game-page-related-card {
 display: flex;
 flex-direction: column;
 gap: 0.2rem;
 padding: 0.85rem 0.95rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-md, 12px);
 background: var(--bg-panel);
 text-decoration: none;
 transition: border-color 0.2s ease;
}

.game-page-related-card:hover {
 border-color: rgba(141, 198, 63, 0.35);
}

.game-page-related-name {
 font-size: 0.92rem;
 font-weight: 700;
 color: var(--text);
}

.game-page-related-tag {
 font-size: 0.8rem;
 color: var(--text-muted);
}

.game-page-related-more {
 margin: 0.65rem 0 0;
 font-size: 0.88rem;
}

.game-page-related-more a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-page-cta {
 margin: 0;
 padding: 0;
 border: 0;
}

.game-page-cta--mobile {
 display: none;
}

.game-page-cta .btn {
 width: 100%;
 justify-content: center;
}

@media (max-width: 960px) {
 .game-page-layout {
 grid-template-columns: 1fr;
 }

 .game-page-sidebar {
 position: static;
 order: -1;
 }

 .game-page-sidebar-card--facts {
 display: none;
 }

 .game-page-related-grid {
 grid-template-columns: 1fr;
 }

 .game-page-cta--mobile {
 display: block;
 }

 .game-page-body {
 padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
 }
}

.game-page-also {
 margin: 1.35rem 0 0;
 padding-top: 1.25rem;
 border-top: 1px solid var(--border);
 font-size: 0.9rem;
 color: var(--text-muted);
 line-height: 1.55;
}

.game-page-also a {
 color: var(--accent-bright);
 font-weight: 600;
 text-decoration: none;
}

.game-page-also a:hover {
 text-decoration: underline;
}

#games,
#live-rooms,
#vr-games,
#visit,
#reviews,
#booking-calendar {
 scroll-margin-top: calc(var(--header-h) + 1rem);
}

:focus-visible {
 outline: 2px solid var(--accent-bright);
 outline-offset: 3px;
}

.breadcrumbs + .wrap.page-hero {
 padding-top: 0.5rem;
}

.game-page .breadcrumbs + .wrap.page-hero,
.game-page .breadcrumbs + .game-page-hero-wrap {
 padding-top: 1.15rem;
}

.nav-mobile a:focus-visible,
.nav-desktop a:focus-visible,
.btn:focus-visible {
 outline: 2px solid var(--accent-bright);
 outline-offset: 2px;
}

.nav-toggle-label:focus-visible {
 outline: 2px solid var(--accent-bright);
 outline-offset: 2px;
}

.game-card .btn-block + .btn-block {
 margin-top: 0.65rem !important;
}

/* - - Premium polish & conversion blocks - - */

main > .breadcrumbs + .wrap.page-hero::before,
.wrap.page-hero:first-child::before {
 content: "";
 position: absolute;
 left: 50%;
 top: 0;
 transform: translateX(-50%);
 width: min(640px, 90vw);
 height: 180px;
 background: radial-gradient(ellipse at center, rgba(141, 198, 63, 0.12), transparent 70%);
 pointer-events: none;
 z-index: -1;
}

.hero h1 span {
 text-shadow: 0 0 32px rgba(141, 198, 63, 0.35);
}

.game-card-media img {
 transition: none;
}

.game-card:hover .game-card-media img {
 transform: none;
}

.review-card:hover {
 border-color: var(--border-accent);
 box-shadow: var(--shadow-card);
}

.reviews-google-score {
 padding: 0.65rem 1rem;
 border-radius: 999px;
 border: 1px solid rgba(141, 198, 63, 0.2);
 background: rgba(141, 198, 63, 0.06);
}

.booking-offer-note {
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

.contact-form-section-inner {
 border: 1px solid var(--border);
 box-shadow: var(--shadow-card);
}

.book-cta-strip {
 padding: var(--section-space) 0;
 margin-top: 0;
 background:
 radial-gradient(ellipse 80% 120% at 50% 0%, rgba(141, 198, 63, 0.14), transparent 55%),
 linear-gradient(180deg, rgba(141, 198, 63, 0.04) 0%, transparent 100%);
 border-top: 1px solid var(--border);
 border-bottom: 1px solid var(--border);
}

.book-cta-strip-inner {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
 gap: 1.5rem 2rem;
 padding: 1.75rem 2rem;
 border-radius: var(--radius-lg);
 border: 1px solid var(--border-accent);
 background: linear-gradient(145deg, rgba(141, 198, 63, 0.08) 0%, var(--bg-panel) 55%);
 box-shadow: var(--shadow-card);
}

.book-cta-strip-copy h2 {
 margin: 0 0 0.45rem;
 font-family: var(--font-display);
 font-size: clamp(1.75rem, 4vw, 2.35rem);
 letter-spacing: 0.05em;
 text-transform: uppercase;
 line-height: 1.05;
}

.book-cta-strip-copy p {
 margin: 0;
 max-width: 36rem;
 color: var(--text-muted);
}

.book-cta-strip-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem;
}

@media (max-width: 720px) {
 .book-cta-strip-actions {
 width: 100%;
 }

 .book-cta-strip-actions .btn {
 flex: 1;
 min-width: 140px;
 justify-content: center;
 }
}

@media (prefers-reduced-motion: reduce) {
 .btn-primary::before {
 display: none;
 }

 .btn-primary:hover {
 transform: none;
 }

 .offer-card:hover {
 transform: none;
 }

 .game-card:hover .game-card-media img {
 transform: none;
 }

 .visit-map-frame iframe {
 filter: none;
 }

 .visit-location-map iframe {
 filter: none;
 transform: none;
 }

 .visit-location-map::after {
 display: none;
 }
}

/* - - Visit, how-it-works, prices, groups, booking - - */

#visit.section {
 padding-top: calc(var(--section-space) - 0.5rem);
}

.info-strip--single {
 grid-template-columns: 1fr;
 width: 100%;
 gap: 1.75rem;
}

@media (min-width: 768px) {
 .info-strip--single {
 grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
 gap: 2.5rem;
 align-items: stretch;
 }
}

.hours-list {
 margin: 0;
}

.hours-row {
 display: flex;
 justify-content: space-between;
 align-items: baseline;
 gap: 1.25rem;
 padding: 0.5rem 0;
 border-bottom: 1px solid var(--border);
}

.hours-row:last-child {
 border-bottom: none;
}

.hours-row dt {
 margin: 0;
 font-weight: 500;
 color: var(--text);
 font-size: 0.95rem;
}

.hours-row dd {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.95rem;
 text-align: right;
 white-space: nowrap;
}

.hours-row--call dd {
 color: var(--accent-bright);
 font-weight: 600;
}

.visit-hours-block .opening-note {
 margin-top: 1rem;
 padding-top: 1rem;
 border-top: 1px solid var(--border);
 text-transform: none;
 letter-spacing: 0.01em;
 font-weight: 600;
 line-height: 1.45;
}

.visit-book-block {
 display: flex;
 flex-direction: column;
 gap: 0.85rem;
 padding: 1.35rem 1.5rem;
 border-radius: calc(var(--radius-lg) - 4px);
 background: linear-gradient(160deg, rgba(141, 198, 63, 0.07) 0%, rgba(141, 198, 63, 0.02) 100%);
 box-shadow: inset 0 0 0 1px rgba(141, 198, 63, 0.14);
}

.visit-book-block h3 {
 margin-bottom: 0.15rem;
}

.visit-price-highlight {
 margin: 0;
 font-size: 0.95rem;
 color: var(--text-muted);
 line-height: 1.5;
}

.visit-price-amount {
 display: block;
 margin: 0.15rem 0 0.1rem;
 font-family: var(--font-display);
 font-size: clamp(1.85rem, 4vw, 2.25rem);
 line-height: 1;
 letter-spacing: 0.02em;
 color: var(--accent-bright);
}

.visit-price-unit {
 display: block;
 color: var(--text);
 font-weight: 500;
}

.visit-price-meta {
 display: block;
 font-size: 0.88rem;
 color: var(--text-muted);
}

.visit-price-teaser {
 margin: 0;
 font-size: 0.92rem;
 color: var(--text-muted);
}

.info-strip--single .visit-price-teaser {
 padding-top: 0;
 border-top: 0;
}

.visit-strip-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem;
 margin-top: auto;
 padding-top: 0.35rem;
}

.visit-price-teaser a {
 color: var(--accent-bright);
 font-weight: 600;
}

.visually-hidden {
 position: absolute;
 width: 1px;
 height: 1px;
 padding: 0;
 margin: -1px;
 overflow: hidden;
 clip: rect(0, 0, 0, 0);
 white-space: nowrap;
 border: 0;
}

.visit-location-panel {
 margin-top: 1.5rem;
 display: grid;
 grid-template-columns: minmax(240px, 300px) 1fr;
 align-items: stretch;
 border-radius: var(--radius-lg);
 overflow: hidden;
 border: 1px solid var(--border-accent);
 box-shadow: var(--shadow-card), inset 0 1px 0 rgba(255, 255, 255, 0.04);
 background: var(--bg-panel);
}

.visit-location-aside {
 display: flex;
 flex-direction: column;
 gap: 0.65rem;
 padding: 2rem 1.75rem;
 background: linear-gradient(165deg, rgba(141, 198, 63, 0.06) 0%, var(--bg-panel) 55%);
 border-right: 1px solid var(--border);
}

.visit-location-aside h3 {
 font-family: var(--font-display);
 font-size: 1.35rem;
 letter-spacing: 0.06em;
 margin: 0;
 text-transform: uppercase;
}

.visit-location-aside address {
 font-style: normal;
 color: var(--text-muted);
 font-size: 0.95rem;
 line-height: 1.65;
}

.visit-location-note {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.88rem;
 font-weight: 400;
 line-height: 1.5;
}

@media (max-width: 768px) {
 .visit-location-panel {
 grid-template-columns: 1fr;
 }

 .visit-location-aside {
 border-right: 0;
 border-bottom: 1px solid var(--border);
 padding: 1.75rem 1.35rem;
 }

 .visit-location-map {
 min-height: 280px;
 }
}

.how-it-works {
 padding-top: calc(var(--section-space) - 0.25rem);
 padding-bottom: calc(var(--section-space) - 0.5rem);
}

.how-it-works .section-header {
 margin-bottom: 1.5rem;
}

.how-it-works .section-header .section-lead {
 max-width: 40rem;
 margin-left: auto;
 margin-right: auto;
}

.how-it-works-more {
 display: flex;
 justify-content: center;
 margin: 1.5rem 0 0;
}

.occasions-section {
 padding-top: 2rem;
 padding-bottom: 2rem;
}

.occasions-strip {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 1.5rem 2rem;
 padding: 1.35rem 1.5rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 background: linear-gradient(155deg, rgba(141, 198, 63, 0.04) 0%, var(--bg-panel) 55%);
 box-shadow: var(--shadow-card);
}

.occasions-strip-copy {
 flex: 1;
 min-width: 0;
}

.occasions-strip-copy .eyebrow {
 margin-bottom: 0.35rem;
}

.section-title--occasions {
 font-size: clamp(1.65rem, 3.5vw, 2.15rem);
 text-transform: none;
 letter-spacing: 0.01em;
 margin-bottom: 0.45rem;
}

.occasions-strip-lead {
 margin: 0;
 max-width: 36rem;
 color: var(--text-muted);
 font-size: 0.92rem;
 line-height: 1.5;
}

.occasions-strip-actions {
 display: flex;
 flex-shrink: 0;
 flex-wrap: wrap;
 gap: 0.65rem;
}

@media (max-width: 720px) {
 .occasions-strip {
 flex-direction: column;
 align-items: stretch;
 text-align: center;
 }

 .occasions-strip-lead {
 margin-left: auto;
 margin-right: auto;
 }

 .occasions-strip-actions {
 justify-content: center;
 }
}

.occasions-grid {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 1rem;
}

.occasions-card {
 display: flex;
 flex-direction: column;
 gap: 0.55rem;
 min-height: 100%;
 padding: 1.2rem 1.15rem 1.35rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 background: linear-gradient(155deg, rgba(141, 198, 63, 0.03) 0%, var(--bg-panel) 48%);
 box-shadow: var(--shadow-card);
}

.occasions-card h3 {
 margin: 0;
 font-family: var(--font-display);
 font-size: 1.2rem;
 letter-spacing: 0.05em;
 text-transform: uppercase;
}

.occasions-card p {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.92rem;
 line-height: 1.55;
}

.occasions-card p strong {
 color: var(--text);
}

.occasions-link {
 margin-top: auto;
 padding-top: 0.35rem;
 color: var(--accent-bright);
 font-size: 0.88rem;
 font-weight: 700;
 text-decoration: none;
}

.occasions-link:hover {
 color: #f0ffd9;
}

.occasions-more {
 margin: 1.5rem 0 0;
 text-align: center;
}

.occasions-more a {
 color: var(--accent-bright);
 font-weight: 600;
 text-decoration: none;
}

.occasions-more a:hover {
 text-decoration: underline;
}

[data-gift-vouchers][hidden],
a[href*="gift-vouchers"][hidden] {
 display: none !important;
}

.gift-vouchers-off .gift-vouchers-cta {
 display: none;
}

@media (max-width: 900px) {
 .occasions-grid {
 grid-template-columns: repeat(2, 1fr);
 }
}

@media (max-width: 560px) {
 .occasions-grid {
 grid-template-columns: 1fr;
 }
}

#games.section {
 padding-top: calc(var(--section-space) - 0.5rem);
 padding-bottom: calc(var(--section-space) - 0.25rem);
}

#games .section-header {
 margin-bottom: 1rem;
}

#visit .section-header .section-lead {
 margin-left: 0;
 margin-right: 0;
 max-width: none;
}

.reviews-section.section {
 padding-top: calc(var(--section-space) - 0.25rem);
}

.reviews-section .section-header {
 margin-bottom: 1.25rem;
}

.how-it-works-grid {
 display: grid;
 grid-template-columns: repeat(4, 1fr);
 gap: 1rem;
 list-style: none;
 margin: 0;
 padding: 0;
}

.how-it-works-step {
 padding: 1.2rem 1.1rem 1.35rem;
 border-radius: var(--radius-lg);
 border: 1px solid var(--border);
 background: var(--bg-panel);
 box-shadow: var(--shadow-card);
 display: flex;
 flex-direction: column;
}

.how-it-works-num {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 2rem;
 height: 2rem;
 margin-bottom: 0.75rem;
 border-radius: 50%;
 background: rgba(141, 198, 63, 0.15);
 color: var(--accent-bright);
 font-family: var(--font-display);
 font-size: 1.1rem;
}

.how-it-works-step h3 {
 margin: 0 0 0.45rem;
 font-family: var(--font-display);
 font-size: 1.25rem;
 letter-spacing: 0.05em;
 text-transform: uppercase;
}

.how-it-works-step p {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.9rem;
 line-height: 1.5;
}

.how-it-works-step p a {
 color: var(--accent-bright);
 font-weight: 600;
}

@media (max-width: 900px) {
 .how-it-works-grid {
 grid-template-columns: repeat(2, 1fr);
 }
}

@media (max-width: 520px) {
 .how-it-works-grid {
 grid-template-columns: 1fr;
 }
}

.price-cards-grid {
 display: grid;
 grid-template-columns: repeat(5, 1fr);
 gap: 1rem;
 margin-bottom: 2rem;
}

.price-card {
 text-align: center;
 padding: 1.75rem 1rem;
 border-radius: var(--radius-lg);
 border: 1px solid var(--border);
 background: var(--bg-panel);
 box-shadow: var(--shadow-card);
}

.price-card--highlight {
 border-color: rgba(141, 198, 63, 0.45);
 background: linear-gradient(165deg, rgba(141, 198, 63, 0.1) 0%, var(--bg-panel) 100%);
}

.price-card-players {
 margin: 0 0 0.5rem;
 font-size: 0.78rem;
 font-weight: 700;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.price-card-amount {
 margin: 0;
 font-family: var(--font-display);
 font-size: 2.25rem;
 letter-spacing: 0.04em;
 line-height: 1;
}

.price-card-amount span {
 font-size: 0.95rem;
 color: var(--text-muted);
}

.price-card-note {
 margin: 0.5rem 0 0;
 font-size: 0.75rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

.prices-notes {
 padding: 1.75rem;
 border-radius: var(--radius-lg);
 border: 1px solid var(--border);
 background: var(--bg-panel);
}

.prices-notes ul {
 margin: 0.75rem 0 0;
 padding-left: 1.2rem;
 color: var(--text-muted);
}

.prices-cta {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem;
 margin: 1.25rem 0 0;
}

@media (max-width: 900px) {
 .price-cards-grid {
 grid-template-columns: repeat(2, 1fr);
 }
}

.groups-grid {
 display: grid;
 grid-template-columns: repeat(2, 1fr);
 gap: 1.25rem;
}

.groups-page-hero {
 padding: 1.75rem 0 0;
 margin-bottom: 0;
}

.groups-page-hero.wrap {
 padding-inline: clamp(1.5rem, 4vw, 2.25rem);
}

.groups-hero-bar {
 display: flex;
 flex-direction: column;
 align-items: center;
 text-align: center;
 gap: 1.15rem;
 max-width: 40rem;
 margin-inline: auto;
 padding-bottom: 1.35rem;
 border-bottom: 1px solid var(--border);
}

.groups-hero-main {
 width: 100%;
}

.groups-page-hero .eyebrow {
 margin-bottom: 0.4rem;
 justify-content: center;
}

.groups-page-hero h1 {
 font-family: var(--font-display);
 font-size: clamp(2.1rem, 5.5vw, 3.1rem);
 font-weight: 400;
 text-transform: none;
 letter-spacing: 0.02em;
 line-height: 1;
 margin: 0;
}

.groups-hero-accent {
 color: var(--accent-bright);
}

.groups-hero-types {
 margin: 0.55rem auto 0;
 max-width: 28rem;
 color: var(--text-muted);
 font-size: 0.86rem;
 line-height: 1.45;
}

.groups-hero-cta {
 display: flex;
 flex-direction: row;
 flex-wrap: nowrap;
 align-items: center;
 justify-content: center;
 gap: 1rem 1.25rem;
}

.groups-hero-link {
 color: var(--text-muted);
 font-size: 0.9rem;
 font-weight: 600;
 text-decoration: none;
 white-space: nowrap;
 border-bottom: 1px solid transparent;
 transition: color 0.2s ease, border-color 0.2s ease;
}

.groups-hero-link:hover {
 color: var(--accent-bright);
 border-bottom-color: rgba(141, 198, 63, 0.45);
}

.groups-hero-cta .btn-primary {
 display: inline-flex;
 align-items: center;
 gap: 0.45rem;
 white-space: nowrap;
}

@media (min-width: 768px) {
 .groups-hero-bar {
 flex-direction: row;
 align-items: center;
 justify-content: space-between;
 text-align: left;
 max-width: none;
 gap: 2rem;
 padding-inline: 0.75rem;
 }

 .groups-page-hero .eyebrow {
 justify-content: flex-start;
 }

 .groups-hero-types {
 margin-left: 0;
 margin-right: 0;
 max-width: none;
 }

 .groups-hero-cta {
 justify-content: flex-end;
 flex-shrink: 0;
 }
}

.groups-page-body {
 padding-top: 1.25rem;
 padding-bottom: 2.5rem;
}

.groups-page .groups-card--wide {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 1.25rem 1.5rem;
 margin-bottom: 1rem;
 padding: 1.15rem 1.35rem;
 border-color: rgba(141, 198, 63, 0.22);
 background: linear-gradient(90deg, rgba(141, 198, 63, 0.07) 0%, var(--bg-panel) 42%);
}

.groups-page .groups-card--wide h2 {
 margin-bottom: 0.35rem;
}

.groups-page .groups-card--wide p {
 margin: 0;
 max-width: 42rem;
}

.groups-page .groups-card--wide .btn {
 flex-shrink: 0;
}

.groups-page .groups-grid {
 grid-template-columns: repeat(3, 1fr);
 gap: 0.85rem;
}

.groups-page .groups-card {
 padding: 1.15rem 1.2rem;
 border-radius: var(--radius);
 background: rgba(18, 21, 28, 0.65);
 transition: border-color 0.2s ease, background 0.2s ease;
}

.groups-page .groups-card:hover {
 border-color: rgba(141, 198, 63, 0.32);
 background: var(--bg-panel);
 transform: none;
}

.groups-page .groups-card h2 {
 text-transform: none;
 letter-spacing: 0.01em;
 font-family: var(--font-body);
 font-size: 0.95rem;
 font-weight: 700;
 margin: 0 0 0.4rem;
 color: var(--text);
}

.groups-page .groups-card h2::before {
 content: "";
 display: block;
 width: 1.5rem;
 height: 2px;
 margin-bottom: 0.55rem;
 background: var(--accent);
 border-radius: 1px;
}

.groups-page .groups-card p {
 font-size: 0.88rem;
 line-height: 1.55;
 margin: 0;
 color: var(--text-muted);
}

.groups-page .groups-card p a {
 white-space: nowrap;
}

.groups-card--highlight {
 border-color: rgba(141, 198, 63, 0.28);
 background: linear-gradient(155deg, rgba(141, 198, 63, 0.05) 0%, var(--bg-panel) 50%);
}

.groups-cta--footer {
 margin-top: 2rem;
 padding-top: 1.25rem;
 border-top: 1px solid var(--border);
}

@media (max-width: 900px) {
 .groups-page .groups-grid {
 grid-template-columns: repeat(2, 1fr);
 }
}

@media (max-width: 720px) {
 .groups-page .groups-card--wide {
 flex-direction: column;
 align-items: stretch;
 text-align: left;
 }

 .groups-page .groups-card--wide .btn {
 align-self: flex-start;
 }
}

@media (max-width: 560px) {
 .groups-page .groups-grid {
 grid-template-columns: 1fr;
 }

 .groups-hero-types {
 font-size: 0.8rem;
 }
}

.groups-cta-quiet {
 align-self: center;
 color: var(--text-muted);
 font-size: 0.88rem;
 text-decoration: none;
}

.groups-cta-quiet:hover {
 color: var(--accent-bright);
 text-decoration: underline;
}

.groups-card {
 padding: 1.75rem;
 border-radius: var(--radius-lg);
 border: 1px solid var(--border);
 background: var(--bg-panel);
 box-shadow: var(--shadow-card);
}

.groups-card h2 {
 margin: 0 0 0.65rem;
 font-family: var(--font-display);
 font-size: 1.25rem;
 letter-spacing: 0.05em;
 text-transform: uppercase;
}

.groups-card p,
.groups-list {
 margin: 0 0 0.65rem;
 font-size: 0.95rem;
 color: var(--text-muted);
 line-height: 1.6;
}

.groups-list {
 padding-left: 1.2rem;
}

.groups-card a:not(.btn) {
 color: var(--accent-bright);
 text-decoration: none;
 border-bottom: 1px solid rgba(141, 198, 63, 0.3);
 transition: border-color 0.15s ease, color 0.15s ease;
}

.groups-card a:not(.btn):hover {
 color: #fff;
 border-bottom-color: rgba(255, 255, 255, 0.5);
}

.groups-card-link {
 display: inline-flex;
 align-items: center;
 gap: 0.4rem;
 font-weight: 600;
 font-size: 0.95rem;
 letter-spacing: 0.01em;
 border-bottom: none !important;
 color: var(--accent-bright) !important;
}

.groups-card-link::before {
 content: "";
 display: inline-block;
 width: 14px;
 height: 14px;
 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238dc63f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07A19.5 19.5 0 013.07 9.81 19.79 19.79 0 01.1 1.18 2 2 0 012.08 0h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L6.09 7.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 14.92z'/%3E%3C/svg%3E");
 background-repeat: no-repeat;
 background-size: contain;
 flex-shrink: 0;
 opacity: 0.8;
}

.groups-cta {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem;
 margin-top: 2rem;
}

.groups-page .groups-cta {
 justify-content: center;
 align-items: center;
}

@media (max-width: 768px) {
 .groups-grid {
 grid-template-columns: 1fr;
 }
}

.groups-card--festive {
 --festive-red: #c9302c;
 --festive-red-bright: #e84540;
 --festive-gold: #d4a853;
 background: linear-gradient(165deg, rgba(201, 48, 44, 0.14) 0%, rgba(201, 48, 44, 0.05) 45%, var(--bg-panel) 72%);
 border-color: rgba(201, 48, 44, 0.38);
 position: relative;
 overflow: hidden;
}

.groups-card--festive::before {
 content: "";
 position: absolute;
 inset: 0 0 auto 0;
 height: 3px;
 background: linear-gradient(90deg, var(--festive-red), var(--festive-gold), transparent);
 opacity: 0.85;
 border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

.groups-card--festive > *:not(.groups-card-snow) {
 position: relative;
 z-index: 1;
}

.groups-card-snow {
 position: absolute;
 inset: 0;
 pointer-events: none;
 overflow: hidden;
 z-index: 0;
 border-radius: inherit;
}

.groups-card-snow span {
 position: absolute;
 top: -8px;
 border-radius: 50%;
 background: rgba(255, 255, 255, 0.5);
 animation: xmas-fall linear infinite;
}

.groups-card-snow span:nth-child(1) { left: 8%; width: 3px; height: 3px; animation-duration: 7s; animation-delay: 0s; }
.groups-card-snow span:nth-child(2) { left: 22%; width: 4px; height: 4px; animation-duration: 10s; animation-delay: -2s; }
.groups-card-snow span:nth-child(3) { left: 38%; width: 3px; height: 3px; animation-duration: 8s; animation-delay: -4s; }
.groups-card-snow span:nth-child(4) { left: 52%; width: 5px; height: 5px; animation-duration: 11s; animation-delay: -1s; }
.groups-card-snow span:nth-child(5) { left: 66%; width: 3px; height: 3px; animation-duration: 9s; animation-delay: -3s; }
.groups-card-snow span:nth-child(6) { left: 78%; width: 4px; height: 4px; animation-duration: 12s; animation-delay: -5s; }
.groups-card-snow span:nth-child(7) { left: 88%; width: 3px; height: 3px; animation-duration: 8s; animation-delay: -6s; }
.groups-card-snow span:nth-child(8) { left: 95%; width: 4px; height: 4px; animation-duration: 10s; animation-delay: -2s; }
.groups-card-snow span:nth-child(9) { left: 14%; width: 3px; height: 3px; animation-duration: 9s; animation-delay: -3.5s; }
.groups-card-snow span:nth-child(10) { left: 44%; width: 4px; height: 4px; animation-duration: 11s; animation-delay: -7s; }
.groups-card-snow span:nth-child(11) { left: 60%; width: 3px; height: 3px; animation-duration: 8.5s; animation-delay: -1.5s; }
.groups-card-snow span:nth-child(12) { left: 84%; width: 5px; height: 5px; animation-duration: 13s; animation-delay: -4.5s; }

@media (prefers-reduced-motion: reduce) {
 .groups-card-snow {
 display: none;
 }
}

.groups-card--festive h2 {
 color: var(--text);
 background: none;
 -webkit-text-fill-color: currentColor;
}

.groups-card--festive a:not(.btn) {
 color: var(--festive-red-bright);
 border-bottom-color: rgba(201, 48, 44, 0.45);
}

.groups-card--festive a:not(.btn):hover {
 color: #ff6b66;
 border-bottom-color: rgba(232, 69, 64, 0.7);
}

.party-page-hero {
 padding-bottom: 2rem;
 text-align: center;
}

.party-page-lead {
 max-width: 40rem;
 margin: 0.75rem auto 0;
 color: var(--text-muted);
 line-height: 1.65;
 font-size: 1.05rem;
}

.party-page-hero-cta {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem;
 margin: 1.35rem auto 0;
 justify-content: center;
}

.party-section-title {
 margin: 0 0 0.85rem;
 font-family: var(--font-display);
 font-size: clamp(1.35rem, 3vw, 1.75rem);
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: var(--text);
}

.party-intro {
 max-width: 44rem;
 margin-bottom: 2rem;
}

.party-intro p {
 margin: 0;
 color: var(--text-muted);
 line-height: 1.65;
}

.party-packages-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1rem;
 align-items: stretch;
}

.party-packages-grid--two {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 max-width: 52rem;
}

.party-package-card {
 display: flex;
 flex-direction: column;
 gap: 0.65rem;
 padding: 1.35rem 1.25rem 1.25rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 background: var(--bg-panel);
 position: relative;
 overflow: hidden;
}

.party-package-card::before {
 content: "";
 position: absolute;
 top: 0;
 left: 0;
 right: 0;
 height: 2px;
 background: linear-gradient(90deg, var(--accent), transparent);
 opacity: 0.55;
}

.party-package-card--featured {
 background: linear-gradient(165deg, rgba(141, 198, 63, 0.08) 0%, var(--bg-panel) 55%);
 border-color: rgba(141, 198, 63, 0.28);
 box-shadow: var(--shadow-card);
}

.party-package-tier {
 margin: 0;
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

.party-package-card h3 {
 margin: 0;
 font-family: var(--font-display);
 font-size: clamp(1.55rem, 3vw, 1.95rem);
 line-height: 1.05;
 letter-spacing: 0.05em;
 text-transform: uppercase;
 color: var(--text);
}

.party-package-list {
 margin: 0;
 padding-left: 1.1rem;
 color: var(--text-muted);
 font-size: 0.9rem;
 line-height: 1.6;
 flex: 1;
}

.party-package-list li {
 margin: 0.3rem 0;
}

.party-package-list strong {
 color: var(--text);
}

.party-package-duration {
 margin: 0.25rem 0 0;
 font-size: 0.82rem;
 font-weight: 700;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.party-package-card .btn {
 margin-top: auto;
 align-self: flex-start;
}

.party-split-section {
 background: linear-gradient(155deg, rgba(141, 198, 63, 0.04) 0%, transparent 55%);
}

.party-split {
 display: grid;
 grid-template-columns: 1.2fr 0.8fr;
 gap: 2rem;
 align-items: center;
}

.party-split-copy p {
 margin: 0 0 0.85rem;
 color: var(--text-muted);
 line-height: 1.65;
}

.party-split-copy a {
 color: var(--accent-bright);
 font-weight: 600;
}

.party-split-note {
 font-size: 0.92rem;
}

.party-split-actions {
 display: flex;
 flex-direction: column;
 gap: 0.55rem;
 padding: 1.35rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 background: var(--bg-panel);
}

.party-split-label {
 margin: 0.35rem 0 0;
 font-size: 0.78rem;
 font-weight: 700;
 letter-spacing: 0.07em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.party-split-label:first-child {
 margin-top: 0;
}

.party-quotes-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1rem;
}

.party-quote {
 margin: 0;
 padding: 1.15rem 1.2rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 background: var(--bg-panel);
}

.party-quote p {
 margin: 0 0 0.75rem;
 font-size: 0.92rem;
 line-height: 1.6;
 color: var(--text-muted);
 font-style: italic;
}

.party-quote footer {
 font-size: 0.78rem;
 color: var(--text-muted);
}

.party-quotes-more {
 margin: 1rem 0 0;
 font-size: 0.92rem;
}

.party-quotes-more a {
 color: var(--accent-bright);
 font-weight: 600;
}

.party-gift-section {
 padding-top: 2rem;
}

.party-gift-strip {
 display: grid;
 grid-template-columns: 1.35fr 0.65fr;
 gap: 1.5rem;
 align-items: center;
 padding: 1.75rem 1.5rem;
 border: 1px solid rgba(141, 198, 63, 0.25);
 border-radius: var(--radius-lg);
 background: linear-gradient(155deg, rgba(141, 198, 63, 0.06) 0%, var(--bg-panel) 50%);
}

.party-gift-actions {
 display: flex;
 flex-direction: column;
 gap: 0.55rem;
}

.party-final-cta {
 padding-top: 0;
}

.party-final-inner {
 text-align: center;
 max-width: 36rem;
 margin: 0 auto;
}

.party-final-inner p {
 margin: 0;
 color: var(--text-muted);
 line-height: 1.6;
}

.party-final-inner .groups-cta {
 justify-content: center;
}

@media (max-width: 900px) {
 .party-packages-grid,
 .party-packages-grid--two {
 grid-template-columns: 1fr;
 max-width: none;
 }

 .party-quotes-grid {
 grid-template-columns: 1fr;
 }

 .party-split,
 .party-gift-strip {
 grid-template-columns: 1fr;
 }
}

/* Christmas parties. festive page */
.christmas-page {
 --festive-red: #c9302c;
 --festive-red-bright: #e84540;
 --festive-gold: #d4a853;
 --festive-gold-dim: rgba(212, 168, 83, 0.12);
}

/* Snow effect */
.xmas-snow {
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 pointer-events: none;
 z-index: 0;
 overflow: hidden;
}

.xmas-snow span {
 position: absolute;
 top: -10px;
 border-radius: 50%;
 background: rgba(255, 255, 255, 0.55);
 animation: xmas-fall linear infinite;
}

@keyframes xmas-fall {
 0% { transform: translateY(0) translateX(0) rotate(0deg); opacity: 0.9; }
 50% { transform: translateY(50vh) translateX(18px) rotate(180deg); }
 100% { transform: translateY(105vh) translateX(-12px) rotate(360deg); opacity: 0.15; }
}

.xmas-snow span:nth-child(1) { left: 4%; width: 4px; height: 4px; animation-duration: 9s; animation-delay: 0s; }
.xmas-snow span:nth-child(2) { left: 11%; width: 6px; height: 6px; animation-duration: 13s; animation-delay: -4s; }
.xmas-snow span:nth-child(3) { left: 19%; width: 3px; height: 3px; animation-duration: 8s; animation-delay: -1s; }
.xmas-snow span:nth-child(4) { left: 27%; width: 5px; height: 5px; animation-duration: 11s; animation-delay: -6s; }
.xmas-snow span:nth-child(5) { left: 35%; width: 4px; height: 4px; animation-duration: 10s; animation-delay: -2s; }
.xmas-snow span:nth-child(6) { left: 43%; width: 6px; height: 6px; animation-duration: 14s; animation-delay: -8s; }
.xmas-snow span:nth-child(7) { left: 52%; width: 3px; height: 3px; animation-duration: 7s; animation-delay: -3s; }
.xmas-snow span:nth-child(8) { left: 60%; width: 5px; height: 5px; animation-duration: 12s; animation-delay: -5s; }
.xmas-snow span:nth-child(9) { left: 68%; width: 4px; height: 4px; animation-duration: 9s; animation-delay: -7s; }
.xmas-snow span:nth-child(10) { left: 74%; width: 6px; height: 6px; animation-duration: 15s; animation-delay: -1s; }
.xmas-snow span:nth-child(11) { left: 81%; width: 3px; height: 3px; animation-duration: 8s; animation-delay: -9s; }
.xmas-snow span:nth-child(12) { left: 87%; width: 5px; height: 5px; animation-duration: 11s; animation-delay: -3s; }
.xmas-snow span:nth-child(13) { left: 93%; width: 4px; height: 4px; animation-duration: 10s; animation-delay: -6s; }
.xmas-snow span:nth-child(14) { left: 97%; width: 3px; height: 3px; animation-duration: 13s; animation-delay: -2s; }
.xmas-snow span:nth-child(15) { left: 22%; width: 5px; height: 5px; animation-duration: 16s; animation-delay: -11s; }

@media (prefers-reduced-motion: reduce) {
 .xmas-snow { display: none; }
}

.christmas-page::before {
 background:
 radial-gradient(ellipse 90% 55% at 50% -15%, rgba(201, 48, 44, 0.09), transparent 50%),
 radial-gradient(ellipse 60% 40% at 85% 10%, rgba(212, 168, 83, 0.06), transparent 45%),
 radial-gradient(ellipse 80% 50% at 50% -20%, rgba(141, 198, 63, 0.06), transparent 55%),
 linear-gradient(180deg, rgba(10, 12, 16, 0) 0%, var(--bg-deep) 100%),
 repeating-linear-gradient(
 0deg,
 transparent,
 transparent 24px,
 rgba(255, 255, 255, 0.012) 24px,
 rgba(255, 255, 255, 0.012) 25px
 );
}

.party-page-hero--festive {
 position: relative;
 padding: 2.5rem 0 2.75rem;
 margin-bottom: 0.5rem;
 text-align: center;
}

.party-page-hero--festive::before {
 content: "";
 position: absolute;
 inset: 0;
 margin: 0 -9999px;
 padding: 0 9999px;
 background:
 radial-gradient(ellipse 70% 80% at 50% 0%, rgba(201, 48, 44, 0.07), transparent 65%),
 linear-gradient(180deg, rgba(212, 168, 83, 0.04) 0%, transparent 100%);
 pointer-events: none;
 z-index: -1;
}

.christmas-page .party-page-lead {
 margin-left: auto;
 margin-right: auto;
 margin-bottom: 0.25rem;
}

.christmas-page .party-page-hero-cta {
 justify-content: center;
 margin-top: 1.75rem;
 margin-left: auto;
 margin-right: auto;
}

.christmas-page .eyebrow--festive {
 color: var(--festive-gold);
}

.christmas-page .eyebrow--festive::before {
 background: linear-gradient(90deg, transparent, rgba(212, 168, 83, 0.5));
}

.christmas-page .eyebrow--festive::after {
 background: linear-gradient(90deg, rgba(212, 168, 83, 0.5), transparent);
}

.party-page-hero--festive h1 {
 font-size: clamp(2.75rem, 8vw, 4.25rem);
 line-height: 0.95;
 margin: 0;
 color: var(--text);
 background: none;
 -webkit-text-fill-color: currentColor;
}

.party-page-hero--festive .party-page-lead {
 font-size: 1.08rem;
 max-width: 32rem;
}

.btn-primary.btn-festive {
 background: linear-gradient(135deg, var(--festive-red) 0%, #a02522 100%);
 border: 1px solid rgba(232, 69, 64, 0.5);
 color: #fff8f0;
 box-shadow: 0 4px 20px rgba(201, 48, 44, 0.35);
}

.btn-primary.btn-festive:hover {
 background: linear-gradient(135deg, var(--festive-red-bright) 0%, var(--festive-red) 100%);
 border-color: var(--festive-red-bright);
 color: #fff;
 box-shadow: 0 6px 28px rgba(201, 48, 44, 0.45);
}

.party-steps-section {
 padding-top: 0;
 padding-bottom: 1.5rem;
}

.party-steps {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1rem;
 margin: 0;
 padding: 0;
 list-style: none;
 counter-reset: none;
}

.party-step {
 position: relative;
 padding: 1.35rem 1.15rem 1.25rem;
 text-align: left;
 border: 1px solid rgba(212, 168, 83, 0.2);
 border-radius: var(--radius-lg);
 background: linear-gradient(165deg, rgba(212, 168, 83, 0.06) 0%, var(--bg-panel) 55%);
}

.party-step-num {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 2rem;
 height: 2rem;
 margin-bottom: 0.65rem;
 font-family: var(--font-display);
 font-size: 1.15rem;
 letter-spacing: 0.04em;
 color: var(--festive-gold);
 background: rgba(201, 48, 44, 0.15);
 border: 1px solid rgba(201, 48, 44, 0.35);
 border-radius: 50%;
}

.party-step h2 {
 margin: 0 0 0.35rem;
 font-family: var(--font-display);
 font-size: clamp(1.15rem, 2.5vw, 1.35rem);
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: var(--text);
}

.party-step p {
 margin: 0;
 font-size: 0.88rem;
 color: var(--text-muted);
 line-height: 1.45;
}

.party-packages-section {
 padding-top: 1.5rem;
}

.party-packages-header {
 text-align: center;
 margin-bottom: 1.75rem;
}

.party-packages-sub {
 margin: 0;
 font-size: 0.92rem;
 color: var(--text-muted);
}

.christmas-page .party-packages-grid--two {
 margin: 0 auto;
}

.party-package-badge {
 position: absolute;
 top: 0.85rem;
 right: 0.85rem;
 margin: 0;
 padding: 0.25rem 0.55rem;
 font-size: 0.65rem;
 font-weight: 700;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: #1a1008;
 background: var(--festive-gold);
 border-radius: 4px;
}

.christmas-page .party-package-card--featured {
 background: linear-gradient(165deg, rgba(201, 48, 44, 0.08) 0%, rgba(212, 168, 83, 0.05) 40%, var(--bg-panel) 60%);
 border-color: rgba(212, 168, 83, 0.32);
}

.christmas-page .party-package-card--featured::before {
 background: linear-gradient(90deg, var(--festive-red), var(--festive-gold), transparent);
 opacity: 0.75;
 height: 3px;
}

.party-package-tagline {
 margin: -0.25rem 0 0.35rem;
 font-size: 0.88rem;
 color: var(--text-muted);
}

.christmas-page .party-package-card h3 {
 font-size: clamp(1.75rem, 3.5vw, 2.15rem);
}

.party-quote-section {
 padding-top: 0.5rem;
 padding-bottom: 0.5rem;
}

.party-quote-feature {
 text-align: center;
 max-width: 32rem;
 margin: 0 auto;
}

.party-quote-stars {
 margin: 0 0 0.65rem;
 font-size: 1.1rem;
 letter-spacing: 0.15em;
 color: var(--festive-gold);
}

.party-quote--solo {
 border-color: rgba(212, 168, 83, 0.22);
 background: linear-gradient(165deg, rgba(212, 168, 83, 0.05) 0%, var(--bg-panel) 60%);
}

.party-quote--solo p {
 font-size: 1.05rem;
 color: var(--text);
}

.party-quote-feature .party-quotes-more {
 display: inline-block;
 margin-top: 1.15rem;
}

.eyebrow--festive {
 color: var(--festive-gold);
}

.party-gift-blurb {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.95rem;
}

.christmas-page .party-gift-strip {
 border-color: rgba(212, 168, 83, 0.28);
 background: linear-gradient(155deg, rgba(201, 48, 44, 0.05) 0%, rgba(212, 168, 83, 0.06) 35%, var(--bg-panel) 55%);
}

.party-why-section {
 padding-bottom: 0;
}

.party-why {
 max-width: 44rem;
}

.party-why h2 {
 margin-bottom: 1rem;
}

.party-why p {
 margin: 0 0 0.85rem;
 color: var(--text-muted);
 line-height: 1.7;
 font-size: 0.97rem;
}

.party-why p:last-child {
 margin-bottom: 0;
}

.party-final-cta--festive .party-final-inner {
 padding: 2rem 0;
 border: none;
 border-top: 1px solid rgba(201, 48, 44, 0.2);
 border-radius: 0;
 background: none;
 box-shadow: none;
 text-align: left;
 max-width: none;
 margin: 0;
}

.party-final-cta--festive .party-final-inner .groups-cta {
 justify-content: flex-start;
}

@media (max-width: 900px) {
 .party-steps {
 grid-template-columns: 1fr;
 max-width: 22rem;
 margin: 0 auto;
 }

 .party-page-hero--festive h1 br {
 display: none;
 }
}

@media (max-width: 600px) {
 .party-package-badge {
 position: static;
 display: inline-block;
 margin-bottom: 0.35rem;
 }
}

.booking-urgency-strip {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.5rem 1rem;
 margin-bottom: 1.75rem;
 padding: 1rem 1.25rem;
 border-radius: var(--radius-lg);
 border: 1px solid rgba(141, 198, 63, 0.35);
 background: rgba(141, 198, 63, 0.08);
 font-size: 0.92rem;
}

.booking-urgency-strip strong {
 color: var(--accent-bright);
 text-transform: uppercase;
 letter-spacing: 0.04em;
 font-size: 0.82rem;
}

.booking-urgency-strip a {
 color: var(--text);
 font-weight: 700;
}

.book-room-picker {
 margin-bottom: 2rem;
}

.book-room-picker-title {
 margin: 0 0 1rem;
 font-family: var(--font-display);
 font-size: 1.5rem;
 letter-spacing: 0.06em;
 text-transform: uppercase;
}

.book-room-grid {
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
 gap: 0.75rem;
}

.book-room-card {
 display: flex;
 flex-direction: column;
 gap: 0.35rem;
 padding: 0.65rem;
 border-radius: var(--radius);
 border: 1px solid var(--border);
 background: var(--bg-panel);
 text-decoration: none;
 color: inherit;
 text-align: left;
 font: inherit;
 cursor: pointer;
 transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.book-room-card:hover,
.book-room-card:focus-visible {
 border-color: rgba(141, 198, 63, 0.45);
 transform: translateY(-2px);
 box-shadow: var(--shadow-card);
}

.book-room-card.is-selected {
 border-color: rgba(141, 198, 63, 0.75);
 box-shadow: 0 0 0 1px rgba(141, 198, 63, 0.35);
}

.book-room-card img {
 width: 100%;
 aspect-ratio: 16 / 9;
 object-fit: cover;
 border-radius: 6px;
}

.book-room-name {
 font-weight: 700;
 font-size: 0.82rem;
 letter-spacing: 0.03em;
 line-height: 1.2;
}

.book-room-meta {
 font-size: 0.72rem;
 color: var(--text-muted);
 text-transform: uppercase;
 letter-spacing: 0.06em;
}

.book-room-card--soon {
 opacity: 0.65;
}

.book-room-picker-note {
 margin: 0.85rem 0 0;
 font-size: 0.88rem;
 color: var(--text-muted);
}

.booking-policies {
 margin-top: 2rem;
 padding: 1.5rem 1.75rem;
 border-radius: var(--radius-lg);
 border: 1px solid var(--border);
 background: var(--bg-panel);
}

.booking-policies-title {
 margin: 0 0 0.75rem;
 font-family: var(--font-display);
 font-size: 1.25rem;
 letter-spacing: 0.05em;
 text-transform: uppercase;
}

.booking-policies ul {
 margin: 0;
 padding-left: 1.2rem;
 color: var(--text-muted);
 line-height: 1.6;
}

.booking-fallback {
 margin: 2rem 0 0;
 padding: 1.1rem 1.5rem;
 border-radius: var(--radius-lg);
 border: 1px solid rgba(141, 198, 63, 0.25);
 background: rgba(141, 198, 63, 0.04);
 font-size: 0.9rem;
 color: var(--text-muted);
 text-align: center;
}

.booking-fallback p {
 margin: 0 0 0.4rem;
}

.booking-fallback p:last-child {
 margin-bottom: 0;
}

.booking-fallback a {
 font-weight: 600;
 color: var(--accent-bright);
 text-decoration: underline;
 text-underline-offset: 2px;
}

/* Nav games dropdown */
.nav-item.nav-dropdown {
 position: relative;
}

.nav-dropdown-trigger {
 display: inline-flex;
 align-items: center;
 gap: 0.25rem;
 color: var(--text-muted);
 text-decoration: none;
 font-size: 0.88rem;
 font-weight: 500;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 padding: 0.5rem 0.85rem;
 border-radius: 6px;
 transition: color 0.2s, background 0.2s;
}

.nav-dropdown-trigger:hover {
 color: var(--text);
 background: rgba(255, 255, 255, 0.05);
}

.nav-dropdown-panel {
 position: absolute;
 top: calc(100% + 0.35rem);
 left: 0;
 min-width: 220px;
 padding: 0.5rem;
 border-radius: var(--radius);
 border: 1px solid var(--border-accent);
 background: rgba(10, 12, 16, 0.98);
 box-shadow: var(--shadow-card);
 opacity: 0;
 visibility: hidden;
 transform: translateY(-4px);
 transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
 z-index: 200;
}

.nav-dropdown-panel a {
 display: block;
 padding: 0.55rem 0.75rem;
 border-radius: 6px;
 color: var(--text-muted);
 text-decoration: none;
 font-size: 0.85rem;
 font-weight: 500;
 letter-spacing: 0.03em;
 text-transform: none;
}

.nav-dropdown-panel a:hover,
.nav-dropdown-panel a:focus-visible {
 background: rgba(255, 255, 255, 0.06);
 color: var(--text);
}

.nav-dropdown-panel .nav-dropdown-all {
 margin-top: 0.25rem;
 padding-top: 0.65rem;
 border-top: 1px solid var(--border);
 color: var(--accent-bright);
 font-weight: 600;
}

.nav-dropdown:hover .nav-dropdown-panel,
.nav-dropdown:focus-within .nav-dropdown-panel {
 opacity: 1;
 visibility: visible;
 transform: translateY(0);
}

@media (max-width: 900px) {
 .nav-dropdown-panel {
 display: none;
 }
}

.hero-trust {
 margin: 1rem 0 0;
 font-size: 0.9rem;
 color: var(--text-muted);
}

.hero-trust a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-card-meta-line {
 margin: 0 0 0.75rem;
 font-size: 0.88rem;
 color: var(--text-muted);
}

.game-card-actions {
 display: grid;
 grid-template-columns: minmax(0, 1fr);
 gap: 0.5rem;
 margin-top: auto;
}

.game-card-actions .btn {
 margin: 0;
 padding: 0.7rem 0.55rem;
 font-size: 0.78rem;
 letter-spacing: 0.04em;
 text-align: center;
 justify-content: center;
 white-space: normal;
 line-height: 1.2;
 min-height: 2.75rem;
}

.game-card-actions .btn-secondary {
 background: rgba(255, 255, 255, 0.06);
 border-color: rgba(255, 255, 255, 0.18);
 color: var(--text);
}

.game-card-actions .btn-secondary:hover {
 background: rgba(255, 255, 255, 0.11);
 border-color: rgba(141, 198, 63, 0.45);
 color: var(--accent-bright);
}

.game-card-actions .btn-email-list {
 background: linear-gradient(135deg, #8dc63f, #5f9826);
 border-color: rgba(178, 236, 100, 0.78);
 color: #071006;
 box-shadow: 0 14px 30px rgba(95, 152, 38, 0.28);
}

.game-card-actions .btn-email-list:hover {
 background: linear-gradient(135deg, #a4df54, #72b52f);
 border-color: rgba(207, 255, 126, 0.9);
 color: #071006;
}

.game-card-meta-line a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-card-price {
 color: var(--text);
 font-weight: 700;
}

.contact-actions--split {
 display: flex;
 flex-wrap: wrap;
 gap: 0.5rem;
}

/* ─── Contact page redesign ─────────────────────────────── */

/* Quick-reach cards row */
.contact-reach-row {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 1.25rem;
 margin-bottom: 2.5rem;
}

@media (max-width: 700px) {
 .contact-reach-row {
 grid-template-columns: 1fr;
 }
}

.contact-reach-card {
 display: flex;
 flex-direction: column;
 gap: 0.35rem;
 padding: 1.5rem 1.6rem;
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 text-decoration: none;
 color: var(--text);
 transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
 box-shadow: var(--shadow-card);
}

.contact-reach-card:hover {
 border-color: rgba(141, 198, 63, 0.45);
 background: rgba(141, 198, 63, 0.04);
 transform: translateY(-2px);
}

.contact-reach-card--book {
 border-color: rgba(141, 198, 63, 0.3);
 background: linear-gradient(135deg, rgba(141, 198, 63, 0.06) 0%, var(--bg-panel) 60%);
}

.contact-reach-card--book:hover {
 border-color: rgba(141, 198, 63, 0.6);
 background: rgba(141, 198, 63, 0.08);
}

.contact-reach-icon {
 display: flex;
 align-items: center;
 justify-content: center;
 width: 40px;
 height: 40px;
 border-radius: 10px;
 background: rgba(141, 198, 63, 0.1);
 color: var(--accent-bright);
 margin-bottom: 0.5rem;
 flex-shrink: 0;
}

.contact-reach-label {
 font-size: 0.75rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

.contact-reach-value {
 font-size: clamp(0.8rem, 1.5vw, 1rem);
 font-weight: 700;
 color: var(--text);
 line-height: 1.3;
 word-break: break-word;
}

.contact-reach-hint {
 font-size: 0.82rem;
 color: var(--text-muted);
}

/* Find us + Map grid (below the form) */
.contact-findus-grid {
 display: grid;
 grid-template-columns: 300px 1fr;
 gap: 1.5rem;
 align-items: stretch;
 margin-top: 2rem;
}

@media (max-width: 860px) {
 .contact-findus-grid {
 grid-template-columns: 1fr;
 }
}

.contact-info-block {
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 padding: 1.5rem 1.75rem;
 box-shadow: var(--shadow-card);
}

.contact-info-heading {
 font-family: var(--font-display);
 font-size: 1.25rem;
 letter-spacing: 0.06em;
 margin: 0 0 1rem;
 color: var(--text);
}

/* Hours list */
.contact-hours-list {
 margin: 0 0 0.75rem;
 padding: 0;
}

.contact-hours-row {
 display: grid;
 grid-template-columns: 6.5rem 1fr;
 gap: 0.5rem;
 padding: 0.45rem 0;
 border-bottom: 1px solid var(--border);
 font-size: 0.9rem;
}

.contact-hours-row:last-child {
 border-bottom: none;
}

.contact-hours-row dt {
 color: var(--text-muted);
 font-weight: 600;
}

.contact-hours-row dd {
 margin: 0;
 color: var(--text);
 font-weight: 500;
}

.contact-hours-row--call dd {
 color: var(--accent-bright);
 font-weight: 600;
}

.contact-hours-note {
 margin: 0;
 font-size: 0.82rem;
 color: var(--text-muted);
 font-style: italic;
}

/* Address block */
.contact-address {
 font-style: normal;
 color: var(--text-muted);
 font-size: 0.95rem;
 line-height: 1.65;
 margin: 0 0 0.5rem;
}

.contact-address-note {
 margin: 0 0 1.1rem;
 font-size: 0.82rem;
 color: var(--accent-bright);
}

.contact-directions-btn {
 display: inline-flex;
}

/* Map column */
.contact-map-col {
 border-radius: var(--radius-lg);
 overflow: hidden;
 min-height: 440px;
 border: 1px solid var(--border);
 box-shadow: var(--shadow-card);
 background: #0a0c10;
}

.contact-map-iframe {
 display: block;
 width: 100%;
 height: 100%;
 min-height: 440px;
 border: none;
}

@media (max-width: 860px) {
 .contact-map-col,
 .contact-map-iframe {
 min-height: 300px;
 }
}

/* Contact form section on contact page */
.contact-form-section--page {
 margin-top: 0;
}

.contact-form-section--page .contact-form-section-inner {
 max-width: 100%;
 display: grid;
 grid-template-columns: 280px 1fr;
 gap: 3rem;
 align-items: start;
 padding: 2.5rem 2.5rem;
}

@media (max-width: 760px) {
 .contact-form-section--page .contact-form-section-inner {
 grid-template-columns: 1fr;
 gap: 1.25rem;
 padding: 1.75rem 1.5rem;
 }
}

.contact-form-header {
 position: sticky;
 top: 5rem;
}

/* Left-align everything in the contact page form header */
.contact-form-section--page .contact-form-intro {
 text-align: left;
 margin-left: 0;
 margin-right: 0;
 max-width: none;
 margin-bottom: 0;
}

.contact-form-heading--lg {
 font-family: var(--font-display);
 font-size: 1.8rem;
 letter-spacing: 0.05em;
 margin: 0 0 0.75rem;
 color: var(--text);
 text-align: left;
}

/* Narrow spam answer field */
.contact-spam-narrow {
 max-width: 160px;
}

/* Contact form card (full-width redesign) */
.contact-form-card {
 background: var(--bg-elevated);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 box-shadow: var(--shadow-card);
 overflow: hidden;
}

.contact-form-card-header {
 padding: 2rem 2.5rem 1.75rem;
 border-bottom: 1px solid var(--border);
 background: linear-gradient(135deg, rgba(141, 198, 63, 0.05) 0%, transparent 60%);
}

.contact-form-card-title {
 font-family: var(--font-display);
 font-size: 2rem;
 letter-spacing: 0.05em;
 margin: 0 0 0.4rem;
 color: var(--text);
}

.contact-form-card-sub {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.95rem;
 line-height: 1.6;
}

.contact-form-card-sub a {
 color: var(--accent-bright);
 text-decoration: none;
 border-bottom: 1px solid rgba(141, 198, 63, 0.3);
 transition: border-color 0.15s ease;
}

.contact-form-card-sub a:hover {
 border-bottom-color: var(--accent-bright);
}

.contact-form--card {
 padding: 2rem 2.5rem 2.5rem;
 display: flex;
 flex-direction: column;
 gap: 1.25rem;
}

/* Footer row: spam check + button side by side */
.contact-form-footer {
 display: flex;
 align-items: center;
 gap: 1.5rem;
 flex-wrap: wrap;
}

.contact-spam-inline {
 display: flex;
 align-items: center;
 gap: 0.75rem;
 flex-shrink: 0;
}

.contact-spam-inline .contact-captcha-question {
 margin: 0;
 font-size: 0.88rem;
 white-space: nowrap;
}

.contact-spam-inline input {
 width: 64px;
 padding: 0.55rem 0.75rem;
 border-radius: 8px;
 border: 1px solid var(--border);
 background: var(--bg-panel);
 color: var(--text);
 font-size: 0.95rem;
 text-align: center;
}

.contact-spam-inline input:focus {
 outline: none;
 border-color: rgba(141, 198, 63, 0.45);
 box-shadow: 0 0 0 3px rgba(141, 198, 63, 0.16);
}

.contact-form-footer .contact-form-submit {
 margin-top: 0;
 width: auto;
 min-width: 160px;
}

@media (max-width: 600px) {
 .contact-form-card-header,
 .contact-form--card {
 padding-left: 1.5rem;
 padding-right: 1.5rem;
 }

 .contact-form-footer {
 flex-direction: column;
 align-items: flex-start;
 gap: 1rem;
 }

 .contact-form-footer .contact-form-submit {
 width: 100%;
 }
}

/* ─── End contact page redesign ─────────────────────────── */

/* ─── 404 page ──────────────────────────────────────────── */

.error-hero .error-code {
 font-family: var(--font-display);
 font-size: clamp(4.5rem, 16vw, 7.5rem);
 line-height: 1;
 letter-spacing: 0.06em;
 margin: 0 0 0.35rem;
 color: var(--accent);
 text-shadow: 0 0 48px rgba(141, 198, 63, 0.35);
}

.error-panel {
 max-width: 640px;
 margin: 0 auto;
 text-align: center;
}

.error-actions {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 0.85rem;
 margin-bottom: 2rem;
}

.error-quick-links {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 0.55rem 1.25rem;
 padding-top: 1.5rem;
 border-top: 1px solid var(--border);
}

.error-quick-links a {
 color: var(--text-muted);
 text-decoration: none;
 font-size: 0.95rem;
}

.error-quick-links a:hover {
 color: var(--accent-bright);
 text-decoration: underline;
}

/* iOS Safari zooms when focusing inputs below 16px. keep touch forms readable */
@media (max-width: 768px) {
 input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="file"]),
 select,
 textarea {
 font-size: max(16px, 1em);
 }

 button,
 a,
 .btn {
 touch-action: manipulation;
 }
}

/* ============================================================
 DESIGN COHESION. shared card language + page dialect overrides
 ============================================================ */

.surface-card,
.offer-card,
.groups-card,
.price-card,
.party-package-card,
.blog-card,
.contact-form-card,
.how-it-works-step,
.party-step {
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 box-shadow: none;
}

.offer-card,
.groups-card,
.price-card,
.party-package-card,
.blog-card,
.how-it-works-step,
.party-step {
 padding: 1.25rem 1.2rem;
 transition: border-color 0.2s ease, transform 0.2s ease, background 0.2s ease;
}

.offer-card:hover,
.groups-card:hover,
.price-card:hover,
.party-package-card:hover,
.blog-card:hover,
.how-it-works-step:hover,
.party-step:hover {
 border-color: var(--border-accent);
 transform: translateY(-2px);
 background: var(--bg-elevated);
 box-shadow: var(--shadow-card);
}

.offer-card::before,
.party-package-card::before {
 opacity: 0.45;
 height: 1px;
}

.game-card-title,
.offer-card h3,
.groups-card h2,
.party-package-card h3,
.party-step h2,
.how-it-works-step h3,
.contact-form-card-title,
.party-section-title,
.book-cta-strip-copy h2 {
 font-family: var(--font-display);
 font-size: var(--text-card-title);
 font-weight: 400;
 letter-spacing: 0.05em;
 text-transform: uppercase;
 color: var(--text);
}

.party-section-title {
 font-size: var(--text-section);
 text-align: center;
 margin: 0 0 0.75rem;
}

/* Unify groups hero to page-hero language */
.groups-page-hero {
 padding: 2.75rem 0 1.75rem;
 text-align: center;
}

.groups-page-hero.wrap {
 max-width: var(--max);
}

.groups-hero-bar {
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 1.25rem;
 padding: 0;
 border: none;
 background: transparent;
}

.groups-hero-main {
 text-align: center;
}

.groups-page-hero .eyebrow {
 justify-content: center;
}

.groups-page-hero h1 {
 font-family: var(--font-display);
 font-size: var(--text-h1-page);
 font-weight: 400;
 letter-spacing: 0.05em;
 line-height: 1.08;
 margin: 0 0 0.65rem;
 text-transform: uppercase;
 color: var(--text);
}

.groups-hero-accent {
 color: var(--accent-bright);
}

.groups-hero-types {
 margin: 0;
 color: var(--text-muted);
 font-size: var(--text-lead);
 line-height: 1.55;
}

.groups-hero-cta {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.85rem 1.25rem;
}

.groups-hero-link {
 color: var(--accent-bright);
 font-size: var(--text-small);
 font-weight: 600;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 text-decoration: none;
}

.groups-hero-link:hover {
 color: #f0ffd9;
}

.groups-page .groups-card {
 padding: 1.35rem 1.4rem;
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
}

.groups-page .groups-card h2 {
 font-family: var(--font-display);
 font-size: var(--text-card-title);
 font-weight: 400;
 letter-spacing: 0.05em;
 text-transform: uppercase;
 margin: 0 0 0.55rem;
 display: block;
}

.groups-page .groups-card h2::before {
 display: none;
}

.groups-page .groups-card p {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.98rem;
 line-height: 1.6;
}

/* Festive groups card styles live with .groups-card--festive above */

/* Offers: quieter important block, no AI numbered strip look */
.offers-important {
 margin-bottom: 2rem;
 padding: 1.25rem 1.4rem;
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
}

.offers-important::before {
 display: none;
}

.offers-important-title {
 font-family: var(--font-display);
 font-size: var(--text-card-title);
 font-weight: 400;
 letter-spacing: 0.05em;
 text-transform: uppercase;
 color: var(--text);
 margin: 0 0 1rem;
}

.offers-rules {
 display: grid;
 gap: 0.85rem;
}

@media (min-width: 720px) {
 .offers-rules {
 grid-template-columns: repeat(3, 1fr);
 gap: 1rem;
 }
}

.offers-rule {
 display: block;
 padding: 0;
 background: transparent;
 border: none;
}

.offers-rule-icon {
 display: none;
}

.offers-rule strong {
 display: block;
 font-family: var(--font-body);
 font-size: var(--text-small);
 font-weight: 700;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 color: var(--text);
 margin-bottom: 0.35rem;
}

.offers-rule p {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.95rem;
 line-height: 1.55;
}

.offer-card {
 background: var(--bg-panel);
 padding: 1.35rem;
}

/* Prices */
.price-card {
 padding: 1.35rem 1.25rem;
 text-align: center;
 background: var(--bg-panel);
}

.price-card--highlight {
 border-color: var(--border-accent);
 background: var(--bg-elevated);
}

.price-card-amount {
 font-family: var(--font-display);
 font-size: clamp(1.85rem, 3vw, 2.35rem);
 letter-spacing: 0.04em;
 color: var(--accent-bright);
}

/* Contact: drop SaaS icon-card look */
.contact-reach-row {
 display: grid;
 grid-template-columns: 1fr;
 gap: 0.85rem;
 margin-bottom: 1.75rem;
}

@media (min-width: 720px) {
 .contact-reach-row {
 grid-template-columns: repeat(3, 1fr);
 }
}

.contact-reach-card {
 display: flex;
 flex-direction: column;
 gap: 0.25rem;
 padding: 1.15rem 1.25rem;
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 text-decoration: none;
 color: inherit;
 transition: border-color 0.2s, background 0.2s;
}

.contact-reach-card:hover {
 border-color: var(--border-accent);
 background: var(--bg-elevated);
 transform: none;
 box-shadow: none;
}

.contact-reach-icon {
 display: none;
}

.contact-reach-label {
 font-size: var(--text-eyebrow);
 font-weight: 700;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: var(--accent);
}

.contact-reach-value {
 font-family: var(--font-body);
 font-size: 1.05rem;
 font-weight: 600;
 color: var(--text);
 text-decoration: none;
}

.contact-reach-hint {
 font-size: var(--text-small);
 color: var(--text-muted);
}

.contact-reach-card--book {
 border-color: var(--border-accent);
}

.contact-form-card {
 padding: 1.5rem 1.5rem 1.65rem;
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
}

.contact-form-card-title {
 margin: 0 0 0.4rem;
}

/* Christmas / party. festive accent only, same UI OS */
.party-page-hero--festive {
 background: transparent;
 position: relative;
}

/* Restored later for .christmas-page. do not globally kill festive hero */
.party-page-hero--festive::before {
 /* display: none !important;. disabled: broke Christmas snow/overlay */
}

.party-page-hero--festive h1 {
 font-size: var(--text-h1-page);
 text-transform: uppercase;
 letter-spacing: 0.05em;
 color: var(--text);
}

.party-page-lead {
 max-width: 36rem;
 margin: 0 auto;
 color: var(--text-muted);
 font-size: var(--text-lead);
}

.btn-primary.btn-festive,
.btn-primary.btn-festive:hover {
 background: linear-gradient(180deg, var(--accent-bright) 0%, #6ea126 100%);
 color: var(--ink-on-accent);
 box-shadow: var(--shadow-accent);
}

.eyebrow--festive {
 color: var(--accent);
}

.party-step-num,
.how-it-works-num {
 font-family: var(--font-display);
 font-size: 1.35rem;
 letter-spacing: 0.06em;
 color: var(--accent-bright);
 background: transparent;
 display: inline-flex;
 align-items: center;
 justify-content: center;
}

.party-step-num {
 border: 1px solid var(--border-accent);
 width: 2.35rem;
 height: 2.35rem;
 border-radius: 999px;
}

.party-package-card {
 padding: 1.4rem;
 background: var(--bg-panel);
}

.party-package-card--featured {
 border-color: var(--border-accent);
 background: var(--bg-elevated);
}

.party-package-badge {
 font-size: var(--text-eyebrow);
 letter-spacing: 0.12em;
 text-transform: uppercase;
 background: var(--accent-dim);
 color: var(--accent-bright);
 border: 1px solid var(--border-accent);
}

.party-final-cta--festive .party-final-inner,
.party-gift-strip,
.party-final-inner {
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 box-shadow: none;
}

.party-why h2 {
 font-family: var(--font-display);
 font-size: var(--text-section);
 text-transform: uppercase;
 letter-spacing: 0.04em;
}

.party-why p {
 color: var(--text-muted);
 font-size: var(--text-lead);
 max-width: 40rem;
}

/* Game page heroes share page type scale */
.game-page-hero-wrap.page-hero,
.game-page-hero-wrap {
 text-align: left;
}

.game-page-hero h1 {
 font-family: var(--font-display);
 font-size: var(--text-h1-page);
 font-weight: 400;
 letter-spacing: 0.05em;
 text-transform: uppercase;
 line-height: 1.08;
 color: var(--text);
}

.book-cta-strip {
 background:
 radial-gradient(ellipse 70% 100% at 50% 0%, rgba(255, 236, 210, 0.04), transparent 55%),
 linear-gradient(180deg, rgba(141, 198, 63, 0.05) 0%, transparent 100%);
}

.book-cta-strip-inner {
 background: var(--bg-panel);
 border: 1px solid var(--border-accent);
 box-shadow: none;
}

.hero::before {
 background: radial-gradient(ellipse 70% 60% at 30% 40%,
 rgba(255, 236, 210, 0.05) 0%,
 rgba(141, 198, 63, 0.03) 45%,
 transparent 75%);
}

/* Shared motion. subtle, site-wide */
@media (prefers-reduced-motion: no-preference) {
 .hero-content {
 animation: hero-settle 0.7s ease-out both;
 }

 @keyframes hero-settle {
 from {
 opacity: 0;
 transform: translateY(12px);
 }
 to {
 opacity: 1;
 transform: translateY(0);
 }
 }
}

.page-hero {
 animation: none;
}

@media (prefers-reduced-motion: no-preference) {
 .page-hero {
 animation: hero-settle 0.55s ease-out both;
 }
}

/* Cohesion helpers */
.page-hero-actions {
 margin-top: 1.25rem;
 display: flex;
 flex-wrap: wrap;
 gap: 0.85rem;
 justify-content: center;
 align-items: center;
}

.page-hero-unavailable-title {
 margin: 0 0 0.75rem;
 font-family: var(--font-display);
 font-size: clamp(2.4rem, 6vw, 3.6rem);
 letter-spacing: 0.04em;
 text-transform: uppercase;
 line-height: 1.05;
}

.groups-hero-lead {
 margin: 0.65rem auto 0.85rem;
 max-width: 36rem;
 color: var(--text-muted);
 font-size: 1.05rem;
 line-height: 1.55;
 text-align: center;
}

.contact-visit-strip {
 margin: 0 0 1.75rem;
}

.contact-form-card {
 margin-top: 1.75rem;
}

/* Fix: cohesion strip accidentally killed Christmas snow + festive hero */
.christmas-page .xmas-snow {
 display: block !important;
}

.christmas-page .party-page-hero--festive::before {
 display: block !important;
}

.christmas-page .btn-primary.btn-festive {
 background: linear-gradient(135deg, var(--festive-red, #c9302c) 0%, #a02522 100%);
 color: #fff;
 box-shadow: 0 8px 28px rgba(201, 48, 44, 0.35);
}

.christmas-page .btn-primary.btn-festive:hover {
 background: linear-gradient(135deg, var(--festive-red-bright, #e84540) 0%, var(--festive-red, #c9302c) 100%);
 color: #fff;
}

.christmas-page .eyebrow--festive {
 color: var(--festive-gold, #d4a853);
}

.christmas-page .party-page-hero--festive h1 {
 color: #f7f3eb;
}

.games-group-title {
 font-size: var(--text-card-title);
}

.party-gift-strip .section-title {
 text-align: left;
 margin-bottom: 0.5rem;
}

.nav-desktop a.nav-cta,
.nav-mobile > a.nav-cta {
 font-weight: var(--text-nav-weight);
}

.discount-signup {
 background: transparent;
 border-top: 1px solid rgba(255, 255, 255, 0.08);
 border-bottom: 0;
}

.discount-signup-inner {
 border: 0;
 border-radius: 0;
 background: transparent;
 box-shadow: none;
}

/* Distinct deals block. homepage (and anywhere .discount-signup--panel is used) */
.discount-signup--panel {
 padding: 2.25rem 0 2.5rem;
 border-top: 0;
 background:
 radial-gradient(ellipse 70% 120% at 8% 20%, rgba(141, 198, 63, 0.1), transparent 55%),
 radial-gradient(ellipse 50% 80% at 92% 80%, rgba(141, 198, 63, 0.05), transparent 50%),
 #0c0f15;
}

.discount-signup--panel .discount-signup-inner {
 display: grid;
 grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
 gap: 1.35rem 2.25rem;
 align-items: center;
 padding: clamp(1.35rem, 3vw, 1.85rem) clamp(1.25rem, 3vw, 1.85rem);
 border: 1px solid rgba(141, 198, 63, 0.22);
 border-radius: 16px;
 background:
 linear-gradient(145deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.015) 42%, rgba(0, 0, 0, 0.22)),
 rgba(18, 22, 30, 0.95);
 box-shadow:
 0 22px 60px rgba(0, 0, 0, 0.35),
 inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.discount-signup--panel .discount-signup-copy .eyebrow {
 color: var(--accent-bright);
}

.discount-signup--panel .discount-signup-copy h3 {
 font-size: clamp(1.75rem, 3.5vw, 2.35rem);
 letter-spacing: 0.03em;
}

.discount-signup--panel .discount-signup-copy > p {
 max-width: 36ch;
 font-size: 0.98rem;
 color: rgba(247, 243, 235, 0.72);
}

.discount-signup--panel .discount-signup-form input[type="email"] {
 background: rgba(7, 9, 13, 0.55);
 border-color: rgba(255, 255, 255, 0.12);
}

.discount-signup--panel .discount-signup-actions .btn {
 width: 100%;
 justify-content: center;
}

@media (max-width: 760px) {
 .discount-signup--panel {
 padding: 1.75rem 0 2rem;
 }

 .discount-signup--panel .discount-signup-inner {
 grid-template-columns: 1fr;
 gap: 1.15rem;
 align-items: stretch;
 }

 .discount-signup--panel .discount-signup-copy {
 text-align: center;
 }

 .discount-signup--panel .discount-signup-copy .eyebrow {
 justify-content: center;
 }

 .discount-signup--panel .discount-signup-copy > p {
 margin-left: auto;
 margin-right: auto;
 }
}

/* ============================================================
 HOME OFFERS (after hero) + HOME MID paths
 ============================================================ */
.home-offers {
 position: relative;
 isolation: isolate;
 overflow: hidden;
 padding: 1.45rem 0 1.15rem;
 border-top: 1px solid rgba(255, 255, 255, 0.07);
 background:
 linear-gradient(180deg, rgba(255, 255, 255, 0.025), transparent 42%),
 #12161e;
}

.home-offers::before {
 content: "";
 position: absolute;
 inset: 0 0 auto 0;
 height: 1px;
 background: linear-gradient(
 90deg,
 transparent 0%,
 rgba(168, 224, 83, 0.35) 22%,
 rgba(255, 255, 255, 0.14) 50%,
 rgba(168, 224, 83, 0.28) 78%,
 transparent 100%
 );
 pointer-events: none;
}

.home-mid-offers {
 position: relative;
 z-index: 1;
 margin: 0;
 padding: 0;
}

.home-mid-offers-head {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
 gap: 0.65rem 1.25rem;
 margin: 0 0 0.95rem;
}

.home-mid-offers-copy {
 display: flex;
 align-items: flex-start;
 gap: 0.7rem;
 min-width: 0;
 animation: homeMidOffersSlam 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.home-mid-offers-live {
 position: relative;
 flex: 0 0 auto;
 width: 0.58rem;
 height: 0.58rem;
 margin-top: 1.35rem;
 border-radius: 50%;
 background: var(--accent-bright, #a8e053);
 box-shadow: 0 0 0 0 rgba(168, 224, 83, 0.55);
 animation: homeOffersPulse 1.6s ease-out infinite;
}

.home-mid-offers-live::before,
.home-mid-offers-live::after {
 content: "";
 position: absolute;
 inset: -3px;
 border-radius: 50%;
 border: 1px solid rgba(168, 224, 83, 0.55);
 animation: homeOffersRadar 1.6s ease-out infinite;
}

.home-mid-offers-live::after {
 animation-delay: 0.8s;
}

.home-mid-offers-titles {
 display: grid;
 grid-template-columns: auto auto;
 align-items: baseline;
 column-gap: 0.85rem;
 row-gap: 0.18rem;
 min-width: 0;
}

.home-mid-offers-status {
 grid-column: 1 / -1;
 margin: 0;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: var(--home-kicker-size, 0.72rem);
 font-weight: 700;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 color: var(--accent-bright, #a8e053);
}

body.page-home .home-mid-offers-title {
 margin: 0;
 font-family: var(--font-display);
 font-size: var(--home-section-title-size);
 font-weight: 400;
 letter-spacing: var(--home-section-title-tracking);
 line-height: 1;
 text-transform: uppercase;
 color: var(--text);
 text-shadow: none;
 animation: homeOffersTitleUnlock 1.1s cubic-bezier(0.22, 1, 0.36, 1) both;
}


.home-mid-offers-link {
 position: relative;
 flex: 0 0 auto;
 display: inline-flex;
 align-items: center;
 gap: 0.4rem;
 padding: 0.5rem 0.9rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.7rem;
 font-weight: 700;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 text-decoration: none;
 color: #0a0c10;
 white-space: nowrap;
 background: var(--accent-bright, #a8e053);
 border: 1px solid var(--accent-bright, #a8e053);
 border-radius: 3px;
 overflow: hidden;
 animation: homeOffersLinkPulse 2.2s ease-in-out infinite;
 transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.home-mid-offers-link::before {
 content: "";
 position: absolute;
 inset: 0;
 background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, 0.35) 48%, transparent 65%);
 transform: translateX(-130%);
 animation: homeMidDealShine 2.4s ease-in-out 1.2s infinite;
 pointer-events: none;
}

.home-mid-offers-link:hover,
.home-mid-offers-link:focus-visible {
 background: #c4f07a;
 border-color: #c4f07a;
 color: #0a0c10;
 transform: translateY(-2px) scale(1.02);
 box-shadow: 0 10px 24px rgba(141, 198, 63, 0.32);
 outline: none;
}

.home-mid-offers-link span[aria-hidden] {
 display: inline-block;
 animation: homeOffersArrowNudge 1.1s ease-in-out infinite;
}

.home-mid-offers-link:hover span[aria-hidden],
.home-mid-offers-link:focus-visible span[aria-hidden] {
 animation: none;
 transform: translateX(4px);
}

.home-mid-deal-board {
 list-style: none;
 margin: 0 0 0.6rem;
 padding: 0;
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.7rem;
}

.home-mid-deal-item {
 --deal-i: 0;
 margin: 0;
 padding: 0;
 list-style: none;
 animation: homeMidDealSlam 0.65s cubic-bezier(0.16, 1, 0.3, 1) both;
 animation-delay: calc(0.22s + var(--deal-i) * 0.1s);
}

.home-mid-deal-card {
 position: relative;
 display: flex;
 flex-direction: column;
 gap: 0.2rem;
 height: 100%;
 padding: 0.95rem 1.05rem;
 border: 1px solid rgba(255, 255, 255, 0.12);
 border-radius: 6px;
 background: #161b24;
 box-shadow:
 inset 3px 0 0 var(--accent-bright, #a8e053),
 0 12px 28px rgba(0, 0, 0, 0.28);
 text-decoration: none;
 color: inherit;
 overflow: hidden;
 transition:
 border-color 0.25s ease,
 background 0.25s ease,
 transform 0.25s cubic-bezier(0.22, 1, 0.36, 1),
 box-shadow 0.25s ease;
}

.home-mid-deal-card::after {
 content: "";
 position: absolute;
 inset: 0;
 background: linear-gradient(110deg, transparent 35%, rgba(255, 255, 255, 0.06) 48%, transparent 62%);
 transform: translateX(-120%);
 pointer-events: none;
}

.home-mid-deal-card:hover,
.home-mid-deal-card:focus-visible {
 border-color: rgba(168, 224, 83, 0.4);
 background: #181e28;
 transform: translateY(-3px) scale(1.01);
 box-shadow:
 inset 3px 0 0 #c4f07a,
 0 18px 38px rgba(0, 0, 0, 0.4),
 0 0 20px rgba(141, 198, 63, 0.12);
 outline: none;
}

.home-mid-deal-card:hover::after,
.home-mid-deal-card:focus-visible::after {
 animation: homeMidDealShine 0.7s ease;
}

.home-mid-deal-item.is-featured .home-mid-deal-card {
 border-color: rgba(168, 224, 83, 0.45);
 padding-right: 3.4rem;
 animation: homeMidDealPulse 2.2s ease-in-out infinite;
}

.home-mid-deal-item.is-featured .home-mid-deal-card::before {
 content: "Today";
 position: absolute;
 top: 0.7rem;
 right: 0.75rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.55rem;
 font-weight: 700;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: #0a0c10;
 background: var(--accent-bright, #a8e053);
 padding: 0.22rem 0.4rem;
 border-radius: 2px;
}

.home-mid-deal-name {
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.62rem;
 font-weight: 700;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

.home-mid-deal-benefit {
 font-family: "Bebas Neue", "Barlow Condensed", "Impact", sans-serif;
 font-size: clamp(1.55rem, 2.8vw, 1.95rem);
 font-weight: 400;
 letter-spacing: 0.03em;
 line-height: 1;
 color: var(--text);
}

.home-mid-deal-hint {
 font-size: 0.78rem;
 font-weight: 500;
 line-height: 1.35;
 color: var(--text-muted);
}

.home-mid-deal-terms {
 margin: 0;
 font-size: 0.72rem;
 font-weight: 500;
 line-height: 1.3;
 color: var(--text-muted);
 animation: homeMidOffersFadeUp 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.55s both;
}

.home-mid-deal-terms a {
 color: inherit;
 text-decoration: underline;
 text-underline-offset: 0.15em;
}

.home-mid-deal-terms a:hover,
.home-mid-deal-terms a:focus-visible {
 color: var(--accent-bright);
}

@keyframes homeOffersPulse {
 0% { box-shadow: 0 0 0 0 rgba(168, 224, 83, 0.55); }
 70% { box-shadow: 0 0 0 12px rgba(168, 224, 83, 0); }
 100% { box-shadow: 0 0 0 0 rgba(168, 224, 83, 0); }
}

@keyframes homeOffersRadar {
 0% { transform: scale(0.7); opacity: 0.9; }
 100% { transform: scale(2.4); opacity: 0; }
}

@keyframes homeOffersTitleUnlock {
 0% {
 opacity: 0;
 letter-spacing: 0.22em;
 filter: blur(4px);
 transform: translateY(10px);
 }
 55% {
 opacity: 1;
 filter: blur(0);
 }
 100% {
 opacity: 1;
 letter-spacing: 0.04em;
 filter: blur(0);
 transform: translateY(0);
 }
}

@keyframes homeOffersLinkPulse {
 0%, 100% { box-shadow: 0 0 0 0 rgba(168, 224, 83, 0.35); }
 50% { box-shadow: 0 0 0 8px rgba(168, 224, 83, 0); }
}

@keyframes homeOffersArrowNudge {
 0%, 100% { transform: translateX(0); }
 50% { transform: translateX(4px); }
}

@keyframes homeMidOffersSlam {
 0% { opacity: 0; transform: translateY(16px) scale(0.97); }
 100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes homeMidOffersFadeUp {
 from { opacity: 0; transform: translateY(8px); }
 to { opacity: 1; transform: translateY(0); }
}

@keyframes homeMidDealSlam {
 0% { opacity: 0; transform: translateY(22px) scale(0.96); }
 100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes homeMidDealPulse {
 0%, 100% {
 box-shadow:
 inset 3px 0 0 var(--accent-bright, #a8e053),
 0 12px 28px rgba(0, 0, 0, 0.28);
 }
 50% {
 box-shadow:
 inset 3px 0 0 #c4f07a,
 0 16px 34px rgba(0, 0, 0, 0.34),
 0 0 22px rgba(141, 198, 63, 0.2);
 }
}

@keyframes homeMidDealShine {
 from { transform: translateX(-120%); }
 to { transform: translateX(120%); }
}

@media (prefers-reduced-motion: reduce) {
 .home-mid-offers-copy,
 .home-mid-offers-live,
 .home-mid-offers-live::before,
 .home-mid-offers-live::after,
 .home-mid-offers-title,
 .home-mid-offers-link,
 .home-mid-offers-link::before,
 .home-mid-offers-link span[aria-hidden],
 .home-mid-deal-item,
 .home-mid-deal-terms,
 .home-mid-deal-item.is-featured .home-mid-deal-card,
 .home-mid-deal-card:hover::after,
 .home-mid-deal-card:focus-visible::after {
 animation: none !important;
 }

 .home-mid-deal-card:hover,
 .home-mid-deal-card:focus-visible,
 .home-mid-offers-link:hover,
 .home-mid-offers-link:focus-visible {
 transform: none;
 }
}

@media (min-width: 900px) {
 .home-mid-deal-board:has(> :nth-child(3)) {
 grid-template-columns: repeat(4, minmax(0, 1fr));
 }
}

@media (max-width: 560px) {
 .home-mid-deal-board {
 grid-template-columns: 1fr;
 }

 .home-mid-offers-head {
 align-items: flex-start;
 }

 .home-mid-offers-titles {
 grid-template-columns: 1fr;
 }

 .home-mid-offers-live {
 margin-top: 1.2rem;
 }
}

/* Paths band under holidays */
.home-mid {
 position: relative;
 isolation: isolate;
 overflow: hidden;
 padding: clamp(2.25rem, 4vw, 3.25rem) 0;
 border-top: 1px solid rgba(255, 255, 255, 0.06);
 background: #12161e;
}

.home-mid-wrap {
 position: relative;
 z-index: 1;
}

.home-mid-paths {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0;
}

.home-mid-path {
 display: flex;
 flex-direction: column;
 align-items: center;
 min-height: 100%;
 padding: 0.2rem clamp(1.15rem, 2.4vw, 1.75rem);
 text-align: center;
}

.home-mid-path:first-child {
 padding-left: 0;
}

.home-mid-path:last-child {
 padding-right: 0;
 border-left: 1px solid rgba(255, 255, 255, 0.1);
}

body.page-home .home-mid-path .home-mid-title,
body.page-home .home-mid-path h2.atelier-heading.home-mid-title {
 margin: 0 0 0.4rem;
 font-family: var(--font-display);
 font-size: var(--home-section-title-size);
 font-weight: 400;
 letter-spacing: var(--home-section-title-tracking);
 line-height: 1;
 text-transform: uppercase;
 color: var(--text);
}

.home-mid-tag {
 margin: 0 0 0.75rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: var(--home-section-lead-size);
 font-weight: 500;
 letter-spacing: 0.01em;
 line-height: 1.35;
 color: var(--accent-bright);
}

.home-mid-lead {
 margin: 0 auto 1.05rem;
 max-width: 38ch;
 font-family: var(--font-body);
 font-size: var(--home-body-lead-size);
 font-weight: 500;
 line-height: 1.55;
 color: var(--text-muted);
}

.home-mid-chips {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.3rem 0.5rem;
 margin: -0.2rem 0 1.1rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.68rem;
 font-weight: 600;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.home-mid-chips span[aria-hidden="true"] {
 color: rgba(255, 255, 255, 0.22);
 font-weight: 400;
 letter-spacing: 0;
}

.home-mid-actions {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.6rem;
 margin-top: auto;
 padding-top: 0.25rem;
}

.home-mid-actions .btn {
 min-height: 2.7rem;
 border-radius: 3px !important;
}

@media (max-width: 900px) {
 .home-mid-paths {
 grid-template-columns: 1fr;
 }

 .home-mid-path {
 min-height: 0;
 padding: 1.75rem 0 0;
 }

 .home-mid-path:first-child {
 padding-top: 0.35rem;
 }

 .home-mid-path:last-child {
 border-left: 0;
 border-top: 1px solid rgba(255, 255, 255, 0.1);
 margin-top: 1.75rem;
 padding-top: 1.75rem;
 }

 .home-mid-lead {
 margin-bottom: 0.85rem;
 }

 .home-mid-chips {
 margin: 0 0 0.85rem;
 }

 .home-mid-actions {
 margin-top: 0;
 padding-top: 0;
 }
}

@media (max-width: 560px) {
 .home-mid-deal-board {
 grid-template-columns: 1fr 1fr;
 }

 .home-mid-actions {
 flex-direction: column;
 align-items: stretch;
 }

 .home-mid-actions .btn {
 width: 100%;
 justify-content: center;
 }
}

.blog-card {
 margin: 0;
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius);
 box-shadow: var(--glow);
 transition: border-color 0.2s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.blog-card:hover {
 border-color: rgba(141, 198, 63, 0.25);
 transform: translateY(-2px);
 box-shadow: 0 12px 36px rgba(0, 0, 0, 0.35);
}

.blog-card a {
 display: block;
 padding: 1.25rem 1.35rem;
 color: inherit;
 text-decoration: none;
}

.blog-card a:hover h2 {
 color: var(--accent-bright);
}

.blog-card h2 {
 font-family: var(--font-body);
 font-size: 1.15rem;
 font-weight: 700;
 line-height: 1.35;
 margin: 0 0 0.5rem;
}

.blog-card p {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.95rem;
 line-height: 1.55;
}

.blog-post-page .page-hero {
 padding-bottom: 0.5rem;
}

.blog-post {
 max-width: 42rem;
 margin: 0 auto;
 padding: 0 0 2.5rem;
}

.blog-prose {
 font-size: 1rem;
}

.blog-prose > p:first-child {
 margin-top: 0;
}

.blog-prose h3 {
 font-family: var(--font-body);
 font-size: 1.05rem;
 font-weight: 700;
 margin: 2rem 0 0.65rem;
 color: var(--text);
}

.blog-prose h4 {
 font-family: var(--font-body);
 font-size: 1rem;
 font-weight: 700;
 margin: 1.5rem 0 0.5rem;
}

.blog-prose p {
 margin: 0 0 1rem;
}

.blog-prose ul {
 margin: 0 0 1rem;
 padding-left: 1.25rem;
}

.blog-prose li {
 margin-bottom: 0.35rem;
}

.blog-prose strong {
 font-weight: 700;
 color: var(--text);
}

.blog-back {
 margin: 2rem 0 0;
 padding-top: 1.5rem;
 border-top: 1px solid var(--border);
}

/* --- Game / room pages --- */
.game-page .wrap {
 padding-left: clamp(1.35rem, 4.5vw, 2.75rem);
 padding-right: clamp(1.35rem, 4.5vw, 2.75rem);
}

.game-page .breadcrumbs {
 padding-top: 1.35rem;
 padding-bottom: 0.75rem;
}

.game-page-hero-wrap {
 padding-bottom: 0.25rem;
 text-align: center;
 position: relative;
 width: 100%;
 max-width: 100%;
 overflow-x: hidden;
 background:
 radial-gradient(ellipse 70% 55% at 12% 0%, rgba(141, 198, 63, 0.09), transparent 58%),
 radial-gradient(ellipse 50% 40% at 88% 20%, rgba(141, 198, 63, 0.05), transparent 50%);
}

.game-page-hero-wrap.page-hero {
 text-align: center;
 padding-top: 1.15rem;
 padding-bottom: 0.75rem;
}

.game-page-hero-wrap::after {
 display: none;
}

.game-page-hero-wrap h1 {
 text-align: center;
}

.game-page-hero-wrap::before {
 display: none;
}

.game-page-hero {
 display: flex;
 flex-direction: column;
 gap: clamp(1rem, 2.5vw, 1.35rem);
 align-items: stretch;
 min-width: 0;
 max-width: 52rem;
 margin: 0 auto;
 width: 100%;
}

.game-page-hero > div:first-child {
 display: flex;
 flex-direction: column;
 align-items: center;
 text-align: center;
 min-width: 0;
 width: 100%;
}

@media (max-width: 960px) {
 .game-page-hero-wrap.page-hero {
 padding-top: 0.85rem;
 padding-bottom: 0.5rem;
 }

 .game-page-hero .eyebrow {
 display: flex;
 width: 100%;
 max-width: 100%;
 justify-content: center;
 }

 .game-page-hero h1 {
 font-size: clamp(1.75rem, 8vw, 2.35rem);
 }

 .game-page-content--compact {
 width: 100%;
 max-width: 100%;
 min-width: 0;
 }

 .game-page-storyline {
 max-width: none;
 }

 .game-page .breadcrumbs {
 padding-top: 1.1rem;
 }

 .game-page .breadcrumbs + .game-page-hero-wrap {
 padding-top: 0.65rem;
 }
}

.game-page-hero-media {
 order: -1;
 position: relative;
 width: 100%;
 min-width: 0;
 max-width: 100%;
 border-radius: 14px;
 overflow: hidden;
 border: 1px solid rgba(141, 198, 63, 0.18);
 background: var(--bg-elevated);
 box-shadow:
 0 22px 60px rgba(0, 0, 0, 0.34),
 0 0 34px rgba(141, 198, 63, 0.08);
}

.game-page-hero-media::after {
 content: "";
 position: absolute;
 inset: 0;
 background:
 linear-gradient(180deg, transparent 62%, rgba(0, 0, 0, 0.18)),
 radial-gradient(ellipse 90% 70% at 10% 0%, rgba(141, 198, 63, 0.08), transparent 54%);
 pointer-events: none;
}

.game-page-hero img {
 width: 100%;
 max-width: 100%;
 height: auto;
 aspect-ratio: 16 / 9;
 object-fit: contain;
 display: block;
 border: 0;
 border-radius: 0;
 background: var(--bg-elevated);
}

.game-page-hero h1 {
 margin: 0 0 0.35rem;
 line-height: 1.05;
 font-size: clamp(2rem, 4.5vw, 2.75rem);
 letter-spacing: 0.04em;
}

.game-page-hero .eyebrow {
 margin-bottom: 0.5rem;
 justify-content: center;
}

.game-page-hook {
 margin: 1.35rem 0 0;
 max-width: 44rem;
 line-height: 1.55;
 color: var(--text);
 font-size: clamp(1.02rem, 2vw, 1.18rem);
 font-weight: 400;
}

.game-page-hero .section-lead {
 margin-top: 0 !important;
 margin-bottom: 0 !important;
}

.game-page-stats {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.5rem;
 margin: 0.85rem 0 0;
 width: 100%;
}

@media (min-width: 640px) {
 .game-page-stats {
 grid-template-columns: repeat(4, minmax(0, 1fr));
 }
}

.game-page-stats .tag {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 0.42rem;
 width: 100%;
 min-height: 2.25rem;
 padding: 0.45rem 0.5rem;
 border: 1px solid rgba(141, 198, 63, 0.2);
 border-radius: 999px;
 background:
 linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.025)),
 rgba(0, 0, 0, 0.18);
 color: var(--text);
 box-shadow: none;
 font-size: 0.68rem;
 letter-spacing: 0.07em;
 text-align: center;
}

@media (max-width: 480px) {
 .game-page-stats .tag {
 font-size: 0.64rem;
 padding: 0.38rem 0.45rem;
 min-height: 2.1rem;
 }
}

.game-page-stats .tag::before {
 content: "";
 width: 0.34rem;
 height: 0.34rem;
 border-radius: 50%;
 background: var(--accent);
 box-shadow: 0 0 12px rgba(141, 198, 63, 0.42);
}

.game-page-age-note {
 margin: 0.85rem 0 0;
 max-width: 36rem;
 font-size: 0.9rem;
 line-height: 1.55;
 color: var(--text-muted);
}

.game-page-age-note a {
 color: inherit;
 text-decoration: underline;
 text-underline-offset: 0.15em;
}

.game-page-age-note a:hover {
 color: var(--accent);
}

.game-page-hero-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem;
 margin: 1.5rem 0 0;
}

.game-page-body {
 position: relative;
 padding-top: 1.35rem;
 padding-bottom: 3.5rem;
 overflow-x: hidden;
 background:
 radial-gradient(ellipse 70% 45% at 18% 0%, rgba(141, 198, 63, 0.055), transparent 62%),
 linear-gradient(180deg, rgba(255, 255, 255, 0.012), transparent 34%);
}

.game-page-body.section--flush-top {
 padding-top: 1.35rem;
}

.game-page-body > .wrap {
 width: 100%;
}

.game-page-sheet {
 width: 100%;
 max-width: var(--max);
 margin: 0 auto;
}

.game-page-content--compact {
 max-width: none;
 margin-inline: 0;
 display: flex;
 flex-direction: column;
 gap: 0;
}

.game-page-storyline {
 position: relative;
 max-width: 52rem;
 padding: clamp(1.3rem, 3vw, 1.65rem);
 border: 1px solid rgba(141, 198, 63, 0.24);
 border-radius: var(--radius-lg);
 background:
 radial-gradient(ellipse 80% 130% at 0% 0%, rgba(141, 198, 63, 0.12), transparent 58%),
 linear-gradient(145deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.018) 44%, rgba(0, 0, 0, 0.18));
 box-shadow:
 0 22px 70px rgba(0, 0, 0, 0.32),
 inset 0 1px 0 rgba(255, 255, 255, 0.06);
 overflow: hidden;
}

.game-page-storyline::before {
 content: "";
 position: absolute;
 inset: 0 auto 0 0;
 width: 3px;
 background: linear-gradient(180deg, var(--accent), transparent);
}

.game-page-storyline::after {
 content: none;
 position: absolute;
 right: 1.1rem;
 bottom: -0.7rem;
 font-family: var(--font-display);
 font-size: clamp(3.5rem, 10vw, 6rem);
 letter-spacing: 0.08em;
 color: rgba(255, 255, 255, 0.025);
 pointer-events: none;
}

.game-page-kicker {
 margin: 0 0 0.55rem;
 font-family: var(--font-display);
 font-size: 0.82rem;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

.game-page-storyline p:last-child {
 position: relative;
 z-index: 1;
 margin: 0;
 max-width: 43rem;
 font-size: clamp(1.02rem, 2vw, 1.14rem);
 line-height: 1.66;
 color: var(--text);
}

.game-page-points {
 display: none;
}

.game-page-note {
 padding: 0;
 border: none;
 background: none;
 margin-bottom: 1.75rem;
}

.game-page-note p {
 margin: 0;
 font-size: 1rem;
 line-height: 1.7;
 color: var(--text-muted);
 max-width: 38rem;
}

.game-page-note a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-page-mini-faq {
 display: grid;
 gap: 0.45rem;
 padding: 0;
 border: none;
 border-radius: 0;
 background: none;
}

.game-page-faq-item {
 border: 1px solid rgba(255, 255, 255, 0.06);
 border-radius: 8px;
 background: rgba(0, 0, 0, 0.15);
}

.game-page-faq-more {
 margin: 0.5rem 0 0;
 font-size: 0.88rem;
}

.game-page-faq-more a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-page-more {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.5rem 0.7rem;
 padding-top: 1.35rem;
 margin-top: 0.15rem;
 border-top: 1px solid var(--border);
}

.game-page-more-label {
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.game-page-more a {
 padding: 0.25rem 0.55rem;
 border: 1px solid rgba(141, 198, 63, 0.16);
 border-radius: 999px;
 background: rgba(255, 255, 255, 0.025);
 font-size: 0.86rem;
 font-weight: 600;
 color: var(--accent-bright);
 text-decoration: none;
}

.game-page-more a:hover {
 color: #f0ffd9;
 border-color: rgba(141, 198, 63, 0.36);
 text-decoration: none;
}

.game-page-cta-bar {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.75rem 1rem;
 padding-top: 0.35rem;
 margin-top: 0;
}

.game-page-cta-bar .btn-primary {
 min-width: min(100%, 14rem);
 justify-content: center;
 box-shadow:
 0 12px 34px rgba(141, 198, 63, 0.24),
 0 0 0 1px rgba(255, 255, 255, 0.05) inset;
}

.game-page-useful {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.45rem 0.65rem;
 margin-top: -0.15rem;
 color: var(--text-muted);
 font-size: 0.86rem;
}

.game-page-useful span {
 font-size: 0.68rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.game-page-useful a {
 color: var(--accent-bright);
 font-weight: 600;
 text-decoration: none;
}

.game-page-useful a::after {
 content: "→";
 margin-left: 0.28rem;
 opacity: 0.75;
}

.game-page-useful a:hover {
 color: #f0ffd9;
 text-decoration: underline;
 text-underline-offset: 0.16em;
}

.game-page-cta-link {
 font-size: 0.9rem;
 font-weight: 600;
 color: var(--accent-bright);
}

.game-page-layout {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(250px, 290px);
 gap: clamp(1.75rem, 4vw, 2.75rem);
 align-items: start;
}

.game-page-content {
 min-width: 0;
 display: flex;
 flex-direction: column;
 gap: 1.75rem;
}

.game-page-storyline a,
.game-page-details-item a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-page-section-heading {
 margin: 0 0 0.75rem;
 font-family: var(--font-display);
 font-size: 1.05rem;
 letter-spacing: 0.07em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.game-page-highlights {
 margin: 0;
 padding: 0;
 border: 0;
}

.game-page-facts {
 display: flex;
 flex-wrap: wrap;
 gap: 0.6rem;
 margin: 0;
 padding: 0;
 list-style: none;
}

.game-page-facts li {
 display: inline-flex;
 align-items: center;
 min-height: 2.1rem;
 padding: 0.48rem 0.78rem;
 border: 1px solid rgba(141, 198, 63, 0.18);
 border-radius: 999px;
 background:
 linear-gradient(180deg, rgba(255, 255, 255, 0.052), rgba(255, 255, 255, 0.02)),
 rgba(0, 0, 0, 0.12);
 font-size: 0.84rem;
 line-height: 1.3;
 color: var(--text-muted);
}

.game-page-facts li::before {
 content: "";
 width: 0.38rem;
 height: 0.38rem;
 margin-right: 0.45rem;
 border-radius: 50%;
 background: var(--accent);
 box-shadow: 0 0 12px rgba(141, 198, 63, 0.42);
}

.game-page-details {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.85rem;
 padding: 0;
 border: 0;
 background: none;
}

.game-page-details-item {
 position: relative;
 padding: 1.05rem 1.1rem 1.1rem;
 border: 1px solid rgba(255, 255, 255, 0.085);
 border-radius: var(--radius-md, 12px);
 background:
 radial-gradient(ellipse 80% 80% at 0% 0%, rgba(141, 198, 63, 0.075), transparent 58%),
 linear-gradient(165deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.018) 48%, rgba(0, 0, 0, 0.12));
 box-shadow:
 0 16px 48px rgba(0, 0, 0, 0.24),
 inset 0 1px 0 rgba(255, 255, 255, 0.05);
 overflow: hidden;
}

.game-page-details-item::before {
 content: "";
 position: absolute;
 inset: 0 0 auto 0;
 height: 2px;
 background: linear-gradient(90deg, var(--accent), transparent);
 opacity: 0.7;
}

.game-page-details-heading {
 margin: 0 0 0.45rem;
 font-family: var(--font-display);
 font-size: 0.86rem;
 font-weight: 400;
 letter-spacing: 0.09em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

.game-page-details-item p {
 margin: 0;
 font-size: 0.89rem;
 line-height: 1.58;
 color: var(--text-muted);
}

.game-page-details-item a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-page-local {
 position: relative;
 padding: 1rem 1.1rem 1.05rem;
 border: 1px solid rgba(141, 198, 63, 0.16);
 border-radius: var(--radius-md, 12px);
 background:
 radial-gradient(ellipse 90% 120% at 100% 0%, rgba(141, 198, 63, 0.08), transparent 56%),
 rgba(255, 255, 255, 0.025);
 overflow: hidden;
}

.game-page-local::after {
 content: "CF37";
 position: absolute;
 right: 0.85rem;
 bottom: -0.75rem;
 font-family: var(--font-display);
 font-size: clamp(3rem, 9vw, 5rem);
 letter-spacing: 0.08em;
 color: rgba(255, 255, 255, 0.025);
 pointer-events: none;
}

.game-page-local .game-page-kicker {
 margin-bottom: 0.35rem;
 font-size: 0.76rem;
}

.game-page-local h2 {
 position: relative;
 z-index: 1;
 margin: 0 0 0.35rem;
 font-family: var(--font-display);
 font-size: clamp(1.25rem, 3vw, 1.65rem);
 line-height: 1;
 letter-spacing: 0.05em;
 text-transform: uppercase;
}

.game-page-local p:last-child {
 position: relative;
 z-index: 1;
 max-width: 42rem;
 margin: 0;
 color: var(--text-muted);
 font-size: 0.92rem;
 line-height: 1.58;
}

@media (max-width: 640px) {
 .game-page-details {
 grid-template-columns: 1fr;
 gap: 0.85rem;
 }

 .game-page-details-item + .game-page-details-item {
 padding-top: 0.85rem;
 border-top: 1px solid var(--border);
 }
}

.game-page-panel {
 padding: 1.15rem 1.2rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-md, 12px);
 background: var(--bg-panel);
}

.game-page-faq {
 margin: 0;
 padding: 0;
 border: 0;
}

.game-page-faq-list {
 display: grid;
 gap: 0.45rem;
}

.game-page-faq .faq-item {
 border: 1px solid rgba(255, 255, 255, 0.06);
 border-radius: 8px;
 background: rgba(0, 0, 0, 0.15);
}

.game-page-faq .faq-item p a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-page-review {
 margin: 0;
 padding: 0;
 border: 0;
}

.game-page-review-quote {
 margin: 0;
 padding: 1rem 1.05rem;
 border-left: 3px solid var(--accent);
 border-radius: 0 var(--radius-md, 12px) var(--radius-md, 12px) 0;
 background: rgba(255, 255, 255, 0.03);
}

.game-page-review-quote p {
 margin: 0 0 0.65rem;
 font-size: 0.92rem;
 line-height: 1.58;
 color: var(--text-muted);
 font-style: italic;
}

.game-page-review-quote footer {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.35rem 0.45rem;
 font-size: 0.78rem;
 color: var(--text-muted);
}

.game-page-review-author {
 font-weight: 700;
 color: var(--text);
 font-style: normal;
}

.game-page-review-stars {
 color: var(--accent);
 letter-spacing: 0.05em;
}

.game-page-review-quote footer a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-page-sidebar {
 position: sticky;
 top: calc(var(--header-h, 72px) + 1rem);
 display: flex;
 flex-direction: column;
 gap: 0.85rem;
}

.game-page-sidebar-card {
 padding: 1.15rem 1.1rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-md, 12px);
 background: var(--bg-panel);
}

.game-page-sidebar-card--book {
 background: linear-gradient(165deg, rgba(141, 198, 63, 0.1) 0%, var(--bg-panel) 58%);
 border-color: rgba(141, 198, 63, 0.28);
}

.game-page-sidebar-eyebrow {
 margin: 0 0 0.65rem;
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.game-page-sidebar-cta {
 width: 100%;
 justify-content: center;
}

.game-page-sidebar-link {
 display: inline-block;
 margin-top: 0.65rem;
 font-size: 0.88rem;
 font-weight: 600;
 color: var(--accent-bright);
}

.game-page-sidebar-title {
 margin: 0 0 0.75rem;
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.game-page-sidebar .game-page-facts {
 margin: 0;
 display: grid;
 gap: 0.55rem;
}

.game-page-fact {
 display: grid;
 grid-template-columns: 5.5rem minmax(0, 1fr);
 gap: 0.5rem;
 align-items: baseline;
 padding-bottom: 0.55rem;
 border-bottom: 1px solid var(--border);
}

.game-page-fact:last-child {
 padding-bottom: 0;
 border-bottom: 0;
}

.game-page-fact dt {
 margin: 0;
 font-size: 0.68rem;
 font-weight: 700;
 letter-spacing: 0.07em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.game-page-fact dd {
 margin: 0;
 font-size: 0.88rem;
 line-height: 1.4;
 color: var(--text);
}

.game-page-related {
 margin: 0;
 padding: 0;
 border: 0;
}

.game-page-related-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 0.6rem;
}

.game-page-related-card {
 display: flex;
 flex-direction: column;
 gap: 0.2rem;
 padding: 0.85rem 0.95rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-md, 12px);
 background: var(--bg-panel);
 text-decoration: none;
 transition: border-color 0.2s ease;
}

.game-page-related-card:hover {
 border-color: rgba(141, 198, 63, 0.35);
}

.game-page-related-name {
 font-size: 0.92rem;
 font-weight: 700;
 color: var(--text);
}

.game-page-related-tag {
 font-size: 0.8rem;
 color: var(--text-muted);
}

.game-page-related-more {
 margin: 0.65rem 0 0;
 font-size: 0.88rem;
}

.game-page-related-more a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-page-cta {
 margin: 0;
 padding: 0;
 border: 0;
}

.game-page-cta--mobile {
 display: none;
}

.game-page-cta .btn {
 width: 100%;
 justify-content: center;
}

@media (max-width: 960px) {
 .game-page-layout {
 grid-template-columns: 1fr;
 }

 .game-page-sidebar {
 position: static;
 order: -1;
 }

 .game-page-sidebar-card--facts {
 display: none;
 }

 .game-page-related-grid {
 grid-template-columns: 1fr;
 }

 .game-page-cta--mobile {
 display: block;
 }

 .game-page-body {
 padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
 }
}

.game-page-also {
 margin: 1.35rem 0 0;
 padding-top: 1.25rem;
 border-top: 1px solid var(--border);
 font-size: 0.9rem;
 color: var(--text-muted);
 line-height: 1.55;
}

.game-page-also a {
 color: var(--accent-bright);
 font-weight: 600;
 text-decoration: none;
}

.game-page-also a:hover {
 text-decoration: underline;
}

#games,
#live-rooms,
#vr-games,
#visit,
#reviews,
#booking-calendar {
 scroll-margin-top: calc(var(--header-h) + 1rem);
}

:focus-visible {
 outline: 2px solid var(--accent-bright);
 outline-offset: 3px;
}

.breadcrumbs + .wrap.page-hero {
 padding-top: 0.5rem;
}

.game-page .breadcrumbs + .wrap.page-hero,
.game-page .breadcrumbs + .game-page-hero-wrap {
 padding-top: 1.15rem;
}

.nav-mobile a:focus-visible,
.nav-desktop a:focus-visible,
.btn:focus-visible {
 outline: 2px solid var(--accent-bright);
 outline-offset: 2px;
}

.nav-toggle-label:focus-visible {
 outline: 2px solid var(--accent-bright);
 outline-offset: 2px;
}

.game-card .btn-block + .btn-block {
 margin-top: 0.65rem !important;
}

/* - - Premium polish & conversion blocks - - */

main > .breadcrumbs + .wrap.page-hero::before,
.wrap.page-hero:first-child::before {
 content: "";
 position: absolute;
 left: 50%;
 top: 0;
 transform: translateX(-50%);
 width: min(640px, 90vw);
 height: 180px;
 background: radial-gradient(ellipse at center, rgba(141, 198, 63, 0.12), transparent 70%);
 pointer-events: none;
 z-index: -1;
}

.hero h1 span {
 text-shadow: 0 0 32px rgba(141, 198, 63, 0.35);
}

.game-card-media img {
 transition: none;
}

.game-card:hover .game-card-media img {
 transform: none;
}

.review-card:hover {
 border-color: var(--border-accent);
 box-shadow: var(--shadow-card);
}

.reviews-google-score {
 padding: 0.65rem 1rem;
 border-radius: 999px;
 border: 1px solid rgba(141, 198, 63, 0.2);
 background: rgba(141, 198, 63, 0.06);
}

.booking-offer-note {
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

.contact-form-section-inner {
 border: 1px solid var(--border);
 box-shadow: var(--shadow-card);
}

.book-cta-strip {
 padding: var(--section-space) 0;
 margin-top: 0;
 background:
 radial-gradient(ellipse 80% 120% at 50% 0%, rgba(141, 198, 63, 0.14), transparent 55%),
 linear-gradient(180deg, rgba(141, 198, 63, 0.04) 0%, transparent 100%);
 border-top: 1px solid var(--border);
 border-bottom: 1px solid var(--border);
}

.book-cta-strip-inner {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
 gap: 1.5rem 2rem;
 padding: 1.75rem 2rem;
 border-radius: var(--radius-lg);
 border: 1px solid var(--border-accent);
 background: linear-gradient(145deg, rgba(141, 198, 63, 0.08) 0%, var(--bg-panel) 55%);
 box-shadow: var(--shadow-card);
}

.book-cta-strip-copy h2 {
 margin: 0 0 0.45rem;
 font-family: var(--font-display);
 font-size: clamp(1.75rem, 4vw, 2.35rem);
 letter-spacing: 0.05em;
 text-transform: uppercase;
 line-height: 1.05;
}

.book-cta-strip-copy p {
 margin: 0;
 max-width: 36rem;
 color: var(--text-muted);
}

.book-cta-strip-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem;
}

@media (max-width: 720px) {
 .book-cta-strip-actions {
 width: 100%;
 }

 .book-cta-strip-actions .btn {
 flex: 1;
 min-width: 140px;
 justify-content: center;
 }
}

@media (prefers-reduced-motion: reduce) {
 .btn-primary::before {
 display: none;
 }

 .btn-primary:hover {
 transform: none;
 }

 .offer-card:hover {
 transform: none;
 }

 .game-card:hover .game-card-media img {
 transform: none;
 }

 .visit-map-frame iframe {
 filter: none;
 }

 .visit-location-map iframe {
 filter: none;
 transform: none;
 }

 .visit-location-map::after {
 display: none;
 }
}

/* - - Visit, how-it-works, prices, groups, booking - - */

#visit.section {
 padding-top: calc(var(--section-space) - 0.5rem);
}

.info-strip--single {
 grid-template-columns: 1fr;
 width: 100%;
 gap: 1.75rem;
}

@media (min-width: 768px) {
 .info-strip--single {
 grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
 gap: 2.5rem;
 align-items: stretch;
 }
}

.hours-list {
 margin: 0;
}

.hours-row {
 display: flex;
 justify-content: space-between;
 align-items: baseline;
 gap: 1.25rem;
 padding: 0.5rem 0;
 border-bottom: 1px solid var(--border);
}

.hours-row:last-child {
 border-bottom: none;
}

.hours-row dt {
 margin: 0;
 font-weight: 500;
 color: var(--text);
 font-size: 0.95rem;
}

.hours-row dd {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.95rem;
 text-align: right;
 white-space: nowrap;
}

.hours-row--call dd {
 color: var(--accent-bright);
 font-weight: 600;
}

.visit-hours-block .opening-note {
 margin-top: 1rem;
 padding-top: 1rem;
 border-top: 1px solid var(--border);
 text-transform: none;
 letter-spacing: 0.01em;
 font-weight: 600;
 line-height: 1.45;
}

.visit-book-block {
 display: flex;
 flex-direction: column;
 gap: 0.85rem;
 padding: 1.35rem 1.5rem;
 border-radius: calc(var(--radius-lg) - 4px);
 background: linear-gradient(160deg, rgba(141, 198, 63, 0.07) 0%, rgba(141, 198, 63, 0.02) 100%);
 box-shadow: inset 0 0 0 1px rgba(141, 198, 63, 0.14);
}

.visit-book-block h3 {
 margin-bottom: 0.15rem;
}

.visit-price-highlight {
 margin: 0;
 font-size: 0.95rem;
 color: var(--text-muted);
 line-height: 1.5;
}

.visit-price-amount {
 display: block;
 margin: 0.15rem 0 0.1rem;
 font-family: var(--font-display);
 font-size: clamp(1.85rem, 4vw, 2.25rem);
 line-height: 1;
 letter-spacing: 0.02em;
 color: var(--accent-bright);
}

.visit-price-unit {
 display: block;
 color: var(--text);
 font-weight: 500;
}

.visit-price-meta {
 display: block;
 font-size: 0.88rem;
 color: var(--text-muted);
}

.visit-price-teaser {
 margin: 0;
 font-size: 0.92rem;
 color: var(--text-muted);
}

.info-strip--single .visit-price-teaser {
 padding-top: 0;
 border-top: 0;
}

.visit-strip-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem;
 margin-top: auto;
 padding-top: 0.35rem;
}

.visit-price-teaser a {
 color: var(--accent-bright);
 font-weight: 600;
}

.visually-hidden {
 position: absolute;
 width: 1px;
 height: 1px;
 padding: 0;
 margin: -1px;
 overflow: hidden;
 clip: rect(0, 0, 0, 0);
 white-space: nowrap;
 border: 0;
}

.visit-location-panel {
 margin-top: 1.5rem;
 display: grid;
 grid-template-columns: minmax(240px, 300px) 1fr;
 align-items: stretch;
 border-radius: var(--radius-lg);
 overflow: hidden;
 border: 1px solid var(--border-accent);
 box-shadow: var(--shadow-card), inset 0 1px 0 rgba(255, 255, 255, 0.04);
 background: var(--bg-panel);
}

.visit-location-aside {
 display: flex;
 flex-direction: column;
 gap: 0.65rem;
 padding: 2rem 1.75rem;
 background: linear-gradient(165deg, rgba(141, 198, 63, 0.06) 0%, var(--bg-panel) 55%);
 border-right: 1px solid var(--border);
}

.visit-location-aside h3 {
 font-family: var(--font-display);
 font-size: 1.35rem;
 letter-spacing: 0.06em;
 margin: 0;
 text-transform: uppercase;
}

.visit-location-aside address {
 font-style: normal;
 color: var(--text-muted);
 font-size: 0.95rem;
 line-height: 1.65;
}

.visit-location-note {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.88rem;
 font-weight: 400;
 line-height: 1.5;
}

@media (max-width: 768px) {
 .visit-location-panel {
 grid-template-columns: 1fr;
 }

 .visit-location-aside {
 border-right: 0;
 border-bottom: 1px solid var(--border);
 padding: 1.75rem 1.35rem;
 }

 .visit-location-map {
 min-height: 280px;
 }
}

.how-it-works {
 padding-top: calc(var(--section-space) - 0.25rem);
 padding-bottom: calc(var(--section-space) - 0.5rem);
}

.how-it-works .section-header {
 margin-bottom: 1.5rem;
}

.how-it-works .section-header .section-lead {
 max-width: 40rem;
 margin-left: auto;
 margin-right: auto;
}

.how-it-works-more {
 display: flex;
 justify-content: center;
 margin: 1.5rem 0 0;
}

.occasions-section {
 padding-top: 2rem;
 padding-bottom: 2rem;
}

.occasions-strip {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 1.5rem 2rem;
 padding: 1.35rem 1.5rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 background: linear-gradient(155deg, rgba(141, 198, 63, 0.04) 0%, var(--bg-panel) 55%);
 box-shadow: var(--shadow-card);
}

.occasions-strip-copy {
 flex: 1;
 min-width: 0;
}

.occasions-strip-copy .eyebrow {
 margin-bottom: 0.35rem;
}

.section-title--occasions {
 font-size: clamp(1.65rem, 3.5vw, 2.15rem);
 text-transform: none;
 letter-spacing: 0.01em;
 margin-bottom: 0.45rem;
}

.occasions-strip-lead {
 margin: 0;
 max-width: 36rem;
 color: var(--text-muted);
 font-size: 0.92rem;
 line-height: 1.5;
}

.occasions-strip-actions {
 display: flex;
 flex-shrink: 0;
 flex-wrap: wrap;
 gap: 0.65rem;
}

@media (max-width: 720px) {
 .occasions-strip {
 flex-direction: column;
 align-items: stretch;
 text-align: center;
 }

 .occasions-strip-lead {
 margin-left: auto;
 margin-right: auto;
 }

 .occasions-strip-actions {
 justify-content: center;
 }
}

.occasions-grid {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 1rem;
}

.occasions-card {
 display: flex;
 flex-direction: column;
 gap: 0.55rem;
 min-height: 100%;
 padding: 1.2rem 1.15rem 1.35rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 background: linear-gradient(155deg, rgba(141, 198, 63, 0.03) 0%, var(--bg-panel) 48%);
 box-shadow: var(--shadow-card);
}

.occasions-card h3 {
 margin: 0;
 font-family: var(--font-display);
 font-size: 1.2rem;
 letter-spacing: 0.05em;
 text-transform: uppercase;
}

.occasions-card p {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.92rem;
 line-height: 1.55;
}

.occasions-card p strong {
 color: var(--text);
}

.occasions-link {
 margin-top: auto;
 padding-top: 0.35rem;
 color: var(--accent-bright);
 font-size: 0.88rem;
 font-weight: 700;
 text-decoration: none;
}

.occasions-link:hover {
 color: #f0ffd9;
}

.occasions-more {
 margin: 1.5rem 0 0;
 text-align: center;
}

.occasions-more a {
 color: var(--accent-bright);
 font-weight: 600;
 text-decoration: none;
}

.occasions-more a:hover {
 text-decoration: underline;
}

[data-gift-vouchers][hidden],
a[href*="gift-vouchers"][hidden] {
 display: none !important;
}

.gift-vouchers-off .gift-vouchers-cta {
 display: none;
}

@media (max-width: 900px) {
 .occasions-grid {
 grid-template-columns: repeat(2, 1fr);
 }
}

@media (max-width: 560px) {
 .occasions-grid {
 grid-template-columns: 1fr;
 }
}

#games.section {
 padding-top: calc(var(--section-space) - 0.5rem);
 padding-bottom: calc(var(--section-space) - 0.25rem);
}

#games .section-header {
 margin-bottom: 1rem;
}

#visit .section-header .section-lead {
 margin-left: 0;
 margin-right: 0;
 max-width: none;
}

.reviews-section.section {
 padding-top: calc(var(--section-space) - 0.25rem);
}

.reviews-section .section-header {
 margin-bottom: 1.25rem;
}

.how-it-works-grid {
 display: grid;
 grid-template-columns: repeat(4, 1fr);
 gap: 1rem;
 list-style: none;
 margin: 0;
 padding: 0;
}

.how-it-works-step {
 padding: 1.2rem 1.1rem 1.35rem;
 border-radius: var(--radius-lg);
 border: 1px solid var(--border);
 background: var(--bg-panel);
 box-shadow: var(--shadow-card);
 display: flex;
 flex-direction: column;
}

.how-it-works-num {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 2rem;
 height: 2rem;
 margin-bottom: 0.75rem;
 border-radius: 50%;
 background: rgba(141, 198, 63, 0.15);
 color: var(--accent-bright);
 font-family: var(--font-display);
 font-size: 1.1rem;
}

.how-it-works-step h3 {
 margin: 0 0 0.45rem;
 font-family: var(--font-display);
 font-size: 1.25rem;
 letter-spacing: 0.05em;
 text-transform: uppercase;
}

.how-it-works-step p {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.9rem;
 line-height: 1.5;
}

.how-it-works-step p a {
 color: var(--accent-bright);
 font-weight: 600;
}

@media (max-width: 900px) {
 .how-it-works-grid {
 grid-template-columns: repeat(2, 1fr);
 }
}

@media (max-width: 520px) {
 .how-it-works-grid {
 grid-template-columns: 1fr;
 }
}

.price-cards-grid {
 display: grid;
 grid-template-columns: repeat(5, 1fr);
 gap: 1rem;
 margin-bottom: 2rem;
}

.price-card {
 text-align: center;
 padding: 1.75rem 1rem;
 border-radius: var(--radius-lg);
 border: 1px solid var(--border);
 background: var(--bg-panel);
 box-shadow: var(--shadow-card);
}

.price-card--highlight {
 border-color: rgba(141, 198, 63, 0.45);
 background: linear-gradient(165deg, rgba(141, 198, 63, 0.1) 0%, var(--bg-panel) 100%);
}

.price-card-players {
 margin: 0 0 0.5rem;
 font-size: 0.78rem;
 font-weight: 700;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.price-card-amount {
 margin: 0;
 font-family: var(--font-display);
 font-size: 2.25rem;
 letter-spacing: 0.04em;
 line-height: 1;
}

.price-card-amount span {
 font-size: 0.95rem;
 color: var(--text-muted);
}

.price-card-note {
 margin: 0.5rem 0 0;
 font-size: 0.75rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

.prices-notes {
 padding: 1.75rem;
 border-radius: var(--radius-lg);
 border: 1px solid var(--border);
 background: var(--bg-panel);
}

.prices-notes ul {
 margin: 0.75rem 0 0;
 padding-left: 1.2rem;
 color: var(--text-muted);
}

.prices-cta {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem;
 margin: 1.25rem 0 0;
}

@media (max-width: 900px) {
 .price-cards-grid {
 grid-template-columns: repeat(2, 1fr);
 }
}

.groups-grid {
 display: grid;
 grid-template-columns: repeat(2, 1fr);
 gap: 1.25rem;
}

.groups-page-hero {
 padding: 1.75rem 0 0;
 margin-bottom: 0;
}

.groups-page-hero.wrap {
 padding-inline: clamp(1.5rem, 4vw, 2.25rem);
}

.groups-hero-bar {
 display: flex;
 flex-direction: column;
 align-items: center;
 text-align: center;
 gap: 1.15rem;
 max-width: 40rem;
 margin-inline: auto;
 padding-bottom: 1.35rem;
 border-bottom: 1px solid var(--border);
}

.groups-hero-main {
 width: 100%;
}

.groups-page-hero .eyebrow {
 margin-bottom: 0.4rem;
 justify-content: center;
}

.groups-page-hero h1 {
 font-family: var(--font-display);
 font-size: clamp(2.1rem, 5.5vw, 3.1rem);
 font-weight: 400;
 text-transform: none;
 letter-spacing: 0.02em;
 line-height: 1;
 margin: 0;
}

.groups-hero-accent {
 color: var(--accent-bright);
}

.groups-hero-types {
 margin: 0.55rem auto 0;
 max-width: 28rem;
 color: var(--text-muted);
 font-size: 0.86rem;
 line-height: 1.45;
}

.groups-hero-cta {
 display: flex;
 flex-direction: row;
 flex-wrap: nowrap;
 align-items: center;
 justify-content: center;
 gap: 1rem 1.25rem;
}

.groups-hero-link {
 color: var(--text-muted);
 font-size: 0.9rem;
 font-weight: 600;
 text-decoration: none;
 white-space: nowrap;
 border-bottom: 1px solid transparent;
 transition: color 0.2s ease, border-color 0.2s ease;
}

.groups-hero-link:hover {
 color: var(--accent-bright);
 border-bottom-color: rgba(141, 198, 63, 0.45);
}

.groups-hero-cta .btn-primary {
 display: inline-flex;
 align-items: center;
 gap: 0.45rem;
 white-space: nowrap;
}

@media (min-width: 768px) {
 .groups-hero-bar {
 flex-direction: row;
 align-items: center;
 justify-content: space-between;
 text-align: left;
 max-width: none;
 gap: 2rem;
 padding-inline: 0.75rem;
 }

 .groups-page-hero .eyebrow {
 justify-content: flex-start;
 }

 .groups-hero-types {
 margin-left: 0;
 margin-right: 0;
 max-width: none;
 }

 .groups-hero-cta {
 justify-content: flex-end;
 flex-shrink: 0;
 }
}

.groups-page-body {
 padding-top: 1.25rem;
 padding-bottom: 2.5rem;
}

.groups-page .groups-card--wide {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 1.25rem 1.5rem;
 margin-bottom: 1rem;
 padding: 1.15rem 1.35rem;
 border-color: rgba(141, 198, 63, 0.22);
 background: linear-gradient(90deg, rgba(141, 198, 63, 0.07) 0%, var(--bg-panel) 42%);
}

.groups-page .groups-card--wide h2 {
 margin-bottom: 0.35rem;
}

.groups-page .groups-card--wide p {
 margin: 0;
 max-width: 42rem;
}

.groups-page .groups-card--wide .btn {
 flex-shrink: 0;
}

.groups-page .groups-grid {
 grid-template-columns: repeat(3, 1fr);
 gap: 0.85rem;
}

.groups-page .groups-card {
 padding: 1.15rem 1.2rem;
 border-radius: var(--radius);
 background: rgba(18, 21, 28, 0.65);
 transition: border-color 0.2s ease, background 0.2s ease;
}

.groups-page .groups-card:hover {
 border-color: rgba(141, 198, 63, 0.32);
 background: var(--bg-panel);
 transform: none;
}

.groups-page .groups-card h2 {
 text-transform: none;
 letter-spacing: 0.01em;
 font-family: var(--font-body);
 font-size: 0.95rem;
 font-weight: 700;
 margin: 0 0 0.4rem;
 color: var(--text);
}

.groups-page .groups-card h2::before {
 content: "";
 display: block;
 width: 1.5rem;
 height: 2px;
 margin-bottom: 0.55rem;
 background: var(--accent);
 border-radius: 1px;
}

.groups-page .groups-card p {
 font-size: 0.88rem;
 line-height: 1.55;
 margin: 0;
 color: var(--text-muted);
}

.groups-page .groups-card p a {
 white-space: nowrap;
}

.groups-card--highlight {
 border-color: rgba(141, 198, 63, 0.28);
 background: linear-gradient(155deg, rgba(141, 198, 63, 0.05) 0%, var(--bg-panel) 50%);
}

.groups-cta--footer {
 margin-top: 2rem;
 padding-top: 1.25rem;
 border-top: 1px solid var(--border);
}

@media (max-width: 900px) {
 .groups-page .groups-grid {
 grid-template-columns: repeat(2, 1fr);
 }
}

@media (max-width: 720px) {
 .groups-page .groups-card--wide {
 flex-direction: column;
 align-items: stretch;
 text-align: left;
 }

 .groups-page .groups-card--wide .btn {
 align-self: flex-start;
 }
}

@media (max-width: 560px) {
 .groups-page .groups-grid {
 grid-template-columns: 1fr;
 }

 .groups-hero-types {
 font-size: 0.8rem;
 }
}

.groups-cta-quiet {
 align-self: center;
 color: var(--text-muted);
 font-size: 0.88rem;
 text-decoration: none;
}

.groups-cta-quiet:hover {
 color: var(--accent-bright);
 text-decoration: underline;
}

.groups-card {
 padding: 1.75rem;
 border-radius: var(--radius-lg);
 border: 1px solid var(--border);
 background: var(--bg-panel);
 box-shadow: var(--shadow-card);
}

.groups-card h2 {
 margin: 0 0 0.65rem;
 font-family: var(--font-display);
 font-size: 1.25rem;
 letter-spacing: 0.05em;
 text-transform: uppercase;
}

.groups-card p,
.groups-list {
 margin: 0 0 0.65rem;
 font-size: 0.95rem;
 color: var(--text-muted);
 line-height: 1.6;
}

.groups-list {
 padding-left: 1.2rem;
}

.groups-card a:not(.btn) {
 color: var(--accent-bright);
 text-decoration: none;
 border-bottom: 1px solid rgba(141, 198, 63, 0.3);
 transition: border-color 0.15s ease, color 0.15s ease;
}

.groups-card a:not(.btn):hover {
 color: #fff;
 border-bottom-color: rgba(255, 255, 255, 0.5);
}

.groups-card-link {
 display: inline-flex;
 align-items: center;
 gap: 0.4rem;
 font-weight: 600;
 font-size: 0.95rem;
 letter-spacing: 0.01em;
 border-bottom: none !important;
 color: var(--accent-bright) !important;
}

.groups-card-link::before {
 content: "";
 display: inline-block;
 width: 14px;
 height: 14px;
 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238dc63f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07A19.5 19.5 0 013.07 9.81 19.79 19.79 0 01.1 1.18 2 2 0 012.08 0h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L6.09 7.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 14.92z'/%3E%3C/svg%3E");
 background-repeat: no-repeat;
 background-size: contain;
 flex-shrink: 0;
 opacity: 0.8;
}

.groups-cta {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem;
 margin-top: 2rem;
}

.groups-page .groups-cta {
 justify-content: center;
 align-items: center;
}

@media (max-width: 768px) {
 .groups-grid {
 grid-template-columns: 1fr;
 }
}

.groups-card--festive {
 --festive-red: #c9302c;
 --festive-red-bright: #e84540;
 --festive-gold: #d4a853;
 background: linear-gradient(165deg, rgba(201, 48, 44, 0.14) 0%, rgba(201, 48, 44, 0.05) 45%, var(--bg-panel) 72%);
 border-color: rgba(201, 48, 44, 0.38);
 position: relative;
 overflow: hidden;
}

.groups-card--festive::before {
 content: "";
 position: absolute;
 inset: 0 0 auto 0;
 height: 3px;
 background: linear-gradient(90deg, var(--festive-red), var(--festive-gold), transparent);
 opacity: 0.85;
 border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

.groups-card--festive > *:not(.groups-card-snow) {
 position: relative;
 z-index: 1;
}

.groups-card-snow {
 position: absolute;
 inset: 0;
 pointer-events: none;
 overflow: hidden;
 z-index: 0;
 border-radius: inherit;
}

.groups-card-snow span {
 position: absolute;
 top: -8px;
 border-radius: 50%;
 background: rgba(255, 255, 255, 0.5);
 animation: xmas-fall linear infinite;
}

.groups-card-snow span:nth-child(1) { left: 8%; width: 3px; height: 3px; animation-duration: 7s; animation-delay: 0s; }
.groups-card-snow span:nth-child(2) { left: 22%; width: 4px; height: 4px; animation-duration: 10s; animation-delay: -2s; }
.groups-card-snow span:nth-child(3) { left: 38%; width: 3px; height: 3px; animation-duration: 8s; animation-delay: -4s; }
.groups-card-snow span:nth-child(4) { left: 52%; width: 5px; height: 5px; animation-duration: 11s; animation-delay: -1s; }
.groups-card-snow span:nth-child(5) { left: 66%; width: 3px; height: 3px; animation-duration: 9s; animation-delay: -3s; }
.groups-card-snow span:nth-child(6) { left: 78%; width: 4px; height: 4px; animation-duration: 12s; animation-delay: -5s; }
.groups-card-snow span:nth-child(7) { left: 88%; width: 3px; height: 3px; animation-duration: 8s; animation-delay: -6s; }
.groups-card-snow span:nth-child(8) { left: 95%; width: 4px; height: 4px; animation-duration: 10s; animation-delay: -2s; }
.groups-card-snow span:nth-child(9) { left: 14%; width: 3px; height: 3px; animation-duration: 9s; animation-delay: -3.5s; }
.groups-card-snow span:nth-child(10) { left: 44%; width: 4px; height: 4px; animation-duration: 11s; animation-delay: -7s; }
.groups-card-snow span:nth-child(11) { left: 60%; width: 3px; height: 3px; animation-duration: 8.5s; animation-delay: -1.5s; }
.groups-card-snow span:nth-child(12) { left: 84%; width: 5px; height: 5px; animation-duration: 13s; animation-delay: -4.5s; }

@media (prefers-reduced-motion: reduce) {
 .groups-card-snow {
 display: none;
 }
}

.groups-card--festive h2 {
 color: var(--text);
 background: none;
 -webkit-text-fill-color: currentColor;
}

.groups-card--festive a:not(.btn) {
 color: var(--festive-red-bright);
 border-bottom-color: rgba(201, 48, 44, 0.45);
}

.groups-card--festive a:not(.btn):hover {
 color: #ff6b66;
 border-bottom-color: rgba(232, 69, 64, 0.7);
}

.party-page-hero {
 padding-bottom: 2rem;
 text-align: center;
}

.party-page-lead {
 max-width: 40rem;
 margin: 0.75rem auto 0;
 color: var(--text-muted);
 line-height: 1.65;
 font-size: 1.05rem;
}

.party-page-hero-cta {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem;
 margin: 1.35rem auto 0;
 justify-content: center;
}

.party-section-title {
 margin: 0 0 0.85rem;
 font-family: var(--font-display);
 font-size: clamp(1.35rem, 3vw, 1.75rem);
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: var(--text);
}

.party-intro {
 max-width: 44rem;
 margin-bottom: 2rem;
}

.party-intro p {
 margin: 0;
 color: var(--text-muted);
 line-height: 1.65;
}

.party-packages-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1rem;
 align-items: stretch;
}

.party-packages-grid--two {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 max-width: 52rem;
}

.party-package-card {
 display: flex;
 flex-direction: column;
 gap: 0.65rem;
 padding: 1.35rem 1.25rem 1.25rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 background: var(--bg-panel);
 position: relative;
 overflow: hidden;
}

.party-package-card::before {
 content: "";
 position: absolute;
 top: 0;
 left: 0;
 right: 0;
 height: 2px;
 background: linear-gradient(90deg, var(--accent), transparent);
 opacity: 0.55;
}

.party-package-card--featured {
 background: linear-gradient(165deg, rgba(141, 198, 63, 0.08) 0%, var(--bg-panel) 55%);
 border-color: rgba(141, 198, 63, 0.28);
 box-shadow: var(--shadow-card);
}

.party-package-tier {
 margin: 0;
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

.party-package-card h3 {
 margin: 0;
 font-family: var(--font-display);
 font-size: clamp(1.55rem, 3vw, 1.95rem);
 line-height: 1.05;
 letter-spacing: 0.05em;
 text-transform: uppercase;
 color: var(--text);
}

.party-package-list {
 margin: 0;
 padding-left: 1.1rem;
 color: var(--text-muted);
 font-size: 0.9rem;
 line-height: 1.6;
 flex: 1;
}

.party-package-list li {
 margin: 0.3rem 0;
}

.party-package-list strong {
 color: var(--text);
}

.party-package-duration {
 margin: 0.25rem 0 0;
 font-size: 0.82rem;
 font-weight: 700;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.party-package-card .btn {
 margin-top: auto;
 align-self: flex-start;
}

.party-split-section {
 background: linear-gradient(155deg, rgba(141, 198, 63, 0.04) 0%, transparent 55%);
}

.party-split {
 display: grid;
 grid-template-columns: 1.2fr 0.8fr;
 gap: 2rem;
 align-items: center;
}

.party-split-copy p {
 margin: 0 0 0.85rem;
 color: var(--text-muted);
 line-height: 1.65;
}

.party-split-copy a {
 color: var(--accent-bright);
 font-weight: 600;
}

.party-split-note {
 font-size: 0.92rem;
}

.party-split-actions {
 display: flex;
 flex-direction: column;
 gap: 0.55rem;
 padding: 1.35rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 background: var(--bg-panel);
}

.party-split-label {
 margin: 0.35rem 0 0;
 font-size: 0.78rem;
 font-weight: 700;
 letter-spacing: 0.07em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.party-split-label:first-child {
 margin-top: 0;
}

.party-quotes-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1rem;
}

.party-quote {
 margin: 0;
 padding: 1.15rem 1.2rem;
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 background: var(--bg-panel);
}

.party-quote p {
 margin: 0 0 0.75rem;
 font-size: 0.92rem;
 line-height: 1.6;
 color: var(--text-muted);
 font-style: italic;
}

.party-quote footer {
 font-size: 0.78rem;
 color: var(--text-muted);
}

.party-quotes-more {
 margin: 1rem 0 0;
 font-size: 0.92rem;
}

.party-quotes-more a {
 color: var(--accent-bright);
 font-weight: 600;
}

.party-gift-section {
 padding-top: 2rem;
}

.party-gift-strip {
 display: grid;
 grid-template-columns: 1.35fr 0.65fr;
 gap: 1.5rem;
 align-items: center;
 padding: 1.75rem 1.5rem;
 border: 1px solid rgba(141, 198, 63, 0.25);
 border-radius: var(--radius-lg);
 background: linear-gradient(155deg, rgba(141, 198, 63, 0.06) 0%, var(--bg-panel) 50%);
}

.party-gift-actions {
 display: flex;
 flex-direction: column;
 gap: 0.55rem;
}

.party-final-cta {
 padding-top: 0;
}

.party-final-inner {
 text-align: center;
 max-width: 36rem;
 margin: 0 auto;
}

.party-final-inner p {
 margin: 0;
 color: var(--text-muted);
 line-height: 1.6;
}

.party-final-inner .groups-cta {
 justify-content: center;
}

@media (max-width: 900px) {
 .party-packages-grid,
 .party-packages-grid--two {
 grid-template-columns: 1fr;
 max-width: none;
 }

 .party-quotes-grid {
 grid-template-columns: 1fr;
 }

 .party-split,
 .party-gift-strip {
 grid-template-columns: 1fr;
 }
}

/* Christmas parties. festive page */
.christmas-page {
 --festive-red: #c9302c;
 --festive-red-bright: #e84540;
 --festive-gold: #d4a853;
 --festive-gold-dim: rgba(212, 168, 83, 0.12);
}

/* Snow effect */
.xmas-snow {
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 pointer-events: none;
 z-index: 0;
 overflow: hidden;
}

.xmas-snow span {
 position: absolute;
 top: -10px;
 border-radius: 50%;
 background: rgba(255, 255, 255, 0.55);
 animation: xmas-fall linear infinite;
}

@keyframes xmas-fall {
 0% { transform: translateY(0) translateX(0) rotate(0deg); opacity: 0.9; }
 50% { transform: translateY(50vh) translateX(18px) rotate(180deg); }
 100% { transform: translateY(105vh) translateX(-12px) rotate(360deg); opacity: 0.15; }
}

.xmas-snow span:nth-child(1) { left: 4%; width: 4px; height: 4px; animation-duration: 9s; animation-delay: 0s; }
.xmas-snow span:nth-child(2) { left: 11%; width: 6px; height: 6px; animation-duration: 13s; animation-delay: -4s; }
.xmas-snow span:nth-child(3) { left: 19%; width: 3px; height: 3px; animation-duration: 8s; animation-delay: -1s; }
.xmas-snow span:nth-child(4) { left: 27%; width: 5px; height: 5px; animation-duration: 11s; animation-delay: -6s; }
.xmas-snow span:nth-child(5) { left: 35%; width: 4px; height: 4px; animation-duration: 10s; animation-delay: -2s; }
.xmas-snow span:nth-child(6) { left: 43%; width: 6px; height: 6px; animation-duration: 14s; animation-delay: -8s; }
.xmas-snow span:nth-child(7) { left: 52%; width: 3px; height: 3px; animation-duration: 7s; animation-delay: -3s; }
.xmas-snow span:nth-child(8) { left: 60%; width: 5px; height: 5px; animation-duration: 12s; animation-delay: -5s; }
.xmas-snow span:nth-child(9) { left: 68%; width: 4px; height: 4px; animation-duration: 9s; animation-delay: -7s; }
.xmas-snow span:nth-child(10) { left: 74%; width: 6px; height: 6px; animation-duration: 15s; animation-delay: -1s; }
.xmas-snow span:nth-child(11) { left: 81%; width: 3px; height: 3px; animation-duration: 8s; animation-delay: -9s; }
.xmas-snow span:nth-child(12) { left: 87%; width: 5px; height: 5px; animation-duration: 11s; animation-delay: -3s; }
.xmas-snow span:nth-child(13) { left: 93%; width: 4px; height: 4px; animation-duration: 10s; animation-delay: -6s; }
.xmas-snow span:nth-child(14) { left: 97%; width: 3px; height: 3px; animation-duration: 13s; animation-delay: -2s; }
.xmas-snow span:nth-child(15) { left: 22%; width: 5px; height: 5px; animation-duration: 16s; animation-delay: -11s; }

@media (prefers-reduced-motion: reduce) {
 .xmas-snow { display: none; }
}

.christmas-page::before {
 background:
 radial-gradient(ellipse 90% 55% at 50% -15%, rgba(201, 48, 44, 0.09), transparent 50%),
 radial-gradient(ellipse 60% 40% at 85% 10%, rgba(212, 168, 83, 0.06), transparent 45%),
 radial-gradient(ellipse 80% 50% at 50% -20%, rgba(141, 198, 63, 0.06), transparent 55%),
 linear-gradient(180deg, rgba(10, 12, 16, 0) 0%, var(--bg-deep) 100%),
 repeating-linear-gradient(
 0deg,
 transparent,
 transparent 24px,
 rgba(255, 255, 255, 0.012) 24px,
 rgba(255, 255, 255, 0.012) 25px
 );
}

.party-page-hero--festive {
 position: relative;
 padding: 2.5rem 0 2.75rem;
 margin-bottom: 0.5rem;
 text-align: center;
}

.party-page-hero--festive::before {
 content: "";
 position: absolute;
 inset: 0;
 margin: 0 -9999px;
 padding: 0 9999px;
 background:
 radial-gradient(ellipse 70% 80% at 50% 0%, rgba(201, 48, 44, 0.07), transparent 65%),
 linear-gradient(180deg, rgba(212, 168, 83, 0.04) 0%, transparent 100%);
 pointer-events: none;
 z-index: -1;
}

.christmas-page .party-page-lead {
 margin-left: auto;
 margin-right: auto;
 margin-bottom: 0.25rem;
}

.christmas-page .party-page-hero-cta {
 justify-content: center;
 margin-top: 1.75rem;
 margin-left: auto;
 margin-right: auto;
}

.christmas-page .eyebrow--festive {
 color: var(--festive-gold);
}

.christmas-page .eyebrow--festive::before {
 background: linear-gradient(90deg, transparent, rgba(212, 168, 83, 0.5));
}

.christmas-page .eyebrow--festive::after {
 background: linear-gradient(90deg, rgba(212, 168, 83, 0.5), transparent);
}

.party-page-hero--festive h1 {
 font-size: clamp(2.75rem, 8vw, 4.25rem);
 line-height: 0.95;
 margin: 0;
 color: var(--text);
 background: none;
 -webkit-text-fill-color: currentColor;
}

.party-page-hero--festive .party-page-lead {
 font-size: 1.08rem;
 max-width: 32rem;
}

.btn-primary.btn-festive {
 background: linear-gradient(135deg, var(--festive-red) 0%, #a02522 100%);
 border: 1px solid rgba(232, 69, 64, 0.5);
 color: #fff8f0;
 box-shadow: 0 4px 20px rgba(201, 48, 44, 0.35);
}

.btn-primary.btn-festive:hover {
 background: linear-gradient(135deg, var(--festive-red-bright) 0%, var(--festive-red) 100%);
 border-color: var(--festive-red-bright);
 color: #fff;
 box-shadow: 0 6px 28px rgba(201, 48, 44, 0.45);
}

.party-steps-section {
 padding-top: 0;
 padding-bottom: 1.5rem;
}

.party-steps {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 1rem;
 margin: 0;
 padding: 0;
 list-style: none;
 counter-reset: none;
}

.party-step {
 position: relative;
 padding: 1.35rem 1.15rem 1.25rem;
 text-align: left;
 border: 1px solid rgba(212, 168, 83, 0.2);
 border-radius: var(--radius-lg);
 background: linear-gradient(165deg, rgba(212, 168, 83, 0.06) 0%, var(--bg-panel) 55%);
}

.party-step-num {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 2rem;
 height: 2rem;
 margin-bottom: 0.65rem;
 font-family: var(--font-display);
 font-size: 1.15rem;
 letter-spacing: 0.04em;
 color: var(--festive-gold);
 background: rgba(201, 48, 44, 0.15);
 border: 1px solid rgba(201, 48, 44, 0.35);
 border-radius: 50%;
}

.party-step h2 {
 margin: 0 0 0.35rem;
 font-family: var(--font-display);
 font-size: clamp(1.15rem, 2.5vw, 1.35rem);
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: var(--text);
}

.party-step p {
 margin: 0;
 font-size: 0.88rem;
 color: var(--text-muted);
 line-height: 1.45;
}

.party-packages-section {
 padding-top: 1.5rem;
}

.party-packages-header {
 text-align: center;
 margin-bottom: 1.75rem;
}

.party-packages-sub {
 margin: 0;
 font-size: 0.92rem;
 color: var(--text-muted);
}

.christmas-page .party-packages-grid--two {
 margin: 0 auto;
}

.party-package-badge {
 position: absolute;
 top: 0.85rem;
 right: 0.85rem;
 margin: 0;
 padding: 0.25rem 0.55rem;
 font-size: 0.65rem;
 font-weight: 700;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: #1a1008;
 background: var(--festive-gold);
 border-radius: 4px;
}

.christmas-page .party-package-card--featured {
 background: linear-gradient(165deg, rgba(201, 48, 44, 0.08) 0%, rgba(212, 168, 83, 0.05) 40%, var(--bg-panel) 60%);
 border-color: rgba(212, 168, 83, 0.32);
}

.christmas-page .party-package-card--featured::before {
 background: linear-gradient(90deg, var(--festive-red), var(--festive-gold), transparent);
 opacity: 0.75;
 height: 3px;
}

.party-package-tagline {
 margin: -0.25rem 0 0.35rem;
 font-size: 0.88rem;
 color: var(--text-muted);
}

.christmas-page .party-package-card h3 {
 font-size: clamp(1.75rem, 3.5vw, 2.15rem);
}

.party-quote-section {
 padding-top: 0.5rem;
 padding-bottom: 0.5rem;
}

.party-quote-feature {
 text-align: center;
 max-width: 32rem;
 margin: 0 auto;
}

.party-quote-stars {
 margin: 0 0 0.65rem;
 font-size: 1.1rem;
 letter-spacing: 0.15em;
 color: var(--festive-gold);
}

.party-quote--solo {
 border-color: rgba(212, 168, 83, 0.22);
 background: linear-gradient(165deg, rgba(212, 168, 83, 0.05) 0%, var(--bg-panel) 60%);
}

.party-quote--solo p {
 font-size: 1.05rem;
 color: var(--text);
}

.party-quote-feature .party-quotes-more {
 display: inline-block;
 margin-top: 1.15rem;
}

.eyebrow--festive {
 color: var(--festive-gold);
}

.party-gift-blurb {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.95rem;
}

.christmas-page .party-gift-strip {
 border-color: rgba(212, 168, 83, 0.28);
 background: linear-gradient(155deg, rgba(201, 48, 44, 0.05) 0%, rgba(212, 168, 83, 0.06) 35%, var(--bg-panel) 55%);
}

.party-why-section {
 padding-bottom: 0;
}

.party-why {
 max-width: 44rem;
}

.party-why h2 {
 margin-bottom: 1rem;
}

.party-why p {
 margin: 0 0 0.85rem;
 color: var(--text-muted);
 line-height: 1.7;
 font-size: 0.97rem;
}

.party-why p:last-child {
 margin-bottom: 0;
}

.party-final-cta--festive .party-final-inner {
 padding: 2rem 0;
 border: none;
 border-top: 1px solid rgba(201, 48, 44, 0.2);
 border-radius: 0;
 background: none;
 box-shadow: none;
 text-align: left;
 max-width: none;
 margin: 0;
}

.party-final-cta--festive .party-final-inner .groups-cta {
 justify-content: flex-start;
}

@media (max-width: 900px) {
 .party-steps {
 grid-template-columns: 1fr;
 max-width: 22rem;
 margin: 0 auto;
 }

 .party-page-hero--festive h1 br {
 display: none;
 }
}

@media (max-width: 600px) {
 .party-package-badge {
 position: static;
 display: inline-block;
 margin-bottom: 0.35rem;
 }
}

.booking-urgency-strip {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.5rem 1rem;
 margin-bottom: 1.75rem;
 padding: 1rem 1.25rem;
 border-radius: var(--radius-lg);
 border: 1px solid rgba(141, 198, 63, 0.35);
 background: rgba(141, 198, 63, 0.08);
 font-size: 0.92rem;
}

.booking-urgency-strip strong {
 color: var(--accent-bright);
 text-transform: uppercase;
 letter-spacing: 0.04em;
 font-size: 0.82rem;
}

.booking-urgency-strip a {
 color: var(--text);
 font-weight: 700;
}

.book-room-picker {
 margin-bottom: 2rem;
}

.book-room-picker-title {
 margin: 0 0 1rem;
 font-family: var(--font-display);
 font-size: 1.5rem;
 letter-spacing: 0.06em;
 text-transform: uppercase;
}

.book-room-grid {
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
 gap: 0.75rem;
}

.book-room-card {
 display: flex;
 flex-direction: column;
 gap: 0.35rem;
 padding: 0.65rem;
 border-radius: var(--radius);
 border: 1px solid var(--border);
 background: var(--bg-panel);
 text-decoration: none;
 color: inherit;
 text-align: left;
 font: inherit;
 cursor: pointer;
 transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.book-room-card:hover,
.book-room-card:focus-visible {
 border-color: rgba(141, 198, 63, 0.45);
 transform: translateY(-2px);
 box-shadow: var(--shadow-card);
}

.book-room-card.is-selected {
 border-color: rgba(141, 198, 63, 0.75);
 box-shadow: 0 0 0 1px rgba(141, 198, 63, 0.35);
}

.book-room-card img {
 width: 100%;
 aspect-ratio: 16 / 9;
 object-fit: cover;
 border-radius: 6px;
}

.book-room-name {
 font-weight: 700;
 font-size: 0.82rem;
 letter-spacing: 0.03em;
 line-height: 1.2;
}

.book-room-meta {
 font-size: 0.72rem;
 color: var(--text-muted);
 text-transform: uppercase;
 letter-spacing: 0.06em;
}

.book-room-card--soon {
 opacity: 0.65;
}

.book-room-picker-note {
 margin: 0.85rem 0 0;
 font-size: 0.88rem;
 color: var(--text-muted);
}

.booking-policies {
 margin-top: 2rem;
 padding: 1.5rem 1.75rem;
 border-radius: var(--radius-lg);
 border: 1px solid var(--border);
 background: var(--bg-panel);
}

.booking-policies-title {
 margin: 0 0 0.75rem;
 font-family: var(--font-display);
 font-size: 1.25rem;
 letter-spacing: 0.05em;
 text-transform: uppercase;
}

.booking-policies ul {
 margin: 0;
 padding-left: 1.2rem;
 color: var(--text-muted);
 line-height: 1.6;
}

.booking-fallback {
 margin: 2rem 0 0;
 padding: 1.1rem 1.5rem;
 border-radius: var(--radius-lg);
 border: 1px solid rgba(141, 198, 63, 0.25);
 background: rgba(141, 198, 63, 0.04);
 font-size: 0.9rem;
 color: var(--text-muted);
 text-align: center;
}

.booking-fallback p {
 margin: 0 0 0.4rem;
}

.booking-fallback p:last-child {
 margin-bottom: 0;
}

.booking-fallback a {
 font-weight: 600;
 color: var(--accent-bright);
 text-decoration: underline;
 text-underline-offset: 2px;
}

/* Nav games dropdown */
.nav-item.nav-dropdown {
 position: relative;
}

.nav-dropdown-trigger {
 display: inline-flex;
 align-items: center;
 gap: 0.25rem;
 color: var(--text-muted);
 text-decoration: none;
 font-size: 0.88rem;
 font-weight: 500;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 padding: 0.5rem 0.85rem;
 border-radius: 6px;
 transition: color 0.2s, background 0.2s;
}

.nav-dropdown-trigger:hover {
 color: var(--text);
 background: rgba(255, 255, 255, 0.05);
}

.nav-dropdown-panel {
 position: absolute;
 top: calc(100% + 0.35rem);
 left: 0;
 min-width: 220px;
 padding: 0.5rem;
 border-radius: var(--radius);
 border: 1px solid var(--border-accent);
 background: rgba(10, 12, 16, 0.98);
 box-shadow: var(--shadow-card);
 opacity: 0;
 visibility: hidden;
 transform: translateY(-4px);
 transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
 z-index: 200;
}

.nav-dropdown-panel a {
 display: block;
 padding: 0.55rem 0.75rem;
 border-radius: 6px;
 color: var(--text-muted);
 text-decoration: none;
 font-size: 0.85rem;
 font-weight: 500;
 letter-spacing: 0.03em;
 text-transform: none;
}

.nav-dropdown-panel a:hover,
.nav-dropdown-panel a:focus-visible {
 background: rgba(255, 255, 255, 0.06);
 color: var(--text);
}

.nav-dropdown-panel .nav-dropdown-all {
 margin-top: 0.25rem;
 padding-top: 0.65rem;
 border-top: 1px solid var(--border);
 color: var(--accent-bright);
 font-weight: 600;
}

.nav-dropdown:hover .nav-dropdown-panel,
.nav-dropdown:focus-within .nav-dropdown-panel {
 opacity: 1;
 visibility: visible;
 transform: translateY(0);
}

@media (max-width: 900px) {
 .nav-dropdown-panel {
 display: none;
 }
}

.hero-trust {
 margin: 1rem 0 0;
 font-size: 0.9rem;
 color: var(--text-muted);
}

.hero-trust a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-card-meta-line {
 margin: 0 0 0.75rem;
 font-size: 0.88rem;
 color: var(--text-muted);
}

.game-card-actions {
 display: grid;
 grid-template-columns: minmax(0, 1fr);
 gap: 0.5rem;
 margin-top: auto;
}

.game-card-actions .btn {
 margin: 0;
 padding: 0.7rem 0.55rem;
 font-size: 0.78rem;
 letter-spacing: 0.04em;
 text-align: center;
 justify-content: center;
 white-space: normal;
 line-height: 1.2;
 min-height: 2.75rem;
}

.game-card-actions .btn-secondary {
 background: rgba(255, 255, 255, 0.06);
 border-color: rgba(255, 255, 255, 0.18);
 color: var(--text);
}

.game-card-actions .btn-secondary:hover {
 background: rgba(255, 255, 255, 0.11);
 border-color: rgba(141, 198, 63, 0.45);
 color: var(--accent-bright);
}

.game-card-actions .btn-email-list {
 background: linear-gradient(135deg, #8dc63f, #5f9826);
 border-color: rgba(178, 236, 100, 0.78);
 color: #071006;
 box-shadow: 0 14px 30px rgba(95, 152, 38, 0.28);
}

.game-card-actions .btn-email-list:hover {
 background: linear-gradient(135deg, #a4df54, #72b52f);
 border-color: rgba(207, 255, 126, 0.9);
 color: #071006;
}

.game-card-meta-line a {
 color: var(--accent-bright);
 font-weight: 600;
}

.game-card-price {
 color: var(--text);
 font-weight: 700;
}

.contact-actions--split {
 display: flex;
 flex-wrap: wrap;
 gap: 0.5rem;
}

/* ─── Contact page redesign ─────────────────────────────── */

/* Quick-reach cards row */
.contact-reach-row {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 1.25rem;
 margin-bottom: 2.5rem;
}

@media (max-width: 700px) {
 .contact-reach-row {
 grid-template-columns: 1fr;
 }
}

.contact-reach-card {
 display: flex;
 flex-direction: column;
 gap: 0.35rem;
 padding: 1.5rem 1.6rem;
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 text-decoration: none;
 color: var(--text);
 transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
 box-shadow: var(--shadow-card);
}

.contact-reach-card:hover {
 border-color: rgba(141, 198, 63, 0.45);
 background: rgba(141, 198, 63, 0.04);
 transform: translateY(-2px);
}

.contact-reach-card--book {
 border-color: rgba(141, 198, 63, 0.3);
 background: linear-gradient(135deg, rgba(141, 198, 63, 0.06) 0%, var(--bg-panel) 60%);
}

.contact-reach-card--book:hover {
 border-color: rgba(141, 198, 63, 0.6);
 background: rgba(141, 198, 63, 0.08);
}

.contact-reach-icon {
 display: flex;
 align-items: center;
 justify-content: center;
 width: 40px;
 height: 40px;
 border-radius: 10px;
 background: rgba(141, 198, 63, 0.1);
 color: var(--accent-bright);
 margin-bottom: 0.5rem;
 flex-shrink: 0;
}

.contact-reach-label {
 font-size: 0.75rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

.contact-reach-value {
 font-size: clamp(0.8rem, 1.5vw, 1rem);
 font-weight: 700;
 color: var(--text);
 line-height: 1.3;
 word-break: break-word;
}

.contact-reach-hint {
 font-size: 0.82rem;
 color: var(--text-muted);
}

/* Find us + Map grid (below the form) */
.contact-findus-grid {
 display: grid;
 grid-template-columns: 300px 1fr;
 gap: 1.5rem;
 align-items: stretch;
 margin-top: 2rem;
}

@media (max-width: 860px) {
 .contact-findus-grid {
 grid-template-columns: 1fr;
 }
}

.contact-info-block {
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 padding: 1.5rem 1.75rem;
 box-shadow: var(--shadow-card);
}

.contact-info-heading {
 font-family: var(--font-display);
 font-size: 1.25rem;
 letter-spacing: 0.06em;
 margin: 0 0 1rem;
 color: var(--text);
}

/* Hours list */
.contact-hours-list {
 margin: 0 0 0.75rem;
 padding: 0;
}

.contact-hours-row {
 display: grid;
 grid-template-columns: 6.5rem 1fr;
 gap: 0.5rem;
 padding: 0.45rem 0;
 border-bottom: 1px solid var(--border);
 font-size: 0.9rem;
}

.contact-hours-row:last-child {
 border-bottom: none;
}

.contact-hours-row dt {
 color: var(--text-muted);
 font-weight: 600;
}

.contact-hours-row dd {
 margin: 0;
 color: var(--text);
 font-weight: 500;
}

.contact-hours-row--call dd {
 color: var(--accent-bright);
 font-weight: 600;
}

.contact-hours-note {
 margin: 0;
 font-size: 0.82rem;
 color: var(--text-muted);
 font-style: italic;
}

/* Address block */
.contact-address {
 font-style: normal;
 color: var(--text-muted);
 font-size: 0.95rem;
 line-height: 1.65;
 margin: 0 0 0.5rem;
}

.contact-address-note {
 margin: 0 0 1.1rem;
 font-size: 0.82rem;
 color: var(--accent-bright);
}

.contact-directions-btn {
 display: inline-flex;
}

/* Map column */
.contact-map-col {
 border-radius: var(--radius-lg);
 overflow: hidden;
 min-height: 440px;
 border: 1px solid var(--border);
 box-shadow: var(--shadow-card);
 background: #0a0c10;
}

.contact-map-iframe {
 display: block;
 width: 100%;
 height: 100%;
 min-height: 440px;
 border: none;
}

@media (max-width: 860px) {
 .contact-map-col,
 .contact-map-iframe {
 min-height: 300px;
 }
}

/* Contact form section on contact page */
.contact-form-section--page {
 margin-top: 0;
}

.contact-form-section--page .contact-form-section-inner {
 max-width: 100%;
 display: grid;
 grid-template-columns: 280px 1fr;
 gap: 3rem;
 align-items: start;
 padding: 2.5rem 2.5rem;
}

@media (max-width: 760px) {
 .contact-form-section--page .contact-form-section-inner {
 grid-template-columns: 1fr;
 gap: 1.25rem;
 padding: 1.75rem 1.5rem;
 }
}

.contact-form-header {
 position: sticky;
 top: 5rem;
}

/* Left-align everything in the contact page form header */
.contact-form-section--page .contact-form-intro {
 text-align: left;
 margin-left: 0;
 margin-right: 0;
 max-width: none;
 margin-bottom: 0;
}

.contact-form-heading--lg {
 font-family: var(--font-display);
 font-size: 1.8rem;
 letter-spacing: 0.05em;
 margin: 0 0 0.75rem;
 color: var(--text);
 text-align: left;
}

/* Narrow spam answer field */
.contact-spam-narrow {
 max-width: 160px;
}

/* Contact form card (full-width redesign) */
.contact-form-card {
 background: var(--bg-elevated);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 box-shadow: var(--shadow-card);
 overflow: hidden;
}

.contact-form-card-header {
 padding: 2rem 2.5rem 1.75rem;
 border-bottom: 1px solid var(--border);
 background: linear-gradient(135deg, rgba(141, 198, 63, 0.05) 0%, transparent 60%);
}

.contact-form-card-title {
 font-family: var(--font-display);
 font-size: 2rem;
 letter-spacing: 0.05em;
 margin: 0 0 0.4rem;
 color: var(--text);
}

.contact-form-card-sub {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.95rem;
 line-height: 1.6;
}

.contact-form-card-sub a {
 color: var(--accent-bright);
 text-decoration: none;
 border-bottom: 1px solid rgba(141, 198, 63, 0.3);
 transition: border-color 0.15s ease;
}

.contact-form-card-sub a:hover {
 border-bottom-color: var(--accent-bright);
}

.contact-form--card {
 padding: 2rem 2.5rem 2.5rem;
 display: flex;
 flex-direction: column;
 gap: 1.25rem;
}

/* Footer row: spam check + button side by side */
.contact-form-footer {
 display: flex;
 align-items: center;
 gap: 1.5rem;
 flex-wrap: wrap;
}

.contact-spam-inline {
 display: flex;
 align-items: center;
 gap: 0.75rem;
 flex-shrink: 0;
}

.contact-spam-inline .contact-captcha-question {
 margin: 0;
 font-size: 0.88rem;
 white-space: nowrap;
}

.contact-spam-inline input {
 width: 64px;
 padding: 0.55rem 0.75rem;
 border-radius: 8px;
 border: 1px solid var(--border);
 background: var(--bg-panel);
 color: var(--text);
 font-size: 0.95rem;
 text-align: center;
}

.contact-spam-inline input:focus {
 outline: none;
 border-color: rgba(141, 198, 63, 0.45);
 box-shadow: 0 0 0 3px rgba(141, 198, 63, 0.16);
}

.contact-form-footer .contact-form-submit {
 margin-top: 0;
 width: auto;
 min-width: 160px;
}

@media (max-width: 600px) {
 .contact-form-card-header,
 .contact-form--card {
 padding-left: 1.5rem;
 padding-right: 1.5rem;
 }

 .contact-form-footer {
 flex-direction: column;
 align-items: flex-start;
 gap: 1rem;
 }

 .contact-form-footer .contact-form-submit {
 width: 100%;
 }
}

/* ─── End contact page redesign ─────────────────────────── */

/* ─── 404 page ──────────────────────────────────────────── */

.error-hero .error-code {
 font-family: var(--font-display);
 font-size: clamp(4.5rem, 16vw, 7.5rem);
 line-height: 1;
 letter-spacing: 0.06em;
 margin: 0 0 0.35rem;
 color: var(--accent);
 text-shadow: 0 0 48px rgba(141, 198, 63, 0.35);
}

.error-panel {
 max-width: 640px;
 margin: 0 auto;
 text-align: center;
}

.error-actions {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 0.85rem;
 margin-bottom: 2rem;
}

.error-quick-links {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 0.55rem 1.25rem;
 padding-top: 1.5rem;
 border-top: 1px solid var(--border);
}

.error-quick-links a {
 color: var(--text-muted);
 text-decoration: none;
 font-size: 0.95rem;
}

.error-quick-links a:hover {
 color: var(--accent-bright);
 text-decoration: underline;
}

/* iOS Safari zooms when focusing inputs below 16px. keep touch forms readable */
@media (max-width: 768px) {
 input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="file"]),
 select,
 textarea {
 font-size: max(16px, 1em);
 }

 button,
 a,
 .btn {
 touch-action: manipulation;
 }
}

/* ============================================================
 DESIGN COHESION. shared card language + page dialect overrides
 ============================================================ */

.surface-card,
.offer-card,
.groups-card,
.price-card,
.party-package-card,
.blog-card,
.contact-form-card,
.how-it-works-step,
.party-step {
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 box-shadow: none;
}

.offer-card,
.groups-card,
.price-card,
.party-package-card,
.blog-card,
.how-it-works-step,
.party-step {
 padding: 1.25rem 1.2rem;
 transition: border-color 0.2s ease, transform 0.2s ease, background 0.2s ease;
}

.offer-card:hover,
.groups-card:hover,
.price-card:hover,
.party-package-card:hover,
.blog-card:hover,
.how-it-works-step:hover,
.party-step:hover {
 border-color: var(--border-accent);
 transform: translateY(-2px);
 background: var(--bg-elevated);
 box-shadow: var(--shadow-card);
}

.offer-card::before,
.party-package-card::before {
 opacity: 0.45;
 height: 1px;
}

.game-card-title,
.offer-card h3,
.groups-card h2,
.party-package-card h3,
.party-step h2,
.how-it-works-step h3,
.contact-form-card-title,
.party-section-title,
.book-cta-strip-copy h2 {
 font-family: var(--font-display);
 font-size: var(--text-card-title);
 font-weight: 400;
 letter-spacing: 0.05em;
 text-transform: uppercase;
 color: var(--text);
}

.party-section-title {
 font-size: var(--text-section);
 text-align: center;
 margin: 0 0 0.75rem;
}

/* Unify groups hero to page-hero language */
.groups-page-hero {
 padding: 2.75rem 0 1.75rem;
 text-align: center;
}

.groups-page-hero.wrap {
 max-width: var(--max);
}

.groups-hero-bar {
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 1.25rem;
 padding: 0;
 border: none;
 background: transparent;
}

.groups-hero-main {
 text-align: center;
}

.groups-page-hero .eyebrow {
 justify-content: center;
}

.groups-page-hero h1 {
 font-family: var(--font-display);
 font-size: var(--text-h1-page);
 font-weight: 400;
 letter-spacing: 0.05em;
 line-height: 1.08;
 margin: 0 0 0.65rem;
 text-transform: uppercase;
 color: var(--text);
}

.groups-hero-accent {
 color: var(--accent-bright);
}

.groups-hero-types {
 margin: 0;
 color: var(--text-muted);
 font-size: var(--text-lead);
 line-height: 1.55;
}

.groups-hero-cta {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.85rem 1.25rem;
}

.groups-hero-link {
 color: var(--accent-bright);
 font-size: var(--text-small);
 font-weight: 600;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 text-decoration: none;
}

.groups-hero-link:hover {
 color: #f0ffd9;
}

.groups-page .groups-card {
 padding: 1.35rem 1.4rem;
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
}

.groups-page .groups-card h2 {
 font-family: var(--font-display);
 font-size: var(--text-card-title);
 font-weight: 400;
 letter-spacing: 0.05em;
 text-transform: uppercase;
 margin: 0 0 0.55rem;
 display: block;
}

.groups-page .groups-card h2::before {
 display: none;
}

.groups-page .groups-card p {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.98rem;
 line-height: 1.6;
}

/* Festive groups card styles live with .groups-card--festive above */

/* Offers: quieter important block, no AI numbered strip look */
.offers-important {
 margin-bottom: 2rem;
 padding: 1.25rem 1.4rem;
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
}

.offers-important::before {
 display: none;
}

.offers-important-title {
 font-family: var(--font-display);
 font-size: var(--text-card-title);
 font-weight: 400;
 letter-spacing: 0.05em;
 text-transform: uppercase;
 color: var(--text);
 margin: 0 0 1rem;
}

.offers-rules {
 display: grid;
 gap: 0.85rem;
}

@media (min-width: 720px) {
 .offers-rules {
 grid-template-columns: repeat(3, 1fr);
 gap: 1rem;
 }
}

.offers-rule {
 display: block;
 padding: 0;
 background: transparent;
 border: none;
}

.offers-rule-icon {
 display: none;
}

.offers-rule strong {
 display: block;
 font-family: var(--font-body);
 font-size: var(--text-small);
 font-weight: 700;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 color: var(--text);
 margin-bottom: 0.35rem;
}

.offers-rule p {
 margin: 0;
 color: var(--text-muted);
 font-size: 0.95rem;
 line-height: 1.55;
}

.offer-card {
 background: var(--bg-panel);
 padding: 1.35rem;
}

/* Prices */
.price-card {
 padding: 1.35rem 1.25rem;
 text-align: center;
 background: var(--bg-panel);
}

.price-card--highlight {
 border-color: var(--border-accent);
 background: var(--bg-elevated);
}

.price-card-amount {
 font-family: var(--font-display);
 font-size: clamp(1.85rem, 3vw, 2.35rem);
 letter-spacing: 0.04em;
 color: var(--accent-bright);
}

/* Contact: drop SaaS icon-card look */
.contact-reach-row {
 display: grid;
 grid-template-columns: 1fr;
 gap: 0.85rem;
 margin-bottom: 1.75rem;
}

@media (min-width: 720px) {
 .contact-reach-row {
 grid-template-columns: repeat(3, 1fr);
 }
}

.contact-reach-card {
 display: flex;
 flex-direction: column;
 gap: 0.25rem;
 padding: 1.15rem 1.25rem;
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 text-decoration: none;
 color: inherit;
 transition: border-color 0.2s, background 0.2s;
}

.contact-reach-card:hover {
 border-color: var(--border-accent);
 background: var(--bg-elevated);
 transform: none;
 box-shadow: none;
}

.contact-reach-icon {
 display: none;
}

.contact-reach-label {
 font-size: var(--text-eyebrow);
 font-weight: 700;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: var(--accent);
}

.contact-reach-value {
 font-family: var(--font-body);
 font-size: 1.05rem;
 font-weight: 600;
 color: var(--text);
 text-decoration: none;
}

.contact-reach-hint {
 font-size: var(--text-small);
 color: var(--text-muted);
}

.contact-reach-card--book {
 border-color: var(--border-accent);
}

.contact-form-card {
 padding: 1.5rem 1.5rem 1.65rem;
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
}

.contact-form-card-title {
 margin: 0 0 0.4rem;
}

/* Christmas / party. festive accent only, same UI OS */
.party-page-hero--festive {
 background: transparent;
 position: relative;
}

/* Restored later for .christmas-page. do not globally kill festive hero */
.party-page-hero--festive::before {
 /* display: none !important;. disabled: broke Christmas snow/overlay */
}

.party-page-hero--festive h1 {
 font-size: var(--text-h1-page);
 text-transform: uppercase;
 letter-spacing: 0.05em;
 color: var(--text);
}

.party-page-lead {
 max-width: 36rem;
 margin: 0 auto;
 color: var(--text-muted);
 font-size: var(--text-lead);
}

.btn-primary.btn-festive,
.btn-primary.btn-festive:hover {
 background: linear-gradient(180deg, var(--accent-bright) 0%, #6ea126 100%);
 color: var(--ink-on-accent);
 box-shadow: var(--shadow-accent);
}

.eyebrow--festive {
 color: var(--accent);
}

.party-step-num,
.how-it-works-num {
 font-family: var(--font-display);
 font-size: 1.35rem;
 letter-spacing: 0.06em;
 color: var(--accent-bright);
 background: transparent;
 display: inline-flex;
 align-items: center;
 justify-content: center;
}

.party-step-num {
 border: 1px solid var(--border-accent);
 width: 2.35rem;
 height: 2.35rem;
 border-radius: 999px;
}

.party-package-card {
 padding: 1.4rem;
 background: var(--bg-panel);
}

.party-package-card--featured {
 border-color: var(--border-accent);
 background: var(--bg-elevated);
}

.party-package-badge {
 font-size: var(--text-eyebrow);
 letter-spacing: 0.12em;
 text-transform: uppercase;
 background: var(--accent-dim);
 color: var(--accent-bright);
 border: 1px solid var(--border-accent);
}

.party-final-cta--festive .party-final-inner,
.party-gift-strip,
.party-final-inner {
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 box-shadow: none;
}

.party-why h2 {
 font-family: var(--font-display);
 font-size: var(--text-section);
 text-transform: uppercase;
 letter-spacing: 0.04em;
}

.party-why p {
 color: var(--text-muted);
 font-size: var(--text-lead);
 max-width: 40rem;
}

/* Game page heroes share page type scale */
.game-page-hero-wrap.page-hero,
.game-page-hero-wrap {
 text-align: left;
}

.game-page-hero h1 {
 font-family: var(--font-display);
 font-size: var(--text-h1-page);
 font-weight: 400;
 letter-spacing: 0.05em;
 text-transform: uppercase;
 line-height: 1.08;
 color: var(--text);
}

.book-cta-strip {
 background:
 radial-gradient(ellipse 70% 100% at 50% 0%, rgba(255, 236, 210, 0.04), transparent 55%),
 linear-gradient(180deg, rgba(141, 198, 63, 0.05) 0%, transparent 100%);
}

.book-cta-strip-inner {
 background: var(--bg-panel);
 border: 1px solid var(--border-accent);
 box-shadow: none;
}

.hero::before {
 background: radial-gradient(ellipse 70% 60% at 30% 40%,
 rgba(255, 236, 210, 0.05) 0%,
 rgba(141, 198, 63, 0.03) 45%,
 transparent 75%);
}

/* Shared motion. subtle, site-wide */
@media (prefers-reduced-motion: no-preference) {
 .hero-content {
 animation: hero-settle 0.7s ease-out both;
 }

 @keyframes hero-settle {
 from {
 opacity: 0;
 transform: translateY(12px);
 }
 to {
 opacity: 1;
 transform: translateY(0);
 }
 }
}

.page-hero {
 animation: none;
}

@media (prefers-reduced-motion: no-preference) {
 .page-hero {
 animation: hero-settle 0.55s ease-out both;
 }
}

/* Cohesion helpers */
.page-hero-actions {
 margin-top: 1.25rem;
 display: flex;
 flex-wrap: wrap;
 gap: 0.85rem;
 justify-content: center;
 align-items: center;
}

.page-hero-unavailable-title {
 margin: 0 0 0.75rem;
 font-family: var(--font-display);
 font-size: clamp(2.4rem, 6vw, 3.6rem);
 letter-spacing: 0.04em;
 text-transform: uppercase;
 line-height: 1.05;
}

.groups-hero-lead {
 margin: 0.65rem auto 0.85rem;
 max-width: 36rem;
 color: var(--text-muted);
 font-size: 1.05rem;
 line-height: 1.55;
 text-align: center;
}

.contact-visit-strip {
 margin: 0 0 1.75rem;
}

.contact-form-card {
 margin-top: 1.75rem;
}

/* Fix: cohesion strip accidentally killed Christmas snow + festive hero */
.christmas-page .xmas-snow {
 display: block !important;
}

.christmas-page .party-page-hero--festive::before {
 display: block !important;
}

.christmas-page .btn-primary.btn-festive {
 background: linear-gradient(135deg, var(--festive-red, #c9302c) 0%, #a02522 100%);
 color: #fff;
 box-shadow: 0 8px 28px rgba(201, 48, 44, 0.35);
}

.christmas-page .btn-primary.btn-festive:hover {
 background: linear-gradient(135deg, var(--festive-red-bright, #e84540) 0%, var(--festive-red, #c9302c) 100%);
 color: #fff;
}

.christmas-page .eyebrow--festive {
 color: var(--festive-gold, #d4a853);
}

.christmas-page .party-page-hero--festive h1 {
 color: #f7f3eb;
}

.games-group-title {
 font-size: var(--text-card-title);
}

.party-gift-strip .section-title {
 text-align: left;
 margin-bottom: 0.5rem;
}

.nav-desktop a.nav-cta,
.nav-mobile > a.nav-cta {
 font-weight: var(--text-nav-weight);
}

.discount-signup {
 background: transparent;
 border-top: 1px solid rgba(255, 255, 255, 0.08);
 border-bottom: 0;
}

.discount-signup-inner {
 border: 0;
 border-radius: 0;
 background: transparent;
 box-shadow: none;
}

/* Distinct deals block. homepage (and anywhere .discount-signup--panel is used) */
.discount-signup--panel {
 padding: 2.25rem 0 2.5rem;
 border-top: 0;
 background:
 radial-gradient(ellipse 70% 120% at 8% 20%, rgba(141, 198, 63, 0.1), transparent 55%),
 radial-gradient(ellipse 50% 80% at 92% 80%, rgba(141, 198, 63, 0.05), transparent 50%),
 #0c0f15;
}

.discount-signup--panel .discount-signup-inner {
 display: grid;
 grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
 gap: 1.35rem 2.25rem;
 align-items: center;
 padding: clamp(1.35rem, 3vw, 1.85rem) clamp(1.25rem, 3vw, 1.85rem);
 border: 1px solid rgba(141, 198, 63, 0.22);
 border-radius: 16px;
 background:
 linear-gradient(145deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.015) 42%, rgba(0, 0, 0, 0.22)),
 rgba(18, 22, 30, 0.95);
 box-shadow:
 0 22px 60px rgba(0, 0, 0, 0.35),
 inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.discount-signup--panel .discount-signup-copy .eyebrow {
 color: var(--accent-bright);
}

.discount-signup--panel .discount-signup-copy h3 {
 font-size: clamp(1.75rem, 3.5vw, 2.35rem);
 letter-spacing: 0.03em;
}

.discount-signup--panel .discount-signup-copy > p {
 max-width: 36ch;
 font-size: 0.98rem;
 color: rgba(247, 243, 235, 0.72);
}

.discount-signup--panel .discount-signup-form input[type="email"] {
 background: rgba(7, 9, 13, 0.55);
 border-color: rgba(255, 255, 255, 0.12);
}

.discount-signup--panel .discount-signup-actions .btn {
 width: 100%;
 justify-content: center;
}

@media (max-width: 760px) {
 .discount-signup--panel {
 padding: 1.75rem 0 2rem;
 }

 .discount-signup--panel .discount-signup-inner {
 grid-template-columns: 1fr;
 gap: 1.15rem;
 align-items: stretch;
 }

 .discount-signup--panel .discount-signup-copy {
 text-align: center;
 }

 .discount-signup--panel .discount-signup-copy .eyebrow {
 justify-content: center;
 }

 .discount-signup--panel .discount-signup-copy > p {
 margin-left: auto;
 margin-right: auto;
 }
}

.blog-card {
 padding: 1.15rem 1.25rem;
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
}

.blog-card h2 {
 font-family: var(--font-display);
 font-size: var(--text-card-title);
 font-weight: 400;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 margin: 0 0 0.4rem;
}

.blog-card h2 a {
 color: var(--text);
 text-decoration: none;
}

.blog-card h2 a:hover {
 color: var(--accent-bright);
}

/* Game pages. shared type */
.game-page-kicker,
.game-page-details-heading {
 font-family: var(--font-body);
 font-size: var(--text-eyebrow);
 font-weight: 700;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: var(--accent);
 margin: 0 0 0.55rem;
}

.game-page-details-heading {
 font-family: var(--font-display);
 font-size: var(--text-card-title);
 letter-spacing: 0.05em;
 color: var(--text);
 font-weight: 400;
}

.game-page-storyline p,
.game-page-details-item p {
 color: var(--text-muted);
 font-size: 1.02rem;
 line-height: 1.65;
}

.game-page-hero-wrap {
 background: transparent;
}

.game-page-cta-bar {
 margin-top: 1.5rem;
 padding-top: 1.25rem;
 border-top: 1px solid var(--border);
}

.section-title--occasions {
 font-size: var(--text-section);
 text-align: left;
 margin: 0 0 0.55rem;
}

.occasions-strip {
 background: var(--bg-panel);
 border: 1px solid var(--border);
 border-radius: var(--radius-lg);
 box-shadow: none;
 padding: 1.75rem 1.5rem;
}

.occasions-strip-lead {
 color: var(--text-muted);
 font-size: var(--text-lead);
 max-width: 36rem;
}

/* Soften hero badge / HUD neon */
.hero-badge {
 background: rgba(255, 255, 255, 0.06);
 border: 1px solid var(--border);
 box-shadow: none;
}

.hero-visual {
 box-shadow: var(--shadow-card);
 border: 1px solid var(--border);
}

.trust-row {
 background: rgba(255, 255, 255, 0.02);
}

.section-title--prose {
 font-size: clamp(1.55rem, 3vw, 2.05rem);
 text-align: left;
 margin: 1.75rem 0 0.75rem;
}

.legal-prose p,
.section.section--flush-top .wrap > p {
 color: var(--text-muted);
}

/* ============================================================
 PREMIUM POLISH. atmosphere, media, rhythm
 ============================================================ */

:root {
 /* Keep shared ladder from top of file — do not re-declare type sizes here */
 --section-space: 3.5rem;
}

/* Edge-to-edge home hero atmosphere */
.hero {
 padding: 2.5rem 0 0.5rem;
 position: relative;
}

.hero.wrap {
 max-width: var(--max);
}

.hero-grid {
 gap: 2.75rem;
 min-height: min(68vh, 640px);
 padding-bottom: 2rem;
}

.hero-lead {
 font-size: 1.12rem;
 line-height: 1.55;
 max-width: 34ch;
 color: #c4beb4;
}

.hero-badge {
 border-radius: 6px;
 letter-spacing: 0.14em;
}

.hero-visual {
 border-radius: var(--radius-lg);
 overflow: hidden;
 min-height: 420px;
 transform: perspective(1200px) rotateY(-2deg);
 transition: transform 0.45s ease;
}

.hero-visual:hover {
 transform: perspective(1200px) rotateY(0deg);
}

@media (max-width: 900px) {
 .hero-visual {
 transform: none;
 min-height: 300px;
 }
 .hero-grid {
 min-height: 0;
 }
}

.hero-visual-photo {
 width: 100%;
 height: 100%;
 object-fit: cover;
 transform: scale(1.04);
 transition: transform 0.8s ease;
}

.hero-visual:hover .hero-visual-photo {
 transform: scale(1.08);
}

/* Social proof under hero */
.proof-strip {
 border-block: 1px solid var(--border);
 background: linear-gradient(180deg, rgba(255,255,255,0.03), transparent);
}

.proof-strip-inner {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.65rem 1.75rem;
 padding: 1rem 1.25rem;
 color: var(--text-muted);
 font-size: var(--text-small);
 font-weight: 600;
 letter-spacing: 0.06em;
 text-transform: uppercase;
}

.proof-strip-inner strong {
 color: var(--text);
 font-weight: 700;
}

.proof-strip-stars {
 color: var(--accent-bright);
 letter-spacing: 0.08em;
}

/* Game posters: show full artwork (titles/logos live in the image) */
.game-card-media {
 aspect-ratio: 16 / 9;
}

.game-card-media > img,
.game-card-media--virtual > img {
 object-fit: contain;
 object-position: center;
 transform: none;
 transition: none;
}

.game-card:hover .game-card-media > img,
.game-card:hover .game-card-media img {
 transform: none;
}

.game-card-media::after {
 display: none;
}

.game-card:hover {
 transform: translateY(-5px);
 border-color: var(--border-accent);
 box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
}

.game-card-body {
 padding: 1.15rem 1.2rem 1.3rem;
 gap: 0.55rem;
}

.game-card-body > p:not(.game-card-kind) {
 font-size: 0.95rem;
 line-height: 1.55;
}

.game-tags {
 gap: 0.35rem;
}

.tag {
 font-size: 0.68rem;
 padding: 0.28rem 0.55rem;
 background: rgba(255, 255, 255, 0.04);
 border-color: rgba(255, 255, 255, 0.1);
}

/* Page heroes with presence */
.page-hero {
 padding: 3.25rem 0 2rem;
}

.page-hero::before {
 content: "";
 position: absolute;
 left: 50%;
 top: 0;
 width: min(720px, 90vw);
 height: 180px;
 transform: translateX(-50%);
 background: radial-gradient(ellipse at center, rgba(141, 198, 63, 0.08), transparent 70%);
 pointer-events: none;
 z-index: -1;
}

.page-hero h1 {
 letter-spacing: 0.04em;
}

/* Steps: cleaner, more premium */
.how-it-works-grid {
 gap: 1.15rem;
}

@media (min-width: 900px) {
 .how-it-works-grid {
 grid-template-columns: repeat(4, 1fr);
 }
}

.how-it-works-step h3,
.party-step h2 {
 font-size: 1.15rem;
 letter-spacing: 0.02em;
 text-transform: none;
 font-family: var(--font-body);
 font-weight: 700;
}

.how-it-works-step p,
.party-step p {
 font-size: 0.95rem;
}

/* Prices: bigger numbers */
.price-card {
 padding: 1.6rem 1.2rem;
}

.price-card-players {
 font-size: var(--text-eyebrow);
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: var(--text-muted);
 margin: 0 0 0.5rem;
}

.price-card-amount {
 font-size: clamp(2.1rem, 4vw, 2.75rem);
 line-height: 1;
 margin: 0;
}

.price-card--highlight {
 position: relative;
}

.price-card--highlight::after {
 content: "";
 position: absolute;
 inset: 0;
 border-radius: inherit;
 box-shadow: inset 0 0 0 1px rgba(141, 198, 63, 0.35);
 pointer-events: none;
}

/* Offers punch */
.offer-main {
 font-size: 1.2rem;
 letter-spacing: -0.01em;
}

.offer-card h3 {
 font-size: clamp(1.55rem, 2.5vw, 1.9rem);
}

/* Book CTA more magnetic */
.book-cta-strip-inner {
 padding: 2rem 2.15rem;
 background:
 linear-gradient(135deg, rgba(141, 198, 63, 0.12) 0%, transparent 42%),
 var(--bg-elevated);
}

.btn-primary {
 box-shadow: 0 4px 20px rgba(141, 198, 63, 0.28);
}

.btn-primary:hover {
 box-shadow: 0 8px 32px rgba(141, 198, 63, 0.4);
}

/* Game page hero media */
.game-page-hero-media {
 border-radius: var(--radius-lg);
 overflow: hidden;
 border: 1px solid var(--border);
 background: #0d0f14;
}

.game-page-hero-media img {
 width: 100%;
 height: auto;
 object-fit: contain;
 aspect-ratio: auto;
 display: block;
}

.game-page-stats {
 gap: 0.4rem;
 margin-top: 0.85rem;
}

/* Footer breathing */
.site-footer {
 margin-top: 0;
 padding-top: 2.5rem;
 border-top: 1px solid var(--border);
 background: rgba(0, 0, 0, 0.18);
}

/* Occasions strip as premium band */
.occasions-strip {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
 gap: 1.5rem 2rem;
 padding: 2rem 1.75rem;
 background:
 linear-gradient(120deg, rgba(141, 198, 63, 0.1), transparent 50%),
 var(--bg-elevated);
}

.section-title--occasions {
 text-align: left;
}

@media (prefers-reduced-motion: reduce) {
 .hero-visual,
 .hero-visual-photo,
 .game-card-media > img {
 transition: none;
 transform: none;
 }
}

.hero-visual-scene {
 position: absolute;
 inset: 0;
}

.hero-visual-scene .hero-visual-photo {
 width: 100%;
 height: 100%;
 object-fit: cover;
}

.hero-visual {
 position: relative;
}

.games-type-intro {
 text-align: center;
 margin: -0.35rem auto 1.75rem;
 max-width: 40rem;
 color: var(--text-muted);
 font-size: 0.95rem;
 font-weight: 500;
}

.games-type-intro a {
 text-decoration: none;
 color: var(--text-muted);
}

.games-type-intro a:hover {
 color: var(--accent-bright);
}

/* ============================================================
 CHRONO HERO. catchy hook + animated clock (still one composition)
 ============================================================ */

.hero.hero--chrono {
 position: relative;
 max-width: none;
 width: 100%;
 margin: 0;
 padding: 0;
 background: #07090d;
 border: none;
 overflow: hidden;
}

.chrono-stage {
 position: relative;
 display: flex;
 flex-direction: column;
 justify-content: flex-end;
 width: 100%;
 /* Tall hero; holidays only peeks under the fold */
 min-height: 92svh;
 height: 92svh;
 overflow: hidden;
 background: #07090d;
 padding-top: 6.5rem;
}

.chrono-stage::before {
 content: "";
 position: absolute;
 inset: -6% -8% -10%;
 z-index: 1;
 pointer-events: none;
 background:
 radial-gradient(circle at 74% 26%, rgba(255, 227, 166, 0.18) 0, rgba(255, 227, 166, 0.08) 7%, transparent 18%),
 radial-gradient(circle at 68% 20%, rgba(117, 212, 255, 0.16) 0, rgba(117, 212, 255, 0.07) 10%, transparent 24%),
 radial-gradient(circle at 82% 18%, rgba(255, 255, 255, 0.08) 0, transparent 10%);
 mix-blend-mode: screen;
 opacity: 0.48;
 transform: translate3d(0, 0, 0) scale(1.02);
 animation: chronoFlareFloat 18s ease-in-out infinite alternate;
}

@keyframes chronoFlareFloat {
 0% {
 opacity: 0.22;
 transform: translate3d(-1.2%, -0.8%, 0) scale(1);
 }
 50% {
 opacity: 0.5;
 transform: translate3d(0.8%, 0.6%, 0) scale(1.05);
 }
 100% {
 opacity: 0.3;
 transform: translate3d(1.8%, 1.2%, 0) scale(1.08);
 }
}

.chrono-slides {
 position: absolute;
 inset: 0;
 z-index: 0;
}

.chrono-slide {
 position: absolute;
 inset: 0;
 margin: 0;
 opacity: 0;
 transition: opacity 1.35s cubic-bezier(0.33, 0.05, 0.2, 1);
}

.chrono-slide.is-active {
 opacity: 1;
 z-index: 1;
}

.chrono-photo {
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: 68% center;
 display: block;
 transform: scale(1.06);
 filter: saturate(0.95) contrast(1.05) brightness(0.8);
}

/* Family hero: bias crop left + down so faces clear the sticky nav */
.chrono-stage--family .chrono-photo {
 object-position: 84% 52%;
 filter: saturate(0.96) contrast(1.05) brightness(0.9);
 transform: scale(1.32) translate3d(-14%, 6%, 0);
 transform-origin: 50% 45%;
}

.chrono-stage--family .chrono-veil {
 background:
 linear-gradient(180deg, rgba(7, 9, 13, 0.36) 0%, rgba(7, 9, 13, 0.2) 28%, rgba(7, 9, 13, 0.46) 58%, rgba(7, 9, 13, 0.88) 100%),
 radial-gradient(ellipse 70% 55% at 50% 42%, rgba(7, 9, 13, 0.1) 0%, transparent 70%);
 transition: background 0.55s ease;
}

.chrono-stage--family.is-ready .chrono-slide.is-active .chrono-photo {
 animation: chronoFamilyDrift 22s ease-in-out infinite alternate;
}

@keyframes chronoFamilyDrift {
 from { transform: scale(1.32) translate3d(-14%, 6%, 0); }
 to { transform: scale(1.38) translate3d(-14.5%, 5.2%, 0); }
}

.chrono-stage.is-ready .chrono-slide.is-active .chrono-photo {
 animation: chronoDrift 18s ease-in-out infinite alternate;
}

.chrono-stage.is-ready .chrono-slide[data-room="B Block Breakout"].is-active .chrono-photo {
 object-position: 58% center;
 animation: chronoDriftWide 12s ease-in-out infinite alternate;
}

@keyframes chronoDrift {
 from { transform: scale(1.06) translate3d(0, 0, 0); }
 to { transform: scale(1.12) translate3d(-1.4%, -0.5%, 0); }
}

@keyframes chronoDriftWide {
 from { transform: scale(1.08) translate3d(1.4%, -0.2%, 0); }
 to { transform: scale(1.14) translate3d(-2.2%, -0.8%, 0); }
}

.chrono-veil {
 position: absolute;
 inset: 0;
 z-index: 2;
 pointer-events: none;
 background:
 linear-gradient(90deg, rgba(7, 9, 13, 0.78) 0%, rgba(7, 9, 13, 0.4) 40%, rgba(7, 9, 13, 0.1) 66%, rgba(7, 9, 13, 0.28) 100%),
 linear-gradient(180deg, rgba(7, 9, 13, 0.12) 0%, transparent 24%, transparent 50%, rgba(7, 9, 13, 0.82) 100%);
}

.chrono-sweep {
 position: absolute;
 inset: 0;
 z-index: 3;
 pointer-events: none;
 background: linear-gradient(
 105deg,
 transparent 38%,
 rgba(255, 245, 220, 0.07) 48%,
 transparent 58%
 );
 background-size: 220% 100%;
 opacity: 0.55;
 animation: chronoSweep 14s ease-in-out infinite;
}

@keyframes chronoSweep {
 0%, 12% { background-position: 120% 0; opacity: 0.2; }
 45%, 55% { background-position: 0% 0; opacity: 0.55; }
 88%, 100% { background-position: -40% 0; opacity: 0.15; }
}

.chrono-stage--family {
 justify-content: center;
 padding-top: clamp(5.5rem, 12vh, 7.5rem);
 padding-bottom: clamp(3.5rem, 8vh, 5rem);
}

.chrono-copy {
 position: relative;
 z-index: 6;
 width: 100%;
 max-width: var(--max);
 margin: 0 auto;
 padding: 0.5rem 1.25rem 0.75rem;
 text-align: center;
 display: flex;
 flex-direction: column;
 align-items: center;
}

.chrono-copy::before {
 content: "";
 position: absolute;
 left: 50%;
 top: 42%;
 width: min(52rem, 96vw);
 height: clamp(16rem, 42vh, 30rem);
 z-index: -1;
 pointer-events: none;
 border-radius: 50%;
 background: radial-gradient(circle at 50% 40%, rgba(0, 0, 0, 0.55) 0, rgba(0, 0, 0, 0.28) 42%, transparent 72%);
 filter: blur(8px);
 opacity: 0.9;
 transform: translate(-50%, -50%);
 transition: background 0.45s ease, opacity 0.45s ease;
}

/* Mood washes behind copy removed — keep photo + title clean */

.chrono-copy > * {
 opacity: 0;
 transform: translateY(22px);
}

.chrono-stage.is-entered .chrono-copy > * {
 animation: chronoRise 0.9s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.chrono-stage.is-entered .chrono-copy > *:nth-child(1) { animation-delay: 0.06s; }
.chrono-stage.is-entered .chrono-copy > *:nth-child(2) { animation-delay: 0.16s; }
.chrono-stage.is-entered .chrono-copy > *:nth-child(3) { animation-delay: 0.28s; }
.chrono-stage.is-entered .chrono-copy > *:nth-child(4) { animation-delay: 0.42s; }
.chrono-stage.is-entered .chrono-copy > *:nth-child(5) { animation-delay: 0.54s; }

@keyframes chronoRise {
 to {
 opacity: 1;
 transform: translateY(0);
 }
}

.chrono-kicker {
 margin: 0 0 0.85rem;
 max-width: 36rem;
 font-family: var(--font-body);
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 line-height: 1.5;
 color: rgba(247, 243, 235, 0.62);
}

.chrono-trust {
 margin: 0 0 0.9rem;
 max-width: 36rem;
 font-family: var(--font-body);
 font-size: 0.78rem;
 font-weight: 600;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 line-height: 1.45;
 color: rgba(247, 243, 235, 0.78);
}

.chrono-trust span {
 margin: 0 0.45rem;
 color: rgba(168, 224, 83, 0.75);
 letter-spacing: 0;
}

.chrono-kicker span {
 margin: 0 0.4rem;
 color: rgba(168, 224, 83, 0.7);
 letter-spacing: 0;
}

.chrono-sub {
 margin: 0 0 0.45rem;
 font-size: 0.78rem;
 font-weight: 700;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 color: rgba(247, 243, 235, 0.72);
}

.chrono-occasions {
 display: none;
}

.hero--chrono h1 {
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 0.55rem;
 margin: 0 auto 1.15rem;
 max-width: min(44rem, 96vw);
 font-weight: 400;
 line-height: 0.92;
 color: #f7f3eb;
 text-shadow: 0 16px 42px rgba(0, 0, 0, 0.78);
 white-space: normal;
}

.hero--chrono .chrono-h1-main {
 display: block;
 font-size: clamp(2.85rem, 9.5vw, 5.4rem);
 letter-spacing: 0.045em;
 text-transform: uppercase;
 color: #f7f3eb;
 animation: chronoTitleGlow 3.8s ease-in-out infinite;
}

.hero--chrono .chrono-h1-loc {
 display: block;
 max-width: 22rem;
 font-size: clamp(0.78rem, 1.85vw, 0.95rem);
 font-family: var(--font-body);
 font-weight: 600;
 letter-spacing: 0.14em;
 line-height: 1.45;
 text-transform: uppercase;
 color: rgba(247, 243, 235, 0.62);
 text-shadow: 0 8px 24px rgba(0, 0, 0, 0.55);
}

.hero--chrono .chrono-h1-sep {
 display: inline-block;
 margin: 0 0.55rem;
 color: rgba(168, 224, 83, 0.7);
 letter-spacing: 0;
 font-weight: 700;
}

.hero--chrono .chrono-h1-accent {
 color: var(--accent-bright);
 font-weight: 700;
 text-shadow: 0 10px 28px rgba(0, 0, 0, 0.55);
}

@keyframes chronoTitleGlow {
 0%, 100% { text-shadow: 0 16px 42px rgba(0, 0, 0, 0.78); }
 50% { text-shadow: 0 16px 42px rgba(0, 0, 0, 0.78), 0 0 34px rgba(255, 255, 255, 0.12); }
}

.chrono-meter {
 position: relative;
 isolation: isolate;
 width: min(24rem, 90vw);
 margin: 0 auto 1rem;
}

.chrono-meter::before {
 content: "";
 position: absolute;
 left: 50%;
 top: 38%;
 z-index: 0;
 width: 130%;
 height: 160%;
 pointer-events: none;
 border-radius: 50%;
 background: radial-gradient(circle at 50% 45%, rgba(168, 224, 83, 0.28) 0%, rgba(168, 224, 83, 0.08) 38%, transparent 70%);
 transform: translate(-50%, -50%);
 transition: background 0.45s ease, opacity 0.45s ease;
}

.chrono-meter.is-warn::before {
 background: radial-gradient(circle at 50% 45%, rgba(240, 195, 90, 0.34) 0%, rgba(240, 195, 90, 0.1) 40%, transparent 70%);
}

.chrono-meter.is-critical::before {
 background: radial-gradient(circle at 50% 45%, rgba(255, 122, 92, 0.36) 0%, rgba(255, 90, 70, 0.12) 40%, transparent 70%);
}

.chrono-time {
 position: relative;
 z-index: 1;
 display: flex;
 align-items: baseline;
 justify-content: center;
 margin: 0 0 0.5rem;
 font-family: var(--font-display);
 font-size: clamp(4rem, 14vw, 6.2rem);
 line-height: 0.86;
 letter-spacing: 0.05em;
 color: var(--accent-bright);
 font-variant-numeric: tabular-nums;
 text-shadow:
  0 2px 0 rgba(0, 0, 0, 0.45),
  0 0 28px rgba(168, 224, 83, 0.4),
  0 14px 40px rgba(0, 0, 0, 0.7);
 transition: color 0.35s ease, text-shadow 0.35s ease;
}

.chrono-meter:not(.is-warn):not(.is-critical) .chrono-time {
 animation: chronoAlive 1.35s ease-in-out infinite;
}

@keyframes chronoAlive {
 0%, 100% {
  filter: brightness(1);
  text-shadow:
   0 2px 0 rgba(0, 0, 0, 0.45),
   0 0 18px rgba(168, 224, 83, 0.28),
   0 12px 36px rgba(0, 0, 0, 0.65);
 }
 50% {
  filter: brightness(1.18);
  text-shadow:
   0 2px 0 rgba(0, 0, 0, 0.45),
   0 0 32px rgba(168, 224, 83, 0.55),
   0 12px 36px rgba(0, 0, 0, 0.65);
 }
}

.chrono-mins,
.chrono-secs {
 display: inline-block;
 min-width: 1.15em;
}

.chrono-colon {
 display: inline-block;
 margin: 0 0.04em;
 animation: chronoBlink 0.85s steps(1) infinite;
 opacity: 0.9;
}

@keyframes chronoBlink {
 0%, 49% { opacity: 1; }
 50%, 100% { opacity: 0.18; }
}

.chrono-secs.is-tick {
 animation: chronoSecPop 0.18s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes chronoSecPop {
 0% { transform: translateY(0) scale(1); }
 40% { transform: translateY(-7px) scale(1.12); }
 100% { transform: translateY(0) scale(1); }
}

.chrono-meter.is-minute .chrono-mins {
 animation: chronoMinPunch 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes chronoMinPunch {
 0% { transform: scale(1); filter: brightness(1); }
 35% { transform: scale(1.16); filter: brightness(1.45); }
 100% { transform: scale(1); filter: brightness(1); }
}

/* Early rush. seconds fly */
.chrono-meter.is-rush .chrono-time {
 animation: chronoRush 0.55s ease-in-out infinite;
}

.chrono-meter.is-rush .chrono-colon {
 animation-duration: 0.45s;
}

.chrono-meter.is-rush .chrono-bar span {
 animation-duration: 0.7s;
 box-shadow: 0 0 22px rgba(168, 224, 83, 0.65);
}

.chrono-meter.is-rush .chrono-bar span::after {
 animation-duration: 0.45s;
}

@keyframes chronoRush {
 0%, 100% { filter: brightness(1.05); text-shadow: 0 0 22px rgba(168, 224, 83, 0.4), 0 12px 36px rgba(0, 0, 0, 0.6); }
 50% { filter: brightness(1.22); text-shadow: 0 0 36px rgba(168, 224, 83, 0.7), 0 12px 36px rgba(0, 0, 0, 0.6); }
}

.chrono-stage.is-rush .chrono-sweep {
 opacity: 0.85;
 animation-duration: 7s;
}

/* Stall beat. time almost freezes */
.chrono-meter.is-holding .chrono-time {
 animation: chronoHoldPulse 2.2s ease-in-out infinite;
 color: #d8e8a8;
}

.chrono-meter.is-holding .chrono-colon {
 animation-duration: 2.4s;
}

.chrono-meter.is-holding .chrono-bar span {
 animation-duration: 3.2s;
 filter: saturate(0.85);
}

@keyframes chronoHoldPulse {
 0%, 100% { filter: brightness(1); opacity: 0.92; }
 50% { filter: brightness(1.08); opacity: 1; }
}

/* Big skip when minutes collapse */
.chrono-meter.is-skip .chrono-time {
 animation: chronoSkip 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes chronoSkip {
 0% { transform: scale(1) translateY(0); filter: brightness(1) blur(0); }
 25% { transform: scale(1.12) translateY(-6px); filter: brightness(1.55) blur(0.6px); }
 100% { transform: scale(1) translateY(0); filter: brightness(1) blur(0); }
}

.chrono-meter.is-scramble .chrono-time {
 animation: none;
 filter: brightness(1.35);
 letter-spacing: 0.06em;
}

.chrono-stage.is-shock .chrono-veil {
 animation: chronoShock 0.55s ease;
}

@keyframes chronoShock {
 0% { filter: brightness(1); }
 30% { filter: brightness(1.35) saturate(1.2); }
 100% { filter: brightness(1); }
}

.chrono-bar {
 position: relative;
 z-index: 1;
 height: 8px;
 border-radius: 999px;
 background: rgba(255, 255, 255, 0.14);
 overflow: hidden;
 box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.chrono-bar span {
 position: relative;
 display: block;
 width: 100%;
 height: 100%;
 transform-origin: left center;
 transform: scaleX(1);
 background: linear-gradient(90deg, #6ea126 0%, var(--accent-bright) 55%, #e8ff9a 100%);
 background-size: 200% 100%;
 animation: chronoShimmer 1.2s linear infinite;
 box-shadow: 0 0 18px rgba(168, 224, 83, 0.45);
 will-change: transform;
 transition: transform 0.08s linear;
}

.chrono-bar span::after {
 content: "";
 position: absolute;
 top: -5px;
 right: -1px;
 width: 3px;
 height: calc(100% + 10px);
 border-radius: 2px;
 background: #fff;
 box-shadow:
 0 0 10px rgba(255, 255, 255, 0.9),
 0 0 22px rgba(168, 224, 83, 0.85);
 animation: chronoHeadPulse 0.9s ease-in-out infinite;
}

@keyframes chronoShimmer {
 0% { background-position: 0% 50%; }
 100% { background-position: 200% 50%; }
}

@keyframes chronoHeadPulse {
 0%, 100% { opacity: 0.75; transform: scaleY(0.85); }
 50% { opacity: 1; transform: scaleY(1.15); }
}

.chrono-tag {
 display: none;
}

.chrono-label {
 display: none;
}

.chrono-meter.is-warn .chrono-time {
 color: #f0c35a;
 animation: chronoWarnPulse 1.15s ease-in-out infinite;
 text-shadow:
  0 2px 0 rgba(0, 0, 0, 0.5),
  0 0 28px rgba(240, 195, 90, 0.45),
  0 14px 40px rgba(0, 0, 0, 0.7);
}
.chrono-meter.is-warn .chrono-bar span {
 background: linear-gradient(90deg, #c4922a, #f0c35a, #ffe39a);
 box-shadow: 0 0 18px rgba(240, 195, 90, 0.5);
 animation: chronoShimmer 1s linear infinite;
}
.chrono-meter.is-warn .chrono-bar span::after {
 box-shadow:
 0 0 12px #fff,
 0 0 18px rgba(168, 224, 83, 0.55),
 0 0 22px rgba(240, 195, 90, 0.9);
}

.chrono-meter.is-critical .chrono-time {
 color: #ff8a6e;
 animation: chronoUrgent 0.7s ease-in-out infinite;
 text-shadow:
  0 2px 0 rgba(0, 0, 0, 0.5),
  0 0 28px rgba(255, 122, 92, 0.5),
  0 14px 40px rgba(0, 0, 0, 0.7);
}
.chrono-meter.is-critical .chrono-bar span {
 background: linear-gradient(90deg, #c44a32, #ff7a5c, #ffb39f);
 box-shadow: 0 0 20px rgba(255, 122, 92, 0.55);
 animation: chronoShimmer 0.85s linear infinite;
}
.chrono-meter.is-critical .chrono-bar {
 animation: chronoBarShake 0.45s ease-in-out infinite;
}

@keyframes chronoUrgent {
 0%, 100% { transform: scale(1); }
 50% { transform: scale(1.03); }
}

@keyframes chronoWarnPulse {
 0%, 100% { transform: scale(1); opacity: 0.95; }
 50% { transform: scale(1.012); opacity: 1; }
}

@keyframes chronoBarShake {
 0%, 100% { transform: translateX(0); }
 25% { transform: translateX(-1px); }
 75% { transform: translateX(1px); }
}

/* No warn/urgent veil tint — photo stays charcoal, digits carry the mood */

.chrono-meter.is-zero .chrono-time,
.chrono-stage.is-resetting .chrono-time {
 animation: chronoFlash 0.7s ease;
}

@keyframes chronoFlash {
 0%, 100% { filter: brightness(1); }
 40% { filter: brightness(1.45); }
}

.chrono-lead {
 margin: 0 auto 1.35rem;
 max-width: none;
 width: max-content;
 white-space: nowrap;
 font-family: "Barlow Condensed", "Barlow", "Avenir Next", sans-serif;
 font-size: clamp(1.15rem, 2.4vw, 1.45rem);
 font-weight: 500;
 letter-spacing: 0.03em;
 line-height: 1.3;
 color: rgba(247, 243, 235, 0.92);
}

.hero--chrono .hero-actions {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.7rem 0.85rem;
 justify-content: center;
 margin: 0 auto;
 max-width: none;
}

.hero--chrono .btn-hero,
.hero--chrono .btn-hero-ghost {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 box-sizing: border-box;
 height: 3.25rem;
 min-height: 3.25rem;
 max-height: 3.25rem;
 padding: 0 1.4rem !important;
 font-size: 0.85rem !important;
 font-weight: 700;
 letter-spacing: 0.09em !important;
 border-radius: 3px !important;
 border-width: 1px;
 border-style: solid;
 line-height: 1;
 gap: 0.55rem;
}

.hero--chrono .btn-hero {
 position: relative;
 isolation: isolate;
 background: var(--accent) !important;
 background-image: none !important;
 color: var(--ink-on-accent) !important;
 border-color: var(--accent);
 box-shadow: 0 0 0 0 rgba(168, 224, 83, 0.35) !important;
 animation: chronoCtaPulse 2.4s ease-in-out infinite;
 transition:
 transform 0.2s ease,
 background 0.2s ease,
 border-color 0.2s ease,
 filter 0.2s ease,
 box-shadow 0.2s ease;
}

@keyframes chronoCtaPulse {
 0%, 100% { box-shadow: 0 0 0 0 rgba(168, 224, 83, 0.2); }
 50% { box-shadow: 0 0 28px 2px rgba(168, 224, 83, 0.35); }
}

.hero--chrono .btn-hero:hover,
.hero--chrono .btn-hero:focus-visible {
 background: var(--accent-bright) !important;
 border-color: var(--accent-bright);
 filter: none;
 transform: none;
 outline: none;
}

.hero--chrono .btn-hero:active {
 transform: none;
}

.hero--chrono .btn-hero-arrow {
 display: inline-flex;
 font-size: 1.4em;
 line-height: 1;
 transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}

.hero--chrono .btn-hero:hover .btn-hero-arrow,
.hero--chrono .btn-hero:focus-visible .btn-hero-arrow {
 transform: translateX(4px);
}

.hero--chrono .btn-hero-ghost {
 color: #f7f3eb;
 background: transparent !important;
 border-color: rgba(247, 243, 235, 0.32);
 box-shadow: none !important;
 text-decoration: none;
 transition:
 background 0.2s ease,
 border-color 0.2s ease,
 color 0.2s ease;
}

.hero--chrono .btn-hero-ghost:hover,
.hero--chrono .btn-hero-ghost:focus-visible {
 color: #fff;
 background: rgba(247, 243, 235, 0.08) !important;
 border-color: rgba(247, 243, 235, 0.65);
 transform: none;
 outline: none;
}

.chrono-rooms-link {
 color: rgba(247, 243, 235, 0.88);
 font-size: 0.95rem;
 font-weight: 600;
 text-decoration: underline;
 text-underline-offset: 0.2em;
 text-decoration-color: rgba(247, 243, 235, 0.35);
 transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.chrono-rooms-link:hover,
.chrono-rooms-link:focus-visible {
 color: #fff;
 text-decoration-color: var(--accent-bright);
 outline: none;
}

.chrono-scroll {
 position: absolute;
 left: 50%;
 bottom: max(1.1rem, calc(0.65rem + env(safe-area-inset-bottom, 0px)));
 z-index: 7;
 transform: translateX(-50%);
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 2.75rem;
 height: 2.75rem;
 padding: 0;
 color: var(--accent-bright);
 text-decoration: none;
 border: 1px solid rgba(168, 224, 83, 0.45);
 border-radius: 999px;
 background: rgba(7, 9, 13, 0.45);
 box-shadow: 0 0 24px rgba(168, 224, 83, 0.22);
 transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.chrono-scroll:hover,
.chrono-scroll:focus-visible {
 color: #fff;
 border-color: rgba(168, 224, 83, 0.85);
 background: rgba(141, 198, 63, 0.18);
 box-shadow: 0 0 28px rgba(168, 224, 83, 0.4);
 outline: none;
}

.chrono-scroll-arrow {
 width: 14px;
 height: 14px;
 margin-top: -4px;
 border-right: 3px solid currentColor;
 border-bottom: 3px solid currentColor;
 transform: rotate(45deg);
 animation: chronoScrollBounce 1.45s ease-in-out infinite;
}

@keyframes chronoScrollBounce {
 0%, 100% { transform: rotate(45deg) translate(0, 0); opacity: 0.7; }
 50% { transform: rotate(45deg) translate(4px, 4px); opacity: 1; }
}

@media (max-width: 900px) {
 .chrono-stage {
 min-height: 100svh;
 height: 100svh;
 padding-top: 4.75rem;
 }

 .chrono-scroll {
 display: none;
 }

 body.page-home.cookie-banner-visible .chrono-scroll {
 display: none;
 }

 .hero--chrono .hero-actions {
 flex-direction: column;
 align-items: stretch;
 width: min(100%, 18.5rem);
 margin-inline: auto;
 gap: 0.55rem;
 }

 .hero--chrono .btn-hero,
 .hero--chrono .btn-hero-ghost {
 width: 100%;
 justify-content: center;
 min-height: 48px;
 padding-top: 0.85rem;
 padding-bottom: 0.85rem;
 }

 .chrono-copy {
 padding-bottom: calc(1.75rem + env(safe-area-inset-bottom, 0px));
 gap: 0;
 }

 body.page-home .holidays-feature-actions {
 width: auto;
 }

 body.page-home .holidays-feature-actions .btn {
 width: auto;
 }
}

@media (prefers-reduced-motion: reduce) {
 .chrono-scroll-arrow {
 animation: none;
 }
}

@media (max-width: 900px) {
 .hero--chrono .hero-actions {
 width: min(100%, 20rem);
 }
}

@media (min-width: 901px) {
 .chrono-stage {
 padding-top: 8.5rem;
 }

 .chrono-stage--family {
 padding-top: clamp(6rem, 12vh, 8rem);
 padding-bottom: clamp(3.5rem, 8vh, 5rem);
 }

 .chrono-copy {
 padding-bottom: 1rem;
 }

 .chrono-lead {
 font-size: 1.2rem;
 max-width: none;
 white-space: nowrap;
 }

 .chrono-photo {
 object-position: 50% center;
 }

 .chrono-stage--family .chrono-photo {
 object-position: 84% 52%;
 transform: scale(1.32) translate3d(-14%, 6%, 0);
 }

 .chrono-meter {
 width: min(28rem, 56vw);
 }
}

@media (max-width: 900px) {
 .chrono-copy {
 padding-top: 0.15rem;
 }

 .chrono-kicker {
 margin-bottom: 0.55rem;
 font-size: 0.64rem;
 letter-spacing: 0.12em;
 max-width: 18rem;
 }

 .chrono-photo {
 object-position: center 38%;
 }

 .chrono-stage--family .chrono-photo {
 object-position: 78% 42%;
 transform: scale(1.22) translate3d(-8%, 2%, 0);
 }

 .chrono-veil {
 background:
 linear-gradient(180deg, rgba(7, 9, 13, 0.34) 0%, rgba(7, 9, 13, 0.28) 34%, rgba(7, 9, 13, 0.78) 68%, rgba(7, 9, 13, 0.96) 100%),
 radial-gradient(ellipse 80% 50% at 50% 40%, rgba(7, 9, 13, 0.12) 0%, transparent 70%);
 }

 .hero--chrono h1 {
 margin-bottom: 0.45rem;
 margin-inline: auto;
 gap: 0.4rem;
 white-space: normal;
 }

 .hero--chrono .chrono-h1-main {
 font-size: clamp(2.2rem, 10.5vw, 2.95rem);
 }

 .hero--chrono .chrono-h1-loc {
 max-width: 17.5rem;
 font-size: clamp(0.68rem, 2.9vw, 0.8rem);
 letter-spacing: 0.1em;
 }

 .chrono-sub {
 display: none;
 }

 .chrono-meter {
 width: min(18rem, 78vw);
 margin-bottom: 0.75rem;
 }

 .chrono-time {
 font-size: clamp(2.7rem, 12vw, 3.5rem);
 margin-bottom: 0.35rem;
 }

 .chrono-lead {
 margin: 0 auto 0.95rem;
 font-size: 0.98rem;
 max-width: 16.5rem;
 }
}

@media (max-width: 900px) and (max-height: 740px) {
 .chrono-kicker {
 display: none;
 }

 .chrono-lead {
 display: none;
 }

 .chrono-meter {
 margin-bottom: 0.85rem;
 }

 .chrono-time {
 font-size: clamp(2.35rem, 11vw, 2.9rem);
 }

 .hero--chrono .chrono-h1-main {
 font-size: clamp(2rem, 9.5vw, 2.55rem);
 }
}

@media (prefers-reduced-motion: reduce) {
 .chrono-stage.is-ready .chrono-slide.is-active .chrono-photo,
 .chrono-colon,
 .chrono-secs.is-tick,
 .chrono-sweep,
 .chrono-bar span,
 .chrono-bar span::after,
 .chrono-meter.is-critical .chrono-time,
 .chrono-meter.is-critical .chrono-bar,
 .chrono-meter.is-minute .chrono-mins,
 .chrono-meter.is-holding .chrono-time,
 .chrono-meter.is-rush .chrono-time,
 .chrono-meter.is-skip .chrono-time,
 .chrono-stage.is-shock .chrono-veil,
 .chrono-stage.is-resetting .chrono-time,
 .chrono-stage.is-entered .chrono-copy > *,
 .hero--chrono .btn-hero,
 .hero--chrono .chrono-h1-main,
 .chrono-scroll-arrow,
 .chrono-meter:not(.is-warn):not(.is-critical) .chrono-time {
 animation: none !important;
 }

 .chrono-copy > * {
 opacity: 1;
 transform: none;
 }

 .chrono-photo {
 transform: none;
 }

 .chrono-slide {
 transition: none;
 }

 .chrono-sweep {
 opacity: 0;
 }
}

/* ============================================================
 HOME HEADER. transparent over hero; compact on mobile
 ============================================================ */

body.page-home .site-header {
 position: fixed;
 left: 0;
 right: 0;
 top: 0;
 height: auto;
 min-height: var(--header-h);
 background: transparent;
 border-bottom-color: transparent;
 box-shadow: none;
 backdrop-filter: none;
 -webkit-backdrop-filter: none;
 transition:
 background 0.2s ease,
 border-color 0.2s ease,
 box-shadow 0.2s ease,
 min-height 0.2s ease;
}

body.page-home .site-header .header-inner {
 padding-top: 1.5rem;
 padding-bottom: 1rem;
 transition: padding 0.2s ease;
 align-items: flex-start;
 overflow: visible;
}

body.page-home .site-header .logo {
 flex: 0 1 auto;
 min-width: 0;
 max-width: min(380px, 34vw);
}

body.page-home .site-header .nav-desktop {
 flex: 1 1 auto;
 min-width: 0;
 justify-content: flex-end;
 flex-wrap: nowrap;
}

body.page-home .site-header .nav-desktop,
body.page-home .site-header .nav-toggle-label {
 margin-top: 0.55rem;
}

@media (max-width: 1100px) {
 /* Keep Contact / Book / Menu on one line. no staggered top margins */
 body.page-home .site-header .header-inner {
 align-items: center !important;
 }

 body.page-home .site-header .nav-desktop,
 body.page-home .site-header .nav-toggle-label {
 margin-top: 0 !important;
 }
}

body.page-home::after {
 display: none;
}

body.page-home .site-header::after {
 opacity: 0;
 transition: opacity 0.35s ease;
}

body.page-home .site-header .logo {
 position: relative;
 z-index: 2;
 margin-top: 0.35rem;
 transition: margin 0.2s ease;
}

body.page-home .site-header .logo-img {
 height: clamp(64px, 7.2vw, 88px);
 width: auto;
 max-width: 100%;
 filter: drop-shadow(0 12px 28px rgba(0, 0, 0, 0.65));
 transition: height 0.2s ease, max-width 0.2s ease, filter 0.2s ease;
}

body.page-home .site-header .nav-desktop > a:not(.nav-cta),
body.page-home .site-header .nav-rooms-trigger {
 text-shadow: 0 2px 14px rgba(0, 0, 0, 0.65);
}

body.page-home .site-header .nav-toggle-label {
 background: rgba(10, 12, 16, 0.35);
 border: 1px solid rgba(255, 255, 255, 0.35);
 backdrop-filter: none;
}

body.page-home .site-header.is-scrolled,
body.page-home.nav-open .site-header {
 background: rgba(22, 26, 34, 0.94);
 border-bottom-color: var(--border);
 box-shadow: 0 6px 24px rgba(0, 0, 0, 0.22);
 backdrop-filter: none;
 -webkit-backdrop-filter: none;
 min-height: var(--header-h);
}

body.page-home .site-header.is-scrolled .header-inner,
body.page-home.nav-open .site-header .header-inner {
 padding-top: 0.55rem;
 padding-bottom: 0.55rem;
 align-items: center;
}

body.page-home .site-header.is-scrolled .logo,
body.page-home.nav-open .site-header .logo {
 margin-top: 0;
}

body.page-home .site-header.is-scrolled .nav-desktop,
body.page-home .site-header.is-scrolled .nav-toggle-label,
body.page-home.nav-open .site-header .nav-desktop,
body.page-home.nav-open .site-header .nav-toggle-label {
 margin-top: 0;
}

body.page-home .site-header.is-scrolled::after,
body.page-home.nav-open .site-header::after {
 opacity: 1;
}

body.page-home .site-header.is-scrolled .logo-img,
body.page-home.nav-open .site-header .logo-img {
 height: 52px;
 max-width: 100%;
 filter: none;
}

@media (min-width: 901px) {
 body.page-home .site-header .logo {
  max-width: min(360px, 32vw);
 }

 body.page-home .site-header .logo-img {
 height: clamp(64px, 6.5vw, 84px);
 max-width: 100%;
 }

 body.page-home .site-header.is-scrolled .logo-img,
 body.page-home.nav-open .site-header .logo-img {
 height: 52px;
 max-width: 100%;
 }
}

@media (max-width: 900px) {
 body.page-home .site-header .header-inner {
 padding-top: 0.85rem;
 padding-bottom: 0.75rem;
 gap: 0.65rem;
 }

 body.page-home .site-header .logo {
 margin-top: 0;
 flex: 0 1 auto;
 max-width: min(200px, calc(100vw - 12.5rem));
 z-index: 1;
 }

 body.page-home .site-header .logo-img {
 height: 44px;
 max-width: 100%;
 }

 body.page-home .site-header.is-scrolled .logo-img,
 body.page-home.nav-open .site-header .logo-img {
 height: 40px;
 max-width: 100%;
 }

 body.page-home .site-header .nav-desktop,
 body.page-home .site-header .nav-toggle-label {
 position: relative;
 z-index: 3;
 flex-shrink: 0;
 }
}

@media (max-width: 480px) {
 body.page-home .site-header .logo {
 max-width: min(168px, calc(100vw - 12rem));
 }

 body.page-home .site-header .logo-img {
 height: 40px;
 }

 body.page-home .site-header.is-scrolled .logo-img,
 body.page-home.nav-open .site-header .logo-img {
 height: 36px;
 }
}

@media (prefers-reduced-motion: reduce) {
 body.page-home .site-header,
 body.page-home .site-header::after,
 body.page-home .site-header .logo-img,
 body.page-home .site-header .header-inner,
 body.page-home .site-header .logo {
 transition: none;
 }
}

/* ============================================================
 HOMEPAGE FLARE. Puzzled-clear sections, less AI box sludge
 ============================================================ */

body.page-home .how-it-works.expect {
 padding: 3.25rem 0 3.5rem;
 scroll-margin-top: calc(var(--header-h) + 0.75rem);
 background:
 linear-gradient(180deg, rgba(14, 16, 20, 0.65), rgba(10, 12, 16, 0.95));
 border-top: 1px solid rgba(255, 255, 255, 0.06);
 border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

body.page-home .expect-copy--solo {
 max-width: 40rem;
 margin: 0 auto;
 padding: 0 1.35rem;
 text-align: left;
}

body.page-home .expect-kicker {
 margin: 0 0 0.65rem;
 font-size: 0.78rem;
 font-weight: 700;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

body.page-home .expect-copy h2 {
 margin: 0 0 0.9rem;
 font-family: var(--font-body);
 font-size: clamp(1.85rem, 4.8vw, 2.55rem);
 font-weight: 700;
 letter-spacing: -0.02em;
 line-height: 1.15;
 text-transform: none;
 color: #f7f3eb;
 max-width: 18ch;
 text-align: left;
}

body.page-home .expect-copy > p {
 margin: 0 0 1rem;
 font-size: 1.05rem;
 line-height: 1.55;
 color: rgba(247, 243, 235, 0.82);
}

body.page-home .expect-aside {
 color: rgba(247, 243, 235, 0.68) !important;
 font-size: 0.98rem !important;
}

body.page-home .expect-aside a {
 color: #fff;
 font-weight: 600;
 text-decoration: underline;
 text-underline-offset: 0.18em;
 text-decoration-color: rgba(247, 243, 235, 0.35);
 margin-left: 0.35rem;
}

body.page-home .expect-aside a:hover,
body.page-home .expect-aside a:focus-visible {
 text-decoration-color: var(--accent-bright);
 outline: none;
}

body.page-home .expect-actions {
 margin: 1.35rem 0 0 !important;
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.25rem 0.35rem;
}

@media (min-width: 901px) {
 body.page-home .expect-copy--solo {
 margin-left: 0;
 padding-left: 0;
 padding-right: 0;
 }
}

body.page-home #games,
body.page-home #prices,
body.page-home #reviews,
body.page-home #visit,
body.page-home #occasions {
 scroll-margin-top: calc(var(--header-h) + 0.75rem);
}

body.page-home .nav-desktop a.nav-cta,
body.page-home .nav-mobile > a.nav-cta {
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.8rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 border-radius: 3px;
 padding: 0.55rem 1rem;
}

@media (max-width: 1100px) {
 body.page-home .nav-desktop a.nav-cta,
 body.page-home .site-header .nav-toggle-label {
 font-size: 0.72rem !important;
 letter-spacing: 0.1em !important;
 text-transform: uppercase !important;
 border-radius: 3px !important;
 padding-top: 0 !important;
 padding-bottom: 0 !important;
 }
}

body.page-home #games {
 padding-top: 2.35rem;
 padding-bottom: 3.25rem;
 border-top: 1px solid rgba(255, 255, 255, 0.07);
 background: #12161e;
}

body.page-home #games + .home-rates {
 border-top-color: rgba(255, 255, 255, 0.08);
}

body.page-home #games > .wrap > .section-header {
 text-align: center;
 margin-bottom: 0.6rem;
}

body.page-home #games > .wrap > .section-header .section-title {
 margin-bottom: 0;
}

body.page-home .games-type-intro {
 margin: 0 auto 2.85rem;
 max-width: 40rem;
 font-size: 1rem;
 line-height: 1.6;
 color: rgba(247, 243, 235, 0.72);
 text-align: center;
}

body.page-home .games-group-header {
 margin-bottom: 1.25rem;
 padding-bottom: 0;
 border-bottom: 0;
 text-align: center;
}

body.page-home .games-group-title {
 display: block;
 margin: 0;
 font-family: var(--font-display);
 font-size: var(--home-section-title-size);
 font-weight: 400;
 letter-spacing: var(--home-section-title-tracking);
 line-height: 1;
 text-transform: uppercase;
 color: var(--text);
}

body.page-home .games-group-title::before,
body.page-home .games-group-title::after {
 content: none;
}

body.page-home .games-group-lead {
 margin: 0.55rem auto 0;
 max-width: 38rem;
 font-family: var(--font-body);
 font-size: var(--home-section-lead-size);
 font-style: normal;
 font-weight: 500;
 letter-spacing: 0.01em;
 line-height: 1.45;
 color: var(--text-muted);
}

body.page-home #vr-games .games-group-lead {
 max-width: 40rem;
 color: var(--text-muted);
}

body.page-home .game-card {
 background: rgba(18, 22, 30, 0.92);
 border: 1px solid rgba(255, 255, 255, 0.1);
 border-radius: 8px;
 box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
 overflow: hidden;
 display: flex;
 flex-direction: column;
 transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

body.page-home .game-card:hover {
 transform: translateY(-2px);
 border-color: rgba(168, 224, 83, 0.28);
 box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
}

body.page-home .game-card-media {
 aspect-ratio: 16 / 10;
 border-radius: 0;
 overflow: hidden;
 border: 0;
 border-bottom: 1px solid rgba(255, 255, 255, 0.06);
 background: #0a0c10;
 position: relative;
}

body.page-home .game-card-media > img {
 display: block;
 width: 100%;
 height: 100%;
 object-fit: cover !important;
 object-position: center 24%;
 transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
 filter: none;
 background: #0a0c10;
}

/* VR posters have corner logo + VIRTUAL sash. show the full frame */
body.page-home #vr-games .game-card-media > img {
 object-fit: contain !important;
 object-position: center center !important;
}

body.page-home .game-card:hover .game-card-media > img {
 transform: scale(1.03);
 filter: none;
}

body.page-home .game-card-body {
 padding: 1.15rem 1.25rem 1.3rem;
 gap: 0.45rem;
}

body.page-home .game-card-title {
 position: static !important;
 width: auto;
 height: auto;
 padding: 0;
 margin: 0 0 0.45rem;
 overflow: visible;
 clip: auto;
 white-space: normal;
 border: 0;
 font-family: "Bebas Neue", "Impact", sans-serif;
 font-size: clamp(1.55rem, 2.3vw, 1.95rem);
 letter-spacing: 0.04em;
 line-height: 0.98;
 text-transform: uppercase;
 color: var(--text);
}

body.page-home .game-card-title a {
 font-family: inherit;
 color: inherit;
}

body.page-home .game-card-title a:hover,
body.page-home .game-card-title a:focus-visible {
 color: var(--accent-bright);
}

body.page-home .game-card-kind {
 letter-spacing: 0.14em;
 color: var(--accent-bright);
}

body.page-home .game-tags {
 gap: 0.35rem;
 margin: 0.15rem 0 0.35rem;
}

body.page-home .game-tags .tag {
 background: transparent;
 border: none;
 border-radius: 0;
 padding: 0;
 color: rgba(255, 255, 255, 0.8);
 font-size: 0.72rem;
 letter-spacing: 0.06em;
 text-transform: uppercase;
}

body.page-home .game-tags .tag:not(:last-child)::after {
 content: "·";
 margin-left: 0.35rem;
 opacity: 0.45;
}

body.page-home .game-difficulty {
 display: flex;
 align-items: center;
 gap: 0.45rem;
 margin: 0.15rem 0 0.45rem;
 color: rgba(247, 243, 235, 0.72);
 font-size: 0.72rem;
 font-weight: 600;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 line-height: 1;
}

body.page-home .game-difficulty-locks {
 display: inline-flex;
 align-items: center;
 gap: 0.18rem;
}

body.page-home .game-difficulty-lock {
 display: block;
 color: rgba(255, 255, 255, 0.22);
}

body.page-home .game-difficulty-lock.is-filled {
 color: var(--accent-bright, #f0a35a);
}

body.page-home .game-card-body > p:not(.game-card-kind):not(.game-difficulty) {
 display: block;
 color: rgba(247, 243, 235, 0.78);
 font-size: 0.95rem;
 line-height: 1.5;
 max-width: 38ch;
}

body.page-home .game-card-actions {
 display: grid;
 grid-template-columns: 1fr;
 margin-top: 0.95rem;
 gap: 0.45rem;
}

body.page-home .game-card-actions .btn {
 min-width: 0;
 width: 100%;
}

body.page-home .game-card-actions .btn-secondary {
 background: rgba(255, 255, 255, 0.05);
 border: 1px solid rgba(255, 255, 255, 0.22);
 color: rgba(247, 243, 235, 0.92);
}

body.page-home .game-card-actions .btn-secondary:hover,
body.page-home .game-card-actions .btn-secondary:focus-visible {
 background: rgba(255, 255, 255, 0.1);
 border-color: rgba(168, 224, 83, 0.5);
 color: var(--accent-bright);
}

body.page-home .game-card--soon .game-card-media {
 isolation: isolate;
}

body.page-home .game-card--soon .game-card-media::after {
 content: "";
 position: absolute;
 inset: 0;
 z-index: 1;
 pointer-events: none;
 background:
 linear-gradient(180deg, rgba(7, 9, 13, 0.15) 0%, rgba(7, 9, 13, 0.45) 100%),
 rgba(7, 9, 13, 0.18);
}

body.page-home .game-card--soon .game-card-media > img {
 filter: saturate(0.78) brightness(0.88);
 object-position: center 28%;
}

body.page-home .game-card--soon:hover .game-card-media > img {
 filter: saturate(0.9) brightness(0.94);
 transform: scale(1.02);
}

body.page-home .game-card-soon-sash {
 position: absolute;
 top: 50%;
 left: 0;
 right: 0;
 z-index: 3;
 width: 100%;
 min-width: 0;
 max-width: none;
 padding: 0.48rem 0.75rem;
 background: rgba(6, 8, 12, 0.78);
 border: 0;
 border-top: 1px solid rgba(168, 224, 83, 0.35);
 border-bottom: 1px solid rgba(168, 224, 83, 0.35);
 border-radius: 0;
 color: var(--accent-bright);
 font-family: "Barlow", "Avenir Next", "Segoe UI", sans-serif;
 font-size: 0.68rem;
 font-weight: 700;
 letter-spacing: 0.2em;
 text-align: center;
 text-transform: uppercase;
 transform: translateY(-50%);
 pointer-events: none;
 box-shadow: none;
}

body.page-home .game-card-status-badge {
 position: absolute;
 top: auto;
 bottom: 0.85rem;
 left: 0.85rem;
 z-index: 3;
 display: inline-flex;
 align-items: center;
 gap: 0.4rem;
 padding: 0.48rem 0.75rem;
 border-radius: 999px;
 background: rgba(8, 10, 12, 0.88);
 border: 1px solid rgba(168, 224, 83, 0.65);
 color: var(--accent-bright);
 font-family: "Barlow", "Avenir Next", "Segoe UI", sans-serif;
 font-size: 0.7rem;
 font-weight: 700;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 line-height: 1;
 pointer-events: none;
 box-shadow: 0 8px 22px rgba(0, 0, 0, 0.4);
}

body.page-home .game-card-status-badge::before {
 content: "";
 width: 0.45rem;
 height: 0.45rem;
 border-radius: 50%;
 background: var(--accent-bright);
 box-shadow: 0 0 0 0 rgba(168, 224, 83, 0.55);
 animation: soon-pulse 1.8s ease-out infinite;
}

@keyframes soon-pulse {
 0% { box-shadow: 0 0 0 0 rgba(168, 224, 83, 0.55); }
 70% { box-shadow: 0 0 0 8px rgba(168, 224, 83, 0); }
 100% { box-shadow: 0 0 0 0 rgba(168, 224, 83, 0); }
}

@media (prefers-reduced-motion: reduce) {
 body.page-home .game-card-status-badge::before {
 animation: none;
 }
}

body.page-home .game-card-kind--soon {
 color: var(--accent-bright);
}

body.page-home .game-card--soon .btn-email-list {
 background: transparent;
 border: 1px solid rgba(168, 224, 83, 0.55);
 color: var(--accent-bright);
 box-shadow: none;
}

body.page-home .game-card--soon .btn-email-list:hover,
body.page-home .game-card--soon .btn-email-list:focus-visible {
 background: rgba(141, 198, 63, 0.14);
 border-color: rgba(168, 224, 83, 0.85);
 color: #f0ffd9;
}

body.page-home .game-card-virtual-badge {
 font-family: var(--font-display);
 letter-spacing: 0.14em;
}

body.page-home .occasions-section {
 padding: 0;
}

body.page-home .occasions-strip {
 margin: 0;
 padding: 2.75rem 1.5rem;
 border-radius: 0;
 border: none;
 border-top: 1px solid rgba(255, 255, 255, 0.08);
 border-bottom: 1px solid rgba(255, 255, 255, 0.08);
 background:
 linear-gradient(105deg, rgba(168, 224, 83, 0.08), transparent 42%),
 linear-gradient(180deg, rgba(14, 17, 22, 0.2), rgba(7, 9, 13, 0.55));
}

body.page-home .reviews-section {
 padding-top: 3.5rem;
 padding-bottom: 3.25rem;
}

body.page-home #visit {
 padding-top: 3.25rem;
 padding-bottom: 3.5rem;
}

body.page-home .section-header {
 margin-bottom: 1.75rem;
}

@media (min-width: 901px) {
 body.page-home .games-grid {
 gap: 1.75rem 1.5rem;
 }

 body.page-home .occasions-strip {
 padding: 3.25rem 2rem;
 }
}

/* ============================================================
 HOME OFFERS FEATURE. copy left + bright live-room collage
 ============================================================ */

body.page-home .home-offers-feature {
 position: relative;
 margin: 0;
 padding: clamp(1.75rem, 3.5vw, 2.75rem) 0;
 border: 0;
 border-top: 1px solid rgba(255, 255, 255, 0.06);
 border-bottom: 1px solid rgba(255, 255, 255, 0.06);
 background: #0a0d12;
}

body.page-home .home-offers-feature-wrap {
 display: grid;
 grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.9fr);
 gap: 1.5rem 2rem;
 align-items: center;
}

body.page-home .home-offers-feature-copy {
 max-width: 26rem;
 text-align: right;
 margin-left: auto;
 justify-self: end;
}

body.page-home .home-offers-feature-kicker {
 margin: 0 0 0.45rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

body.page-home .home-offers-feature h2 {
 margin: 0 0 0.65rem auto;
 font-family: var(--font-display);
 font-size: clamp(2.35rem, 5vw, 3.35rem);
 font-weight: 400;
 letter-spacing: var(--home-section-title-tracking);
 line-height: 0.94;
 color: var(--text);
 text-transform: uppercase;
}

body.page-home .home-offers-feature-lead {
 margin: 0 0 0.85rem auto;
 max-width: 32ch;
 font-family: var(--font-body);
 font-size: var(--home-body-lead-size);
 font-weight: 500;
 line-height: 1.4;
 color: rgba(242, 238, 230, 0.82);
}

body.page-home .home-offers-feature-lead a {
 color: rgba(242, 238, 230, 0.92);
 text-decoration: underline;
 text-underline-offset: 0.16em;
 text-decoration-color: rgba(242, 238, 230, 0.35);
}

body.page-home .home-offers-feature-lead a:hover {
 color: #fff;
 text-decoration-color: rgba(255, 255, 255, 0.65);
}

body.page-home .home-offers-feature-hooks {
 display: flex;
 flex-wrap: wrap;
 justify-content: flex-end;
 gap: 0.35rem;
 margin: 0 0 1.25rem;
}

body.page-home .home-offers-feature-hooks span {
 display: inline-flex;
 align-items: center;
 padding: 0.28rem 0.5rem;
 border: 1px solid rgba(255, 255, 255, 0.14);
 border-radius: 3px;
 background: rgba(255, 255, 255, 0.04);
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.66rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: rgba(242, 238, 230, 0.7);
}

body.page-home .home-offers-feature-copy .btn-hero {
 position: relative;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 box-sizing: border-box;
 min-height: 3.35rem;
 padding: 0 1.6rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.9rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 line-height: 1;
 gap: 0.55rem;
 border-radius: 3px;
 border: 1px solid var(--accent-bright);
 background: var(--accent) !important;
 background-image: none !important;
 color: var(--ink-on-accent) !important;
 box-shadow:
  0 0 0 1px rgba(141, 198, 63, 0.2),
  0 12px 32px rgba(141, 198, 63, 0.28);
 animation: holidaysCtaPulse 2.6s ease-in-out infinite;
 transition:
  transform 0.2s ease,
  background 0.2s ease,
  border-color 0.2s ease,
  box-shadow 0.2s ease;
}

body.page-home .home-offers-feature-copy .btn-hero:hover,
body.page-home .home-offers-feature-copy .btn-hero:focus-visible {
 background: var(--accent-bright) !important;
 border-color: #c6f06a;
 transform: translateY(-2px);
 box-shadow:
  0 0 0 1px rgba(168, 224, 83, 0.35),
  0 16px 40px rgba(141, 198, 63, 0.38);
 outline: none;
 animation: none;
}

body.page-home .home-offers-feature-copy .btn-hero-arrow {
 display: inline-flex;
 font-size: 1.35em;
 line-height: 1;
 transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}

body.page-home .home-offers-feature-copy .btn-hero:hover .btn-hero-arrow,
body.page-home .home-offers-feature-copy .btn-hero:focus-visible .btn-hero-arrow {
 transform: translateX(4px);
}

body.page-home .home-offers-feature-collage {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 0.4rem;
 min-height: clamp(14rem, 28vw, 20rem);
 overflow: hidden;
 border-radius: 4px;
}

body.page-home .home-offers-feature-panel {
 width: 100%;
 height: 100%;
 min-height: clamp(14rem, 28vw, 20rem);
 object-fit: cover;
 display: block;
 filter: saturate(1.05) contrast(1.05) brightness(1.05);
}

body.page-home .home-offers-feature-panel:nth-child(1) {
 object-position: 48% 40%;
}

body.page-home .home-offers-feature-panel:nth-child(2) {
 object-position: 50% 45%;
}

body.page-home .home-offers-feature-panel:nth-child(3) {
 object-position: 55% 38%;
}

@media (max-width: 900px) {
 body.page-home .home-offers-feature {
  padding: 0;
  border-top-color: rgba(255, 255, 255, 0.08);
 }

 body.page-home .home-offers-feature-wrap {
  position: relative;
  display: block;
  min-height: clamp(20rem, 56svh, 28rem);
  overflow: hidden;
 }

 body.page-home .home-offers-feature-collage {
  position: absolute;
  inset: 0;
  z-index: 0;
  gap: 0;
  min-height: 100%;
  border-radius: 0;
 }

 body.page-home .home-offers-feature-collage::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
   linear-gradient(180deg, rgba(10, 13, 18, 0.42) 0%, rgba(10, 13, 18, 0.55) 42%, rgba(10, 13, 18, 0.82) 100%),
   linear-gradient(90deg, rgba(10, 13, 18, 0.28) 0%, rgba(10, 13, 18, 0.12) 50%, rgba(10, 13, 18, 0.28) 100%);
 }

 body.page-home .home-offers-feature-panel {
  min-height: 100%;
  filter: saturate(1.02) contrast(1.04) brightness(0.78);
 }

 body.page-home .home-offers-feature-copy {
  position: relative;
  z-index: 2;
  order: unset;
  max-width: 22rem;
  margin: 0 auto;
  text-align: center;
  justify-self: stretch;
  padding: clamp(3.5rem, 12vw, 5rem) 1.25rem clamp(2.25rem, 7vw, 3rem);
 }

 body.page-home .home-offers-feature h2 {
  margin-left: auto;
  margin-right: auto;
  text-shadow: 0 12px 32px rgba(0, 0, 0, 0.55);
 }

 body.page-home .home-offers-feature-lead {
  margin-left: auto;
  margin-right: auto;
  max-width: 28ch;
 }

 body.page-home .home-offers-feature-hooks {
  justify-content: center;
 }

 body.page-home .home-offers-feature-copy .btn-hero {
  width: min(100%, 16rem);
 }
}

@media (prefers-reduced-motion: reduce) {
 body.page-home .home-offers-feature-copy .btn-hero {
  animation: none;
 }
}

/* ============================================================
 SCHOOL HOLIDAYS. faces left, copy right (photo flipped)
 ============================================================ */

body.page-home .holidays-feature {
 position: relative;
 margin: 0;
 padding: 0;
 border: 0;
 border-top: 1px solid rgba(255, 255, 255, 0.06);
 background: #07090d;
}

body.page-home .holidays-feature-stage {
 position: relative;
 display: flex;
 flex-direction: column;
 justify-content: flex-end;
 min-height: clamp(20rem, 46svh, 30rem);
 overflow: hidden;
}

body.page-home .holidays-feature-photo {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: 42% 38%;
 transform: scaleX(-1) scale(1.06);
 transform-origin: center center;
 animation: holidaysKen 18s ease-in-out infinite alternate;
 will-change: transform;
}

@keyframes holidaysKen {
 0% { transform: scaleX(-1) scale(1.06) translate3d(0, 0, 0); }
 100% { transform: scaleX(-1) scale(1.14) translate3d(1.8%, -1%, 0); }
}

body.page-home .holidays-feature-veil {
 position: absolute;
 inset: 0;
 z-index: 1;
 pointer-events: none;
 background:
 linear-gradient(270deg, rgba(7, 9, 13, 0.92) 0%, rgba(7, 9, 13, 0.55) 38%, rgba(7, 9, 13, 0.12) 68%, rgba(7, 9, 13, 0.28) 100%),
 linear-gradient(180deg, rgba(7, 9, 13, 0.22) 0%, transparent 32%, rgba(7, 9, 13, 0.78) 100%);
}

body.page-home .holidays-feature-copy {
 position: relative;
 z-index: 2;
 margin-left: auto;
 margin-right: 0;
 padding-top: 2rem;
 padding-bottom: clamp(1.6rem, 3.5vw, 2.4rem);
 max-width: 26rem;
 text-align: right;
}

body.page-home .holidays-feature-copy > * {
 opacity: 0;
 transform: translateY(14px);
 animation: holidaysRise 0.7s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

body.page-home .holidays-feature-copy > *:nth-child(1) { animation-delay: 0.05s; }
body.page-home .holidays-feature-copy > *:nth-child(2) { animation-delay: 0.14s; }
body.page-home .holidays-feature-copy > *:nth-child(3) { animation-delay: 0.24s; }
body.page-home .holidays-feature-copy > *:nth-child(4) { animation-delay: 0.34s; }
body.page-home .holidays-feature-copy > *:nth-child(5) { animation-delay: 0.42s; }

@keyframes holidaysRise {
 to { opacity: 1; transform: translateY(0); }
}

body.page-home .holidays-kicker {
 margin: 0 0 0.45rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: var(--home-kicker-size);
 font-weight: 700;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

body.page-home .holidays-feature h2 {
 margin: 0 0 0.65rem auto;
 font-family: var(--font-display);
 font-size: clamp(2.4rem, 5.2vw, 3.6rem);
 font-weight: 400;
 letter-spacing: var(--home-section-title-tracking);
 line-height: 0.94;
 color: var(--text);
 text-transform: uppercase;
 max-width: none;
 text-shadow: 0 12px 40px rgba(0, 0, 0, 0.55);
}

body.page-home .holidays-lead {
 margin: 0 0 0.85rem auto;
 max-width: 34ch;
 font-family: var(--font-body);
 font-size: var(--home-body-lead-size);
 font-weight: 500;
 line-height: 1.4;
 color: rgba(242, 238, 230, 0.82);
}

body.page-home .holidays-offers-track {
 display: flex;
 flex-wrap: wrap;
 justify-content: flex-end;
 gap: 0.35rem;
 margin: 0 0 1.1rem auto;
 max-width: 28rem;
}

body.page-home .holidays-offers-chip {
 display: inline-flex;
 align-items: center;
 padding: 0.3rem 0.5rem;
 border: 1px solid rgba(141, 198, 63, 0.38);
 border-radius: 4px;
 background: rgba(7, 10, 14, 0.55);
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.66rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: rgba(242, 238, 230, 0.92);
 animation: holidaysOfferChip 2.8s ease-in-out infinite;
}

body.page-home .holidays-offers-chip:nth-child(2) { animation-delay: 0.2s; }
body.page-home .holidays-offers-chip:nth-child(3) { animation-delay: 0.4s; }
body.page-home .holidays-offers-chip:nth-child(4) { animation-delay: 0.6s; }
body.page-home .holidays-offers-chip:nth-child(5) { animation-delay: 0.8s; }
body.page-home .holidays-offers-chip:nth-child(6) { animation-delay: 1s; }

@keyframes holidaysOfferChip {
 0%, 100% { border-color: rgba(141, 198, 63, 0.28); box-shadow: none; }
 50% { border-color: rgba(168, 224, 83, 0.72); box-shadow: 0 0 14px rgba(141, 198, 63, 0.2); }
}

body.page-home .holidays-feature-actions {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: flex-end;
 gap: 0.85rem 1.25rem;
 margin-top: 0.35rem;
}

body.page-home .holidays-feature-actions .btn-hero {
 position: relative;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 box-sizing: border-box;
 min-height: 3.4rem;
 padding: 0 1.7rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.92rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 line-height: 1;
 gap: 0.55rem;
 border-radius: 3px;
 border: 1px solid var(--accent-bright);
 background: var(--accent) !important;
 background-image: none !important;
 color: var(--ink-on-accent) !important;
 box-shadow:
  0 0 0 1px rgba(141, 198, 63, 0.2),
  0 12px 32px rgba(141, 198, 63, 0.28);
 animation: holidaysCtaPulse 2.6s ease-in-out infinite;
 transition:
  transform 0.2s ease,
  background 0.2s ease,
  border-color 0.2s ease,
  box-shadow 0.2s ease;
}

body.page-home .holidays-feature-actions .btn-hero:hover,
body.page-home .holidays-feature-actions .btn-hero:focus-visible {
 background: var(--accent-bright) !important;
 border-color: #c6f06a;
 transform: translateY(-2px);
 box-shadow:
  0 0 0 1px rgba(168, 224, 83, 0.35),
  0 16px 40px rgba(141, 198, 63, 0.38);
 outline: none;
 animation: none;
}

body.page-home .holidays-feature-actions .btn-hero-arrow {
 display: inline-flex;
 font-size: 1.35em;
 line-height: 1;
 transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}

body.page-home .holidays-feature-actions .btn-hero:hover .btn-hero-arrow,
body.page-home .holidays-feature-actions .btn-hero:focus-visible .btn-hero-arrow {
 transform: translateX(4px);
}

@keyframes holidaysCtaPulse {
 0%, 100% {
  box-shadow:
    0 0 0 1px rgba(141, 198, 63, 0.2),
    0 12px 32px rgba(141, 198, 63, 0.24);
 }
 50% {
  box-shadow:
    0 0 0 1px rgba(168, 224, 83, 0.45),
    0 14px 36px rgba(141, 198, 63, 0.42);
 }
}

body.page-home .holidays-offers-link {
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.82rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: var(--accent-bright);
 text-decoration: none;
 transition: color 0.2s ease;
}

body.page-home .holidays-offers-link span {
 display: inline-block;
 transition: transform 0.2s ease;
}

body.page-home .holidays-offers-link:hover,
body.page-home .holidays-offers-link:focus-visible {
 color: #c6f06a;
 outline: none;
}

body.page-home .holidays-offers-link:hover span,
body.page-home .holidays-offers-link:focus-visible span {
 transform: translateX(4px);
}

/* Homepage section rhythm. stop centering everything */
body.page-home .section-header {
 text-align: left;
 margin-bottom: 1.5rem;
}

body.page-home .section-header .eyebrow {
 justify-content: flex-start;
}

body.page-home .section-header .eyebrow::before,
body.page-home .section-header .eyebrow::after {
 display: none;
}

body.page-home .section-lead,
body.page-home .games-type-intro {
 margin-left: 0;
 margin-right: 0;
 max-width: 42rem;
 text-align: left;
}

body.page-home .reviews-section .section-header,
body.page-home .reviews-section-header {
 text-align: center;
}

body.page-home .reviews-section-header .atelier-heading {
 margin-left: auto;
 margin-right: auto;
 text-align: center;
}

body.page-home .reviews-section-header .reviews-score-row {
 justify-content: center;
 margin-left: auto;
 margin-right: auto;
}

@media (max-width: 900px) {
 body.page-home .holidays-feature-stage {
 min-height: clamp(18rem, 42svh, 26rem);
 }

 body.page-home .holidays-feature-photo {
 object-position: 48% 32%;
 }

 body.page-home .holidays-feature-veil {
 background:
 linear-gradient(180deg, rgba(7, 9, 13, 0.2) 0%, rgba(7, 9, 13, 0.35) 38%, rgba(7, 9, 13, 0.92) 100%),
 linear-gradient(270deg, rgba(7, 9, 13, 0.75) 0%, transparent 70%);
 }

 body.page-home .holidays-feature-copy {
 max-width: none;
 padding-top: 1.5rem;
 padding-bottom: 1.6rem;
 }

 body.page-home .holidays-feature h2 {
 font-size: clamp(2.15rem, 9vw, 2.85rem);
 }

 body.page-home .holidays-lead {
 max-width: 36ch;
 }
}

@media (prefers-reduced-motion: reduce) {
 body.page-home .holidays-feature-photo {
 animation: none;
 transform: scaleX(-1) scale(1.06);
 }

 body.page-home .holidays-feature-copy > * {
 opacity: 1;
 transform: none;
 animation: none;
 }

 body.page-home .holidays-offers-chip {
 animation: none;
 }

 body.page-home .holidays-feature-actions .btn-hero {
 animation: none;
 }
}

body.page-home .info-strip--single {
 padding: 1.75rem 1.5rem;
 border-radius: 12px;
 border: 1px solid rgba(255, 255, 255, 0.1);
 background:
 linear-gradient(165deg, rgba(22, 26, 34, 0.95), rgba(10, 12, 16, 0.9));
 box-shadow: 0 18px 40px rgba(0, 0, 0, 0.25);
}

body.page-home .info-strip--single::before {
 display: none;
}

body.page-home .hours-row {
 padding: 0.65rem 0;
}

body.page-home .hours-row dt {
 color: rgba(247, 243, 235, 0.72);
 font-weight: 600;
}

body.page-home .hours-row dd {
 color: #fff;
 font-variant-numeric: tabular-nums;
}

body.page-home .visit-price-highlight {
 margin: 0.35rem 0 1rem;
}

body.page-home .visit-price-amount {
 color: var(--accent-bright);
 font-family: var(--font-display);
 font-size: 2.4rem;
 letter-spacing: 0.02em;
}

@media (min-width: 768px) {
 body.page-home .info-strip--single {
 padding: 2rem 2.15rem;
 }
}

/* ============================================================
 FIND US. dark map leads; address + contact as equal lanes
 ============================================================ */

body.page-home .find-panel {
 display: flex;
 flex-direction: column;
 gap: 1.35rem;
 margin-top: clamp(2.25rem, 5vw, 3.5rem);
 padding-top: clamp(2rem, 4vw, 2.75rem);
 border-top: 1px solid rgba(255, 255, 255, 0.08);
}

body.page-home .find-panel-head {
 max-width: 28rem;
}

body.page-home .find-panel-kicker {
 margin: 0 0 0.4rem;
 font-size: 0.78rem;
 font-weight: 700;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

body.page-home .find-panel-title {
 margin: 0;
 font-family: var(--font-display);
 font-size: clamp(2rem, 4vw, 2.85rem);
 font-weight: 400;
 letter-spacing: 0.02em;
 line-height: 0.98;
 text-transform: uppercase;
 color: var(--text);
}

body.page-home .find-panel-map {
 position: relative;
 width: 100%;
 height: clamp(14.5rem, 31vw, 18.5rem);
 overflow: hidden;
 border: 1px solid rgba(255, 255, 255, 0.08);
 background: #232a31;
}

body.page-home .find-panel-map-canvas {
 width: 100%;
 height: 100%;
 background: #232a31;
}

body.page-home .find-panel-map .leaflet-container {
 width: 100%;
 height: 100%;
 background: #232a31;
 font: inherit;
}

body.page-home .find-panel-map .leaflet-tile-pane {
 filter: brightness(1.18) contrast(1.08) saturate(0.92);
}

body.page-home .find-panel-map .leaflet-control-attribution {
 background: rgba(20, 24, 30, 0.62);
 color: rgba(255, 255, 255, 0.66);
 font-size: 0.65rem;
 border: 0;
}

body.page-home .find-panel-map .leaflet-control-attribution a {
 color: rgba(255, 255, 255, 0.8);
}

body.page-home .find-panel-map .leaflet-bar a {
 background: #151922;
 color: #f7f3eb;
 border-bottom-color: rgba(255, 255, 255, 0.1);
}

body.page-home .find-panel-map .leaflet-bar a:hover {
 background: #1e2633;
 color: var(--accent-bright);
}

body.page-home .find-map-pin {
 background: transparent;
 border: 0;
}

body.page-home .find-panel-map .leaflet-popup-content-wrapper {
 background: #151922;
 color: #f7f3eb;
 border-radius: 6px;
 box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
}

body.page-home .find-panel-map .leaflet-popup-tip {
 background: #151922;
}

body.page-home .find-panel-map .leaflet-popup-content {
 margin: 0.65rem 0.85rem;
 font-size: 0.88rem;
 line-height: 1.4;
}

body.page-home .find-panel-details {
 display: grid;
 grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
 gap: 1.75rem 3rem;
 align-items: start;
 padding-top: 0.5rem;
}

body.page-home .find-panel-visit {
 display: flex;
 flex-direction: column;
 align-items: flex-start;
 gap: 0.85rem;
}

body.page-home .find-panel-address {
 margin: 0;
 font-style: normal;
 font-size: 1.02rem;
 line-height: 1.55;
 color: rgba(247, 243, 235, 0.9);
}

body.page-home .find-panel-note {
 margin: 0;
 max-width: 36ch;
 font-size: 0.92rem;
 line-height: 1.45;
 color: var(--text-muted);
}

body.page-home .find-panel-directions {
 display: inline-flex;
 align-items: center;
 gap: 0.35rem;
 margin-top: 0.15rem;
 color: var(--accent-bright);
 font-size: 0.95rem;
 font-weight: 700;
 letter-spacing: 0.02em;
 text-decoration: none;
}

body.page-home .find-panel-directions::after {
 content: "→";
 font-size: 0.95em;
 transition: transform 0.15s ease;
}

body.page-home .find-panel-directions:hover,
body.page-home .find-panel-directions:focus-visible {
 color: #c8f07a;
 outline: none;
}

body.page-home .find-panel-directions:hover::after,
body.page-home .find-panel-directions:focus-visible::after {
 transform: translateX(3px);
}

body.page-home .find-panel-contact {
 display: flex;
 flex-direction: column;
 align-items: flex-start;
 gap: 0.45rem;
 margin: 0;
 padding-top: 0.15rem;
}

body.page-home .find-panel-contact-label {
 margin: 0 0 0.2rem;
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.66);
}

body.page-home .find-panel-phone {
 font-family: var(--font-display);
 font-size: clamp(1.85rem, 3.5vw, 2.35rem);
 font-weight: 400;
 letter-spacing: 0.04em;
 line-height: 1;
 color: #f7f3eb;
 text-decoration: none;
}

body.page-home .find-panel-phone:hover,
body.page-home .find-panel-phone:focus-visible {
 color: var(--accent-bright);
 outline: none;
}

body.page-home .find-panel-email {
 margin-top: 0.35rem;
 font-size: 1.02rem;
 font-weight: 600;
 line-height: 1.4;
 color: rgba(247, 243, 235, 0.88);
 text-decoration: none;
}

body.page-home .find-panel-email:hover,
body.page-home .find-panel-email:focus-visible {
 color: var(--accent-bright);
 outline: none;
}

@media (max-width: 800px) {
 body.page-home .find-panel-map {
 height: 16.5rem;
 }

 body.page-home .find-panel-details {
 grid-template-columns: 1fr;
 gap: 1.5rem;
 }

 body.page-home .find-panel-contact {
 order: -1;
 padding-bottom: 0.35rem;
 border-bottom: 1px solid rgba(255, 255, 255, 0.08);
 }
}


/* Footer newsletter. impassable signup band */
/* Outer wrap only: keep gutters so the card lines up with page content */
.footer-newsletter {
 position: relative;
 isolation: isolate;
 margin: 0 0 1.5rem;
 padding-top: 0;
 padding-bottom: 0;
 border: 0;
 border-radius: 0;
 background: transparent;
 box-shadow: none;
}

.footer-newsletter.discount-signup {
 border-top: 0;
 background: transparent;
}

.footer-newsletter-inner {
 position: relative;
 z-index: 1;
 display: grid;
 grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
 gap: 1.15rem 2.25rem;
 align-items: center;
 padding: clamp(1.35rem, 2.8vw, 1.85rem) clamp(1.15rem, 2.4vw, 1.65rem);
 border: 1px solid rgba(141, 198, 63, 0.28);
 border-radius: 4px;
 background:
 radial-gradient(ellipse 70% 120% at 0% 50%, rgba(141, 198, 63, 0.14), transparent 55%),
 radial-gradient(ellipse 50% 100% at 100% 0%, rgba(141, 198, 63, 0.06), transparent 50%),
 linear-gradient(180deg, #12171f 0%, #0c0f15 100%);
 box-shadow:
 0 0 0 1px rgba(0, 0, 0, 0.35) inset,
 0 12px 40px rgba(0, 0, 0, 0.28);
}

.footer-newsletter-copy {
 min-width: 0;
}

.footer-newsletter-kicker {
 margin: 0 0 0.4rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

.footer-newsletter-title {
 margin: 0 0 0.55rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: clamp(1.85rem, 3.4vw, 2.55rem);
 font-weight: 500;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 line-height: 1.05;
 color: var(--text);
}

.footer-newsletter-lead {
 margin: 0;
 max-width: 38ch;
 font-size: 1.02rem;
 font-weight: 500;
 line-height: 1.5;
 color: rgba(242, 238, 230, 0.78);
}

.footer-newsletter .discount-signup-form-col {
 max-width: none;
}

.footer-newsletter .discount-signup-form label {
 font-size: 0.64rem;
 letter-spacing: 0.12em;
 color: rgba(242, 238, 230, 0.7);
}

.footer-newsletter .discount-signup-form input[type="email"] {
 background: rgba(7, 9, 13, 0.72);
 border-color: rgba(255, 255, 255, 0.18);
 padding: 0.78rem 0.9rem;
 font-size: 1rem;
 min-height: 3rem;
 border-radius: 3px;
}

.footer-newsletter .discount-signup-form input[type="email"]:focus {
 border-color: var(--accent-bright);
 box-shadow: 0 0 0 3px rgba(141, 198, 63, 0.18);
 outline: none;
}

.footer-newsletter-form-row {
 display: flex;
 flex-wrap: wrap;
 align-items: flex-end;
 gap: 0.7rem;
}

.footer-newsletter-form-row .discount-signup-field {
 flex: 1 1 14rem;
 min-width: 0;
}

.footer-newsletter-form-row .discount-signup-actions {
 flex: 0 0 auto;
}

.footer-newsletter .discount-signup-actions .btn {
 width: auto;
 min-width: 9.5rem;
 min-height: 3rem;
 border-radius: 3px !important;
 padding: 0.7rem 1.2rem;
 border: 1px solid var(--accent-bright) !important;
 box-shadow:
 0 0 0 1px rgba(141, 198, 63, 0.2),
 0 0 22px rgba(141, 198, 63, 0.35),
 0 8px 22px rgba(141, 198, 63, 0.2);
}

.footer-newsletter .discount-signup-actions .btn:hover,
.footer-newsletter .discount-signup-actions .btn:focus-visible {
 box-shadow:
 0 0 0 1px rgba(168, 224, 83, 0.35),
 0 0 28px rgba(168, 224, 83, 0.45),
 0 10px 26px rgba(141, 198, 63, 0.28);
 outline: none;
}

.footer-newsletter .discount-signup-message {
 margin-top: 0.65rem;
}

@media (max-width: 900px) {
 .footer-newsletter {
 margin-bottom: 1.1rem;
 }

 .footer-newsletter-inner {
 grid-template-columns: 1fr;
 gap: 0.85rem;
 align-items: stretch;
 padding: 1.1rem 1rem 1.15rem;
 }

 .footer-newsletter-title {
 margin-bottom: 0.35rem;
 font-size: clamp(1.35rem, 6.2vw, 1.7rem);
 letter-spacing: 0.03em;
 line-height: 1.1;
 }

 .footer-newsletter-lead {
 font-size: 0.92rem;
 line-height: 1.4;
 max-width: none;
 }

 .footer-newsletter .discount-signup-form input[type="email"] {
 min-height: 2.75rem;
 padding: 0.65rem 0.8rem;
 font-size: 0.95rem;
 }

 .footer-newsletter-form-row {
 flex-wrap: nowrap;
 align-items: flex-end;
 gap: 0.5rem;
 }

 .footer-newsletter-form-row .discount-signup-field {
 flex: 1 1 auto;
 }

 .footer-newsletter-form-row .discount-signup-actions {
 flex: 0 0 auto;
 }

 .footer-newsletter .discount-signup-actions .btn {
 width: auto;
 min-width: 0;
 min-height: 2.75rem;
 padding: 0.65rem 0.95rem;
 }
}

@media (max-width: 560px) {
 .footer-newsletter {
 margin-bottom: 1rem;
 }

 .footer-newsletter-inner {
 padding: 1rem 0.9rem 1.05rem;
 }

 .footer-newsletter-form-row {
 flex-wrap: nowrap;
 }

 .footer-newsletter .discount-signup-actions .btn {
 width: auto;
 white-space: nowrap;
 }
}

/* Slim footer. sitewide, matched to header type */
.site-footer--home {
 margin-top: 0;
 padding: 1.75rem 0 1.35rem;
 border-top: 1px solid var(--border);
 background: #07080b;
 font-family: var(--font-body);
}

.site-footer--home > .wrap {
 padding-left: 1.25rem;
 padding-right: 1.25rem;
}

.site-footer--home::before {
 display: none;
}

.footer-home-bar {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
 gap: 1rem 1.25rem;
 margin: 0;
 padding: 1.15rem 0 0;
 border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.footer-home-logo {
 display: block;
 margin: 0;
 padding: 0;
 line-height: 0;
}

.footer-home-logo .logo-img {
 height: 34px;
 width: auto;
 opacity: 0.92;
 display: block;
}

.footer-home-nav {
 display: flex;
 flex-wrap: wrap;
 gap: 0.2rem 0.15rem;
 margin: 0;
}

.footer-home-nav a {
 color: var(--text-muted);
 text-decoration: none;
 font-family: var(--font-body);
 font-size: var(--text-nav);
 font-weight: var(--text-nav-weight);
 letter-spacing: 0.05em;
 text-transform: uppercase;
 padding: 0.4rem 0.7rem;
 border-radius: 6px;
 line-height: 1.2;
}

.footer-home-nav a:hover,
.footer-home-nav a:focus-visible {
 color: var(--text);
 background: rgba(255, 255, 255, 0.05);
 outline: none;
}

.social-row--footer {
 margin: 0;
 padding: 0;
 display: flex;
 align-items: center;
 gap: 0.45rem;
}

.footer-visit {
 display: flex;
 flex-wrap: wrap;
 align-items: flex-start;
 gap: 1.75rem 4.5rem;
 padding: 0 0 1.25rem;
 margin: 0;
 border-top: none;
}

.footer-visit-contact {
 flex: 0 1 18rem;
}

.footer-visit-hours {
 flex: 0 1 16rem;
}

.footer-visit-label {
 margin: 0 0 0.6rem;
 font-family: var(--font-body);
 font-size: var(--text-eyebrow);
 font-weight: 700;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 color: var(--text-muted);
}

.footer-visit-phone,
.footer-visit-email,
.footer-visit-address,
.footer-visit-directions,
.footer-hours-list,
.footer-hours-note,
.site-footer--home .footer-bottom {
 font-family: var(--font-body);
}

.footer-visit-phone {
 display: block;
 margin: 0 0 0.25rem;
 color: var(--text);
 font-size: 1rem;
 font-weight: 600;
 letter-spacing: 0.02em;
 text-decoration: none;
 line-height: 1.35;
}

.footer-visit-phone:hover,
.footer-visit-phone:focus-visible {
 color: var(--accent-bright);
 outline: none;
}

.footer-visit-email {
 display: block;
 margin: 0 0 0.7rem;
 color: var(--text-muted);
 font-size: var(--text-small);
 font-weight: 500;
 text-decoration: none;
 line-height: 1.45;
}

.footer-visit-email:hover,
.footer-visit-email:focus-visible {
 color: var(--text);
 outline: none;
}

.footer-visit-address {
 margin: 0 0 0.65rem;
 font-style: normal;
 font-size: var(--text-small);
 font-weight: 500;
 line-height: 1.55;
 color: var(--text-muted);
}

.footer-visit-directions {
 display: inline-flex;
 align-items: center;
 gap: 0.3rem;
 color: var(--accent-bright);
 font-size: var(--text-small);
 font-weight: 600;
 letter-spacing: 0.02em;
 text-decoration: none;
}

.footer-visit-directions::after {
 content: "→";
 transition: transform 0.2s ease;
}

.footer-visit-directions:hover,
.footer-visit-directions:focus-visible {
 outline: none;
}

.footer-visit-directions:hover::after,
.footer-visit-directions:focus-visible::after {
 transform: translateX(3px);
}

.footer-hours-list {
 margin: 0;
 padding: 0;
 display: grid;
 gap: 0.35rem;
}

.footer-hours-row {
 display: grid;
 grid-template-columns: 5.5rem auto;
 column-gap: 0.75rem;
 align-items: baseline;
 font-size: var(--text-small);
 line-height: 1.45;
}

.footer-hours-row dt {
 margin: 0;
 font-weight: 600;
 color: var(--text-muted);
}

.footer-hours-row dd {
 margin: 0;
 font-weight: 600;
 color: var(--text);
 white-space: nowrap;
}

.footer-hours-note {
 margin: 0.35rem 0 0.85rem;
 font-size: 0.8rem;
 font-weight: 600;
 line-height: 1.45;
 color: var(--accent-bright);
 max-width: 18rem;
}

.site-footer--home .footer-bottom {
 border-top: 1px solid rgba(255, 255, 255, 0.08);
 padding-top: 0.95rem;
 margin: 0;
 font-size: var(--text-small);
 font-weight: 500;
 color: var(--text-muted);
}

.site-footer--home .footer-bottom a {
 color: var(--text-muted);
 text-decoration: none;
 font-weight: 600;
}

.site-footer--home .footer-bottom a:hover,
.site-footer--home .footer-bottom a:focus-visible {
 color: var(--text);
 outline: none;
}

@media (max-width: 700px) {
 .footer-home-bar {
 flex-direction: column;
 align-items: flex-start;
 }

 .footer-visit {
 flex-direction: column;
 gap: 1.35rem;
 }

 .footer-visit-contact,
 .footer-visit-hours {
 flex: 1 1 auto;
 }
}

body.page-home {
 display: flex;
 flex-direction: column;
 min-height: 100vh;
 min-height: 100svh;
 /* Keep homepage type/colour one system (premiere :root is slightly cooler/dimmer) */
 --text: #f2eee6;
 --text-muted: #a9a39a;
 --accent-bright: #a8e053;
 --font-display: "Bebas Neue", "Impact", sans-serif;
 --font-body: "Barlow", "Avenir Next", "Segoe UI", sans-serif;
 --font-ui: "Barlow", "Avenir Next", "Segoe UI", sans-serif;
 /* Shared mid-page section ladder */
 --home-section-title-size: clamp(1.9rem, 3.6vw, 2.45rem);
 --home-section-title-tracking: 0.04em;
 --home-section-lead-size: 0.95rem;
 --home-body-lead-size: 1.02rem;
 --home-kicker-size: 0.72rem;
}

body.page-home main {
 flex: 1 0 auto;
}

body.page-home .site-footer--home {
 margin-top: auto;
}

/* Homepage performance pass */
body.page-home .chrono-stage::before {
 animation: none !important;
 filter: none;
 opacity: 0.28;
}

body.page-home .chrono-copy::before,
body.page-home .chrono-meter::before {
 display: none !important;
 content: none !important;
}

body.page-home .chrono-stage.is-ready .chrono-slide.is-active .chrono-photo,
body.page-home .chrono-stage.is-ready .chrono-slide[data-room="B Block Breakout"].is-active .chrono-photo {
 animation: none !important;
}

body.page-home .chrono-stage.is-ready .chrono-slide.is-active .chrono-photo {
 transform: scale(1.04);
}

body.page-home .chrono-stage--family .chrono-photo {
 object-position: 84% 52%;
 transform: scale(1.32) translate3d(-14%, 6%, 0);
 transform-origin: 50% 45%;
}

body.page-home .chrono-stage--family.is-ready .chrono-slide.is-active .chrono-photo {
 animation: chronoFamilyDrift 22s ease-in-out infinite alternate !important;
 transform: scale(1.32) translate3d(-14%, 6%, 0);
}

@media (max-width: 900px) {
 body.page-home .chrono-stage--family .chrono-photo,
 body.page-home .chrono-stage--family.is-ready .chrono-slide.is-active .chrono-photo {
 object-position: 74% 40%;
 transform: scale(1.18) translate3d(-6%, 1%, 0);
 }
}

body.page-home .chrono-sweep {
 opacity: 0.32;
 animation: chronoSweep 14s ease-in-out infinite;
}

body.page-home .chrono-bar span,
body.page-home .chrono-bar span::after,
body.page-home .chrono-bar,
body.page-home .holidays-feature-copy > * {
 animation: none !important;
}

body.page-home .chrono-meter:not(.is-warn):not(.is-critical) .chrono-time {
 animation: chronoAlive 1.35s ease-in-out infinite;
}

body.page-home .chrono-colon {
 animation: chronoBlink 0.85s steps(1) infinite;
}

body.page-home .chrono-scroll-arrow {
 animation: chronoScrollBounce 1.45s ease-in-out infinite;
}

body.page-home .hero--chrono .btn-hero {
 animation: chronoCtaPulse 2.4s ease-in-out infinite;
}

body.page-home .hero--chrono .chrono-h1-main {
 animation: chronoTitleGlow 3.8s ease-in-out infinite;
}

body.page-home .holidays-feature-copy > * {
 opacity: 1;
 transform: none;
}

body.page-home .chrono-stage.is-entered .chrono-copy > * {
 opacity: 0;
 transform: translateY(22px);
 animation: chronoRise 0.9s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

body.page-home .chrono-stage.is-entered .chrono-copy > *:nth-child(1) { animation-delay: 0.06s; }
body.page-home .chrono-stage.is-entered .chrono-copy > *:nth-child(2) { animation-delay: 0.16s; }
body.page-home .chrono-stage.is-entered .chrono-copy > *:nth-child(3) { animation-delay: 0.28s; }
body.page-home .chrono-stage.is-entered .chrono-copy > *:nth-child(4) { animation-delay: 0.42s; }
body.page-home .chrono-stage.is-entered .chrono-copy > *:nth-child(5) { animation-delay: 0.54s; }


/* ============================================================
 SEXY1. game heroes, prices hierarchy, graphic cohesion
 ============================================================ */

:root {
 --bg-deep: #12151c;
 --bg-panel: #1a202b;
 --bg-elevated: #232b38;
 --shadow-accent: 0 6px 18px rgba(141, 198, 63, 0.16);
 --shadow-card: 0 14px 36px rgba(0, 0, 0, 0.32);
}

body {
 background: var(--bg-deep);
}

.btn-primary {
 box-shadow: var(--shadow-accent);
}

.btn-primary::before {
 opacity: 0.55;
}

.page-hero {
 text-align: center;
 padding: 2.35rem 0 1.5rem;
}

.page-hero h1 {
 letter-spacing: 0.03em;
}

.page-hero p,
.page-hero .page-hero-lead {
 margin-left: auto;
 margin-right: auto;
 max-width: 36rem;
 color: rgba(247, 243, 235, 0.78);
}

.prices-page-hero .eyebrow {
 margin-bottom: 0.55rem;
}

.prices-page-hero strong {
 color: var(--accent-bright);
 font-weight: 700;
}

.price-cards-grid {
 gap: 0.85rem;
 margin-bottom: 1.5rem;
}

.price-card {
 padding: 1.5rem 0.85rem 1.35rem;
 border-radius: 12px;
 background: rgba(22, 26, 34, 0.92);
 border: 1px solid rgba(255, 255, 255, 0.08);
 box-shadow: none;
 transition: border-color 0.2s ease, transform 0.2s ease;
}

.price-card:hover {
 border-color: rgba(168, 224, 83, 0.28);
 transform: translateY(-2px);
}

.price-card--highlight {
 border-color: rgba(168, 224, 83, 0.55);
 background:
 linear-gradient(165deg, rgba(168, 224, 83, 0.14) 0%, rgba(22, 26, 34, 0.95) 70%);
 transform: scale(1.03);
 z-index: 1;
}

.price-card--highlight:hover {
 transform: scale(1.04) translateY(-2px);
}

.price-card--highlight .price-card-amount {
 color: var(--accent-bright);
 font-size: 2.55rem;
}

.prices-book-band {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.85rem 1.35rem;
 margin: 0 0 1.75rem;
 padding: 1.25rem 0 0.25rem;
}

.prices-groups-link {
 color: rgba(247, 243, 235, 0.72);
 font-size: 0.95rem;
 font-weight: 600;
 text-decoration: underline;
 text-decoration-color: rgba(168, 224, 83, 0.35);
 text-underline-offset: 0.2em;
}

.prices-groups-link:hover,
.prices-groups-link:focus-visible {
 color: #fff;
 text-decoration-color: var(--accent-bright);
 outline: none;
}

.prices-notes {
 padding: 1.35rem 1.4rem;
 border-radius: 12px;
 border: 1px solid rgba(255, 255, 255, 0.08);
 background: rgba(14, 17, 22, 0.85);
 box-shadow: none;
}

.prices-notes p {
 margin: 0;
 color: rgba(247, 243, 235, 0.78);
}

@media (max-width: 900px) {
 .price-cards-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 .price-card--highlight {
 grid-column: 1 / -1;
 transform: none;
 }

 .prices-book-band {
 flex-direction: column;
 align-items: stretch;
 }

 .prices-book-band .btn {
 width: 100%;
 justify-content: center;
 }

 .prices-groups-link {
 text-align: center;
 }
}

/* - - Cinematic game heroes - - */
.game-page .breadcrumbs {
 position: relative;
 z-index: 5;
 padding-top: 1.1rem;
 padding-bottom: 0.85rem;
}

.game-hero {
 position: relative;
 margin: 0 0 0.25rem;
 background: #07090d;
}

.game-hero-coming-banner {
 position: relative;
 z-index: 4;
 display: block;
 margin: 0;
 padding: 0.65rem 1rem;
 text-align: center;
 text-decoration: none;
 font-family: var(--font-display);
 font-size: clamp(1.15rem, 2.8vw, 1.55rem);
 font-weight: 400;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 line-height: 1;
 color: #0a0c10;
 background:
  linear-gradient(90deg, rgba(168, 224, 83, 0.92), var(--accent) 35%, var(--accent) 65%, rgba(168, 224, 83, 0.92));
 border-bottom: 1px solid rgba(0, 0, 0, 0.25);
 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
 transition: filter 0.15s ease, box-shadow 0.15s ease;
}

.game-hero-coming-banner:hover,
.game-hero-coming-banner:focus-visible {
 color: #0a0c10;
 filter: brightness(1.08);
 box-shadow: 0 10px 28px rgba(141, 198, 63, 0.35);
 outline: none;
}

.game-hero--coming-soon .game-hero-stage {
 min-height: clamp(20rem, 54svh, 32rem);
}

.game-hero-stage {
 position: relative;
 display: flex;
 flex-direction: column;
 justify-content: flex-end;
 min-height: clamp(22rem, 58svh, 34rem);
 overflow: hidden;
}

.game-hero-photo {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center 35%;
 transform: scale(1.04);
 filter: saturate(0.98) contrast(1.04) brightness(0.92);
}

.game-hero-veil {
 position: absolute;
 inset: 0;
 z-index: 1;
 pointer-events: none;
 background:
 linear-gradient(90deg, rgba(7, 9, 13, 0.82) 0%, rgba(7, 9, 13, 0.48) 34%, rgba(7, 9, 13, 0.12) 68%, rgba(7, 9, 13, 0.22) 100%),
 linear-gradient(180deg, rgba(7, 9, 13, 0.28) 0%, transparent 30%, rgba(7, 9, 13, 0.55) 62%, rgba(7, 9, 13, 0.86) 100%);
}

.game-hero-copy {
 position: relative;
 z-index: 2;
 padding-top: clamp(2.4rem, 5vw, 3.25rem);
 padding-bottom: 0.2rem;
 /* Same wrap width as breadcrumbs + body sheet. left edge lines up */
 max-width: var(--max);
 width: 100%;
 margin-left: auto;
 margin-right: auto;
 text-align: left;
}

.game-hero-story {
 position: relative;
 z-index: 2;
 max-width: var(--max);
 width: 100%;
 margin-left: auto;
 margin-right: auto;
 padding-top: 0.15rem;
 padding-bottom: 1rem;
 border-top: 0;
 text-align: left;
}

.game-hero-story .game-page-kicker {
 margin: 0 0 0.55rem;
 font-family: var(--font-display);
 font-size: clamp(1.35rem, 2.2vw, 1.75rem);
 font-weight: 400;
 letter-spacing: 0.04em;
 line-height: 1;
 text-transform: uppercase;
 color: #f7f3eb;
 text-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
}

.game-hero-story p:not(.game-page-kicker) {
 margin: 0;
 max-width: 46rem;
 width: 100%;
 font-family: var(--font-body, "Barlow", sans-serif);
 font-size: 1.02rem;
 font-weight: 500;
 line-height: 1.55;
 color: rgba(247, 243, 235, 0.8);
 text-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.game-hero-story a {
 color: var(--accent-bright);
 font-weight: 600;
 text-decoration: underline;
 text-underline-offset: 0.15em;
}

.game-hero-copy .eyebrow {
 margin: 0 0 0.55rem;
 justify-content: flex-start;
 color: var(--accent-bright);
}

.game-hero-copy .eyebrow::before,
.game-hero-copy .eyebrow::after {
 display: none;
}

.game-hero-copy h1 {
 margin: 0 0 0.55rem;
 font-family: var(--font-display);
 font-size: var(--text-h1-hero);
 font-weight: 400;
 letter-spacing: var(--letter-display, 0.04em);
 line-height: 0.92;
 text-transform: uppercase;
 color: #f7f3eb;
 text-shadow: 0 14px 40px rgba(0, 0, 0, 0.55);
 text-align: left;
}

.game-hero-copy h1 .title-accent {
 color: var(--accent-bright, #a8e053);
}

.game-hero-lead {
 margin: 0 0 0.75rem;
 max-width: none;
 width: 100%;
 font-size: 1.08rem;
 line-height: 1.4;
 color: rgba(247, 243, 235, 0.86);
 text-align: left;
}

.game-hero-meta {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.35rem 0.55rem;
 margin: 0 0 0.85rem;
 font-size: 0.9rem;
 font-weight: 600;
 letter-spacing: 0.02em;
 color: rgba(247, 243, 235, 0.62);
 text-align: left;
}

.game-hero-meta-sep {
 opacity: 0.45;
}

.game-hero-tags {
 list-style: none;
 display: flex;
 flex-wrap: wrap;
 gap: 0.4rem;
 margin: -0.45rem 0 0.55rem;
 padding: 0;
}

.game-hero-tags li {
 margin: 0;
 padding: 0.28rem 0.55rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.68rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: rgba(247, 243, 235, 0.88);
 background: rgba(0, 0, 0, 0.35);
 border: 1px solid rgba(255, 255, 255, 0.16);
 border-radius: 2px;
}

.game-difficulty {
 display: inline-flex;
 align-items: center;
 gap: 0.4rem;
 margin: 0;
 color: inherit;
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 line-height: 1;
}

.game-difficulty-locks {
 display: inline-flex;
 align-items: center;
 gap: 0.16rem;
}

.game-difficulty-lock {
 display: block;
 color: rgba(255, 255, 255, 0.22);
}

.game-difficulty-lock.is-filled {
 color: var(--accent-bright, #a8e053);
}

.game-hero-actions {
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0.75rem 1rem;
  max-width: var(--max);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 1.15rem;
}

.game-hero-more {
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-start;
  gap: 0.55rem 1.15rem;
  max-width: var(--max);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: 1rem 0 clamp(1.6rem, 3.5vw, 2.35rem);
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(247, 243, 235, 0.55);
  font-size: 0.92rem;
}

.game-hero-more .game-page-more-label {
  flex: 0 0 auto;
  min-width: 0;
  margin-right: 0.15rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(247, 243, 235, 0.48);
}

.game-hero-more a {
  color: var(--accent-bright, #a8e053);
  font-weight: 600;
  text-decoration: none;
}

.game-hero-more a:hover {
  color: #f0ffd9;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.game-hero-first {
  margin: 0.85rem 0 0;
  font-family: var(--font-ui, "Barlow", sans-serif);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.game-hero-first a {
  color: rgba(242, 238, 230, 0.72);
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.game-hero-first a:hover {
  color: var(--accent-bright);
}

.book-cta-strip-note {
  margin: 0.45rem 0 0;
  font-size: 0.92rem;
  color: var(--text-muted);
}

.book-cta-strip-note a {
  color: var(--accent-bright);
}

/* Game pages: one type/colour ladder (matches homepage mid-page system) */
body.game-page {
  --text: #f2eee6;
  --text-muted: #a9a39a;
  --accent-bright: #a8e053;
  --font-display: "Bebas Neue", "Impact", sans-serif;
  --font-body: "Barlow", "Avenir Next", "Segoe UI", sans-serif;
  --font-ui: "Barlow", "Avenir Next", "Segoe UI", sans-serif;
}

body.game-page .game-hero-copy h1 {
  color: var(--text);
}

body.game-page .game-hero-copy h1 .title-accent {
  color: var(--accent-bright);
}

body.game-page .game-hero-lead {
  color: rgba(242, 238, 230, 0.82);
}

/* Open editorial body — full wrap width, no inset cards */
body.game-page .game-page-body {
  padding: clamp(1.5rem, 3vw, 2.25rem) 0 clamp(3rem, 5vw, 4rem);
  background: #12161e;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

body.game-page .game-page-sheet {
  max-width: var(--max);
}

body.game-page .game-page-content,
body.game-page .game-page-content--compact {
  max-width: none;
  margin: 0;
  gap: 0;
}

body.game-page .game-page-storyline {
  position: relative;
  display: block;
  max-width: none;
  width: 100%;
  margin: 0 0 2rem;
  padding: 0 0 2rem;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0;
  background: none;
  box-shadow: none;
  overflow: visible;
}

body.game-page .game-page-storyline::before,
body.game-page .game-page-storyline::after {
  content: none !important;
  display: none !important;
}

body.game-page .game-page-kicker {
  margin: 0 0 0.75rem;
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 2.4vw, 1.95rem);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1;
  text-transform: uppercase;
  color: var(--text);
}

body.game-page .game-page-storyline p:not(.game-page-kicker) {
  margin: 0;
  max-width: none;
  width: 100%;
  font-family: var(--font-body);
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.6;
  color: var(--text-muted);
}

body.game-page .game-page-storyline a {
  color: var(--accent-bright);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

body.game-page .game-page-storyline + .game-page-more {
  margin-top: 0.25rem;
  padding-top: 1.5rem;
  border-top: 0;
}

body.game-page .game-page-content > .game-page-more:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

body.game-page .game-page-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 0;
  row-gap: 0;
  padding: 0;
  margin: 0;
  border: 0;
  background: none;
}

body.game-page .game-page-details-item {
  position: relative;
  margin: 0;
  padding: 0 2.75rem 0 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  overflow: visible;
}

body.game-page .game-page-details-item::before {
  content: none !important;
  display: none !important;
}

/* Right column only — never the wrapped third row */
body.game-page .game-page-details-item:nth-child(2) {
  padding: 0 0 0 2.75rem;
  border-left: 1px solid rgba(255, 255, 255, 0.12);
}

/* Third block (e.g. Before you play) spans full width under the pair */
body.game-page .game-page-details-item:nth-child(n + 3) {
  grid-column: 1 / -1;
  margin-top: 2rem;
  padding: 2rem 0 0;
  border-left: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

body.game-page .game-page-details-heading {
  margin: 0 0 0.75rem;
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 2.4vw, 1.95rem);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1;
  text-transform: uppercase;
  color: var(--text);
}

body.game-page .game-page-details-item p {
  margin: 0;
  max-width: 40rem;
  font-family: var(--font-body);
  font-size: 1.02rem;
  font-weight: 500;
  line-height: 1.55;
  color: var(--text-muted);
}

body.game-page .game-page-details-item:nth-child(n + 3) p {
  max-width: none;
}

body.game-page .game-page-details-item a {
  color: var(--accent-bright);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

body.game-page .game-page-cta-bar {
  margin-top: 0;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  justify-content: flex-start;
}

body.game-page .game-page-useful,
body.game-page .game-page-more {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-start;
  gap: 0.45rem 1rem;
  margin: 0;
  color: var(--text-muted);
  font-size: 0.9rem;
}

body.game-page .game-page-useful {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

body.game-page .game-page-more {
  margin-top: 0.85rem;
  padding-top: 0;
  border: 0;
}

body.game-page .game-page-useful span,
body.game-page .game-page-more-label {
  flex: 0 0 auto;
  min-width: 6.5rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(242, 238, 230, 0.55);
}

body.game-page .game-page-useful a,
body.game-page .game-page-more a {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: var(--accent-bright);
  font-weight: 600;
  text-decoration: none;
}

body.game-page .game-page-useful a::after {
  content: "→";
  margin-left: 0.28rem;
  opacity: 0.75;
}

body.game-page .game-page-useful a:hover,
body.game-page .game-page-more a:hover {
  color: #f0ffd9;
  text-decoration: underline;
  text-underline-offset: 0.16em;
  border: 0;
}

@media (max-width: 800px) {
  body.game-page .game-page-details {
    grid-template-columns: 1fr;
    gap: 0;
  }

  body.game-page .game-page-details-item,
  body.game-page .game-page-details-item:nth-child(2),
  body.game-page .game-page-details-item:nth-child(n + 3) {
    grid-column: auto;
    margin-top: 0;
    padding: 0;
    border-left: 0;
    border-top: 0;
  }

  body.game-page .game-page-details-item + .game-page-details-item {
    margin-top: 1.75rem;
    padding-top: 1.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
  }

  body.game-page .game-page-useful span,
  body.game-page .game-page-more-label {
    min-width: 0;
    width: 100%;
    margin-bottom: 0.15rem;
  }
}

.game-page-body {
 padding-top: 2rem;
}

.game-page-cta-bar {
 margin-top: 1.75rem;
 display: flex;
 flex-wrap: wrap;
 gap: 0.75rem;
 align-items: center;
}

.game-page-cta-bar .btn-primary {
 min-width: 12rem;
}

@media (max-width: 900px) {
 /* Mobile: photo band + solid copy panel (not text on busy image) */
 .game-hero-stage,
 .game-hero--coming-soon .game-hero-stage {
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  overflow: visible;
  background: #07090d;
 }

 .game-hero-photo {
  position: relative;
  inset: auto;
  z-index: 0;
  width: 100%;
  height: clamp(11.5rem, 48vw, 16.5rem);
  object-fit: cover;
  object-position: center 30%;
  transform: none;
  filter: saturate(0.95) contrast(1.05) brightness(0.88);
 }

 .game-hero-veil {
  position: absolute;
  inset: auto;
  top: 0;
  left: 0;
  right: 0;
  height: clamp(11.5rem, 48vw, 16.5rem);
  z-index: 1;
  background:
   linear-gradient(180deg, rgba(7, 9, 13, 0.2) 0%, rgba(7, 9, 13, 0.05) 45%, rgba(7, 9, 13, 0.92) 100%),
   linear-gradient(90deg, rgba(7, 9, 13, 0.35) 0%, transparent 55%);
 }

 .game-hero-coming-banner {
  padding: 0.55rem 0.85rem;
  font-size: clamp(0.95rem, 3.8vw, 1.2rem);
  letter-spacing: 0.1em;
 }

 .game-hero-copy {
  max-width: none;
  padding-top: 1.05rem;
  padding-bottom: 0.15rem;
  background: #07090d;
 }

 .game-hero-copy h1 {
  font-size: clamp(2.15rem, 11vw, 2.85rem);
  line-height: 0.95;
  margin-bottom: 0.45rem;
  text-shadow: none;
 }

 .game-hero-lead {
  font-size: 1rem;
  line-height: 1.4;
  margin-bottom: 0.55rem;
  color: rgba(247, 243, 235, 0.88);
 }

 .game-hero-meta {
  margin-bottom: 0.65rem;
  font-size: 0.85rem;
 }

 .game-hero-story {
  max-width: none;
  padding-top: 0.35rem;
  padding-bottom: 0.85rem;
  background: #07090d;
 }

 .game-hero-story p:not(.game-page-kicker) {
  font-size: 0.95rem;
  line-height: 1.55;
  color: rgba(247, 243, 235, 0.78);
  text-shadow: none;
 }

 .game-hero-actions {
  max-width: none;
  padding-bottom: 0.85rem;
  background: #07090d;
  gap: 0.55rem;
 }

 .game-hero-more {
  max-width: none;
  padding: 0.85rem 0 1.35rem;
  background: #07090d;
 }

 .game-hero-actions .btn {
  width: 100%;
  justify-content: center;
 }

 .game-page .breadcrumbs {
  padding-top: 0.85rem;
  padding-bottom: 0.55rem;
 }

 .game-page .wrap {
  padding-left: 1.15rem;
  padding-right: 1.15rem;
 }
}

@media (max-width: 480px) {
 .game-hero-photo,
 .game-hero-veil {
  height: clamp(10.5rem, 52vw, 14rem);
 }

 .game-hero-copy h1 {
  font-size: clamp(1.95rem, 10.5vw, 2.45rem);
 }

 .game-hero-actions .btn-secondary {
  /* Keep primary Waitlist/Book dominant; secondary quieter */
  background: transparent;
 }
}

@media (prefers-reduced-motion: reduce) {
 .game-hero-photo {
 transform: none;
 }

 .price-card,
 .price-card--highlight {
 transition: none;
 transform: none;
 }
}

/* Quieter tags elsewhere; keep function, lose pill parade */
.game-page-stats {
 display: none;
}

.tag {
 border-radius: 6px;
}

.section-header {
 text-align: center;
}
.section-title {
 text-align: center;
}

.eyebrow {
 letter-spacing: 0.14em;
}

/* ============================================================
 SITEFIX2. undo left-tight SITEFIX1; restore centered heroes
 ============================================================ */

.page-hero {
 text-align: center;
 padding: 2.75rem 0 1.75rem;
}

.page-hero .eyebrow {
 justify-content: center;
 margin-bottom: 0.55rem;
}

.page-hero .eyebrow::before,
.page-hero .eyebrow::after {
 display: inline-block;
}

.page-hero h1 {
 font-family: "Bebas Neue", "Impact", sans-serif;
 font-size: clamp(2.6rem, 6vw, 3.8rem);
 font-weight: 400;
 letter-spacing: 0.03em;
 line-height: 0.95;
 text-transform: uppercase;
 margin: 0 0 0.7rem;
}

.page-hero p,
.page-hero .page-hero-lead {
 margin-left: auto;
 margin-right: auto;
 max-width: 36rem;
 color: rgba(247, 243, 235, 0.78);
 font-family: "Barlow", "Avenir Next", "Segoe UI", sans-serif;
 font-size: 1.08rem;
 font-weight: 500;
 line-height: 1.55;
 text-align: center;
}

.page-hero strong {
 color: var(--accent-bright);
 font-weight: 700;
}

.section-header {
 text-align: center;
}

.section-header .eyebrow {
 justify-content: center;
}

.section-header .eyebrow::before,
.section-header .eyebrow::after {
 display: inline-block;
}

.section-title {
 text-align: center;
}

/* Groups: restore centered hero */
.groups-page-hero {
 text-align: center;
 padding: 2.75rem 0 1.75rem;
}

.groups-hero-bar,
.groups-hero-main {
 align-items: center;
 text-align: center;
}

.groups-page-hero .eyebrow {
 justify-content: center;
}

.groups-page-hero .eyebrow::before,
.groups-page-hero .eyebrow::after {
 display: inline-block;
}

.groups-page-hero .groups-hero-lead,
.groups-page-hero p {
 margin-left: auto;
 margin-right: auto;
 max-width: 36rem;
 text-align: center;
}

/* Book: keep punchy copy + framed panel, but centered */
.book-page-section {
 padding-top: 0;
 padding-bottom: 3rem;
}

.book-page-header {
 padding-top: 2.5rem;
 padding-bottom: 1.25rem;
 margin-bottom: 0;
 text-align: center;
}

.book-page-header h1 {
 font-family: "Bebas Neue", "Impact", sans-serif;
 font-size: clamp(2.6rem, 6vw, 3.8rem);
 font-weight: 400;
 letter-spacing: 0.03em;
 line-height: 0.95;
 text-transform: uppercase;
 margin: 0 0 0.7rem;
}

.book-page-lead {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 align-items: center;
 gap: 0.35rem 0.55rem;
 max-width: 36rem;
 margin: 0 auto;
 text-align: center;
 color: rgba(247, 243, 235, 0.78);
 font-size: 1.05rem;
 line-height: 1.5;
}

.book-page-lead a {
 color: var(--accent-bright);
 font-weight: 700;
 text-decoration: none;
 border-bottom: 1px solid rgba(168, 224, 83, 0.35);
}

.book-page-lead a:hover,
.book-page-lead a:focus-visible {
 border-bottom-color: var(--accent-bright);
 outline: none;
}

.book-page-lead span[aria-hidden] {
 color: rgba(247, 243, 235, 0.35);
}

.booking-panel {
 margin-top: 1rem;
 max-width: 920px;
 margin-left: auto;
 margin-right: auto;
 border-radius: 14px;
 border: 1px solid rgba(255, 255, 255, 0.1);
 background:
 linear-gradient(180deg, rgba(26, 32, 43, 0.95) 0%, rgba(18, 21, 28, 0.98) 100%);
 box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
 overflow: hidden;
}

.booking-panel-label {
 margin: 0;
 padding: 0.85rem 1.15rem;
 font-family: "Barlow", "Avenir Next", "Segoe UI", sans-serif;
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 color: rgba(247, 243, 235, 0.55);
 border-bottom: 1px solid rgba(255, 255, 255, 0.08);
 background: rgba(0, 0, 0, 0.25);
 text-align: center;
}

.booking-panel #otcContainer {
 min-height: 0;
 background: transparent;
}

.booking-panel iframe,
.booking-embed-iframe {
 background: transparent;
 min-height: 0;
}

.booking-fallback {
 margin-top: 1.15rem;
 max-width: 920px;
 margin-left: auto;
 margin-right: auto;
 text-align: center;
}

.book-page-foot {
 text-align: center;
}

/* Prices cards: keep compact, not edge-stretched */
.price-cards-grid {
 max-width: 920px;
 margin-left: auto;
 margin-right: auto;
 gap: 0.85rem;
 margin-bottom: 1.5rem;
}

.prices-book-band {
 max-width: 920px;
 margin-left: auto;
 margin-right: auto;
 justify-content: center;
}

.prices-band-sep {
 color: rgba(247, 243, 235, 0.35);
 font-weight: 600;
}

.prices-notes {
 display: none;
}

@media (max-width: 600px) {
 .book-page-lead {
 flex-direction: column;
 gap: 0.45rem;
 }

 .book-page-lead span[aria-hidden] {
 display: none;
 }
}


/* ============================================================
 FOOTER4. editorial three columns, map fills height
 ============================================================ */

.site-footer--home {
 padding: 2.75rem 0 1.5rem;
 border-top: 1px solid rgba(255, 255, 255, 0.08);
 background: #07080b;
}

.site-footer--home > .wrap {
 max-width: var(--max);
 margin-left: auto;
 margin-right: auto;
 padding-left: 1.25rem;
 padding-right: 1.25rem;
}

.footer-find {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 0;
 align-items: stretch;
 padding: 0 0 2rem;
}

.footer-find-contact,
.footer-find-hours,
.footer-find-map {
 display: flex;
 flex-direction: column;
 min-height: 16.5rem;
 padding: 0 1.6rem;
}

.footer-find-contact {
 padding-left: 0;
}

.footer-find-map {
 padding-right: 0;
}

.footer-find-hours,
.footer-find-map {
 border-left: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-find-label {
 margin: 0 0 1rem;
 font-size: 0.7rem;
 font-weight: 700;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 color: rgba(247, 243, 235, 0.45);
}

.footer-find-phone {
 display: block;
 margin: 0 0 0.35rem;
 color: #fff;
 font-family: "Bebas Neue", "Impact", sans-serif;
 font-size: clamp(1.7rem, 2.8vw, 2.1rem);
 letter-spacing: 0.03em;
 line-height: 1;
 text-decoration: none;
}

.footer-find-phone:hover,
.footer-find-phone:focus-visible {
 color: var(--accent-bright);
 outline: none;
}

.footer-find-email {
 display: block;
 margin: 0 0 1rem;
 color: rgba(247, 243, 235, 0.7);
 font-size: 0.92rem;
 font-weight: 500;
 text-decoration: none;
 word-break: break-word;
}

.footer-find-email:hover,
.footer-find-email:focus-visible {
 color: #fff;
 outline: none;
}

.footer-find-address {
 margin: 0;
 font-style: normal;
 font-size: 0.92rem;
 font-weight: 600;
 line-height: 1.45;
 color: rgba(247, 243, 235, 0.88);
}

.footer-find-note {
 margin: 0.55rem 0 0.9rem;
 font-size: 0.8rem;
 line-height: 1.4;
 color: rgba(247, 243, 235, 0.48);
}

.footer-find-note a {
 color: rgba(247, 243, 235, 0.72);
 text-decoration: underline;
 text-underline-offset: 2px;
}

.footer-find-note a:hover {
 color: var(--accent-bright);
}

.footer-find-directions {
 display: inline-flex;
 align-items: center;
 gap: 0.35rem;
 margin-top: auto;
 color: var(--accent-bright);
 font-size: 0.9rem;
 font-weight: 700;
 text-decoration: none;
}

.footer-find-directions::after {
 content: "→";
 transition: transform 0.2s ease;
}

.footer-find-directions:hover,
.footer-find-directions:focus-visible {
 color: #fff;
 outline: none;
}

.footer-find-directions:hover::after,
.footer-find-directions:focus-visible::after {
 transform: translateX(3px);
}

.footer-find-hours .footer-hours-list {
 margin: 0;
}

.footer-find-hours .footer-hours-row {
 display: grid;
 grid-template-columns: 4.75rem minmax(0, 1fr);
 gap: 0.65rem;
 align-items: baseline;
 padding: 0.42rem 0;
 border-bottom: none;
 font-size: 0.92rem;
}

.footer-find-hours .footer-hours-row:first-of-type {
 padding-top: 0;
}

.footer-find-hours .footer-hours-row dt {
 margin: 0;
 color: rgba(247, 243, 235, 0.5);
 font-weight: 500;
}

.footer-find-hours .footer-hours-row dd {
 margin: 0;
 color: rgba(247, 243, 235, 0.92);
 font-weight: 600;
 text-align: right;
}

.footer-find-hours .footer-hours-note {
 margin: 0 0 0.85rem;
 padding-top: 0;
 font-size: 0.78rem;
 font-weight: 600;
 line-height: 1.4;
 color: var(--accent-bright);
 max-width: 18rem;
}

.footer-find-map {
 /* no label. map is the visual */
 min-width: 0;
}

.footer-find-map .footer-map {
 position: relative;
 z-index: 0;
 isolation: isolate;
 flex: 0 0 auto;
 width: 100%;
 height: 14rem;
 min-height: 14rem;
 max-height: 14rem;
 margin: 0;
 overflow: hidden;
 border-radius: 10px;
 border: 1px solid rgba(255, 255, 255, 0.1);
 background: #151a22;
 transform: translateZ(0);
}

.footer-map-canvas,
.footer-map .leaflet-container {
 position: absolute !important;
 inset: 0;
 width: 100% !important;
 height: 100% !important;
 min-height: 0 !important;
 max-height: none !important;
 background: #151a22;
}

.footer-map .leaflet-container {
 font: inherit;
}

.footer-map .leaflet-tile-pane {
 filter: brightness(1.2) contrast(1.06) saturate(0.9);
}

.footer-map .leaflet-control-attribution {
 background: rgba(20, 24, 30, 0.62);
 color: rgba(255, 255, 255, 0.66);
 font-size: 0.55rem;
 border: 0;
}

.footer-map .leaflet-control-attribution a {
 color: rgba(255, 255, 255, 0.8);
}

.footer-map .leaflet-bar a {
 width: 26px;
 height: 26px;
 line-height: 26px;
 background: #151922;
 color: #f7f3eb;
 border-bottom-color: rgba(255, 255, 255, 0.1);
}

.footer-map .leaflet-bar a:hover {
 background: #1e2633;
 color: var(--accent-bright);
}

.find-map-pin {
 background: transparent;
 border: 0;
}

.footer-map .leaflet-popup-content-wrapper {
 background: #151922;
 color: #f7f3eb;
 border-radius: 6px;
 box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
}

.footer-map .leaflet-popup-tip {
 background: #151922;
}

.footer-map .leaflet-popup-content {
 margin: 0.65rem 0.8rem;
 font-size: 0.88rem;
 line-height: 1.4;
}

.footer-home-bar {
 border-top: 1px solid rgba(255, 255, 255, 0.08);
 padding-top: 1.2rem;
}

.footer-visit {
 display: none;
}

@media (max-width: 900px) {
 .footer-find {
 grid-template-columns: 1fr 1fr;
 gap: 1.5rem 0;
 }

 .footer-find-contact,
 .footer-find-hours,
 .footer-find-map {
 padding: 0 1rem;
 min-height: 0;
 }

 .footer-find-contact {
 padding-left: 0;
 }

 .footer-find-hours {
 padding-right: 0;
 border-left: 1px solid rgba(255, 255, 255, 0.1);
 }

 .footer-find-map {
 grid-column: 1 / -1;
 padding: 1.25rem 0 0;
 border-left: none;
 border-top: 1px solid rgba(255, 255, 255, 0.1);
 }

 .footer-find-map .footer-map {
 height: 13rem;
 min-height: 13rem;
 max-height: 13rem;
 }
}

@media (max-width: 600px) {
 .site-footer--home {
 padding-top: 1.35rem;
 }

 .footer-find {
 grid-template-columns: 1fr;
 gap: 1.15rem;
 }

 .footer-find-contact,
 .footer-find-hours,
 .footer-find-map {
 padding: 0;
 border-left: none;
 }

 .footer-find-hours,
 .footer-find-map {
 padding-top: 1.1rem;
 border-top: 1px solid rgba(255, 255, 255, 0.1);
 }

 .footer-find-map {
 grid-column: auto;
 }

 .footer-find-phone {
 font-size: clamp(1.45rem, 7vw, 1.85rem);
 }

 .footer-home-bar {
 padding-top: 1rem;
 gap: 0.85rem;
 }

 .footer-home-nav {
 gap: 0.35rem 0.85rem;
 }

 .footer-find-map .footer-map {
 height: 12rem;
 min-height: 12rem;
 max-height: 12rem;
 }
}




/* ============================================================
 GROUPS PAGE. energetic team-building hero
 ============================================================ */

body.groups-page {
 background: var(--bg-deep, #161a22);
}

body.groups-page .groups-hero {
 position: relative;
 display: flex;
 flex-direction: column;
 justify-content: center;
 align-items: center;
 min-height: clamp(15rem, 34svh, 22rem);
 overflow: hidden;
 border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

body.groups-page .groups-hero-photo {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: 62% 28%;
 display: block;
 filter: saturate(1.05) contrast(1.02) brightness(1.14);
 transform: scale(1.05);
 animation: groupsHeroDrift 24s ease-in-out infinite alternate;
}

@keyframes groupsHeroDrift {
 from { transform: scale(1.05) translate3d(0, 0, 0); }
 to { transform: scale(1.1) translate3d(-1.1%, -0.5%, 0); }
}

body.groups-page .groups-hero-veil {
 position: absolute;
 inset: 0;
 z-index: 1;
 pointer-events: none;
 background:
 linear-gradient(180deg, rgba(22, 26, 34, 0.22) 0%, rgba(22, 26, 34, 0.18) 42%, rgba(22, 26, 34, 0.58) 100%),
 linear-gradient(90deg, rgba(22, 26, 34, 0.22) 0%, rgba(22, 26, 34, 0.1) 50%, rgba(22, 26, 34, 0.22) 100%);
}

body.groups-page .groups-hero-copy {
 position: relative;
 z-index: 2;
 width: 100%;
 max-width: var(--max);
 margin-inline: auto;
 padding: 2rem 1.25rem 2rem;
 text-align: center;
 display: flex;
 flex-direction: column;
 align-items: center;
 box-sizing: border-box;
}

body.groups-page .groups-hero-kicker {
 margin: 0 auto 0.5rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

body.groups-page .groups-hero h1 {
 margin: 0 auto;
 font-family: var(--font-display);
 font-size: var(--text-h1-hero);
 font-weight: 400;
 letter-spacing: var(--letter-display);
 line-height: 0.92;
 text-transform: uppercase;
 color: var(--text);
 text-shadow: 0 14px 40px rgba(0, 0, 0, 0.55);
 text-align: center;
}

body.groups-page .groups-hero-accent {
 color: var(--accent-bright);
}

body.groups-page .groups-hero-accent::before {
 content: "\00a0";
}

body.groups-page .groups-hero-lead {
 margin: 0.85rem auto 0;
 max-width: 36ch;
 font-family: var(--font-body);
 font-size: var(--text-lead);
 font-weight: 500;
 line-height: 1.45;
 color: rgba(242, 238, 230, 0.82);
 text-align: center;
}

body.groups-page .groups-hero-types {
 margin: 1.35rem auto 0;
 max-width: 40rem;
 width: 100%;
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 align-items: center;
 gap: 0.45rem 0.55rem;
 color: inherit;
 font-size: inherit;
 line-height: 1;
 letter-spacing: normal;
 text-align: center;
}

body.groups-page .groups-hero-types span {
 display: inline-flex;
 align-items: center;
 padding: 0.32rem 0.55rem;
 border: 1px solid rgba(141, 198, 63, 0.4);
 border-radius: 2px;
 background: rgba(7, 10, 14, 0.45);
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.68rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: rgba(242, 238, 230, 0.88);
}

body.groups-page .groups-hero-cta {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.85rem 1.15rem;
}

body.groups-page .groups-hero-cta .btn-primary {
 display: inline-flex;
 align-items: center;
 gap: 0.45rem;
 min-height: 3.15rem;
 padding-left: 1.4rem;
 padding-right: 1.4rem;
}

body.groups-page .groups-hero-link {
 color: var(--accent-bright);
 font-size: 0.9rem;
 font-weight: 700;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 text-decoration: none;
 border-bottom: 1px solid rgba(141, 198, 63, 0.35);
 transition: color 0.2s ease, border-color 0.2s ease;
}

body.groups-page .groups-hero-link:hover,
body.groups-page .groups-hero-link:focus-visible {
 color: #c6f06a;
 border-bottom-color: rgba(198, 240, 106, 0.7);
 outline: none;
}

body.groups-page .groups-page-body {
 padding-top: 2rem;
 padding-bottom: 3.25rem;
 background:
  radial-gradient(ellipse 80% 50% at 50% 0%, rgba(141, 198, 63, 0.06), transparent 55%),
  var(--bg-deep, #161a22);
}

body.groups-page .groups-flow {
 padding-inline: 1.25rem;
 max-width: 58rem;
 width: 100%;
 margin-inline: auto;
 box-sizing: border-box;
}

body.groups-page .groups-intro {
 margin: 0 0 1.5rem;
 padding: 1.4rem 1.45rem 1.5rem;
 display: grid;
 grid-template-columns: 1fr;
 gap: 1rem 1.5rem;
 align-items: center;
 background:
  radial-gradient(ellipse 90% 120% at 0% 50%, rgba(141, 198, 63, 0.14), transparent 55%),
  var(--bg-panel, #1e2430);
 border: 1px solid rgba(168, 224, 83, 0.2);
 border-left: 3px solid var(--accent-bright, #a8e053);
 text-align: left;
}

body.groups-page .groups-intro-stat {
 margin: 0;
 font-family: var(--font-display);
 font-size: clamp(3rem, 6vw, 4.2rem);
 font-weight: 400;
 letter-spacing: 0.04em;
 line-height: 0.9;
 color: var(--accent-bright);
 text-align: left;
}

body.groups-page .groups-intro-copy {
 min-width: 0;
 width: auto;
 max-width: none;
 text-align: left;
}

body.groups-page .groups-intro h2 {
 margin: 0 0 0.4rem;
 font-family: var(--font-display);
 font-size: var(--text-card-title);
 font-weight: 400;
 letter-spacing: var(--letter-display);
 text-transform: uppercase;
 color: var(--text);
 text-align: left;
}

body.groups-page .groups-intro-copy > p {
 margin: 0;
 max-width: 42rem;
 font-size: var(--text-body);
 line-height: 1.5;
 color: var(--text-muted);
 text-align: left;
}

body.groups-page .groups-intro-actions {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: flex-start;
 gap: 0.75rem 1rem;
 margin: 0;
}

body.groups-page .groups-intro-actions a:not(.btn) {
 color: var(--accent-bright);
 font-weight: 700;
 text-decoration: none;
 border-bottom: 1px solid rgba(168, 224, 83, 0.4);
}

body.groups-page .groups-intro-actions a:not(.btn):hover {
 color: #c6f06a;
 border-bottom-color: rgba(198, 240, 106, 0.75);
}

@media (min-width: 820px) {
 body.groups-page .groups-intro {
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1.25rem 1.75rem;
  padding: 1.55rem 1.6rem;
 }
}

body.groups-page .groups-grid {
 display: grid;
 grid-template-columns: 1fr;
 gap: 0.85rem;
}

body.groups-page .groups-tile {
 margin: 0;
 padding: 1.35rem 1.35rem 1.4rem 1.3rem;
 border: 1px solid rgba(255, 255, 255, 0.08);
 border-left: 3px solid rgba(141, 198, 63, 0.55);
 border-radius: 0;
 background:
  linear-gradient(155deg, rgba(255, 255, 255, 0.045) 0%, rgba(255, 255, 255, 0.015) 55%, transparent 100%),
  rgba(30, 36, 48, 0.55);
 box-shadow: none;
 display: flex;
 flex-direction: column;
 align-items: stretch;
 gap: 0.65rem;
 min-height: 100%;
 text-align: left;
 transition: background 0.22s ease, border-color 0.22s ease;
}

body.groups-page .groups-tile:hover {
 background:
  linear-gradient(155deg, rgba(141, 198, 63, 0.1) 0%, rgba(255, 255, 255, 0.03) 50%, transparent 100%),
  rgba(30, 36, 48, 0.72);
 border-color: rgba(168, 224, 83, 0.28);
 border-left-color: var(--accent-bright, #a8e053);
 transform: none;
}

body.groups-page .groups-tile h3 {
 margin: 0;
 font-family: var(--font-display);
 font-size: var(--text-card-title);
 font-weight: 400;
 letter-spacing: var(--letter-display);
 line-height: 1;
 text-transform: uppercase;
 color: var(--text);
}

body.groups-page .groups-tile p {
 margin: 0;
 flex: 1;
 max-width: 36rem;
 font-size: var(--text-body);
 line-height: 1.55;
 color: rgba(242, 238, 230, 0.72);
}

body.groups-page .groups-tile p strong {
 color: var(--text);
}

body.groups-page .groups-tile > a {
 align-self: flex-start;
 margin-top: auto;
 padding-top: 0.35rem;
 color: var(--accent-bright);
 font-weight: 700;
 font-size: 0.92rem;
 text-decoration: none;
 border-bottom: 1px solid rgba(168, 224, 83, 0.45);
 transition: color 0.2s ease, border-color 0.2s ease;
}

body.groups-page .groups-tile > a:hover,
body.groups-page .groups-tile > a:focus-visible {
 color: #c6f06a;
 border-bottom-color: rgba(198, 240, 106, 0.8);
}

body.groups-page .groups-tile--festive {
 background:
  linear-gradient(155deg, rgba(232, 69, 64, 0.12) 0%, rgba(255, 255, 255, 0.02) 55%, transparent 100%),
  rgba(30, 36, 48, 0.55);
 border-color: rgba(232, 69, 64, 0.22);
 border-left-color: #e84540;
}

body.groups-page .groups-tile--festive:hover {
 background:
  linear-gradient(155deg, rgba(232, 69, 64, 0.16) 0%, rgba(255, 255, 255, 0.03) 55%, transparent 100%),
  rgba(30, 36, 48, 0.72);
 border-color: rgba(232, 69, 64, 0.35);
 border-left-color: #ff6b66;
}

body.groups-page .groups-tile--festive h3 {
 color: #f2c4c1;
}

body.groups-page .groups-tile--festive > a {
 color: #e84540;
 border-bottom-color: rgba(232, 69, 64, 0.45);
}

body.groups-page .groups-tile--festive > a:hover {
 color: #ff6b66;
 border-bottom-color: rgba(255, 107, 102, 0.7);
}

body.groups-page .groups-close {
 margin: 1.75rem 0 0;
 padding: 1.2rem 1.35rem;
 max-width: none;
 font-size: 0.98rem;
 line-height: 1.5;
 color: var(--text-muted);
 text-align: left;
 background: rgba(255, 255, 255, 0.025);
 border: 1px solid rgba(255, 255, 255, 0.08);
 border-left: 3px solid rgba(141, 198, 63, 0.35);
}

body.groups-page .groups-close a,
body.groups-page .groups-card-link {
 color: var(--accent-bright);
 font-weight: 700;
 text-decoration: none;
 border-bottom: 1px solid rgba(168, 224, 83, 0.35);
}

body.groups-page .groups-close a:hover,
body.groups-page .groups-card-link:hover {
 color: #c6f06a;
 border-bottom-color: rgba(198, 240, 106, 0.7);
}

body.groups-page .groups-hero-lead {
 margin: 0 auto 0.85rem;
 max-width: 28rem;
 font-family: var(--font-body);
 font-size: 1.05rem;
 font-weight: 500;
 line-height: 1.4;
 color: rgba(242, 238, 230, 0.82);
}

body.groups-page .groups-hero-cta {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.85rem 1.25rem;
}

@media (min-width: 720px) {
 body.groups-page .groups-grid {
  grid-template-columns: 1fr 1fr;
  gap: 0.9rem 0.95rem;
 }
}

@media (max-width: 700px) {
 body.groups-page .groups-hero {
  min-height: clamp(14rem, 32svh, 20rem);
 }

 body.groups-page .groups-hero h1 {
  font-size: clamp(2.35rem, 12vw, 3.1rem);
  line-height: 0.98;
 }

 body.groups-page .groups-hero-accent {
  display: block;
 }

 body.groups-page .groups-hero-accent::before {
  content: none;
 }

 body.groups-page .groups-hero-photo {
  object-position: 70% 22%;
 }

 body.groups-page .groups-hero-veil {
  background:
   linear-gradient(180deg, rgba(7, 9, 13, 0.35) 0%, rgba(7, 9, 13, 0.28) 45%, rgba(7, 9, 13, 0.8) 100%),
   linear-gradient(90deg, rgba(7, 9, 13, 0.3) 0%, rgba(7, 9, 13, 0.14) 50%, rgba(7, 9, 13, 0.3) 100%);
 }
}

@media (prefers-reduced-motion: reduce) {
 body.groups-page .groups-hero-photo {
  animation: none;
  transform: scale(1.04);
 }

 body.groups-page .groups-tile:hover {
  transform: none;
 }
}

/* ============================================================
 GIFT VOUCHERS PAGE. tongue-in-cheek hero
 ============================================================ */

body.page-gift-vouchers {
 background: var(--bg-deep, #161a22);
}

body.page-gift-vouchers .gift-hero {
 position: relative;
 display: flex;
 flex-direction: column;
 justify-content: center;
 align-items: center;
 min-height: clamp(16rem, 40svh, 24rem);
 overflow: hidden;
 border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

body.page-gift-vouchers .gift-hero-photo {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: 58% 48%;
 display: block;
 filter: saturate(1.04) contrast(1.02) brightness(1.14);
 transform: scale(1.05);
 animation: giftHeroDrift 24s ease-in-out infinite alternate;
}

@keyframes giftHeroDrift {
 from { transform: scale(1.05) translate3d(0, 0, 0); }
 to { transform: scale(1.1) translate3d(-1.2%, -0.6%, 0); }
}

body.page-gift-vouchers .gift-hero-veil {
 position: absolute;
 inset: 0;
 z-index: 1;
 pointer-events: none;
 background:
 linear-gradient(180deg, rgba(22, 26, 34, 0.22) 0%, rgba(22, 26, 34, 0.16) 42%, rgba(22, 26, 34, 0.58) 100%),
 linear-gradient(90deg, rgba(22, 26, 34, 0.2) 0%, rgba(22, 26, 34, 0.08) 50%, rgba(22, 26, 34, 0.2) 100%);
}

body.page-gift-vouchers .gift-hero-copy {
 position: relative;
 z-index: 2;
 width: 100%;
 max-width: var(--max);
 margin-inline: auto;
 padding: 2rem 1.25rem 1.75rem;
 text-align: center;
 box-sizing: border-box;
}

body.page-gift-vouchers .gift-hero h1 {
 margin: 0 auto 1.15rem;
 font-family: var(--font-display);
 font-size: var(--text-h1-hero);
 font-weight: 400;
 letter-spacing: var(--letter-display);
 line-height: 0.92;
 text-transform: uppercase;
 color: var(--text);
 text-shadow: 0 14px 40px rgba(0, 0, 0, 0.55);
}

body.page-gift-vouchers .gift-hero-accent {
 color: var(--accent-bright);
}

body.page-gift-vouchers .gift-hero-lead {
 margin: 0 auto 1.25rem;
 max-width: 28ch;
 font-family: var(--font-body);
 font-size: var(--text-lead);
 font-weight: 500;
 line-height: 1.4;
 color: rgba(242, 238, 230, 0.88);
}

body.page-gift-vouchers .gift-hero-actions {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.85rem 1.25rem;
}

body.page-gift-vouchers .gift-hero-actions .btn {
 display: inline-flex;
 align-items: center;
 gap: 0.45rem;
 min-height: 3.1rem;
 padding-left: 1.4rem;
 padding-right: 1.4rem;
}

body.page-gift-vouchers .gift-hero-link {
 color: var(--accent-bright);
 font-size: 0.9rem;
 font-weight: 700;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 text-decoration: none;
 border-bottom: 1px solid rgba(141, 198, 63, 0.35);
}

body.page-gift-vouchers .gift-hero-link:hover,
body.page-gift-vouchers .gift-hero-link:focus-visible {
 color: #c6f06a;
 border-bottom-color: rgba(198, 240, 106, 0.7);
 outline: none;
}

body.page-gift-vouchers .gift-page-body {
 padding-top: 2.25rem;
 padding-bottom: 3.25rem;
 background:
  radial-gradient(ellipse 80% 50% at 50% 0%, rgba(141, 198, 63, 0.06), transparent 55%),
  var(--bg-deep, #161a22);
}

body.page-gift-vouchers .gift-flow {
 padding-inline: 1.25rem;
 max-width: 56rem;
 width: 100%;
 margin-inline: auto;
 box-sizing: border-box;
 display: flex;
 flex-direction: column;
 gap: 2.25rem;
}

body.page-gift-vouchers .gift-pitch {
 text-align: center;
 width: 100%;
}

body.page-gift-vouchers .gift-pitch h2 {
 margin: 0 auto 0.75rem;
 max-width: none;
 width: 100%;
 font-family: var(--font-display);
 font-size: var(--text-section);
 font-weight: 400;
 letter-spacing: var(--letter-display);
 line-height: 0.95;
 text-transform: uppercase;
 color: var(--text);
}

body.page-gift-vouchers .gift-pitch p {
 margin: 0 auto;
 max-width: none;
 width: 100%;
 font-size: var(--text-body);
 line-height: 1.55;
 color: var(--text-muted);
}

body.page-gift-vouchers .gift-steps {
 list-style: none;
 margin: 0;
 padding: 1.75rem 0 0;
 display: grid;
 grid-template-columns: 1fr;
 gap: 1.35rem;
 width: 100%;
 border-top: 1px solid rgba(255, 255, 255, 0.1);
}

body.page-gift-vouchers .gift-step {
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 0.55rem;
 margin: 0;
 padding: 0;
 text-align: center;
}

body.page-gift-vouchers .gift-step-num {
 flex: 0 0 auto;
 font-family: var(--font-display);
 font-size: var(--text-section);
 letter-spacing: var(--letter-display);
 line-height: 0.9;
 color: var(--accent-bright);
}

body.page-gift-vouchers .gift-step div {
 display: grid;
 gap: 0.35rem;
 justify-items: center;
 max-width: 18rem;
}

body.page-gift-vouchers .gift-step strong {
 font-family: var(--font-display);
 font-size: var(--text-card-title);
 font-weight: 400;
 letter-spacing: var(--letter-display);
 text-transform: uppercase;
 color: var(--text);
}

body.page-gift-vouchers .gift-step span {
 font-size: var(--text-body);
 line-height: 1.45;
 color: var(--text-muted);
}

body.page-gift-vouchers .gift-cta-row {
 margin: 0;
 text-align: center;
}

body.page-gift-vouchers .gift-cta-row .btn {
 display: inline-flex;
 align-items: center;
 min-height: 3rem;
 padding-left: 1.35rem;
 padding-right: 1.35rem;
}

body.page-gift-vouchers .gift-redeem {
 padding-top: 1.75rem;
 border-top: 1px solid rgba(255, 255, 255, 0.08);
 text-align: center;
 width: 100%;
}

body.page-gift-vouchers .gift-redeem h2 {
 margin: 0 0 0.5rem;
 font-family: var(--font-display);
 font-size: var(--text-card-title);
 font-weight: 400;
 letter-spacing: var(--letter-display);
 text-transform: uppercase;
 color: var(--text);
}

body.page-gift-vouchers .gift-redeem p {
 margin: 0 auto;
 max-width: none;
 width: 100%;
 font-size: var(--text-body);
 line-height: 1.5;
 color: var(--text-muted);
}

body.page-gift-vouchers .gift-redeem-phone {
 margin-top: 0.65rem !important;
}

body.page-gift-vouchers .gift-redeem a {
 color: var(--accent-bright);
 font-weight: 700;
 text-decoration: none;
 border-bottom: 1px solid rgba(168, 224, 83, 0.4);
}

body.page-gift-vouchers .gift-redeem a:hover {
 color: #c6f06a;
 border-bottom-color: rgba(198, 240, 106, 0.75);
}

@media (min-width: 760px) {
 body.page-gift-vouchers .gift-steps {
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem 2rem;
 }

 body.page-gift-vouchers .gift-step {
  align-items: center;
 }

 body.page-gift-vouchers .gift-step div {
  max-width: none;
  width: 100%;
 }
}

@media (max-width: 700px) {
 body.page-gift-vouchers .gift-hero {
  min-height: clamp(15rem, 36svh, 21rem);
 }

 body.page-gift-vouchers .gift-hero-photo {
  object-position: 62% 42%;
 }

 body.page-gift-vouchers .gift-hero-actions {
  flex-direction: column;
  width: 100%;
 }

 body.page-gift-vouchers .gift-hero-actions .btn {
  width: 100%;
  justify-content: center;
 }
}

@media (prefers-reduced-motion: reduce) {
 body.page-gift-vouchers .gift-hero-photo {
  animation: none;
  transform: scale(1.04);
 }
}

/* ============================================================
 OFFERS PAGE. cinematic hero + sharper deal cards
 ============================================================ */

body.page-offers {
 background: var(--bg-deep, #161a22);
}

body.page-offers .offers-hero {
 position: relative;
 display: flex;
 flex-direction: column;
 justify-content: center;
 align-items: center;
 min-height: clamp(16rem, 38svh, 24rem);
 overflow: hidden;
 border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

body.page-offers .offers-hero-collage {
 position: absolute;
 inset: 0;
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 0;
 z-index: 0;
}

body.page-offers .offers-hero-collage img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
 filter: saturate(1.05) contrast(1.02) brightness(1.14);
 transform: scale(1.05);
 animation: offersHeroDrift 22s ease-in-out infinite alternate;
}

body.page-offers .offers-hero-collage img:nth-child(1) { object-position: 48% 40%; animation-duration: 24s; }
body.page-offers .offers-hero-collage img:nth-child(2) { object-position: 50% 45%; animation-duration: 18s; animation-delay: -5s; }
body.page-offers .offers-hero-collage img:nth-child(3) { object-position: 55% 38%; animation-duration: 26s; animation-delay: -9s; }

@keyframes offersHeroDrift {
 from { transform: scale(1.04) translate3d(0, 0, 0); }
 to { transform: scale(1.1) translate3d(-1%, -0.5%, 0); }
}

body.page-offers .offers-hero-veil {
 position: absolute;
 inset: 0;
 z-index: 1;
 pointer-events: none;
 background:
 linear-gradient(180deg, rgba(22, 26, 34, 0.22) 0%, rgba(22, 26, 34, 0.18) 40%, rgba(22, 26, 34, 0.58) 100%),
 linear-gradient(90deg, rgba(22, 26, 34, 0.22) 0%, rgba(22, 26, 34, 0.1) 50%, rgba(22, 26, 34, 0.22) 100%);
}

body.page-offers .offers-hero-copy {
 position: relative;
 z-index: 2;
 width: 100%;
 max-width: var(--max);
 margin-inline: auto;
 padding-top: 2.5rem;
 padding-bottom: clamp(1.6rem, 3.5vw, 2.5rem);
 text-align: center;
}

body.page-offers .offers-hero h1 {
 margin: 0 auto;
 width: 100%;
 font-family: var(--font-display);
 font-size: var(--text-h1-hero);
 font-weight: 400;
 letter-spacing: var(--letter-display);
 line-height: 0.92;
 text-transform: uppercase;
 text-align: center;
 color: var(--text);
 text-shadow: 0 14px 40px rgba(0, 0, 0, 0.55);
}

body.page-offers .offers-hero-accent {
 color: var(--accent-bright);
}

body.page-offers .offers-hero-lead {
 margin: 0 auto;
 max-width: 36ch;
 font-family: var(--font-body);
 font-size: var(--text-lead);
 font-weight: 500;
 line-height: 1.45;
 color: rgba(242, 238, 230, 0.82);
}

body.page-offers .offers-page-body {
 padding-top: 1.35rem;
 padding-bottom: 3rem;
 background:
 radial-gradient(ellipse 55% 28% at 8% 0%, rgba(141, 198, 63, 0.08), transparent 60%),
 var(--bg-deep, #161a22);
}

body.page-offers .offers-important {
 margin: 0 auto 1.75rem;
 padding: 0 0 1.15rem;
 max-width: 44rem;
 background: transparent;
 border: 0;
 border-bottom: 1px solid rgba(255, 255, 255, 0.08);
 border-radius: 0;
 box-shadow: none;
 position: static;
 overflow: visible;
}

body.page-offers .offers-important::before {
 display: none;
}

body.page-offers .offers-important-title {
 margin: 0 0 0.75rem;
 font-family: var(--font-display);
 font-size: var(--text-card-title);
 font-weight: 400;
 letter-spacing: var(--letter-display);
 text-transform: uppercase;
 color: var(--text);
 line-height: 1;
 text-align: left;
}

body.page-offers .offers-rules {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 0.85rem 1.25rem;
 border: 0;
}

body.page-offers .offers-rule {
 display: grid;
 grid-template-columns: auto minmax(0, 1fr);
 grid-template-rows: auto auto;
 column-gap: 0.55rem;
 row-gap: 0.2rem;
 align-items: start;
 padding: 0;
 border: 0;
 background: transparent;
}

body.page-offers .offers-rule-step {
 grid-row: 1 / span 2;
 margin: 0.1rem 0 0;
 font-family: var(--font-display);
 font-size: var(--text-subhead);
 letter-spacing: var(--letter-display);
 line-height: 1;
 color: var(--accent-bright);
}

body.page-offers .offers-rule strong {
 grid-column: 2;
 margin: 0;
 font-family: var(--font-display);
 font-size: var(--text-subhead);
 font-weight: 400;
 letter-spacing: var(--letter-display);
 text-transform: uppercase;
 color: var(--text);
 line-height: 1.2;
}

body.page-offers .offers-rule p {
 grid-column: 2;
 margin: 0;
 font-family: var(--font-body);
 font-size: var(--text-small);
 line-height: 1.4;
 color: var(--text-muted);
}

body.page-offers .offers-block-head {
 margin: 0 0 0.9rem;
 text-align: center;
}

body.page-offers .offers-block-head h2 {
 margin: 0 0 0.3rem;
 font-family: var(--font-display);
 font-size: var(--text-section);
 font-weight: 400;
 letter-spacing: var(--letter-display);
 text-transform: uppercase;
 color: var(--text);
 line-height: 1;
}

body.page-offers .offers-block-head p {
 margin: 0 auto;
 max-width: 36ch;
 font-family: var(--font-body);
 font-size: var(--text-body);
 color: var(--text-muted);
}

body.page-offers .offers-anytime .offers-block-head {
 margin-bottom: 0.75rem;
}

body.page-offers .offers-anytime {
 margin-bottom: 2.5rem;
}

body.page-offers .offers-week {
 margin-bottom: 0;
}

body.page-offers #offers-home {
 max-width: 44rem;
 margin-inline: auto;
}

body.page-offers .offers-board,
body.page-offers .offers-anytime-list {
 display: flex;
 flex-direction: column;
 border-top: 1px solid rgba(255, 255, 255, 0.1);
 max-width: none;
}

body.page-offers .offer-row {
 display: grid;
 grid-template-columns: 4.25rem minmax(0, 1fr);
 gap: 0.55rem 0.95rem;
 align-items: center;
 margin: 0;
 padding: 0.95rem 0.15rem 0.95rem 0.55rem;
 background: transparent;
 border: 0;
 border-bottom: 1px solid rgba(255, 255, 255, 0.08);
 border-radius: 0;
 border-left: 3px solid transparent;
 box-shadow: none;
 overflow: visible;
 position: relative;
 animation: offersRowIn 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
 transition: background 0.2s ease, border-color 0.2s ease;
}

body.page-offers .offer-row::before {
 display: none;
}

body.page-offers .offers-board .offer-row:nth-child(1) { animation-delay: 0.04s; }
body.page-offers .offers-board .offer-row:nth-child(2) { animation-delay: 0.09s; }
body.page-offers .offers-board .offer-row:nth-child(3) { animation-delay: 0.14s; }
body.page-offers .offers-board .offer-row:nth-child(4) { animation-delay: 0.19s; }
body.page-offers .offers-anytime-list .offer-row:nth-child(1) { animation-delay: 0.24s; }
body.page-offers .offers-anytime-list .offer-row:nth-child(2) { animation-delay: 0.29s; }
body.page-offers .offers-anytime-list .offer-row:nth-child(3) { animation-delay: 0.34s; }

@keyframes offersRowIn {
 from { opacity: 0; transform: translateY(10px); }
 to { opacity: 1; transform: translateY(0); }
}

body.page-offers .offer-row:hover {
 background: rgba(141, 198, 63, 0.04);
}

body.page-offers .offer-day {
 margin: 0;
 align-self: start;
 padding-top: 0.2rem;
}

body.page-offers .offer-day span {
 display: block;
 font-family: var(--font-display);
 font-size: clamp(1.4rem, 2.2vw, 1.7rem);
 font-weight: 400;
 letter-spacing: 0.06em;
 line-height: 1;
 text-transform: uppercase;
 color: rgba(242, 238, 230, 0.62);
}

body.page-offers .offer-body {
 display: grid;
 grid-template-columns: minmax(0, 1fr) auto;
 align-items: center;
 column-gap: 1rem;
 row-gap: 0.55rem;
 min-width: 0;
 width: 100%;
}

body.page-offers .offer-copy {
 min-width: 0;
 display: flex;
 flex-direction: column;
 gap: 0.15rem;
}

body.page-offers .offer-row h3 {
 margin: 0;
 font-family: var(--font-display);
 font-size: var(--text-card-title);
 font-weight: 400;
 letter-spacing: var(--letter-display);
 line-height: 1.05;
 text-transform: uppercase;
 color: var(--text);
}

body.page-offers .offer-main {
 margin: 0;
 font-family: var(--font-display);
 font-size: var(--text-subhead);
 font-weight: 400;
 letter-spacing: var(--letter-display);
 text-transform: uppercase;
 line-height: 1.15;
 color: var(--accent-bright);
}

body.page-offers .offer-detail {
 margin: 0.1rem 0 0;
 max-width: 38ch;
 font-family: var(--font-body);
 font-size: var(--text-small);
 line-height: 1.4;
 color: var(--text-muted);
}

body.page-offers .offer-detail strong {
 color: rgba(242, 238, 230, 0.9);
 font-weight: 700;
}

body.page-offers .offer-time {
 margin: 0.05rem 0 0;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.8rem;
 font-weight: 500;
 letter-spacing: 0.02em;
 color: rgba(242, 238, 230, 0.62);
}

body.page-offers .offer-actions {
 display: flex;
 flex-wrap: nowrap;
 align-items: center;
 justify-content: flex-end;
 gap: 0.5rem;
 margin: 0;
 padding: 0;
 min-width: 0;
}

body.page-offers .offer-code {
 display: inline-flex;
 align-items: center;
 justify-content: flex-start;
 gap: 0.4rem;
 margin: 0;
 padding: 0.42rem 0.6rem;
 border: 1px dashed rgba(141, 198, 63, 0.5);
 border-radius: 2px;
 background: transparent;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.76rem;
 letter-spacing: 0.05em;
 color: rgba(242, 238, 230, 0.78);
 cursor: pointer;
 box-sizing: border-box;
 transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

body.page-offers .offer-code:hover,
body.page-offers .offer-code:focus-visible {
 border-style: solid;
 border-color: rgba(168, 224, 83, 0.85);
 background: rgba(141, 198, 63, 0.1);
 outline: none;
}

body.page-offers .offer-code-label {
 color: rgba(242, 238, 230, 0.4);
 text-transform: uppercase;
 font-size: 0.64rem;
 letter-spacing: 0.12em;
 font-weight: 700;
}

body.page-offers .offer-code strong {
 color: var(--accent-bright);
 font-weight: 700;
 letter-spacing: 0.1em;
 text-transform: uppercase;
}

body.page-offers .offer-code-hint {
 margin-left: 0.1rem;
 padding-left: 0.4rem;
 border-left: 1px solid rgba(141, 198, 63, 0.25);
 color: var(--accent-bright);
 font-size: 0.64rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 text-transform: uppercase;
}

body.page-offers .offer-code.is-copied {
 border-style: solid;
 border-color: rgba(168, 224, 83, 0.9);
 background: rgba(141, 198, 63, 0.16);
}

body.page-offers .offer-code.is-copied .offer-code-hint {
 color: #c6f06a;
}

body.page-offers .offer-code--note {
 cursor: default;
 border-style: solid;
 border-color: rgba(255, 255, 255, 0.18);
 background: rgba(255, 255, 255, 0.04);
 color: rgba(242, 238, 230, 0.62);
 pointer-events: none;
}

body.page-offers .offer-code--note strong {
 color: rgba(242, 238, 230, 0.78);
 letter-spacing: 0.04em;
 text-transform: none;
 font-weight: 600;
}

/* Thursday detail row: keep code rail top-aligned */
body.page-offers .offer-row:has(.offer-detail) .offer-body {
 align-items: start;
}

body.page-offers .offer-row:has(.offer-detail) .offer-actions {
 padding-top: 0.1rem;
}

body.page-offers .offer-row.is-featured {
 border-left-color: var(--accent-bright);
 background: linear-gradient(90deg, rgba(141, 198, 63, 0.12), transparent 70%);
}

body.page-offers .offer-row.is-featured .offer-day span {
 color: var(--accent-bright);
}

body.page-offers .offer-row.is-featured .offer-day::after {
 content: "Today";
 display: block;
 margin-top: 0.35rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.62rem;
 font-weight: 700;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

body.page-offers .offer-row.is-featured h3::after {
 content: none;
}

body.page-offers .offer-row--compact {
 padding-top: 0.85rem;
 padding-bottom: 0.85rem;
}

body.page-offers .offer-row--anytime {
 grid-template-columns: minmax(0, 1fr);
 padding-left: 0.15rem;
}

body.page-offers .offer-row--compact .offer-day span {
 font-size: 1rem;
 letter-spacing: 0.08em;
 color: rgba(242, 238, 230, 0.38);
}

body.page-offers .offer-row--compact h3 {
 font-size: clamp(1.15rem, 1.6vw, 1.35rem);
}

body.page-offers .offer-row--compact .offer-main {
 font-size: 1rem;
}

@media (max-width: 820px) {
 body.page-offers .offers-important,
 body.page-offers #offers-home {
  max-width: none;
 }

 body.page-offers .offers-rules {
  grid-template-columns: 1fr;
  gap: 0.7rem;
 }
}

@media (max-width: 700px) {
 body.page-offers .offers-hero {
  min-height: clamp(14rem, 34svh, 20rem);
 }

 body.page-offers .offers-hero-veil {
  background:
   linear-gradient(180deg, rgba(22, 26, 34, 0.22) 0%, rgba(22, 26, 34, 0.18) 45%, rgba(22, 26, 34, 0.62) 100%),
   linear-gradient(90deg, rgba(22, 26, 34, 0.22) 0%, rgba(22, 26, 34, 0.1) 50%, rgba(22, 26, 34, 0.22) 100%);
 }

 body.page-offers .offer-row {
  grid-template-columns: 3.4rem minmax(0, 1fr);
  gap: 0.5rem 0.7rem;
  padding-left: 0.55rem;
 }

 body.page-offers .offer-row--anytime {
  grid-template-columns: minmax(0, 1fr);
  padding-left: 0.15rem;
 }

 body.page-offers .offer-day span {
  font-size: 1.25rem;
 }

 body.page-offers .offer-body {
  grid-template-columns: 1fr;
 }

 body.page-offers .offer-actions {
  justify-content: flex-start;
  min-width: 0;
  flex-wrap: wrap;
 }
}

@media (prefers-reduced-motion: reduce) {
 body.page-offers .offers-hero-collage img,
 body.page-offers .offer-row {
  animation: none;
 }

 body.page-offers .offers-hero-collage img {
  transform: scale(1.04);
 }

 body.page-offers .offer-row {
  opacity: 1;
  transform: none;
 }
}

body.page-offers .offer-card.is-featured {
 border-color: transparent;
 box-shadow: none;
}

body.page-offers .offer-card.is-featured::before {
 display: none;
}

body.page-offers .offer-card.is-featured h3::after {
 content: none;
}

/* Homepage rates — prices + first-time guide + offers */
body.page-home .home-rates {
  padding: 1.4rem 0 1.55rem;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  background: #12161e;
}

body.page-home .home-rates-duo {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: stretch;
  margin: 0 0 1.35rem;
  padding: 0 0 1.25rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

body.page-home .home-fare-block,
body.page-home .home-guide-block {
  display: flex;
  flex-direction: column;
  margin: 0;
  min-height: 100%;
  min-width: 0;
}

body.page-home .home-fare-block {
  padding: 0;
}

body.page-home .home-guide-block {
  padding: 0 0 0 clamp(1.25rem, 2.5vw, 2rem);
  border-left: 1px solid rgba(255, 255, 255, 0.1);
}

body.page-home .home-rates-head {
  margin: 0 0 0.75rem;
  max-width: none;
}

body.page-home .home-rates-head--center {
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1rem;
  text-align: center;
  max-width: 36rem;
}

body.page-home .home-rates-kicker {
  display: block;
  margin: 0 0 0.25rem;
  font-family: var(--font-ui, "Barlow", sans-serif);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent-bright);
}

body.page-home .home-rates-title {
  margin: 0 0 0.3rem;
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 2.6vw, 1.95rem);
  font-weight: 400;
  letter-spacing: var(--home-section-title-tracking, 0.04em);
  line-height: 1;
  text-transform: uppercase;
  color: var(--text);
}

body.page-home .home-rates-lead {
  margin: 0;
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--text-muted);
}

body.page-home .home-rates-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.55rem;
  margin-top: auto;
  padding-top: 0.95rem;
}

body.page-home .home-rates-actions .btn {
  min-height: 2.35rem;
  width: auto;
}

/* Price rows span full column width */
body.page-home .home-fare-list {
  display: grid;
  gap: 0;
  flex: 1 1 auto;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  align-content: stretch;
}

body.page-home .home-fare-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  min-height: 2.55rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

body.page-home .home-fare-n {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: none;
  color: rgba(242, 238, 230, 0.88);
}

body.page-home .home-fare-n::after {
  content: none;
}

body.page-home .home-fare-amt {
  margin-left: auto;
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 2.4vw, 1.9rem);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1;
  color: var(--text);
  text-align: right;
  white-space: nowrap;
}

body.page-home .home-fare-amt span {
  margin-left: 0.1em;
  font-family: var(--font-ui, "Barlow", sans-serif);
  font-size: 0.38em;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
  vertical-align: 0.3em;
}

body.page-home .home-fare-badge {
  display: inline-block;
  margin-left: 0.45rem;
  font-family: var(--font-ui, "Barlow", sans-serif);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent-bright);
  vertical-align: 0.12em;
}

body.page-home .home-fare-row--best .home-fare-n,
body.page-home .home-fare-row--best .home-fare-amt {
  color: var(--accent-bright);
}

/* Guide as labeled beats, not numbered circles */
body.page-home .home-guide-flow {
  display: grid;
  gap: 0;
  flex: 1 1 auto;
  margin: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

body.page-home .home-guide-beat {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr);
  gap: 0.75rem;
  align-items: center;
  min-height: 2.55rem;
  padding: 0.35rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

body.page-home .home-guide-label {
  font-family: var(--font-display);
  font-size: 1.15rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--accent-bright);
  line-height: 1;
}

body.page-home .home-guide-beat p {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1.35;
  color: rgba(242, 238, 230, 0.8);
}

body.page-home .home-guide-link {
  display: inline-block;
  margin-top: auto;
  padding-top: 0.95rem;
  margin-right: 1.1rem;
  font-family: var(--font-ui, "Barlow", sans-serif);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

body.page-home .home-guide-link--secondary {
  color: rgba(242, 238, 230, 0.55);
  font-weight: 600;
}

body.page-home .home-guide-link:hover,
body.page-home .home-guide-link:focus-visible {
  color: var(--accent-bright);
  outline: none;
}

/* Offers week strip */
body.page-home .home-deals-block {
  margin: 0;
  padding: 0;
}

body.page-home .home-deal-week {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 0 0 0.85rem;
  padding: 0;
  list-style: none;
}

body.page-home .home-mid-deal-item {
  margin: 0;
  padding: 0;
  animation: none;
  min-width: 0;
}

body.page-home .home-deal-tile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  height: 100%;
  padding: 0.7rem 0.75rem 0.75rem;
  border-top: 2px solid rgba(141, 198, 63, 0.35);
  border-radius: 0;
  background: linear-gradient(180deg, rgba(141, 198, 63, 0.07), transparent 70%);
  text-decoration: none;
  color: inherit;
  transition: background 0.2s ease, border-color 0.2s ease;
}

body.page-home .home-deal-tile:hover,
body.page-home .home-deal-tile:focus-visible {
  background: linear-gradient(180deg, rgba(141, 198, 63, 0.12), transparent 75%);
  border-top-color: var(--accent-bright);
  outline: none;
}

body.page-home .home-mid-deal-item.is-featured .home-deal-tile {
  border-top-color: var(--accent-bright);
  background: linear-gradient(180deg, rgba(141, 198, 63, 0.16), transparent 80%);
}

body.page-home .home-deal-tile .home-deal-day {
  font-family: var(--font-ui, "Barlow", sans-serif);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-bright);
}

body.page-home .home-deal-tile .home-deal-name {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.2vw, 1.7rem);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1;
  text-transform: uppercase;
  color: var(--text);
}

body.page-home .home-deal-tile .home-deal-main {
  margin-top: 0.15rem;
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--text-muted);
}

body.page-home .home-deal-tile .home-deal-code {
  margin-top: auto;
  padding-top: 0.55rem;
  font-family: var(--font-ui, "Barlow", sans-serif);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(242, 238, 230, 0.95);
}

/* Anytime offers */
body.page-home .home-deal-always {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

body.page-home .home-deal-line {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.75rem 0.9rem 0.75rem 0;
  text-decoration: none;
  color: inherit;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  transition: opacity 0.15s ease;
}

body.page-home .home-deal-always .home-mid-deal-item:last-child .home-deal-line {
  border-right: 0;
  padding-right: 0;
}

body.page-home .home-deal-always .home-mid-deal-item:first-child .home-deal-line {
  padding-left: 0;
}

body.page-home .home-deal-line:hover,
body.page-home .home-deal-line:focus-visible {
  opacity: 0.88;
  outline: none;
}

body.page-home .home-mid-deal-item.is-featured .home-deal-line .home-deal-name {
  color: var(--accent-bright);
}

body.page-home .home-deal-line .home-deal-name {
  font-family: var(--font-display);
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text);
}

body.page-home .home-deal-line .home-deal-main {
  font-size: 0.86rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--text-muted);
}

body.page-home .home-deal-line .home-deal-code {
  font-family: var(--font-ui, "Barlow", sans-serif);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent-bright);
}

body.page-home #prices,
body.page-home #first-time {
  scroll-margin-top: calc(var(--header-h) + 0.75rem);
}

@media (max-width: 900px) {
  body.page-home .home-rates-duo {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }

  body.page-home .home-fare-block,
  body.page-home .home-guide-block {
    padding: 0;
    border-left: 0;
  }

  body.page-home .home-guide-block {
    padding-top: 1.25rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
  }

  body.page-home .home-deal-week {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  body.page-home .home-deal-always {
    grid-template-columns: 1fr;
  }

  body.page-home .home-deal-line,
  body.page-home .home-deal-always .home-mid-deal-item:last-child .home-deal-line {
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    padding: 0.7rem 0;
  }

  body.page-home .home-deal-always .home-mid-deal-item:last-child .home-deal-line {
    border-bottom: 0;
  }

  body.page-home .home-rates-actions .btn {
    flex: 1 1 auto;
  }
}

@media (max-width: 480px) {
  body.page-home .home-deal-week {
    grid-template-columns: 1fr;
  }
}

.section.register-interest-signup {
  padding-top: 0.5rem;
  padding-bottom: 2rem;
}

.section.register-interest-signup .footer-newsletter {
  margin-bottom: 0;
}

@media (max-width: 560px) {
  .register-interest-form-row .btn-primary {
    flex: 1 1 100%;
    width: 100%;
  }
}



/* ============================================================
 FAQS PAGE. offers-style hero + sharper accordion
 ============================================================ */

body.page-faqs {
 background: var(--bg-deep, #161a22);
}

body.page-faqs .faqs-hero {
 position: relative;
 display: flex;
 flex-direction: column;
 justify-content: flex-end;
 min-height: clamp(16rem, 38svh, 24rem);
 overflow: hidden;
 border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

body.page-faqs .faqs-hero-collage {
 position: absolute;
 inset: 0;
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 0;
 z-index: 0;
}

body.page-faqs .faqs-hero-collage img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
 filter: saturate(1.05) contrast(1.02) brightness(1.12);
 transform: scale(1.05);
 animation: faqsHeroDrift 22s ease-in-out infinite alternate;
}

body.page-faqs .faqs-hero-collage img:nth-child(1) { object-position: 48% 40%; animation-duration: 24s; }
body.page-faqs .faqs-hero-collage img:nth-child(2) { object-position: 50% 45%; animation-duration: 18s; animation-delay: -5s; }
body.page-faqs .faqs-hero-collage img:nth-child(3) { object-position: 55% 38%; animation-duration: 26s; animation-delay: -9s; }

@keyframes faqsHeroDrift {
 from { transform: scale(1.04) translate3d(0, 0, 0); }
 to { transform: scale(1.1) translate3d(-1%, -0.5%, 0); }
}

body.page-faqs .faqs-hero-veil {
 position: absolute;
 inset: 0;
 z-index: 1;
 pointer-events: none;
 background:
 linear-gradient(180deg, rgba(22, 26, 34, 0.22) 0%, rgba(22, 26, 34, 0.18) 40%, rgba(22, 26, 34, 0.62) 100%),
 linear-gradient(90deg, rgba(22, 26, 34, 0.28) 0%, rgba(22, 26, 34, 0.12) 50%, rgba(22, 26, 34, 0.28) 100%);
}

body.page-faqs .faqs-hero-copy {
 position: relative;
 z-index: 2;
 padding-top: 3rem;
 padding-bottom: clamp(1.6rem, 3.5vw, 2.5rem);
 max-width: var(--max);
 text-align: center;
}

body.page-faqs .faqs-hero-kicker {
 margin: 0 auto 0.5rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

body.page-faqs .faqs-hero h1 {
 margin: 0 auto 0.65rem;
 font-family: var(--font-display);
 font-size: var(--text-h1-hero);
 font-weight: 400;
 letter-spacing: var(--letter-display);
 line-height: 0.92;
 text-transform: uppercase;
 color: var(--text);
 text-shadow: 0 14px 40px rgba(0, 0, 0, 0.55);
}

body.page-faqs .faqs-hero-accent {
 color: var(--accent-bright);
}

body.page-faqs .faqs-hero-lead {
 margin: 0 auto 1.2rem;
 max-width: 36ch;
 font-family: var(--font-body);
 font-size: var(--text-lead);
 font-weight: 500;
 line-height: 1.45;
 color: rgba(242, 238, 230, 0.82);
}

body.page-faqs .faqs-hero-actions {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 0.75rem 0.9rem;
}

body.page-faqs .faqs-page-body {
 padding-top: 1.5rem;
 padding-bottom: 3rem;
 background:
 radial-gradient(ellipse 55% 28% at 8% 0%, rgba(141, 198, 63, 0.08), transparent 60%),
 var(--bg-deep, #161a22);
}

body.page-faqs .faq-list {
 max-width: 52rem;
 margin: 0 auto;
 display: flex;
 flex-direction: column;
 gap: 0;
 border-top: 1px solid rgba(255, 255, 255, 0.1);
}

body.page-faqs .faq-item {
 border: 0;
 border-bottom: 1px solid rgba(255, 255, 255, 0.08);
 border-radius: 0;
 background: transparent;
 overflow: visible;
}

body.page-faqs .faq-item summary {
 list-style: none;
 cursor: pointer;
 background: transparent;
 color: rgba(242, 238, 230, 0.92);
 font-family: var(--font-body);
 font-size: var(--text-lead);
 font-weight: 600;
 letter-spacing: 0.01em;
 text-transform: none;
 line-height: 1.35;
 padding: 1.15rem 0.35rem 1.15rem 0;
 border-bottom: 0;
 transition: color 0.2s ease, background 0.2s ease;
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 1rem;
}

body.page-faqs .faq-item summary:hover,
body.page-faqs .faq-item summary:focus-visible {
 color: var(--accent-bright);
 outline: none;
 background: rgba(141, 198, 63, 0.04);
}

body.page-faqs .faq-item summary::after {
 content: "+";
 flex-shrink: 0;
 width: 1.65rem;
 height: 1.65rem;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 border-radius: 2px;
 border: 1px solid rgba(141, 198, 63, 0.4);
 color: var(--accent-bright);
 background: transparent;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 1rem;
 font-weight: 700;
 line-height: 1;
 transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

body.page-faqs .faq-item[open] summary {
 color: var(--accent-bright);
}

body.page-faqs .faq-item[open] summary::after {
 content: "–";
 background: rgba(141, 198, 63, 0.12);
 border-color: rgba(168, 224, 83, 0.7);
 transform: none;
}

body.page-faqs .faq-item summary::-webkit-details-marker {
 display: none;
}

body.page-faqs .faq-item p {
 margin: 0;
 padding: 0 2.2rem 1.35rem 0;
 max-width: 58ch;
 font-family: var(--font-body);
 font-size: 1.02rem;
 font-weight: 400;
 line-height: 1.65;
 color: rgba(242, 238, 230, 0.78);
}

body.page-faqs .faq-item p a {
 color: var(--accent-bright);
}

@media (max-width: 700px) {
 body.page-faqs .faqs-hero {
  min-height: clamp(14rem, 34svh, 20rem);
 }

 body.page-faqs .faqs-hero-veil {
  background:
   linear-gradient(180deg, rgba(22, 26, 34, 0.16) 0%, rgba(22, 26, 34, 0.32) 45%, rgba(22, 26, 34, 0.72) 100%),
   linear-gradient(90deg, rgba(22, 26, 34, 0.4) 0%, transparent 70%);
 }

 body.page-faqs .faqs-hero-actions {
  width: 100%;
 }

 body.page-faqs .faqs-hero-actions .btn {
  flex: 1 1 auto;
 }
}

@media (prefers-reduced-motion: reduce) {
 body.page-faqs .faqs-hero-collage img {
  animation: none;
  transform: scale(1.04);
 }
}

/* Hub pages: About, What to expect, local landings */
.hub-hero {
 position: relative;
 min-height: min(52vh, 28rem);
 display: flex;
 align-items: flex-end;
 overflow: hidden;
 background: #07090d;
}

.hub-hero-photo {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center;
}

.hub-hero-veil {
 position: absolute;
 inset: 0;
 z-index: 1;
 pointer-events: none;
 background:
  linear-gradient(180deg, rgba(7, 9, 13, 0.25) 0%, rgba(7, 9, 13, 0.55) 45%, rgba(7, 9, 13, 0.94) 100%),
  linear-gradient(90deg, rgba(7, 9, 13, 0.5) 0%, transparent 65%);
}

.hub-hero-copy {
 position: relative;
 z-index: 2;
 width: 100%;
 padding: 4.5rem 0 2.25rem;
}

.hub-hero h1 {
 margin: 0;
 font-family: var(--font-display);
 font-size: var(--text-h1-page);
 font-weight: 400;
 letter-spacing: 0.02em;
 line-height: 0.95;
 text-transform: uppercase;
 color: var(--text);
 max-width: 14ch;
}

.hub-hero-accent {
 color: var(--accent-bright);
}

.hub-body {
 padding-top: 1.75rem;
 padding-bottom: 3.25rem;
 background:
  radial-gradient(ellipse 50% 30% at 10% 0%, rgba(141, 198, 63, 0.07), transparent 55%),
  #07090d;
}

.hub-prose {
 max-width: 40rem;
}

.hub-prose .hub-lead {
 margin: 0 0 1.5rem;
 font-size: 1.12rem;
 line-height: 1.55;
 color: rgba(242, 238, 230, 0.9);
}

.hub-prose h2 {
 margin: 1.75rem 0 0.55rem;
 font-family: var(--font-display);
 font-size: clamp(1.55rem, 3vw, 2rem);
 font-weight: 400;
 letter-spacing: 0.03em;
 text-transform: uppercase;
 color: var(--text);
}

.hub-prose p,
.hub-prose li {
 color: var(--text-muted);
 font-size: 1rem;
 line-height: 1.6;
}

.hub-prose a {
 color: var(--accent-bright);
}

.hub-prose a:hover {
 color: #c6f06a;
}

.hub-steps {
 list-style: none;
 margin: 0;
 padding: 0;
 display: grid;
 gap: 1.25rem;
}

.hub-steps > li {
 padding-bottom: 1.15rem;
 border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.hub-steps h2 {
 margin-top: 0;
}

.hub-links {
 margin: 0.5rem 0 0;
 padding-left: 1.15rem;
}

.hub-links li {
 margin: 0.35rem 0;
}

.hub-cta-row {
 display: flex;
 flex-wrap: wrap;
 gap: 0.75rem;
 margin-top: 2rem;
}

.nav-christmas[hidden] {
 display: none !important;
}

@media (max-width: 700px) {
 .hub-hero {
  min-height: min(48vh, 22rem);
 }

 .hub-hero-copy {
  padding: 3.5rem 0 1.75rem;
 }
}

.contact-hero-links {
 margin: 0 auto 1.35rem;
 max-width: 40rem;
 text-align: center;
 font-size: 0.95rem;
 line-height: 1.5;
 color: var(--text-muted);
}

.contact-hero-links a {
 color: var(--accent-bright);
}

.contact-geo-nav {
 display: flex;
 flex-wrap: wrap;
 gap: 0.45rem 0.85rem;
 margin: -0.35rem 0 1.35rem;
}

.contact-geo-nav a {
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.82rem;
 font-weight: 600;
 color: rgba(242, 238, 230, 0.78);
 text-decoration: underline;
 text-underline-offset: 0.16em;
}

.contact-geo-nav a:hover {
 color: var(--accent-bright);
}

/* ============================================================
 ABOUT PAGE
 ============================================================ */

body.page-about {
 background: #07090d;
 color: var(--text);
}

body.page-about .about-hero {
 position: relative;
 min-height: min(78vh, 40rem);
 display: flex;
 align-items: flex-end;
 overflow: hidden;
 background: #07090d;
}

body.page-about .about-hero-collage {
 position: absolute;
 inset: 0;
 display: grid;
 grid-template-columns: 1.15fr 0.85fr 1fr;
}

body.page-about .about-hero-collage img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center;
 transform: scale(1.06);
 animation: about-hero-drift 22s ease-in-out infinite alternate;
}

body.page-about .about-hero-collage img:nth-child(2) {
 animation-delay: -7s;
}

body.page-about .about-hero-collage img:nth-child(3) {
 animation-delay: -13s;
}

@keyframes about-hero-drift {
 from { transform: scale(1.06) translate3d(0, 0, 0); }
 to { transform: scale(1.12) translate3d(-1.5%, 1%, 0); }
}

body.page-about .about-hero-veil {
 position: absolute;
 inset: 0;
 z-index: 1;
 pointer-events: none;
 background:
  linear-gradient(180deg, rgba(7, 9, 13, 0.18) 0%, rgba(7, 9, 13, 0.42) 38%, rgba(7, 9, 13, 0.94) 100%),
  linear-gradient(90deg, rgba(7, 9, 13, 0.55) 0%, transparent 58%);
}

body.page-about .about-hero-copy {
 position: relative;
 z-index: 2;
 width: 100%;
 padding: 5.5rem 0 2.75rem;
}

body.page-about .about-hero-brand {
 margin: 0 0 0.55rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.78rem;
 font-weight: 700;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

body.page-about .about-hero h1 {
 margin: 0;
 max-width: 12ch;
 font-family: var(--font-display);
 font-size: var(--text-h1-hero);
 font-weight: 400;
 letter-spacing: 0.02em;
 line-height: 0.92;
 text-transform: uppercase;
 color: var(--text);
}

body.page-about .about-hero-accent {
 color: var(--accent-bright);
}

body.page-about .about-hero-lead {
 margin: 1rem 0 0;
 max-width: 34ch;
 font-family: var(--font-body);
 font-size: 1.05rem;
 font-weight: 500;
 line-height: 1.45;
 color: rgba(242, 238, 230, 0.84);
}

body.page-about .about-hero-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.75rem;
 margin-top: 1.35rem;
}

body.page-about .about-story,
body.page-about .about-play,
body.page-about .about-who,
body.page-about .about-place {
 padding: 3.25rem 0;
}

body.page-about .about-story {
 background:
  radial-gradient(ellipse 45% 40% at 0% 20%, rgba(141, 198, 63, 0.07), transparent 60%),
  #07090d;
}

body.page-about .about-story-grid {
 display: grid;
 grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
 gap: 2.5rem 3rem;
 align-items: center;
}

body.page-about .about-story-copy h2,
body.page-about .about-section-title,
body.page-about .about-who h2,
body.page-about .about-place h2 {
 margin: 0 0 0.85rem;
 font-family: var(--font-display);
 font-size: clamp(2rem, 4vw, 2.75rem);
 font-weight: 400;
 letter-spacing: 0.03em;
 line-height: 0.95;
 text-transform: uppercase;
 color: var(--text);
}

body.page-about .about-story-copy p,
body.page-about .about-play-row p,
body.page-about .about-who p,
body.page-about .about-place p {
 margin: 0 0 1rem;
 color: var(--text-muted);
 font-size: 1.02rem;
 line-height: 1.6;
}

body.page-about .about-story-copy p:last-child,
body.page-about .about-who p:last-child,
body.page-about .about-place p:last-child {
 margin-bottom: 0;
}

body.page-about .about-story-media {
 margin: 0;
 overflow: hidden;
 border-radius: 2px;
}

body.page-about .about-story-media img {
 display: block;
 width: 100%;
 height: min(28rem, 70vw);
 object-fit: cover;
}

body.page-about .about-play {
 border-top: 1px solid rgba(255, 255, 255, 0.06);
 background: #0a0c10;
}

body.page-about .about-section-lead {
 margin: 0 0 2rem;
 max-width: 36rem;
 color: var(--text-muted);
 font-size: 1.02rem;
 line-height: 1.5;
}

body.page-about .about-play-rows {
 display: grid;
 gap: 2.5rem;
}

body.page-about .about-play-row {
 display: grid;
 grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
 gap: 1.5rem 2rem;
 align-items: center;
}

body.page-about .about-play-row--flip {
 grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
}

body.page-about .about-play-row--flip img {
 order: 2;
}

body.page-about .about-play-row img {
 width: 100%;
 height: min(16rem, 48vw);
 object-fit: cover;
 border-radius: 2px;
}

body.page-about .about-play-row h3 {
 margin: 0 0 0.55rem;
 font-family: var(--font-display);
 font-size: clamp(1.55rem, 3vw, 2rem);
 font-weight: 400;
 letter-spacing: 0.03em;
 text-transform: uppercase;
 color: var(--text);
}

body.page-about .about-play-row a,
body.page-about .about-place a:not(.btn) {
 color: var(--accent-bright);
}

body.page-about .about-inline-link {
 display: inline-block;
 margin-top: 0.35rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.78rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 text-decoration: underline;
 text-underline-offset: 0.18em;
}

body.page-about .about-trust {
 padding: 0;
 border-top: 1px solid rgba(255, 255, 255, 0.06);
 border-bottom: 1px solid rgba(255, 255, 255, 0.06);
 background: rgba(255, 255, 255, 0.02);
}

body.page-about .about-trust-list {
 list-style: none;
 margin: 0;
 padding: 1.75rem 0;
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 1.25rem 1.5rem;
}

body.page-about .about-trust-list li {
 display: grid;
 gap: 0.35rem;
}

body.page-about .about-trust-list strong {
 font-family: var(--font-display);
 font-size: 1.35rem;
 font-weight: 400;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

body.page-about .about-trust-list span {
 font-size: 0.9rem;
 line-height: 1.45;
 color: var(--text-muted);
}

body.page-about .about-who {
 background: #07090d;
}

body.page-about .about-who-inner,
body.page-about .about-place-inner {
 display: grid;
 grid-template-columns: minmax(0, 1.4fr) auto;
 gap: 1.5rem 2rem;
 align-items: end;
}

body.page-about .about-who-actions,
body.page-about .about-place-actions,
body.page-about .about-hero-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.75rem;
}

body.page-about .about-place {
 background:
  radial-gradient(ellipse 40% 50% at 100% 80%, rgba(141, 198, 63, 0.08), transparent 55%),
  #0a0c10;
 border-top: 1px solid rgba(255, 255, 255, 0.06);
}

@media (max-width: 900px) {
 body.page-about .about-hero {
  min-height: min(70vh, 34rem);
 }

 body.page-about .about-hero-collage {
  grid-template-columns: 1fr 1fr;
 }

 body.page-about .about-hero-collage img:nth-child(3) {
  display: none;
 }

 body.page-about .about-story-grid,
 body.page-about .about-play-row,
 body.page-about .about-play-row--flip,
 body.page-about .about-who-inner,
 body.page-about .about-place-inner {
  grid-template-columns: 1fr;
 }

 body.page-about .about-play-row--flip img {
  order: 0;
 }

 body.page-about .about-trust-list {
  grid-template-columns: 1fr 1fr;
 }

 body.page-about .about-story-media img {
  height: min(20rem, 58vw);
 }
}

@media (max-width: 560px) {
 body.page-about .about-hero-collage {
  grid-template-columns: 1fr;
 }

 body.page-about .about-hero-collage img:nth-child(2) {
  display: none;
 }

 body.page-about .about-trust-list {
  grid-template-columns: 1fr;
  padding: 1.35rem 0;
 }

 body.page-about .about-hero-actions .btn,
 body.page-about .about-who-actions .btn,
 body.page-about .about-place-actions .btn {
  flex: 1 1 auto;
 }
}

@media (prefers-reduced-motion: reduce) {
 body.page-about .about-hero-collage img {
  animation: none;
  transform: scale(1.04);
 }
}

/* ============================================================
 GEO LANDING PAGES (shared template)
 ============================================================ */

body.geo-page {
 background: #07090d;
 color: var(--text);
}

body.geo-page .geo-hero {
 position: relative;
 min-height: clamp(16rem, 42svh, 26rem);
 display: flex;
 align-items: center;
 justify-content: center;
 overflow: hidden;
 background: #07090d;
 border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

body.geo-page .geo-hero-photo {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center;
 transform: scale(1.04);
}

body.geo-page .geo-hero-veil {
 position: absolute;
 inset: 0;
 z-index: 1;
 pointer-events: none;
 background:
  linear-gradient(180deg, rgba(7, 9, 13, 0.55) 0%, rgba(7, 9, 13, 0.45) 40%, rgba(7, 9, 13, 0.9) 100%),
  linear-gradient(90deg, rgba(7, 9, 13, 0.5) 0%, rgba(7, 9, 13, 0.35) 50%, rgba(7, 9, 13, 0.5) 100%);
}

body.geo-page .geo-hero-copy {
 position: relative;
 z-index: 2;
 width: 100%;
 max-width: var(--max);
 margin-inline: auto;
 padding: 2.5rem 1.25rem clamp(1.75rem, 3.5vw, 2.5rem);
 text-align: center;
 box-sizing: border-box;
}

body.geo-page .geo-hero-kicker {
 margin: 0 auto 0.55rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.78rem;
 font-weight: 700;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 color: var(--accent-bright);
}

body.geo-page .geo-hero h1 {
 margin: 0 auto;
 max-width: 18ch;
 font-family: var(--font-display);
 font-size: clamp(2.6rem, 6.5vw, 4.2rem);
 font-weight: 400;
 letter-spacing: 0.04em;
 line-height: 0.92;
 text-transform: uppercase;
 color: var(--text);
 text-shadow: 0 14px 40px rgba(0, 0, 0, 0.55);
}

body.geo-page .geo-hero-accent {
 color: var(--accent-bright);
}

body.geo-page .geo-hero-lead {
 margin: 0.9rem auto 0;
 max-width: 40ch;
 font-size: 1.05rem;
 font-weight: 500;
 line-height: 1.45;
 color: rgba(242, 238, 230, 0.84);
}

body.geo-page .geo-hero-actions,
body.geo-page .geo-cta {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 0.75rem;
 margin-top: 1.25rem;
}

body.geo-page .geo-body {
 padding: 2.75rem 0 3.5rem;
 background:
  radial-gradient(ellipse 55% 40% at 50% 0%, rgba(141, 198, 63, 0.07), transparent 55%),
  #07090d;
}

body.geo-page .geo-body > .wrap {
 padding-inline: 1.25rem;
 max-width: var(--max);
 width: 100%;
 margin-inline: auto;
 box-sizing: border-box;
}

body.geo-page .geo-grid {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 1.5rem 2rem;
 margin-bottom: 2.75rem;
 text-align: center;
}

body.geo-page .geo-block h2,
body.geo-page .geo-section-title {
 margin: 0 auto 0.65rem;
 font-family: var(--font-display);
 font-size: clamp(1.7rem, 3.2vw, 2.25rem);
 font-weight: 400;
 letter-spacing: 0.03em;
 text-transform: uppercase;
 color: var(--text);
 text-align: center;
}

body.geo-page .geo-block p,
body.geo-page .geo-section-lead {
 margin: 0 auto;
 max-width: 36rem;
 color: var(--text-muted);
 font-size: 1.02rem;
 line-height: 1.55;
 text-align: center;
}

body.geo-page .geo-block-note {
 margin-top: 0.85rem !important;
 font-size: 0.92rem !important;
}

body.geo-page .geo-block-note a,
body.geo-page .geo-nearby-nav a {
 color: var(--accent-bright);
}

body.geo-page .geo-rooms {
 margin-bottom: 2.5rem;
 text-align: center;
}

body.geo-page .geo-section-lead {
 margin-bottom: 1.15rem;
 max-width: 40rem;
}

body.geo-page .geo-rooms-nav {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 0.65rem 1.45rem;
 margin-top: 0.35rem;
}

body.geo-page .geo-rooms-nav a {
 font-family: var(--font-display);
 font-size: clamp(1.25rem, 2.4vw, 1.55rem);
 font-weight: 400;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 color: var(--accent-bright);
 text-decoration: none;
 border-bottom: 1px solid rgba(141, 198, 63, 0.35);
 line-height: 1.2;
 padding-bottom: 0.1rem;
 transition: color 0.15s ease, border-color 0.15s ease;
}

body.geo-page .geo-rooms-nav a:hover {
 color: #f0ffd9;
 border-bottom-color: rgba(240, 255, 217, 0.7);
}

body.geo-page .geo-nearby {
 margin-bottom: 2rem;
 padding-top: 1.5rem;
 border-top: 1px solid rgba(255, 255, 255, 0.08);
 text-align: center;
}

body.geo-page .geo-nearby-nav {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 0.55rem 1rem;
 margin-top: 0.75rem;
}

body.geo-page .geo-nearby-nav a {
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.85rem;
 font-weight: 600;
 text-decoration: underline;
 text-underline-offset: 0.18em;
}

body.geo-page .geo-cta {
 margin-top: 0.5rem;
}

@media (max-width: 900px) {
 body.geo-page .geo-grid {
  grid-template-columns: 1fr 1fr;
 }

 body.geo-page .geo-hero {
  min-height: min(64vh, 30rem);
 }
}

@media (max-width: 560px) {
 body.geo-page .geo-grid {
  grid-template-columns: 1fr;
 }

 body.geo-page .geo-hero-actions .btn,
 body.geo-page .geo-cta .btn {
  flex: 1 1 auto;
 }
}

/* ============================================================
 CONTACT PAGE — groups / gift / offers hero treatment
 ============================================================ */
body.page-contact {
 background: var(--bg-deep, #161a22);
}

body.page-contact .contact-hero {
 position: relative;
 display: flex;
 flex-direction: column;
 justify-content: center;
 align-items: center;
 min-height: clamp(12rem, 28svh, 18rem);
 overflow: hidden;
 border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

body.page-contact .contact-hero-photo {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: 50% 48%;
 display: block;
 filter: saturate(1.04) contrast(1.02) brightness(1.16);
 transform: scale(1.04);
 animation: contactHeroDrift 24s ease-in-out infinite alternate;
}

@keyframes contactHeroDrift {
 from { transform: scale(1.05) translate3d(0, 0, 0); }
 to { transform: scale(1.1) translate3d(-1.1%, -0.5%, 0); }
}

body.page-contact .contact-hero-veil {
 position: absolute;
 inset: 0;
 z-index: 1;
 pointer-events: none;
 background:
 linear-gradient(180deg, rgba(22, 26, 34, 0.16) 0%, rgba(22, 26, 34, 0.08) 45%, rgba(22, 26, 34, 0.5) 100%),
 linear-gradient(90deg, rgba(22, 26, 34, 0.14) 0%, transparent 40%, transparent 60%, rgba(22, 26, 34, 0.14) 100%);
}

body.page-contact .contact-hero-copy {
 position: relative;
 z-index: 2;
 width: 100%;
 max-width: var(--max);
 margin-inline: auto;
 padding: 2rem 1.25rem 1.75rem;
 text-align: center;
 box-sizing: border-box;
}

body.page-contact .contact-hero h1 {
 margin: 0 auto 1rem;
 font-family: var(--font-display);
 font-size: var(--text-h1-hero);
 font-weight: 400;
 letter-spacing: var(--letter-display);
 line-height: 0.92;
 text-transform: uppercase;
 color: var(--text);
 text-shadow:
  0 2px 12px rgba(0, 0, 0, 0.75),
  0 14px 40px rgba(0, 0, 0, 0.55);
}

body.page-contact .contact-hero-accent {
 color: var(--accent-bright);
}

body.page-contact .contact-hero-lead {
 margin: 0 auto 1.2rem;
 max-width: 34ch;
 font-family: var(--font-body);
 font-size: var(--text-lead);
 font-weight: 500;
 line-height: 1.45;
 color: rgba(242, 238, 230, 0.84);
}

body.page-contact .contact-hero-cta {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.85rem 1.15rem;
}

body.page-contact .contact-hero-cta .btn-primary {
 display: inline-flex;
 align-items: center;
 gap: 0.45rem;
 min-height: 3.15rem;
 padding-left: 1.4rem;
 padding-right: 1.4rem;
}

body.page-contact .contact-hero-meta {
 margin: 0 0 1.35rem;
 max-width: none;
 text-align: center;
 font-size: var(--text-small, 0.875rem);
 line-height: 1.5;
 color: var(--text-muted);
}

body.page-contact .contact-hero-meta a {
 color: var(--accent-bright);
 font-weight: 600;
 text-decoration: underline;
 text-underline-offset: 0.16em;
}

body.page-contact .contact-page-body {
 padding-top: 1.35rem;
 padding-bottom: 2.5rem;
 background:
 radial-gradient(ellipse 55% 40% at 50% 0%, rgba(141, 198, 63, 0.07), transparent 55%),
 var(--bg-deep, #161a22);
}

body.page-contact .contact-page-body > .wrap {
 padding-inline: 1.25rem;
 max-width: var(--max);
 width: 100%;
 margin-inline: auto;
 box-sizing: border-box;
}

body.page-contact .contact-reach {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 0.75rem;
 margin: 0 auto 0.85rem;
 max-width: 54rem;
}

body.page-contact .contact-reach-link {
 display: grid;
 gap: 0.3rem;
 align-content: start;
 padding: 1.1rem 1rem 1.15rem;
 text-align: center;
 text-decoration: none;
 color: inherit;
 border: 1px solid rgba(255, 255, 255, 0.1);
 border-radius: 2px;
 background: rgba(255, 255, 255, 0.025);
 transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

body.page-contact .contact-reach-link:hover {
 border-color: rgba(141, 198, 63, 0.45);
 background: rgba(141, 198, 63, 0.07);
 transform: translateY(-2px);
}

body.page-contact .contact-reach-label {
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.68rem;
 font-weight: 700;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 color: rgba(242, 238, 230, 0.5);
}

body.page-contact .contact-reach-value {
 font-family: var(--font-body);
 font-size: clamp(1rem, 1.6vw, 1.12rem);
 font-weight: 600;
 color: var(--text);
 line-height: 1.3;
 word-break: break-word;
}

body.page-contact .contact-reach-hint {
 font-size: 0.86rem;
 line-height: 1.35;
 color: var(--text-muted);
}

body.page-contact .contact-reach-link:hover .contact-reach-value {
 color: var(--accent-bright);
}

body.page-contact .contact-reach-link--book {
 border-color: rgba(141, 198, 63, 0.4);
 background:
 radial-gradient(ellipse 90% 80% at 50% 0%, rgba(141, 198, 63, 0.12), transparent 60%),
 rgba(255, 255, 255, 0.03);
}

body.page-contact .contact-reach-link--book .contact-reach-value {
 color: var(--accent-bright);
}

body.page-contact .contact-reach-link--book:hover {
 border-color: rgba(168, 224, 83, 0.65);
 background:
 radial-gradient(ellipse 90% 80% at 50% 0%, rgba(141, 198, 63, 0.18), transparent 60%),
 rgba(141, 198, 63, 0.08);
}

body.page-contact .contact-form-card {
 margin: 0 auto;
 max-width: 54rem;
 padding: 1.35rem 0 0;
 border: 0;
 border-top: 1px solid rgba(255, 255, 255, 0.1);
 border-radius: 0;
 background: none;
 text-align: center;
}

body.page-contact .contact-form-card-header {
 margin-bottom: 0.85rem;
 padding: 0;
 border-bottom: 0;
 background: none;
}

body.page-contact .contact-form-card-title {
 margin: 0 0 0.35rem;
 font-family: var(--font-display);
 font-size: var(--text-card-title);
 font-weight: 400;
 letter-spacing: var(--letter-display);
 text-transform: uppercase;
 color: var(--text);
}

body.page-contact .contact-form-card-sub {
 margin: 0 auto;
 max-width: 32rem;
 color: var(--text-muted);
 font-size: 0.95rem;
 line-height: 1.45;
}

body.page-contact .contact-form--card {
 text-align: left;
 padding: 0;
 gap: 0.75rem;
}

body.page-contact .contact-form-row {
 gap: 0.75rem;
}

body.page-contact .contact-form-field label {
 color: rgba(242, 238, 230, 0.7);
 margin-bottom: 0.25rem;
}

body.page-contact .contact-form-field input,
body.page-contact .contact-form-field textarea {
 border-color: rgba(255, 255, 255, 0.12);
 background: rgba(0, 0, 0, 0.22);
 padding: 0.7rem 0.85rem;
}

body.page-contact .contact-form-field textarea {
 min-height: 7.5rem;
}

body.page-contact .contact-form-field input:focus,
body.page-contact .contact-form-field textarea:focus {
 border-color: rgba(141, 198, 63, 0.55);
 outline: none;
 box-shadow: 0 0 0 3px rgba(141, 198, 63, 0.12);
}

body.page-contact .contact-form-footer {
 justify-content: space-between;
 align-items: center;
 gap: 0.85rem;
 margin-top: 0.15rem;
}

body.page-contact .contact-form-footer .contact-form-submit {
 min-width: 11rem;
}

@media (max-width: 800px) {
 body.page-contact .contact-hero {
  min-height: clamp(11rem, 26svh, 16rem);
 }

 body.page-contact .contact-hero-photo {
  object-position: 50% 48%;
 }

 body.page-contact .contact-reach {
  grid-template-columns: 1fr;
  gap: 0.65rem;
 }

 body.page-contact .contact-reach-link:hover {
  transform: none;
 }

 body.page-contact .contact-form-footer {
  flex-direction: column;
  align-items: stretch;
 }

 body.page-contact .contact-form-footer .contact-form-submit {
  width: 100%;
 }
}

@media (prefers-reduced-motion: reduce) {
 body.page-contact .contact-hero-photo {
  animation: none;
  transform: none;
 }

 body.page-contact .contact-reach-link:hover {
  transform: none;
 }
}

/* ============================================================
 CHRISTMAS PARTIES. Groups-style cohesion (prod186)
 ============================================================ */

body.christmas-page {
 background: #07090d;
 --festive-red: #c9302c;
 --festive-red-bright: #e84540;
 --festive-gold: #d4a853;
}

body.christmas-page::before {
 display: none;
}

body.christmas-page .xmas-snow {
 display: block !important;
 z-index: 8;
}

body.christmas-page .xmas-hero {
 position: relative;
 display: flex;
 flex-direction: column;
 justify-content: center;
 align-items: center;
 min-height: clamp(18rem, 42svh, 26rem);
 overflow: hidden;
 border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

body.christmas-page .xmas-hero-photo {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: 50% 35%;
 display: block;
 filter: saturate(1.04) contrast(1.04) brightness(1.02);
 transform: scale(1.05);
 animation: xmasHeroDrift 24s ease-in-out infinite alternate;
}

@keyframes xmasHeroDrift {
 from { transform: scale(1.05) translate3d(0, 0, 0); }
 to { transform: scale(1.1) translate3d(-1%, -0.5%, 0); }
}

body.christmas-page .xmas-hero-veil {
 position: absolute;
 inset: 0;
 z-index: 1;
 pointer-events: none;
 background:
 linear-gradient(180deg, rgba(7, 9, 13, 0.28) 0%, rgba(7, 9, 13, 0.12) 42%, rgba(7, 9, 13, 0.72) 100%),
 linear-gradient(90deg, rgba(7, 9, 13, 0.22) 0%, transparent 42%, transparent 58%, rgba(7, 9, 13, 0.22) 100%);
}

body.christmas-page .xmas-hero-copy {
 position: relative;
 z-index: 2;
 width: 100%;
 max-width: var(--max);
 margin-inline: auto;
 padding: 2.5rem 1.25rem clamp(1.6rem, 3.5vw, 2.5rem);
 text-align: center;
 box-sizing: border-box;
}

body.christmas-page .xmas-hero-kicker {
 margin: 0 auto 0.65rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 color: var(--festive-gold);
}

body.christmas-page .xmas-hero h1 {
 margin: 0 auto 0.75rem;
 font-family: var(--font-display);
 font-size: clamp(2.6rem, 7vw, 4.2rem);
 font-weight: 400;
 letter-spacing: 0.04em;
 line-height: 0.94;
 text-transform: uppercase;
 color: var(--text);
 text-shadow: 0 14px 40px rgba(0, 0, 0, 0.55);
}

body.christmas-page .xmas-hero-accent {
 color: var(--festive-red-bright);
 text-shadow: 0 10px 28px rgba(0, 0, 0, 0.55);
}

body.christmas-page .xmas-hero-lead {
 margin: 0 auto 1.25rem;
 max-width: 34ch;
 font-family: var(--font-body);
 font-size: 1.05rem;
 font-weight: 500;
 line-height: 1.45;
 color: rgba(242, 238, 230, 0.84);
}

body.christmas-page .xmas-hero-cta {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.85rem 1.15rem;
}

body.christmas-page .xmas-hero-cta .btn-primary,
body.christmas-page .xmas-hero-cta .btn-festive {
 display: inline-flex;
 align-items: center;
 gap: 0.45rem;
 min-height: 3.15rem;
 padding-left: 1.4rem;
 padding-right: 1.4rem;
 background: linear-gradient(135deg, var(--festive-red) 0%, #a02522 100%) !important;
 border: 1px solid rgba(232, 69, 64, 0.5);
 color: #fff8f0 !important;
 box-shadow: 0 4px 20px rgba(201, 48, 44, 0.35) !important;
}

body.christmas-page .xmas-hero-cta .btn-festive:hover,
body.christmas-page .xmas-hero-cta .btn-primary.btn-festive:hover {
 background: linear-gradient(135deg, var(--festive-red-bright) 0%, var(--festive-red) 100%) !important;
 border-color: var(--festive-red-bright);
 color: #fff !important;
 box-shadow: 0 6px 28px rgba(201, 48, 44, 0.45) !important;
}

body.christmas-page .xmas-body {
 padding-top: 1.35rem;
 padding-bottom: 2rem;
 background: #07090d;
}

body.christmas-page .xmas-flow {
 max-width: 58rem;
 margin-inline: auto;
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 1.35rem;
 text-align: center;
}

body.christmas-page .xmas-steps {
 display: grid;
 grid-template-columns: 1fr;
 gap: 0.75rem;
 width: 100%;
 max-width: 52rem;
 margin: 0;
 padding: 0 0 1.15rem;
 list-style: none;
 border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

body.christmas-page .xmas-step {
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 0.2rem;
 margin: 0;
 padding: 0;
 border: 0;
 border-radius: 0;
 background: none;
 text-align: center;
}

body.christmas-page .xmas-step + .xmas-step {
 border-left: 0;
}

body.christmas-page .xmas-step-num {
 flex: 0 0 auto;
 width: auto;
 font-family: var(--font-display);
 font-size: 1.15rem;
 letter-spacing: 0.04em;
 line-height: 1;
 color: var(--festive-red-bright);
 text-align: center;
}

body.christmas-page .xmas-step div {
 display: grid;
 gap: 0.1rem;
 justify-items: center;
}

body.christmas-page .xmas-step strong {
 font-family: var(--font-display);
 font-size: clamp(1rem, 2vw, 1.15rem);
 font-weight: 400;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: var(--text);
}

body.christmas-page .xmas-step span {
 font-size: 0.88rem;
 line-height: 1.35;
 color: var(--text-muted);
}

body.christmas-page .xmas-formats-header {
 text-align: center;
 margin: 0;
 width: 100%;
 max-width: 36rem;
}

body.christmas-page .xmas-section-title {
 margin: 0 0 0.35rem;
 font-family: var(--font-display);
 font-size: clamp(1.55rem, 3vw, 2rem);
 font-weight: 400;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 color: var(--text);
}

body.christmas-page .xmas-formats-lead {
 margin: 0 auto;
 max-width: 40ch;
 font-size: 0.92rem;
 line-height: 1.45;
 color: var(--text-muted);
}

body.christmas-page .xmas-formats-grid {
 display: grid;
 grid-template-columns: 1fr;
 gap: 0.85rem;
 width: 100%;
 margin: 0;
}

body.christmas-page .xmas-format {
 margin: 0;
 padding: 1.1rem 1rem 1.15rem;
 border: 1px solid rgba(255, 255, 255, 0.1);
 border-radius: 2px;
 border-top: 1px solid rgba(255, 255, 255, 0.1);
 background: rgba(255, 255, 255, 0.02);
 box-shadow: none;
 text-align: center;
 display: flex;
 flex-direction: column;
 align-items: center;
}

body.christmas-page .xmas-format--featured {
 border-color: rgba(201, 48, 44, 0.35);
 background:
  radial-gradient(ellipse 90% 70% at 50% 0%, rgba(201, 48, 44, 0.1), transparent 60%),
  rgba(255, 255, 255, 0.025);
}

body.christmas-page .xmas-format-tag {
 margin: 0 0 0.3rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.68rem;
 font-weight: 700;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 color: rgba(242, 238, 230, 0.55);
}

body.christmas-page .xmas-format--featured .xmas-format-tag {
 color: var(--festive-gold);
}

body.christmas-page .xmas-format h3 {
 margin: 0 0 0.2rem;
 font-family: var(--font-display);
 font-size: clamp(1.4rem, 2.8vw, 1.7rem);
 font-weight: 400;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 color: var(--text);
}

body.christmas-page .xmas-format-meta {
 margin: 0 0 0.65rem;
 font-size: 0.88rem;
 color: var(--text-muted);
}

body.christmas-page .xmas-format ul {
 margin: 0 0 0.9rem;
 padding: 0;
 list-style: none;
 width: 100%;
}

body.christmas-page .xmas-format li {
 position: relative;
 margin: 0 0 0.3rem;
 padding-left: 0;
 font-size: 0.88rem;
 line-height: 1.35;
 color: rgba(242, 238, 230, 0.82);
}

body.christmas-page .xmas-format li::before {
 content: none;
}

body.christmas-page .xmas-format .btn-festive,
body.christmas-page .xmas-gift .btn-festive {
 background: linear-gradient(135deg, var(--festive-red) 0%, #a02522 100%) !important;
 border: 1px solid rgba(232, 69, 64, 0.5);
 color: #fff8f0 !important;
 box-shadow: 0 4px 18px rgba(201, 48, 44, 0.3) !important;
}

body.christmas-page .xmas-format .btn-festive:hover,
body.christmas-page .xmas-gift .btn-festive:hover {
 background: linear-gradient(135deg, var(--festive-red-bright) 0%, var(--festive-red) 100%) !important;
 color: #fff !important;
}

body.christmas-page .xmas-gift {
 width: 100%;
 margin: 0;
 padding: 1.15rem 0 0;
 border-top: 1px solid rgba(255, 255, 255, 0.08);
 text-align: center;
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 0.25rem;
}

body.christmas-page .xmas-gift-kicker {
 margin: 0 0 0.15rem;
 font-family: var(--font-ui, "Barlow", sans-serif);
 font-size: 0.7rem;
 font-weight: 700;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: var(--festive-gold);
}

body.christmas-page .xmas-gift .xmas-section-title {
 margin-bottom: 0.25rem;
}

body.christmas-page .xmas-gift > p:not(.xmas-gift-kicker) {
 margin: 0 auto 0.85rem;
 max-width: 34ch;
 font-size: 0.9rem;
 line-height: 1.4;
 color: var(--text-muted);
}

@media (min-width: 720px) {
 body.christmas-page .xmas-steps {
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem 1.5rem;
  max-width: 58rem;
 }

 body.christmas-page .xmas-formats-grid {
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
 }
}

@media (max-width: 800px) {
 body.christmas-page .xmas-hero {
  min-height: clamp(16rem, 38svh, 22rem);
 }

 body.christmas-page .xmas-hero-photo {
  object-position: 48% 32%;
 }

 body.christmas-page .xmas-hero-cta {
  flex-direction: column;
  align-items: stretch;
  width: min(100%, 20rem);
  margin-inline: auto;
 }

 body.christmas-page .xmas-hero-cta .btn {
  width: 100%;
  justify-content: center;
 }
}

@media (prefers-reduced-motion: reduce) {
 body.christmas-page .xmas-hero-photo {
  animation: none;
  transform: none;
 }
}
