@import url("/assets/tokens.css");

* { box-sizing: border-box; }
body { min-height: 100vh; margin: 0; background: #070809; color: var(--ea-paper); font-family: var(--font-sans); line-height: 1.5; overflow-wrap: break-word; }
a { color: inherit; }
img, picture, iframe { max-width: 100%; }
main, section, article, div, figure, picture { min-width: 0; }
:where(h1, h2, h3, p, li, strong, span, a, small, summary) { overflow-wrap: anywhere; }
:where(a, button, summary):focus-visible { outline: 3px solid var(--room-focus, var(--ea-focus)); outline-offset: 4px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.eyebrow { margin: 0; color: var(--room-accent, var(--ea-gold)); font-size: .74rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }

.site-header, .site-footer, .breadcrumbs, .listing-page, .content-section, .quick-fit, .booking-checkpoint, .booking-page, .homepage { width: min(var(--wide-content-width), calc(100% - 2 * var(--page-gutter))); margin-inline: auto; }
.site-header { position: relative; min-height: 4.75rem; display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: .7rem 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.site-brand { min-width: 0; min-height: 50px; display: inline-flex; align-items: center; gap: .7rem; color: white; font-weight: 900; text-decoration: none; }
.site-brand img { width: clamp(7.5rem, 38vw, 10.5rem); height: auto; display: block; }
.site-brand small { flex: 0 0 auto; padding-left: .7rem; border-left: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.72); font-size: .72rem; letter-spacing: .05em; text-transform: uppercase; }
.site-menu-toggle, .site-menu-close { min-width: 44px; min-height: 44px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; background: rgba(255,255,255,.055); color: white; font: inherit; font-weight: 850; cursor: pointer; }
.site-menu-toggle { display: none; align-items: center; gap: .6rem; padding: .6rem .8rem; }
.site-menu-toggle__icon { width: 1.15rem; display: grid; gap: 3px; }
.site-menu-toggle__icon span { height: 2px; display: block; border-radius: 2px; background: var(--ea-gold); }
.site-menu-close { padding: .55rem .85rem; }
.site-navigation-panel__header { display: none; }
.site-nav, .site-footer nav { display: flex; flex-wrap: wrap; gap: var(--space-4); }
.site-nav__link, .site-footer a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; color: rgba(255,255,255,.78); font-weight: 800; text-decoration: none; }
.site-nav__link { position: relative; white-space: nowrap; }
.site-nav__link::after { position: absolute; right: 0; bottom: .25rem; left: 0; height: 2px; border-radius: 2px; background: var(--ea-gold); content: ""; opacity: 0; transform: scaleX(.4); transition: opacity .16s ease, transform .16s ease; }
.site-nav__link:hover, .site-nav__link[aria-current="page"] { color: white; }
.site-nav__link:hover::after, .site-nav__link[aria-current="page"]::after { opacity: 1; transform: scaleX(1); }
.site-nav__link[aria-current="page"] { font-weight: 900; }
.site-nav__book { min-height: 44px; justify-content: center; padding: .55rem .85rem; border: 1px solid var(--ea-gold); border-radius: var(--radius-md); background: var(--ea-gold); color: var(--ea-ink); }
.site-nav__book::after { display: none; }
.site-nav__book:hover, .site-nav__book[aria-current="page"] { background: color-mix(in srgb, var(--ea-gold) 82%, var(--ea-ink)); color: var(--ea-ink); }
body.site-menu-open { overflow: hidden; }
.site-footer { display: grid; gap: var(--space-3); padding: var(--space-6) 0 var(--space-7); border-top: 1px solid rgba(255,255,255,.1); }
.site-footer p { margin: 0; }
.breadcrumbs { padding-block: var(--space-2); }
.breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1); margin: 0; padding: 0; list-style: none; }
.breadcrumbs li { display: inline-flex; align-items: center; color: rgba(255,255,255,.64); font-size: .84rem; font-weight: 750; }
.breadcrumbs li + li::before { margin-inline: var(--space-2); color: rgba(255,255,255,.32); content: "/"; }
.breadcrumbs a { min-height: 44px; display: inline-flex; align-items: center; }

.action { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; color: white; font-weight: 850; text-align: center; text-decoration: none; overflow-wrap: break-word; touch-action: manipulation; }
.action--primary { padding: .8rem 1.05rem; border: 1px solid var(--room-accent, var(--ea-gold)); border-radius: 999px; background: color-mix(in srgb, var(--room-accent, var(--ea-gold)) 18%, transparent); }
.action--secondary { padding: .8rem 1.05rem; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; }
.action--text { color: var(--room-accent, var(--ea-gold)); }
.action-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }

.listing-page { padding: var(--section-space) 0; }
.listing-intro { max-width: 48rem; display: grid; gap: var(--space-3); margin-bottom: var(--space-5); }
.listing-intro h1 { max-width: 12ch; margin: 0; color: white; font-size: clamp(2.4rem, 12vw, 4rem); line-height: .96; }
.listing-intro p:not(.eyebrow) { margin: 0; color: rgba(255,255,255,.76); font-size: 1.05rem; }
.room-list { display: grid; gap: var(--space-5); }
.room-discovery-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-6); }
.audience-shortcuts { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-2); }
.audience-shortcuts a { min-width: 44px; min-height: 44px; max-width: 100%; display: inline-flex; align-items: center; justify-content: center; padding: .65rem .9rem; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: rgba(255,255,255,.78); font-weight: 800; text-align: center; text-decoration: none; touch-action: manipulation; }
.audience-shortcuts a[aria-current="page"] { border-color: var(--ea-gold); background: color-mix(in srgb, var(--ea-gold) 16%, transparent); color: white; }
.audience-shortcuts__status { max-width: 48rem; margin: 0 0 var(--space-4); color: rgba(255,255,255,.7); }
.discovery-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid color-mix(in srgb, var(--room-accent) 30%, transparent); border-top: 3px solid var(--room-accent); border-radius: 15px; background: #151617; box-shadow: 0 28px 80px rgba(0,0,0,.35); }
.discovery-card__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #0d0f10; }
.discovery-card__media::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, transparent 46%, color-mix(in srgb, var(--room-accent) 10%, transparent) 76%, color-mix(in srgb, var(--room-accent) 25%, #151617) 100%); box-shadow: inset 0 -2px color-mix(in srgb, var(--room-accent) 48%, transparent); pointer-events: none; }
.discovery-card__media picture, .discovery-card__media img, .discovery-card__media .media-treatment { width: 100%; height: 100%; display: block; }
.discovery-card__media img { object-fit: cover; filter: saturate(.84) contrast(1.07) brightness(.8); }
.discovery-card__content { display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: var(--space-3); padding: var(--space-4); }
.discovery-card h2 { margin: 0; color: white; font-size: clamp(1.75rem, 8vw, 2.7rem); line-height: 1; text-wrap: balance; }
.discovery-card__promise { margin: 0; color: rgba(255,255,255,.82); font-size: 1.04rem; }
.discovery-card__facts { width: 100%; display: grid; gap: var(--space-2); margin: 0; }
.discovery-card__facts div { padding-top: var(--space-2); border-top: 1px solid rgba(255,255,255,.1); }
.discovery-card__facts dt { color: var(--room-accent); font-size: .68rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.discovery-card__facts dd { margin: .2rem 0 0; color: white; font-weight: 750; }
.discovery-format-label { max-width: 100%; margin: 0; padding: .45rem .65rem; border: 1px solid color-mix(in srgb, var(--room-accent) 28%, transparent); border-radius: 999px; color: rgba(255,255,255,.78); font-size: .82rem; font-weight: 750; }
.discovery-card__content > .action { margin-top: auto; }
.development-label { margin: 0; color: #f7c948; font-size: .72rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.room-list-empty { display: grid; gap: var(--space-3); padding: var(--space-5); border: 1px solid rgba(255,255,255,.12); border-radius: 15px; background: rgba(255,255,255,.04); }
.room-list-empty h2, .room-list-empty p { margin: 0; }
.room-list-empty h2 { color: white; }
.room-list-empty p { color: rgba(255,255,255,.72); }
.room-guidance { position: relative; display: grid; gap: var(--space-5); margin-top: var(--section-space); padding: var(--space-5); overflow: hidden; border: 1px solid color-mix(in srgb, var(--ea-gold) 34%, rgba(255,255,255,.12)); border-top: 3px solid var(--ea-gold); border-radius: 15px; background: radial-gradient(circle at 4% 16%, color-mix(in srgb, var(--ea-gold) 19%, transparent), transparent 38%), linear-gradient(125deg, #17150e, #101112 56%, #0b0c0d); box-shadow: 0 24px 70px rgba(0,0,0,.28); }
.room-guidance__intro { display: grid; align-content: start; gap: var(--space-3); }
.room-guidance h2 { margin: 0; color: white; font-size: clamp(1.7rem, 7vw, 2.8rem); line-height: 1.05; }
.room-guidance__intro > p:not(.eyebrow) { max-width: 34rem; margin: 0; color: rgba(255,255,255,.74); }
.room-guidance__intro > .action { width: 100%; max-width: 100%; justify-self: stretch; margin-top: var(--space-2); white-space: normal; }
.room-guidance__pathways { display: grid; align-content: start; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.room-guidance__pathways li { min-width: 0; }
.room-guidance__pathways a { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-3) var(--space-4); border: 1px solid rgba(255,255,255,.11); border-radius: 10px; background: rgba(255,255,255,.045); color: rgba(255,255,255,.76); text-decoration: none; }
.room-guidance__pathways a > span:first-child { display: grid; gap: .15rem; }
.room-guidance__pathways strong { color: white; }
.room-guidance__pathways a > span:last-child { flex: 0 0 auto; color: var(--ea-gold); font-size: 1.2rem; }

.homepage { padding-bottom: var(--section-space); }
.homepage-hero { display: grid; gap: var(--space-5); padding: var(--space-4) 0 var(--space-6); }
.homepage-media-placeholder { position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.1); background: radial-gradient(circle at 68% 28%, rgba(247,201,72,.15), transparent 20%), radial-gradient(circle at 30% 64%, rgba(223,74,42,.16), transparent 26%), linear-gradient(135deg, #1a1917, #0b0d10 54%, #15100d); isolation: isolate; }
.homepage-media-placeholder::before { position: absolute; inset: 10% -14% auto 28%; height: 62%; border: 1px solid rgba(247,201,72,.18); border-radius: 50%; content: ""; transform: rotate(-9deg); }
.homepage-media-placeholder::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 28%, rgba(7,8,9,.78)); content: ""; z-index: -1; }
.homepage-media { position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.1); background: #0b0d10; }
.homepage-media picture, .homepage-media img { width: 100%; height: 100%; display: block; }
.homepage-media img { object-fit: cover; filter: saturate(.9) contrast(1.04) brightness(.88); }
.homepage-hero__visual img { object-position: 52% 48%; }
.homepage-pathways__media img { object-position: 50% 42%; }
.homepage-family__media img { object-position: 50% 45%; }
.homepage-proof__media img { object-position: 55% 58%; }
.homepage-hero__visual { min-height: clamp(16rem, 72vw, 25rem); order: 2; border-radius: 16px; }
.homepage-hero__visual picture { position: absolute; inset: 0; }
.homepage-hero__visual::before { position: absolute; inset: 10% -14% auto 28%; height: 62%; border: 1px solid rgba(247,201,72,.24); border-radius: 50%; content: ""; transform: rotate(-9deg); }
.homepage-hero__visual::after { background: linear-gradient(180deg, transparent 28%, rgba(7,8,9,.9)); }
.homepage-hero__content { display: grid; align-content: center; order: 1; gap: var(--space-4); }
.homepage-hero h1 { max-width: 11ch; margin: 0; color: white; font-size: clamp(2.7rem, 13vw, 5.8rem); line-height: .92; text-wrap: balance; }
.homepage-hero__content > p:not(.eyebrow) { max-width: 40rem; margin: 0; color: rgba(255,255,255,.78); font-size: clamp(1rem, 2vw, 1.2rem); }
.homepage-confidence { display: grid; margin: 0; padding: 0; border-block: 1px solid rgba(255,255,255,.11); list-style: none; }
.homepage-confidence li { display: grid; gap: .2rem; padding: var(--space-3) 0; border-top: 1px solid rgba(255,255,255,.08); }
.homepage-confidence li:first-child { border-top: 0; }
.homepage-confidence strong { color: white; }
.homepage-confidence span { color: rgba(255,255,255,.62); font-size: .88rem; }
.homepage-section { display: grid; gap: var(--space-5); padding: var(--section-space) 0; }
.homepage-section__intro { max-width: 48rem; display: grid; gap: var(--space-3); }
.homepage-section h2, .homepage-utilities h2 { max-width: 14ch; margin: 0; color: white; font-size: clamp(2rem, 9vw, 4.4rem); line-height: .98; text-wrap: balance; }
.homepage-section h3 { margin: 0; color: white; font-size: clamp(1.35rem, 5vw, 2rem); }
.homepage-section p { margin: 0; color: rgba(255,255,255,.74); }
.homepage-featured { border-bottom: 1px solid rgba(255,255,255,.1); }
.homepage-featured > .action--text { justify-self: start; }
.homepage-pathways { display: grid; gap: var(--space-3); }
.homepage-pathways article { display: grid; align-content: start; gap: var(--space-3); padding: var(--space-5); border: 1px solid rgba(255,255,255,.11); border-radius: 15px; background: rgba(255,255,255,.035); }
.homepage-pathways article { min-height: 100%; grid-template-rows: auto auto 1fr auto; }
.homepage-pathways article > .action { justify-self: start; margin-top: var(--space-2); }
.homepage-pathways__coordinated { border-color: color-mix(in srgb, var(--ea-gold) 34%, rgba(255,255,255,.11)) !important; background: linear-gradient(135deg, color-mix(in srgb, var(--ea-gold) 10%, transparent), rgba(255,255,255,.035)) !important; }
.homepage-pathways__media { min-height: 8rem; margin: calc(var(--space-5) * -1) calc(var(--space-5) * -1) var(--space-2); border-width: 0 0 1px; border-radius: 15px 15px 0 0; }
.homepage-family { padding: var(--space-6) var(--space-5); border-block: 1px solid rgba(255,255,255,.11); border-left: 3px solid var(--ea-gold); background: linear-gradient(100deg, color-mix(in srgb, var(--ea-gold) 8%, transparent), rgba(255,255,255,.015) 55%, transparent); }
.homepage-family > div { min-width: 0; display: grid; align-content: start; gap: var(--space-3); }
.homepage-family .action { justify-self: start; }
.homepage-family__media { min-height: 11rem; border-radius: 12px; }
.homepage-guidance { margin-bottom: var(--section-space); }
.homepage-guidance .room-guidance__pathways li { min-height: 64px; display: flex; align-items: center; padding: var(--space-3) var(--space-4); border: 1px solid rgba(255,255,255,.11); border-radius: 10px; background: rgba(255,255,255,.045); color: rgba(255,255,255,.72); }
.homepage-guidance .room-guidance__pathways strong { display: block; margin-bottom: .15rem; }
.homepage-proof { margin-inline: calc(var(--page-gutter) * -1); padding-inline: var(--page-gutter); border-block: 1px solid rgba(255,255,255,.11); background: linear-gradient(180deg, rgba(255,255,255,.028), transparent 72%); }
.homepage-proof__themes { display: grid; gap: var(--space-4); }
.homepage-proof__themes article { min-width: 0; display: grid; align-content: start; gap: var(--space-2); padding-top: var(--space-4); border-top: 2px solid rgba(255,255,255,.17); }
.homepage-proof__themes h3, .homepage-proof__access h3 { font-size: clamp(1.25rem, 4.5vw, 1.75rem); line-height: 1.08; }
.homepage-proof__themes h3 { text-wrap: balance; }
.homepage-proof__media { min-height: 8rem; margin-bottom: var(--space-2); border-radius: 10px; }
.homepage-proof__media-band { width: 100%; min-height: 12rem; max-height: 20rem; aspect-ratio: 16 / 5; margin-bottom: var(--space-5); }
.homepage-proof__media-band picture { position: absolute; inset: 0; }
.homepage-proof__media-band img { object-position: 50% 58%; }
.homepage-proof__access { display: grid; gap: var(--space-2); max-width: 54rem; padding: var(--space-4) 0 var(--space-2); border-top: 1px solid rgba(255,255,255,.11); }
.homepage-utilities { display: grid; gap: var(--space-5); padding: var(--section-space) 0; }
.homepage-utilities > div { display: grid; gap: var(--space-3); }
.homepage-utilities ul { display: grid; gap: 0; margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.11); list-style: none; }
.homepage-utilities li { display: grid; gap: var(--space-1); padding: var(--space-3) 0; border-bottom: 1px solid rgba(255,255,255,.11); }
.homepage-utilities li .action { justify-self: start; }
.homepage-utilities li > span { color: rgba(255,255,255,.6); font-size: .9rem; }
.homepage-utilities .homepage-utility--voucher { margin-bottom: var(--space-2); padding: var(--space-4); border: 1px solid color-mix(in srgb, var(--ea-gold) 28%, rgba(255,255,255,.11)); border-left: 3px solid var(--ea-gold); border-radius: 10px; background: color-mix(in srgb, var(--ea-gold) 6%, transparent); }
.room-card__media { position: absolute; inset: 0; z-index: -2; }
.room-card__media::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.28) 40%, rgba(0,0,0,.96)); }
.room-card__media picture, .room-card__media img, .room-card__media .media-treatment { width: 100%; height: 100%; display: block; }
.room-card__media img { object-fit: cover; filter: saturate(.84) contrast(1.07) brightness(.76); }
.media-treatment { min-height: inherit; background: radial-gradient(circle at 72% 24%, color-mix(in srgb, var(--room-accent-secondary, var(--room-accent)) 34%, transparent), transparent 24%), radial-gradient(circle at 28% 38%, color-mix(in srgb, var(--room-accent) 42%, transparent), transparent 30%), linear-gradient(135deg, #151719, #090a0b 54%, color-mix(in srgb, var(--room-accent) 58%, #090a0b)); }
.room-theme--circus .media-treatment { background-image: radial-gradient(circle at 70% 20%, rgba(255,232,171,.2), transparent 18%), repeating-conic-gradient(from 12deg at 50% 100%, color-mix(in srgb, var(--room-accent) 48%, #160d08) 0 10deg, #160d08 10deg 20deg); }
.room-theme--electric .media-treatment { background-image: linear-gradient(135deg, transparent 45%, color-mix(in srgb, var(--room-accent) 65%, transparent) 46% 47%, transparent 48%), radial-gradient(circle at 65% 30%, color-mix(in srgb, var(--room-accent) 50%, transparent), transparent 30%), linear-gradient(#09101a, #050709); }
.room-card__content { align-self: end; display: grid; gap: var(--space-3); padding: var(--space-4); }
.room-card h2 { max-width: 10ch; margin: 0; color: white; font-size: clamp(2rem, 10vw, 3.6rem); line-height: .96; }
.room-card p { margin: 0; color: rgba(255,255,255,.84); }
.room-card__facts { display: grid; grid-template-columns: 1fr; gap: var(--space-2); margin: 0; }
.room-card__facts div { padding: .7rem .8rem; border: 1px solid rgba(255,255,255,.1); border-radius: 10px; background: rgba(0,0,0,.38); }
.room-card__facts dt { color: var(--room-accent); font-size: .68rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.room-card__facts dd { margin: .15rem 0 0; color: white; font-weight: 750; }

.room-page { --room-hero-min-height: 36rem; --room-hero-padding-top: clamp(2rem, 8vw, 3.5rem); --room-hero-padding-bottom: clamp(2.5rem, 8vw, 4rem); --room-hero-content-width: 54rem; --room-hero-title-width: 12ch; --room-hero-copy-width: 38rem; --room-hero-fact-gap: var(--space-4); }
.room-hero { position: relative; min-height: var(--room-hero-min-height); display: grid; align-items: start; isolation: isolate; overflow: hidden; padding-block: var(--room-hero-padding-top) var(--room-hero-padding-bottom); padding-inline: max(var(--page-gutter), calc((100% - var(--wide-content-width)) / 2)); }
.room-hero__media { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.room-hero__media::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.2) 42%, #070809 100%), linear-gradient(90deg, rgba(0,0,0,.8), transparent 75%); }
.room-hero__picture, .room-hero__picture img, .room-hero__media .media-treatment { width: 100%; height: 100%; display: block; }
.room-hero__picture img { object-fit: cover; object-position: 56% 50%; filter: saturate(.9) contrast(1.04) brightness(.82); }
.room-hero__content { width: min(var(--room-hero-content-width), 100%); display: grid; align-content: start; gap: var(--space-3); }
.room-hero h1 { max-width: var(--room-hero-title-width); margin: 0; color: white; font-size: clamp(2.5rem, 12vw, 3.4rem); line-height: .9; overflow-wrap: anywhere; text-wrap: balance; }
.room-hero p:not(.eyebrow) { max-width: var(--room-hero-copy-width); margin: 0; color: rgba(255,255,255,.82); font-size: clamp(1rem, 1.8vw, 1.18rem); }
.room-hero .room-hero__promise { max-width: 34rem; color: white; font-size: clamp(1.2rem, 5vw, 1.65rem); font-weight: 850; line-height: 1.2; }
.room-hero .action-row { margin-top: var(--space-1); }
.quick-fit { display: grid; grid-template-columns: 1fr; gap: 0; margin-top: var(--room-hero-fact-gap); margin-bottom: var(--section-space); overflow: hidden; border: 1px solid rgba(255,255,255,.11); border-radius: 15px; background: rgba(255,255,255,.045); }
.quick-fit > div { display: grid; align-content: start; gap: var(--space-2); padding: var(--space-4); border-top: 1px solid rgba(255,255,255,.1); }
.quick-fit > div:first-of-type { border-top: 0; }
.card-grid article, .related-grid article, .final-booking, .booking-help, .decision-facts__group, .audience-panel, .room-notice { border: 1px solid rgba(255,255,255,.11); border-radius: 15px; background: rgba(255,255,255,.045); box-shadow: 0 20px 60px rgba(0,0,0,.22); }
.quick-fit span { color: var(--room-accent, var(--ea-gold)); font-size: .72rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.quick-fit strong { color: white; font-size: clamp(1.05rem, 4vw, 1.35rem); }
.quick-fit p { margin: 0; color: rgba(255,255,255,.72); }
.content-section { display: grid; gap: var(--space-4); padding: var(--section-space) 0; }
.content-section > * { min-width: 0; }
.content-section h2 { width: min(12ch, 100%); margin: 0; color: white; font-size: clamp(2rem, 8vw, 4.1rem); line-height: .98; }
.content-section h3 { margin: 0; color: white; }
.content-section p, .content-section li { color: rgba(255,255,255,.76); }
.content-section p { margin: 0; }
.story-grid, .challenge, .suitability, .final-booking { grid-template-columns: 1fr; gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.story-grid, .suitability { align-items: start; }
.story-grid > div, .challenge > div:first-child, .suitability > div:first-child { display: grid; gap: var(--space-4); }
.media-panel { min-height: 0; aspect-ratio: 3 / 2; margin: 0; display: grid; overflow: hidden; border: 1px solid color-mix(in srgb, var(--room-accent) 20%, rgba(255,255,255,.1)); border-radius: 4px; background: #080909; box-shadow: 0 22px 54px rgba(0,0,0,.28); }
.media-panel picture, .media-panel img, .media-panel .media-treatment { width: 100%; height: 100%; display: block; }
.media-panel img { object-fit: cover; filter: saturate(.94) contrast(1.03) brightness(.94); }
.card-grid, .related-grid, .suitability__lists { display: grid; grid-template-columns: 1fr; gap: var(--space-4); }
.card-grid article { display: grid; gap: var(--space-3); padding: var(--space-4) 0 0; border: 0; border-top: 1px solid color-mix(in srgb, var(--room-accent, var(--ea-gold)) 30%, transparent); border-radius: 0; background: transparent; box-shadow: none; }
.suitability article { display: grid; gap: var(--space-3); padding: var(--space-4); border-top: 1px solid color-mix(in srgb, var(--room-accent) 30%, rgba(255,255,255,.14)); }
.step-number, .timeline > li > span { color: var(--room-accent, var(--ea-gold)); font-size: .72rem; font-weight: 850; letter-spacing: .12em; }
.suitability ul { display: grid; gap: var(--space-2); margin: 0; padding-left: 1.15rem; }
.challenge__reassurance { display: grid; gap: var(--space-3); padding: var(--space-5); }
.challenge__reassurance strong { color: var(--room-accent, var(--ea-gold)); font-size: 1.15rem; }
.audience-panel { display: grid; gap: var(--space-3); padding: var(--space-4); border-left: 3px solid var(--room-accent, var(--ea-gold)); border-radius: 4px; background: linear-gradient(90deg, color-mix(in srgb, var(--room-accent, var(--ea-gold)) 11%, transparent), rgba(255,255,255,.025)); box-shadow: none; }
.audience-panel h3 { font-size: clamp(1.2rem, 5vw, 1.65rem); }
.decision-facts__grid { display: grid; grid-template-columns: 1fr; gap: var(--space-3); margin: 0; }
.decision-facts__group { display: flex; flex-direction: column; padding: var(--space-4); }
.decision-facts__group h3 { margin-bottom: var(--space-4); font-size: 1.25rem; }
.decision-facts__group dl { flex: 1; margin: 0; }
.decision-facts__group dl > div { padding: .8rem 0; border-top: 1px solid rgba(255,255,255,.1); }
.decision-facts dt { color: var(--room-accent, var(--ea-gold)); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.decision-facts dd { display: grid; gap: var(--space-2); margin: var(--space-2) 0 0; line-height: 1.58; }
.decision-facts dd strong { color: white; }
.decision-facts dd span { color: rgba(255,255,255,.72); }
.sensory-notice { display: grid; gap: var(--space-2); margin-top: var(--space-3); padding: var(--space-3); border-left: 3px solid var(--room-accent, var(--ea-gold)); background: color-mix(in srgb, var(--room-accent, var(--ea-gold)) 9%, transparent); }
.sensory-notice h4 { margin: 0; color: white; font-size: 1rem; }
.sensory-notice ul { margin: 0; padding-left: 1.15rem; }
.decision-facts__preparation { padding-left: var(--space-4); border-left: 2px solid var(--room-accent, var(--ea-gold)); }
.decision-facts__preparation strong { color: white; }
.booking-checkpoint { display: grid; gap: var(--space-4); align-items: center; margin-block: var(--space-4) var(--section-space); padding: var(--space-5); border-block: 1px solid color-mix(in srgb, var(--room-accent, var(--ea-gold)) 34%, transparent); background: linear-gradient(90deg, color-mix(in srgb, var(--room-accent, var(--ea-gold)) 9%, transparent), transparent); }
.booking-checkpoint > div { display: grid; gap: var(--space-2); }
.booking-checkpoint p { margin: 0; color: rgba(255,255,255,.76); }
.related-cue { color: rgba(255,255,255,.72); }
.related-cue strong { color: var(--room-accent); }
.related-rooms > div:first-child { display: grid; gap: var(--space-3); max-width: 44rem; }
.related-grid article { display: grid; grid-template-rows: auto 1fr auto; align-items: start; gap: var(--space-5); padding: var(--space-5); border-color: color-mix(in srgb, var(--room-accent, var(--ea-gold)) 26%, transparent); background: linear-gradient(135deg, color-mix(in srgb, var(--room-accent, var(--ea-gold)) 9%, transparent), rgba(255,255,255,.035)); }
.related-grid article > div { display: grid; gap: var(--space-3); }
.room-notice { width: min(var(--wide-content-width), calc(100% - 2 * var(--page-gutter))); display: grid; gap: var(--space-3); margin: var(--section-space) auto; padding: var(--space-5); }
.room-notice h2 { margin: 0; color: white; }
.social-proof blockquote { margin-inline: 0; }
.development-banner { position: relative; z-index: 4; padding: .7rem var(--page-gutter); background: #f7c948; color: #171000; font-weight: 900; text-align: center; }
.timeline { display: grid; grid-template-columns: 1fr; gap: var(--space-4); margin: 0; padding: 0; list-style: none; }
.timeline li { display: grid; gap: var(--space-2); padding-top: var(--space-4); border-top: 1px solid color-mix(in srgb, var(--room-accent, var(--ea-gold)) 24%, transparent); }
.timeline strong { color: white; }
.faq { max-width: 74rem; margin-top: var(--space-5); padding-top: calc(var(--section-space) + var(--space-4)); border-top: 1px solid rgba(255,255,255,.1); }
.faq__intro { max-width: 42rem; font-size: 1.05rem; }
.faq > div { display: grid; gap: var(--space-3); }
.faq details { padding: var(--space-4) clamp(1rem, 3vw, 1.65rem); border: 1px solid rgba(255,255,255,.11); border-radius: 14px; background: rgba(255,255,255,.04); }
.faq summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; color: white; font-weight: 850; }
.faq details p { padding-top: var(--space-3); }
.final-booking { min-height: 12rem; padding: clamp(1.5rem, 4vw, 3.5rem); margin-bottom: var(--section-space); border-color: color-mix(in srgb, var(--room-accent) 38%, rgba(255,255,255,.12)); background: radial-gradient(circle at 88% 20%, color-mix(in srgb, var(--room-accent) 18%, transparent), transparent 34%), linear-gradient(135deg, color-mix(in srgb, var(--room-accent) 10%, #111213), #111213 68%); }
.final-booking > div { max-width: 48rem; display: grid; gap: var(--space-3); }

.booking-page { padding: var(--space-5) 0 var(--section-space); }
.booking-reassurance { display: flex; flex-wrap: wrap; gap: var(--space-2); padding-bottom: var(--space-4); }
.booking-reassurance span { padding: .5rem .7rem; border: 1px solid rgba(255,255,255,.1); border-radius: 999px; color: rgba(255,255,255,.76); font-weight: 750; }
.booking-shell { overflow: hidden; border: 1px solid rgba(255,255,255,.11); border-right: 0; border-left: 0; background: rgba(255,255,255,.06); }
.booking-shell__header { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: var(--space-4); padding: var(--space-4); }
.booking-shell__header > div { display: grid; gap: var(--space-2); }
.booking-shell h1 { max-width: 16ch; margin: 0; color: white; font-size: clamp(1.8rem, 8vw, 3.4rem); line-height: .98; }
.booking-shell p { margin: 0; color: rgba(255,255,255,.74); }
.booking-status { min-height: 44px; display: flex; align-items: center; padding: var(--space-3) var(--space-4); border-top: 1px solid rgba(255,255,255,.1); color: var(--ea-gold); font-weight: 800; }
.booking-frame { display:block; width:100%; border:0; background:#fff; }
.booking-frame iframe { display:block; width:100%; height:36rem; border:0; background:#fff; }
.booking-help { display: grid; gap: var(--space-3); margin-top: var(--space-5); padding: var(--space-5); }
.booking-help h2 { margin: 0; color: white; }
.seo-review-page .listing-intro h1 { max-width: 18ch; }
.seo-review-page .decision-facts__group { display: grid; gap: var(--space-3); }
.seo-review-page .decision-facts__group h2 { width: auto; font-size: 1.35rem; }
.seo-review-page .decision-facts__group h3 { color: #9cc8f5; font-size: 1.35rem; }
.seo-review-page .decision-facts__group p { margin: 0; }
.seo-review-page .decision-facts__group img { width: min(100%, 36rem); height: auto; border-radius: 8px; }
.seo-review-url { color: rgba(255,255,255,.58) !important; font-size: .85rem; }
.seo-review-graph { max-width: 100%; margin: 0; padding: var(--space-4); overflow: auto; border: 1px solid rgba(255,255,255,.11); border-radius: 12px; background: #111314; color: rgba(255,255,255,.8); font-size: .78rem; white-space: pre-wrap; }
.directory-page { width: min(var(--wide-content-width), calc(100% - 2 * var(--page-gutter))); margin-inline: auto; padding: var(--section-space) 0; }
.directory-intro { display: grid; gap: var(--space-3); max-width: 52rem; }
.directory-intro h1 { max-width: 12ch; margin: 0; color: white; font-size: clamp(2.6rem, 12vw, 6.5rem); line-height: .94; }
.directory-intro p { margin: 0; color: rgba(255,255,255,.74); }
.directory-section-nav { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-5) 0 var(--section-space); }
.directory-section-nav a { min-height: 44px; display: inline-flex; align-items: center; padding: .6rem .8rem; border: 1px solid rgba(255,255,255,.14); border-radius: 999px; color: white; font-weight: 750; text-decoration: none; }
.directory-section { padding: var(--space-5) 0; border-top: 1px solid rgba(255,255,255,.12); scroll-margin-top: var(--space-4); }
.directory-section__heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--space-2); margin-bottom: var(--space-4); }
.directory-section__heading h2 { margin: 0; color: white; font-size: clamp(1.7rem, 7vw, 2.8rem); }
.directory-section__heading p { margin: 0; color: rgba(255,255,255,.6); }
.directory-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-3); }
.directory-card { min-width: 0; display: grid; align-content: start; gap: var(--space-3); padding: var(--space-4); border: 1px solid rgba(255,255,255,.11); border-radius: 12px; background: rgba(255,255,255,.035); }
.directory-card__heading { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--space-2); }
.directory-card h3 { max-width: 26ch; margin: 0; color: white; font-size: 1.15rem; }
.directory-status { padding: .32rem .55rem; border-radius: 999px; background: rgba(255,255,255,.1); color: rgba(255,255,255,.82); font-size: .68rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.directory-status--developed { background: rgba(104,211,145,.15); color: #9ae6b4; }
.directory-status--blocked { background: rgba(247,201,72,.15); color: #f7c948; }
.directory-status--historical { background: rgba(156,200,245,.12); color: #9cc8f5; }
.directory-card__route { display: grid; gap: var(--space-2); }
.directory-card__route .action { justify-self: start; }
.directory-card code { overflow-wrap: anywhere; color: rgba(255,255,255,.68); font-size: .78rem; }
.directory-muted { color: rgba(255,255,255,.58); }
.directory-facts { display: grid; gap: var(--space-2); margin: 0; }
.directory-facts > div { display: grid; gap: .25rem; padding-top: var(--space-2); border-top: 1px solid rgba(255,255,255,.08); }
.directory-facts dt { color: rgba(255,255,255,.52); font-size: .68rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.directory-facts dd { margin: 0; color: rgba(255,255,255,.76); font-size: .9rem; overflow-wrap: anywhere; }

.large-groups-page { width: min(var(--wide-content-width), calc(100% - 2 * var(--page-gutter))); margin-inline: auto; padding-bottom: var(--section-space); }
.large-groups-context { display: grid; gap: var(--space-1); margin: var(--space-3) 0; padding: var(--space-3) var(--space-4); border-left: 3px solid var(--ea-gold); background: color-mix(in srgb, var(--ea-gold) 7%, transparent); }
.large-groups-context strong { color: white; }
.large-groups-context span { color: rgba(255,255,255,.7); }
.large-groups-hero { display: grid; gap: var(--space-5); padding: var(--space-5) 0 var(--space-6); }
.large-groups-hero__content { display: grid; align-content: center; gap: var(--space-4); }
.large-groups-hero h1 { max-width: 11ch; margin: 0; color: white; font-size: clamp(2.7rem, 13vw, 6rem); line-height: .92; text-wrap: balance; }
.large-groups-hero__content > p:not(.eyebrow) { max-width: 42rem; margin: 0; color: rgba(255,255,255,.78); font-size: clamp(1rem, 2vw, 1.2rem); }
.large-groups-placeholder { position: relative; width: 100%; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: radial-gradient(circle at 26% 30%, rgba(247,201,72,.2), transparent 18%), radial-gradient(circle at 72% 54%, rgba(223,74,42,.16), transparent 23%), linear-gradient(135deg, #1b1915, #0b0d10 58%, #17110c); isolation: isolate; }
.large-groups-placeholder::before { position: absolute; inset: 14% 12% 18%; border: 1px solid rgba(247,201,72,.18); border-radius: 50%; content: ""; transform: rotate(-7deg); }
.large-groups-placeholder::after { position: absolute; inset: auto 0 0; height: 46%; background: linear-gradient(transparent, rgba(7,8,9,.86)); content: ""; }
.large-groups-placeholder--hero { aspect-ratio: 3 / 2; }
.large-groups-placeholder--group { aspect-ratio: 4 / 3; }
.large-groups-placeholder--venue { aspect-ratio: 16 / 9; }
.large-groups-image { display:block; width:100%; overflow:hidden; border:1px solid rgba(255,255,255,.12); border-radius:16px; background:#0b0d10; }
.large-groups-image img { display:block; width:100%; height:100%; object-fit:cover; }
.large-groups-image--hero { aspect-ratio:3 / 2; }
.large-groups-image--group { aspect-ratio:4 / 3; }
.large-groups-image--venue { aspect-ratio:16 / 9; }
.large-groups-reassurance { display: grid; margin: 0; padding: 0; border-block: 1px solid rgba(255,255,255,.11); list-style: none; }
.large-groups-reassurance li { display: grid; align-content: start; gap: .2rem; padding: var(--space-3) 0; border-top: 1px solid rgba(255,255,255,.08); }
.large-groups-reassurance li:first-child { border-top: 0; }
.large-groups-reassurance strong { color: white; }
.large-groups-reassurance span { color: rgba(255,255,255,.63); font-size: .88rem; }
.large-groups-section { display: grid; gap: var(--space-5); padding: var(--section-space) 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.large-groups-section__intro { max-width: 48rem; display: grid; gap: var(--space-3); }
.large-groups-section h2, .large-groups-final h2 { max-width: 14ch; margin: 0; color: white; font-size: clamp(2rem, 9vw, 4.4rem); line-height: .98; text-wrap: balance; }
.large-groups-section h3 { margin: 0; color: white; font-size: clamp(1.25rem, 5vw, 1.8rem); }
.large-groups-section p, .large-groups-final p { margin: 0; color: rgba(255,255,255,.74); }
.large-groups-audience-grid { display: grid; gap: var(--space-4); }
.large-groups-audience-grid article { display: grid; align-content: start; gap: var(--space-3); padding: var(--space-5); border-top: 2px solid color-mix(in srgb, var(--ea-gold) 42%, transparent); background: linear-gradient(135deg, color-mix(in srgb, var(--ea-gold) 7%, transparent), transparent 72%); }
.large-groups-setup { align-items: start; }
.large-groups-setup > div:first-child { display: grid; gap: var(--space-4); }
.large-groups-example { display: grid; gap: var(--space-2); padding: var(--space-4); border-left: 3px solid var(--ea-gold); background: color-mix(in srgb, var(--ea-gold) 8%, transparent); }
.large-groups-example strong { color: white; }
.large-groups-qualified { padding-top: var(--space-3); border-top: 1px solid rgba(255,255,255,.1); }
.large-groups-rooms .room-discovery-grid { max-width: 68rem; }
.large-groups-rooms > .action { justify-self: start; }
.large-groups-flow ol { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: group-step; }
.large-groups-flow li { display: grid; grid-template-columns: auto minmax(0,1fr); gap: var(--space-3); padding: var(--space-4) 0; border-top: 1px solid rgba(255,255,255,.11); }
.large-groups-flow li > span { color: var(--ea-gold); font-size: .74rem; font-weight: 900; letter-spacing: .1em; }
.large-groups-flow li > div { display: grid; gap: var(--space-2); }
.large-groups-value { align-items: start; }
.large-groups-value > div { display: grid; align-content: start; gap: var(--space-3); }
.large-groups-value .large-groups-placeholder { margin-bottom: var(--space-2); }
.large-groups-practical dl { display: grid; gap: var(--space-3); margin: 0; }
.large-groups-practical dl > div { display: grid; gap: var(--space-2); padding: var(--space-4); border: 1px solid rgba(255,255,255,.1); border-left: 3px solid var(--ea-gold); background: rgba(255,255,255,.035); }
.large-groups-practical dt { color: white; font-size: 1.05rem; font-weight: 850; }
.large-groups-practical dd { margin: 0; color: rgba(255,255,255,.72); }
.large-groups-faq { margin-top: 0; }
.large-groups-final { display: grid; gap: var(--space-5); align-items: center; margin: var(--section-space) 0; padding: var(--space-5); border: 1px solid color-mix(in srgb, var(--ea-gold) 32%, rgba(255,255,255,.1)); border-top: 3px solid var(--ea-gold); border-radius: 15px; background: radial-gradient(circle at 8% 20%, color-mix(in srgb, var(--ea-gold) 15%, transparent), transparent 36%), linear-gradient(125deg, #17150e, #0d0f10 70%); }
.large-groups-final > div { display: grid; gap: var(--space-3); }
.large-groups-final .action-row{align-items:center;gap:var(--space-3)}.large-groups-final .action--primary,.large-groups-final .action--secondary{min-height:44px;padding:.65rem .9rem;border-radius:var(--radius-md)}.large-groups-final .action--primary{border-color:var(--ea-gold);background:var(--ea-gold);color:var(--ea-ink)}.large-groups-final .action--primary:hover{background:color-mix(in srgb,var(--ea-gold) 82%,var(--ea-ink));color:var(--ea-ink)}.large-groups-final .action--secondary{border-color:rgba(255,255,255,.3);background:transparent}.large-groups-final .action--text{min-height:44px;padding:.5rem 0;align-items:center}

/* Canonical Christchurch gift-voucher page */
.voucher-page { width: min(var(--wide-content-width), calc(100% - 2 * var(--page-gutter))); margin-inline: auto; padding-bottom: var(--section-space); }
.voucher-hero { display: grid; gap: var(--space-5); padding: var(--space-5) 0 var(--space-6); }
.voucher-hero__content { display: grid; align-content: center; gap: var(--space-4); }
.voucher-hero h1 { max-width: 11ch; margin: 0; color: white; font-size: clamp(2.7rem, 13vw, 6rem); line-height: .92; text-wrap: balance; }
.voucher-hero__content > p:not(.eyebrow) { max-width: 42rem; margin: 0; color: rgba(255,255,255,.78); font-size: clamp(1rem, 2vw, 1.2rem); }
.voucher-hero__content .voucher-hero__purchase-context { max-width: 34rem; color: rgba(255,255,255,.62); font-size: .9rem; line-height: 1.5; }
.voucher-hero .action-row,.voucher-final .action-row{align-items:center;gap:var(--space-3)}.voucher-hero .action--primary,.voucher-purchase-checkpoint .action--primary,.voucher-final .action--primary{min-height:44px;padding:.65rem .9rem;border-color:var(--ea-gold);border-radius:var(--radius-md);background:var(--ea-gold);color:var(--ea-ink)}.voucher-hero .action--primary:hover,.voucher-purchase-checkpoint .action--primary:hover,.voucher-final .action--primary:hover{background:color-mix(in srgb,var(--ea-gold) 82%,var(--ea-ink));color:var(--ea-ink)}.voucher-hero .action--secondary{min-height:44px;padding:.65rem .9rem;border-color:rgba(255,255,255,.3);border-radius:var(--radius-md);background:transparent}.voucher-final .action--text{min-height:44px;padding:.5rem 0;align-items:center}
.voucher-placeholder { position: relative; width: 100%; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: radial-gradient(circle at 68% 30%, rgba(247,201,72,.18), transparent 20%), radial-gradient(circle at 26% 70%, rgba(223,74,42,.14), transparent 24%), linear-gradient(140deg, #1b1711, #0b0d10 62%, #17100d); isolation: isolate; }
.voucher-placeholder::before { position: absolute; inset: 18% 16%; border: 1px solid rgba(247,201,72,.22); border-radius: 10px; content: ""; transform: rotate(-4deg); }
.voucher-placeholder::after { position: absolute; inset: auto 0 0; height: 48%; background: linear-gradient(transparent, rgba(7,8,9,.88)); content: ""; }
.voucher-placeholder--hero { aspect-ratio: 3 / 2; }
.voucher-placeholder--preview, .voucher-placeholder--group { aspect-ratio: 4 / 3; }
.voucher-supporting-image { display:block; width:100%; overflow:hidden; border:1px solid rgba(255,255,255,.12); border-radius:16px; background:#0b0d10; }
.voucher-supporting-image img { display:block; width:100%; height:100%; object-fit:cover; }
.voucher-supporting-image--preview, .voucher-supporting-image--group { aspect-ratio:4 / 3; }
.voucher-hero__media { display: grid; width: 100%; min-width: 0; aspect-ratio: 3 / 2; place-items: center; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: radial-gradient(circle at 66% 32%, rgba(247,201,72,.1), transparent 22%), #08090b; }
.voucher-hero__media img { display: block; width: 100%; height: 100%; object-fit: contain; }
.voucher-reassurance { display: grid; margin: 0; padding: 0; border-block: 1px solid rgba(255,255,255,.11); list-style: none; }
.voucher-reassurance li { display: grid; align-content: start; gap: .2rem; padding: var(--space-3) 0; border-top: 1px solid rgba(255,255,255,.08); }
.voucher-reassurance li:first-child { border-top: 0; }
.voucher-reassurance strong { color: white; }
.voucher-reassurance span { color: rgba(255,255,255,.63); font-size: .88rem; }
.voucher-section { display: grid; gap: var(--space-5); padding: var(--section-space) 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.voucher-section__intro { max-width: 48rem; display: grid; gap: var(--space-3); }
.voucher-section h2, .voucher-final h2 { max-width: 14ch; margin: 0; color: white; font-size: clamp(2rem, 9vw, 4.4rem); line-height: .98; text-wrap: balance; }
.voucher-section h3 { margin: 0; color: white; font-size: clamp(1.2rem, 4.5vw, 1.65rem); }
.voucher-section p, .voucher-final p { margin: 0; color: rgba(255,255,255,.74); }
.voucher-process { scroll-margin-top: var(--space-5); }
.voucher-process ol { display: grid; margin: 0; padding: 0; list-style: none; }
.voucher-process li { display: grid; grid-template-columns: auto minmax(0,1fr); gap: var(--space-3); padding: var(--space-4) 0; border-top: 1px solid rgba(255,255,255,.11); }
.voucher-process li > span { color: var(--ea-gold); font-size: .74rem; font-weight: 900; letter-spacing: .1em; }
.voucher-process li > div { display: grid; gap: var(--space-2); }
.voucher-purchase-checkpoint{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-5);padding:var(--space-4) 0;border-bottom:1px solid rgba(255,255,255,.1)}.voucher-purchase-checkpoint>div{display:grid;gap:var(--space-1)}.voucher-purchase-checkpoint p{margin:0;color:rgba(255,255,255,.68)}
.voucher-choice { align-items: center; }
.voucher-choice > div:first-child { display: grid; gap: var(--space-4); }
.voucher-choice ul { display: grid; gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
.voucher-choice li { padding-left: var(--space-4); border-left: 2px solid var(--ea-gold); color: rgba(255,255,255,.8); }
.voucher-delivery__layout { display: grid; gap: var(--space-5); align-items: start; }
.voucher-delivery__layout > div { display: grid; gap: var(--space-4); }
.voucher-delivery dl, .voucher-terms dl { display: grid; gap: 0; margin: 0; }
.voucher-delivery dl > div, .voucher-terms dl > div { display: grid; gap: var(--space-2); padding: var(--space-4) 0; border-top: 1px solid rgba(255,255,255,.11); }
.voucher-delivery dt, .voucher-terms dt { color: white; font-weight: 850; }
.voucher-delivery dd, .voucher-terms dd { margin: 0; color: rgba(255,255,255,.72); }
.voucher-delivery aside, .voucher-terms__promotion { display: grid; gap: var(--space-2); padding: var(--space-4); border-left: 3px solid var(--ea-gold); background: color-mix(in srgb, var(--ea-gold) 8%, transparent); }
.voucher-delivery aside strong, .voucher-terms__promotion strong { color: white; }
.voucher-delivery aside .action { justify-self: start; }
.voucher-terms dl { border-bottom: 1px solid rgba(255,255,255,.11); }
.voucher-value { max-width: 72rem; border-bottom: 0; }
.voucher-value > div { display: grid; gap: var(--space-3); padding: clamp(var(--space-5), 7vw, var(--space-7)); border-top: 3px solid var(--ea-gold); border-radius: 15px; background: radial-gradient(circle at 10% 10%, color-mix(in srgb, var(--ea-gold) 14%, transparent), transparent 38%), #101113; }
.voucher-faq { margin-top: 0; }
.voucher-final { display: grid; gap: var(--space-5); align-items: center; margin: var(--section-space) 0; padding: var(--space-5); border: 1px solid color-mix(in srgb, var(--ea-gold) 32%, rgba(255,255,255,.1)); border-top: 3px solid var(--ea-gold); border-radius: 15px; background: radial-gradient(circle at 8% 20%, color-mix(in srgb, var(--ea-gold) 15%, transparent), transparent 36%), linear-gradient(125deg, #17150e, #0d0f10 70%); }
.voucher-final > div { display: grid; gap: var(--space-3); }
.voucher-route-notice { display: grid; gap: var(--space-1); margin-top: var(--space-4); padding: var(--space-4); border: 1px solid color-mix(in srgb, var(--ea-gold) 38%, rgba(255,255,255,.12)); border-left: 3px solid var(--ea-gold); background: color-mix(in srgb, var(--ea-gold) 8%, transparent); }
.voucher-route-notice strong { color: white; }
.voucher-route-notice span { color: rgba(255,255,255,.72); }

@media (max-width: 63.999rem) {
  .site-header { flex-wrap: wrap; }
  .site-brand small { display: none; }
  .site-navigation-panel { width: 100%; }
  .site-navigation-panel .site-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); padding-bottom: var(--space-2); }
  .site-navigation-panel .site-nav__link { padding: .55rem .3rem; white-space: normal; }
  .site-navigation-panel .site-nav__book { padding-inline: .9rem; }
  .site-navigation-enhanced .site-menu-toggle { display: inline-flex; }
  .site-navigation-enhanced .site-navigation-panel { position: fixed; inset: 0; z-index: 1000; width: auto; min-height: 100dvh; display: none; grid-template-rows: auto 1fr; align-content: start; gap: var(--space-5); padding: max(var(--space-4), env(safe-area-inset-top)) max(var(--page-gutter), env(safe-area-inset-right)) max(var(--space-5), env(safe-area-inset-bottom)) max(var(--page-gutter), env(safe-area-inset-left)); overflow-y: auto; background: radial-gradient(circle at 90% 4%, color-mix(in srgb, var(--ea-gold) 16%, transparent), transparent 28%), #090a0b; }
  .site-navigation-enhanced .site-navigation-panel[data-open="true"] { display: grid; }
  .site-navigation-enhanced .site-navigation-panel__header { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding-bottom: var(--space-3); border-bottom: 1px solid rgba(255,255,255,.12); color: white; font-weight: 900; }
  .site-navigation-enhanced .site-navigation-panel .site-nav { grid-template-columns: 1fr; align-content: start; gap: 0; padding: 0; }
  .site-navigation-enhanced .site-navigation-panel .site-nav__link { min-height: 56px; padding: .7rem .25rem; border-bottom: 1px solid rgba(255,255,255,.1); font-size: clamp(1.15rem, 5vw, 1.55rem); }
  .site-navigation-enhanced .site-navigation-panel .site-nav__link::after { right: auto; bottom: 0; width: 3rem; }
  .site-navigation-enhanced .site-navigation-panel .site-nav__book { justify-self: stretch; justify-content: center; margin-top: var(--space-4); padding: .8rem 1rem; border-bottom-color: var(--ea-gold); }
}

/* Canonical Christchurch About page */
.about-page{--about-readable:var(--content-width);--about-wide:var(--wide-content-width);width:100%;padding-bottom:var(--section-space)}
.about-hero,.about-section,.about-next{width:min(calc(100% - 2 * var(--page-gutter)),var(--about-readable));margin-inline:auto}
.about-hero{width:min(calc(100% - 2 * var(--page-gutter)),var(--about-wide));display:grid;gap:clamp(1.5rem,4vw,4rem);align-items:center;padding-block:clamp(2rem,6vw,4.5rem);border-bottom:1px solid rgba(255,255,255,.1)}
.about-hero__content{display:grid;gap:var(--space-3)}.about-hero h1{max-width:12ch;margin:0;color:#fff;font-size:clamp(2.7rem,10vw,5.5rem);line-height:.94;text-wrap:balance}.about-hero__content>p:last-child{max-width:42rem;margin:0;color:rgba(255,255,255,.78);font-size:clamp(1rem,2vw,1.2rem)}
.about-hero__media,.about-venue__media{display:block;overflow:hidden;border:1px solid rgba(255,255,255,.11);border-radius:1rem;background:#0b0d10}.about-hero__media{aspect-ratio:16/10;min-height:0}.about-venue__media{aspect-ratio:4/3;min-height:0}.about-hero__media img,.about-venue__media img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.9) contrast(1.04) brightness(.88)}.about-hero__media img{object-position:50% 58%}.about-venue__media img{object-position:50% 48%}
.about-section{display:grid;gap:clamp(1.5rem,4vw,3rem);padding-block:var(--section-space);border-bottom:1px solid rgba(255,255,255,.1)}.about-section h2,.about-next h2{max-width:15ch;margin:0;color:#fff;font-size:clamp(2rem,7vw,3.8rem);line-height:.98;text-wrap:balance}.about-section h3{margin:0;color:#fff;font-size:clamp(1.2rem,4vw,1.65rem)}.about-section p{max-width:66ch;margin:0;color:rgba(255,255,255,.74)}
.about-who{grid-template-columns:1fr;padding-inline:clamp(1.25rem,4vw,3rem);border:1px solid rgba(255,255,255,.11);border-left:3px solid var(--ea-gold);border-radius:1rem;background:linear-gradient(120deg,rgba(247,201,72,.07),rgba(255,255,255,.025))}.about-who__heading,.about-who__copy{display:grid;align-content:start;gap:var(--space-3)}.about-who__copy a{color:var(--ea-gold);font-weight:750}
.about-philosophy{width:min(calc(100% - 2 * var(--page-gutter)),var(--about-wide));grid-template-columns:1fr}.about-philosophy>div,.about-philosophy aside{display:grid;align-content:start;gap:var(--space-3);padding:clamp(1.5rem,4vw,3rem);border-radius:1rem}.about-philosophy>div{border-top:3px solid var(--ea-gold);background:radial-gradient(circle at 8% 15%,rgba(247,201,72,.12),transparent 38%),#111214}.about-philosophy aside{border:1px solid rgba(255,255,255,.12);border-left:3px solid var(--ea-gold);background:rgba(255,255,255,.035)}
.about-section__intro{display:grid;gap:var(--space-3);max-width:48rem}.about-group-grid{display:grid;gap:var(--space-3)}.about-group-grid article{display:grid;align-content:start;gap:var(--space-3);padding:clamp(1.35rem,3vw,2rem);border:1px solid rgba(255,255,255,.1);border-top:2px solid color-mix(in srgb,var(--ea-gold) 58%,transparent);border-radius:1rem;background:linear-gradient(145deg,rgba(247,201,72,.065),rgba(255,255,255,.025) 62%)}.about-group-grid article>.action{justify-self:start;margin-top:auto}
.about-venue{width:min(calc(100% - 2 * var(--page-gutter)),var(--about-wide));align-items:center}.about-venue>div{display:grid;gap:var(--space-3)}.about-venue a{color:var(--ea-gold);font-weight:750}.about-location-note{max-width:55ch!important;padding:var(--space-3);border-left:3px solid var(--ea-gold);background:rgba(255,255,255,.035);color:rgba(255,255,255,.68)!important}
.about-visit{width:min(calc(100% - 2 * var(--page-gutter)),var(--about-wide))}.about-visit ol{display:grid;gap:0;margin:0;padding:0;list-style:none}.about-visit li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-3);padding:var(--space-4);border-top:2px solid color-mix(in srgb,var(--ea-gold) 35%,transparent);background:rgba(255,255,255,.025)}.about-visit li>span{color:var(--ea-gold);font-size:.75rem;font-weight:900;letter-spacing:.1em}.about-visit li>div{display:grid;gap:var(--space-2)}.about-visit li strong{color:#fff;font-size:1.05rem}.about-visit li p{margin:0}
.about-next{width:min(calc(100% - 2 * var(--page-gutter)),var(--about-wide));display:grid;gap:var(--space-4);margin-block:var(--section-space) 0;padding:clamp(1.5rem,5vw,3.5rem);border:1px solid color-mix(in srgb,var(--ea-gold) 32%,rgba(255,255,255,.1));border-top:3px solid var(--ea-gold);border-radius:1rem;background:radial-gradient(circle at 8% 20%,rgba(247,201,72,.14),transparent 34%),linear-gradient(125deg,#17150e,#0d0f10 70%)}.about-next__heading{display:grid;gap:var(--space-3)}.about-next__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.about-next__actions .action{min-height:44px;padding:.65rem .9rem;border-radius:var(--radius-md)}.about-next__actions .action--primary{border-color:var(--ea-gold);background:var(--ea-gold);color:var(--ea-ink)}.about-next__actions .action--primary:hover{background:color-mix(in srgb,var(--ea-gold) 82%,var(--ea-ink));color:var(--ea-ink)}.about-next__actions .action--secondary{border-color:rgba(255,255,255,.3);background:transparent}.about-next nav{display:flex;flex-wrap:wrap;gap:.35rem 1.25rem;padding-top:var(--space-3);border-top:1px solid rgba(255,255,255,.1)}.about-next nav a{min-height:44px;display:inline-flex;align-items:center;color:var(--ea-gold);font-weight:750}
@media(min-width:48rem){.about-hero{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr)}.about-who{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.about-philosophy{grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr)}.about-group-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.about-venue{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.about-visit{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr)}.about-next{grid-template-columns:minmax(0,1fr) auto;align-items:center}.about-next nav{grid-column:1/-1}}
@media(max-width:30rem){.about-next__actions{align-items:stretch}.about-next__actions .action{width:100%}}

@media (min-width: 64rem) {
  .site-header { min-height: 5.25rem; }
  .site-navigation-panel { margin-left: auto; }
  .site-nav { align-items: center; gap: clamp(.65rem, 1.25vw, 1.35rem); }
  .site-nav__link { font-size: clamp(.78rem, 1vw, .94rem); }
}

@media (prefers-reduced-motion: reduce) {
  .site-nav__link::after { transition: none; }
}

@media (min-width: 40rem) {
  .room-page { --room-hero-min-height: 42rem; --room-hero-padding-top: clamp(3.5rem, 8vw, 5rem); }
  .listing-intro { margin-bottom: var(--space-7); }
  .audience-shortcuts { margin-bottom: var(--space-3); padding-bottom: var(--space-2); }
  .audience-shortcuts__status { min-height: 3rem; margin-bottom: var(--space-5); }
  .room-card__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick-fit, .card-grid, .suitability__lists, .related-grid, .timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick-fit > div { border-top: 0; border-left: 1px solid rgba(255,255,255,.1); }
  .quick-fit > div:nth-of-type(odd) { border-left: 0; }
  .quick-fit > div:nth-of-type(n+3) { border-top: 1px solid rgba(255,255,255,.1); }
  .media-panel { min-height: 0; }
  .decision-facts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking-shell { border-right: 1px solid rgba(255,255,255,.11); border-left: 1px solid rgba(255,255,255,.11); border-radius: 16px; }
  .booking-shell__header { flex-direction: row; align-items: center; }
  .room-guidance { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); align-items: start; padding: var(--space-6); }
  .room-guidance__intro > .action { width: auto; justify-self: start; }
  .directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .homepage-confidence { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .homepage-confidence li { padding: var(--space-4); border-top: 0; border-left: 1px solid rgba(255,255,255,.08); }
  .homepage-confidence li:nth-child(odd) { border-left: 0; }
  .homepage-confidence li:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.08); }
  .homepage-pathways, .homepage-utilities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .homepage-proof__themes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .large-groups-reassurance { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .large-groups-reassurance li { padding: var(--space-4); border-top: 0; border-left: 1px solid rgba(255,255,255,.08); }
  .large-groups-reassurance li:nth-child(odd) { border-left: 0; }
  .large-groups-reassurance li:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.08); }
  .large-groups-audience-grid, .large-groups-value, .large-groups-practical dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .voucher-reassurance { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .voucher-reassurance li { padding: var(--space-4); border-top: 0; border-left: 1px solid rgba(255,255,255,.08); }
  .voucher-reassurance li:nth-child(odd) { border-left: 0; }
  .voucher-reassurance li:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.08); }
  .voucher-terms dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--space-5); }
}

@media (min-width: 54rem) {
  .room-discovery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-5); row-gap: var(--space-7); }
  .room-card { min-height: clamp(35rem, 58vw, 43.75rem); }
  .room-page { --room-hero-min-height: 46rem; --room-hero-padding-top: clamp(5.5rem, 8vw, 7rem); --room-hero-padding-bottom: clamp(3rem, 5vw, 4.5rem); }
  .room-hero h1 { font-size: clamp(5.2rem, 8vw, 7.6rem); }
  [data-room="under-the-big-top"] .room-hero h1 { max-width: 10ch; font-size: clamp(4.6rem, 7vw, 6.8rem); }
  .quick-fit { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .quick-fit > div:nth-of-type(n) { border-top: 0; border-left: 1px solid rgba(255,255,255,.1); }
  .quick-fit > div:first-of-type { border-left: 0; }
  .quick-fit > div { min-height: 8rem; align-content: center; }
  .story-grid, .challenge { grid-template-columns: minmax(0,.88fr) minmax(0,1.12fr); }
  .story-grid { align-items: center; }
  .suitability { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); }
  .card-grid, .related-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .related-grid:has(> article:only-child) { grid-template-columns: 1fr; }
  .related-grid:has(> article:only-child) article { grid-template-columns: minmax(0,1.3fr) minmax(12rem,.7fr) auto; grid-template-rows: auto; align-items: center; }
  .timeline { grid-template-columns: repeat(4, minmax(0,1fr)); }
  .final-booking { grid-template-columns: minmax(0,1fr) auto; }
  .booking-checkpoint { grid-template-columns: minmax(0,1fr) auto; }
  .decision-facts__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .homepage-hero { min-height: min(43rem, 78svh); grid-template-columns: minmax(0,.88fr) minmax(0,1.12fr); align-items: center; gap: clamp(2.5rem, 6vw, 6rem); padding-block: var(--space-6) var(--section-space); }
  .homepage-hero__visual { min-height: min(38rem, 68svh); order: 2; }
  .homepage-confidence { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .homepage-confidence li:nth-child(n) { border-top: 0; border-left: 1px solid rgba(255,255,255,.08); }
  .homepage-confidence li:first-child { border-left: 0; }
  .homepage-family { grid-template-columns: minmax(0,.9fr) minmax(0,.75fr) minmax(12rem,.65fr); align-items: center; gap: clamp(1.5rem, 4vw, 4rem); }
  .homepage-family__media { min-height: 15rem; }
  .homepage-utilities { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); }
  .large-groups-hero { min-height: min(40rem, 76svh); grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); align-items: center; gap: clamp(2.5rem, 6vw, 6rem); padding-block: var(--space-6) var(--section-space); }
  .large-groups-reassurance { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .large-groups-reassurance li:nth-child(n) { border-top: 0; border-left: 1px solid rgba(255,255,255,.08); }
  .large-groups-reassurance li:first-child { border-left: 0; }
  .large-groups-setup { grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); gap: clamp(2.5rem, 6vw, 6rem); }
  .large-groups-flow ol { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .large-groups-flow li { grid-template-columns: 1fr; align-content: start; padding: var(--space-4); border-top: 2px solid color-mix(in srgb, var(--ea-gold) 28%, transparent); border-left: 1px solid rgba(255,255,255,.08); }
  .large-groups-flow li:first-child { border-left: 0; }
  .large-groups-final { grid-template-columns: minmax(0,1fr) auto; padding: var(--space-6); }
  .voucher-hero { min-height: min(40rem, 76svh); grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); align-items: center; gap: clamp(2.5rem, 6vw, 6rem); padding-block: var(--space-6) var(--section-space); }
  .voucher-reassurance { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .voucher-reassurance li:nth-child(n) { border-top: 0; border-left: 1px solid rgba(255,255,255,.08); }
  .voucher-reassurance li:first-child { border-left: 0; }
  .voucher-process ol { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .voucher-process li { grid-template-columns: 1fr; align-content: start; padding: var(--space-4); border-top: 2px solid color-mix(in srgb, var(--ea-gold) 28%, transparent); border-left: 1px solid rgba(255,255,255,.08); }
  .voucher-process li:first-child { border-left: 0; }
  .voucher-choice, .voucher-delivery__layout { grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); gap: clamp(2.5rem, 6vw, 6rem); }
  .voucher-delivery__layout .voucher-placeholder { order: 2; }
  .voucher-final { grid-template-columns: minmax(0,1fr) auto; padding: var(--space-6); }
}

@media (min-width: 70rem) {
  .homepage-featured .room-discovery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .homepage-featured .discovery-card h2 { font-size: clamp(1.7rem, 2.6vw, 2.5rem); }
}

/* Crime in the Alley retains only its approved room-specific visual texture and focal treatment. */
[data-room="crime-in-the-alley"] .room-hero__media::after {
  background:
    linear-gradient(90deg, rgba(5,5,5,.91) 0%, rgba(7,7,7,.72) 48%, rgba(18,12,8,.22) 76%, rgba(7,8,9,.52) 100%),
    linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.22) 48%, #070809 100%);
}
[data-room="crime-in-the-alley"] .media-panel img { object-position: center 58%; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
/* Canonical Contact development prototype */
.contact-page{width:min(100% - 2rem,72rem);margin-inline:auto;padding:clamp(2rem,5vw,5rem) 0 5rem}.contact-hero{max-width:48rem;margin-bottom:2rem}.contact-hero h1{max-width:14ch}.contact-hero>p:last-child{max-width:42rem;font-size:clamp(1rem,2vw,1.25rem)}.contact-urgent,.contact-next{display:grid;gap:1.5rem;padding:clamp(1.25rem,3vw,2rem);border:1px solid color-mix(in srgb,var(--color-accent,#f4b942) 45%,transparent);background:linear-gradient(135deg,rgba(244,185,66,.14),rgba(8,9,15,.92));border-radius:1rem}.contact-urgent .action{align-self:center;justify-self:start}.contact-self-service{padding:clamp(2rem,5vw,4rem) 0}.contact-self-service__links{display:grid;gap:.75rem}.contact-self-service__links a{display:flex;flex-direction:column;gap:.25rem;min-height:4.75rem;padding:1rem 1.125rem;border-block:1px solid rgba(255,255,255,.17);text-decoration:none}.contact-self-service__links span{color:var(--color-text-muted,#c8c8d0)}.contact-enquiry{padding:clamp(1.5rem,4vw,3rem);border-radius:1.25rem;background:rgba(10,11,18,.76);border:1px solid rgba(255,255,255,.14)}.contact-enquiry__intro{max-width:42rem;margin-bottom:2rem}.contact-form fieldset{border:0;padding:0;margin:0 0 2rem}.contact-form legend{font:700 clamp(1.1rem,2vw,1.35rem)/1.2 var(--font-heading,inherit);margin-bottom:1rem}.contact-form legend span,.contact-field label span{font:400 .86rem/1.2 var(--font-body,inherit);color:var(--color-text-muted,#c8c8d0)}.contact-pathways>div{display:grid;gap:.75rem}.contact-pathway{position:relative;display:block;cursor:pointer}.contact-pathway input{position:absolute;inset:1.1rem auto auto 1.1rem;width:1.25rem;height:1.25rem;accent-color:var(--color-accent,#f4b942)}.contact-pathway>span{display:block;min-height:5rem;padding:1rem 1rem 1rem 3.25rem;border:1px solid rgba(255,255,255,.2);border-radius:.75rem;background:rgba(255,255,255,.025)}.contact-pathway strong,.contact-pathway small{display:block}.contact-pathway small{margin-top:.3rem;font-size:.95rem;line-height:1.45;color:var(--color-text-muted,#c8c8d0)}.contact-pathway input:checked+span{border-color:var(--color-accent,#f4b942);box-shadow:inset .3rem 0 0 var(--color-accent,#f4b942);background:rgba(244,185,66,.09)}.contact-pathway input:focus-visible+span{outline:3px solid #fff;outline-offset:3px}.contact-context>h3{font-size:clamp(1.35rem,3vw,2rem);margin-bottom:1.25rem}.contact-question-group{padding-top:1.25rem!important;border-top:1px solid rgba(255,255,255,.16)!important}.contact-field-grid{display:grid;gap:1.2rem}.contact-field{min-width:0}.contact-field label{display:block;font-weight:700;margin-bottom:.45rem}.contact-field>p{margin:.15rem 0 .5rem;color:var(--color-text-muted,#c8c8d0);font-size:.95rem;line-height:1.45}.contact-field input,.contact-field select,.contact-field textarea{box-sizing:border-box;width:100%;min-height:3rem;padding:.75rem .85rem;color:#fff;background:#11131c;border:1px solid rgba(255,255,255,.34);border-radius:.45rem;font:inherit}.contact-field textarea{min-height:7rem;resize:vertical}.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus{outline:3px solid var(--color-accent,#f4b942);outline-offset:2px;border-color:transparent}.contact-field [aria-invalid=true]{border-color:#ff9f9f}.contact-inline-error{color:#ffd0d0;font-weight:700}.contact-error-summary,.contact-state,.contact-dynamic-urgent,.contact-noscript{padding:1rem 1.125rem;margin:1rem 0 1.5rem;border-left:.3rem solid var(--color-accent,#f4b942);background:rgba(244,185,66,.1)}.contact-error-summary{border-color:#ff9f9f;background:rgba(190,48,48,.16)}.contact-error-summary a{color:#fff}.contact-state--success{border-color:#82d6a0}.contact-state--failure{border-color:#ffbe73}.contact-privacy,.contact-simulation-note{max-width:46rem;color:var(--color-text-muted,#c8c8d0);font-size:.94rem}.contact-next{margin-top:clamp(2rem,5vw,4rem)}.contact-next address{display:flex;flex-direction:column;gap:.55rem;font-style:normal}.contact-next a{color:#fff}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}[hidden]{display:none!important}@media(min-width:48rem){.contact-urgent,.contact-next{grid-template-columns:minmax(0,1.5fr) minmax(15rem,.7fr);align-items:center}.contact-self-service{display:grid;grid-template-columns:.7fr 1.3fr;gap:2rem}.contact-self-service__links,.contact-pathways>div{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-field--wide,.contact-field-grid>[data-conditional]{grid-column:1/-1}}
/* Contact progressive-disclosure refinement */
.contact-urgent--compact{display:block;padding:.8rem 1rem;background:rgba(244,185,66,.075)}
.contact-urgent--compact p{margin:0;font-size:.95rem}
.contact-urgent--compact a{color:#fff}
.contact-urgent--booking{display:grid}
.contact-conditional{grid-column:1/-1;min-width:0}
.contact-conditional--group{display:grid;gap:1.2rem}
.contact-conditional--secondary{padding:1rem;border-left:.2rem solid rgba(244,185,66,.45);background:rgba(255,255,255,.02)}
.contact-dynamic-urgent--strong{border-left-width:.45rem;background:rgba(244,185,66,.16)}
@media(min-width:48rem){.contact-conditional--group{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-conditional--group>.contact-field--wide{grid-column:1/-1}}

/* Canonical Book Now journey */
.booking-journey{display:grid;gap:clamp(1.25rem,4vw,2.5rem)}
.booking-intro{display:grid;gap:.65rem;max-width:48rem}
.booking-intro h1{max-width:15ch;margin:0;color:#fff;font-size:clamp(2.25rem,10vw,4.8rem);line-height:.96}
.booking-intro>p:last-child{max-width:42rem;margin:0;color:rgba(255,255,255,.78);font-size:clamp(1rem,2.4vw,1.2rem)}
.booking-room-prompt,.booking-room-card{display:grid;gap:1rem;align-items:center;padding:1rem;border-block:1px solid rgba(255,255,255,.15);background:linear-gradient(100deg,rgba(247,201,72,.08),transparent)}
.booking-room-prompt h2,.booking-room-card h2{margin:.2rem 0;color:#fff}
.booking-room-prompt p,.booking-room-card p{margin:.25rem 0;color:rgba(255,255,255,.76)}
.booking-room-card{border-top:.25rem solid var(--room-accent,var(--ea-gold));background:linear-gradient(105deg,color-mix(in srgb,var(--room-accent) 14%,transparent),rgba(255,255,255,.025))}
.booking-room-card__media{width:6.5rem;aspect-ratio:1;overflow:hidden;border-radius:.65rem}
.booking-room-card__picture,.booking-room-card__picture img{display:block;width:100%;height:100%}.booking-room-card__picture img{object-fit:cover}
.booking-room-card dl{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;margin:.7rem 0 0}.booking-room-card dl div{display:grid;min-width:0;gap:.1rem}.booking-room-card dt{color:rgba(255,255,255,.58);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.booking-room-card dd,.booking-room-card dt{overflow-wrap:anywhere}.booking-room-card dd{margin:0;color:#fff;font-weight:750}
.booking-facts{display:flex;flex-wrap:wrap;gap:.55rem;margin:0;padding:0;list-style:none}.booking-facts li{padding:.5rem .7rem;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:rgba(255,255,255,.8);font-size:.9rem;font-weight:750}
.booking-shell{margin-top:0}.booking-shell h2{max-width:18ch;margin:0;color:#fff;font-size:clamp(1.65rem,6vw,2.7rem);line-height:1.02}.booking-shell__header p{max-width:42rem}
.booking-status--error{color:#ffd0d0;background:rgba(177,50,50,.14)}
.booking-fallbacks{display:none;gap:.7rem;padding:1rem;border-top:1px solid rgba(255,255,255,.1);background:rgba(247,201,72,.05)}
.booking-fallbacks[data-visible-state=true],[data-booking-state=failed] .booking-fallbacks,[data-booking-state=timed-out] .booking-fallbacks,[data-booking-state=missing-room-id] .booking-fallbacks{display:flex;flex-wrap:wrap}
.booking-noscript{display:grid;gap:1rem;padding:1rem;border-top:1px solid rgba(255,255,255,.14)}
.booking-support-grid{display:grid;gap:1rem}.booking-guidance{padding:clamp(1.25rem,4vw,2rem);border:1px solid rgba(255,255,255,.12);border-radius:1rem;background:rgba(255,255,255,.035)}.booking-guidance h2{margin:.25rem 0 .7rem;color:#fff;font-size:clamp(1.3rem,4vw,1.8rem)}.booking-guidance p{color:rgba(255,255,255,.74)}
.booking-guidance--pricing{border-left:.25rem solid var(--ea-gold)}
.booking-after{display:grid;gap:1.25rem;padding-block:clamp(1.5rem,4vw,2.5rem);border-block:1px solid rgba(255,255,255,.12)}.booking-after h2{margin:.25rem 0;color:#fff}.booking-after ol{display:grid;gap:.8rem;margin:0;padding:0;list-style:none;counter-reset:booking-step}.booking-after li{display:grid;grid-template-columns:2rem 1fr;gap:.75rem;align-items:start;color:rgba(255,255,255,.82);counter-increment:booking-step}.booking-after li::before{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--ea-gold);color:#090a0c;font-weight:900;content:counter(booking-step)}
.booking-help,.booking-contact{grid-template-columns:1fr}.booking-contact{display:grid;gap:var(--space-3);padding:var(--space-5);border:1px solid rgba(255,255,255,.12);border-radius:1rem;background:rgba(255,255,255,.035)}.booking-contact h2{margin:.2rem 0;color:#fff}.booking-contact p{color:rgba(255,255,255,.74)}.booking-help__actions,.booking-contact__actions{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center}
.booking-contact__large-group{display:none}
@media(min-width:44rem){.booking-room-prompt{grid-template-columns:minmax(0,1fr) auto}.booking-room-card{grid-template-columns:8rem minmax(0,1fr) auto;padding:1.25rem}.booking-room-card__media{width:8rem}.booking-support-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-after{grid-template-columns:.75fr 1.25fr}.booking-help,.booking-contact{grid-template-columns:minmax(0,1.2fr) minmax(17rem,.8fr);align-items:center}}
@media(max-width:63.999rem){.booking-intro>p:last-child,.booking-room-prompt p,.booking-facts,.booking-guidance:not(.booking-guidance--pricing),.booking-help{display:none}.booking-support-grid{grid-template-columns:1fr}.booking-guidance{padding:1.1rem}.booking-contact__large-group{display:inline-flex}.booking-journey{gap:clamp(1rem,3vw,1.4rem)}}
@media(max-width:30rem){.booking-page{padding-top:1.5rem}.booking-journey{gap:1.1rem}.booking-room-card{grid-template-columns:1fr}.booking-room-card__media{width:5.5rem}.booking-room-card>.action{grid-column:auto}.booking-facts{gap:.4rem}.booking-facts li{padding:.42rem .58rem;font-size:.82rem}.booking-shell__header{padding:1rem}.booking-status{padding:.8rem 1rem}}

/* Canonical Pricing and Payment page */
.pricing-page{--pricing-reading-width:var(--content-width);--pricing-breakout-width:var(--wide-content-width);display:grid;gap:clamp(2.5rem,8vw,5.5rem);padding-block:clamp(2rem,7vw,5rem)}
.pricing-page>*,.pricing-standard .pricing-section__intro,.pricing-standard>.pricing-qualification,.pricing-payment .pricing-section__intro{width:min(var(--pricing-reading-width),calc(100% - 2 * var(--page-gutter)));margin-inline:auto}
.pricing-standard,.pricing-payment{width:min(var(--pricing-breakout-width),calc(100% - 2 * var(--page-gutter)))}
.pricing-hero+.pricing-standard{margin-top:clamp(-3rem,-4vw,-1.25rem)}
.pricing-hero{position:relative;overflow:hidden;padding:clamp(1.5rem,6vw,4.5rem);border:1px solid rgba(255,255,255,.13);border-radius:1rem;background:radial-gradient(circle at 86% 16%,rgba(247,201,72,.2),transparent 32%),linear-gradient(135deg,#17140d,#090a0c 68%)}
.pricing-hero::after{position:absolute;right:-4rem;bottom:-7rem;width:16rem;height:16rem;border:1px solid rgba(247,201,72,.18);border-radius:50%;content:""}
.pricing-hero>div{position:relative;z-index:1;max-width:52rem}.pricing-hero h1{max-width:13ch;margin:.2rem 0 .9rem;color:#fff;font-size:clamp(2.5rem,11vw,5.4rem);line-height:.94}.pricing-hero p:not(.eyebrow){max-width:42rem;margin-bottom:0;color:rgba(255,255,255,.8);font-size:clamp(1rem,2.5vw,1.22rem)}.pricing-hero .action-row{margin-top:var(--space-3)}
.pricing-section{display:grid;gap:clamp(1.25rem,4vw,2.5rem)}.pricing-section__intro{max-width:48rem}.pricing-section h2,.pricing-final h2{margin:.2rem 0 .75rem;color:#fff;font-size:clamp(1.8rem,6vw,3rem);line-height:1.02}.pricing-section p,.pricing-section li,.pricing-section dd,.pricing-final p{color:rgba(255,255,255,.78)}
.pricing-table-wrap{overflow-x:auto;border:1px solid rgba(255,255,255,.13);border-radius:1rem}.pricing-table-wrap table{width:100%;border-collapse:collapse;background:rgba(255,255,255,.025)}.pricing-table-wrap caption{padding:1rem;text-align:left;color:rgba(255,255,255,.65);font-size:.9rem}.pricing-table-wrap th,.pricing-table-wrap td{padding:1rem;text-align:left;vertical-align:top;border-top:1px solid rgba(255,255,255,.1)}.pricing-table-wrap thead th{color:var(--ea-gold);font-size:.78rem;text-transform:uppercase;letter-spacing:.07em}.pricing-table-wrap tbody th{color:#fff}.pricing-table-wrap td strong{color:#fff;font-size:1.15rem}.pricing-qualification{margin:0;padding-left:1rem;border-left:.2rem solid var(--ea-gold)}
.pricing-fact-list{display:grid;gap:.7rem;margin:0}.pricing-fact-list>div{display:grid;gap:.35rem;padding:1rem;border-left:.2rem solid rgba(247,201,72,.55);background:rgba(255,255,255,.035)}.pricing-fact-list dt{color:#fff;font-weight:850}.pricing-fact-list dd{margin:0}.pricing-notice{padding:1rem;border:1px solid rgba(247,201,72,.3);border-radius:.75rem;background:rgba(247,201,72,.07);color:rgba(255,255,255,.85)}
.pricing-minimums,.pricing-vouchers,.pricing-groups,.pricing-policy{padding:clamp(1.25rem,5vw,2.5rem);border:1px solid rgba(255,255,255,.13);border-radius:1rem;background:rgba(255,255,255,.035)}.pricing-minimums ul,.pricing-vouchers ul,.pricing-groups ul{display:grid;gap:.65rem;margin:0;padding-left:1.2rem}.pricing-vouchers{background:linear-gradient(130deg,rgba(247,201,72,.09),rgba(255,255,255,.025))}.pricing-groups{background:linear-gradient(130deg,rgba(63,144,223,.09),rgba(255,255,255,.025))}
.pricing-future-policy{display:block;color:rgba(255,255,255,.64);font-size:.9rem}.pricing-faq>div:last-child{display:grid;gap:.65rem}.pricing-faq details{border:1px solid rgba(255,255,255,.12);border-radius:.75rem;background:rgba(255,255,255,.025)}.pricing-faq summary{min-height:48px;padding:1rem;color:#fff;font-weight:800;cursor:pointer}.pricing-faq details p{padding:0 1rem 1rem;margin:0}
.pricing-final{display:grid;gap:1.25rem;padding:clamp(1.5rem,6vw,3.25rem);border-left:.3rem solid var(--ea-gold);border-radius:1rem;background:linear-gradient(120deg,rgba(247,201,72,.12),rgba(255,255,255,.035))}.pricing-hero .action-row,.pricing-final .action-row{align-items:center;gap:var(--space-3)}.pricing-hero .action,.pricing-final .action--primary{min-height:44px;padding:.65rem .9rem;border-radius:var(--radius-md)}.pricing-hero .action--primary,.pricing-final .action--primary{border-color:var(--ea-gold);background:var(--ea-gold);color:var(--ea-ink)}.pricing-hero .action--primary:hover,.pricing-final .action--primary:hover{background:color-mix(in srgb,var(--ea-gold) 82%,var(--ea-ink));color:var(--ea-ink)}.pricing-hero .action--secondary{border-color:rgba(255,255,255,.3);background:transparent}.pricing-final .action--text{min-height:44px;padding:.5rem 0;align-items:center}.pricing-final .action--text span{display:inline-flex;align-items:center;line-height:1}
[data-truth-status="needs-owner-input"],[data-truth-status="needs-operational-confirmation"]{--truth-unresolved:1}
@media(max-width:39.999rem){.pricing-table-wrap{overflow:visible;border:0}.pricing-table-wrap table,.pricing-table-wrap tbody,.pricing-table-wrap tr,.pricing-table-wrap th,.pricing-table-wrap td{display:block}.pricing-table-wrap thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.pricing-table-wrap caption{padding:.75rem 0}.pricing-table-wrap tr{margin-bottom:.75rem;padding:1rem;border:1px solid rgba(255,255,255,.13);border-radius:.75rem;background:rgba(255,255,255,.025)}.pricing-table-wrap th,.pricing-table-wrap td{padding:.3rem 0;border:0}.pricing-table-wrap td:nth-child(2)::before{display:block;color:var(--ea-gold);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;content:"Current price"}.pricing-table-wrap td:nth-child(3)::before{display:block;margin-top:.4rem;color:var(--ea-gold);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;content:"Important detail"}}
@media(min-width:40rem){.pricing-fact-list{grid-template-columns:repeat(2,minmax(0,1fr))}.pricing-fact-list>div:last-child:nth-child(odd){grid-column:1/-1}.pricing-minimums,.pricing-vouchers,.pricing-groups,.pricing-policy,.pricing-final{grid-template-columns:minmax(0,1fr) minmax(16rem,.85fr);align-items:start}}
@media(min-width:64rem){.pricing-payment .pricing-fact-list{grid-template-columns:repeat(4,minmax(0,1fr))}.pricing-payment .pricing-fact-list>div:last-child:nth-child(odd){grid-column:auto}}

/* Canonical Christchurch family guidance */
.family-page{width:min(100% - 2rem,var(--wide-content-width));margin-inline:auto;padding-bottom:var(--section-space)}
.family-hero{display:grid;gap:var(--space-5);align-items:center;padding:clamp(2rem,8vw,5.5rem) 0 clamp(1.5rem,4vw,2.75rem)}
.family-hero>div:first-child{display:grid;gap:var(--space-3);max-width:48rem}.family-hero h1{max-width:12ch;margin:0;color:#fff;font-size:clamp(2.55rem,12vw,5.8rem);line-height:.94;text-wrap:balance}.family-hero p:not(.eyebrow){max-width:39rem;margin:0;color:rgba(255,255,255,.78);font-size:clamp(1rem,3vw,1.24rem)}
.family-placeholder{position:relative;display:grid;place-items:center;min-height:15rem;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:1rem;background:radial-gradient(circle at 65% 35%,rgba(247,201,72,.18),transparent 28%),linear-gradient(135deg,#17140e,#0a0b0d 70%)}.family-placeholder::before{width:5rem;aspect-ratio:1;border:1px solid rgba(247,201,72,.38);border-radius:50%;content:""}.family-placeholder::after{position:absolute;content:"Development image role";color:rgba(255,255,255,.52);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}
.family-image{display:block;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:1rem;background:#101113}.family-image img{display:block;width:100%;height:100%;object-fit:cover}.family-image--hero{aspect-ratio:733/954;max-height:42rem;justify-self:center}.family-image--hero img{object-position:center}.family-image--supporting{aspect-ratio:4/3}.family-image--supporting img{object-position:center 44%}
.family-section{display:grid;gap:clamp(1.5rem,5vw,3.5rem);padding:var(--section-space) 0;border-bottom:1px solid rgba(255,255,255,.1)}.family-section__intro,.family-section>div{min-width:0}.family-section__intro{display:grid;gap:var(--space-2);max-width:48rem}.family-section h2,.family-final h2{max-width:16ch;margin:0;color:#fff;font-size:clamp(2rem,8vw,4rem);line-height:.98;text-wrap:balance}.family-section p,.family-section li,.family-section dd,.family-final p{color:rgba(255,255,255,.76)}
.family-stage{padding-top:clamp(2rem,5vw,3.75rem)}.family-stage>div{display:grid;gap:var(--space-3)}.family-stage ul{display:grid;gap:0;margin:0;padding:0;list-style:none}.family-stage li{padding:var(--space-4) 0;border-top:1px solid rgba(255,255,255,.12)}
.family-participation>div{display:grid;gap:var(--space-3)}
.family-supervision dl{display:grid;margin:0}.family-supervision dl>div{padding:var(--space-4) 0;border-top:1px solid rgba(255,255,255,.12)}.family-supervision dt{color:#fff;font-weight:850}.family-supervision dd{margin:.4rem 0 0}.family-supervision aside{padding:var(--space-4);border-left:3px solid var(--ea-gold);background:rgba(247,201,72,.07);color:rgba(255,255,255,.84)}
.family-rooms .room-discovery-grid{grid-template-columns:1fr}.family-rooms>.action-row{margin-top:calc(-1 * var(--space-2))}
.family-support-actions,.family-room-actions,.family-final .action-row{align-items:center;gap:var(--space-3)}.family-support-actions .action--secondary,.family-room-actions .action--secondary,.family-final .action--primary,.family-final .action--secondary{min-height:44px;padding:.65rem .9rem;border-radius:var(--radius-md)}.family-support-actions .action--secondary,.family-room-actions .action--secondary,.family-final .action--secondary{border-color:rgba(255,255,255,.3);background:transparent}.family-final .action--primary{border-color:var(--ea-gold);background:var(--ea-gold);color:var(--ea-ink)}.family-final .action--primary:hover{background:color-mix(in srgb,var(--ea-gold) 82%,var(--ea-ink));color:var(--ea-ink)}.family-support-actions .action--text,.family-room-actions .action--text,.family-final .action--text{min-height:44px;padding:.5rem 0;align-items:center}
.family-reassurance>div{display:grid;align-content:start;gap:var(--space-3);padding:var(--space-5);border-top:3px solid rgba(247,201,72,.7);border-radius:1rem;background:rgba(255,255,255,.035)}.family-reassurance>div+div{border-top-color:rgba(90,173,223,.8)}.family-takeaway{margin-top:var(--space-1);padding:var(--space-3) var(--space-4);border-left:3px solid var(--ea-gold);background:rgba(247,201,72,.07);color:rgba(255,255,255,.9)!important;font-weight:750}
.family-visit ol{display:grid;margin:0;padding:0;list-style:none}.family-visit li{display:grid;grid-template-columns:2.4rem 1fr;gap:var(--space-3);padding:var(--space-4) 0;border-top:1px solid rgba(255,255,255,.12)}.family-visit li span{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--ea-gold);color:#090a0c;font-weight:900}.family-visit li p{margin:.35rem 0}.family-visit aside{display:grid;gap:var(--space-3);padding:var(--space-5);border:1px solid rgba(255,255,255,.12);border-left:3px solid var(--ea-gold);border-radius:.75rem;background:rgba(255,255,255,.03)}
.family-final{display:grid;gap:var(--space-5);margin-top:var(--section-space);padding:clamp(1.5rem,6vw,3.5rem);border-top:3px solid var(--ea-gold);border-radius:1rem;background:radial-gradient(circle at 8% 20%,rgba(247,201,72,.14),transparent 34%),#101113}.family-final>div:first-child{display:grid;gap:var(--space-3)}
@media(min-width:40rem){.family-supervision dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--space-5)}.family-visit ol{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 var(--space-4)}.family-visit li{grid-template-columns:1fr;align-content:start}.family-final{grid-template-columns:minmax(0,1fr) auto;align-items:center}}
@media(min-width:64rem){.family-hero{grid-template-columns:minmax(0,1fr) minmax(20rem,.72fr);gap:clamp(3rem,7vw,7rem)}.family-placeholder--hero{min-height:34rem}.family-stage,.family-participation{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}.family-participation .family-placeholder,.family-participation .family-image{order:2;min-height:24rem}.family-rooms .room-discovery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.family-reassurance{grid-template-columns:repeat(2,minmax(0,1fr))}.family-final .action-row{justify-content:flex-end}}
/* Readable-width policy pages; policy tables or application controls do not need a wide breakout. */
.buy-vouchers-page{width:min(100% - 2rem,var(--wide-content-width));margin-inline:auto;padding:clamp(1.5rem,5vw,4rem) 0 var(--section-space)}
.buy-vouchers-page h1,.buy-vouchers-page h2{color:#fff}.buy-vouchers-page h2{margin:.2rem 0 .65rem;font-size:clamp(1.8rem,6vw,3rem);line-height:1.02}.buy-vouchers-page p,.buy-vouchers-page li,.buy-vouchers-page dd{color:rgba(255,255,255,.78)}
.buy-vouchers-hero{display:grid;gap:var(--space-3);max-width:52rem;padding:clamp(1.5rem,5vw,3.5rem) 0 clamp(1rem,2.5vw,1.75rem)}.buy-vouchers-hero h1{max-width:14ch;margin:0;font-size:clamp(2.5rem,11vw,5.5rem);line-height:.94;text-wrap:balance}.buy-vouchers-hero>p:not(.eyebrow){max-width:43rem;margin:0;font-size:clamp(1rem,2.5vw,1.22rem)}
.buy-vouchers-widget,.buy-vouchers-delivery,.buy-vouchers-after,.buy-vouchers-help{display:grid;gap:clamp(1.25rem,4vw,2.5rem);padding:clamp(2.5rem,7vw,5rem) 0;border-top:1px solid rgba(255,255,255,.12)}.buy-vouchers-delivery{padding-top:clamp(1.5rem,4vw,2.75rem);padding-bottom:clamp(1rem,2.5vw,1.75rem)}.buy-vouchers-widget{padding-top:clamp(1.25rem,3.5vw,2.25rem)}.buy-vouchers-section-intro{max-width:48rem}
.voucher-purchase-shell{overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:1rem;background:#fff}.voucher-purchase-status{margin:0;padding:.85rem 1rem;border-bottom:1px solid rgba(10,11,13,.15);background:#f5f1e8;color:#242016!important;font-weight:750}.voucher-purchase-status--error{background:#fff0e8;color:#6f281f!important}.voucher-purchase-frame iframe{display:block;width:100%;min-height:46rem;border:0;background:#fff}.voucher-purchase-fallbacks{display:none;flex-wrap:wrap;gap:.7rem;padding:1rem;background:#0c0d10}.voucher-purchase-fallbacks .action--secondary{background:transparent;color:#fff}.voucher-purchase-fallbacks[data-visible-state=true],[data-purchase-state=failed] .voucher-purchase-fallbacks,[data-purchase-state=timed-out] .voucher-purchase-fallbacks{display:flex}.voucher-purchase-noscript{display:grid;gap:1rem;padding:1rem;background:#0c0d10}.voucher-purchase-noscript p{margin:0}
.buy-vouchers-delivery dl{display:grid;gap:.75rem;margin:0}.buy-vouchers-delivery dl>div{padding:1.15rem;border-left:3px solid rgba(247,201,72,.65);background:rgba(255,255,255,.035)}.buy-vouchers-delivery dt{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;color:#fff;font-weight:850}.buy-vouchers-delivery dt span{color:var(--ea-gold)}.buy-vouchers-delivery dd{margin:.45rem 0 0;line-height:1.55}
.buy-vouchers-after{grid-template-columns:1fr}.buy-vouchers-after ol{display:grid;gap:0;margin:0;padding:0;list-style:none;counter-reset:voucher-after}.buy-vouchers-after li{display:grid;grid-template-columns:2rem 1fr;gap:.75rem;padding:1rem 0;border-top:1px solid rgba(255,255,255,.12);counter-increment:voucher-after}.buy-vouchers-after li::before{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--ea-gold);color:var(--ea-ink);font-weight:900;content:counter(voucher-after)}
.buy-vouchers-help{padding:clamp(1.5rem,5vw,3rem);border:1px solid rgba(247,201,72,.25);border-left:3px solid var(--ea-gold);border-radius:1rem;background:linear-gradient(120deg,rgba(247,201,72,.1),rgba(255,255,255,.025))}.buy-vouchers-help>div:first-child{max-width:44rem}.buy-vouchers-help .action-row{align-items:center}
@media(min-width:40rem){.buy-vouchers-delivery dl{grid-template-columns:repeat(2,minmax(0,1fr))}.buy-vouchers-after{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr)}.buy-vouchers-help{grid-template-columns:minmax(0,1fr) auto;align-items:center}}
@media(min-width:70rem){.buy-vouchers-delivery dl{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:39.999rem){.buy-vouchers-hero{gap:.55rem;padding:.75rem 0 1rem}.buy-vouchers-hero h1{font-size:clamp(2rem,10.5vw,2.55rem)}.buy-vouchers-hero>p:not(.eyebrow){font-size:.95rem;line-height:1.45}.buy-vouchers-delivery{gap:.8rem;padding:1rem 0 .75rem}.buy-vouchers-delivery h2{font-size:clamp(1.65rem,8vw,2rem)}.buy-vouchers-delivery dl{gap:.4rem}.buy-vouchers-delivery dl>div{padding:.7rem .8rem}.buy-vouchers-delivery dt{font-size:.9rem}.buy-vouchers-delivery dd{margin-top:.3rem;font-size:.86rem;line-height:1.4}.buy-vouchers-widget{gap:.8rem;padding:.85rem 0 1rem}.buy-vouchers-widget .buy-vouchers-section-intro p{margin:.35rem 0}.buy-vouchers-widget h2{font-size:1.75rem}.voucher-purchase-frame iframe{min-height:64rem}.buy-vouchers-help .action-row{align-items:stretch}.buy-vouchers-help .action{width:100%;justify-content:center}}

/* Readable-width policy pages; policy tables or application controls do not need a wide breakout. */
.policy-page{width:min(100% - 2rem,72rem);margin-inline:auto;padding:clamp(1.5rem,4vw,4rem) 0 5rem}.policy-hero,.policy-content{max-width:48rem}.policy-hero{padding:clamp(1rem,3vw,2.5rem) 0 clamp(2rem,5vw,4rem)}.policy-hero>p:last-child{font-size:clamp(1rem,2vw,1.2rem);line-height:1.65}.policy-content{display:grid;gap:clamp(2rem,5vw,3.75rem)}.policy-content section{padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.16)}.policy-content p{max-width:68ch;line-height:1.7}.policy-content address{display:flex;flex-direction:column;gap:.65rem;font-style:normal}.policy-content a,.policy-links a{color:#fff}.policy-links{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.16)}
