@import url('https://api.fontshare.com/v2/css?f[]=clash-grotesk@300,400,500,600,700,800&f[]=satoshi@400,500,700,900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Outfit:wght@600;700;800;900&display=swap');

:root {
    --hot-pink: #ff1493;
    --hot-pink-glow: rgba(255, 20, 147, 0.6);
    --hot-pink-soft: rgba(255, 20, 147, 0.15);
    --dark-bg: #0a0a0c;
    --dark-card: #121218;
    --dark-border: #1e1e28;
    --text-primary: #121218;
    --text-muted: #71717a;
}

* {
    box-sizing: border-box;
    scroll-behavior: smooth;
    -webkit-tap-highlight-color: transparent;
}

body {
    margin: 0;
    color: var(--text-primary);
    background: #fff;
    font-family: 'Satoshi', 'Inter', system-ui, sans-serif;
    overflow-x: hidden;
}

.font-display {
    font-family: 'Clash Grotesk', 'Outfit', 'Inter', sans-serif;
    word-spacing: 0.08em;
}

.glow-pink {
    box-shadow: 0 0 20px var(--hot-pink-glow), 0 0 40px rgba(255, 20, 147, 0.3);
}

.glow-pink-subtle {
    box-shadow: 0 0 12px rgba(255, 20, 147, 0.3), 0 12px 32px rgba(255, 20, 147, 0.16);
}

.glow-pink-text {
    text-shadow: 0 0 20px var(--hot-pink-glow), 0 0 40px rgba(255, 20, 147, 0.4);
}

.site-logo-img {
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 2.5rem;
    padding: 0.2rem;
    border-radius: 0.65rem;
    object-fit: contain;
    background: #fff;
    border: 1px solid rgba(236, 72, 153, 0.2);
    box-shadow: 0 8px 22px rgba(236, 72, 153, 0.13);
}

.brand-wordmark {
    display: grid;
    min-width: 0;
    gap: 1px;
    line-height: 0.9;
}

.brand-wordmark-top,
.brand-wordmark-bottom {
    display: block;
    color: #111827;
    font-family: 'Clash Grotesk', 'Satoshi', Inter, system-ui, sans-serif;
    letter-spacing: 0;
}

.booking-header-brand {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 0.55rem;
}

.booking-header-logo {
    width: 2rem;
    height: 2rem;
    flex: 0 0 2rem;
    padding: 0.15rem;
    border: 1px solid rgba(236, 72, 153, 0.2);
    border-radius: 0.5rem;
    object-fit: contain;
    background: #fff;
}

.booking-header-wordmark {
    display: grid;
    min-width: 0;
    gap: 1px;
    color: #111827;
    font-family: 'Clash Grotesk', 'Satoshi', Inter, system-ui, sans-serif;
    line-height: 0.9;
}

.booking-header-wordmark span,
.booking-header-wordmark strong {
    display: block;
    font-size: 10px;
    letter-spacing: 0;
    white-space: nowrap;
}

.booking-header-wordmark span { font-weight: 700; }
.booking-header-wordmark strong { font-weight: 900; }

.brand-wordmark-top {
    font-size: 12px;
    font-weight: 700;
}

.brand-wordmark-bottom {
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

@media (max-width: 479px) {
    .brand-wordmark-top,
    .brand-wordmark-bottom {
        font-size: 10px;
    }
}

.header-icon-action {
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    background: #fff;
    color: #374151;
    font-size: 20px;
    transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.header-icon-action:hover,
.header-icon-action.active {
    color: var(--hot-pink);
    border-color: rgba(255, 20, 147, 0.32);
    background: rgba(255, 20, 147, 0.06);
}

.header-icon-action-muted:hover {
    color: #ef4444;
    border-color: rgba(239, 68, 68, 0.28);
    background: rgba(239, 68, 68, 0.06);
}

.header-lang-switch {
    margin-left: 12px;
    padding-left: 14px;
    border-left: 1px solid #e5e7eb;
}

.nav-link-underline {
    position: relative;
    line-height: 1;
}

.nav-link-underline::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--hot-pink);
    transition: width 0.25s ease;
}

.nav-link-underline:hover::after,
.nav-link-underline.active::after {
    width: 100%;
}

.nav-icon-link {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #6b7280;
    border: 1px solid #e5e7eb;
    background: #fff;
    transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.nav-icon-link:hover,
.nav-icon-link.active {
    color: #FF1493;
    border-color: rgba(255, 20, 147, 0.35);
    background: rgba(255, 20, 147, 0.06);
    transform: translateY(-1px);
}

.mobile-tabs,
.menu-tabs {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.mobile-tabs::-webkit-scrollbar,
.menu-tabs::-webkit-scrollbar {
    display: none;
}

.mobile-tabs-shell {
    position: relative;
    min-width: 0;
}

.mobile-tabs {
    padding-right: 12px;
}

.hero-overlay-radial {
    background: radial-gradient(ellipse at center, rgba(10, 10, 12, 0.1) 0%, rgba(10, 10, 12, 0.85) 70%, var(--dark-bg) 100%);
}

.home-hero-gallery {
    position: absolute;
    inset: -14% -7%;
    display: grid;
    align-content: center;
    gap: 26px;
    opacity: 0.72;
    transform: rotate(-3deg) scale(1.08);
}

.home-hero-row {
    min-width: 0;
    overflow: hidden;
}

.home-hero-track {
    width: max-content;
    display: flex;
    animation: home-hero-marquee 56s linear infinite;
    will-change: transform;
}

.home-hero-row.reverse .home-hero-track {
    animation-duration: 72s;
    animation-direction: reverse;
}

.home-hero-group {
    display: flex;
    gap: 22px;
    padding-right: 22px;
}

.home-hero-frame {
    width: clamp(280px, 29vw, 430px);
    aspect-ratio: 16 / 9;
    flex: 0 0 auto;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 8px;
    background: #18181d;
}

.home-hero-frame img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    filter: saturate(0.9) contrast(1.04);
}

.home-hero-scrim {
    z-index: 1;
    background: rgba(8, 8, 10, 0.2);
}

.home-desktop-only > .hero-overlay-radial {
    z-index: 2;
    background: radial-gradient(
        ellipse at center,
        rgba(8, 8, 10, 0.48) 0%,
        rgba(8, 8, 10, 0.3) 43%,
        rgba(8, 8, 10, 0.42) 78%,
        rgba(8, 8, 10, 0.56) 100%
    );
}

.home-mobile-hero-gallery {
    position: absolute;
    inset: -6% -12%;
    display: flex;
    align-items: stretch;
    opacity: 0.72;
    transform: rotate(-4deg) scale(1.08);
}

.home-mobile-hero-gallery .home-hero-track {
    height: 100%;
    animation-duration: 48s;
}

.home-mobile-hero-gallery .home-hero-group {
    height: 100%;
    gap: 12px;
    padding-right: 12px;
}

.home-mobile-hero-gallery .home-hero-frame {
    width: 235px;
    height: 100%;
    aspect-ratio: auto;
}

@keyframes home-hero-marquee {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(-50%, 0, 0); }
}

.ticket-card {
    border: 1px solid var(--dark-border);
    transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.ticket-card:hover {
    border-color: rgba(255, 20, 147, 0.6);
    box-shadow: 0 18px 54px rgba(0, 0, 0, 0.2), 0 0 22px rgba(255, 20, 147, 0.12);
    transform: translateY(-5px);
}

.experience-ticket-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}
.experience-ticket-card {
    position: relative;
    min-height: 330px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 30px;
    border: 1px solid #2e2e33;
    border-radius: 8px;
    background: #121218;
    color: #fff;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.experience-ticket-card::after {
    content: '';
    position: absolute;
    right: -55px;
    bottom: -65px;
    width: 210px;
    height: 210px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--experience-accent) 18%, transparent);
}
.experience-ticket-card:hover {
    transform: translateY(-4px);
    border-color: var(--experience-accent);
    box-shadow: 0 18px 38px rgba(18, 18, 24, .16);
}
.experience-ticket-icon {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    margin-bottom: 34px;
    border-radius: 8px;
    background: var(--experience-accent);
    font-size: 28px;
}
.experience-ticket-copy { position: relative; z-index: 1; display: grid; gap: 10px; }
.experience-ticket-copy strong { font-family: var(--font-display); font-size: 30px; font-weight: 950; }
.experience-ticket-copy small { max-width: 290px; color: #a1a1aa; font-size: 14px; font-weight: 600; line-height: 1.55; }
.experience-ticket-price { position: relative; z-index: 1; display: grid; gap: 9px; margin-top: auto; padding-top: 30px; }
.experience-ticket-price > span { display: flex; align-items: baseline; gap: 6px; }
.experience-ticket-price strong { color: var(--experience-accent); font-size: 28px; font-weight: 950; }
.experience-ticket-price small { color: #a1a1aa; font-size: 13px; font-weight: 750; }
.experience-ticket-price em { display: inline-flex; align-items: center; gap: 6px; width: fit-content; color: #d4d4d8; font-size: 12px; font-style: normal; font-weight: 850; line-height: 1.35; }
.experience-ticket-price em iconify-icon { color: var(--experience-accent); font-size: 15px; }
.experience-ticket-price em.empty { visibility: hidden; }
.experience-ticket-arrow { position: absolute; right: 24px; bottom: 28px; z-index: 2; font-size: 24px; color: #fff; }
.tickets-price-legend { margin-top: 18px; color: #71717a; font-size: 12px; font-weight: 700; }

@media (max-width: 900px) {
    .experience-ticket-grid { grid-template-columns: 1fr; }
    .experience-ticket-card { min-height: 250px; }
}

.tone-orange { background: linear-gradient(135deg, rgba(251, 146, 60, 0.16), rgba(250, 204, 21, 0.06)); }
.tone-pink { background: linear-gradient(135deg, rgba(236, 72, 153, 0.18), rgba(168, 85, 247, 0.08)); }
.tone-blue { background: radial-gradient(circle at top right, rgba(234, 179, 8, 0.12), rgba(59, 130, 246, 0.09), rgba(255, 20, 147, 0.08)); }
.tone-green { background: linear-gradient(135deg, rgba(34, 197, 94, 0.16), rgba(59, 130, 246, 0.08)); }

.menu-hero {
    background:
        radial-gradient(circle at 14% 20%, rgba(255, 20, 147, 0.18), transparent 28%),
        radial-gradient(circle at 86% 10%, rgba(34, 197, 94, 0.14), transparent 24%),
        linear-gradient(180deg, #ffffff 0%, #f7f7f9 100%);
}

.hero-gradient {
    background:
        radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.42), transparent 18%),
        radial-gradient(circle at 82% 16%, rgba(34, 197, 94, 0.28), transparent 22%),
        linear-gradient(135deg, #ff1493 0%, #8b5cf6 52%, #22c55e 100%);
}

.menu-tab {
    transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.menu-tab.active {
    color: #fff;
    background: var(--hot-pink);
    border-color: var(--hot-pink);
    box-shadow: 0 10px 26px rgba(255, 20, 147, 0.22);
}

.category-section {
    scroll-margin-top: 168px;
}

.menu-card {
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.menu-card:hover {
    transform: translateY(-3px);
    border-color: rgba(255, 20, 147, 0.28);
    box-shadow: 0 22px 50px rgba(18, 18, 24, 0.08);
}

.menu-card img {
    transition: transform 0.35s ease;
}

.menu-card:hover img {
    transform: scale(1.05);
}

.field {
    width: 100%;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
    color: #111827;
    border-radius: 1rem;
    padding: 0.9rem 1rem;
    font: inherit;
    outline: 0;
}

.field:focus {
    border-color: var(--hot-pink);
    box-shadow: 0 0 0 3px rgba(255, 20, 147, 0.12);
}

.field.field-error {
    border-color: #ef4444;
    background: #fff1f2;
}

.disabled-button {
    opacity: 0.5;
    cursor: not-allowed;
}

.booking-date-picker {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
}

.booking-date-nav {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 38px;
    align-items: center;
    gap: 10px;
}

.booking-date-nav strong {
    text-align: center;
    font-size: 12px;
    font-weight: 900;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.booking-date-nav-btn {
    height: 38px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #fff;
    color: #111827;
    display: grid;
    place-items: center;
    transition: all 160ms ease;
}

.booking-date-nav-btn:hover:not(:disabled) {
    border-color: #ff1493;
    color: #ff1493;
}

.booking-date-nav-btn:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.booking-date-chip {
    min-height: 66px;
    display: grid;
    align-content: center;
    gap: 3px;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff;
    color: #111827;
    font: inherit;
    font-weight: 900;
    cursor: pointer;
}

.booking-date-chip strong,
.booking-date-chip span,
.booking-date-chip small {
    display: block;
    line-height: 1.1;
}

.booking-date-chip strong {
    font-size: 11px;
    color: #6b7280;
    text-transform: uppercase;
}

.booking-date-chip span {
    font-size: 13px;
}

.booking-date-chip small {
    font-size: 9px;
    color: #991b1b;
}

.booking-date-chip .booking-date-price {
    margin-top: 3px;
    color: #ff1493;
    font-size: 11px;
    font-style: normal;
    font-weight: 950;
    line-height: 1.1;
}

.booking-date-chip.selected {
    border-color: var(--hot-pink);
    background: rgba(255,20,147,0.08);
    color: var(--hot-pink);
}

.booking-date-chip:disabled {
    color: #9ca3af;
    background: #f3f4f6;
    border-color: #e5e7eb;
    opacity: 0.65;
    cursor: not-allowed;
    text-decoration: line-through;
}

.booking-date-warning {
    margin: 12px 0 0;
    color: #991b1b;
    font-size: 12px;
    font-weight: 900;
}

.btn-primary {
    background: var(--hot-pink);
    color: #fff;
    border: 0;
    border-radius: 1rem;
    padding: 0.9rem 1.1rem;
    font-weight: 900;
    text-transform: uppercase;
    cursor: pointer;
}

.contact-card {
    display: grid;
    gap: 1.15rem;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 2rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    box-shadow: 0 34px 90px rgba(0, 0, 0, 0.24);
}

.member-login-hero-image,
.member-login-hero-scrim {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.member-login-hero-image {
    object-fit: cover;
    object-position: center 44%;
    opacity: 1;
    filter: brightness(.72) saturate(.9) contrast(1.04);
}

.member-login-hero-scrim {
    background: linear-gradient(90deg, rgba(8,8,10,.76) 0%, rgba(8,8,10,.5) 43%, rgba(8,8,10,.3) 100%);
}

.member-profile-info-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
    gap: 28px;
    align-items: stretch;
}

.member-profile-identity { min-width: 0; padding: 8px 2px; }

.member-communication-preferences {
    display: grid;
    align-content: start;
    gap: 12px;
    padding: 22px;
    border: 1px solid #f3c5de;
    border-radius: 18px;
    background: #fff8fc;
}

.member-preferences-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #ff1493;
    color: #fff;
    font-size: 21px;
}

.member-communication-preferences h2 { margin: 0; font-family: var(--font-display); font-size: 21px; font-weight: 950; }
.member-communication-preferences > p { margin: -4px 0 3px; color: #71717a; font-size: 12px; font-weight: 650; line-height: 1.5; }
.member-preference-row { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid #eadde4; border-radius: 12px; background: #fff; cursor: pointer; }
.member-preference-row > span { display: flex; align-items: center; gap: 9px; min-width: 0; color: #3f3f46; font-size: 13px; }
.member-preference-row iconify-icon { flex: 0 0 auto; color: #ff1493; font-size: 18px; }
.member-preference-row input { width: 20px; height: 20px; flex: 0 0 auto; accent-color: #ff1493; }
.member-communication-preferences > button { min-height: 43px; border: 0; border-radius: 12px; background: #17171c; color: #fff; font: inherit; font-weight: 900; cursor: pointer; }
.member-payment-section { padding: 24px; }
.member-payment-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.member-payment-row { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border: 1px solid #e5e7eb; border-radius: 8px; }
.member-payment-row > span { min-width: 0; }
.member-payment-row strong, .member-payment-row small { display: block; overflow-wrap: anywhere; }
.member-pending-checkins { overflow: hidden; }
.member-pending-checkins > h2, .member-pending-checkins > p { overflow-wrap: anywhere; }
.member-pending-checkin-row { min-height: 74px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: 15px 17px; border: 1px solid #f6c453; border-radius: 8px; background: #fff; color: #17171c; }
.member-pending-checkin-copy { min-width: 0; display: grid; gap: 4px; }
.member-pending-checkin-copy strong, .member-pending-checkin-copy small { display: block; overflow-wrap: anywhere; }
.member-pending-checkin-copy small { color: #6b7280; font-size: 12px; font-weight: 750; }
.member-pending-checkin-action { display: inline-flex; align-items: center; justify-content: center; gap: 8px; color: #ff1493; font-weight: 900; white-space: nowrap; }
@media (max-width: 640px) {
    .member-pending-checkin-row { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .member-pending-checkin-action { justify-content: flex-start; white-space: normal; }
}
.member-payment-remove { width: 40px; height: 40px; flex: 0 0 40px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #fecaca; border-radius: 8px; background: #fff; color: #dc2626; cursor: pointer; }
@media (max-width: 720px) {
    .member-payment-section { padding: 20px; }
    .member-payment-list { grid-template-columns: minmax(0, 1fr); }
}

.contact-label {
    display: grid;
    gap: 0.5rem;
    color: #111827;
    font-weight: 900;
}

.contact-label span {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.member-children-count {
    min-width: 58px;
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    padding: 5px 11px;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    background: #f3f4f6;
    color: #4b5563;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
}

.member-child-message { margin-bottom: 20px; }
.member-child-create-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; gap: 16px; }
.member-child-submit {
    min-height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 22px;
    border: 0;
    border-radius: 16px;
    background: #ff1493;
    color: #fff;
    font: inherit;
    font-weight: 900;
    white-space: nowrap;
    cursor: pointer;
}

.site-check-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff;
    color: #374151;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.45;
}

.site-check-row input {
    margin-top: 3px;
    accent-color: var(--hot-pink);
}

.contact-info-row {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.05);
    border-radius: 1.5rem;
    padding: 1rem;
}

.contact-info-row iconify-icon {
    color: var(--hot-pink);
    font-size: 1.5rem;
    flex: 0 0 auto;
}

.contact-info-row strong,
.contact-info-row span,
.contact-whatsapp-link {
    display: block;
}

.contact-info-row strong {
    color: #fff;
    font-weight: 900;
}

.contact-info-row span,
.contact-whatsapp-link {
    color: #9ca3af;
    font-size: 0.9rem;
    margin-top: 0.2rem;
}

.contact-whatsapp-link {
    width: fit-content;
    text-decoration: none;
    transition: color 0.2s ease;
}

.contact-whatsapp-link:hover,
.contact-whatsapp-link:focus-visible {
    color: #fff;
}

.contact-hero {
    isolation: isolate;
}

.contact-hero-motion {
    position: absolute;
    inset: -7% -4%;
    display: grid;
    grid-template-columns: 1.05fr 0.9fr 1.05fr;
    gap: 14px;
    opacity: 0.58;
    transform: rotate(-2deg) scale(1.06);
}

.contact-hero-panel {
    position: relative;
    min-width: 0;
    overflow: hidden;
    background: #17171c;
}

.contact-hero-panel::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8, 8, 10, 0.08), rgba(8, 8, 10, 0.32));
}

.contact-hero-panel img {
    width: 112%;
    height: 112%;
    display: block;
    object-fit: cover;
    filter: saturate(0.82) contrast(1.06);
    animation: contact-hero-drift 10s ease-in-out infinite alternate;
    will-change: transform;
}

.contact-hero-panel.panel-trampoline img {
    object-position: 48% center;
}

.contact-hero-panel.panel-softplay img {
    object-position: 58% center;
    animation-duration: 12s;
    animation-direction: alternate-reverse;
}

.contact-hero-panel.panel-hado img {
    object-position: 55% center;
    animation-duration: 14s;
}

.contact-hero-scrim {
    z-index: 1;
    background: rgba(8, 8, 10, 0.2);
}

.contact-hero > .hero-overlay-radial {
    z-index: 2;
    background: linear-gradient(
        90deg,
        rgba(8, 8, 10, 0.68) 0%,
        rgba(8, 8, 10, 0.4) 45%,
        rgba(8, 8, 10, 0.5) 100%
    );
}

@keyframes contact-hero-drift {
    0% { transform: translate3d(-3%, -2%, 0) scale(1.03); }
    100% { transform: translate3d(2%, 2%, 0) scale(1.1); }
}

.birthday-hero {
    isolation: isolate;
}

.birthday-hero-motion {
    position: absolute;
    inset: -8% -4%;
    display: grid;
    grid-template-columns: 1.15fr 0.85fr 0.9fr;
    gap: 14px;
    opacity: 0.74;
    transform: rotate(-2deg) scale(1.06);
}

.birthday-hero-panel {
    position: relative;
    min-width: 0;
    overflow: hidden;
    background: #17171c;
}

.birthday-hero-panel::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(10, 10, 12, 0.08), rgba(10, 10, 12, 0.4));
}

.birthday-hero-panel img {
    width: 112%;
    height: 112%;
    display: block;
    object-fit: cover;
    filter: saturate(0.86) contrast(1.05);
    animation: birthday-hero-drift 8s ease-in-out infinite alternate;
    will-change: transform;
}

.birthday-hero-panel.panel-party img {
    object-position: center 48%;
}

.birthday-hero-panel.panel-video img {
    animation-duration: 10s;
    animation-direction: alternate-reverse;
    object-position: 48% center;
}

.birthday-hero-panel.panel-photos img {
    animation-duration: 12s;
    object-position: center 44%;
}

.birthday-hero-scrim {
    z-index: 1;
    background: rgba(8, 8, 10, 0.2);
}

.birthday-hero > .hero-overlay-radial {
    z-index: 2;
    background: linear-gradient(
        90deg,
        rgba(8, 8, 10, 0.82) 0%,
        rgba(8, 8, 10, 0.54) 31%,
        rgba(8, 8, 10, 0.18) 58%,
        rgba(8, 8, 10, 0.12) 100%
    );
}

@keyframes birthday-hero-drift {
    0% { transform: translate3d(-3%, -2%, 0) scale(1.03); }
    100% { transform: translate3d(2%, 2%, 0) scale(1.1); }
}

@media (prefers-reduced-motion: reduce) {
    .home-hero-track {
        animation: none;
        transform: translate3d(-8%, 0, 0);
    }

    .contact-hero-panel img,
    .birthday-hero-panel img {
        animation: none;
        transform: scale(1.06);
    }
}

.birthday-gallery {
    min-height: 430px;
    position: relative;
}

.birthday-visual {
    position: absolute;
    display: grid;
    place-items: center;
    text-align: center;
    color: #fff;
    border: 8px solid rgba(255, 255, 255, 0.9);
    box-shadow: 0 34px 80px rgba(0, 0, 0, 0.35);
    overflow: hidden;
}

.birthday-visual::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(10, 10, 12, 0.05) 20%, rgba(10, 10, 12, 0.82) 100%);
}

.birthday-visual > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform 0.7s ease;
}

.birthday-visual:hover > img {
    transform: scale(1.045);
}

.birthday-visual iconify-icon,
.birthday-visual span {
    position: relative;
    z-index: 2;
}

.birthday-visual iconify-icon {
    font-size: clamp(3rem, 7vw, 5rem);
}

.birthday-visual span {
    display: block;
    margin-top: 0.75rem;
    padding: 0 0.75rem;
    font-family: 'Clash Grotesk', 'Inter', sans-serif;
    font-weight: 900;
    font-size: 1.45rem;
}

.birthday-visual-main {
    left: 3%;
    top: 8%;
    width: 64%;
    height: 68%;
    border-radius: 2rem;
    transform: rotate(-5deg);
}

.birthday-visual-side {
    right: 0;
    top: 0;
    width: 42%;
    height: 44%;
    border-radius: 1.65rem;
    transform: rotate(7deg);
}

.birthday-visual-side.second {
    right: 7%;
    top: 52%;
    width: 38%;
    height: 36%;
    transform: rotate(5deg);
}

.cms-body {
    display: grid;
    gap: 12px;
    line-height: 1.75;
}

.cms-body p {
    margin: 0;
}

.birthday-cms-card .cms-body {
    display: block;
}

.birthday-cms-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    gap: 2rem;
    align-items: center;
}

.birthday-cms-text {
    display: grid;
    gap: 1rem;
}

.birthday-cms-text h2 {
    margin: 0;
    color: #0a0a0c;
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 950;
    letter-spacing: 0;
    line-height: 1;
}

.birthday-cms-text p,
.birthday-cms-text li {
    color: #6b7280;
    font-weight: 700;
    line-height: 1.75;
}

.birthday-cms-media {
    position: relative;
    overflow: hidden;
    border-radius: 1.5rem;
    aspect-ratio: 16 / 9;
    background: #121218;
}

.cms-media-image,
.cms-media-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cms-media-link {
    color: #ff1493;
    font-weight: 900;
    text-decoration: underline;
}

.birthday-video-placeholder {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #ff1493;
    background:
        radial-gradient(circle at 25% 20%, rgba(255, 20, 147, 0.35), transparent 32%),
        radial-gradient(circle at 80% 70%, rgba(34, 197, 94, 0.22), transparent 35%),
        linear-gradient(135deg, #171720, #0a0a0c);
}

.birthday-video-placeholder iconify-icon {
    width: 5rem;
    height: 5rem;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    font-size: 2.5rem;
}

.lang-select {
    height: 38px;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    background: #fff;
    color: #52525b;
    padding: 0 0.75rem;
    font-size: 12px;
    font-weight: 900;
    outline: 0;
}

.footer-title {
    font-weight: 800;
    color: #111827;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    margin-bottom: 1.5rem;
}

.footer-list {
    display: grid;
    gap: 1rem;
}

.footer-list a {
    color: #6b7280;
    font-size: 0.875rem;
    font-weight: 700;
    text-decoration: none;
}

.footer-list a:hover {
    color: var(--hot-pink);
}

.booking-step {
    display: none;
}

.booking-step.active {
    display: block;
    animation: bookingSlideIn 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.choice-card.selected {
    border-color: var(--hot-pink);
    box-shadow: 0 0 0 4px rgba(255, 20, 147, 0.2);
}

@keyframes bookingSlideIn {
    from { opacity: 0; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
}

.booking-ticket-card {
    min-height: 190px;
    position: relative;
    overflow: hidden;
    text-align: left;
    cursor: pointer;
    background: #121218;
    border: 1px solid #2E2E33;
    border-radius: 1rem;
    padding: 1.5rem;
    transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.booking-ticket-card:hover {
    border-color: rgba(255, 20, 147, 0.5);
    transform: translateY(-3px);
}

.booking-ticket-card.selected {
    border-color: #FF1493;
    box-shadow: 0 0 25px rgba(255, 20, 147, 0.2);
}

.booking-ticket-head {
    padding-right: 3rem;
}

.booking-ticket-card .visual-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.booking-ticket-bg {
    position: absolute;
    right: -1.5rem;
    bottom: -1.5rem;
    font-size: 7rem;
    color: rgba(255,255,255,0.14);
    pointer-events: none;
}

.booking-check {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 999px;
    background: #FF1493;
    display: grid;
    place-items: center;
    opacity: 0;
    transform: scale(0.5);
    transition: opacity 0.25s ease, transform 0.25s ease;
    z-index: 20;
}

.booking-ticket-card.selected .booking-check {
    opacity: 1;
    transform: scale(1);
}

.booking-time-slot {
    background: #121218;
    border: 1px solid #2E2E33;
    color: #fff;
    border-radius: 0.9rem;
    padding: 1rem 0.75rem;
    font-weight: 900;
    transition: border-color 0.2s ease, background 0.2s ease;
}

.booking-time-slot:hover,
.booking-time-slot.selected {
    border-color: #FF1493;
}

.booking-time-slot.selected {
    background: #FF1493;
}

.booking-time-slot small {
    display: block;
    color: #22c55e;
    font-size: 0.65rem;
    margin-top: 0.25rem;
}

.payment-card {
    width: 100%;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 1rem;
    background: #121218;
    border: 1px solid #2E2E33;
    border-radius: 1rem;
    padding: 1.5rem;
    color: #fff;
    cursor: pointer;
}

.payment-card .visual-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.payment-card strong,
.payment-card small {
    display: block;
}

.payment-card strong {
    font-family: 'Clash Grotesk', 'Inter', sans-serif;
    font-size: 1.15rem;
}

.payment-card small {
    color: #9ca3af;
    margin-top: 0.25rem;
}

.payment-card.selected {
    border-color: #FF1493;
}

.payment-radio-dot {
    position: relative;
    z-index: 1;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 999px;
    border: 2px solid rgba(255,255,255,0.2);
    flex: 0 0 auto;
}

.payment-card.selected .payment-radio-dot::after {
    content: '';
    position: absolute;
    inset: 0.3rem;
    border-radius: 999px;
    background: #FF1493;
}

.booking-gate-card {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    width: 100%;
    text-align: left;
    padding: 1.25rem;
    border: 1px solid #e5e7eb;
    border-radius: 1.25rem;
    background: #fff;
    color: #111827;
    text-decoration: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.booking-gate-card:hover {
    border-color: rgba(255, 20, 147, 0.35);
    box-shadow: 0 18px 44px rgba(17, 24, 39, 0.08);
    transform: translateY(-2px);
}

.booking-gate-card strong,
.booking-gate-card small {
    display: block;
}

.booking-gate-card strong {
    font-family: 'Clash Grotesk', 'Inter', sans-serif;
    font-size: 1.35rem;
    font-weight: 900;
}

.booking-gate-card small {
    margin-top: 0.25rem;
    color: #6b7280;
    font-weight: 700;
}

.summary-label {
    color: #6b7280;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.68rem;
}

.sidebar-sticky {
    position: sticky;
    top: 5.5rem;
    color: #fff;
}

.sidebar-sticky strong {
    color: #fff;
}

.location-map-shell {
    position: relative;
}

.location-map-shell::before {
    content: '';
    position: absolute;
    inset: -18px;
    border-radius: 2.5rem;
    background:
        radial-gradient(circle at 18% 18%, rgba(255, 20, 147, 0.32), transparent 34%),
        radial-gradient(circle at 82% 74%, rgba(34, 197, 94, 0.22), transparent 32%),
        linear-gradient(135deg, rgba(255,255,255,0.18), rgba(255,255,255,0.04));
    pointer-events: none;
}

.location-map-card,
.location-open-maps { position: relative; z-index: 1; }

.footer-sms-manage-link { width: fit-content; color: #71717a; font-size: 11px; font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.footer-sms-manage-link:hover { color: #ff1493; }

.sms-unsubscribe-page { min-height: 68vh; padding: 72px 24px; background: #f5f5f5; }
.sms-unsubscribe-shell { width: min(1080px, 100%); display: grid; grid-template-columns: minmax(0, .9fr) minmax(380px, 1.1fr); gap: 56px; align-items: center; margin: 0 auto; }
.sms-unsubscribe-intro > span { display: inline-flex; align-items: center; gap: 8px; color: #ff1493; font-size: 12px; font-weight: 900; text-transform: uppercase; }
.sms-unsubscribe-intro h1 { margin: 18px 0; font-family: var(--font-display); font-size: clamp(42px, 6vw, 72px); font-weight: 950; line-height: .95; }
.sms-unsubscribe-intro > p { max-width: 560px; color: #71717a; font-size: 17px; font-weight: 600; line-height: 1.65; }
.sms-unsubscribe-card { min-width: 0; padding: 32px; border: 1px solid #e3e3e7; border-radius: 20px; background: #fff; box-shadow: 0 26px 70px rgba(25,25,31,.1); }
.sms-unsubscribe-card h2 { margin: 0 0 9px; font-family: var(--font-display); font-size: 28px; font-weight: 950; }
.sms-unsubscribe-card > p { margin: 0 0 22px; color: #71717a; font-weight: 650; line-height: 1.55; }
.sms-unsubscribe-form { display: grid; gap: 16px; margin-top: 22px; }
.sms-unsubscribe-primary,
.sms-unsubscribe-secondary,
.sms-unsubscribe-danger { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 0 20px; border: 0; border-radius: 14px; font: inherit; font-weight: 900; cursor: pointer; }
.sms-unsubscribe-primary { background: #ff1493; color: #fff; }
.sms-unsubscribe-secondary { background: #17171c; color: #fff; }
.sms-unsubscribe-danger { background: #b91c1c; color: #fff; }
.sms-unsubscribe-state-icon { width: 54px; height: 54px; display: grid; place-items: center; margin-bottom: 19px; border-radius: 15px; background: #ff1493; color: #fff; font-size: 26px; }
.sms-unsubscribe-state-icon.warning { background: #f59e0b; }
.sms-unsubscribe-state-icon.success { background: #16a34a; }
.sms-unsubscribe-check { display: flex; align-items: flex-start; gap: 10px; padding: 14px; border: 1px solid #fecaca; border-radius: 12px; background: #fef2f2; color: #7f1d1d; font-size: 13px; font-weight: 800; cursor: pointer; }
.sms-unsubscribe-check input { width: 18px; height: 18px; flex: 0 0 auto; accent-color: #b91c1c; }
.sms-unsubscribe-message { margin-bottom: 20px; padding: 13px 15px; border-radius: 12px; font-size: 13px; font-weight: 800; }
.sms-unsubscribe-message.error { border: 1px solid #fecaca; background: #fef2f2; color: #b91c1c; }
.sms-unsubscribe-message p { margin: 0; }

@media (max-width: 850px) {
    .member-profile-info-grid { grid-template-columns: 1fr; }
    .sms-unsubscribe-page { padding: 48px 20px; }
    .sms-unsubscribe-shell { grid-template-columns: 1fr; gap: 30px; }
}

@media (max-width: 520px) {
    .member-profile-info-card { padding: 18px; }
    .member-communication-preferences { padding: 17px; }
    .sms-unsubscribe-page { padding-inline: 14px; }
    .sms-unsubscribe-card { padding: 22px 18px; }
}

.location-map-card {
    position: relative;
    overflow: hidden;
    border: 8px solid #fff;
    border-radius: 2rem;
    background: #fff;
    box-shadow: 0 28px 70px rgba(0,0,0,0.42);
}

.location-map-card::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    box-shadow: inset 0 0 0 1px rgba(255,20,147,0.12);
}

.cookie-toast {
    position: fixed;
    left: 50%;
    bottom: 18px;
    z-index: 80;
    width: min(720px, calc(100vw - 32px));
    transform: translate(-50%, 140%);
    opacity: 0;
    transition: transform 0.35s ease, opacity 0.35s ease;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    background: rgba(18, 18, 24, 0.96);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 18px;
    box-shadow: 0 24px 60px rgba(0,0,0,0.24);
}

.cookie-toast.show {
    transform: translate(-50%, 0);
    opacity: 1;
}

.cookie-toast strong,
.cookie-toast span {
    display: block;
}

.cookie-toast strong {
    font-weight: 900;
    color: #fff;
}

.cookie-toast span {
    color: #c7cad1;
    font-size: 0.85rem;
}

.cookie-toast a {
    color: #fff;
    background: #FF1493;
    border-radius: 999px;
    padding: 9px 14px;
    font-size: 0.78rem;
    font-weight: 900;
    text-decoration: none;
}

.not-found-page {
    min-height: 78vh;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: center;
    max-width: 1180px;
    margin: 0 auto;
    padding: clamp(3rem, 7vw, 6rem) 1.5rem;
    overflow: hidden;
}

.not-found-stage {
    position: relative;
    min-height: 380px;
    display: grid;
    place-items: center;
}

.not-found-stage::before {
    content: '';
    position: absolute;
    inset: 8% 0 4%;
    border-radius: 3rem;
    background:
        radial-gradient(circle at 28% 22%, rgba(255, 20, 147, 0.24), transparent 34%),
        radial-gradient(circle at 74% 70%, rgba(34, 197, 94, 0.18), transparent 34%),
        linear-gradient(135deg, #fff, #f7f7fb);
    border: 1px solid #eef0f4;
}

.not-found-number {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: end;
    justify-content: center;
    gap: clamp(0.45rem, 1.4vw, 1rem);
    font-family: var(--font-display);
    font-size: clamp(7rem, 19vw, 13rem);
    font-weight: 1000;
    line-height: 0.85;
    letter-spacing: 0;
    color: #111827;
    text-shadow: 0 16px 36px rgba(17, 24, 39, 0.12);
}

.not-found-number span {
    display: inline-block;
    animation: notFoundBounce 1.45s cubic-bezier(.33, .9, .48, 1) infinite;
}

.not-found-number span:nth-child(2) {
    color: #FF1493;
    animation-delay: 0.12s;
}

.not-found-number span:nth-child(3) {
    animation-delay: 0.24s;
}

.not-found-trampoline {
    position: absolute;
    left: 50%;
    bottom: 20%;
    z-index: 1;
    width: min(470px, 82%);
    height: 72px;
    transform: translateX(-50%);
    border: 10px solid #111827;
    border-top-width: 8px;
    border-radius: 50%;
    background: linear-gradient(90deg, #FF1493, #8b5cf6, #22c55e);
    box-shadow: 0 22px 60px rgba(17, 24, 39, 0.16);
    animation: trampolineFlex 1.45s ease-in-out infinite;
}

.not-found-trampoline span {
    position: absolute;
    inset: 10px 18px;
    border-radius: 50%;
    border: 2px dashed rgba(255, 255, 255, 0.9);
}

.not-found-spring {
    position: absolute;
    bottom: 12%;
    z-index: 0;
    width: 16px;
    height: 78px;
    border-left: 5px solid #111827;
    border-right: 5px solid #111827;
    transform: skewX(-12deg);
}

.spring-left { left: 25%; }
.spring-right { right: 25%; transform: skewX(12deg); }

.not-found-copy {
    position: relative;
    z-index: 2;
    display: grid;
    gap: 1rem;
}

.not-found-kicker {
    width: fit-content;
    border-radius: 999px;
    background: #fff0f8;
    color: #FF1493;
    padding: 0.55rem 0.85rem;
    font-size: 0.75rem;
    font-weight: 1000;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.not-found-copy h1 {
    margin: 0;
    color: #111827;
    font-family: var(--font-display);
    font-size: clamp(2.6rem, 6vw, 5rem);
    font-weight: 1000;
    line-height: 0.95;
    letter-spacing: 0;
}

.not-found-copy p {
    max-width: 520px;
    margin: 0;
    color: #6b7280;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.65;
}

.not-found-copy small {
    width: fit-content;
    max-width: 100%;
    overflow-wrap: anywhere;
    border-radius: 999px;
    background: #f3f4f6;
    color: #6b7280;
    padding: 0.55rem 0.8rem;
    font-size: 0.8rem;
    font-weight: 850;
}

.not-found-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.5rem;
}

.not-found-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    border-radius: 999px;
    background: #FF1493;
    color: #fff;
    padding: 0 1.2rem;
    font-weight: 1000;
    text-decoration: none;
    box-shadow: 0 14px 34px rgba(255, 20, 147, 0.24);
}

.not-found-actions a.secondary {
    border: 1px solid #e5e7eb;
    background: #fff;
    color: #111827;
    box-shadow: none;
}

@keyframes notFoundBounce {
    0%, 100% { transform: translateY(-16px) scaleY(1); }
    48% { transform: translateY(28px) scaleY(0.92); }
    62% { transform: translateY(16px) scaleY(1.04); }
}

@keyframes trampolineFlex {
    0%, 100% { transform: translateX(-50%) scaleY(1); }
    48% { transform: translateX(-50%) scaleY(0.82); }
    62% { transform: translateX(-50%) scaleY(1.05); }
}

@media (prefers-reduced-motion: reduce) {
    .not-found-number span,
    .not-found-trampoline {
        animation: none;
    }
}

@media (max-width: 767px) {
    .not-found-page {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        padding-top: 2.5rem;
    }

    .not-found-stage {
        min-height: 280px;
        order: 1;
    }

    .not-found-copy {
        order: 2;
    }

    .not-found-trampoline {
        bottom: 18%;
        height: 56px;
        border-width: 7px;
    }

    .not-found-spring {
        height: 58px;
        bottom: 11%;
    }

    .spring-left { left: 20%; }
    .spring-right { right: 20%; }

    .home-desktop-only {
        display: none !important;
    }

    .desktop-only {
        display: none !important;
    }

    .category-section {
        scroll-margin-top: 132px;
    }

    .birthday-gallery {
        min-height: 330px;
    }

    .contact-hero-motion {
        inset: -3% -32%;
        grid-template-columns: repeat(3, minmax(210px, 1fr));
        gap: 8px;
        opacity: 0.52;
        transform: rotate(-3deg) scale(1.04);
    }

    .contact-hero > .hero-overlay-radial {
        background: linear-gradient(
            180deg,
            rgba(8, 8, 10, 0.56) 0%,
            rgba(8, 8, 10, 0.46) 42%,
            rgba(8, 8, 10, 0.58) 100%
        );
    }

    .birthday-hero-motion {
        inset: -3% -18%;
        grid-template-columns: repeat(3, minmax(180px, 1fr));
        gap: 8px;
        opacity: 0.7;
        transform: rotate(-3deg) scale(1.04);
    }

    .birthday-hero-scrim {
        background: rgba(8, 8, 10, 0.26);
    }

    .birthday-hero > .hero-overlay-radial {
        background: linear-gradient(
            180deg,
            rgba(8, 8, 10, 0.7) 0%,
            rgba(8, 8, 10, 0.36) 48%,
            rgba(8, 8, 10, 0.22) 100%
        );
    }

    .birthday-visual {
        border-width: 5px;
    }

    .birthday-cms-layout {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .sidebar-sticky {
        position: relative;
        top: 0;
    }

    .booking-ticket-card {
        min-height: 160px;
        padding: 1.25rem;
        border-radius: 1.25rem;
    }

    .booking-date-picker {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.checkin-addon-quota { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 12px; margin-bottom: 12px; padding: 14px; border: 1px solid #f3bfdc; border-radius: 8px; background: #fff7fb; }
.checkin-addon-quota > iconify-icon { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 7px; background: #ff1493; color: #fff; font-size: 20px; }
.checkin-addon-quota strong, .checkin-addon-quota small { display: block; }
.checkin-addon-quota strong { font-size: 14px; font-weight: 950; }
.checkin-addon-quota small { margin-top: 2px; color: #777780; font-size: 10px; }
.checkin-addon-quota > span { padding: 7px 10px; border-radius: 6px; background: #18181d; color: #fff; font-size: 11px; font-weight: 950; }
.checkin-addon-quota > span.complete { background: #16a34a; }
.checkin-eligibility { display: grid; gap: 8px; margin-top: 14px; padding: 14px; border: 1px solid #dce7df; border-radius: 8px; background: #f7fcf8; }
.checkin-eligibility > strong { display: flex; align-items: center; gap: 7px; color: #166534; font-size: 12px; font-weight: 950; }
.checkin-eligibility p, .checkin-addon-rules p { display: flex; align-items: center; gap: 7px; margin: 0; color: #4b5563; font-size: 11px; font-weight: 750; }
.checkin-eligibility label, .checkin-addon-rules label { display: flex; align-items: flex-start; gap: 8px; color: #3f3f46; font-size: 11px; font-weight: 750; line-height: 1.45; }
.checkin-eligibility input, .checkin-addon-rules input { width: 17px; height: 17px; flex: 0 0 auto; accent-color: #ff1493; }
.checkin-addon-assignment { margin-top: 14px; overflow: hidden; border: 1px solid #d8d8de; border-radius: 8px; background: #fff; }
.checkin-addon-assignment.selected { border-color: #ff1493; box-shadow: 0 0 0 2px rgba(255,20,147,.08); }
.checkin-addon-choice { display: block; cursor: pointer; }
.checkin-addon-choice > input { position: absolute; opacity: 0; pointer-events: none; }
.checkin-addon-choice > span { display: grid; grid-template-columns: 40px minmax(0,1fr) auto; align-items: center; column-gap: 11px; padding: 13px; }
.checkin-addon-choice .checkin-addon-activity { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 7px; background: #26262d; color: #fff; font-size: 18px; }
.checkin-addon-choice > span > strong { display: block; font-size: 14px; font-weight: 950; }
.checkin-addon-toggle { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; gap: 8px; padding: 8px 11px; border: 1px solid #dedee5; border-radius: 7px; background: #f7f7f8; color: #34343b; }
.checkin-addon-toggle iconify-icon { flex: 0 0 auto; color: #777780; font-size: 20px; }
.checkin-addon-toggle b { font-size: 13px; font-weight: 950; white-space: nowrap; }
.checkin-addon-checked { display: none; }
.checkin-addon-assignment.selected .checkin-addon-activity { background: #ff1493; }
.checkin-addon-assignment.selected .checkin-addon-toggle { border-color: #ff1493; background: #ff1493; color: #fff; }
.checkin-addon-assignment.selected .checkin-addon-toggle iconify-icon { color: #fff; }
.checkin-addon-assignment.selected .checkin-addon-unchecked { display: none; }
.checkin-addon-assignment.selected .checkin-addon-checked { display: block; }
.checkin-addon-rules { display: grid; gap: 9px; padding: 13px; border-top: 1px solid #f1d0e2; background: #fff8fc; }

@media (max-width: 560px) {
    .checkin-addon-quota { grid-template-columns: 38px minmax(0,1fr); }
    .checkin-addon-quota > span { grid-column: 1 / -1; width: 100%; text-align: center; }
    .checkin-addon-choice > span { grid-template-columns: 38px minmax(0,1fr); }
    .checkin-addon-toggle { grid-column: 2; justify-self: stretch; margin-top: 8px; }
    .checkin-addon-toggle b { white-space: normal; }
}

@media (min-width: 768px) {
    .mobile-only {
        display: none !important;
    }
}

.member-ticket-row {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(220px, 1.25fr) repeat(3, minmax(120px, 0.7fr)) 42px;
    gap: 18px;
    align-items: center;
    padding: 20px 24px;
    border: 0;
    background: #fff;
    color: #111827;
    text-align: left;
    cursor: pointer;
    transition: background 0.2s ease;
}

.member-ticket-row:hover { background: #fff7fb; }
.member-ticket-row strong,
.member-ticket-row small { display: block; }
.member-ticket-row strong { font-weight: 950; }
.member-ticket-row small {
    margin-bottom: 4px;
    color: #71717a;
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
}
.member-ticket-main strong {
    font-family: 'Clash Grotesk', 'Outfit', sans-serif;
    font-size: 22px;
}
.member-ticket-main small {
    margin-top: 5px;
    text-transform: none;
}
.member-ticket-qr-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: #FF1493;
    background: rgba(255,20,147,0.1);
    font-size: 24px;
}
.member-page-link {
    min-width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    color: #111827;
    background: #fff;
    font-size: 12px;
    font-weight: 950;
    text-decoration: none;
}
.member-page-link.active {
    color: #fff;
    border-color: #FF1493;
    background: #FF1493;
}
.member-ticket-modal.hidden { display: none; }
.member-ticket-modal {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: grid;
    place-items: center;
    padding: 20px;
}
.member-ticket-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10,10,12,0.58);
    backdrop-filter: blur(8px);
}
.member-ticket-card {
    position: relative;
    width: min(520px, 100%);
    max-height: 92vh;
    overflow-y: auto;
}
.member-ticket-close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,0.18);
    border-radius: 999px;
    color: #fff;
    background: rgba(17,24,39,0.72);
    cursor: pointer;
}
.ticket-art {
    position: relative;
    overflow: hidden;
    padding: 28px;
    border-radius: 32px;
    color: #fff;
    background:
        radial-gradient(circle at 15% 12%, rgba(255,255,255,0.24), transparent 22%),
        radial-gradient(circle at 85% 8%, rgba(34,197,94,0.28), transparent 26%),
        linear-gradient(145deg, #121218 0%, #2a1030 46%, #FF1493 100%);
    box-shadow: 0 30px 80px rgba(17,24,39,0.28);
}
.public-ticket-art { box-shadow: 0 30px 80px rgba(255,20,147,0.16); }
.ticket-art::before,
.ticket-art::after {
    content: '';
    position: absolute;
    top: 45%;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    background: #f5f5f5;
}
.ticket-art::before { left: -17px; }
.ticket-art::after { right: -17px; }
.ticket-art-head {
    display: grid;
    gap: 5px;
    text-align: center;
}
.ticket-art-head span {
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 0.22em;
    color: rgba(255,255,255,0.72);
}
.ticket-art-head .ticket-art-brand {
    font-size: 12px;
    letter-spacing: 0.04em;
}
.ticket-art-head strong {
    font-family: 'Clash Grotesk', 'Outfit', sans-serif;
    font-size: clamp(30px, 8vw, 46px);
    line-height: 0.95;
}
.ticket-art-head small {
    color: rgba(255,255,255,0.72);
    font-size: 12px;
    font-weight: 850;
}
.ticket-art-qr {
    width: min(280px, 82vw);
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    margin: 26px auto;
    padding: 16px;
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 20px 60px rgba(0,0,0,0.22);
}
.ticket-art-qr img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.ticket-art-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.ticket-art-grid div {
    min-width: 0;
    padding: 13px;
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 16px;
    background: rgba(255,255,255,0.08);
}
.ticket-art-grid span {
    display: block;
    color: rgba(255,255,255,0.65);
    font-size: 10px;
    font-weight: 950;
    text-transform: uppercase;
}
.ticket-art-grid strong {
    display: block;
    margin-top: 4px;
    font-size: 13px;
    font-weight: 950;
    overflow-wrap: anywhere;
}
.ticket-public-link {
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 18px;
    border-radius: 15px;
    color: #111827;
    background: #fff;
    font-weight: 950;
    text-decoration: none;
}
.public-ticket-addons {
    margin-top: 12px;
    padding: 13px;
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 16px;
    background: rgba(255,255,255,0.08);
}
.public-ticket-addons > span {
    display: block;
    margin-bottom: 8px;
    color: rgba(255,255,255,0.65);
    font-size: 10px;
    font-weight: 950;
    text-transform: uppercase;
}
.public-ticket-addons > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.public-ticket-addons strong {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
}
.ticket-art-note {
    margin: 18px 0 0;
    color: rgba(255,255,255,0.75);
    text-align: center;
    font-size: 12px;
    font-weight: 800;
}

@media (max-width: 760px) {
    .member-ticket-row {
        grid-template-columns: 1fr 42px;
        gap: 12px;
        padding: 18px;
    }
    .member-ticket-row > span:not(.member-ticket-main) {
        grid-column: 1 / -1;
    }
    .member-ticket-qr-icon {
        grid-row: 1;
        grid-column: 2;
    }
    .ticket-art {
        padding: 22px;
        border-radius: 26px;
    }
    .ticket-art-grid {
        grid-template-columns: 1fr;
    }
}
body.payment-modal-open {
  overflow: hidden;
}

.payment-hosted-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: 20px;
}

.payment-hosted-modal.hidden {
  display: none;
}

.payment-hosted-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(12, 12, 16, 0.78);
  backdrop-filter: blur(8px);
}

.payment-hosted-shell {
  position: relative;
  width: min(720px, 100%);
  height: min(820px, calc(100vh - 40px));
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.38);
}

.payment-hosted-head,
.payment-hosted-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 22px;
  background: #fff;
}

.payment-hosted-head {
  border-bottom: 1px solid #e5e7eb;
}

.payment-hosted-head h2 {
  margin: 3px 0 0;
  color: #17171c;
  font-size: 20px;
  font-weight: 900;
}

.payment-hosted-kicker {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #16a34a;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.payment-hosted-close {
  width: 40px;
  height: 40px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  background: #f8fafc;
  color: #17171c;
  cursor: pointer;
}

.payment-hosted-frame {
  width: 100%;
  height: 100%;
  min-height: 0;
  border: 0;
  background: #fff;
}

.payment-frame-loading {
  position: absolute;
  inset: 78px 0 70px;
  z-index: 2;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 14px;
  background: #fff;
  color: #374151;
  font-size: 14px;
}

.payment-frame-loading.hidden,
.payment-hosted-frame.hidden {
  display: none;
}

.payment-spinner {
  width: 34px;
  height: 34px;
  border: 3px solid #f3f4f6;
  border-top-color: #ff1493;
  border-radius: 50%;
  animation: payment-spin 0.8s linear infinite;
}

.payment-hosted-foot {
  border-top: 1px solid #e5e7eb;
}

.payment-hosted-foot p {
  margin: 0;
  color: #6b7280;
  font-size: 12px;
  line-height: 1.45;
}

.payment-external-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex: 0 0 auto;
  color: #ff1493;
  font-size: 12px;
  font-weight: 900;
  text-decoration: none;
}

.payment-return-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
  background: #f5f5f5;
  color: #17171c;
}

.payment-return-card {
  width: min(440px, 100%);
  padding: 36px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  text-align: center;
}

.payment-return-card h1 {
  margin: 18px 0 8px;
  font-size: 28px;
  font-weight: 900;
}

.payment-return-card p {
  margin: 0;
  color: #6b7280;
}

.payment-return-card .payment-return-countdown {
  margin-top: 16px;
  color: #374151;
  font-size: 13px;
  font-weight: 800;
}

.payment-return-action {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 18px;
  padding: 0 20px;
  border-radius: 7px;
  background: #17171c;
  color: #fff;
  font-size: 14px;
  font-weight: 900;
  text-decoration: none;
}

.payment-return-action:hover {
  background: #ff1493;
}

.payment-return-icon {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  margin: 0 auto;
  border-radius: 50%;
  background: #fff1f7;
  color: #ff1493;
  font-size: 28px;
  font-weight: 900;
}

.payment-return-icon.success {
  background: #dcfce7;
  color: #16a34a;
}

.payment-return-icon.failed {
  background: #fee2e2;
  color: #dc2626;
}

.payment-test-card { position: relative; }
.payment-test-badge { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 18px; padding: 7px 10px; border: 1px solid #f9a8d4; border-radius: 7px; background: #fff1f7; color: #be185d; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.payment-test-summary { display: grid; gap: 1px; margin: 24px 0; overflow: hidden; border: 1px solid #e5e7eb; border-radius: 7px; background: #e5e7eb; text-align: left; }
.payment-test-summary div { display: grid; grid-template-columns: minmax(110px, .7fr) minmax(0, 1fr); gap: 14px; padding: 11px 13px; background: #fafafa; }
.payment-test-summary dt { color: #6b7280; font-size: 11px; font-weight: 800; }
.payment-test-summary dd { margin: 0; overflow-wrap: anywhere; font-size: 12px; font-weight: 900; text-align: right; }
.payment-test-submit { width: 100%; min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 7px; background: #ff1493; color: #fff; font: inherit; font-weight: 900; cursor: pointer; }
.payment-test-error { margin-bottom: 14px; padding: 11px; border: 1px solid #fecaca; border-radius: 7px; background: #fef2f2; color: #b91c1c; font-size: 13px; font-weight: 800; }

@media (max-width: 480px) {
  .payment-test-card { padding: 24px 18px; }
  .payment-test-summary div { grid-template-columns: 1fr; gap: 3px; }
  .payment-test-summary dd { text-align: left; }
}

.payment-resume-bar {
  position: fixed;
  left: 50%;
  bottom: 20px;
  z-index: 900;
  width: min(560px, calc(100% - 32px));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border: 1px solid #2e2e33;
  border-radius: 8px;
  background: #121218;
  color: #fff;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.28);
  transform: translateX(-50%);
}

.payment-resume-bar.hidden {
  display: none;
}

.payment-resume-bar span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 800;
}

.payment-resume-bar button {
  flex: 0 0 auto;
  border: 0;
  border-radius: 6px;
  padding: 10px 14px;
  background: #ff1493;
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

@keyframes payment-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 640px) {
  .payment-hosted-modal {
    padding: 0;
  }

  .payment-hosted-shell {
    width: 100%;
    height: 100dvh;
    max-height: none;
    border: 0;
    border-radius: 0;
  }

  .payment-hosted-head,
  .payment-hosted-foot {
    padding: 14px 16px;
  }

  .payment-hosted-foot {
    align-items: flex-start;
    flex-direction: column;
  }

  .payment-frame-loading {
    inset: 69px 0 92px;
  }

  .payment-resume-bar {
    align-items: stretch;
    flex-direction: column;
  }
}

.checkin-page { min-height: 100vh; background: #f5f5f5; color: #17171c; }
.booking-legal-box { margin-top: 22px; padding: 20px; border: 1px solid #f7b5d9; border-radius: 8px; background: #fff7fb; }
.booking-legal-head { display: flex; align-items: flex-start; gap: 12px; }
.booking-legal-head > iconify-icon { color: #ff1493; font-size: 25px; }
.booking-legal-head strong, .booking-legal-head small { display: block; }
.booking-legal-head strong { color: #17171c; font-size: 17px; font-weight: 950; }
.booking-legal-head small { margin-top: 2px; color: #6b7280; font-size: 12px; font-weight: 650; }
.booking-legal-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0; }
.booking-legal-links button { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 7px 11px; border: 1px solid #d8dadd; border-radius: 7px; background: #fff; color: #17171c; font-size: 12px; font-weight: 850; cursor: pointer; }
.booking-legal-check { display: flex; align-items: flex-start; gap: 10px; margin-top: 11px; color: #3f3f46; font-size: 13px; font-weight: 750; cursor: pointer; }
.booking-legal-check input { width: 18px; height: 18px; flex: 0 0 auto; accent-color: #ff1493; }
.booking-payment-option-check {
    min-height: 64px;
    align-items: center;
    gap: 12px;
    margin-top: 0;
    padding: 14px 16px;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    background: #fff;
}
.booking-payment-option-check.hidden {
    display: none;
}
.booking-payment-option-check > input {
    margin: 0;
}
.booking-payment-option-check > span {
    min-width: 0;
    line-height: 1.35;
}
.booking-payment-option-check strong,
.booking-payment-option-check small {
    display: block;
}
.booking-payment-option-check small {
    margin-top: 3px;
}
#auto-renew-option {
    border-color: #bbf7d0;
    background: #f0fdf4;
}
.booking-legal-modal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 22px; }
.booking-legal-modal.hidden { display: none; }
.booking-legal-backdrop { position: absolute; inset: 0; background: rgba(14,14,18,.76); }
.booking-legal-dialog { position: relative; width: min(860px, 100%); max-height: min(820px, calc(100dvh - 44px)); display: flex; flex-direction: column; overflow: hidden; border-radius: 8px; background: #fff; box-shadow: 0 24px 80px rgba(0,0,0,.32); }
.booking-legal-dialog > header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 20px; border-bottom: 1px solid #e5e7eb; }
.booking-legal-dialog h2 { margin: 0; font-size: 22px; font-weight: 950; }
.booking-legal-dialog header button { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; border: 0; border-radius: 7px; background: #f3f4f6; cursor: pointer; }
.booking-legal-content { padding: 24px; overflow: auto; color: #303038; line-height: 1.65; }
.booking-legal-content h2 { margin: 20px 0 8px; font-size: 20px; }
.booking-legal-content ul { padding-left: 20px; list-style: disc; }

/* Structured experience booking flow */
.booking-product-card.hidden,
.booking-zipline-card.hidden,
.booking-mini-stepper.hidden,
.booking-rule-strip.hidden,
.booking-date-warning.hidden,
.booking-day-access.hidden,
.booking-socks-card.hidden {
    display: none;
}

.booking-step-kicker,
.booking-addon-kicker { display: block; margin-bottom: 7px; color: #ff1493; font-size: 10px; font-weight: 950; text-transform: uppercase; letter-spacing: .12em; }
.booking-addon-invite { font-size: 16px; font-weight: 950; letter-spacing: 0; text-transform: none; }
.booking-experience-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.booking-experience-card { position: relative; min-height: 220px; display: flex; flex-direction: column; align-items: flex-start; overflow: hidden; padding: 22px; border: 1px solid #dedfe3; border-radius: 8px; background: #fff; color: #19191f; text-align: left; cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.booking-experience-card::after { content: ''; position: absolute; right: -38px; bottom: -54px; width: 150px; height: 150px; border-radius: 50%; background: color-mix(in srgb, var(--experience-accent) 12%, transparent); }
.booking-experience-card:hover { transform: translateY(-2px); border-color: var(--experience-accent); box-shadow: 0 14px 34px rgba(25,25,31,.09); }
.booking-experience-card.selected { border: 2px solid var(--experience-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--experience-accent) 13%, transparent); }
.booking-experience-icon { width: 46px; height: 46px; display: grid; place-items: center; margin-bottom: 22px; border-radius: 8px; background: var(--experience-accent); color: #fff; font-size: 23px; }
.booking-experience-copy { display: grid; gap: 7px; padding-right: 12px; }
.booking-experience-copy strong { font-size: 22px; font-weight: 950; }
.booking-experience-copy small { min-height: 42px; color: #71717a; font-size: 12px; font-weight: 650; line-height: 1.55; }
.booking-experience-price { display: grid; gap: 1px; margin-top: auto; padding-top: 18px; }
.booking-experience-price small { color: #a1a1aa; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.booking-experience-price strong { color: var(--experience-accent); font-size: 19px; font-weight: 950; }
.booking-experience-arrow { position: absolute; right: 17px; bottom: 19px; z-index: 1; color: #9ca3af; font-size: 20px; }
.booking-product-grid { display: grid; gap: 12px; }
.booking-product-card { position: relative; width: 100%; min-height: 112px; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto 24px; align-items: center; gap: 15px; padding: 18px; border: 1px solid #dedfe3; border-radius: 8px; background: #fff; color: #202026; text-align: left; cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease; }
.booking-product-card:hover { border-color: #ff8bc9; }
.booking-product-card.selected { border: 2px solid #ff1493; box-shadow: 0 0 0 3px rgba(255,20,147,.09); }
.booking-product-mark { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 8px; background: #17171d; color: #fff; font-size: 21px; }
.booking-product-copy { display: grid; gap: 5px; min-width: 0; }
.booking-product-copy strong { font-size: 16px; font-weight: 950; }
.booking-product-copy small { color: #777780; font-size: 12px; line-height: 1.45; }
.booking-product-rate { display: grid; gap: 2px; text-align: right; }
.booking-product-rate strong { color: #ff1493; font-size: 20px; font-weight: 950; }
.booking-product-rate small { color: #8a8a93; font-size: 9px; font-weight: 850; text-transform: uppercase; }
.booking-product-check { width: 22px; height: 22px; display: grid; place-items: center; border: 1px solid #d4d4d8; border-radius: 50%; color: transparent; }
.booking-product-card.selected .booking-product-check { border-color: #ff1493; background: #ff1493; color: #fff; }
.booking-config-panel { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-top: 18px; padding: 20px; border: 1px solid #e2e3e7; border-radius: 8px; background: #fff; }
.booking-quantity-control { width: 190px; display: grid; grid-template-columns: 44px 1fr 44px; border: 1px solid #d9dae0; border-radius: 8px; overflow: hidden; }
.booking-quantity-control button { display: grid; place-items: center; border: 0; background: #f4f4f6; color: #202026; cursor: pointer; }
.booking-quantity-control input { width: 100%; min-width: 0; height: 46px; border: 0; outline: 0; background: #fff; text-align: center; font-size: 18px; font-weight: 950; appearance: textfield; }
.booking-quantity-control input::-webkit-inner-spin-button { appearance: none; }
.booking-live-price { display: grid; gap: 3px; text-align: right; }
.booking-live-price small { color: #8b8b94; font-size: 10px; font-weight: 850; text-transform: uppercase; }
.booking-live-price strong { color: #ff1493; font-size: 27px; font-weight: 950; }
.booking-zipline-card { position: relative; display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; align-items: center; gap: 17px; margin-top: 18px; padding: 20px; overflow: hidden; border: 2px solid #ff1493; border-radius: 8px; background: #17171d; color: #fff; box-shadow: 0 13px 28px rgba(255,20,147,.14); }
.booking-zipline-art { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 8px; background: #ff1493; font-size: 27px; }
.booking-zipline-card strong { display: block; font-size: 19px; font-weight: 950; }
.booking-zipline-card p { margin: 3px 0; color: #d4d4d8; font-size: 12px; }
.booking-zipline-card small { color: #fda4d5; font-size: 10px; font-weight: 700; line-height: 1.4; }
.booking-addon-action { display: grid; justify-items: end; gap: 9px; }
.booking-addon-action > strong { color: #ff5db7; font-size: 17px; }
.booking-switch { position: relative; width: 48px; height: 27px; cursor: pointer; }
.booking-switch input { position: absolute; opacity: 0; }
.booking-switch span { position: absolute; inset: 0; border-radius: 20px; background: #494951; transition: background .2s ease; }
.booking-switch span::after { content: ''; position: absolute; top: 4px; left: 4px; width: 19px; height: 19px; border-radius: 50%; background: #fff; transition: transform .2s ease; }
.booking-switch input:checked + span { background: #ff1493; }
.booking-switch input:checked + span::after { transform: translateX(21px); }
.booking-rule-strip { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.booking-rule-strip span { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border: 1px solid #f3c3dd; border-radius: 6px; background: #fff7fb; color: #a20a5b; font-size: 11px; }
.booking-session-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.booking-session-head label { color: #71717a; font-size: 10px; font-weight: 950; text-transform: uppercase; }
.booking-session-head span { color: #ff1493; font-size: 10px; font-weight: 850; }
.booking-no-sessions { grid-column: 1 / -1; padding: 18px; border: 1px dashed #d4d4d8; border-radius: 8px; color: #71717a; text-align: center; font-size: 12px; font-weight: 750; }
.booking-day-access { display: flex; align-items: center; gap: 15px; padding: 20px; border: 1px solid #bbf7d0; border-radius: 8px; background: #f0fdf4; color: #166534; }
.booking-day-access > iconify-icon { font-size: 28px; }
.booking-day-access strong, .booking-day-access small { display: block; }
.booking-day-access strong { font-size: 15px; font-weight: 950; }
.booking-day-access small { margin-top: 3px; font-size: 11px; }
.booking-contact-panel { padding: 22px; border: 1px solid #e1e2e6; border-radius: 8px; background: #fff; }
.booking-socks-card { display: grid; grid-template-columns: 56px minmax(0,1fr) auto; align-items: center; gap: 17px; padding: 20px; border: 1px solid #f5b9d9; border-radius: 8px; background: #fff8fc; }
.booking-socks-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 8px; background: #ff1493; color: #fff; font-size: 25px; }
.booking-socks-copy strong { display: block; font-size: 17px; font-weight: 950; }
.booking-socks-copy p { margin: 5px 0; color: #63636c; font-size: 13px; line-height: 1.5; }
.booking-socks-copy small { display: block; color: #a20a5b; font-size: 12px; font-weight: 750; line-height: 1.45; }
.booking-socks-control { display: grid; justify-items: end; gap: 8px; }
.booking-socks-control > strong { color: #ff1493; font-size: 16px; font-weight: 950; }
.booking-mini-stepper { display: grid; grid-template-columns: 34px 44px 34px; overflow: hidden; border: 1px solid #d6d6db; border-radius: 7px; background: #fff; }
.booking-mini-stepper button { display: grid; place-items: center; border: 0; background: #f4f4f6; cursor: pointer; }
.booking-mini-stepper input { width: 44px; height: 34px; border: 0; outline: 0; text-align: center; font-weight: 900; appearance: textfield; }
.booking-zipline-card .booking-mini-stepper { border-color: #ff5db7; background: #24242b; }
.booking-zipline-card .booking-mini-stepper button { background: #ff1493; color: #fff; }
.booking-zipline-card .booking-mini-stepper input { background: #24242b; color: #fff; }

@media (max-width: 767px) {
    .booking-experience-grid { grid-template-columns: 1fr; }
    .booking-experience-card { min-height: 170px; }
    .booking-product-card { grid-template-columns: 42px minmax(0, 1fr) 22px; gap: 11px; padding: 15px; }
    .booking-product-mark { width: 42px; height: 42px; }
    .booking-product-rate { grid-column: 2 / 3; text-align: left; }
    .booking-product-check { grid-column: 3; grid-row: 1 / span 2; }
    .booking-config-panel { align-items: stretch; flex-direction: column; }
    .booking-quantity-control { width: 100%; }
    .booking-live-price { text-align: left; }
    .booking-zipline-card, .booking-socks-card { grid-template-columns: 48px minmax(0, 1fr); padding: 16px; }
    .booking-zipline-art, .booking-socks-icon { width: 46px; height: 46px; }
    .booking-addon-action, .booking-socks-control { grid-column: 1 / -1; width: 100%; display: flex; align-items: center; justify-content: space-between; }
}
.booking-checkin-alert { width: min(100%, 576px); display: flex; align-items: center; justify-content: center; gap: 11px; margin: 0 auto 18px; padding: 16px 18px; border: 1px solid #fbbf24; border-radius: 8px; background: #fffbeb; color: #92400e; text-align: center; }
.booking-checkin-alert.hidden { display: none; }
.booking-checkin-alert iconify-icon { flex: 0 0 auto; font-size: 24px; }
.booking-checkin-alert strong { font-size: 14px; line-height: 1.45; }
.booking-confirm-actions.checkin-only { grid-template-columns: minmax(0, 1fr); }
.booking-confirm-actions.checkin-only #booking-confirm-home { display: none; }
.booking-checkin-countdown { margin: 12px auto 0; color: #6b7280; font-size: 12px; font-weight: 750; text-align: center; }
.checkin-header { min-height: 76px; padding: 14px max(24px, calc((100vw - 1180px) / 2)); display: flex; align-items: center; justify-content: space-between; gap: 20px; background: #fff; border-bottom: 1px solid #e5e7eb; }
.checkin-header > div { text-align: right; }
.checkin-header small, .checkin-header strong { display: block; }
.checkin-header small { font-size: 10px; font-weight: 900; color: #9ca3af; text-transform: uppercase; }
.checkin-brand { min-width: 0; display: flex; align-items: center; gap: 11px; color: #17171c; line-height: 1; text-decoration: none; }
.checkin-brand > img { width: 44px; height: 44px; flex: 0 0 auto; object-fit: contain; }
.checkin-brand-wordmark { min-width: 0; display: block; }
.checkin-brand-wordmark small, .checkin-brand-wordmark strong { display: block; letter-spacing: 0; }
.checkin-brand-wordmark small { margin-bottom: 3px; color: #17171c; font-size: 10px; font-weight: 800; text-transform: none; }
.checkin-brand-wordmark strong { overflow-wrap: anywhere; font-size: 18px; font-weight: 950; line-height: 1.05; }
.checkin-shell { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 44px 0 72px; }
.checkin-intro { padding-bottom: 28px; border-bottom: 1px solid #dedfe2; }
.checkin-kicker { display: inline-flex; align-items: center; gap: 7px; color: #15803d; font-size: 12px; font-weight: 900; text-transform: uppercase; }
.checkin-intro h1 { max-width: 820px; margin: 12px 0 10px; font-size: 64px; line-height: .96; font-weight: 950; }
.checkin-intro > p { max-width: 760px; color: #6b7280; font-size: 17px; font-weight: 600; }
.checkin-booking-summary { display: grid; grid-template-columns: 1.3fr 1fr .6fr; gap: 1px; margin-top: 28px; overflow: hidden; border: 1px solid #dedfe2; border-radius: 8px; background: #dedfe2; }
.checkin-booking-summary span { min-width: 0; padding: 16px 18px; background: #fff; }
.checkin-booking-summary small, .checkin-booking-summary strong { display: block; overflow-wrap: anywhere; }
.checkin-booking-summary small { margin-bottom: 4px; color: #9ca3af; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.checkin-message { margin: 22px 0; padding: 14px 16px; border-radius: 8px; font-weight: 800; }
.checkin-message.success { border: 1px solid #bbf7d0; background: #f0fdf4; color: #15803d; }
.checkin-message.error { border: 1px solid #fecaca; background: #fef2f2; color: #b91c1c; }
.checkin-participant-list { display: grid; gap: 16px; margin-top: 28px; }
.checkin-participant { padding: 24px; border: 1px solid #e1e2e5; border-radius: 8px; background: #fff; }
.checkin-participant > header { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 22px; }
.checkin-participant > header > span, .checkin-position { width: 34px; height: 34px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: #ff1493; color: #fff; font-weight: 950; }
.checkin-participant h2 { margin: 0; font-size: 21px; font-weight: 950; }
.checkin-participant p { margin: 2px 0 0; color: #6b7280; font-size: 13px; font-weight: 600; }
.checkin-fields, .checkin-delivery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.checkin-field-wide { grid-column: span 2; }
.checkin-field-full { grid-column: 1 / -1; }
.checkin-child-picker { width: 100%; margin-bottom: 18px; }
.checkin-field { display: grid; gap: 7px; min-width: 0; }
.checkin-field > span { color: #6b7280; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.checkin-field input, .checkin-field select { width: 100%; min-height: 48px; padding: 0 13px; border: 1px solid #d8dadd; border-radius: 7px; background: #fff; color: #17171c; font: inherit; font-weight: 750; }
.checkin-field input:focus, .checkin-field select:focus { outline: 3px solid rgba(255,20,147,.12); border-color: #ff1493; }
.checkin-toggle { display: flex; align-items: flex-start; gap: 10px; margin-top: 18px; color: #4b5563; font-size: 14px; font-weight: 750; cursor: pointer; }
.checkin-toggle input { width: 18px; height: 18px; flex: 0 0 auto; accent-color: #ff1493; }
.checkin-delivery { margin-top: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.checkin-final-consent { margin-top: 24px; padding: 24px; border: 1px solid #ffc6e5; border-radius: 8px; background: #fff7fb; }
.checkin-final-consent h2 { margin: 0 0 6px; font-size: 23px; font-weight: 950; }
.checkin-final-consent > p { color: #6b7280; font-weight: 600; }
.checkin-documents { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.checkin-documents a { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 8px 12px; border: 1px solid #d8dadd; border-radius: 7px; background: #fff; color: #17171c; font-size: 13px; font-weight: 850; }
.checkin-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 24px; }
.checkin-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 22px; border: 0; border-radius: 7px; font-weight: 900; cursor: pointer; }
.checkin-button.primary { background: #ff1493; color: #fff; }
.checkin-button.secondary { background: #17171c; color: #fff; }
.checkin-button:disabled { opacity: .45; cursor: not-allowed; }
.checkin-ticket-list { display: grid; gap: 12px; margin-top: 28px; }
.checkin-issued-ticket { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 17px; border: 1px solid #e1e2e5; border-radius: 8px; background: #fff; }
.checkin-issued-ticket strong, .checkin-issued-ticket small { display: block; }
.checkin-issued-ticket small { color: #6b7280; }
.checkin-issued-ticket a { display: inline-flex; align-items: center; gap: 7px; padding: 10px 13px; border-radius: 7px; background: #17171c; color: #fff; font-weight: 850; }
.ticket-validity-warning { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 18px; padding: 14px; border: 1px solid #fca5a5; border-radius: 7px; background: #fff1f2; color: #9f1239; font-size: 13px; line-height: 1.45; text-align: center; }
.ticket-validity-warning iconify-icon { flex: 0 0 auto; font-size: 18px; }
.ticket-validity-copy { display: grid; justify-items: center; gap: 8px; }
.ticket-age-rule { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding-top: 8px; border-top: 1px solid rgba(159, 18, 57, .18); font-weight: 900; }
.ticket-age-rule iconify-icon { font-size: 16px; }
.public-ticket-documents { justify-content: center; gap: 14px; margin-top: 14px; }
.public-ticket-documents a { min-height: 0; padding: 2px 0; border: 0; border-radius: 0; background: transparent; color: #a7a7a7; font-size: 11px; font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.public-ticket-documents a:hover { color: #ff1493; }
.public-ticket-documents a iconify-icon { font-size: 14px; }
.legal-document-page { min-height: 100vh; padding: 24px; background: #eceef1; color: #17171c; }
.legal-document-toolbar { width: min(900px, 100%); margin: 0 auto 16px; display: flex; align-items: center; justify-content: space-between; }
.legal-document-toolbar span, .legal-document-toolbar strong { display: block; letter-spacing: 0; }
.legal-document-toolbar span { font-size: 9px; font-weight: 900; }
.legal-document-toolbar strong { font-size: 19px; font-weight: 950; }
.legal-document-toolbar button { display: inline-flex; align-items: center; gap: 7px; padding: 10px 14px; border: 0; border-radius: 7px; background: #17171c; color: #fff; font-weight: 850; cursor: pointer; }
.legal-document-actions { display: flex; gap: 8px; }
.legal-document-actions a { display: inline-flex; align-items: center; gap: 7px; padding: 10px 14px; border: 1px solid #d8dadd; border-radius: 7px; background: #fff; color: #17171c; font-weight: 850; }
.legal-document-paper { width: min(900px, 100%); margin: 0 auto; padding: 48px; border-top: 5px solid #ff1493; background: #fff; box-shadow: 0 20px 60px rgba(20,20,25,.09); }
.legal-document-paper > h1 { margin: 28px 0; font-size: 36px; line-height: 1.05; font-weight: 950; }
.legal-document-meta { display: flex; flex-wrap: wrap; gap: 10px 24px; color: #6b7280; font-size: 12px; }
.legal-document-content { color: #303038; line-height: 1.7; }
.legal-document-content h2 { margin: 28px 0 10px; font-size: 22px; }
.legal-document-content ul { padding-left: 22px; list-style: disc; }
.legal-document-content table { width: 100%; margin-top: 14px; border-collapse: collapse; }
.legal-document-content th, .legal-document-content td { padding: 10px; border: 1px solid #dedfe2; text-align: left; }
.legal-document-paper footer { margin-top: 40px; padding-top: 18px; border-top: 1px solid #dedfe2; color: #9ca3af; font-size: 10px; overflow-wrap: anywhere; }
.legal-document-paper footer span, .legal-document-paper footer code { display: block; }

@media (max-width: 700px) {
  .member-child-create-form { grid-template-columns: 1fr; }
  .member-child-submit { width: 100%; }
  .checkin-shell { width: min(100% - 28px, 1180px); padding-top: 28px; }
  .checkin-header { padding-inline: 14px; }
  .checkin-intro h1 { font-size: 36px; }
  .checkin-booking-summary { grid-template-columns: 1fr; }
  .checkin-fields, .checkin-delivery { grid-template-columns: 1fr; }
  .checkin-field-wide { grid-column: auto; }
  .checkin-field-full { grid-column: auto; }
  .checkin-participant, .checkin-final-consent { padding: 18px; }
  .checkin-actions { align-items: stretch; flex-direction: column-reverse; }
  .checkin-button { width: 100%; }
  .checkin-issued-ticket { grid-template-columns: auto 1fr; }
  .checkin-issued-ticket a { grid-column: 1 / -1; justify-content: center; }
  .legal-document-page { padding: 12px; }
  .legal-document-paper { padding: 26px 20px; }
  .legal-document-paper > h1 { font-size: 29px; }
}

@media print {
  .legal-document-page { padding: 0; background: #fff; }
  .legal-document-toolbar { display: none; }
  .legal-document-paper { width: 100%; padding: 24px; box-shadow: none; }
}
