/* ============================================================
   LAVA-LIGHT skin — the LIGHT-palette counterpart to lava: warm cream ground,
   dark ink text, the same signature lava gradient (red→orange→gold),
   Anton display + Mulish body, club purple/blue + felt-green card accents.
   Derived from lava/assets/theme.css: same structure/sections, re-tokened palette.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Anton&family=Mulish:wght@400;500;600;700;800;900&display=swap');

:root {
  /* LIGHT theme (lava's palette on a warm cream ground).
     --ink is the PRIMARY TEXT token (dark ink on cream). --night stays a warm
     near-black ACCENT token (button hover inversions, dark imagery contexts) —
     it is no longer a page/section ground. Gold gets a darkened TEXT variant
     (--gold-text) so gold-family type keeps AA contrast on the light bg. */
  --bg: #FAF7F2;            /* warm near-white page */
  --bg-2: #F2ECE3;          /* warm sunken (alt sections) */
  --surface: #FFFFFF;       /* cards */
  --line: rgba(28,25,23,.14);
  --ink: #1C1917;           /* dark ink */
  --muted: #6E6259;         /* warm secondary gray (AA on cream) */
  --cream: #FAF7F4;
  --red: #D6291A;
  --orange: #F2913C;
  --gold: #FFD21A;
  --gold-deep: #E0A400;     /* darkened accent gold for light ground */
  --gold-text: #8A6200;     /* gold for TEXT uses (AA on cream) */
  --club-purple: #8B3DF5;
  --club-blue: #2D7DFF;
  --felt: #1F7A4D;
  --night: #1C1917;         /* warm near-black accent (not a ground) */
  --night-2: #262019;
  --lava: linear-gradient(100deg, #B81E12 0%, #D6291A 35%, #F2913C 78%, #FFD21A 100%);
  --ember: linear-gradient(180deg, #F2913C, #D6291A);
  --club: linear-gradient(120deg, #8B3DF5, #2D7DFF);
  --maxw: 1200px;
  --radius: 14px;
  --shadow: 0 12px 32px rgba(28,25,23,.14);
  --font-head: 'Anton', sans-serif;
  --font-body: 'Mulish', system-ui, sans-serif;
  --anim: .2s ease;
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--font-body); line-height: 1.6; }
html { scroll-behavior: smooth; }
a { color: var(--red); text-decoration: none; }
a:not(.btn):hover { color: var(--orange); }
img { max-width: 100%; height: auto; display: block; }
.container { max-width: var(--maxw); margin: 0 auto; padding: 0 1.5rem; }

/* ---- Sections ---- */
.section { padding: 5rem 0; }
.section:where(:nth-of-type(even)) { background: var(--bg-2); }
.section__head { margin-bottom: 2.5rem; }
.section__eyebrow { display: inline-block; color: var(--red); font-weight: 800; text-transform: uppercase; letter-spacing: .16em; font-size: .72rem; margin: 0 0 .85rem; }
.section__title { font-family: var(--font-head); font-weight: 400; color: var(--ink); font-size: clamp(2.4rem, 5.5vw, 4rem); line-height: 1; text-transform: uppercase; letter-spacing: .01em; margin: 0 0 .75rem; }
.section__intro { color: var(--muted); font-size: 1.1rem; max-width: 60ch; margin: 0; }

/* ---- Buttons ---- */
.btn { display: inline-block; font-family: var(--font-body); font-weight: 800; letter-spacing: .02em; font-size: .95rem; padding: .85rem 1.6rem; border-radius: 8px; border: 2px solid transparent; cursor: pointer; transition: transform var(--anim), box-shadow var(--anim); }
.btn--primary { background: var(--lava); color: #fff; box-shadow: 0 8px 22px rgba(214,41,26,.32); }
.btn--primary:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(214,41,26,.45); }
.btn--phone { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn--phone:hover { background: var(--night); color: #fff; transform: translateY(-2px); }

/* ---- Header (dark night) ---- */
.section--header { position: sticky; top: 0; z-index: 50; background: rgba(12,10,9,.92); padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.section--header:nth-of-type(even) { background: rgba(12,10,9,.92); }
.header__inner { display: flex; align-items: center; gap: 1.5rem; }
.brand { display: flex; align-items: center; gap: .6rem; }
.brand__logo { width: 44px; height: 44px; object-fit: contain; }
.brand__name { font-family: var(--font-head); font-size: 1.4rem; color: #fff; text-transform: uppercase; line-height: 1; letter-spacing: .02em; }
.brand__city { font-size: .7rem; color: rgba(250,247,244,.6); text-transform: uppercase; letter-spacing: .1em; }
.nav { margin-left: auto; display: flex; align-items: center; gap: 1.4rem; flex-wrap: wrap; }
.nav__link { color: #fff; font-weight: 700; font-size: .9rem; text-transform: uppercase; letter-spacing: .04em; }
.nav__link:hover { color: var(--gold); }
.nav__link:last-child { background: var(--lava); color: #fff; border-radius: 8px; padding: .5rem 1.1rem; }
.header__phone { color: var(--gold); font-weight: 800; margin-left: 1rem; }

/* ---- Hero ---- */
.section--hero { position: relative; overflow: hidden; min-height: clamp(560px, 86vh, 840px); display: grid; align-items: center; color: var(--ink); background: var(--bg-2); }
.section--hero:nth-of-type(even) { background: var(--bg-2); }
.section--hero .hero__image { position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; margin: 0; border: 0; z-index: 0; }
.section--hero::before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 1; background: linear-gradient(90deg, rgba(250,247,242,.96) 0%, rgba(250,247,242,.84) 45%, rgba(250,247,242,.18) 100%); }
/* Narrow screens: the hero copy spans the full width, so the left-weighted scrim
   leaves dark ink over the bare photo on the right — use a near-uniform cream wash. */
@media (max-width: 900px) { .section--hero::before { background: linear-gradient(180deg, rgba(250,247,242,.95) 0%, rgba(250,247,242,.86) 60%, rgba(250,247,242,.62) 100%); } }
.section--hero .container { position: relative; z-index: 2; }
.hero__inner { max-width: 660px; }
.hero__eyebrow { display: inline-block; background: rgba(255,255,255,.1); color: var(--gold); border-radius: 9999px; padding: .35rem .9rem; font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; margin: 0 0 1.1rem; }
.hero__title { font-family: var(--font-head); font-weight: 400; font-size: clamp(3.25rem, 9vw, 6.5rem); line-height: .95; text-transform: uppercase; background: var(--lava); -webkit-background-clip: text; background-clip: text; color: transparent; margin: .25rem 0; }
.hero__sub { color: rgba(28,25,23,.82); font-size: 1.2rem; max-width: 46ch; }
.hero__rating { color: var(--gold-text); font-weight: 800; }
.hero__cta { display: flex; gap: 1rem; flex-wrap: wrap; margin: 1.75rem 0 0; }
.hero-burst { display: grid; place-items: center; position: absolute; z-index: 3; right: 6%; top: 50%; transform: translateY(-50%) rotate(-8deg); width: 210px; height: 210px; font-family: var(--font-head); text-transform: uppercase; font-size: 2.2rem; color: #fff; background: var(--lava); border: 0; padding: 0; cursor: pointer; clip-path: polygon(50% 0,61% 18%,82% 12%,76% 33%,98% 38%,80% 52%,98% 67%,76% 70%,84% 92%,62% 82%,50% 100%,38% 82%,16% 92%,24% 70%,2% 67%,20% 52%,2% 38%,24% 33%,18% 12%,39% 18%); box-shadow: 0 0 55px rgba(214,41,26,.6); animation: lv-pop .5s ease-out both; }
.hero-burst.kapow { animation: lv-kapow .5s ease-out; }
.floaty { position: absolute; z-index: 4; font-family: var(--font-head); text-transform: uppercase; font-size: 2.8rem; color: var(--gold); text-shadow: 2px 2px 0 var(--red); pointer-events: none; animation: lv-float 1s ease-out forwards; }
@media (max-width: 900px) { .hero-burst { width: 140px; height: 140px; font-size: 1.5rem; right: 3%; } }


/* flying pins behind the hero STRIKE burst (decorative; no markup) */
.section--hero::after { content: ""; position: absolute; z-index: 2; right: 1%; top: 50%; transform: translateY(-50%); width: 420px; height: 340px; pointer-events: none; background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20220%20180%27%3E%3Cg%20transform%3D%27translate%288%2026%29%20rotate%28-28%29%20scale%28.95%29%27%3E%3Cpath%20d%3D%27M20%203%20C27%203%2028%2013%2024%2022%20C21%2029%2021%2033%2025%2044%20C31%2060%2031%2082%2020%2097%20C9%2082%209%2060%2015%2044%20C19%2033%2019%2029%2016%2022%20C12%2013%2013%203%2020%203%20Z%27%20fill%3D%27%23FAF7F4%27%20stroke%3D%27%230C0A09%27%20stroke-width%3D%273%27%2F%3E%3Cpath%20d%3D%27M15%2023%20H25%20M13%2031%20H27%27%20stroke%3D%27%23D6291A%27%20stroke-width%3D%274%27%20stroke-linecap%3D%27round%27%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%27translate%28150%208%29%20rotate%2834%29%20scale%28.85%29%27%3E%3Cpath%20d%3D%27M20%203%20C27%203%2028%2013%2024%2022%20C21%2029%2021%2033%2025%2044%20C31%2060%2031%2082%2020%2097%20C9%2082%209%2060%2015%2044%20C19%2033%2019%2029%2016%2022%20C12%2013%2013%203%2020%203%20Z%27%20fill%3D%27%23FAF7F4%27%20stroke%3D%27%230C0A09%27%20stroke-width%3D%273%27%2F%3E%3Cpath%20d%3D%27M15%2023%20H25%20M13%2031%20H27%27%20stroke%3D%27%23D6291A%27%20stroke-width%3D%274%27%20stroke-linecap%3D%27round%27%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%27translate%2896%2092%29%20rotate%288%29%20scale%281.05%29%27%3E%3Cpath%20d%3D%27M20%203%20C27%203%2028%2013%2024%2022%20C21%2029%2021%2033%2025%2044%20C31%2060%2031%2082%2020%2097%20C9%2082%209%2060%2015%2044%20C19%2033%2019%2029%2016%2022%20C12%2013%2013%203%2020%203%20Z%27%20fill%3D%27%23FAF7F4%27%20stroke%3D%27%230C0A09%27%20stroke-width%3D%273%27%2F%3E%3Cpath%20d%3D%27M15%2023%20H25%20M13%2031%20H27%27%20stroke%3D%27%23D6291A%27%20stroke-width%3D%274%27%20stroke-linecap%3D%27round%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") no-repeat center / contain; filter: drop-shadow(4px 5px 0 rgba(0,0,0,.4)); animation: lv-pins-in .6s ease-out both; }
@media (max-width: 900px) { .section--hero::after { width: 240px; height: 200px; right: 0; } }
@keyframes lv-pins-in { 0% { opacity: 0; transform: translateY(-50%) scale(.6) rotate(-8deg); } 100% { opacity: 1; transform: translateY(-50%) scale(1) rotate(0); } }

/* ---- Stats (light) ---- */
.section--stats { padding: 2.5rem 0; background: var(--night); }
.section--stats:nth-of-type(even) { background: var(--night); }
.stats__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); gap: 1rem; }
.stat { padding: .25rem 1.5rem; border-left: 3px solid var(--orange); }
.stat__value { display: block; font-family: var(--font-head); font-size: 2.75rem; line-height: 1; color: var(--gold); }
.stat__label { text-transform: uppercase; letter-spacing: .12em; font-size: .7rem; color: rgba(250,247,244,.6); }

/* ---- Card base ---- */
.offering, .party, .league, .review, .menu-item, .deal { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); transition: transform var(--anim), box-shadow var(--anim); }
.offering:hover, .party:hover, .review:hover, .menu-item:hover, .deal:hover { transform: translateY(-4px); box-shadow: var(--shadow); }

/* ---- Offerings (colorful top accent) ---- */
.offerings-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px,1fr)); gap: 1.5rem; }
.offering { padding: 1.5rem; border-top: 4px solid var(--red); }
.offering:nth-child(6n+2) { border-top-color: var(--orange); }
.offering:nth-child(6n+3) { border-top-color: var(--club-blue); }
.offering:nth-child(6n+4) { border-top-color: var(--club-purple); }
.offering:nth-child(6n+5) { border-top-color: var(--felt); }
.offering:nth-child(6n+6) { border-top-color: var(--gold-deep); }
.offering__title { font-family: var(--font-head); text-transform: uppercase; font-size: 1.2rem; color: var(--ink); margin: 0 0 .5rem; letter-spacing: .02em; }
.offering__desc { color: var(--muted); margin: 0 0 1rem; }
.offering__photos { display: grid; gap: .5rem; }
.offering__photo { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 10px; }

/* ---- Pricing ---- */
.pricing-list, .pricing-rentals { display: grid; gap: .5rem; max-width: 680px; }
.pricing-rentals { margin-top: 1rem; }
.price-row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; border-bottom: 1px solid var(--line); padding: .75rem 0; }
.price-row__label { font-weight: 700; }
.price-row__value { font-family: var(--font-head); font-size: 1.6rem; color: var(--red); }

/* ---- Parties ---- */
.parties__image { width: 100%; max-width: 720px; border-radius: var(--radius); box-shadow: var(--shadow); margin-bottom: 1.5rem; }
.party-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px,1fr)); gap: 1.5rem; }
.party { padding: 1.5rem; border-top: 4px solid var(--orange); }
.party__name { display: block; font-family: var(--font-head); text-transform: uppercase; font-size: 1.1rem; color: var(--ink); }
.party__price { display: inline-block; font-family: var(--font-head); font-size: 1.6rem; color: var(--red); margin: .35rem 0; }
.party__detail { display: block; color: var(--muted); }
.party__includes { margin: .5rem 0 0; padding-left: 1.1rem; color: var(--muted); }

/* ---- Leagues ---- */
.leagues__photos { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 1.5rem; margin-bottom: 1.5rem; }
.leagues__photo { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); }
.league-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; max-width: 760px; }
.league { display: flex; align-items: baseline; gap: 1rem; padding: .85rem 1.2rem; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; }
.league__name { font-weight: 800; color: var(--ink); }
.league__day { color: var(--muted); }
.league__time { margin-left: auto; font-family: var(--font-head); color: var(--red); }

/* ---- Bar & lounge / Cosmic (club gradient) ---- */
.section--barlounge { background: var(--bg-2); }
.section--cosmic { background: var(--club); color: #fff; }
.section--cosmic .section__title { color: #fff; }
.section--cosmic .section__intro, .section--cosmic .section__eyebrow { color: rgba(255,255,255,.85); }
.barlounge__photos, .cosmic__photos { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px,1fr)); gap: 1.5rem; margin-top: 1.5rem; }
.barlounge__photo, .cosmic__photo { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); }
.barlounge__details { color: var(--muted); }

/* ---- Food service (menu) ---- */
.section--foodservice { background: var(--bg); }
.menu-layout--featured { display: grid; grid-template-columns: .8fr 1.3fr; gap: 2rem; align-items: start; }
.menu-feature { margin: 0; }
.menu-feature img { width: 100%; max-width: none; aspect-ratio: 3/4; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); position: sticky; top: 90px; }
.menu-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.75rem; }
.menu-tab { font-family: var(--font-body); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; font-size: .82rem; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 9999px; padding: .5rem 1.1rem; cursor: pointer; transition: background var(--anim), color var(--anim); }
.menu-tab.is-active { background: var(--lava); color: #fff; border-color: transparent; }
html.js .section--foodservice .menu-main:has(.menu-tabs) .menu-category { display: none; }
html.js .section--foodservice .menu-main:has(.menu-tabs) .menu-category.is-active { display: block; }
.menu-category__title { font-family: var(--font-head); text-transform: uppercase; color: var(--ink); font-size: 1.3rem; margin: 0 0 1.25rem; border-bottom: 3px solid var(--red); padding-bottom: .4rem; display: inline-block; }
.menu-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr)); gap: 1.25rem; }
.menu-item { overflow: hidden; }
.menu-item__photo { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.menu-item__name { font-weight: 800; color: var(--ink); margin: .75rem .85rem .25rem; }
.menu-item__desc { color: var(--muted); font-size: .85rem; margin: 0 .85rem .5rem; }
.menu-item__price { display: inline-block; font-family: var(--font-head); color: var(--red); font-size: 1.25rem; margin: 0 .85rem .85rem; }
.menu-list { list-style: none; padding: 0; margin: 0; }
.menu-list__row { display: flex; align-items: baseline; gap: .75rem; border-bottom: 1px solid var(--line); padding: .6rem 0; }
.menu-list__name { font-weight: 700; color: var(--ink); }
.menu-list__meta { color: var(--muted); font-size: .8rem; }
.menu-list__price { margin-left: auto; font-family: var(--font-head); color: var(--red); }

/* ---- This week / deals ---- */
.deals-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px,1fr)); gap: 1.5rem; }
.deal { padding: 1.5rem; border-left: 5px solid var(--orange); }
.deal:nth-child(3n+2) { border-left-color: var(--red); }
.deal:nth-child(3n) { border-left-color: var(--gold-deep); }
.deal__title { font-family: var(--font-head); text-transform: uppercase; font-size: 1.4rem; color: var(--ink); margin: 0 0 .5rem; }
.deal__desc { color: var(--muted); margin: 0 0 .75rem; }
.deal__value { display: inline-block; font-family: var(--font-head); background: var(--lava); -webkit-background-clip: text; background-clip: text; color: transparent; font-size: 1.6rem; }
.deal__valid, .deal__code { display: block; font-size: .78rem; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; margin-top: .4rem; }

/* ---- Reviews ---- */
.review-sources { display: flex; gap: 1.5rem; margin-bottom: 1.5rem; color: var(--muted); }
.review-source__num { font-family: var(--font-head); color: var(--red); font-size: 1.6rem; margin-right: .25rem; }
.reviews-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px,1fr)); gap: 1.5rem; }
.review { padding: 1.5rem; }
.review__avatar { width: 50px; height: 50px; border-radius: 50%; object-fit: cover; float: right; margin-left: .75rem; border: 2px solid var(--line); }
.review__rating { color: var(--gold-deep); }
.review__quote { margin: .5rem 0 1rem; color: var(--ink); }
.review__author { font-weight: 800; display: block; color: var(--red); }
.review__source, .review__date { font-size: .8rem; color: var(--muted); }

/* ---- Gallery ---- */
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px,1fr)); gap: 1rem; }
.gallery__photo { width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: var(--radius); transition: transform var(--anim); }
.gallery__photo:hover { transform: scale(1.03); }

/* ---- Gift cards (lava band) ---- */
.section--giftcards { background: var(--lava); }
.giftcard { text-align: center; display: grid; justify-items: center; gap: .5rem; }
.giftcard__logo { width: 64px; height: 64px; object-fit: contain; background: rgba(255,255,255,.2); border-radius: var(--radius); padding: .4rem; }
.giftcard__name { font-family: var(--font-head); text-transform: uppercase; color: #fff; }
.section--giftcards .section__title, .section--giftcards .section__eyebrow, .section--giftcards .section__intro { color: #fff; }

/* ---- CTA (night) ---- */
.section--cta { background: var(--bg-2); text-align: center; }
.cta__inner { display: grid; justify-items: center; gap: 1rem; }
.cta__title { font-family: var(--font-head); text-transform: uppercase; background: var(--lava); -webkit-background-clip: text; background-clip: text; color: transparent; font-size: clamp(2.4rem,8vw,4.5rem); margin: 0; }
.cta__sub { color: var(--muted); font-size: 1.15rem; }
.cta__actions { display: flex; gap: 1rem; flex-wrap: wrap; justify-content: center; }

/* ---- Footer (warm light) ---- */
.section--footer { background: var(--bg-2); color: var(--ink); border-top: 3px solid var(--red); }
.section--footer:nth-of-type(even) { background: var(--bg-2); }
.footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); gap: 2rem; }
.footer__logo { width: 60px; height: 60px; object-fit: contain; }
.footer__heading { font-family: var(--font-head); text-transform: uppercase; color: var(--gold-text); font-size: 1rem; margin: 0 0 .75rem; }
.footer__map { width: 100%; border-radius: 10px; margin-bottom: .75rem; }
.footer__tag, .footer__address { color: var(--muted); }
.footer__phone, .footer__directions { color: var(--red); font-weight: 800; display: inline-block; margin-top: .5rem; }
.footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: .4rem; }
.footer__links a { color: var(--ink); }
.footer__links a:hover { color: var(--red); }
.footer__legal { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line); font-size: .8rem; color: var(--muted); }

/* ---- Scroll reveal ---- */
.section.in-view:not(.section--header):not(.section--hero) { animation: lv-reveal .55s ease both; }

/* ---- Mobile slide-out nav (smooth off-canvas drawer) ---- */
.nav-toggle { flex-direction: column; align-items: center; justify-content: center; gap: 6px; background: transparent; border: 0; width: 46px; height: 46px; padding: 0; cursor: pointer; margin-left: auto; }
.nav-toggle span { display: block; width: 24px; height: 2.5px; background: var(--ink); border-radius: 2px; transition: transform .3s cubic-bezier(.4,.01,.2,1), opacity .2s ease; }
/* overlay fades (opacity/visibility) instead of display-toggling, so it eases; display:block
   overrides the canonical base hide; pointer-events gate clicks while hidden. */
.nav-overlay { display: block; position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 60; background: rgba(0,0,0,.5); backdrop-filter: blur(6px); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .3s ease, visibility .3s ease; }
body.nav-locked { overflow: hidden; }
@media (max-width: 1024px) {
  .nav-toggle { display: flex; order: 2; margin-left: 0; flex: none; }
  .header__phone { display: none; }
  /* Compact single-row mobile header (logo + name | status | toggle) */
  .section--header { padding: .4rem 0; }
  .header__inner { flex-wrap: nowrap; align-items: center; gap: .6rem; }
  .brand { order: 0; flex: 1 1 auto; min-width: 0; }
  .brand__logo { width: 34px; height: 34px; }
  .brand__name { font-size: 1.05rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .brand__city { display: none; }
  .header__utility { order: 1; flex: 0 0 auto; flex-direction: column; align-items: flex-end; gap: .15rem; margin: 0; }
  .hours-status--badge { font-size: .62rem; padding: .12rem .45rem; }
  .nav { position: fixed; top: 0; right: 0; bottom: 0; width: min(86vw, 340px); background: var(--surface); border-left: 1px solid var(--line); box-shadow: -18px 0 50px rgba(28,25,23,.28); flex-direction: column; align-items: stretch; gap: .15rem; padding: 5.5rem 1.5rem 2rem; margin: 0; z-index: 70; transform: translateX(100%); transition: transform .34s cubic-bezier(.22,.61,.36,1); overflow-y: auto; }
  .nav__link { font-size: 1.15rem; padding: .75rem 0; width: 100%; border-bottom: 1px solid var(--line); }
  .nav__link:last-child { margin-top: .75rem; text-align: center; border-bottom: 0; }
  .section--header.nav-open .nav { transform: translateX(0); }
  .section--header.nav-open .nav-overlay { opacity: 1; visibility: visible; pointer-events: auto; }
  .section--header.nav-open .nav-toggle span:nth-child(1) { transform: translateY(8.5px) rotate(45deg); }
  .section--header.nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
  .section--header.nav-open .nav-toggle span:nth-child(3) { transform: translateY(-8.5px) rotate(-45deg); }
  .menu-layout--featured { grid-template-columns: 1fr; }
  .menu-feature img { position: static; aspect-ratio: 16/9; }
}

/* ---- Animations ---- */
@keyframes lv-pop { 0% { transform: translateY(-50%) rotate(-8deg) scale(0); } 60% { transform: translateY(-50%) rotate(-8deg) scale(1.15); } 100% { transform: translateY(-50%) rotate(-8deg) scale(1); } }
@keyframes lv-kapow { 0% { transform: translateY(-50%) rotate(-8deg) scale(1); } 30% { transform: translateY(-50%) rotate(6deg) scale(1.2); } 60% { transform: translateY(-50%) rotate(-14deg) scale(.92); } 100% { transform: translateY(-50%) rotate(-8deg) scale(1); } }
@keyframes lv-float { 0% { transform: translateY(0) scale(.6); opacity: 0; } 20% { transform: translateY(-18px) scale(1.1); opacity: 1; } 100% { transform: translateY(-130px) scale(1); opacity: 0; } }
@keyframes lv-reveal { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }

@media (max-width: 720px) { .section:not(.section--header) { padding: 3rem 0; } .section--hero { min-height: 74vh; } }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }

/* ============================================================
   LAVA — strike-era section additions (light theme; dark hero / cosmic / find-us / footer).
   Later rules override the now-dead old ones (party-list, cosmic photos, gallery grid…).
   ============================================================ */

/* Hero: drop the off-design burst + flying pins (now a photo hero + marquee). */
.hero-burst, .floaty { display: none; }
.section--hero::after { content: none; }
.hero__title em { font-style: italic; font-weight: 900; -webkit-text-fill-color: var(--gold); }

/* Hero deals marquee */
.hero-marquee { position: absolute; left: 0; right: 0; bottom: 0; z-index: 4; overflow: hidden; background: var(--lava); color: #fff; }
.hero-marquee__track { display: inline-flex; gap: 2.5rem; white-space: nowrap; padding: .55rem 0; font-family: var(--font-head); text-transform: uppercase; font-size: 1.05rem; letter-spacing: .03em; animation: lv-marquee 26s linear infinite; }
.hero-marquee__track span { display: inline-flex; align-items: center; gap: 2.5rem; }
@keyframes lv-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Live hours status (header / hero / find-us — all LIGHT contexts → ink text) */
.hours-status { display: inline-flex; align-items: center; gap: .45rem; font-weight: 800; font-size: .9rem; color: var(--ink); white-space: nowrap; }
.hours-status::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: rgba(28,25,23,.3); flex: none; }
.hours-status.is-open::before { background: #1F9D57; box-shadow: 0 0 0 3px rgba(31,157,87,.22); }
.hours-status.is-closed::before { background: var(--red); }
.hours-status--badge { font-size: .8rem; padding: .35rem .75rem; border: 1px solid var(--line); border-radius: 999px; }
.section--hero .hours-status { margin-top: 1.1rem; }
.findus__card .hours-status { margin: 0 0 .85rem; }
.findus__hours-row.is-today { background: rgba(255,210,26,.14); border-radius: 7px; margin: 0 -.6rem; padding: .15rem .6rem .5rem; }
.findus__hours-row.is-today span { color: var(--gold-text); font-weight: 900; }

/* Header utility + nav More dropdown + reserve pill (dark header) */
.header__utility { display: flex; align-items: center; gap: 1.1rem; }
.brand__status, .nav__head { display: none; }
.header__phone { color: var(--gold); font-weight: 800; white-space: nowrap; }
.nav__link--cta { background: var(--lava); color: #fff; border-radius: 8px; padding: .5rem 1.2rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.nav__more { position: relative; display: inline-flex; }
.nav__more-toggle { background: transparent; border: 0; cursor: pointer; font: inherit; color: #fff; display: inline-flex; align-items: center; gap: .3rem; }
.nav__more-menu { display: none; position: absolute; top: 100%; right: 0; min-width: 13rem; flex-direction: column; gap: .1rem; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: .85rem .5rem .5rem; box-shadow: var(--shadow); z-index: 80; }
.nav__more:hover .nav__more-menu, .nav__more:focus-within .nav__more-menu { display: flex; }
.nav__more-menu .nav__link { padding: .55rem .65rem; border-radius: 8px; white-space: nowrap; border: 0; color: var(--ink); }
.nav__more-menu .nav__link:hover { background: rgba(28,25,23,.06); color: var(--red); }

/* Offering / deal / amenity card photos (light cards) */
.offering { overflow: hidden; }
.offering__media { position: relative; margin: -1.5rem -1.5rem 1rem; }
.offering__photo { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 0; }
.offering__badge { position: absolute; top: .8rem; left: .8rem; background: var(--lava); color: #fff; font-family: var(--font-head); padding: .2rem .7rem; border-radius: 6px; }
.offering__cta { color: var(--red); font-weight: 800; text-transform: uppercase; font-size: .82rem; display: inline-block; margin-top: .5rem; }
.deal { overflow: hidden; }
.deal__media { margin: -1.5rem -1.5rem 1.1rem; overflow: hidden; }
.deal__photo { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
.amenities-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px,1fr)); gap: 1.25rem; }
.amenity { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.25rem 1.4rem; overflow: hidden; border-top: 4px solid var(--orange); }
.amenity__name { font-family: var(--font-head); text-transform: uppercase; font-size: 1.05rem; color: var(--ink); margin: 0 0 .4rem; }
.amenity__desc { color: var(--muted); font-size: .9rem; margin: 0; }
.amenity__media { margin: -1.25rem -1.4rem 1rem; overflow: hidden; }
.amenity__photo { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; }

/* Parties — featured-package hero (light) */
.parties-feature { display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: center; }
@media (min-width: 900px) { .parties-feature { grid-template-columns: 1fr 1fr; gap: 3.5rem; } }
.parties-feature__media { position: relative; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.parties-feature__photo { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; }
.parties-feature__price { position: absolute; top: 1rem; right: 1rem; width: calc(6.5rem * var(--badge-scale, 1)); height: calc(6.5rem * var(--badge-scale, 1)); display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--lava); color: #fff; text-align: center; line-height: 1; filter: drop-shadow(0 8px 18px rgba(214,41,26,.4)); clip-path: polygon(50% 0%, 61% 11%, 76% 8%, 78% 24%, 92% 30%, 84% 43%, 95% 55%, 82% 62%, 86% 78%, 70% 78%, 62% 92%, 50% 82%, 38% 92%, 30% 78%, 14% 78%, 18% 62%, 5% 55%, 16% 43%, 8% 30%, 22% 24%, 24% 8%, 39% 11%); }
.parties-feature__price strong { font-family: var(--font-head); font-size: calc(1.6rem * var(--badge-scale, 1)); }
.parties-feature__price small { font-size: calc(.68rem * var(--badge-scale, 1)); text-transform: uppercase; letter-spacing: .08em; }
.parties-feature__ribbon { position: absolute; left: 0; bottom: 1.5rem; background: var(--gold); color: var(--ink); font-family: var(--font-head); text-transform: uppercase; letter-spacing: .04em; font-size: .85rem; padding: .55rem 1.7rem .55rem 1.1rem; clip-path: polygon(0 0, 100% 0, calc(100% - .8rem) 50%, 100% 100%, 0 100%); box-shadow: 0 6px 16px rgba(0,0,0,.2); }
.parties-feature__lead { color: var(--muted); font-size: 1.08rem; line-height: 1.6; margin: 1.1rem 0 1.6rem; max-width: 46ch; }
.parties-feature__list { list-style: none; padding: 0; margin: 0 0 2rem; display: grid; gap: .9rem; }
.parties-feature__list li { position: relative; padding-left: 1.9rem; color: var(--ink); font-weight: 700; }
.parties-feature__list li::before { content: "\2713"; position: absolute; left: 0; color: var(--red); font-weight: 900; }
.parties-feature__ctas { display: flex; flex-wrap: wrap; gap: 1rem; }
.parties-feature__deskcta { cursor: default; }
.party__readmore { margin-top: .5rem; background: none; border: 0; padding: 0; color: var(--red); font-weight: 900; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; cursor: pointer; }
.party-list__more { text-align: center; margin-top: 1.75rem; }
.party__detail { display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.party.is-expanded .party__detail { -webkit-line-clamp: unset; }

/* Cosmic — neon banner (dark; overrides the old photo grid) */
.section--cosmic { position: relative; overflow: hidden; padding: 0; background: var(--club); }
.cosmic__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .42; z-index: 0; }
.section--cosmic::after { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, rgba(12,10,9,.92) 0%, rgba(12,10,9,.55) 45%, rgba(214,41,26,.3) 100%); z-index: 1; }
.cosmic__inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr auto; gap: 1.25rem 2rem; padding: 3.5rem 1.5rem; align-items: start; }
.cosmic__lead { grid-column: 1; grid-row: 1; }
.cosmic__action { grid-column: 2; grid-row: 1; text-align: right; justify-self: end; }
.cosmic__facts { grid-column: 1 / -1; grid-row: 2; display: flex; flex-wrap: wrap; gap: 1rem 3rem; margin: 1.5rem 0 0; }
.cosmic__eyebrow { color: var(--gold); text-transform: uppercase; letter-spacing: .24em; font-weight: 800; font-size: .8rem; margin: 0 0 .6rem; }
.cosmic__mark { margin: 0; line-height: .82; font-family: var(--font-head); text-transform: uppercase; }
.cosmic__mark-top { display: block; font-size: clamp(2.8rem, 8vw, 6rem); }
.cosmic__letter { -webkit-text-stroke: 1px rgba(0,0,0,.45); paint-order: stroke fill; text-shadow: 0 0 18px currentColor, 0 0 5px currentColor; }
.cosmic__letter:nth-child(1) { color: #ff2d9b; }
.cosmic__letter:nth-child(2) { color: var(--orange); }
.cosmic__letter:nth-child(3) { color: var(--gold); }
.cosmic__letter:nth-child(4) { color: #4ade5b; }
.cosmic__letter:nth-child(5) { color: #38bdf8; }
.cosmic__letter:nth-child(6) { color: #a855f7; }
.cosmic__mark-bottom { display: block; color: #fff; font-size: clamp(1.9rem, 5.5vw, 4rem); letter-spacing: .18em; }
.cosmic__sub { color: rgba(255,255,255,.78); text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; font-weight: 700; margin: .8rem 0 0; }
.cosmic__facts dt { color: var(--gold); text-transform: uppercase; letter-spacing: .1em; font-size: .72rem; font-weight: 800; margin: 0 0 .3rem; }
.cosmic__facts dd { color: #fff; font-weight: 800; font-size: 1.05rem; margin: 0; }
@media (max-width: 760px) { .cosmic__inner { grid-template-columns: 1fr; } .cosmic__action { grid-column: 1; grid-row: 3; text-align: left; justify-self: start; margin-top: 1rem; } }

/* Bar & lounge masonry */
.barlounge__photos { display: block; column-count: 3; column-gap: .9rem; grid-template-columns: none; margin-top: 1.5rem; }
.barlounge__photos[data-count="1"] { column-count: 1; }
.barlounge__photos[data-count="2"] { column-count: 2; }
.barlounge__photo-item { position: relative; break-inside: avoid; margin: 0 0 .9rem; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); display: block; }
.barlounge__photo-item .barlounge__photo { width: 100%; height: auto; aspect-ratio: auto; border-radius: 0; box-shadow: none; display: block; }
.barlounge__cap { position: absolute; inset: auto 0 0 0; margin: 0; padding: .7rem .8rem; color: #fff; font-size: .8rem; font-weight: 600; background: linear-gradient(transparent, rgba(0,0,0,.78)); opacity: 0; transition: opacity .3s ease; }
.barlounge__photo-item:hover .barlounge__cap { opacity: 1; }
@media (max-width: 600px) { .barlounge__photos { column-count: 2; } .barlounge__photos[data-count="1"] { column-count: 1; } }

/* Gallery lightbox figures + overlay */
.gallery__item { position: relative; margin: 0; border-radius: var(--radius); overflow: hidden; cursor: pointer; }
.gallery__cap { position: absolute; inset: auto 0 0 0; margin: 0; padding: .7rem .8rem; color: #fff; font-size: .8rem; background: linear-gradient(transparent, rgba(0,0,0,.8)); opacity: 0; transition: opacity .3s ease; }
.gallery__item:hover .gallery__cap { opacity: 1; }
.gallery__item:hover .gallery__photo { transform: scale(1.05); }
.lightbox { display: none; position: fixed; inset: 0; z-index: 200; background: rgba(8,5,4,.94); align-items: center; justify-content: center; }
.lightbox.is-open { display: flex; }
.lightbox__img { max-width: 92vw; max-height: 82vh; border-radius: 10px; }
.lightbox__btn { position: absolute; background: rgba(255,255,255,.12); border: 0; color: #fff; font-size: 2rem; width: 3rem; height: 3rem; border-radius: 50%; cursor: pointer; }
.lightbox__btn--close { top: 1.25rem; right: 1.25rem; }
.lightbox__btn--prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.lightbox__btn--next { right: 1rem; top: 50%; transform: translateY(-50%); }
.lightbox__cap { position: absolute; bottom: 1.5rem; left: 0; right: 0; text-align: center; color: #fff; }

/* Find Us (the cta section is light cream → white cards, ink text) */
.findus { display: grid; grid-template-columns: 1fr; gap: 2rem; text-align: left; }
@media (min-width: 920px) { .findus { grid-template-columns: 1.3fr 1fr; align-items: start; } }
.findus__map { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); }
.findus__map img { width: 100%; max-width: none; display: block; aspect-ratio: 4/5; object-fit: cover; }
.findus__cards { display: grid; gap: 1.25rem; }
.findus__card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.4rem 1.5rem; box-shadow: 0 2px 8px rgba(28,25,23,.08); }
.findus__card-title { font-family: var(--font-head); text-transform: uppercase; font-size: 1.1rem; color: var(--red); margin: 0 0 .7rem; }
.findus__address { color: var(--ink); margin: 0 0 .5rem; line-height: 1.5; }
.findus__note--link { color: var(--red); font-weight: 800; text-transform: uppercase; font-size: .82rem; }
.findus__hours { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.findus__hours-row { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px dashed var(--line); padding-bottom: .45rem; color: var(--ink); font-size: .92rem; }
.findus__hours-row span:last-child { font-weight: 800; }
.findus__contact { display: flex; justify-content: space-between; gap: 1rem; margin: 0 0 .5rem; color: var(--muted); }
.findus__contact a { color: var(--ink); font-weight: 800; }

/* Footer logo + legal links */
.footer__brand-id { display: flex; align-items: center; gap: .7rem; }
.footer__social { display: flex; gap: .7rem; align-items: center; flex-wrap: wrap; }
.footer__social a { color: var(--muted); }
.footer__social a:hover { color: var(--red); }
.footer__brand-id .footer__logo { width: 42px; height: 42px; }
.footer__legal-links { display: flex; gap: 1.25rem; flex-wrap: wrap; }
.footer__powered { text-align: center; font-size: .72rem; margin: 1.5rem 0 0; opacity: .5; }
.footer__powered a { color: inherit; font-weight: 400; font-style: italic; text-decoration: none; }
.footer__powered a:hover { text-decoration: underline; }

/* Compact mobile header — final overrides (win over the later-appended base rules) */
@media (max-width: 1024px) {
  .section--header .header__inner { flex-wrap: nowrap; align-items: center; gap: .6rem; }
  .section--header .brand { flex: 1 1 auto; min-width: 0; align-items: center; gap: .6rem; }
  .section--header .brand__logo { width: 48px; height: 48px; }
  .section--header .brand__text { min-width: 0; gap: .05rem; }
  .section--header .brand__status { display: inline-flex; font-size: .64rem; }
  .section--header .brand__name { min-width: 0; font-size: 1.1rem; line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .section--header .brand__city { display: block; font-size: .68rem; opacity: .85; }
  .section--header .header__utility { display: none; }
  .section--header .nav-toggle { flex: none; margin-left: 0; }
  /* Flatten the desktop "More" dropdown into the drawer — all items at one level */
  .section--header .nav { padding-top: 10px; }
  .section--header.nav-open .nav-toggle { z-index: 80; }
  .section--header .nav__head { display: flex; align-items: center; gap: .7rem; width: 100%; margin: 10px 0 .6rem; padding: 0 2.75rem .85rem 0; border-bottom: 1px solid var(--line); }
  .section--header .nav__head-logo { width: 44px; height: 44px; flex: none; }
  .section--header .nav__head-text { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
  .section--header .nav__head-name { font-weight: 700; font-size: 1.05rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .section--header .nav__head-status { font-size: .68rem; }
  .section--header .nav__more { display: block; width: 100%; }
  .section--header .nav__more-toggle { display: none; }
  .section--header .nav__more-menu { display: flex; flex-direction: column; position: static; width: 100%; min-width: 0; padding: 0; margin: 0; border: 0; background: none; box-shadow: none; gap: 0; }
  .section--header .nav__more-menu .nav__link { padding: .75rem 0; font-size: 1.15rem; width: 100%; border-radius: 0; border-bottom: 1px solid var(--line); }
  .section--header .nav__more-menu .nav__link:hover { background: none; }
}
.footer__legal-links a { color: var(--muted); }
.footer__legal-links a:hover { color: var(--red); }

/* Hide the status placeholder until the client fills it */
[data-hours-status]:empty { display: none; }

/* ============================================================
   LAVA — PROOF MATCH (designs/lava/preview.html as source of truth).
   The comp is a warm LIGHT page (cream/ash) with a dark photo hero, a
   floating white stats card, a dark cosmic/club band, a dark find-us +
   footer, and the signature lava-gradient ACCENT WORD. These blocks are
   appended last so they win the cascade over the earlier dark-header /
   full-gradient-hero / dark-stats rules. Values lifted from the comp's
   own stylesheet (design tokens + UI kit).
   ============================================================ */

/* ---- Buttons → pills (proof .ll-btn is fully rounded) ---- */
.btn { border-radius: 10px; padding: .9rem 1.7rem; }
.btn--primary { background: var(--lava); color: #fff; box-shadow: 0 10px 30px rgba(214,41,26,.35); }
.btn--primary:hover { transform: translateY(-2px); box-shadow: 0 14px 36px rgba(214,41,26,.45); }
.btn--ghost { background: transparent; border: 1.5px solid var(--ink); color: var(--ink); }
.btn--ghost:hover { background: var(--night); color: #fff; transform: translateY(-2px); }
/* Only the cosmic band stays dark — its ghost reads light; the hero is light now. */
.section--cosmic .btn--ghost { border-color: rgba(255,255,255,.45); color: #fff; }
.section--cosmic .btn--ghost:hover { background: rgba(255,255,255,.14); color: #fff; }

/* ---- ACCENT WORD: slot_em (*word*) renders <em>; the comp paints it with
   the lava gradient (NOT a gold italic). Applies to every headline. ---- */
.hero__title em,
.section__title em,
.parties-feature__body .section__title em,
.league-feature__title em,
.cta__title em,
.giftcard .section__title em {
  font-style: normal;
  font-weight: 400;
  background: var(--lava);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

/* ---- Header → light glass bar (proof: white 86% + blur, red logo,
   dark nav, red icon phone, red Visit Us pill). Overrides the dark bar. ---- */
.section--header,
.section--header:nth-of-type(even) {
  background: rgba(255,255,255,.86);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
}
.brand__name { color: #E8502F; }
.brand__city { color: var(--muted); }
.nav__link { color: var(--ink); }
.nav__link:hover { color: var(--red); }
.nav__link--cta { color: #fff; }            /* stays the lava pill */
.nav__link--cta:hover { color: #fff; }
.header__phone { color: var(--ink); }
.header__phone:hover { color: var(--red); }
.nav__more-toggle { color: var(--ink); }
.section--header .hours-status { color: var(--ink); }
.section--header .hours-status::before { background: var(--muted); }
.section--header .hours-status.is-open::before { background: #1F9D57; box-shadow: 0 0 0 3px rgba(31,157,87,.22); }
.section--header .hours-status.is-closed::before { background: var(--red); }
.section--header .hours-status--badge { border-color: var(--line); background: var(--bg-2); }

/* ---- Hero → white headline + gradient accent, light eyebrow w/ gold dot.
   (Earlier rule made the WHOLE title a gradient; the comp keeps it white.) ---- */
.section--hero .hero__title {
  background: none;
  color: var(--ink);
  -webkit-text-fill-color: var(--ink);
  text-shadow: 0 2px 22px rgba(250,247,242,.85);
  font-size: clamp(3rem, 8vw, 7rem);
  line-height: .96;
}
.section--hero .hero__title em { -webkit-text-fill-color: transparent; }  /* re-enable gradient fill on the span */
.hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: var(--ink);
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(28,25,23,.14);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.hero__eyebrow::before {
  content: "";
  width: 9px; height: 9px;
  border-radius: 50%;
  background: var(--gold-deep);
  box-shadow: 0 0 10px var(--gold-deep);
  flex: none;
}
.hero__sub { color: rgba(28,25,23,.82); }

/* ---- Stats → floating white card overlapping the hero (proof .stats-strip).
   Replaces the dark band: transparent section, white rounded card w/ dividers,
   ink Anton numbers, muted caps labels, pulled up over the hero photo. ---- */
.hero-marquee { display: none; }            /* the comp has no hero marquee; drop it so the card can overlap */
.section--stats,
.section--stats:nth-of-type(even) { background: transparent; padding: 0; }
.section--stats .stats__grid {
  position: relative;
  z-index: 6;
  margin-top: -3.5rem;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 26px;
  box-shadow: 0 16px 40px rgba(28,25,23,.16);
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  overflow: hidden;
}
.section--stats .stat {
  border-left: 1px solid var(--line);
  padding: 2.2rem 1rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .3rem;
}
.section--stats .stat:first-child { border-left: 0; }
.section--stats .stat__value { color: var(--ink); font-size: clamp(2.2rem, 4.5vw, 3.6rem); }
.section--stats .stat__label { color: var(--muted); }
@media (max-width: 760px) {
  .section--stats .stats__grid { grid-template-columns: 1fr 1fr; margin-top: -2.5rem; }
  .section--stats .stat:nth-child(odd) { border-left: 0; }
  .section--stats .stat:nth-child(n+3) { border-top: 1px solid var(--line); }
}

/* ---- Centered section heads for the full-width grid sections (proof centers
   the eyebrow / title / intro on amenities + pricing). ---- */
.section--amenities .section__head,
.section--pricing .section__head { text-align: center; }
.section--amenities .section__intro,
.section--pricing .section__intro { margin-left: auto; margin-right: auto; }

/* ---- Amenity cards → clean white cards (proof: no colored top stripe,
   soft shadow, rounded). Keeps the optional photo / icon media. ---- */
.amenity {
  border-top: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 2px 6px rgba(28,25,23,.10);
  padding: 1.75rem;
}

/* ============================================================
   LAVA — CONTENT-SECTION PROOF MATCH (continuation of ad66421).
   The previous pass matched header / hero / stats to the LIGHT default
   of designs/lava/preview.html; this block brings the remaining content
   sections (leagues, reviews, gift-cards band) the rest of the way to
   that same proof. Appended last so it wins over the earlier strike-era
   rules. Values lifted from the proof's own UI kit (.leagues / .league-row,
   .reviews-scores / .review-source, .giftcard__title).
   ============================================================ */

/* ---- Gift-cards band: the lava-gradient ACCENT em (slot_em) is painted
   with the lava gradient via the global headline rule, which renders it
   nearly invisible on this section's lava-gradient background. The proof's
   .giftcard__title is solid white — force the whole title (incl. em) white
   so the wordmark reads. Why it matters: the band's headline was otherwise
   half-illegible (e.g. "GIFT [cards]" with "cards" vanishing). ---- */
.section--giftcards .section__title,
.section--giftcards .section__title em {
  background: none;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  color: #fff;
  -webkit-text-fill-color: #fff;
}

/* ---- Leagues: the proof pairs the night schedule with a supporting
   feature card side-by-side (proof .leagues = two columns). The canonical
   .leagues-layout was unstyled, so the full 20-row schedule stacked at
   full width (a very tall wall) above the feature. Split it: schedule left,
   feature card right (sticky on desktop). ---- */
.leagues-layout { display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: start; }
@media (min-width: 920px) {
  .leagues-layout { grid-template-columns: 1.35fr 1fr; gap: 3rem; }
}
.league-list { max-width: none; gap: .6rem; }

/* night row → proof .league-row: white bar, Anton red day code, name,
   muted time, slide-on-hover. Overrides the earlier baseline .league flex. */
.league {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1rem;
  padding: .9rem 1.25rem;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(28,25,23,.08);
  transition: transform var(--anim), box-shadow var(--anim), border-color var(--anim);
}
.league:hover { transform: translateX(4px); box-shadow: var(--shadow); border-color: #F6A593; }
.league__when { display: flex; flex-direction: column; align-items: flex-start; line-height: 1; min-width: 5.5rem; }
.league__day { font-family: var(--font-head); text-transform: uppercase; color: var(--red); font-size: 1.15rem; letter-spacing: .02em; margin-left: 0; }
.league__time { font-family: var(--font-body); font-weight: 800; color: var(--muted); font-size: .78rem; margin: .2rem 0 0; }
.league__body { display: flex; flex-direction: column; gap: .1rem; }
.league__name { font-weight: 800; color: var(--ink); }
.league__meta { color: var(--muted); font-size: .85rem; }
.league__status { font-weight: 800; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--felt); white-space: nowrap; }

/* league feature → white card with photo header, why-copy, stat pair, CTA */
.league-feature { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 1.5rem; box-shadow: var(--shadow); }
@media (min-width: 920px) { .league-feature { position: sticky; top: 92px; } }
.league-feature__photo { margin: -1.5rem -1.5rem 1.25rem; border-radius: 18px 18px 0 0; overflow: hidden; }
.league-feature__photo img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; }
.league-feature__photo figcaption { padding: .6rem .9rem 0; font-size: .8rem; color: var(--muted); }
.league-feature__title { font-family: var(--font-head); text-transform: uppercase; color: var(--ink); font-size: 1.4rem; line-height: 1.05; margin: 0 0 .5rem; }
.league-feature__body { color: var(--muted); margin: 0 0 1.25rem; }
.league-feature__stats { display: flex; flex-wrap: wrap; gap: 2rem; margin: 0 0 1.25rem; }
.league-stat__value { display: block; font-family: var(--font-head); color: var(--red); font-size: 1.8rem; line-height: 1; }
.league-stat__label { display: block; color: var(--muted); font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; margin-top: .25rem; }
.league-feature__cta { display: block; width: 100%; text-align: center; }

/* ---- Reviews: the canonical non-comic markup is a minimal source list
   (<span class="review-source"><span class="review-source__num">4.2</span>
   Google</span>). The proof shows each as a small SCORE BLOCK — a big ink
   Anton number above the platform label. Promote the row to read that way
   instead of a tiny red inline number. ---- */
.review-sources { gap: 2rem 2.5rem; flex-wrap: wrap; align-items: flex-end; }
.review-source {
  display: inline-flex;
  flex-direction: column-reverse;
  align-items: flex-start;
  gap: .15rem;
  color: var(--muted);
  font-weight: 800;
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.review-source__num { font-family: var(--font-head); color: var(--ink); font-size: 2.6rem; line-height: .85; margin: 0; }

/* ============================================================
   LAVA-LIGHT — LIGHT-GROUND FIXUPS (lava's dark-conversion block, re-lit).
   Gold ribbon text stays dark ink; card elevation uses soft warm shadows
   that read on the cream page.
   ============================================================ */

/* Gold party ribbon is a LIGHT chip → dark ink text. */
.parties-feature__ribbon { color: #1C1917; }

/* Card elevation: soft warm-grey shadows for the light page. */
.section--stats .stats__grid { box-shadow: 0 16px 40px rgba(28,25,23,.16); }
.amenity { box-shadow: 0 2px 10px rgba(28,25,23,.10); }
.league { box-shadow: 0 1px 3px rgba(28,25,23,.10); }

/* ============================================================
   GIFT CARDS — RICH LAYOUT (proof match: dark two-column band,
   denomination pills + call-to-buy CTA, and a red→orange gradient
   gift-card visual with the amount big, logo top-left, "GIFT CARD"
   top-right, and the center name + tagline along the bottom).
   Opted in by the canonical blade when denom/cta/card slots exist;
   appended last so these win over the earlier lava-band rules
   (which paint the whole section gradient + force the title white).
   ============================================================ */
.section--giftcards:has(.giftcard--rich) { background: var(--bg-2); }

/* left column reads as a normal dark content section, not a gradient band */
.section--giftcards:has(.giftcard--rich) .section__title { background: none; -webkit-background-clip: border-box; background-clip: border-box; color: var(--ink); -webkit-text-fill-color: var(--ink); }
.section--giftcards:has(.giftcard--rich) .section__title em { background: var(--lava); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
.section--giftcards:has(.giftcard--rich) .section__eyebrow { color: var(--red); }
.section--giftcards:has(.giftcard--rich) .section__intro { color: var(--muted); }

.giftcard--rich {
  text-align: left;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
  justify-items: stretch;
}
.giftcard--rich .giftcard__body { max-width: 46ch; }
.giftcard--rich .giftcard__intro { margin-bottom: 1.3rem; }

.giftcard__denoms { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.3rem 0; }
.giftcard__denom { font-family: var(--font-body); font-weight: 800; font-size: .9rem; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 999px; padding: .45rem 1.1rem; }

.giftcard--rich .giftcard__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1.4rem; }
.giftcard--rich .giftcard__cta { color: #fff; }
.giftcard--rich .giftcard__note { color: var(--muted); font-size: .9rem; }

/* the gradient card visual (right column) */
.giftcard__preview { display: flex; justify-content: center; }
.giftcard__card {
  width: 100%;
  max-width: 400px;
  aspect-ratio: 1.6 / 1;
  background: linear-gradient(135deg, var(--red) 0%, #E8511F 52%, var(--orange) 100%);
  border-radius: 18px;
  box-shadow: var(--shadow);
  padding: 1.4rem 1.6rem;
  display: flex;
  flex-direction: column;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.giftcard__card::after {
  content: "";
  position: absolute;
  right: -20%;
  top: -40%;
  width: 70%;
  height: 120%;
  background: radial-gradient(closest-side, rgba(255,255,255,.28), rgba(255,255,255,0));
  pointer-events: none;
}
.giftcard__card-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; position: relative; z-index: 1; }
.giftcard--rich .giftcard__logo { width: 48px; height: 48px; background: rgba(255,255,255,.92); border-radius: 10px; padding: .3rem; }
.giftcard__card-label { font-family: var(--font-head); text-transform: uppercase; letter-spacing: .12em; font-size: .85rem; color: #fff; }
.giftcard__card-amount { font-family: var(--font-head); font-weight: 400; font-size: clamp(3rem, 8vw, 4.6rem); line-height: 1; margin-top: auto; position: relative; z-index: 1; text-shadow: 0 2px 10px rgba(0,0,0,.22); }
.giftcard__card-foot { font-family: var(--font-body); font-weight: 700; font-size: .85rem; color: rgba(255,255,255,.95); margin-top: .35rem; position: relative; z-index: 1; }
.giftcard--rich .giftcard__name { font-family: var(--font-head); text-transform: uppercase; color: #fff; }

@media (max-width: 820px) {
  .giftcard--rich { grid-template-columns: 1fr; text-align: center; justify-items: center; }
  .giftcard--rich .giftcard__body { max-width: none; }
  .giftcard--rich .giftcard__denoms,
  .giftcard--rich .giftcard__actions { justify-content: center; }
  .giftcard__preview { order: -1; }
}

/* ============================================================
   LAVA — HEADER / STATS / MOBILE-NAV POLISH (appended last → wins cascade).
   1) Header: strike-style 2-row desktop grid (brand top-left, phone top-right,
      nav on its own row below, no wrapping) with the live open/closed status
      stacked ABOVE the center name — a single status, dropping the redundant
      top-right badge.
   2) Stats strip sits clearly IN FRONT of the dark hero it overlaps.
   3) Sticky header + mobile drawer use a SOLID on-brand lava token (--night).
      The header drops backdrop-filter, which otherwise makes it a containing
      block that clips the fixed full-height slide-in drawer to header height.
   ============================================================ */

/* --- (1) Header layout: strike-style two-row grid --- */
.brand__text { display: flex; flex-direction: column; gap: .1rem; line-height: 1.05; }
.header__utility { display: flex; align-items: center; gap: 1.1rem; }
.nav__head { display: none; }
.brand__status { display: inline-flex; margin: 0 0 .1rem; font-size: .78rem; }   /* hours status ABOVE the name */
.header__utility .hours-status--badge { display: none; }                          /* drop the redundant top-right badge */
.nav { flex-wrap: nowrap; }                                                       /* stop the nav wrapping to two lines */
@media (min-width: 1025px) {
  .header__inner { display: grid; grid-template-columns: auto 1fr; grid-template-areas: "brand utility" "brand nav"; column-gap: 1.5rem; row-gap: .55rem; align-items: center; }
  .brand { grid-area: brand; }
  .header__utility { grid-area: utility; justify-self: end; }
  .nav { grid-area: nav; justify-self: end; margin: 0; }
}

/* --- (3) Solid on-brand sticky header. No backdrop-filter: it makes the header
   a containing block for the fixed drawer + overlay, clipping the slide-in
   menu to header height. Solid white surface reads opaque on the light page. --- */
.section--header,
.section--header:nth-of-type(even) {
  background: var(--surface);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  border-bottom: 1px solid var(--line);
}

/* --- (2) Stats strip must paint IN FRONT of the hero it overlaps (-3.5rem pull).
   The section gets its own stacking context above the hero (hero z-index: auto);
   the card keeps its higher z within it. --- */
.section--stats { position: relative; z-index: 3; }
.section--stats .stats__grid { position: relative; z-index: 6; }

/* --- (3) Mobile drawer + overlay: solid on-brand background, fully opaque. --- */
@media (max-width: 1024px) {
  .section--header .nav { background: var(--surface); }
}

/* ============================================================
   LAVA-LIGHT — HERO: DARK SET PIECE (designer revision, proof match).
   The hero is the page's ONE dark moment on the otherwise light theme:
   full-bleed photo under a dark left-weighted scrim, white headline with
   the lava-gradient accent word, dark pill eyebrow with a gold dot,
   gradient/ghost pill CTAs, and the live status + Google rating sharing
   one row BELOW the CTAs (blade order is rating→CTA→status; reordered
   here with grid `order` only — no markup changes). Appended last so it
   wins the cascade over the earlier cream-scrim hero rules. HERO ONLY —
   header, stats card, and every other section keep their light styling
   (the stats card only gains the proof's gradient 3rd value).
   ============================================================ */

/* Dark ground even before the photo paints (and if a center has no photo). */
.section--hero,
.section--hero:nth-of-type(even) { background: #17130F; }

/* Scrim: strong dark at the left/text side → nearly clear photo at right. */
.section--hero::before { background: linear-gradient(90deg, rgba(12,9,7,.86) 0%, rgba(12,9,7,.62) 45%, rgba(12,9,7,.08) 100%); }
/* Narrow screens: copy spans the full width → near-uniform dark wash. */
@media (max-width: 900px) { .section--hero::before { background: linear-gradient(180deg, rgba(12,9,7,.82) 0%, rgba(12,9,7,.68) 60%, rgba(12,9,7,.5) 100%); } }

/* --- Visual reorder: eyebrow / title / sub / CTAs, then status + rating on
   ONE shared row. Grid auto-placement honors `order`; the full-width items
   span both columns, the status (col 1) and rating (col 2) land side by
   side on the final row. Missing items (no eyebrow / empty status) simply
   free their slot — nothing breaks. --- */
.section--hero .hero__inner {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  justify-items: start;
  align-items: center;
  column-gap: 1.4rem;
}
.section--hero .hero__eyebrow,
.section--hero .hero__title,
.section--hero .hero__sub,
.section--hero .hero__cta { grid-column: 1 / -1; }
.section--hero .hero__eyebrow { order: 1; }
.section--hero .hero__title { order: 2; }
.section--hero .hero__sub { order: 3; }
.section--hero .hero__cta { order: 4; }
.section--hero .hours-status { order: 5; }   /* status first… */
.section--hero .hero__rating { order: 6; }   /* …then rating, same row */

/* Eyebrow → translucent DARK capsule, gold dot, white tracked caps. */
.section--hero .hero__eyebrow {
  color: #fff;
  background: rgba(12,10,9,.45);
  border: 1px solid rgba(255,255,255,.18);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.section--hero .hero__eyebrow::before { background: var(--gold); box-shadow: 0 0 10px rgba(255,210,26,.6); }

/* Headline → white on the dark scrim (dark glow replaces the cream one);
   the accent em keeps the lava gradient fill, exact proof stops. */
.section--hero .hero__title {
  color: #fff;
  -webkit-text-fill-color: #fff;
  text-shadow: 0 2px 26px rgba(0,0,0,.45);
}
.section--hero .hero__title em {
  background: linear-gradient(90deg, #E23A22 0%, #F2913C 55%, #F5B301 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  text-shadow: none;
}

/* Sub → light body copy, comfortable measure (46ch cap already set). */
.section--hero .hero__sub { color: rgba(255,255,255,.88); }

/* CTAs → fully-rounded pills (hero only): lava-gradient primary with a warm
   glow; ghost secondary as a translucent dark pill with a light border. */
.section--hero .btn { border-radius: 999px; }
.section--hero .btn--primary {
  background: linear-gradient(100deg, #E23A22 0%, #F2913C 100%);
  color: #fff;
  box-shadow: 0 12px 30px rgba(226,58,34,.4);
}
.section--hero .btn--primary:hover { box-shadow: 0 16px 38px rgba(226,58,34,.5); }
.section--hero .btn--ghost {
  background: rgba(12,10,9,.42);
  border: 1.5px solid rgba(255,255,255,.35);
  color: #fff;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.section--hero .btn--ghost:hover { background: rgba(12,10,9,.62); color: #fff; border-color: rgba(255,255,255,.55); }

/* Status + rating row (below the CTAs): white live status with its green
   dot, then the rating in gold with a leading gold star (the summary text
   carries no star of its own). */
.section--hero .hours-status { color: #fff; margin: 1.4rem 0 0; }
.section--hero .hours-status::before { background: rgba(255,255,255,.4); }
.section--hero .hours-status.is-open::before { background: #1F9D57; box-shadow: 0 0 0 3px rgba(31,157,87,.35); }
.section--hero .hours-status.is-closed::before { background: var(--red); }
.section--hero .hero__rating { color: var(--gold); font-weight: 800; margin: 1.4rem 0 0; }
.section--hero .hero__rating::before { content: "★ "; }
/* Tight screens: stack the pair (status first) instead of squeezing the row. */
@media (max-width: 700px) {
  .section--hero .hours-status,
  .section--hero .hero__rating { grid-column: 1 / -1; }
  .section--hero .hero__rating { margin-top: .6rem; }
}

/* Stats card (proof delta only): the 3rd value gets the lava gradient fill,
   like the proof's "300". Card, dividers, ink numbers, labels unchanged. */
.section--stats .stat:nth-child(3) .stat__value {
  background: linear-gradient(90deg, #E23A22 0%, #F2913C 55%, #F5B301 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

/* Bigger brand logo (operator request 2026-07-02) — the 2-row header grid gives
   the brand column status+name+city of height, so the mark can fill it. */
.brand__logo { width: 56px; height: 56px; }
@media (min-width: 1025px) { .section--header .brand__logo { width: 68px; height: 68px; } }
@media (max-width: 700px) { .brand__logo { width: 42px; height: 42px; } }

/* Hero copy hugs the container LEFT (operator request 2026-07-02): the 660px cap on
   .hero__inner made the hero grid shrinkwrap + center the whole cluster; widen the
   inner to the container and cap its children instead. */
.hero__inner { max-width: var(--maxw); width: 100%; }
.hero__inner > * { max-width: 660px; }

/* Drawer consistency (operator fix 2026-07-02, ported from starlite): the legacy
   .nav__link:last-child CTA rule (pre .nav__link--cta) hits whatever lands last in
   the "And More" dropdown (e.g. GALLERY) — neutralize it there; the real CTA pill
   is .nav__link--cta (FIND US). */
.nav__more-menu .nav__link:last-child { background: none; border: 0; border-radius: 0; padding: .55rem .65rem; color: var(--ink); font-weight: 700; }
@media (max-width: 1024px) {
  .section--header .nav__more-menu .nav__link:last-child { margin-top: 0; text-align: left; padding: .75rem 0; }
}

/* Powered-by line centers across the WHOLE page (it no longer sits in a .container). */
.footer__powered { width: 100%; padding: 0 1.5rem; }

/* Overflow mini-cards — capped sections surface extras instead of dropping them (brzportal#45/#48). */
.overflow-cards { list-style: none; padding: 0; margin: 1.6rem 0 0; display: grid; gap: 1rem; }
.overflow-cards--4up, .overflow-cards--6up { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 640px) { .overflow-cards--4up { grid-template-columns: repeat(4, 1fr); } .overflow-cards--6up { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1000px) { .overflow-cards--6up { grid-template-columns: repeat(6, 1fr); } }
.overflow-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: .85rem 1rem; }
.overflow-card__title { font-family: var(--font-head); color: var(--ink); font-size: .92rem; line-height: 1.2; margin: 0 0 .35rem; text-transform: uppercase; letter-spacing: .02em; }
.overflow-card__desc { color: var(--muted); font-size: .82rem; line-height: 1.45; margin: 0; }
.overflow-note { margin: 1.1rem 0 0; color: var(--gold-text); font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.parties-feature__more { margin: 1.8rem 0 0; padding-top: 1.4rem; border-top: 1px solid var(--line); }
.parties-feature__more-label { margin: 0 0 .6rem; color: var(--muted); font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }

/* ---- More party packages: full descriptions, taller cards, two-row scroll (brzportal#61) ---- */
.parties-more-scroll { position: relative; min-width: 0; }
.parties-more-cards { max-height: 30rem; overflow-y: auto; overscroll-behavior: contain; padding-right: .35rem; align-content: start; }
.parties-more-cards .overflow-card { padding: 1.1rem 1.25rem; }
.parties-more-cards .overflow-card__desc { display: block; overflow: visible; text-overflow: clip; -webkit-line-clamp: none; }

/* Owner-chosen badge size (brzportal#67). A scale factor, not pixels — each skin keeps its own
   type scale and the badge stays inside the design instead of being set to something that
   breaks the photo composition. Medium is the theme's own size. */
.parties-feature__price--small { --badge-scale: .78; }
.parties-feature__price--large { --badge-scale: 1.34; }
