/* Bloom Midnight Velvet + Rose Atelier — final experience layer */
:root {
    --bloom-bg: #090709;
    --bloom-bg-soft: #130b10;
    --bloom-panel: rgba(31, 15, 23, 0.9);
    --bloom-panel-solid: #1d1017;
    --bloom-card: rgba(255, 248, 243, 0.055);
    --bloom-text: #fff8f2;
    --bloom-muted: #d5bcc3;
    --bloom-pink: #ed6687;
    --bloom-pink-bright: #ff8fa8;
    --bloom-pink-deep: #b93760;
    --bloom-gold: #d6aa67;
    --bloom-gold-bright: #f1d49a;
    --bloom-line: rgba(214, 170, 103, 0.3);
    --bloom-shadow: 0 28px 80px rgba(0, 0, 0, 0.46);
    --bloom-success: #55b98f;
    --bloom-danger: #ff8b9e;
    color-scheme: dark;
}

html[data-theme="light"] {
    --bloom-bg: #fff8f3;
    --bloom-bg-soft: #f8e9e8;
    --bloom-panel: rgba(255, 253, 250, 0.94);
    --bloom-panel-solid: #fffdf9;
    --bloom-card: rgba(117, 43, 65, 0.055);
    --bloom-text: #3a1e28;
    --bloom-muted: #765b64;
    --bloom-pink: #c75471;
    --bloom-pink-bright: #dc7890;
    --bloom-pink-deep: #93354f;
    --bloom-gold: #b48442;
    --bloom-gold-bright: #cba464;
    --bloom-line: rgba(145, 92, 66, 0.2);
    --bloom-shadow: 0 24px 70px rgba(95, 47, 59, 0.15);
    --bloom-success: #277b5b;
    --bloom-danger: #b33d56;
    color-scheme: light;
}

html { background: var(--bloom-bg); }

body[data-page="links"],
body[data-page="vip"],
body[data-page="events"],
body[data-page="hookah"],
body[data-page="ticket"],
body[data-page="admin"],
body[data-page="scanner"],
body.auth-page,
body.roster-page {
    color: var(--bloom-text) !important;
    background:
        radial-gradient(circle at 8% 2%, color-mix(in srgb, var(--bloom-pink) 20%, transparent), transparent 31rem),
        radial-gradient(circle at 94% 26%, color-mix(in srgb, var(--bloom-gold) 12%, transparent), transparent 34rem),
        linear-gradient(155deg, var(--bloom-bg) 0%, var(--bloom-bg-soft) 54%, var(--bloom-bg) 100%) !important;
    background-attachment: fixed !important;
}

body::before { opacity: 0.11 !important; }

.site-header,
body[data-page] .site-header,
body.auth-page .site-header,
body.roster-page .site-header {
    position: relative;
    isolation: isolate;
    display: grid;
    place-items: center;
    width: 100%;
    max-width: none !important;
    min-height: 220px;
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 40%, rgba(237, 102, 135, 0.15), transparent 17rem),
        linear-gradient(180deg, #0b080a, #070607) !important;
    border-bottom: 1px solid var(--bloom-line) !important;
    box-shadow: 0 18px 55px rgba(0, 0, 0, 0.36) !important;
}

.site-header::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: .44;
    background:
        linear-gradient(90deg, transparent, rgba(214, 170, 103, .13) 50%, transparent),
        repeating-linear-gradient(90deg, transparent 0 119px, rgba(255,255,255,.02) 120px);
}

.site-header::after {
    content: "";
    position: absolute;
    inset: auto 50% 0;
    width: min(620px, 80vw);
    height: 1px;
    transform: translateX(-50%);
    background: linear-gradient(90deg, transparent, var(--bloom-pink), var(--bloom-gold), transparent) !important;
    opacity: .72;
}

.site-header > img,
body[data-page] .site-header > img,
body.auth-page .site-header > img,
body.roster-page .site-header > img {
    position: relative;
    z-index: 1;
    width: 190px !important;
    height: 190px !important;
    max-height: none !important;
    padding: 8px;
    object-fit: contain !important;
    filter: drop-shadow(0 10px 28px rgba(0,0,0,.45));
}

.admin-login,
body[data-page] .admin-login {
    top: 18px !important;
    right: 18px !important;
    z-index: 5 !important;
    min-height: 40px;
    padding: 9px 15px !important;
    color: var(--bloom-text) !important;
    background: color-mix(in srgb, var(--bloom-bg) 76%, transparent) !important;
    border: 1px solid var(--bloom-line) !important;
    box-shadow: 0 10px 30px rgba(0,0,0,.25) !important;
    backdrop-filter: blur(16px);
}

.public-site-nav {
    position: absolute;
    left: 50%;
    bottom: 14px;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 5px;
    transform: translateX(-50%);
    border: 1px solid var(--bloom-line);
    border-radius: 999px;
    background: color-mix(in srgb, var(--bloom-bg) 78%, transparent);
    box-shadow: 0 12px 32px rgba(0, 0, 0, .3);
    backdrop-filter: blur(18px) saturate(125%);
}

.public-site-nav a {
    min-width: 68px;
    padding: 8px 12px;
    border-radius: 999px;
    color: var(--bloom-muted);
    font: 700 .73rem/1 system-ui, sans-serif;
    letter-spacing: .06em;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
}

.public-site-nav a:hover,
.public-site-nav a:focus-visible,
.public-site-nav a[aria-current="page"] {
    color: var(--bloom-text);
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--bloom-pink-deep) 76%, transparent),
        color-mix(in srgb, var(--bloom-gold) 24%, transparent));
}

.public-site-nav a:focus-visible {
    outline: 2px solid var(--bloom-gold-bright);
    outline-offset: 2px;
}

.theme-toggle {
    position: absolute;
    top: 18px;
    left: 18px;
    z-index: 6;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 40px;
    padding: 7px 12px 7px 9px;
    color: var(--bloom-text);
    font: 700 .76rem/1 system-ui, sans-serif;
    letter-spacing: .04em;
    background: color-mix(in srgb, var(--bloom-bg) 76%, transparent);
    border: 1px solid var(--bloom-line);
    border-radius: 999px;
    box-shadow: 0 10px 30px rgba(0,0,0,.25);
    backdrop-filter: blur(16px);
    cursor: pointer;
}

.theme-toggle img {
    width: 24px !important;
    height: 24px !important;
    min-height: 0 !important;
    max-height: 24px !important;
    padding: 0 !important;
    object-fit: contain !important;
}
.theme-toggle:hover { border-color: var(--bloom-gold); transform: translateY(-1px); }
.theme-toggle:focus-visible { outline: 3px solid color-mix(in srgb, var(--bloom-pink) 48%, transparent); outline-offset: 3px; }

.page-eyebrow, .section-eyebrow, .checkout-eyebrow, .package-kicker,
.scanner-kicker, .public-ticket-kicker, .auth-note, .admin-tag {
    color: var(--bloom-gold) !important;
    letter-spacing: .19em !important;
}

h1, h2, h3,
.page-title,
body[data-page="links"] .links-intro h1,
body[data-page="admin"] #subheader h1,
body[data-page="scanner"] .scanner-main h1,
body.roster-page .roster-main h1,
body.auth-page .auth-card h1,
body.auth-page .auth-card h2 {
    color: var(--bloom-text) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-weight: 500 !important;
}

a { text-underline-offset: 3px; }

/* Public landing */
.links-shell { width: min(100% - 34px, 940px) !important; padding: 64px 0 72px !important; }
.links-intro { max-width: 780px !important; margin: 0 auto 42px !important; text-align: center; }
.links-intro h1 { font-size: clamp(2.7rem, 7vw, 5.2rem) !important; line-height: .94 !important; letter-spacing: -.04em !important; }
.links-intro > p:last-child { max-width: 650px !important; margin: 22px auto 0 !important; color: var(--bloom-muted) !important; }
body[data-page="links"] .hours {
    max-width: 680px !important;
    margin: 0 auto !important;
    padding: 26px !important;
    text-align: center;
    background: var(--bloom-card) !important;
    border: 1px solid var(--bloom-line) !important;
    border-radius: 22px !important;
    box-shadow: var(--bloom-shadow);
}
body[data-page="links"] .hours-list { display: grid !important; gap: 8px; margin-top: 9px !important; }
body[data-page="links"] .hours .times { color: var(--bloom-pink-bright) !important; }
body[data-page="links"] .links {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-width: 760px !important;
    padding: 24px 0 !important;
}
.link-button,
.package-cta,
.admin-btn,
.scanner-btn,
.auth-button,
.wizard-nav button {
    min-height: 48px !important;
    border-radius: 999px !important;
    transition: transform .18s ease, border-color .18s ease, filter .18s ease, box-shadow .18s ease !important;
}
.link-button {
    color: var(--bloom-text) !important;
    background: var(--bloom-card) !important;
    border: 1px solid var(--bloom-line) !important;
    box-shadow: 0 14px 35px rgba(0,0,0,.16) !important;
}
.link-button.primary,
.package-cta,
.admin-btn:not(.secondary),
.scanner-btn:not(.secondary),
.auth-button:not(.secondary):not(.danger),
#nextStep, #submitWizard {
    color: #250f18 !important;
    background: linear-gradient(135deg, var(--bloom-pink-bright), var(--bloom-pink) 48%, var(--bloom-gold-bright)) !important;
    border: 1px solid rgba(255,255,255,.34) !important;
    box-shadow: 0 13px 34px rgba(184, 48, 91, .28) !important;
}
.link-button:hover, .package-cta:hover, .admin-btn:hover, .scanner-btn:hover, .auth-button:hover, .wizard-nav button:hover {
    transform: translateY(-2px) !important;
    filter: brightness(1.06);
}
body[data-page="links"] .note { color: var(--bloom-muted) !important; }

/* Reservation flow */
body[data-page="vip"] #subheader { width: min(100% - 40px, 1080px) !important; padding-top: 58px !important; }
body[data-page="vip"] .page-title { font-size: clamp(2.6rem, 6vw, 5rem) !important; }
.page-subtitle, .wizard-sub, .scanner-intro, .auth-card > p, .auth-note, .scanner-status,
.roster-title-row p, .event-meta, .event-status { color: var(--bloom-muted) !important; }
body[data-page="vip"] .date-picker,
body[data-page="vip"] .layout,
body[data-page="vip"] .packages,
body[data-page="vip"] .checkout-inner,
.public-ticket-card {
    color: var(--bloom-text) !important;
    background: linear-gradient(145deg, var(--bloom-panel), color-mix(in srgb, var(--bloom-panel-solid) 94%, transparent)) !important;
    border: 1px solid var(--bloom-line) !important;
    border-radius: 28px !important;
    box-shadow: var(--bloom-shadow) !important;
}
body[data-page="vip"] .date-btn,
body[data-page="vip"] .package-card,
body[data-page="vip"] .checkout-summary,
.ticket-details > div {
    color: var(--bloom-text) !important;
    background: var(--bloom-card) !important;
    border-color: var(--bloom-line) !important;
}
body[data-page="vip"] .date-btn.active,
body[data-page="vip"] .package-card.selected {
    color: var(--bloom-text) !important;
    background: color-mix(in srgb, var(--bloom-pink) 18%, var(--bloom-card)) !important;
    border-color: var(--bloom-pink) !important;
    outline-color: var(--bloom-pink) !important;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--bloom-pink) 18%, transparent), 0 24px 54px rgba(0,0,0,.3) !important;
}
.map-hotspot.selected { background: rgba(237, 102, 135, .94) !important; color: #fff !important; }
.legend-dot.selected { background: var(--bloom-pink) !important; }
body[data-page="vip"] .layout-map { border-color: var(--bloom-line) !important; }
body[data-page="vip"] input,
body[data-page="vip"] select,
body[data-page="scanner"] input,
body.roster-page input,
body.roster-page select,
body.auth-page input,
body.auth-page select,
body[data-page="admin"] input,
body[data-page="admin"] select {
    min-height: 46px !important;
    color: var(--bloom-text) !important;
    background: color-mix(in srgb, var(--bloom-bg) 68%, var(--bloom-panel-solid)) !important;
    border: 1px solid var(--bloom-line) !important;
    border-radius: 12px !important;
}
input:focus, select:focus, button:focus-visible, a:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--bloom-pink) 46%, transparent) !important;
    outline-offset: 2px !important;
}

/* Admin, security, door tools, and roster */
body[data-page="admin"] #subheader { padding-top: 52px !important; }
body[data-page="admin"] .admin-main { width: min(100%, 1100px) !important; }
body[data-page="admin"] .admin-tag,
body[data-page="scanner"] .scanner-kicker,
body.roster-page .scanner-kicker {
    color: #291019 !important;
    background: linear-gradient(135deg, var(--bloom-gold-bright), var(--bloom-gold)) !important;
}
body[data-page="admin"] #eventsListSection,
body[data-page="admin"] #wizardSection,
body.auth-page .auth-card,
body[data-page="scanner"] .scanner-camera-card,
body[data-page="scanner"] .manual-entry-card,
body[data-page="scanner"] .scan-result,
body.roster-page .roster-controls,
body.roster-page .roster-summary article,
body.roster-page .roster-table-wrap {
    color: var(--bloom-text) !important;
    background: linear-gradient(145deg, var(--bloom-panel), color-mix(in srgb, var(--bloom-panel-solid) 94%, transparent)) !important;
    border: 1px solid var(--bloom-line) !important;
    border-radius: 24px !important;
    box-shadow: var(--bloom-shadow) !important;
}
body[data-page="admin"] .event-card,
body.auth-page .admin-user-item,
body.auth-page .passkey-item,
body.roster-page .roster-table tbody tr {
    color: var(--bloom-text) !important;
    background: var(--bloom-card) !important;
    border-color: var(--bloom-line) !important;
}
body[data-page="admin"] .event-card:hover { border-color: var(--bloom-pink) !important; }
.event-series {
    width: fit-content;
    margin: 5px 0 3px;
    padding: 4px 8px;
    color: var(--bloom-gold-bright);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .035em;
    background: color-mix(in srgb, var(--bloom-gold) 10%, transparent);
    border: 1px solid var(--bloom-line);
    border-radius: 999px;
}
.recurrence-panel {
    margin-top: 16px;
    padding: 16px;
    background: var(--bloom-card);
    border: 1px solid var(--bloom-line);
    border-radius: 16px;
}
.recurrence-toggle { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; }
body[data-page="admin"] .recurrence-toggle input {
    width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    margin-top: 2px;
    padding: 0 !important;
    accent-color: var(--bloom-pink);
}
.recurrence-toggle span { display: grid; gap: 3px; }
.recurrence-toggle strong { color: var(--bloom-text); }
.recurrence-toggle small { color: var(--bloom-muted); font-weight: 500; line-height: 1.45; }
.recurrence-options { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--bloom-line); }
.recurrence-options.hidden { display: none; }
.field-suffix { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 9px; }
.field-suffix span { color: var(--bloom-muted); font-size: .86rem; }
.summary-series { display: grid; gap: 3px; margin: 12px 0; padding: 10px 12px; color: var(--bloom-text); background: color-mix(in srgb, var(--bloom-pink) 11%, transparent); border-left: 3px solid var(--bloom-pink); border-radius: 8px; }
.summary-series span { color: var(--bloom-muted); font-size: .82rem; }
body[data-page="admin"] .seat-btn.active { background: var(--bloom-success) !important; border-color: color-mix(in srgb, var(--bloom-success) 70%, white) !important; }
body[data-page="admin"] .seat-btn.inactive { background: rgba(120,120,120,.25) !important; color: var(--bloom-muted) !important; }
body.auth-page .invitation-result { color: var(--bloom-text) !important; background: color-mix(in srgb, var(--bloom-success) 12%, transparent) !important; }
body[data-page="scanner"] .scanner-btn.admit { color: #fff !important; background: var(--bloom-success) !important; }
.roster-table th { color: var(--bloom-gold-bright) !important; }

footer { color: var(--bloom-muted) !important; border-top: 1px solid var(--bloom-line) !important; background: color-mix(in srgb, var(--bloom-bg) 82%, transparent) !important; }
footer a { color: var(--bloom-gold-bright) !important; }

.public-event-description {
    width: 100%;
    margin: 4px 0 24px;
    border-top: 1px solid var(--bloom-line);
    border-bottom: 1px solid var(--bloom-line);
}

.public-event-description summary {
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 4px 2px;
    color: var(--bloom-gold-bright);
    font-weight: 800;
    cursor: pointer;
}

.public-event-description summary::after {
    content: "+";
    color: var(--bloom-pink-bright);
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1;
}

.public-event-description[open] summary::after { content: "−"; }
.public-event-description p { margin: 0; padding: 0 2px 18px; color: var(--bloom-muted); line-height: 1.65; white-space: pre-line; }
.mobile-dock { background: color-mix(in srgb, var(--bloom-bg) 86%, transparent) !important; border-color: var(--bloom-line) !important; backdrop-filter: blur(22px) saturate(130%) !important; }
.mobile-dock a { color: var(--bloom-muted) !important; }
.mobile-dock a span { color: var(--bloom-pink-bright) !important; }

@media (max-width: 720px) {
    .public-site-nav { display: none; }
    .site-header,
    body[data-page] .site-header,
    body.auth-page .site-header,
    body.roster-page .site-header { min-height: 154px; }
    .site-header > img,
    body[data-page] .site-header > img,
    body.auth-page .site-header > img,
    body.roster-page .site-header > img {
        width: 132px !important;
        height: 132px !important;
        min-height: 0 !important;
        max-height: 132px !important;
    }
    .admin-login, body[data-page] .admin-login { top: 12px !important; right: 12px !important; min-height: 38px; padding: 8px 11px !important; font-size: .7rem; }
    .theme-toggle { top: 12px; left: 12px; min-height: 38px; padding: 6px 9px; }
    .theme-toggle span { display: none; }
    .links-shell { padding-top: 42px !important; }
    body[data-page="links"] .links { grid-template-columns: minmax(0, 1fr) !important; }
    body[data-page="vip"] #subheader, body[data-page="admin"] #subheader { padding-top: 38px !important; }
    body[data-page="vip"] .date-picker,
    body[data-page="vip"] .layout,
    body[data-page="vip"] .packages,
    body[data-page="admin"] #eventsListSection,
    body[data-page="admin"] #wizardSection,
    body.auth-page .auth-card,
    body[data-page="scanner"] .scanner-camera-card,
    body[data-page="scanner"] .manual-entry-card,
    body[data-page="scanner"] .scan-result,
    body.roster-page .roster-controls,
    body.roster-page .roster-table-wrap { border-radius: 20px !important; }
    .admin-actions { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-actions > * { width: 100%; text-align: center; }
}

@media (min-width: 960px) {
    body[data-page="admin"] .admin-layout {
        grid-template-columns: minmax(0, 760px) !important;
        justify-content: center;
    }
    body[data-page="admin"] .admin-layout.wizard-open {
        grid-template-columns: minmax(0, .9fr) minmax(0, 1.2fr) !important;
        justify-content: stretch;
    }
}

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

@media print {
    .theme-toggle { display: none !important; }
}

/* Native, database-backed Hookah Menu */
.hookah-shell {
    width: min(100% - 32px, 1080px);
    margin: 0 auto;
    padding: 58px 0 92px;
}

.hookah-hero {
    width: min(100%, 760px);
    margin-bottom: 42px;
}

.hookah-hero h1 {
    margin: 8px 0 14px;
    font-size: clamp(3rem, 8vw, 6.4rem);
    line-height: 0.9;
    letter-spacing: -0.055em;
}

.hookah-hero > p:last-child {
    max-width: 660px;
    color: var(--bloom-muted);
    font-size: clamp(1rem, 2vw, 1.18rem);
    line-height: 1.65;
}

.hookah-status {
    min-height: 1.5rem;
    margin: 0 0 18px;
    color: var(--bloom-muted);
}

.hookah-menu {
    display: grid;
    gap: 28px;
}

.hookah-section {
    position: relative;
    overflow: hidden;
    padding: clamp(24px, 5vw, 48px);
    background:
        radial-gradient(circle at 100% 0, color-mix(in srgb, var(--bloom-pink) 14%, transparent), transparent 26rem),
        linear-gradient(145deg, var(--bloom-panel), color-mix(in srgb, var(--bloom-panel-solid) 94%, transparent));
    border: 1px solid var(--bloom-line);
    border-radius: 28px;
    box-shadow: var(--bloom-shadow);
}

.hookah-section::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: linear-gradient(var(--bloom-gold-bright), var(--bloom-pink), transparent 84%);
}

.hookah-section-heading {
    max-width: 780px;
    margin-bottom: 26px;
}

.hookah-section-heading h2 {
    margin: 5px 0 10px;
    font-size: clamp(2rem, 5vw, 3.45rem);
    line-height: 1;
}

.hookah-section-description {
    margin: 0;
    color: var(--bloom-muted);
    line-height: 1.65;
}

.hookah-item-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.hookah-item-card {
    display: flex;
    flex-direction: column;
    gap: 13px;
    min-height: 100%;
    padding: 21px;
    background: color-mix(in srgb, var(--bloom-card) 92%, transparent);
    border: 1px solid color-mix(in srgb, var(--bloom-line) 82%, transparent);
    border-radius: 20px;
}

.hookah-item-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
}

.hookah-item-heading h3 {
    margin: 0;
    font-size: clamp(1.28rem, 2.4vw, 1.65rem);
    line-height: 1.08;
}

.hookah-item-price {
    flex: 0 0 auto;
    color: var(--bloom-gold-bright);
    font: 500 1.2rem/1 Georgia, "Times New Roman", serif;
}

.hookah-item-card > p {
    margin: 0;
    color: var(--bloom-muted);
    line-height: 1.58;
}

.hookah-flavor-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px 18px;
    margin: 20px 0 0;
    padding: 22px 0 0;
    list-style: none;
    border-top: 1px solid var(--bloom-line);
}

.hookah-flavor-list li {
    position: relative;
    padding: 9px 9px 9px 20px;
    color: var(--bloom-text);
    line-height: 1.35;
}

.hookah-flavor-list li::before {
    content: "✦";
    position: absolute;
    left: 0;
    color: var(--bloom-pink-bright);
    font-size: 0.66rem;
}

.hookah-section.notice-only {
    background:
        linear-gradient(115deg, color-mix(in srgb, var(--bloom-gold) 11%, transparent), transparent 60%),
        var(--bloom-panel-solid);
}

.hookah-section.notice-only .hookah-section-heading {
    margin-bottom: 0;
}

@media (max-width: 820px) {
    .hookah-item-grid { grid-template-columns: 1fr; }
    .hookah-flavor-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
    .hookah-shell { width: min(100% - 24px, 1080px); padding-top: 38px; }
    .hookah-section { padding: 24px 20px; border-radius: 22px; }
    .hookah-flavor-list { grid-template-columns: 1fr 1fr; gap: 4px 8px; }
    .hookah-flavor-list li { padding-left: 17px; font-size: 0.9rem; }
}

/* First-party Bloom event discovery */
.events-shell {
    width: min(100% - 32px, 1180px);
    margin: 0 auto;
    padding: 58px 0 90px;
}

.events-hero {
    width: min(100%, 760px);
    margin-bottom: 42px;
}

.events-hero h1 {
    margin: 8px 0 12px;
    font-size: clamp(2.5rem, 7vw, 5.2rem);
    line-height: 0.96;
    letter-spacing: -0.045em;
}

.events-hero > p:last-child {
    max-width: 660px;
    color: var(--bloom-muted);
    font-size: clamp(1rem, 2vw, 1.18rem);
    line-height: 1.65;
}

.events-status {
    min-height: 1.5rem;
    margin-bottom: 18px;
    color: var(--bloom-muted);
}

.events-status:has(.events-retry) {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 14px 16px;
    color: var(--bloom-text);
    background: color-mix(in srgb, var(--bloom-panel) 92%, transparent);
    border: 1px solid var(--bloom-line);
    border-radius: 16px;
}

.events-retry {
    min-height: 44px;
    padding: 10px 16px;
    color: #1b0d12;
    font: inherit;
    font-weight: 900;
    background: linear-gradient(135deg, var(--bloom-gold-bright), var(--bloom-pink-bright));
    border: 0;
    border-radius: 999px;
    cursor: pointer;
}

.events-retry:focus-visible { outline: 3px solid var(--bloom-pink-bright); outline-offset: 4px; }

.events-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(22px, 4vw, 42px);
}

.public-event-card {
    min-width: 0;
    overflow: hidden;
    background: linear-gradient(145deg, var(--bloom-panel), color-mix(in srgb, var(--bloom-panel-solid) 92%, transparent));
    border: 1px solid var(--bloom-line);
    border-radius: 26px;
    box-shadow: var(--bloom-shadow);
}

.public-event-card.featured {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(280px, 0.92fr) minmax(280px, 1.08fr);
}

.public-event-media {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 320px;
    padding: clamp(12px, 3vw, 24px);
    background:
        radial-gradient(circle at 50% 42%, rgba(237, 102, 135, 0.13), transparent 55%),
        #070607;
}

.public-event-poster {
    width: 100%;
    height: auto;
    max-height: 680px;
    display: block;
    object-fit: contain;
    border-radius: 16px;
    box-shadow: 0 22px 54px rgba(0, 0, 0, 0.52);
    transition: filter 240ms ease, opacity 240ms ease;
}

.public-event-placeholder {
    display: grid;
    min-height: 420px;
    padding: clamp(24px, 5vw, 52px);
    place-items: center;
    align-content: center;
    gap: 13px;
    color: var(--bloom-text);
    text-align: center;
    background:
        radial-gradient(circle at 50% 20%, rgba(246, 83, 135, 0.24), transparent 42%),
        linear-gradient(155deg, #120c10, #070607 68%);
    border: 1px solid rgba(241, 195, 111, 0.28);
}

.public-event-placeholder img {
    width: min(190px, 48%);
    height: auto;
    border-radius: 28%;
    box-shadow: 0 20px 46px rgba(0, 0, 0, 0.48);
}

.public-event-placeholder span {
    color: var(--bloom-gold-bright);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.public-event-placeholder strong {
    max-width: 18ch;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.65rem, 4vw, 3.1rem);
    font-weight: 500;
    line-height: 1.03;
}

.public-event-card.sold-out {
    border-color: color-mix(in srgb, var(--bloom-gold) 48%, var(--bloom-line));
    box-shadow:
        0 26px 76px rgba(0, 0, 0, 0.52),
        inset 0 0 0 1px rgba(255, 216, 159, 0.06);
}

.public-event-card.sold-out .public-event-poster {
    filter: grayscale(0.88) saturate(0.3) brightness(0.55) contrast(1.05);
}

.public-event-soldout-veil {
    position: absolute;
    inset: clamp(12px, 3vw, 24px);
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 24px;
    color: #fff4e1;
    text-align: center;
    text-transform: uppercase;
    background:
        linear-gradient(145deg, rgba(8, 6, 7, 0.48), rgba(8, 6, 7, 0.76)),
        radial-gradient(circle, rgba(217, 152, 77, 0.13), transparent 58%);
    border: 1px solid rgba(245, 205, 137, 0.42);
    border-radius: 16px;
    box-shadow:
        inset 0 0 0 5px rgba(9, 7, 8, 0.36),
        inset 0 0 0 6px rgba(245, 205, 137, 0.12),
        0 22px 48px rgba(0, 0, 0, 0.42);
    backdrop-filter: blur(2px);
}

.public-event-soldout-veil::before,
.public-event-soldout-veil::after {
    content: "";
    width: min(210px, 70%);
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--bloom-gold-bright), transparent);
}

.public-event-soldout-veil span,
.public-event-soldout-veil small {
    font-size: clamp(0.62rem, 1.2vw, 0.78rem);
    font-weight: 800;
    letter-spacing: 0.2em;
}

.public-event-soldout-veil strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.15rem, 7vw, 4.75rem);
    font-weight: 500;
    letter-spacing: 0.06em;
    line-height: 0.95;
    text-shadow: 0 8px 28px rgba(0, 0, 0, 0.72);
}

.public-event-soldout-veil small {
    color: var(--bloom-pink-soft);
    letter-spacing: 0.12em;
}

.public-event-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: clamp(24px, 5vw, 48px);
}

.public-event-copy h2 {
    margin: 9px 0 12px;
    font-size: clamp(1.8rem, 4vw, 3.2rem);
    line-height: 1.04;
}

.public-event-date {
    color: var(--bloom-muted);
    line-height: 1.55;
}

.public-event-availability {
    width: fit-content;
    margin: 18px 0 22px;
    padding: 7px 11px;
    color: var(--bloom-success);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: color-mix(in srgb, var(--bloom-success) 11%, transparent);
    border: 1px solid color-mix(in srgb, var(--bloom-success) 40%, transparent);
    border-radius: 999px;
}

.public-event-availability.sold_out {
    color: var(--bloom-danger);
    background: color-mix(in srgb, var(--bloom-danger) 11%, transparent);
    border-color: color-mix(in srgb, var(--bloom-danger) 40%, transparent);
}

.public-event-availability.temporarily_unavailable {
    color: var(--bloom-gold-bright);
    background: color-mix(in srgb, var(--bloom-gold) 10%, transparent);
    border-color: var(--bloom-line);
}

.public-event-action {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: auto;
    padding: 12px 18px;
    color: #1b0d12;
    font-weight: 900;
    text-decoration: none;
    background: linear-gradient(135deg, var(--bloom-gold-bright), var(--bloom-pink-bright));
    border: 0;
    border-radius: 999px;
}

.public-event-action:hover { transform: translateY(-2px); }
.public-event-action:focus-visible { outline: 3px solid var(--bloom-pink-bright); outline-offset: 4px; }
.public-event-action.disabled { color: var(--bloom-muted); background: rgba(255, 255, 255, 0.08); }

.upcoming-preview-card.sold-out {
    cursor: default;
    border-color: color-mix(in srgb, var(--bloom-gold) 42%, var(--bloom-line));
}

.upcoming-preview-card.sold-out .upcoming-preview-poster {
    filter: grayscale(0.9) saturate(0.25) brightness(0.58);
}

.upcoming-preview-card.sold-out .upcoming-preview-copy strong::after {
    content: "Sold Out";
    width: fit-content;
    display: block;
    margin-top: 8px;
    padding: 4px 8px;
    color: var(--bloom-gold-bright);
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    border: 1px solid color-mix(in srgb, var(--bloom-gold) 54%, transparent);
    border-radius: 999px;
}

.upcoming-home {
    width: min(100% - 32px, 980px);
    margin: 24px auto 0;
    padding: clamp(22px, 4vw, 36px);
    background: linear-gradient(145deg, var(--bloom-panel), color-mix(in srgb, var(--bloom-panel-solid) 94%, transparent));
    border: 1px solid var(--bloom-line);
    border-radius: 26px;
    box-shadow: var(--bloom-shadow);
}

.upcoming-home-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 19px;
}

.upcoming-home-heading h2 { margin-top: 5px; font-size: clamp(1.55rem, 4vw, 2.5rem); }
.upcoming-home-heading > a { color: var(--bloom-gold-bright); font-weight: 800; }

.upcoming-preview {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.upcoming-preview-card {
    min-width: 0;
    overflow: hidden;
    color: var(--bloom-text);
    text-decoration: none;
    background: var(--bloom-card);
    border: 1px solid var(--bloom-line);
    border-radius: 17px;
}

.upcoming-preview-card:hover { border-color: var(--bloom-pink); transform: translateY(-2px); }
.upcoming-preview-card:focus-visible { outline: 3px solid var(--bloom-pink-bright); outline-offset: 3px; }
.upcoming-preview-card picture,
.upcoming-preview-card .public-event-placeholder {
    aspect-ratio: 4 / 5;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #070607;
}

.upcoming-preview-card .public-event-placeholder {
    min-height: 0;
    padding: 14px;
    gap: 7px;
    border: 0;
    border-radius: 0;
}

.upcoming-preview-card .public-event-placeholder img { width: min(110px, 46%); border-radius: 24%; }
.upcoming-preview-card .public-event-placeholder span { font-size: 0.52rem; }
.upcoming-preview-card .public-event-placeholder strong { font-size: 1rem; }

.upcoming-preview-poster {
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: 100%;
    aspect-ratio: auto;
    display: block;
    object-fit: contain;
}

.upcoming-preview-copy {
    display: grid;
    gap: 5px;
    padding: 13px;
}

.upcoming-preview-copy strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.08rem; }
.upcoming-preview-copy > span,
.upcoming-preview-copy small { color: var(--bloom-muted); line-height: 1.35; }

@media (max-width: 760px) {
    .events-shell { width: min(100% - 24px, 680px); padding-top: 38px; }
    .events-grid { grid-template-columns: 1fr; }
    .public-event-card.featured { grid-column: auto; display: block; }
    .public-event-copy { padding: 24px; }
    .upcoming-preview { grid-template-columns: 1fr; }
    .upcoming-preview-card { display: grid; grid-template-columns: 92px minmax(0, 1fr); align-items: center; }
    .upcoming-preview-card picture,
    .upcoming-preview-card .public-event-placeholder { height: 118px; aspect-ratio: auto; }
    .upcoming-preview-poster { height: 100%; aspect-ratio: auto; }
}

.linked-event-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    gap: 18px;
    margin-top: 18px;
    padding: 16px;
    color: var(--bloom-text);
    background: linear-gradient(145deg, var(--bloom-panel), color-mix(in srgb, var(--bloom-panel-solid) 94%, transparent));
    border: 1px solid var(--bloom-line);
    border-radius: 20px;
}

.linked-event-summary.has-flyer {
    grid-template-columns: 118px minmax(0, 1fr);
}

.event-section-controls {
    display: flex;
    justify-content: flex-end;
    margin: 0;
}

.event-section-controls[hidden] { display: none; }

.event-section-controls .clear-map-filter {
    min-height: 44px;
    padding-inline: 16px;
}

.event-section-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
}

@media (max-width: 520px) {
    .event-section-heading { gap: 10px; }
    .event-section-controls .clear-map-filter {
        padding-inline: 11px;
        font-size: 0.72rem;
    }
}

.linked-event-summary picture,
.linked-event-summary img {
    width: 118px;
    height: 146px;
    display: block;
}

.linked-event-summary img {
    object-fit: contain;
    background: #070607;
    border: 1px solid var(--bloom-line);
    border-radius: 12px;
}

.linked-event-copy { min-width: 0; display: grid; grid-template-columns: minmax(180px, .8fr) minmax(240px, 1.2fr); align-items: center; gap: 18px 28px; }
.linked-event-heading { min-width: 0; display: grid; justify-items: start; gap: 7px; }
.linked-event-copy h3 { font-size: clamp(1.35rem, 4vw, 2rem); }
.linked-event-heading > p:not(.section-eyebrow),
.linked-event-description { color: var(--bloom-muted); }
.linked-event-description { max-width: 62ch; margin: 0; padding-left: 24px; border-left: 1px solid var(--bloom-line); line-height: 1.65; }

.checkout-policy {
    margin-top: .35rem;
    padding: 1rem;
    border: 1px solid rgba(214, 166, 66, .42);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(214, 166, 66, .10), rgba(255, 53, 137, .055));
}
.checkout-policy-title {
    margin: 0 0 .35rem;
    color: var(--gold, #d6a642);
    font-size: .77rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.checkout-policy > p:last-of-type { margin: 0; }
.checkout-policy-ack {
    display: flex;
    gap: .65rem;
    align-items: flex-start;
    margin-top: .8rem;
    color: #fff;
    font-weight: 700;
    line-height: 1.4;
}
.checkout-policy-ack input {
    width: 1.1rem;
    height: 1.1rem;
    margin-top: .12rem;
    accent-color: #ff3589;
}
.purchase-policy-note { max-width: 880px; margin: 28px auto 0; padding: clamp(20px, 4vw, 32px); border: 1px solid rgba(214,166,66,.35); border-radius: 24px; background: linear-gradient(145deg, rgba(214,166,66,.08), rgba(255,53,137,.055)); text-align: center; }
.purchase-policy-note h2 { margin: .3rem 0 .65rem; }
.purchase-policy-note p:last-child { margin: 0 auto; max-width: 68ch; color: var(--bloom-muted); line-height: 1.65; }
.date-picker.linked-event > .date-buttons { display: none; }
.date-picker.linked-event > .event-rail-controls { display: none; }

@media (max-width: 520px) {
    .linked-event-summary.has-flyer { grid-template-columns: 82px minmax(0, 1fr); gap: 13px; }
    .linked-event-summary picture,
    .linked-event-summary img { width: 82px; height: 108px; }
    .linked-event-copy { grid-template-columns: 1fr; gap: 12px; }
    .linked-event-description { padding: 12px 0 0; border-top: 1px solid var(--bloom-line); border-left: 0; }
}

body[data-page="vip"] .fineprint-note {
    max-width: 680px;
    margin: 24px 0 0;
    padding: 0 0 0 18px;
    color: var(--bloom-muted);
    border-left: 2px solid var(--bloom-champagne);
    line-height: 1.65;
}
body[data-page="vip"] .fineprint-note strong { color: var(--bloom-ivory); }

body[data-page="links"] .hours-message { margin: 14px 0 0; color: var(--bloom-muted); line-height: 1.5; }
body[data-page="links"] .hours-message:empty { display: none; }
.location-section {
    display: grid;
    grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr);
    gap: 0;
    margin-top: 32px;
    overflow: hidden;
    border: 1px solid var(--bloom-line);
    border-radius: 26px;
    background: linear-gradient(145deg, rgba(54, 28, 40, .96), rgba(17, 10, 14, .98));
    box-shadow: var(--bloom-shadow);
}
.location-copy { align-self: center; padding: clamp(28px, 5vw, 50px); }
.location-copy h2 { margin: 6px 0 16px; color: var(--bloom-ivory); font: 500 clamp(2rem, 5vw, 3.7rem)/1 Georgia, serif; }
.location-copy > p:not(.section-eyebrow) { color: var(--bloom-muted); line-height: 1.7; }
.location-copy > a { width: fit-content; display: inline-flex; min-height: 44px; align-items: center; margin-top: 12px; color: var(--bloom-gold-bright); font-weight: 800; text-underline-offset: 5px; }
.location-map-frame { min-height: 360px; background: #0a0809; }
.location-map-frame iframe { width: 100%; height: 100%; min-height: 360px; display: block; border: 0; filter: saturate(.78) contrast(1.04); }

@media (max-width: 720px) {
    .location-section { grid-template-columns: 1fr; border-radius: 22px; }
    .location-copy { padding: 26px 22px; }
    .location-map-frame,
    .location-map-frame iframe { min-height: 300px; }
}
