:root {
    --color-accent: #FF4201;
    --color-bg: #FFFFFF;
    --color-black: #0D0D0D;
    --color-white: #FFFFFF;
    --color-muted: #888888;
    --color-border: #0D0D0D;
    --font-display: 'din-2014-narrow', sans-serif;
    --font-body: 'din-2014', sans-serif;
    --font-mono: 'din-2014-narrow', sans-serif;
    --shadow-hard: none;
    --border-heavy: 2px solid var(--color-border);
    --container: min(1440px, calc(100vw - 2rem));
    /* header height — used for hero sizing */
    --header-h: 4rem;
    /* container bal margója — hero + editorial blast hasábokhoz */
    --col-meta: calc((100vw - var(--container)) / 2);
}

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

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--color-white);
    color: var(--color-black);
    font-family: var(--font-body);
    line-height: 1.5;
    min-height: 100vh;
}

body::before {
    display: none;
}

main[data-app-viewport] {
    position: relative;
    background: var(--color-bg);
}

body.is-easter {
    background:
        linear-gradient(90deg, transparent 0, transparent calc(100% - 64px), rgba(255, 255, 255, 0.08) calc(100% - 64px)),
        var(--color-black);
    color: var(--color-white);
}

body.is-easter .panel,
body.is-easter .feature-card,
body.is-easter .content-card,
body.is-easter .contact-card,
body.is-easter .embed-card,
body.is-easter .counter-box,
body.is-easter .program-item,
body.is-easter .rules-section,
body.is-easter .gallery-empty,
body.is-easter .event-card,
body.is-easter .media-frame--placeholder,
body.is-easter .program-empty,
body.is-easter .today-program-card,
body.is-easter .today-program-strip__label,
body.is-easter .hero__statement {
    background: #161616;
    color: var(--color-white);
}

body.is-easter .section-divider hr,
body.is-easter .drink-item__dots {
    background: var(--color-white);
    border-color: var(--color-white);
}

body.is-easter .drink-category,
body.is-easter .drink-item,
body.is-easter .site-footer__socials a,
body.is-easter .social-inline a {
    border-color: var(--color-white);
}

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

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
textarea,
select {
    font: inherit;
}

button {
    cursor: pointer;
}

.container {
    width: var(--container);
    margin: 0 auto;
}

.site-main > section,
.site-main > article,
.page-shell {
    padding: 2rem 0 4rem;
}

/* Hero — nincs section padding */
.site-main > .hero--poster {
    padding: 0;
}

.page-shell {
    background: var(--color-white);
}

.eyebrow,
.mono-label {
    font-family: var(--font-mono);
    font-size: 0.85rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.section-title,
.page-title,
.hero__title,
.feature-card h2,
.program-item__title,
.drink-category__title,
.counter-box__value,
.rules-section h2,
.contact-hours h2 {
    font-family: var(--font-display);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 0.95;
    text-transform: uppercase;
}

.page-title {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 0 0 1rem;
    font-size: clamp(3rem, 8vw, 7rem);
}

.page-title img,
.section-head__icon {
    width: 3rem;
    height: 3rem;
    object-fit: contain;
}

.button,
.hero__cta,
.filter-chip,
.admin-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    padding: 0.95rem 1.25rem;
    border: var(--border-heavy);
    background: var(--color-accent);
    color: var(--color-white);
    box-shadow: var(--shadow-hard);
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    transition: background 0.18s ease, color 0.18s ease, transform 0.18s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.18s ease;
}

.button:hover,
.hero__cta:hover,
.filter-chip:hover,
.admin-link:hover,
.button:focus-visible,
.hero__cta:focus-visible,
.filter-chip:focus-visible,
.admin-link:focus-visible {
    background: var(--color-black);
    color: var(--color-white);
    transform: translate(-3px, -3px);
    box-shadow: 7px 7px 0 var(--color-accent);
}

.section-divider {
    width: 100%;
    margin: 0;
    padding: 0.8rem 0;
    background: var(--color-black);
    border-top: var(--border-heavy);
    border-bottom: var(--border-heavy);
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 8;
}

.section-divider hr {
    display: none;
}

.divider-icon {
    width: 2rem;
    padding: 0;
    background: transparent;
    box-shadow: none;
    filter: brightness(0) invert(1);
    opacity: 0.8;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    height: auto;
    display: flex;
    align-items: center;
    transition: box-shadow 0.3s ease;
}

.nav {
    width: 100%;
    background: var(--color-accent);
    color: var(--color-white);
}

.nav__inner.container {
    width: var(--container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: stretch;
    gap: 0;
    padding: 0;
}

.nav__logo {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 3.25rem;
    min-width: fit-content;
    padding: 0 1.25rem;
    background: var(--color-accent);
    border-right: var(--border-heavy);
}

.nav__logo-img {
    height: 1.35rem;
    width: auto;
    display: block;
    filter: brightness(0) invert(1);
}

.nav__flag {
    width: 2rem;
    filter: brightness(0) invert(1);
}

.nav__name {
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 900;
    letter-spacing: -0.02em;
}

.nav__menu {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.nav__menu li.nav__menu-meta {
    display: none;
}

.nav__menu a {
    display: inline-flex;
    align-items: center;
    min-height: 3.25rem;
    padding: 0 1.1rem;
    font-family: var(--font-display);
    font-weight: 700;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    color: var(--color-white);
    white-space: nowrap;
}

.nav__menu a:hover,
.nav__menu a:focus-visible {
    color: var(--color-accent);
    background: var(--color-white);
}

.nav__menu a.is-active {
    background: var(--color-white);
    color: var(--color-accent);
}

.nav__lang {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-height: 3.25rem;
    gap: 0;
    padding: 0 1rem;
    font-family: var(--font-display);
    font-weight: 700;
    border-left: var(--border-heavy);
    white-space: nowrap;
}

.nav__lang-link {
    color: inherit;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 3.25rem;
    padding: 0;
    opacity: 1;
    transition: opacity 160ms ease, box-shadow 160ms ease;
}

.nav__lang-link:hover,
.nav__lang-link:focus-visible {
    text-decoration: none;
    opacity: 1;
    box-shadow: inset 0 -2px 0 rgba(255, 255, 255, 0.9);
}

.nav__lang-link:focus-visible {
    outline: none;
    box-shadow:
        inset 0 -2px 0 rgba(255, 255, 255, 0.9),
        inset 0 0 0 1px rgba(255, 255, 255, 0.35);
}

.nav__lang-link.is-active,
.nav__lang-link[aria-current="true"] {
    opacity: 0.45;
    box-shadow: none;
    pointer-events: none;
}

.nav__lang-link.is-active:hover,
.nav__lang-link.is-active:focus-visible,
.nav__lang-link[aria-current="true"]:hover,
.nav__lang-link[aria-current="true"]:focus-visible {
    opacity: 0.45;
    box-shadow: none;
}

.nav__lang-separator {
    display: inline-flex;
    align-items: center;
    margin: 0 0.45rem;
    opacity: 0.32;
}

.nav__burger {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 42px;
    height: 42px;
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    color: inherit;
    z-index: 1001;
    position: relative;
}

.nav__burger-bar {
    display: block;
    width: 22px;
    height: 2px;
    background: currentColor;
    border-radius: 1px;
    transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1),
                opacity 0.2s ease,
                width 0.3s ease;
    transform-origin: center;
}

.nav__burger[aria-expanded="true"] .nav__burger-bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.nav__burger[aria-expanded="true"] .nav__burger-bar:nth-child(2) {
    opacity: 0;
    width: 0;
}

.nav__burger[aria-expanded="true"] .nav__burger-bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.hero {
    position: relative;
    display: grid;
    align-items: end;
    overflow: hidden;
    background: var(--color-black);
    color: var(--color-white);
}

.hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(0deg, rgba(13, 13, 13, 0.25), rgba(13, 13, 13, 0.25)),
        url('/assets/icons/zaszlo.svg') right 5vw center / min(40vw, 24rem) no-repeat;
    opacity: 0.08;
    pointer-events: none;
}

.hero--pontoon {
    padding-top: 1rem;
}

.hero__shell {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 18rem;
    gap: 1rem;
    width: var(--container);
    margin: 0 auto;
}

.hero__media,
.home-story__poster,
.home-slices__image {
    position: relative;
    margin: 0;
    overflow: hidden;
    border: var(--border-heavy);
    box-shadow: var(--shadow-hard);
    background: var(--color-black);
}

.hero__media img,
.home-story__poster img,
.home-slices__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero__media--main {
    min-height: 34rem;
}

.hero__media--main::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.68)),
        linear-gradient(90deg, rgba(255, 66, 3, 0.16), transparent 18%, transparent 82%, rgba(255, 66, 3, 0.16));
}

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

.hero__media--side {
    min-height: 14rem;
}

.hero__media figcaption,
.home-story__poster figcaption,
.home-slices__image figcaption {
    position: absolute;
    left: 1rem;
    bottom: 1rem;
    padding: 0.45rem 0.65rem;
    border: var(--border-heavy);
    background: var(--color-accent);
    color: var(--color-white);
    box-shadow: var(--shadow-hard);
    font-family: var(--font-mono);
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    z-index: 2;
}

.hero__media--night::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 30%, rgba(0, 0, 0, 0.58));
}

.hero__poster {
    position: absolute;
    left: clamp(1rem, 4vw, 3rem);
    bottom: clamp(1rem, 4vw, 3rem);
    z-index: 3;
    display: grid;
    gap: 1.2rem;
    width: min(44rem, calc(100% - 8rem));
    padding: clamp(1.4rem, 3vw, 2.3rem);
    border: var(--border-heavy);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0)),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.18'/%3E%3C/svg%3E"),
        rgba(255, 66, 3, 0.96);
    color: var(--color-white);
    box-shadow: 8px 8px 0 rgba(13, 13, 13, 0.9);
}

.hero__poster-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.hero__poster-flag {
    width: 4rem;
    filter: brightness(0) invert(1);
}

.hero__poster-code {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.hero__poster-body {
    display: grid;
    gap: 0.75rem;
}

.hero__poster-copy {
    max-width: 28rem;
    margin: 0;
    font-size: 1.08rem;
    line-height: 1.35;
}

.hero__poster .hero__kicker,
.hero__poster .hero__subtitle {
    color: rgba(255, 255, 255, 0.85);
}

.hero__poster-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
}

.hero__poster .hero__cta {
    background: var(--color-black);
}

.hero__poster .hero__cta:hover,
.hero__poster .hero__cta:focus-visible {
    background: var(--color-white);
    color: var(--color-black);
}

.hero__ghost-link {
    display: inline-flex;
    align-items: center;
    padding: 0.85rem 1rem;
    border: var(--border-heavy);
    background: rgba(13, 13, 13, 0.8);
    box-shadow: var(--shadow-hard);
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
}

.hero__ghost-link:hover,
.hero__ghost-link:focus-visible {
    background: var(--color-white);
    color: var(--color-black);
}

.hero__wordmark {
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 0.5rem;
    z-index: 1;
    font-family: var(--font-display);
    font-size: clamp(5rem, 18vw, 15rem);
    font-weight: 700;
    letter-spacing: -0.08em;
    line-height: 0.8;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.16);
    pointer-events: none;
}

.hero__rail {
    display: grid;
    gap: 0.9rem;
    width: var(--container);
    margin: 1rem auto 0;
}

.hero__rail-label {
    color: rgba(255, 255, 255, 0.72);
    font-family: var(--font-mono);
    font-size: 0.82rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.hero__inner {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 2rem;
    width: var(--container);
    margin: 0 auto;
    padding: 4rem 0;
}

.hero__flag {
    width: clamp(5rem, 10vw, 7rem);
}

.hero__kicker {
    font-family: var(--font-mono);
    color: var(--color-accent);
    text-transform: uppercase;
}

.hero__title {
    margin: 0;
    font-size: clamp(5rem, 15vw, 12rem);
}

.hero__subtitle {
    color: rgba(255, 255, 255, 0.75);
    font-family: var(--font-body);
    font-size: 0.9rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.hero__ticker {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1.25rem;
}

.hero__ticker span {
    display: inline-flex;
    padding: 0.45rem 0.7rem;
    border: var(--border-heavy);
    background: rgba(255, 255, 255, 0.06);
    font-family: var(--font-mono);
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.hero__statement {
    position: relative;
    display: grid;
    align-content: space-between;
    min-height: 18rem;
    background: var(--color-black);
    color: var(--color-white);
}

.hero__lead {
    max-width: 28rem;
    margin: 0;
    font-size: clamp(1.05rem, 2vw, 1.35rem);
    line-height: 1.35;
}

.section-band {
    position: relative;
    border-top: var(--border-heavy);
    border-bottom: var(--border-heavy);
}

.section-band--light {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.46), rgba(255, 255, 255, 0.46)),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");
}

.section-band--dark {
    background:
        linear-gradient(180deg, rgba(13, 13, 13, 0.96), rgba(13, 13, 13, 0.96)),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.1'/%3E%3C/svg%3E");
    color: var(--color-white);
}

.section-band--accent {
    background:
        linear-gradient(180deg, rgba(255, 66, 3, 0.96), rgba(255, 66, 3, 0.96)),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");
    color: var(--color-white);
}

.panel--dark {
    background: rgba(255, 255, 255, 0.04);
    color: var(--color-white);
}

.panel--contrast {
    background: rgba(13, 13, 13, 0.9);
    color: var(--color-white);
}

.feature-grid,
.contact-grid,
.membership-grid,
.content-grid {
    display: grid;
    gap: 1.5rem;
    width: var(--container);
    margin: 0 auto;
}

.panel,
.feature-card,
.content-card,
.contact-card,
.embed-card,
.counter-box,
.program-item,
.rules-section,
.gallery-empty {
    border: var(--border-heavy);
    box-shadow: var(--shadow-hard);
    background: var(--color-white);
}

.panel {
    padding: 1.5rem;
}

.panel--accent,
.contact-hours,
.membership-hero {
    background: var(--color-accent);
    color: var(--color-white);
}

.panel h2,
.panel h3,
.feature-card h2,
.content-card h2,
.contact-card h2 {
    margin: 0 0 0.75rem;
}

.feature-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.feature-grid--offset {
    transform: translateY(-1rem);
}

.feature-card {
    display: grid;
    gap: 0.6rem;
    padding: 1.5rem;
    transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.feature-card:hover {
    transform: translate(-4px, -4px) rotate(-0.6deg);
    box-shadow: 10px 10px 0 var(--color-black);
}

.feature-card__icon {
    width: 4rem;
    height: 4rem;
    object-fit: contain;
    margin-bottom: 0.4rem;
}

.feature-card__accent {
    width: 4rem;
    height: 0.8rem;
    border: var(--border-heavy);
    background: var(--color-accent);
    box-shadow: var(--shadow-hard);
}

/* ── Feature card header row (number + icon) ── */
.feature-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 0.25rem;
}

.feature-card__num {
    font-family: var(--font-display);
    font-size: clamp(2rem, 3.5vw, 3.5rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1;
    color: var(--color-accent);
    user-select: none;
}

/* ── Dark variant for feature cards (in dark section) ── */
.feature-card--dark {
    background: transparent;
    border-color: rgba(255, 255, 255, 0.14);
    box-shadow: none;
    color: var(--color-white);
}

.feature-card--dark:hover {
    border-color: var(--color-accent);
    box-shadow: 8px 8px 0 var(--color-accent);
    transform: translate(-4px, -4px) rotate(-0.6deg);
}

.feature-card--dark .feature-card__icon {
    filter: brightness(0) invert(1);
    opacity: 0.85;
}

.feature-card--dark h3 {
    color: var(--color-white);
}

.feature-card--dark p {
    color: rgba(255, 255, 255, 0.55);
}


.feature-card p,
.panel p,
.content-card p,
.contact-card p,
.rules-section p,
.rules-section li {
    font-size: 1rem;
}

.home-story {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 22rem);
    gap: 1rem;
    width: var(--container);
    margin: 0 auto;
}

.home-story__copy {
    grid-row: span 2;
}

.home-story__poster {
    min-height: 22rem;
}

.home-story__card {
    display: grid;
    gap: 0.75rem;
    align-content: start;
    padding: 1.5rem;
    border: var(--border-heavy);
    background: rgba(255, 66, 3, 0.96);
    color: var(--color-white);
    box-shadow: var(--shadow-hard);
}

.home-story__flag {
    width: 3rem;
    filter: brightness(0) invert(1);
}

.home-slices {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 22rem) minmax(15rem, 18rem);
    gap: 1rem;
    width: var(--container);
    margin: 0 auto;
}

.home-slices__image {
    min-height: 100%;
}

.home-slices__stack {
    display: grid;
    gap: 1rem;
}

.split-highlight {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 20rem;
    gap: 1.5rem;
    width: var(--container);
    margin: 0 auto;
}

.split-highlight--home {
    grid-template-columns: minmax(0, 1.2fr) 18rem;
}

.stack {
    display: grid;
    gap: 1rem;
}

.home-editorial {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 24rem);
    gap: 1.5rem;
    width: var(--container);
    margin: 0 auto;
}

.home-editorial__copy {
    min-height: 100%;
}

.home-editorial__stack {
    display: grid;
    gap: 1rem;
}

.home-poster {
    position: relative;
    margin: 0;
    overflow: hidden;
    border: var(--border-heavy);
    box-shadow: var(--shadow-hard);
    background: var(--color-black);
}

.home-poster img {
    width: 100%;
    height: 100%;
    min-height: 23rem;
    object-fit: cover;
}

.home-poster figcaption {
    position: absolute;
    left: 1rem;
    bottom: 1rem;
    max-width: 10ch;
    font-family: var(--font-display);
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 900;
    line-height: 0.9;
    text-transform: uppercase;
    color: var(--color-white);
}

.home-poster--orange::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255, 66, 3, 0.18), rgba(255, 66, 3, 0.42));
}

.section-head {
    display: grid;
    gap: 1rem;
    width: var(--container);
    margin: 0 auto 2rem;
}

.section-head p {
    max-width: 40rem;
    margin: 0;
}

.program-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    width: var(--container);
    margin: 0 auto 1.5rem;
}

.today-program-strip {
    display: grid;
    grid-template-columns: minmax(16rem, 20rem) 1fr;
    gap: 1rem;
    width: var(--container);
    margin: 0 auto 1.5rem;
}

.today-program-strip__label,
.today-program-card {
    border: var(--border-heavy);
    box-shadow: var(--shadow-hard);
}

.today-program-strip__label {
    display: grid;
    gap: 0.75rem;
    align-content: start;
    padding: 1.25rem;
    background: var(--color-black);
    color: var(--color-white);
    border-top: 4px solid var(--color-accent);
}

.today-program-strip__label strong {
    font-family: var(--font-display);
    font-size: clamp(2rem, 6vw, 3.4rem);
    font-weight: 900;
    line-height: 0.9;
    text-transform: uppercase;
}

.today-program-strip__note {
    color: rgba(255, 255, 255, 0.7);
    font-family: var(--font-mono);
    font-size: 0.76rem;
    letter-spacing: 0.03em;
}

.today-program-strip__list {
    display: grid;
    gap: 1rem;
}

.today-program-card {
    display: grid;
    gap: 0.85rem;
    padding: 1.25rem;
    background: var(--color-accent);
    color: var(--color-white);
}

.today-program-card h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(2rem, 5vw, 3.6rem);
    font-weight: 900;
    line-height: 0.9;
    text-transform: uppercase;
}

.today-program-card .button {
    width: fit-content;
    background: var(--color-white);
    color: var(--color-black);
}

.filter-chip {
    min-width: 0;
    padding: 0.75rem 1rem;
    background: var(--color-white);
    color: var(--color-black);
}

.filter-chip.is-active {
    background: var(--color-accent);
    color: var(--color-white);
}

.program-list {
    display: grid;
    width: var(--container);
    margin: 0 auto;
    gap: 1rem;
}

.program-item {
    display: grid;
    grid-template-columns: minmax(10rem, 14rem) minmax(12rem, 16rem) 1fr;
    gap: 0;
    background: var(--color-white);
    border: var(--border-heavy);
    border-left: 4px solid var(--color-accent);
    box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.08);
    transition: transform 200ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 200ms ease;
}

.program-item:hover {
    transform: translate(-3px, -3px);
    box-shadow: 7px 7px 0 var(--color-accent);
}

.program-item__dateblock {
    display: grid;
    align-content: start;
    padding: 1.5rem 1.25rem;
    border-right: var(--border-heavy);
    background: var(--color-black);
    color: var(--color-white);
}

.program-item__content {
    display: grid;
    align-content: start;
    padding: 1.5rem 1.75rem;
    gap: 0.75rem;
}

.program-item__date {
    color: var(--color-accent);
    font-family: var(--font-mono);
    font-size: clamp(1.2rem, 2vw, 1.6rem);
    font-weight: 700;
}

.program-item__time {
    font-family: var(--font-mono);
    color: var(--color-muted);
}

.program-item__venue {
    margin-top: 0.85rem;
    font-family: var(--font-mono);
    font-size: 0.85rem;
    text-transform: uppercase;
}

.program-item__title {
    margin: 0 0 0.4rem;
    font-size: clamp(2rem, 5vw, 3.75rem);
}

.program-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}

.program-item__actions {
    margin-top: 1.25rem;
}

.program-featured,
.event-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
    gap: 1.5rem;
    width: var(--container);
    margin: 0 auto 2rem;
}

.event-card {
    display: grid;
    gap: 0;
    border: var(--border-heavy);
    border-top: 4px solid var(--color-accent);
    box-shadow: var(--shadow-hard);
    background: var(--color-white);
    transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.event-card:hover {
    transform: translate(-4px, -4px);
    box-shadow: 10px 10px 0 var(--color-black);
}

.event-card__body {
    display: grid;
    gap: 0.9rem;
    padding: 1.25rem;
}

.event-card__meta,
.event-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    color: var(--color-accent);
    font-family: var(--font-mono);
    font-size: 0.85rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.event-card__body h2,
.event-card__body h3 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 900;
    line-height: 0.95;
    text-transform: uppercase;
}

.event-card--featured .event-card__body {
    background: rgba(255, 66, 3, 0.06);
}

.media-frame {
    position: relative;
    min-height: 16rem;
    overflow: hidden;
    border-bottom: var(--border-heavy);
    background: var(--color-black);
}

.media-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 16 / 9;
}

.media-frame--placeholder {
    display: grid;
    align-content: end;
    gap: 0.65rem;
    padding: 1.25rem;
    color: var(--color-white);
    background:
        linear-gradient(135deg, transparent 0 40%, rgba(255, 66, 3, 0.9) 40% 42%, transparent 42% 100%),
        repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.06) 0 2px, transparent 2px 32px),
        var(--color-black);
}

.media-frame__eyebrow,
.media-frame__note {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.media-frame__title {
    max-width: 12ch;
    font-family: var(--font-display);
    font-size: clamp(2.25rem, 5vw, 4rem);
    font-weight: 900;
    line-height: 0.92;
    text-transform: uppercase;
}

.media-frame--hero {
    min-height: 14rem;
    width: min(100%, 22rem);
    border: var(--border-heavy);
    box-shadow: var(--shadow-hard);
}

.media-frame--compact {
    min-height: 100%;
    border: var(--border-heavy);
}

.media-frame--compact img {
    aspect-ratio: 4 / 5;
}

.event-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(22rem, 34rem);
    gap: 2rem;
    width: var(--container);
    margin: 0 auto;
}

.page-title--stacked {
    display: block;
    font-size: clamp(3.5rem, 9vw, 8rem);
}

.event-hero__copy {
    display: grid;
    align-content: start;
    gap: 1rem;
}

.event-hero__lead {
    max-width: 42rem;
    font-size: clamp(1.05rem, 2vw, 1.3rem);
}

.event-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem);
    gap: 1.5rem;
    width: var(--container);
    margin: 0 auto;
}

.event-body {
    padding: 1.5rem;
}

.event-body p {
    margin: 0 0 1rem;
    max-width: 54rem;
}

.event-sidecard {
    position: relative;
}

.event-sidecard__flag {
    width: 3rem;
    margin-bottom: 1rem;
    filter: brightness(0) invert(1);
}

.tag-pill {
    display: inline-flex;
    padding: 0.35rem 0.6rem;
    border: var(--border-heavy);
    background: var(--color-accent);
    color: var(--color-white);
    font-family: var(--font-mono);
    font-size: 0.8rem;
    text-transform: uppercase;
}

.tag-pill--muted {
    background: transparent;
    color: var(--color-muted);
    border-color: rgba(0, 0, 0, 0.2);
}

/* ─────────────────────────────────────────────
   PROGRAM PAGE — dark section event card overrides
   ───────────────────────────────────────────── */
.section-band--dark .event-card {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.15);
    box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.5);
}

.section-band--dark .event-card__body h2,
.section-band--dark .event-card__body h3 {
    color: var(--color-white);
}

.section-band--dark .event-card__body p {
    color: rgba(255, 255, 255, 0.6);
}

.section-band--dark .media-frame {
    border-color: rgba(255, 255, 255, 0.15);
}

/* Editorial featured: horizontal 2-col */
.event-card--editorial {
    grid-template-columns: 1.4fr 1fr;
}

.event-card--editorial .media-frame {
    border-bottom: none;
    border-right: var(--border-heavy);
    min-height: 22rem;
}

.event-card--editorial .media-frame img {
    aspect-ratio: 16 / 9;
    object-position: center;
}

.event-card--editorial .event-card__body {
    padding: 2.5rem;
    align-content: center;
    gap: 1.25rem;
}

.event-card--editorial .event-card__body h2 {
    font-size: clamp(3rem, 6vw, 5.5rem);
    line-height: 0.88;
}

@media (max-width: 760px) {
    .event-card--editorial {
        grid-template-columns: 1fr;
    }

    .event-card--editorial .media-frame {
        border-right: none;
        border-bottom: var(--border-heavy);
        min-height: 16rem;
    }
}

/* Today program header (accent szekcióban) */
.today-program-header {
    display: flex;
    align-items: baseline;
    gap: 1.5rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
    padding-bottom: 1.25rem;
    border-bottom: 2px solid rgba(0, 0, 0, 0.2);
}

.today-program-header__date {
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 4vw, 2.5rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    color: var(--color-black);
}

.today-program-header__note {
    font-family: var(--font-mono);
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(0, 0, 0, 0.5);
}

/* Accent szekcióban a today-program-card */
.section-band--accent .today-program-card {
    background: rgba(0, 0, 0, 0.12);
    border-color: rgba(0, 0, 0, 0.2);
}

.section-band--accent .today-program-card h2,
.section-band--accent .today-program-card p {
    color: var(--color-white);
}

.section-band--accent .today-program-card .event-card__meta {
    color: rgba(0, 0, 0, 0.65);
}

/* Program list gap */
.program-list {
    display: grid;
    width: var(--container);
    margin: 0 auto;
    gap: 0;
}

.program-item + .program-item {
    border-top: none;
}

/* Program media col no extra border */
.program-item__media .media-frame {
    border: none;
    border-right: var(--border-heavy);
}

@media (max-width: 960px) {
    .program-item {
        grid-template-columns: minmax(8rem, 10rem) 1fr;
    }

    .program-item__media {
        display: none;
    }
}

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

    .program-item__dateblock {
        border-right: none;
        border-bottom: var(--border-heavy);
        border-bottom-color: rgba(255, 255, 255, 0.12);
        padding: 1rem 1.25rem;
    }
}

.program-empty {
    width: var(--container);
    margin: 0 auto;
    padding: 1.5rem;
    border: var(--border-heavy);
    background: var(--color-white);
}

.membership-hero {
    width: var(--container);
    margin: 0 auto 2rem;
    padding: 2rem;
    border: var(--border-heavy);
    box-shadow: var(--shadow-hard);
}

.membership-hero .page-title {
    color: var(--color-white);
}

.membership-grid {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    align-items: start;
}

.counter-box {
    position: relative;
    display: grid;
    gap: 1rem;
    padding: 2rem;
    background: var(--color-black);
    color: var(--color-white);
    border-top: 4px solid var(--color-accent);
}

.counter-box--soldout {
    background: var(--color-accent);
}

.counter-box__value {
    color: var(--color-accent);
    font-size: clamp(5rem, 15vw, 10rem);
}

.counter-box--soldout .counter-box__value,
.counter-box--soldout .counter-box__label {
    color: var(--color-white);
}

.counter-box__label {
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 4vw, 2.5rem);
    text-transform: uppercase;
}

.counter-box__flag {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 3rem;
    opacity: 0.35;
}

.counter-box__meta {
    font-family: var(--font-mono);
    color: rgba(255, 255, 255, 0.7);
}

.embed-card {
    padding: 1.5rem;
}

.embed-card iframe,
.embed-card form {
    width: 100%;
}

.embed-card input,
.embed-card textarea,
.embed-card select {
    width: 100%;
    padding: 0.85rem 1rem;
    border: var(--border-heavy);
    border-radius: 0;
    background: var(--color-white);
}

.embed-card input:focus,
.embed-card textarea:focus,
.embed-card select:focus {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

.embed-placeholder {
    padding: 2rem;
    border: var(--border-heavy);
    background: var(--color-bg);
    font-family: var(--font-mono);
    text-transform: uppercase;
}

.drink-list {
    display: grid;
    gap: 1.5rem;
    width: var(--container);
    margin: 0 auto;
}

.drink-category {
    border: var(--border-heavy);
    border-top: 4px solid var(--color-accent);
    box-shadow: var(--shadow-hard);
    background: var(--color-white);
}

.drink-category__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background: var(--color-accent);
    color: var(--color-white);
}

.drink-category__title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0;
    font-size: clamp(2rem, 4vw, 3rem);
}

.drink-category__title img {
    width: 2rem;
}

.drink-items {
    padding: 1rem 1.25rem 1.25rem;
}

.drink-item {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: baseline;
    gap: 0.75rem;
    padding: 0.8rem 0;
    border-bottom: 2px solid rgba(13, 13, 13, 0.12);
}

.drink-item:last-child {
    border-bottom: 0;
}

.drink-item__name {
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 800;
    text-transform: uppercase;
}

.drink-item__dots {
    border-bottom: 3px dotted var(--color-black);
    transform: translateY(-0.25rem);
}

.drink-item__price {
    color: var(--color-accent);
    font-family: var(--font-mono);
    font-weight: 700;
    white-space: nowrap;
}

.drink-item__description {
    grid-column: 1 / -1;
    color: var(--color-muted);
}

.gallery-grid {
    columns: 3 18rem;
    column-gap: 1rem;
    width: var(--container);
    margin: 0 auto;
}

.gallery-card {
    display: inline-block;
    width: 100%;
    margin: 0 0 1rem;
    border: var(--border-heavy);
    box-shadow: var(--shadow-hard);
    background: var(--color-white);
    overflow: hidden;
}

.gallery-card button {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
}

.gallery-card img {
    width: 100%;
    height: auto;
}

.gallery-empty {
    width: var(--container);
    margin: 0 auto;
    padding: 2rem;
}

.lightbox {
    position: fixed;
    inset: 0;
    z-index: 5000;
    display: none;
    place-items: center;
    padding: 1rem;
    background: rgba(13, 13, 13, 0.94);
}

.lightbox.is-open {
    display: grid;
}

.lightbox__content {
    position: relative;
    display: grid;
    grid-template-columns: auto auto auto;
    align-items: center;
    gap: 1rem;
    width: auto;
    max-width: calc(100vw - 2rem);
    padding-top: 4.5rem;
}

.lightbox__stage {
    grid-column: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
}

.lightbox__image {
    display: block;
    width: auto;
    max-width: min(72vw, 68rem);
    max-height: calc(100vh - 8rem);
    height: auto;
    border: var(--border-heavy);
    box-shadow: 8px 8px 0 var(--color-accent);
    object-fit: contain;
}

.lightbox__close,
.lightbox__nav {
    border: var(--border-heavy);
    background: var(--color-accent);
    color: var(--color-white);
    box-shadow: var(--shadow-hard);
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 800;
    text-transform: uppercase;
}

.lightbox__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    padding: 0.75rem 1rem;
    z-index: 2;
}

.lightbox__nav {
    position: static;
    min-width: 3.5rem;
    padding: 0.85rem 1rem;
}

.lightbox__nav--prev {
    grid-column: 1;
}

.lightbox__nav--next {
    grid-column: 3;
}

.rules-grid {
    display: grid;
    gap: 1.5rem;
    width: var(--container);
    margin: 0 auto;
}

.rules-section {
    padding: 1.5rem;
}

.rules-section ul {
    margin: 0;
    padding-left: 1.25rem;
}

.rules-section h2 {
    border-left: 4px solid var(--color-accent);
    padding-left: 0.75rem;
    margin-top: 0;
}

.contact-grid {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    align-items: start;
}

.contact-hours,
.contact-card {
    padding: 1.5rem;
    border: var(--border-heavy);
    box-shadow: var(--shadow-hard);
}

.contact-hours {
    border-top: 4px solid var(--color-black);
}

.contact-hours__flag {
    width: 3rem;
    margin-bottom: 1rem;
    filter: brightness(0) invert(1);
}

.contact-hours__value {
    font-family: var(--font-display);
    font-size: clamp(3rem, 8vw, 6rem);
    font-weight: 900;
    line-height: 0.95;
    text-transform: uppercase;
}

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

.social-inline {
    display: flex;
    gap: 0.75rem;
}

.social-inline a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border: var(--border-heavy);
    background: var(--color-accent);
    color: var(--color-white);
    box-shadow: var(--shadow-hard);
}

.social-inline svg,
.site-footer__socials svg {
    width: 1.2rem;
    height: 1.2rem;
    fill: currentColor;
}

.site-footer {
    position: relative;
    overflow: hidden;
    margin-top: 3rem;
    border-top: 4px solid var(--color-accent);
    background: var(--color-black);
    color: var(--color-white);
}

.site-footer__watermark {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    pointer-events: none;
}

.site-footer__watermark img {
    width: min(22rem, 50vw);
    opacity: 0.15;
    filter: brightness(0) invert(1);
}

.site-footer__content {
    --footer-pad: 1rem;
    --footer-logo-box: clamp(6.5rem, 8vw, 8rem);
    position: relative;
    z-index: 1;
    display: grid;
    gap: 0;
    padding: var(--footer-pad);
}

.site-footer__main {
    display: grid;
    grid-template-columns: var(--footer-logo-box) minmax(0, 1fr);
    align-items: start;
    gap: var(--footer-pad);
}

.site-footer__logo-button {
    display: grid;
    place-items: center;
    width: var(--footer-logo-box);
    height: var(--footer-logo-box);
    padding: 0;
    border: 0;
    background: transparent;
    justify-self: start;
    align-self: start;
}

.site-footer__logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

.site-footer__info {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: clamp(1rem, 2vw, 2.5rem);
    min-width: 0;
}

.site-footer__topline {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    flex: 0 1 28rem;
    min-height: var(--footer-logo-box);
    gap: 0.9rem;
}

.site-footer__grid {
    display: grid;
    gap: 0.08rem;
    align-content: start;
}

.site-footer__grid p {
    margin: 0;
    line-height: 1.25;
    font-family: var(--font-display);
    font-weight: 400;
    letter-spacing: -0.01em;
}

.site-footer__grid a {
    line-height: inherit;
    font-family: inherit;
    font-weight: inherit;
}

.site-footer__socials {
    display: flex;
    gap: 0.75rem;
    margin-top: auto;
}

.site-footer__socials a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 2px solid var(--color-white);
}

.site-footer__copyright {
    margin: 0;
    color: rgba(255, 255, 255, 0.7);
    font-family: var(--font-display);
    font-weight: 800;
    letter-spacing: -0.01em;
    text-align: left;
}

.site-footer__grid .site-footer__copyright {
    margin-top: 0.2rem;
}

.site-footer__meta {
    display: grid;
    width: min(100%, 33rem);
    justify-items: end;
    gap: 0.4rem;
    align-content: end;
    margin-left: auto;
}

.site-footer__newsletter {
    --footer-newsletter-line-width: min(100%, 27.5rem);
    display: grid;
    gap: 0.25rem;
    width: min(100%, 33rem);
    justify-items: end;
}

.site-footer__newsletter-label {
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
    font-family: var(--font-display);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-align: right;
}

.site-footer__newsletter-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.4rem;
    width: var(--footer-newsletter-line-width);
    justify-self: end;
}

.newsletter-consent {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1.125rem minmax(0, 1fr);
    align-items: flex-start;
    gap: 0.55rem;
    color: inherit;
    font-size: 0.82rem;
    line-height: 1.45;
}

.newsletter-consent__input {
    appearance: none;
    -webkit-appearance: none;
    width: 1.125rem;
    height: 1.125rem;
    margin: 0.08rem 0 0;
    border: 2px solid currentColor;
    border-radius: 0.12rem;
    background: transparent;
    display: grid;
    place-items: center;
    cursor: pointer;
    flex-shrink: 0;
}

.newsletter-consent__input::after {
    content: "";
    width: 0.32rem;
    height: 0.62rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) scale(0);
    transform-origin: center;
    transition: transform 0.12s ease;
}

.newsletter-consent__input:checked::after {
    transform: rotate(45deg) scale(1);
}

.newsletter-consent__input:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

.newsletter-consent__label {
    margin: 0;
}

.newsletter-consent__label a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.14em;
}

.site-footer__newsletter-input {
    min-width: 0;
    min-height: 2.35rem;
    padding: 0.58rem 0.78rem;
    border: 2px solid rgba(255, 255, 255, 0.72);
    background: rgba(255, 255, 255, 0.08);
    color: var(--color-white);
    font: inherit;
}

.site-footer__newsletter-input::placeholder {
    color: rgba(255, 255, 255, 0.48);
}

.site-footer__newsletter-input:focus-visible {
    outline: 2px solid var(--color-white);
    outline-offset: 3px;
}

.site-footer__newsletter-button {
    min-height: 2.35rem;
    padding: 0.58rem 0.92rem;
    border: 2px solid var(--color-white);
    background: var(--color-white);
    color: var(--color-accent);
    font-family: var(--font-display);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.site-footer__newsletter-button:hover,
.site-footer__newsletter-button:focus-visible {
    background: transparent;
    color: var(--color-white);
}

.site-footer__newsletter-honeypot {
    position: absolute;
    left: -5000px;
}

.site-footer__newsletter-consent {
    order: 3;
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 0.45rem;
    justify-self: end;
    width: var(--footer-newsletter-line-width);
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.7rem;
    line-height: 1.34;
    margin-top: 0.08rem;
}

.site-footer__newsletter-consent .newsletter-consent__input {
    width: 1rem;
    height: 1rem;
    margin-top: 0.1rem;
    color: rgba(255, 255, 255, 0.92);
    border-color: rgba(255, 255, 255, 0.92);
}

.site-footer__newsletter-consent .newsletter-consent__label {
    max-width: 26rem;
    color: rgba(255, 255, 255, 0.9);
    text-align: left;
    line-height: 1.3;
}

.site-footer__legal-link {
    color: rgba(255, 255, 255, 0.82);
    font-family: var(--font-mono);
    text-decoration: underline;
    text-underline-offset: 0.14em;
}

@media (max-width: 760px) {
    .site-footer__main {
        grid-template-columns: 1fr;
        gap: 1rem;
        min-height: 0;
        align-items: start;
    }

    .site-footer__logo-button {
        width: clamp(5.5rem, 24vw, 7rem);
        height: auto;
        min-height: 0;
        align-self: start;
    }

    .site-footer__info {
        flex-direction: column;
        align-items: stretch;
    }

    .site-footer__topline {
        min-height: 0;
        flex-basis: auto;
        justify-content: flex-start;
        gap: 1rem;
    }

    .site-footer__meta {
        width: 100%;
        justify-items: start;
        margin-left: 0;
        padding-right: var(--footer-pad);
        box-sizing: border-box;
    }

    .site-footer__newsletter {
        width: 100%;
        justify-items: stretch;
    }

    .site-footer__newsletter-label {
        text-align: left;
    }

    .site-footer__newsletter-form {
        grid-template-columns: 1fr;
    }

    .site-footer__newsletter-consent {
        width: 100%;
        justify-self: stretch;
        font-size: 0.78rem;
    }

    .site-footer__newsletter-consent .newsletter-consent__label,
    .site-footer__copyright,
    .site-footer__legal-links {
        text-align: left;
    }
}

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

.icon-inline {
    display: inline-block;
    width: 1em;
    height: 1em;
    flex-shrink: 0;
    vertical-align: -0.14em;
}

.icon-inline--sm {
    width: 0.95em;
    height: 0.95em;
}

/* [data-reveal] animation is fully handled by GSAP in main.js */
[data-reveal] {
    opacity: 1;
    transform: none;
    will-change: auto;
}

.site-toast {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 220;
    padding: 0.85rem 1rem;
    border: var(--border-heavy);
    background: var(--color-accent);
    color: var(--color-white);
    box-shadow: var(--shadow-hard);
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    opacity: 0;
    transform: translateY(1rem);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.site-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 960px) {
    .hero__shell,
    .home-story,
    .home-slices,
    .home-editorial,
    .split-highlight,
    .membership-grid,
    .contact-grid,
    .feature-grid,
    .event-hero,
    .event-layout,
    .today-program-strip {
        grid-template-columns: 1fr;
    }

    .program-item {
        grid-template-columns: 1fr;
    }

    .home-story__copy {
        grid-row: auto;
    }

    .gallery-grid {
        columns: 2 14rem;
    }

    /* Hero poster responsive */
    .hero-poster__center {
        padding: 2.5rem 2rem;
    }

    /* Features columns responsive — reduce padding at tablet */
    .features-col {
        padding: 2rem 1.75rem 2.5rem;
    }

    /* Stat strip responsive */
    .stat-strip__inner {
        flex-wrap: wrap;
    }

    .stat-strip__item {
        flex: 1 1 calc(50% - 2px);
        border-right: var(--border-heavy);
        border-bottom: var(--border-heavy);
    }

    .stat-strip__item:nth-child(even) {
        border-right: 0;
    }

    .stat-strip__item:nth-last-child(-n+2) {
        border-bottom: 0;
    }

}

@media (max-width: 760px) {
    .nav__inner {
        padding: 0 1rem;
        flex-wrap: wrap;
    }

    .gallery-grid {
        columns: 1 100%;
    }

    .drink-item {
        grid-template-columns: 1fr auto;
    }

    .drink-item__dots {
        display: none;
    }

    /* Hero poster mobile */
    .hero--poster {
        min-height: 28rem;
        height: calc(100svh - var(--header-h));
    }

    .hero-poster__center {
        padding: 2rem 1.25rem;
    }

    .hero-poster__badge {
        width: clamp(8rem, 42vw, 13rem);
    }

    /* Features columns — stack to single column on mobile */
    .features-cols {
        flex-direction: column;
    }

    .features-col {
        border-right: 0;
        border-bottom: var(--border-heavy);
        padding: 2rem 1.25rem 2.5rem;
    }

    .features-col:last-child {
        border-bottom: 0;
    }

    .features-col__num {
        font-size: clamp(4rem, 15vw, 7rem);
        margin-bottom: 1.25rem;
    }

    .lightbox__content {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.75rem;
        width: min(92vw, 34rem);
        padding-top: 4rem;
    }

    .lightbox__stage {
        grid-column: 1 / -1;
    }

    .lightbox__image {
        max-width: 100%;
        max-height: calc(100vh - 13rem);
        margin-inline: auto;
    }

    .lightbox__nav {
        width: 100%;
        justify-content: center;
        min-width: 0;
    }

    .lightbox__nav--prev {
        grid-column: 1;
    }

    .lightbox__nav--next {
        grid-column: 2;
    }

    .program-featured,
    .event-grid {
        grid-template-columns: 1fr;
    }

    /* Section head — stack eyebrow above title on mobile */
    .section-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }

    .section-head .section-title {
        text-align: left;
    }
}

@media (max-width: 560px) {
    .hero__inner {
        padding: 2rem 0 3rem;
    }

    .page-title {
        align-items: flex-start;
        flex-direction: column;
    }

    .site-main > section,
    .site-main > article,
    .page-shell {
        padding: 1.5rem 0 3rem;
    }

    .hero--poster {
        padding: 0;
    }
}

/* ─────────────────────────────────────────────
   SECTION BAND BORDERS
   ───────────────────────────────────────────── */

.section-band {
    border-top: var(--border-heavy);
}

.stat-strip {
    border-top: var(--border-heavy);
}

/* ── Hero poster entrance: elemek láthatatlanul kezdenek (FOUC fix) ── */
.page-home .hero-poster__body,
.page-home .hero-poster__center {
    opacity: 0;
}

/* ─────────────────────────────────────────────
   HERO — POSTER (homepage, single background image)
   ───────────────────────────────────────────── */

.hero--poster {
    position: relative;
    overflow: hidden;
    background: var(--color-black);
    color: var(--color-white);
    min-height: 550px;
    height: calc(100svh - var(--header-h));
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 0;
}

.hero-poster__body {
    flex: 1;
    min-height: 0;
    position: relative;
    display: grid;
    place-items: center;
    background-color: var(--color-black);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

.hero-poster__center {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 3rem 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.hero-poster__center h1 {
    margin: 0;
}

.hero-poster__badge {
    display: block;
    width: clamp(10rem, 24vw, 18rem);
    height: auto;
    filter: brightness(0) invert(1) drop-shadow(0 1rem 2rem rgba(0, 0, 0, 0.35));
}


/* Eyebrow stamp variant inside dark/image overlay sections */
.eyebrow--stamp {
    display: inline-block;
    background: var(--color-accent);
    color: var(--color-white);
    padding: 0.2rem 0.55rem;
    font-family: var(--font-mono);
    font-size: 0.85rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.45);
}

.button--ghost-white {
    background: transparent;
    color: var(--color-white);
    border-color: var(--color-white);
    box-shadow: 4px 4px 0 rgba(255, 255, 255, 0.4);
    flex-shrink: 0;
}

.button--ghost-white:hover,
.button--ghost-white:focus-visible {
    background: var(--color-white);
    color: var(--color-black);
    box-shadow: 7px 7px 0 var(--color-accent);
}

/* ─────────────────────────────────────────────
   SECTION HEAD (global)
   ───────────────────────────────────────────── */

.section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    padding-top: 2.5rem;
    padding-bottom: 1.5rem;
    border-bottom: var(--border-heavy);
    margin-bottom: 2rem;
}

.section-head .section-title {
    margin: 0;
    font-size: clamp(2rem, 3.5vw, 3.2rem);
    text-align: right;
}

/* ─────────────────────────────────────────────
   FEATURES SECTION (editorial column layout)
   ───────────────────────────────────────────── */

/* Header strip: eyebrow left | title right */
.features-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 2rem;
    padding: 2rem 0 1.5rem;
    border-bottom: var(--border-heavy);
}

.features-head .section-title {
    font-size: clamp(1.6rem, 3vw, 2.8rem);
    margin: 0;
    text-align: right;
}

/* Three editorial columns, no gap — vertical borders between */
.features-cols {
    display: flex;
    gap: 0;
    border-bottom: var(--border-heavy);
    margin-bottom: 0;
}

.features-col {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 3rem 2.5rem 3.5rem;
    border-right: var(--border-heavy);
    background: transparent;
    transition: background 0.22s ease, color 0.22s ease;
    cursor: default;
}

.features-col:last-child {
    border-right: 0;
}

.features-col:hover {
    background: var(--color-black);
    color: var(--color-white);
}

.features-col__icon {
    width: clamp(4.5rem, 9vw, 7rem);
    height: clamp(4.5rem, 9vw, 7rem);
    object-fit: contain;
    margin-bottom: 1.75rem;
    opacity: 0.7;
}

.features-col:hover .features-col__icon {
    filter: brightness(0) invert(1);
    opacity: 0.85;
}

.features-col__num {
    font-family: var(--font-display);
    font-size: clamp(5rem, 10vw, 9rem);
    font-weight: 900;
    letter-spacing: -0.05em;
    line-height: 0.85;
    color: var(--color-accent);
    margin-bottom: 1.75rem;
    user-select: none;
}

.features-col__title {
    font-family: var(--font-display);
    font-size: clamp(1.2rem, 2vw, 1.75rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.0;
    text-transform: uppercase;
    margin: 0 0 1rem;
}

.features-col__body {
    font-size: 0.88rem;
    line-height: 1.65;
    color: var(--color-muted);
    margin: 0;
}

.features-col:hover .features-col__body {
    color: rgba(255, 255, 255, 0.55);
}

.home-hours-card {
    display: grid;
    gap: 0.5rem;
    padding: 1.5rem;
    border: var(--border-heavy);
    background: var(--color-accent);
    color: var(--color-white);
    box-shadow: var(--shadow-hard);
}

.home-hours-card__flag {
    width: 2.5rem;
    filter: brightness(0) invert(1);
    margin-bottom: 0.25rem;
}

.home-hours-card__label {
    font-family: var(--font-display);
    font-size: 0.85rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    opacity: 0.8;
}

.home-hours-card__value {
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    font-weight: 900;
    line-height: 0.9;
    letter-spacing: -0.04em;
    text-transform: uppercase;
}

.home-program-teaser {
    display: grid;
    gap: 0.5rem;
    align-content: center;
    padding: 1.25rem;
    border: var(--border-heavy);
    background: var(--color-black);
    color: var(--color-white);
    box-shadow: var(--shadow-hard);
    min-height: 6rem;
    transition: background 0.18s ease, transform 0.22s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.22s ease;
}

.home-program-teaser:hover {
    background: var(--color-accent);
    transform: translate(-3px, -3px);
    box-shadow: 7px 7px 0 var(--color-black);
}

.home-program-teaser__title {
    font-family: var(--font-display);
    font-size: clamp(1.1rem, 2vw, 1.5rem);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: -0.02em;
    line-height: 1;
}

/* ─────────────────────────────────────────────
   STAT STRIP
   ───────────────────────────────────────────── */

.stat-strip {
    background: var(--color-accent);
    color: var(--color-white);
    border-bottom: var(--border-heavy);
}

.stat-strip__inner {
    display: flex;
    align-items: stretch;
}

.stat-strip__item {
    flex: 1;
    display: grid;
    gap: 0.35rem;
    padding: 1.75rem 1.25rem;
    align-content: center;
    border-right: var(--border-heavy);
}

.stat-strip__item:last-child {
    border-right: 0;
}

.stat-strip__value {
    font-family: var(--font-display);
    font-size: clamp(2.8rem, 5.5vw, 5rem);
    font-weight: 900;
    line-height: 0.85;
    letter-spacing: -0.05em;
}

.stat-strip__label {
    font-family: var(--font-mono);
    font-size: 0.6rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    opacity: 0.65;
    line-height: 1.5;
}

.stat-strip__sep {
    display: none;
}

/* ─────────────────────────────────────────────
   GSAP / animation states
   ───────────────────────────────────────────── */

/* Nav scroll state */
.site-header.is-scrolled {
    box-shadow: none;
}

.site-header.is-scrolled .nav {
    background: var(--color-accent);
    color: var(--color-white);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

/* Marquee ticker */
.marquee-track {
    flex-shrink: 0;
    overflow: hidden;
    background: var(--color-accent);
    border-top: var(--border-heavy);
    padding: 0.6rem 0;
    display: flex;
    align-items: center;
}

.marquee-inner {
    display: flex;
    gap: 0;
    white-space: nowrap;
    will-change: transform;
    flex-shrink: 0;
}

.marquee-item {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    padding: 0 2rem;
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-white);
    flex-shrink: 0;
}

.marquee-item::after {
    content: '◆';
    font-size: 0.5rem;
    opacity: 0.7;
}

/* Hero image parallax container */
.hero__media img,
.home-story__poster img,
.home-slices__image img {
    transform-origin: center;
    will-change: transform;
}

/* Magnetic button state */
.button[data-magnetic],
.hero__cta[data-magnetic],
.hero__ghost-link[data-magnetic] {
    display: inline-flex;
    position: relative;
}

/* Split text char animation */
.char {
    display: inline-block;
    will-change: transform, opacity;
    transform-origin: bottom center;
}

/* Counter number animation */
.counter-box__value[data-count] {
    transition: none;
}

/* ═══════════════════════════════════════════════
   PAGE CURTAIN
   ═══════════════════════════════════════════════ */
#page-curtain {
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    transform: translateY(-100%);
    will-change: transform;
}

#page-curtain.is-blocking {
    pointer-events: all;
}

.curtain__body {
    width: 100%;
    opacity: 0;
    will-change: opacity;
}

/* Full-width track — bar fills behind, logo centered above */
.curtain__track {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2.5rem 0;
}

.curtain__bar {
    position: absolute;
    left: 0;
    top: 0;
    width: 0%;
    height: 100%;
    background: var(--color-accent);
    will-change: width;
}

.curtain__logo {
    position: relative;
    z-index: 1;
    width: clamp(10rem, 22vw, 20rem);
    height: auto;
    display: block;
    filter: brightness(0) invert(1);
}

/* ═══════════════════════════════════════════════
   PAGE HERO (aloldalak — neo-retro stamp header)
   ═══════════════════════════════════════════════ */
.page-hero {
    background: var(--color-black);
    color: var(--color-white);
    /* thick accent top stripe = stamp/printing plate */
    border-top: 6px solid var(--color-accent);
    border-bottom: var(--border-heavy);
    padding: 5rem 0 3rem;
    position: relative;
    overflow: hidden;
}

/* Inky noise splotch in corner — no diagonals */
.page-hero::before {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    width: 55%;
    height: 100%;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E") center/cover;
    opacity: 0.03;
    pointer-events: none;
    z-index: 0;
}

.page-hero .container {
    position: relative;
    z-index: 1;
}

.page-hero__inner {
    position: relative;
    z-index: 1;
    max-width: 72ch;
}

.page-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font-family: var(--font-mono);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    /* solid stamp tag */
    color: var(--color-white);
    background: var(--color-accent);
    padding: 0.28rem 0.8rem;
    box-shadow: 3px 3px 0 rgba(255, 255, 255, 0.22);
    margin-bottom: 1.8rem;
}

.page-hero__dot {
    width: 5px;
    height: 5px;
    background: rgba(255, 255, 255, 0.7);
    display: inline-block;
    flex-shrink: 0;
}

.page-hero__title {
    font-family: var(--font-display);
    font-size: clamp(3.5rem, 10vw, 9rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 0.88;
    text-transform: uppercase;
    color: var(--color-white);
    margin: 0 0 1.5rem;
    padding-bottom: 1.2rem;
    border-bottom: 2px solid rgba(255, 255, 255, 0.1);
}

.page-hero__sub {
    font-family: var(--font-body);
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.5);
    max-width: 52ch;
    line-height: 1.65;
    margin: 0;
}

.page-hero__ghost {
    font-family: var(--font-display);
    font-size: clamp(6rem, 20vw, 20rem);
    font-weight: 900;
    letter-spacing: -0.05em;
    line-height: 1;
    color: rgba(255, 255, 255, 0.032);
    position: absolute;
    right: -0.02em;
    bottom: -0.1em;
    text-transform: uppercase;
    pointer-events: none;
    user-select: none;
    white-space: nowrap;
    z-index: 0;
}

/* meta strip: flat, no boxes — just ruled lines */
.page-hero__meta-strip {
    display: flex;
    align-items: center;
    gap: 2.5rem;
    margin-top: 2rem;
    padding-top: 1.2rem;
    border-top: 2px solid rgba(255, 255, 255, 0.12);
    flex-wrap: wrap;
}

.page-hero__meta-item {
    font-family: var(--font-mono);
    font-size: 0.65rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.38);
    line-height: 1.5;
}

.page-hero__meta-icon {
    display: block;
    width: 2rem;
    height: 2rem;
    margin-bottom: 0.6rem;
    opacity: 0.55;
    filter: brightness(0) invert(1);
}

.page-hero__meta-item strong {
    display: block;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.82rem;
    letter-spacing: 0.04em;
    font-weight: 700;
    margin-bottom: 0.1rem;
}

/* ─────────────────────────────────────────────
   NEO-RETRO SYSTEM TOUCHES
   ───────────────────────────────────────────── */

/* Section band gets a hard border on top */
.section-band {
    border-top: var(--border-heavy);
}

/* Eyebrow as stamped label in section heads */
.section-head .eyebrow,
.section-head__meta .eyebrow {
    display: inline-block;
    border: var(--border-heavy);
    padding: 0.2rem 0.55rem;
    background: var(--color-black);
    color: var(--color-white);
    box-shadow: 3px 3px 0 var(--color-accent);
}

.section-band--dark .section-head .eyebrow,
.section-band--dark .section-head__meta .eyebrow {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-white);
    box-shadow: 2px 2px 0 rgba(255, 255, 255, 0.3);
}

/* Feature card: left accent stripe instead of the box  */
.feature-card {
    border-left: 4px solid var(--color-accent);
}

/* Marquee track looks like a printing press tape */
.marquee-track {
    border-top: var(--border-heavy);
    border-bottom: var(--border-heavy);
}

/* Section title: editorial — no override needed, see earlier rule */

/* Stat strip neo-retro: hard borders everywhere */
.stat-strip {
    border-top: var(--border-heavy);
    border-bottom: var(--border-heavy);
}

@media (max-width: 760px) {
    .page-hero {
        padding: 5rem 0 2.5rem;
    }

    .page-hero__title {
        font-size: clamp(2.8rem, 14vw, 5rem);
    }

    .page-hero__ghost {
        font-size: clamp(5rem, 24vw, 11rem);
    }

    .page-hero__meta-strip {
        gap: 1.5rem;
    }
}

/* ═══════════════════════════════════════════════
   SECTION FOOT — "Összes program →" sor
   ═══════════════════════════════════════════════ */
.section-foot {
    display: flex;
    justify-content: flex-end;
    padding-top: 2rem;
    margin-top: 0.5rem;
    border-top: var(--border-heavy);
}

/* ═══════════════════════════════════════════════
   HOME MEMBERSHIP TEASER (05 szekció)
   ═══════════════════════════════════════════════ */
.home-membership {
    padding: 5rem 0;
}

.home-membership__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
}

/* Bal: copy */
.home-membership__copy {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    align-items: flex-start;
}

.home-membership__title {
    font-family: var(--font-display);
    font-size: clamp(5rem, 11vw, 10rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 0.85;
    text-transform: uppercase;
    color: var(--color-white);
    margin: 0;
}

.home-membership__sub {
    font-family: var(--font-body);
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.55);
    max-width: 38ch;
    line-height: 1.65;
    margin: 0;
}

/* Jobb: szám blokk */
.home-membership__counter {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 16rem;
    border: var(--border-heavy);
    border-color: rgba(255, 255, 255, 0.12);
}

.home-membership__spots {
    text-align: center;
}

.home-membership__spots-val {
    font-family: var(--font-display);
    font-size: clamp(5rem, 10vw, 9rem);
    font-weight: 900;
    letter-spacing: -0.05em;
    line-height: 0.85;
    color: var(--color-white);
}

.home-membership__spots--soldout .home-membership__spots-val {
    font-size: clamp(3.5rem, 7vw, 6rem);
    color: var(--color-accent);
}

.home-membership__spots-label {
    font-family: var(--font-mono);
    font-size: 0.6rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.4);
    line-height: 1.6;
    margin-top: 0.75rem;
}

.home-membership__flag {
    position: absolute;
    bottom: 1rem;
    right: 1rem;
    width: 2rem;
    height: auto;
    opacity: 0.18;
    pointer-events: none;
}

/* Diagonális ikon pattern */
.home-membership-teaser {
    overflow: hidden;
}

.home-membership-teaser::before {
    content: '';
    position: absolute;
    inset: -50%;
    /* Egyetlen SVG tile: napagy + zaszlo váltakozva (LV damier logika) */
    background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><g transform='translate(10,10) scale(0.45)' fill='white'><path d='M63.64,13.01h-16.37s-1.02,88.19,69.99,88.19h19.41C65.67,101.2,63.64,13.01,63.64,13.01'/><path d='M27.67,13.01H11.44s-5.71,88.19,67.09,88.19h20.91C26.63,101.2,27.67,13.01,27.67,13.01'/><polygon points='133.27 107.11 4.47 107.11 4.47 12.1 63.95 12.1 64.06 18.91 11.27 18.91 11.27 100.3 133.27 100.3 133.27 107.11'/><polygon points='136.68 129.63 129.87 129.63 129.87 107.09 11.27 107.09 11.27 129.63 4.46 129.63 4.46 100.28 136.68 100.28 136.68 129.63'/></g><g transform='translate(120,10) scale(0.45)' fill='white'><path d='M57.42,28.2l3.69-3.7,10.33,10.33,10.33-10.33,3.7,3.7-10.33,10.32,10.33,10.33-3.7,3.69-10.33-10.33-10.33,10.33-3.69-3.69,10.33-10.33-10.33-10.32ZM44.66,65.46h59.76V12.16H37.31v117.41h7.35v-64.11Z'/><rect x='37.31' y='65.45' width='7.35' height='64.12'/></g><g transform='translate(10,120) scale(0.45)' fill='white'><path d='M57.42,28.2l3.69-3.7,10.33,10.33,10.33-10.33,3.7,3.7-10.33,10.32,10.33,10.33-3.7,3.69-10.33-10.33-10.33,10.33-3.69-3.69,10.33-10.33-10.33-10.32ZM44.66,65.46h59.76V12.16H37.31v117.41h7.35v-64.11Z'/><rect x='37.31' y='65.45' width='7.35' height='64.12'/></g><g transform='translate(120,120) scale(0.45)' fill='white'><path d='M63.64,13.01h-16.37s-1.02,88.19,69.99,88.19h19.41C65.67,101.2,63.64,13.01,63.64,13.01'/><path d='M27.67,13.01H11.44s-5.71,88.19,67.09,88.19h20.91C26.63,101.2,27.67,13.01,27.67,13.01'/><polygon points='133.27 107.11 4.47 107.11 4.47 12.1 63.95 12.1 64.06 18.91 11.27 18.91 11.27 100.3 133.27 100.3 133.27 107.11'/><polygon points='136.68 129.63 129.87 129.63 129.87 107.09 11.27 107.09 11.27 129.63 4.46 129.63 4.46 100.28 136.68 100.28 136.68 129.63'/></g></svg>");
    background-size: 220px 220px;
    background-repeat: repeat;
    opacity: 0.1;
    pointer-events: none;
    z-index: 0;
    transform: rotate(-18deg);
}

.home-membership {
    position: relative;
    z-index: 1;
}

/* Accent háttéren lévő overrides */
.home-membership-teaser .home-membership__sub {
    color: rgba(255, 255, 255, 0.8);
}

.home-membership-teaser .home-membership__spots-label {
    color: rgba(255, 255, 255, 0.65);
}

.home-membership-teaser .home-membership__spots--soldout .home-membership__spots-val {
    color: var(--color-black);
}

.home-membership-teaser .home-membership__counter {
    background: var(--color-white);
    border: var(--border-heavy);
    box-shadow: 8px 8px 0 rgba(0, 0, 0, 0.35);
    padding: 2rem 2.5rem 2.5rem;
    flex-direction: column;
    gap: 0;
    align-items: stretch;
    min-height: 20rem;
}

.home-membership__card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 1.25rem;
    margin-bottom: 1.5rem;
    border-bottom: 2px solid var(--color-black);
}

.home-membership__card-label {
    font-family: var(--font-mono);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-black);
}

.home-membership__card-year {
    font-family: var(--font-display);
    font-size: 0.95rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    color: var(--color-accent);
}

.home-membership-teaser .home-membership__spots {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.home-membership-teaser .home-membership__spots-val {
    color: var(--color-accent);
}

.home-membership-teaser .home-membership__spots-label {
    color: rgba(0, 0, 0, 0.45);
}

.home-membership-teaser .home-membership__flag {
    opacity: 0.08;
    filter: brightness(0);
}

.home-membership-teaser .button {
    background: var(--color-black);
    color: var(--color-white);
    box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.35);
}

.home-membership-teaser .button:hover,
.home-membership-teaser .button:focus-visible {
    background: var(--color-white);
    color: var(--color-black);
    box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.25);
}

/* Mobil */
@media (max-width: 760px) {
    .home-membership {
        padding: 3.5rem 0;
    }

    .home-membership__grid {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .home-membership__counter {
        min-height: 12rem;
    }
}

/* ═══════════════════════════════════════════════
   PROGRAM FEATURED STRIP (kompakt kiemelt esemény)
   ═══════════════════════════════════════════════ */
/* Wrapper: gap ha több strip van egymás alatt */
.program-featured-stack {
    display: grid;
    gap: 0.9rem;
}

.program-featured-stack__header {
    display: flex;
    align-items: baseline;
    gap: 1rem;
    padding-bottom: 0.5rem;
}

.program-featured-stack__date {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 900;
    text-transform: uppercase;
    color: var(--color-white);
}

.program-featured-strip {
    display: grid;
    grid-template-columns: auto clamp(16rem, 25vw, 22rem) 1fr auto;
    align-items: center;
    border: var(--border-heavy);
    box-shadow: 8px 8px 0 rgba(0, 0, 0, 0.4);
    background: var(--color-white);
    overflow: hidden;
}

.program-featured-strip__badge {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    transform: rotate(180deg);
    align-self: stretch;
    padding: 1.25rem 0.65rem;
    font-family: var(--font-mono);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-white);
    border-right: var(--border-heavy);
    background: var(--color-black);
    white-space: nowrap;
}

.program-featured-strip__thumb .media-frame {
    aspect-ratio: 16 / 9;
    height: auto;
    min-height: unset;
    border: none;
    border-right: var(--border-heavy);
}

.program-featured-strip__thumb .media-frame img {
    width: 100%;
    height: 100%;
    aspect-ratio: unset;
    object-fit: cover;
    object-position: center;
}

.program-featured-strip__info {
    padding: 1.5rem 2rem;
    display: grid;
    align-content: center;
    gap: 0.5rem;
}

.program-featured-strip__title {
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 3.5vw, 2.8rem);
    font-weight: 900;
    line-height: 0.9;
    text-transform: uppercase;
    color: var(--color-black);
    margin: 0;
}

.program-featured-strip__desc {
    font-size: 0.9rem;
    color: rgba(0, 0, 0, 0.55);
    margin: 0;
    max-width: 44ch;
}

.program-featured-strip .event-card__meta {
    color: rgba(0, 0, 0, 0.45);
}

.program-featured-strip__btn {
    align-self: center;
    margin: 1.5rem;
    white-space: nowrap;
    background: var(--color-black);
    color: var(--color-white);
    box-shadow: 4px 4px 0 var(--color-accent);
}

.program-featured-strip__btn:hover,
.program-featured-strip__btn:focus-visible {
    background: var(--color-accent);
    color: var(--color-white);
    box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.3);
}

@media (max-width: 760px) {
    .program-featured-strip {
        grid-template-columns: 1fr;
    }

    .program-featured-strip__badge {
        writing-mode: horizontal-tb;
        transform: none;
        align-self: auto;
        padding: 0.6rem 1rem;
        border-right: none;
        border-bottom: var(--border-heavy);
    }

    .program-featured-strip__thumb .media-frame {
        aspect-ratio: 16 / 9;
        border-right: none;
        border-bottom: var(--border-heavy);
    }

    .program-featured-strip__btn {
        margin: 1rem 1.5rem 1.5rem;
    }
}

/* ═══════════════════════════════════════════════
   PROGRAM MINI-KÁRTYÁK (következő programok)
   ═══════════════════════════════════════════════ */
.program-mini-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
}

.program-mini-card {
    display: grid;
    border: var(--border-heavy);
    border-top: 4px solid var(--color-accent);
    background: var(--color-white);
    box-shadow: var(--shadow-hard);
    transition: transform 200ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 200ms;
}

.program-mini-card:hover {
    transform: translate(-3px, -3px);
    box-shadow: 7px 7px 0 var(--color-black);
}

/* Dark hátteren a fekete shadow nem látszik — accent-re váltunk */
.section-band--dark .program-mini-card {
    box-shadow: 5px 5px 0 var(--color-accent);
}

.section-band--dark .program-mini-card:hover {
    box-shadow: 9px 9px 0 var(--color-accent);
}

.program-mini-card .media-frame {
    border-bottom: var(--border-heavy);
    min-height: 8rem;
}

.program-mini-card .media-frame img {
    aspect-ratio: 16 / 9;
    object-position: center;
}

.program-mini-card__body {
    padding: 1rem 1.1rem 1.25rem;
    display: grid;
    gap: 0.4rem;
    align-content: start;
}

.program-mini-card__body h3 {
    font-family: var(--font-display);
    font-size: clamp(1.1rem, 2.2vw, 1.6rem);
    font-weight: 900;
    line-height: 0.95;
    text-transform: uppercase;
    margin: 0;
}

.program-mini-card__body .button {
    margin-top: 0.6rem;
    font-size: 0.85rem;
    padding: 0.6rem 0.9rem;
    width: fit-content;
}

@media (max-width: 760px) {
    .program-mini-grid {
        grid-template-columns: 1fr;
    }
}

/* ═══════════════════════════════════════════════
   PROGRAM CALENDAR WIDGET
   ═══════════════════════════════════════════════ */
.program-calendar {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    align-items: start;
}

.cal-month {
    flex: 0 0 auto;
    width: clamp(17rem, 26vw, 22rem);
    border: var(--border-heavy);
    background: var(--color-white);
    box-shadow: var(--shadow-hard);
}

.cal-month__header {
    background: var(--color-black);
    color: var(--color-white);
    padding: 0.7rem 1rem;
    border-bottom: var(--border-heavy);
}

.cal-month__name {
    font-family: var(--font-display);
    font-size: 0.82rem;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
}

.cal-cell {
    aspect-ratio: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.12rem;
    font-family: var(--font-mono);
    font-size: 0.68rem;
    border-right: 1px solid rgba(0, 0, 0, 0.06);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    position: relative;
    user-select: none;
}

.cal-cell--head {
    aspect-ratio: unset;
    padding: 0.38rem 0;
    font-size: 0.52rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-muted);
    background: rgba(0, 0, 0, 0.03);
    border-bottom: var(--border-heavy);
}

.cal-cell--past .cal-cell__num {
    opacity: 0.28;
}

.cal-cell--today {
    background: rgba(255, 66, 3, 0.07);
}

.cal-cell--today .cal-cell__num {
    font-weight: 900;
    color: var(--color-accent);
}

.cal-cell--has-events {
    cursor: pointer;
    background: rgba(255, 66, 3, 0.05);
}

.cal-cell--has-events:hover,
.cal-cell--has-events:focus-visible {
    background: var(--color-accent);
    outline: none;
    z-index: 10;
}

.cal-cell--has-events:hover .cal-cell__num,
.cal-cell--has-events:focus-visible .cal-cell__num {
    color: var(--color-white);
}

.cal-cell--has-events:hover .cal-cell__dot,
.cal-cell--has-events:focus-visible .cal-cell__dot {
    background: var(--color-white);
}

.cal-cell__dot {
    width: 0.28rem;
    height: 0.28rem;
    border-radius: 50%;
    background: var(--color-accent);
    flex-shrink: 0;
}

/* Hover tooltip — esemény nevei fölé lebegve */
.cal-cell--has-events::after {
    content: attr(data-events);
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%) translateY(4px);
    background: var(--color-black);
    color: var(--color-white);
    font-family: var(--font-mono);
    font-size: 0.52rem;
    font-weight: 700;
    line-height: 1.45;
    text-align: center;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.32rem 0.5rem;
    white-space: normal;
    width: max-content;
    max-width: 9rem;
    border: var(--border-heavy);
    pointer-events: none;
    opacity: 0;
    z-index: 20;
    transition: opacity 0.14s ease, transform 0.14s ease;
}

.cal-cell--has-events:hover::after,
.cal-cell--has-events:focus-visible::after {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* ─────────────────────────────────────────────
   CALENDAR POPUP
   ───────────────────────────────────────────── */
.cal-popup {
    position: fixed;
    z-index: 800;
    min-width: 240px;
    max-width: 290px;
    background: var(--color-black);
    border: var(--border-heavy);
    box-shadow: 8px 8px 0 var(--color-accent);
    color: var(--color-white);
}

.cal-popup[hidden] {
    display: none;
}

.cal-popup__inner {
    padding: 0.9rem 1.1rem 1.1rem;
}

.cal-popup__close {
    float: right;
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.45);
    font-size: 1.2rem;
    cursor: pointer;
    padding: 0 0 0.25rem 0.5rem;
    line-height: 1;
}

.cal-popup__close:hover {
    color: var(--color-white);
}

.cal-popup__date {
    font-family: var(--font-mono);
    font-size: 0.58rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-accent);
    margin-bottom: 0.65rem;
    padding-bottom: 0.55rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    clear: both;
}

.cal-popup__event {
    display: grid;
    gap: 0.12rem;
    padding: 0.55rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    color: var(--color-white);
    text-decoration: none;
    transition: color 0.15s;
}

.cal-popup__event:last-child {
    border-bottom: none;
}

.cal-popup__event:hover {
    color: var(--color-accent);
}

.cal-popup__time {
    font-family: var(--font-mono);
    font-size: 0.58rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    opacity: 0.45;
}

.cal-popup__title {
    font-family: var(--font-display);
    font-size: 0.95rem;
    font-weight: 900;
    text-transform: uppercase;
    line-height: 1.05;
}

/* ─────────────────────────────────────────────
   SIMPLE THEME OVERRIDES
   ───────────────────────────────────────────── */

*,
*::before,
*::after {
    box-shadow: none !important;
    text-shadow: none !important;
}

body,
main[data-app-viewport],
.page-shell,
.section-band,
.section-band--light,
.section-band--dark,
.section-band--accent,
.panel,
.panel--dark,
.panel--contrast,
.feature-card,
.content-card,
.contact-card,
.embed-card,
.counter-box,
.program-item,
.rules-section,
.gallery-empty,
.drink-category,
.event-card,
.today-program-card,
.today-program-strip__label,
.hero--poster,
.page-hero,
.nav,
.site-footer,
.cal-month,
.cal-popup,
.program-featured-strip,
.program-mini-card,
.home-membership__counter,
.home-membership-teaser .home-membership__counter,
.section-divider {
    background: var(--color-white) !important;
    color: var(--color-black) !important;
    background-image: none !important;
}

.page-hero::before,
.home-membership-teaser::before,
.site-footer__watermark,
.page-hero__ghost,
.hero__wordmark,
.editorial-blast__type {
    display: none !important;
}

.button,
.hero__cta,
.filter-chip,
.admin-link,
.program-featured-strip__btn,
.home-membership-teaser .button {
    background: var(--color-accent) !important;
    color: var(--color-white) !important;
    border-color: var(--color-accent) !important;
    transform: none !important;
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease !important;
}

.button:hover,
.button:focus-visible,
.hero__cta:hover,
.hero__cta:focus-visible,
.filter-chip:hover,
.filter-chip:focus-visible,
.admin-link:hover,
.admin-link:focus-visible,
.program-featured-strip__btn:hover,
.program-featured-strip__btn:focus-visible,
.home-membership-teaser .button:hover,
.home-membership-teaser .button:focus-visible {
    background: var(--color-white) !important;
    color: var(--color-accent) !important;
    border-color: var(--color-accent) !important;
    transform: none !important;
}

.program-featured-strip__badge,
.cal-month__header,
.cal-popup__close:hover {
    background: var(--color-white) !important;
    color: var(--color-black) !important;
}

.site-footer__flag,
.page-hero__meta-icon,
.divider-icon {
    filter: none !important;
}

.nav,
.site-footer,
.site-header {
    border-color: var(--color-border) !important;
}

.filter-chip.is-active,
.filter-chip[aria-pressed="true"] {
    background: var(--color-accent) !important;
    color: var(--color-white) !important;
}

.site-footer__socials a,
.page-hero__eyebrow,
.button--ghost-white {
    background: transparent !important;
    color: var(--color-accent) !important;
    border-color: var(--color-accent) !important;
}

.page-hero {
    padding: 3.5rem 0 2.25rem !important;
}

.page-hero__eyebrow {
    padding: 0 !important;
}

.page-hero__dot {
    background: var(--color-accent) !important;
}

.page-hero__title,
.page-hero__sub,
.page-hero__meta-item,
.page-hero__meta-item strong,
.site-footer__copyright,
.home-membership__sub,
.home-membership__spots-label,
.program-featured-stack__date,
.cal-popup__event,
.cal-popup__time,
.cal-popup__close {
    color: var(--color-black) !important;
}

.page-hero__title,
.page-hero__meta-strip,
.cal-month__header,
.cal-popup__date,
.cal-popup__event,
.home-membership__card-head {
    border-color: rgba(0, 0, 0, 0.12) !important;
}

.hero-poster__badge {
    filter: brightness(0) invert(1) !important;
}

/* ─────────────────────────────────────────────
   HOME REDESIGN
   ───────────────────────────────────────────── */

.hero--poster {
    border-top: var(--border-heavy);
    border-bottom: var(--border-heavy);
}

.hero-poster__center {
    padding: 2rem;
}

.hero-poster__badge {
    width: clamp(13rem, 29vw, 24rem);
}

.marquee-track {
    border-top: var(--border-heavy);
    border-bottom: var(--border-heavy);
}

.page-home .site-main > section:not(.hero--poster) {
    padding: 0;
}

.home-grid-section {
    border-bottom: var(--border-heavy);
}

.home-grid-section__title {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 5.5rem;
    padding: 1rem;
    border-bottom: var(--border-heavy);
    text-align: center;
}

.home-grid-section__title h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(2.4rem, 4.8vw, 4.5rem);
    font-weight: 900;
    line-height: 0.95;
    letter-spacing: -0.03em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.home-programs-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-program-card {
    border-right: var(--border-heavy);
}

.home-program-card:last-child {
    border-right: 0;
}

.home-program-card__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    min-height: 3.75rem;
    padding: 0.7rem 1rem;
    border-bottom: var(--border-heavy);
}

.home-program-card__head h3,
.home-program-card__date {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.3rem, 2vw, 2rem);
    font-weight: 900;
    text-transform: uppercase;
    color: var(--color-accent);
}

.home-program-card__media {
    position: relative;
    display: block;
    aspect-ratio: 1 / 0.88;
    overflow: hidden;
    background: var(--color-black);
}

.home-program-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.home-program-card__media:hover img,
.home-program-card__media:focus-visible img {
    transform: scale(1.03);
}

.home-program-card__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 1rem;
    background: linear-gradient(180deg, rgba(13, 13, 13, 0.18), rgba(13, 13, 13, 0.42));
}

.home-program-card__stamp,
.home-program-card__label {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    min-height: 2.25rem;
    padding: 0.3rem 0.85rem;
    border: 2px solid var(--color-white);
    color: var(--color-white);
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
}

.home-program-card__stamp {
    font-size: 0.72rem;
    letter-spacing: 0.08em;
}

.home-feature-card {
    display: grid;
    grid-template-columns: 11rem minmax(0, 1fr);
    align-items: stretch;
    border-right: var(--border-heavy);
}

.home-feature-card:last-child {
    border-right: 0;
}

.home-features-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.home-feature-card__icon {
    display: grid;
    place-items: center;
    min-height: 12rem;
    padding: 1.5rem;
    border-right: var(--border-heavy);
}

.home-feature-card__icon img {
    width: 100%;
    max-width: 5.25rem;
    max-height: 7rem;
    object-fit: contain;
}

.home-feature-card__content {
    display: grid;
    align-content: center;
    gap: 0.85rem;
    padding: 1.5rem 1.25rem;
    text-align: right;
}

.home-feature-card__content h3 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 2.5vw, 2.6rem);
    line-height: 0.92;
    text-transform: uppercase;
    color: var(--color-accent);
}

.home-feature-card__content p {
    margin: 0;
    font-size: 0.98rem;
    line-height: 1.3;
}

.home-hours-strip {
    display: grid;
    grid-template-columns: 9rem minmax(0, 1fr) 18rem;
    align-items: stretch;
    gap: 0;
    background: var(--color-accent);
    border-top: var(--border-heavy);
}

.home-hours-strip__flag,
.home-hours-strip__main,
.home-hours-strip__time {
    min-height: 10rem;
}

.home-hours-strip__flag {
    display: grid;
    place-items: center;
}

.home-hours-strip__flag img {
    width: 3rem;
    filter: brightness(0) invert(1);
}

.home-hours-strip__main {
    display: grid;
    place-items: center;
    padding: 1.5rem;
    background: var(--color-white);
    border-left: var(--border-heavy);
    border-right: var(--border-heavy);
    text-align: center;
}

.home-hours-strip__main h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 5vw, 4.6rem);
    line-height: 0.9;
    text-transform: uppercase;
    color: var(--color-accent);
}

.home-hours-strip__sub {
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 3vw, 2.6rem);
    line-height: 1;
    text-transform: uppercase;
    color: var(--color-accent);
}

.home-hours-strip__time {
    display: grid;
    align-content: center;
    justify-items: start;
    padding: 1.25rem 1.5rem;
    color: var(--color-white);
}

.home-hours-strip__label {
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 700;
    text-transform: uppercase;
}

.home-hours-strip__value {
    font-family: var(--font-display);
    font-size: clamp(3.4rem, 6vw, 5.8rem);
    font-weight: 900;
    line-height: 0.85;
    text-transform: uppercase;
}

.site-footer {
    margin-top: 0;
    border-top: var(--border-heavy);
    background: var(--color-accent) !important;
    color: var(--color-white) !important;
}

.site-footer__content {
    padding: var(--footer-pad);
}

.site-footer__brand h2,
.site-footer__copyright,
.site-footer__grid p,
.site-footer__grid a {
    color: var(--color-white) !important;
}

.site-footer__socials a {
    border-color: var(--color-white) !important;
    color: var(--color-white) !important;
}

@media (max-width: 980px) {
    .nav__inner.container {
        grid-template-columns: minmax(0, 1fr) auto auto;
        grid-template-areas:
            "logo lang burger"
            "menu menu  menu";
        align-items: stretch;
    }

    .nav__logo {
        grid-area: logo;
        border-right: 0;
    }

    .nav__burger {
        display: inline-flex;
        grid-area: burger;
        justify-self: end;
        align-self: stretch;
        width: auto;
        height: auto;
        min-height: 3.25rem;
        padding: 0 1.25rem;
        border-left: var(--border-heavy);
        color: var(--color-white) !important;
    }

    .nav__lang {
        grid-area: lang;
        align-self: stretch;
        min-height: 3.25rem;
        padding: 0 0.85rem;
    }

    .nav__menu {
        grid-area: menu;
        display: none;
        grid-template-columns: 1fr;
        grid-auto-rows: max-content;
        align-content: start;
        position: fixed;
        left: var(--mobile-menu-left, 0.5rem);
        right: var(--mobile-menu-right, 0.5rem);
        top: var(--mobile-menu-top, 4.25rem);
        bottom: 0;
        width: auto;
        max-height: calc(100dvh - var(--mobile-menu-top, 4.25rem));
        padding: 0.6rem 0 max(1rem, env(safe-area-inset-bottom));
        background: var(--color-accent) !important;
        color: var(--color-white) !important;
        list-style: none;
        margin: 0;
        border-left: var(--border-heavy);
        border-right: var(--border-heavy);
        border-bottom: var(--border-heavy);
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        z-index: 200;
    }

    .site-header.is-menu-open .nav__menu,
    .nav__menu.is-open {
        display: grid;
    }

    .nav__menu li {
        display: block;
        border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    }

    .nav__menu li:last-child {
        border-bottom: 0;
    }

    .nav__menu li.nav__menu-meta {
        display: grid;
        gap: 0.2rem;
        padding: 0.95rem 1.25rem 0.2rem;
        border-top: var(--border-heavy);
        border-bottom: 0 !important;
    }

    .nav__menu-meta-copy {
        margin: 0;
    }

    .nav__menu-meta .nav__menu-meta-link,
    .nav__menu-meta .nav__menu-meta-copy {
        display: block;
        min-height: 0;
        padding: 0;
        font-family: var(--font-mono);
        font-size: 0.76rem;
        font-weight: 500;
        letter-spacing: 0;
        line-height: 1.38;
        text-transform: none;
        color: rgba(255, 255, 255, 0.82) !important;
        background: transparent !important;
        border: 0 !important;
    }

    .nav__menu-meta .nav__menu-meta-link:hover,
    .nav__menu-meta .nav__menu-meta-link:focus-visible {
        color: var(--color-white) !important;
        background: transparent !important;
        opacity: 1;
    }

    .nav__menu a {
        display: flex;
        align-items: center;
        font-family: var(--font-display);
        font-size: clamp(1.6rem, 6.8vw, 2.5rem);
        font-weight: 900;
        letter-spacing: -0.04em;
        line-height: 1;
        text-transform: uppercase;
        text-decoration: none;
        color: rgba(255, 255, 255, 0.92) !important;
        padding: 0.92rem 1.25rem;
        width: 100%;
        border: none !important;
        background: transparent !important;
        transition: color 0.15s ease, opacity 0.15s ease;
        min-height: 3.8rem;
        justify-content: flex-start;
    }

    .site-header.is-menu-open + .site-main {
        pointer-events: none;
    }

    .nav__menu a.is-active,
    .nav__menu a:hover,
    .nav__menu a:focus-visible {
        color: var(--color-white) !important;
        background: transparent !important;
        opacity: 1;
    }

    .home-feature-card {
        grid-template-columns: 1fr;
    }

    .home-feature-card__icon {
        border-right: 0;
        border-bottom: var(--border-heavy);
    }

    .home-feature-card__content {
        text-align: left;
    }
}

@media (max-width: 760px) {
    /* Home page: cards stack vertically */
    .home-programs-grid,
    .home-features-grid,
    .home-hours-strip {
        grid-template-columns: 1fr;
    }

    /* Feature cards: restore icon-left + text-right on mobile */
    .home-feature-card {
        grid-template-columns: 5rem minmax(0, 1fr);
    }

    .home-feature-card__icon {
        border-right: var(--border-heavy);
        border-bottom: 0;
    }

    .home-program-card,
    .home-feature-card,
    .home-hours-strip__main {
        border-right: 0;
    }

    .home-program-card:not(:last-child),
    .home-feature-card:not(:last-child),
    .home-hours-strip__main {
        border-bottom: var(--border-heavy);
    }

    .home-hours-strip__flag {
        display: none;
    }

    .home-hours-strip__main {
        min-height: 6rem;
    }

    .home-hours-strip__time {
        justify-items: center;
        text-align: center;
        min-height: 8rem;
    }

    .home-program-card__head {
        grid-template-columns: 1fr;
    }

    .hero--poster {
        min-height: 38rem !important;
        height: 38rem !important;
    }
}

/* ─────────────────────────────────────────────
   HOME REFINEMENT
   ───────────────────────────────────────────── */

body.page-home {
    --container: 100vw;
    --color-border: var(--color-accent);
    --border-heavy: 3px solid var(--color-accent);
    background-color: #f7f1e8;
    background-image:
        linear-gradient(180deg, #f2e9de 0%, #f7f1e8 34%, #ffffff 100%);
    position: relative;
    isolation: isolate;
}

body.page-home::before,
body.page-home::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    pointer-events: none;
    transform: translateX(-50%);
    display: none;
}

body.page-home::before {
    width: var(--container);
    background: #ffffff;
    z-index: 0;
}

body.page-home::after {
    width: calc(var(--container) + 40px);
    z-index: 0;
    background:
        radial-gradient(100% 100% at 50% 0%, rgba(36, 23, 14, 0.14) 0%, rgba(36, 23, 14, 0.08) 30%, rgba(36, 23, 14, 0.035) 56%, rgba(36, 23, 14, 0) 76%),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.35' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='96' height='96' filter='url(%23n)' opacity='0.3'/%3E%3C/svg%3E");
    background-repeat: no-repeat, repeat;
    background-size: 100% 100%, 96px 96px;
    opacity: 0.55;
    filter: blur(10px);
}

.page-home .site-main {
    padding: 0 0 2rem;
    background: transparent !important;
    position: relative;
    z-index: 1;
}

.page-home .home-shell {
    width: var(--container);
    margin: 0 auto;
    border: var(--border-heavy);
    border-top: 0;
    background: var(--color-white);
}

.page-home .hero--poster {
    background: var(--color-white) !important;
    width: calc(100% + 6px);
    margin: 0 -3px;
    border: 0;
    display: grid;
    grid-template-rows: auto auto;
    min-height: auto !important;
    height: auto !important;
}

.page-home .hero-poster__body {
    border-top: 0;
    border-bottom: 0;
    aspect-ratio: 2.5 / 1;
    min-height: 0;
    opacity: 1;
    background-position: center top !important;
}

.page-home .hero-poster__body::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.12);
    pointer-events: none;
}

.page-home .hero-poster__center {
    padding: 1rem;
    opacity: 1;
}

.page-home .hero-poster__center h1 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: clamp(0.85rem, 3vw, 1.35rem);
    border-radius: 999px;
    background: radial-gradient(circle, rgba(13, 13, 13, 0.42) 0%, rgba(13, 13, 13, 0.18) 58%, rgba(13, 13, 13, 0) 78%);
}

body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .site-header {
    position: sticky;
    top: 0;
    z-index: 60;
    width: var(--container);
    margin: 0 auto;
    border-top: 0 !important;
    border-bottom: 0 !important;
}

body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav,
body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__logo {
    background: var(--color-accent) !important;
    color: var(--color-white) !important;
}

body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__menu a,
body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__lang,
body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__lang-link,
body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__lang-separator {
    color: var(--color-white) !important;
}

body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__lang-link.is-active,
body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__lang-link[aria-current="true"] {
    background: transparent !important;
    color: var(--color-white) !important;
    opacity: 0.45 !important;
    box-shadow: none !important;
}

body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__lang-link:hover,
body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__lang-link:focus-visible {
    color: var(--color-white) !important;
    box-shadow: inset 0 -2px 0 rgba(255, 255, 255, 0.9) !important;
}

body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__lang-link.is-active:hover,
body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__lang-link.is-active:focus-visible,
body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__lang-link[aria-current="true"]:hover,
body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__lang-link[aria-current="true"]:focus-visible {
    background: transparent !important;
    color: var(--color-white) !important;
    opacity: 0.45 !important;
    box-shadow: none !important;
}

body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__menu a:hover,
body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__menu a:focus-visible,
body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__menu a.is-active {
    background: var(--color-white) !important;
    color: var(--color-accent) !important;
}

body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__logo {
    width: clamp(12.5rem, 16vw, 17rem);
}

body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__logo-img {
    height: 1.65rem;
}

body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__menu a,
body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__lang {
    font-size: clamp(0.92rem, 0.82rem + 0.22vw, 1.04rem);
}

.page-home .hero-poster__badge {
    width: clamp(11rem, 21vw, 18rem);
    filter: drop-shadow(0 1rem 2rem rgba(0, 0, 0, 0.45)) !important;
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
}

.page-home .marquee-track {
    min-height: 3.5rem;
    padding: 0;
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
}

.page-home .marquee-inner {
    align-items: center;
}

.page-home .marquee-item {
    gap: 1.25rem;
    padding: 0 1.3rem;
    font-size: clamp(0.95rem, 1.1vw, 1.35rem);
    line-height: 1;
}

.page-home .marquee-item::after {
    content: '—';
    font-size: 1.6rem;
    opacity: 1;
}

.page-home .home-grid-section {
    width: 100%;
    margin: 0;
    border-top: var(--border-heavy);
    border-bottom: 0;
}

.page-home .home-grid-section__title {
    min-height: 5.5rem;
    padding: 0.6rem 1rem;
}

.page-home .home-grid-section__title h2 {
    font-size: clamp(2.7rem, 5vw, 4.9rem);
    letter-spacing: -0.045em;
}


.page-home .home-programs-grid {
    align-items: stretch;
}

.page-home .home-program-card {
    display: flex;
    flex-direction: column;
}

.page-home .home-program-card__media {
    flex: 1;
    aspect-ratio: 16 / 9;
    min-height: 0;
}

.page-home .home-program-card__head {
    min-height: 4.25rem;
    padding: 0.6rem 1.25rem;
}

.page-home .home-program-card__head h3,
.page-home .home-program-card__date {
    font-size: clamp(1.5rem, 2.1vw, 2.6rem);
    line-height: 1;
}


.page-home .home-program-card__media--placeholder {
    background-color: var(--color-black);
    background-size: cover;
    background-position: center;
}

.page-home .home-program-card__placeholder-logo {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding-left: 1.5rem;
    pointer-events: none;
}

.page-home .home-program-card__placeholder-logo img {
    width: clamp(7rem, 14vw, 14rem);
    filter: brightness(0) invert(1);
    opacity: 0.18;
}

.page-home .home-program-card__overlay {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1rem;
    background: linear-gradient(180deg, rgba(13, 13, 13, 0.35), rgba(13, 13, 13, 0.55) 48%, rgba(13, 13, 13, 0.75));
}

.page-home .home-program-card__topline {
    font-family: var(--font-display);
    font-size: clamp(1rem, 1.2vw, 1.4rem);
    font-weight: 700;
    color: var(--color-white);
}

.page-home .home-program-card__middle {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.85rem;
    text-align: center;
}

.page-home .home-program-card__label {
    min-height: 0;
    padding: 0.55rem 2rem 0.5rem;
    border-width: 3px;
    font-size: clamp(1.3rem, 1.8vw, 2.2rem);
    letter-spacing: 0;
}

.page-home .home-program-card__copy {
    max-width: 18ch;
    margin: 0;
    color: var(--color-white);
    font-family: var(--font-display);
    font-size: clamp(0.9rem, 1vw, 1.15rem);
    font-weight: 700;
    line-height: 1.05;
    text-transform: uppercase;
}

.page-home .home-program-card__wave img {
    width: 2.6rem;
    filter: brightness(0) invert(1);
    opacity: 0.7;
}

.page-home .home-program-card__brand {
    justify-self: center;
}

.page-home .home-program-card__brand img {
    width: 3.1rem;
    filter: brightness(0) invert(1);
}

.page-home .home-features-grid {
    align-items: stretch;
}

.page-home .home-feature-card {
    grid-template-columns: 11rem minmax(0, 1fr);
    align-items: stretch;
}

.page-home .home-feature-card__icon {
    min-height: 100%;
    padding: 0rem;
    background: var(--color-white);
    border-right: 0;
}

.page-home .home-feature-card__icon img {
    width: 100%;
    max-width: none;
    max-height: 11rem;
    object-fit: contain;
}

.page-home .home-feature-card__content {
    padding: 0.5rem;
    gap: 0.35rem;
    text-align: right;
    align-content: center;
}

.page-home .home-feature-card__content h3 {
    font-size: clamp(1.5rem, 2.1vw, 2.5rem);
    letter-spacing: -0.04em;
    color: var(--color-accent);
}

.page-home .home-feature-card__content p {
    font-size: clamp(0.85rem, 0.95vw, 1.1rem);
    line-height: 1.2;
}

.page-home .home-hours-strip {
    grid-template-columns: 1fr 2fr 1fr;
    border-top: var(--border-heavy);
    width: 100%;
    margin: 0;
}

.page-home .home-hours-strip__flag,
.page-home .home-hours-strip__main,
.page-home .home-hours-strip__time {
    min-height: 12rem;
}

.page-home .home-hours-strip__flag img {
    width: 3.6rem;
}

.page-home .home-hours-strip__main {
    padding: 1.25rem 1rem 1rem;
}

.page-home .home-hours-strip__main h2 {
    font-size: clamp(3rem, 5.6vw, 5.3rem);
    letter-spacing: -0.05em;
}

.page-home .home-hours-strip__sub {
    font-size: clamp(1.7rem, 3.4vw, 3.2rem);
    letter-spacing: -0.03em;
}

.page-home .home-hours-strip__time {
    justify-items: center;
    text-align: center;
    padding: 1rem;
}

.page-home .home-hours-strip__label {
    font-size: clamp(1.1rem, 2.6vw, 2.5rem);
    font-weight: 300;
    letter-spacing: 0.1em;
    line-height: 1;
}

.page-home .home-hours-strip__label strong {
    font-weight: 800;
}

.page-home .home-hours-strip__value {
    font-size: clamp(3.6rem, 6vw, 6rem);
    font-weight: 900;
    line-height: 0.9;
}

.page-home .site-footer {
    border-top: var(--border-heavy);
    width: var(--container);
    margin: 0 auto;
}

@media (min-width: 1500px) {
    body.page-home {
        --container: min(1360px, calc(100vw - 2.5rem));
    }

    body.page-home::before,
    body.page-home::after {
        display: block;
    }
}

@media (max-width: 980px) {
    .page-home .nav__inner.container {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "logo burger"
            "menu menu";
    }

    .page-home .nav__logo {
        width: auto;
        min-width: 0;
    }
}

@media (max-width: 760px) {
    .page-home .home-shell,
    .page-home .site-header,
    .page-home .site-footer {
        width: min(100%, calc(100vw - 1rem));
    }

    .page-home .hero--poster {
        display: flex;
        min-height: 32rem !important;
        height: 32rem !important;
        aspect-ratio: auto;
    }

    .page-home .hero-poster__body {
        flex: 1 1 auto;
        height: auto;
        background-image: url('/assets/img/cover-mobile.jpg') !important;
        background-position: center center !important;
    }

    .page-home .hero-poster__badge {
        width: clamp(8rem, 38vw, 11rem);
    }

    .page-home .marquee-track {
        min-height: 3rem;
    }

    .page-home .home-program-card__media {
        aspect-ratio: 16 / 9;
    }

    .page-home .home-feature-card {
        grid-template-columns: 5rem minmax(0, 1fr);
        min-height: 0;
    }

    .page-home .home-feature-card__icon {
        border-right: var(--border-heavy);
        border-bottom: 0;
        min-height: 0;
        padding: 0.75rem;
    }

    .page-home .home-feature-card__icon img {
        max-width: 2.8rem;
    }

    .page-home .home-feature-card__content {
        text-align: left;
        padding: 0.75rem;
    }

    .page-home .home-hours-strip {
        grid-template-columns: 1fr;
    }

    .page-home .home-hours-strip__flag {
        display: none;
    }

    .page-home .home-hours-strip__main {
        min-height: 6rem;
        border-left: 0;
        border-right: 0;
        border-bottom: var(--border-heavy);
    }

    .page-home .home-hours-strip__time {
        min-height: 8rem;
    }
}

/* ─────────────────────────────────────────────
   SUBPAGE STACK SYSTEM
   ───────────────────────────────────────────── */

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) {
    --container: 100vw;
    --color-border: var(--color-accent);
    --border-heavy: 3px solid var(--color-accent);
    background-color: #f7f1e8;
    background-image:
        linear-gradient(180deg, #f2e9de 0%, #f7f1e8 34%, #ffffff 100%);
    position: relative;
    isolation: isolate;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event)::before,
body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event)::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    display: none;
    pointer-events: none;
    transform: translateX(-50%);
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event)::before {
    width: var(--container);
    background: #ffffff;
    z-index: 0;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event)::after {
    width: calc(var(--container) + 40px);
    z-index: 0;
    background:
        radial-gradient(100% 100% at 50% 0%, rgba(36, 23, 14, 0.14) 0%, rgba(36, 23, 14, 0.08) 30%, rgba(36, 23, 14, 0.035) 56%, rgba(36, 23, 14, 0) 76%),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.35' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='96' height='96' filter='url(%23n)' opacity='0.3'/%3E%3C/svg%3E");
    background-repeat: no-repeat, repeat;
    background-size: 100% 100%, 96px 96px;
    opacity: 0.55;
    filter: blur(10px);
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .site-header {
    position: sticky;
    top: 0;
    z-index: 60;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .site-main,
body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .site-footer {
    position: relative;
    z-index: 1;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .site-main {
    padding: 0 0 2rem;
    background: transparent !important;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-hero,
body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-shell,
body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .section-band,
body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .site-footer {
    width: var(--container);
    margin: 0 auto;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-hero,
body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-shell,
body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .section-band,
body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .site-footer {
    border-left: var(--border-heavy);
    border-right: var(--border-heavy);
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-hero {
    border-top: 0;
    border-bottom: 0;
    padding: 1.35rem 0 1.1rem !important;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-hero .container,
body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .section-band > .container {
    width: auto;
    margin: 0;
    padding: 0 1rem;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-hero__inner {
    display: block !important;
    width: 100%;
    max-width: none;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-hero__eyebrow {
    gap: 0.55rem;
    margin-bottom: 0.9rem;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none;
    color: var(--color-accent) !important;
    font-size: 0.72rem;
    letter-spacing: 0.12em;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-hero__title {
    display: block;
    width: 100%;
    margin-bottom: 0.75rem;
    padding-bottom: 0;
    border-bottom: 0;
    color: var(--color-accent) !important;
    font-size: clamp(3.6rem, 7vw, 6.2rem);
    line-height: 0.9;
    white-space: normal;
    text-wrap: balance;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-hero__sub {
    display: block;
    width: 100%;
    max-width: 48rem;
    color: rgba(13, 13, 13, 0.72) !important;
    font-size: clamp(1rem, 1.35vw, 1.15rem);
    line-height: 1.45;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-hero__meta-strip {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: 0.8rem 1.4rem;
    margin-top: 1.35rem;
    padding-top: 0.95rem;
    border-top: var(--border-heavy) !important;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-hero__meta-item {
    color: rgba(13, 13, 13, 0.6) !important;
    font-size: 0.68rem;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-hero__meta-item strong {
    color: var(--color-accent) !important;
    font-size: 0.86rem;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-hero__meta-icon {
    width: 1.55rem;
    height: 1.55rem;
    margin-bottom: 0.45rem;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-shell {
    padding: 1.3rem 1rem 2rem;
    border-top: var(--border-heavy);
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-shell > * {
    width: auto;
    max-width: none;
    margin: 0;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .section-band {
    padding: 1.3rem 0 2rem;
    border-top: var(--border-heavy);
    border-bottom: 0;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .section-divider {
    width: var(--container);
    margin: 0 auto;
    border-left: var(--border-heavy);
    border-right: var(--border-heavy);
    background: var(--color-accent) !important;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .divider-icon {
    filter: brightness(0) invert(1) !important;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .site-footer {
    margin-top: 0;
}

body.page-event .site-main > .page-shell:first-child {
    border-top: 0;
    padding-top: 1.6rem;
}

@media (min-width: 1500px) {
    body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) {
        --container: min(1360px, calc(100vw - 2.5rem));
    }

    body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event)::before,
    body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event)::after {
        display: block;
    }
}

@media (max-width: 760px) {
    body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) {
        --container: min(100%, calc(100vw - 1rem));
    }

    body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-hero__title {
        font-size: clamp(2.9rem, 14vw, 4.8rem);
    }

    body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .page-hero__meta-strip {
        grid-template-columns: 1fr;
    }
}

/* ─────────────────────────────────────────────
   UNIFIED PUBLIC HEADER
   ───────────────────────────────────────────── */

/* ═══════════════════════════════════════════════════
   SUBPAGE DESIGN SYSTEM
   ═══════════════════════════════════════════════════ */

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) {
    --color-border: var(--color-accent);
    --border-heavy: 3px solid var(--color-accent);
    background-color: #f7f1e8;
    background-image: linear-gradient(180deg, #f2e9de 0%, #f7f1e8 34%, #ffffff 100%);
}

.sub-shell {
    width: var(--container);
    margin: 0 auto;
    border-top: var(--border-heavy);
    border-left: var(--border-heavy);
    border-right: var(--border-heavy);
    border-bottom: var(--border-heavy);
    background: var(--color-white);
}

.sub-hero + .sub-section {
    border-top: 0;
}

body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .site-footer {
    width: var(--container);
    margin: 0 auto;
    border-left: var(--border-heavy);
    border-right: var(--border-heavy);
}

/* ── Sub-hero ─────────────────────────────────── */

.sub-hero__bar {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.52rem 1.25rem;
    border-bottom: var(--border-heavy);
    font-family: var(--font-display);
    font-size: 0.67rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.sub-hero__bar-num {
    opacity: 0.4;
}

.sub-hero__main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 19rem;
    align-items: stretch;
    min-height: 12rem;
    border-bottom: var(--border-heavy);
}

.sub-hero__title-wrap {
    display: flex;
    align-items: flex-end;
    padding: 0.85rem 1.1rem 1rem;
    border-right: var(--border-heavy);
}

.sub-hero__h1 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(3.2rem, 7.6vw, 5.9rem);
    font-weight: 900;
    line-height: 0.92;
    letter-spacing: -0.04em;
    text-transform: uppercase;
    color: var(--color-accent);
    white-space: nowrap;
}

.sub-hero__aside {
    display: flex;
    flex-direction: column;
}

.sub-hero__sub {
    flex: 1;
    padding: 0.9rem 1rem;
    margin: 0;
    font-size: clamp(0.82rem, 0.95vw, 0.95rem);
    line-height: 1.45;
    color: rgba(13, 13, 13, 0.7);
    border-bottom: var(--border-heavy);
}

.sub-hero__meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.sub-hero__meta-item {
    padding: 0.55rem 0.8rem;
    font-family: var(--font-display);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(13, 13, 13, 0.5);
}

.sub-hero__meta-item:nth-child(odd) {
    border-right: var(--border-heavy);
}

.sub-hero__meta-item:nth-child(n + 3) {
    border-top: var(--border-heavy);
}

.sub-hero__meta-item strong {
    display: block;
    font-size: 0.8rem;
    font-weight: 900;
    color: var(--color-accent);
    margin-bottom: 0.12rem;
}

/* ── Sub-section ──────────────────────────────── */

.sub-section {
    border-top: var(--border-heavy);
}

.sub-section__head {
    display: flex;
    align-items: center;
    min-height: 4rem;
    padding: 0.45rem 1rem;
    border-bottom: var(--border-heavy);
    overflow: hidden;
}

.sub-section__head h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 3.6vw, 3rem);
    font-weight: 900;
    line-height: 0.94;
    letter-spacing: -0.045em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.sub-section__head--accent {
    background: var(--color-accent);
    border-bottom-color: var(--color-accent);
}

.sub-section__head--accent h2 {
    color: var(--color-white);
}

/* ── Grid ─────────────────────────────────────── */

.sub-grid {
    display: grid;
    align-items: stretch;
}

.sub-grid--2   { grid-template-columns: repeat(2, 1fr); }
.sub-grid--3   { grid-template-columns: repeat(3, 1fr); }
.sub-grid--2-1 { grid-template-columns: 2fr 1fr; }
.sub-grid--1-2 { grid-template-columns: 1fr 2fr; }
.sub-grid--1-3 { grid-template-columns: 1fr 3fr; }

.sub-grid > * + * {
    border-left: var(--border-heavy);
}

/* ── Cells ────────────────────────────────────── */

.sub-cell {
    padding: 1.4rem 1.25rem;
}

.sub-cell--accent {
    background: var(--color-accent);
    color: var(--color-white);
}

.sub-cell--dark {
    background: var(--color-black);
    color: var(--color-white);
}

.sub-cell--flush {
    padding: 0;
    overflow: hidden;
}

.sub-cell--stack {
    display: flex;
    flex-direction: column;
}

.sub-cell--stack > * + * {
    border-top: var(--border-heavy);
}

.sub-cell--stack > .sub-embed-card + .sub-embed-card {
    border-top: 0;
}

.sub-cell__label {
    font-family: var(--font-display);
    font-size: 0.63rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-accent);
    margin: 0 0 0.65rem;
}

.sub-cell--accent .sub-cell__label {
    color: rgba(255, 255, 255, 0.65);
}

.sub-cell__h2 {
    margin: 0 0 0.65rem;
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 3.2vw, 3rem);
    font-weight: 900;
    line-height: 0.95;
    letter-spacing: -0.03em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.sub-cell--accent .sub-cell__h2 {
    color: var(--color-white);
}

.sub-cell__body {
    font-size: clamp(0.88rem, 1vw, 1rem);
    line-height: 1.55;
    color: rgba(13, 13, 13, 0.7);
    margin: 0;
}

.sub-cell--accent .sub-cell__body {
    color: rgba(255, 255, 255, 0.85);
}

.sub-cell__icon {
    width: 3rem;
    margin-bottom: 0.85rem;
    object-fit: contain;
}

.sub-cell--accent .sub-cell__icon {
    filter: brightness(0) invert(1);
    opacity: 0.8;
}

/* ── Sub event cards ──────────────────────────── */

.sub-events-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: stretch;
}

.sub-event-card {
    display: flex;
    flex-direction: column;
    border-right: var(--border-heavy);
}

.sub-event-card:last-child {
    border-right: 0;
}

.sub-event-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.65rem 1rem;
    border-bottom: var(--border-heavy);
    gap: 1rem;
}

.sub-event-card__title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.1rem, 1.7vw, 1.9rem);
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    color: var(--color-accent);
}

.sub-event-card__date {
    font-family: var(--font-display);
    font-size: clamp(0.9rem, 1.3vw, 1.5rem);
    font-weight: 700;
    white-space: nowrap;
    color: rgba(13, 13, 13, 0.4);
}

.sub-event-card__media {
    position: relative;
    display: block;
    flex: 1;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--color-black);
    text-decoration: none;
    min-height: 12rem;
}

.sub-event-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease;
}

.sub-event-card__media:hover img {
    transform: scale(1.04);
}

.sub-event-card__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1rem;
    background: linear-gradient(0deg, rgba(13,13,13,0.72) 0%, rgba(13,13,13,0.08) 60%, transparent 100%);
}

.sub-event-card__meta {
    font-family: var(--font-display);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.65);
    margin-bottom: 0.25rem;
}

.sub-event-card__name {
    font-family: var(--font-display);
    font-size: clamp(1rem, 1.5vw, 1.7rem);
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    color: var(--color-white);
}

/* ── Featured program ─────────────────────────── */

.sub-featured {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    min-height: 22rem;
}

.sub-featured__info {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 1.4rem 1.35rem;
    border-right: var(--border-heavy);
}

.sub-featured__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--font-display);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-accent);
    margin-bottom: 0.5rem;
}

.sub-featured__badge--live {
    color: var(--color-white);
    background: var(--color-accent);
    padding: 0.2rem 0.55rem;
}

.sub-featured__h2 {
    margin: 0 0 0.5rem;
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3.8rem);
    font-weight: 900;
    line-height: 0.92;
    letter-spacing: -0.03em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.sub-featured__schedule {
    font-family: var(--font-display);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(13,13,13,0.45);
    margin-bottom: 0.6rem;
}

.sub-featured__desc {
    font-size: clamp(0.88rem, 1vw, 1rem);
    line-height: 1.5;
    color: rgba(13,13,13,0.7);
    margin: 0 0 1.2rem;
    flex: 1;
}

.sub-featured__media {
    position: relative;
    overflow: hidden;
    background: var(--color-black);
}

.sub-featured__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.sub-featured__placeholder {
    width: 100%;
    height: 100%;
    min-height: 22rem;
    display: grid;
    place-items: center;
    background: var(--color-black);
}

.sub-featured__placeholder img {
    width: 5rem;
    opacity: 0.12;
    filter: brightness(0) invert(1);
}

.sub-featured__link {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    padding: 0.65rem 1.4rem;
    border: var(--border-heavy);
    font-family: var(--font-display);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-accent);
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}

.sub-featured__link:hover {
    background: var(--color-accent);
    color: var(--color-white);
}

/* ── Drink menu ───────────────────────────────── */

.drink-sheet {
    display: grid;
    gap: clamp(1.5rem, 3vw, 2.4rem);
    padding: clamp(1.4rem, 3vw, 2rem);
    background: var(--color-white);
}

.drink-sheet__header {
    display: grid;
    gap: 0.55rem;
    max-width: 38rem;
}

.drink-sheet__eyebrow {
    font-family: var(--font-display);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.drink-sheet__title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 900;
    line-height: 0.96;
    letter-spacing: -0.03em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.drink-sheet__subtitle {
    margin: 0;
    max-width: 34rem;
    font-size: clamp(0.92rem, 1.2vw, 1rem);
    line-height: 1.35;
    color: rgba(17, 17, 17, 0.72);
}

.drink-sheet__coming-soon {
    padding: 3rem 0 2rem;
    display: grid;
    gap: 0.6rem;
}

.drink-sheet__coming-soon-title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.4rem, 3vw, 2.2rem);
    font-weight: 900;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.drink-sheet__coming-soon-sub {
    margin: 0;
    font-size: clamp(0.9rem, 1.2vw, 1rem);
    color: rgba(17, 17, 17, 0.6);
}

.drink-sheet__sections {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    border-top: 2px solid var(--color-accent);
}

.drink-sheet__sections::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 2px;
    background: var(--color-accent);
    transform: translateX(-1px);
    pointer-events: none;
}

.drink-sheet__column {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.drink-sheet__section {
    display: grid;
    gap: 0.95rem;
    padding: 1.5rem 1.35rem 1.2rem;
    border-left: 2px solid var(--color-accent);
    border-bottom: 2px solid var(--color-accent);
    align-self: stretch;
    width: 100%;
}

.drink-sheet__column--left .drink-sheet__section {
    border-right: 0;
}

.drink-sheet__column--right .drink-sheet__section {
    border-left: 0;
    border-right: 2px solid var(--color-accent);
}

.drink-sheet__section-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem;
    align-items: baseline;
    padding-top: 0.05rem;
}

.drink-sheet__section-title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.45rem, 2.7vw, 2.35rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.drink-sheet__items {
    display: grid;
    gap: 0.7rem;
}

.drink-sheet__item {
    display: grid;
    gap: 0.18rem;
}

.drink-sheet__item-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.9rem;
    align-items: baseline;
}

.drink-sheet__item-name {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1rem, 1.5vw, 1.28rem);
    font-weight: 700;
    line-height: 1.1;
    color: var(--color-accent);
}

.drink-sheet__item-price {
    font-family: var(--font-display);
    font-size: clamp(0.98rem, 1.45vw, 1.24rem);
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    color: var(--color-accent);
}

.drink-sheet__item-desc {
    margin: 0;
    max-width: 44rem;
    font-size: clamp(0.82rem, 1.05vw, 0.98rem);
    line-height: 1.24;
    color: rgba(255, 66, 1, 0.92);
}

.sub-drinks-row {
    display: grid;
    grid-template-columns: 13rem 1fr;
    align-items: stretch;
    border-top: var(--border-heavy);
}

.sub-drinks-row:first-child {
    border-top: 0;
}

.sub-drinks-row__cat {
    display: flex;
    flex-direction: column;
    padding: 1.4rem 1.25rem;
    border-right: var(--border-heavy);
    background: var(--color-accent);
}

.sub-drinks-row__cat img {
    width: 2.6rem;
    margin-bottom: 0.85rem;
    filter: brightness(0) invert(1);
    opacity: 0.8;
}

.sub-drinks-row__cat-name {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.2rem, 2vw, 1.8rem);
    font-weight: 900;
    line-height: 0.95;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: var(--color-white);
}

.sub-drinks-row__items {
    display: flex;
    flex-direction: column;
}

.sub-drink-item {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0 1rem;
    padding: 0.85rem 1.25rem;
    border-bottom: 1px solid rgba(255, 66, 1, 0.1);
    align-items: baseline;
}

.sub-drink-item:last-child {
    border-bottom: 0;
}

.sub-drink-item__name {
    font-family: var(--font-display);
    font-size: clamp(0.9rem, 1.15vw, 1.1rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--color-black);
}

.sub-drink-item__price {
    font-family: var(--font-display);
    font-size: clamp(0.88rem, 1.05vw, 1rem);
    font-weight: 900;
    color: var(--color-accent);
    white-space: nowrap;
}

.sub-drink-item__desc {
    grid-column: 1 / -1;
    font-size: 0.78rem;
    color: rgba(13,13,13,0.45);
    margin-top: 0.1rem;
    line-height: 1.3;
}

/* ── Consent ─────────────────────────────────── */

body.is-consent-modal-open {
    overflow: hidden;
    position: fixed;
    left: 0;
    right: 0;
    width: 100%;
}

.consent-root {
    position: fixed;
    inset: auto 0 0;
    z-index: 1300;
    pointer-events: none;
}

.consent-root * {
    box-sizing: border-box;
}

.consent-banner,
.consent-modal-shell {
    pointer-events: auto;
}

.consent-banner {
    position: fixed;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    max-width: 58rem;
    margin-left: auto;
    padding: 1rem;
    border: var(--border-heavy);
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 18px 48px rgba(13, 13, 13, 0.14);
    opacity: 0;
    transform: translateY(16px);
    visibility: hidden;
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
}

.consent-banner.is-visible {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
}

.consent-banner__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem 1.25rem;
    align-items: end;
}

.consent-banner__text {
    display: grid;
    gap: 0.35rem;
}

.consent-banner__eyebrow {
    margin: 0;
    font-family: var(--font-display);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.consent-banner__title,
.consent-modal__title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 2.2vw, 1.7rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: var(--color-black);
}

.consent-banner__body,
.consent-modal__intro {
    margin: 0;
    max-width: 38rem;
    font-size: 0.96rem;
    line-height: 1.45;
    color: rgba(13, 13, 13, 0.72);
}

.consent-banner__actions,
.consent-modal__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    align-items: center;
    justify-content: flex-end;
}

.consent-button,
.consent-inline-link,
.consent-icon-button,
.site-footer__legal-button {
    font: inherit;
}

.consent-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.8rem;
    padding: 0.78rem 1rem;
    border: var(--border-heavy);
    background: var(--color-white);
    color: var(--color-black);
    font-family: var(--font-display);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    transition: background 0.18s ease, color 0.18s ease;
}

.consent-button--primary {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-white);
}

.consent-button--primary:hover,
.consent-button--primary:focus-visible,
.consent-button--secondary:hover,
.consent-button--secondary:focus-visible,
.consent-button--ghost:hover,
.consent-button--ghost:focus-visible,
.consent-inline-link:hover,
.consent-inline-link:focus-visible,
.consent-icon-button:hover,
.consent-icon-button:focus-visible {
    background: var(--color-black);
    border-color: var(--color-black);
    color: var(--color-white);
}

.consent-button--secondary {
    background: rgba(255, 66, 1, 0.08);
    color: var(--color-accent);
}

.consent-button--ghost {
    background: transparent;
}

.consent-modal-shell {
    position: fixed;
    inset: 0;
    display: none;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding: 0 0 1rem;
}

.consent-modal-shell.is-open {
    display: block;
}

.consent-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(13, 13, 13, 0.42);
    backdrop-filter: blur(8px);
}

.consent-modal {
    position: relative;
    width: min(42rem, calc(100vw - 2rem));
    margin: min(8vh, 4rem) auto 0;
    max-height: calc(100dvh - 2rem);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 1.15rem;
    border: var(--border-heavy);
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 26px 60px rgba(13, 13, 13, 0.18);
}

.consent-modal__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.8rem;
}

.consent-icon-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: var(--border-heavy);
    background: var(--color-white);
    color: var(--color-black);
    font-size: 1.6rem;
    line-height: 1;
}

.consent-category-list {
    display: grid;
    gap: 0.75rem;
    margin: 1rem 0;
}

.consent-category {
    border: var(--border-heavy);
    background: rgba(255, 255, 255, 0.82);
}

.consent-category__main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    padding: 0.9rem 1rem;
}

.consent-category__title {
    margin: 0 0 0.25rem;
    font-family: var(--font-display);
    font-size: 0.98rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-black);
}

.consent-category__description {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.42;
    color: rgba(13, 13, 13, 0.7);
}

.consent-category__toggle-wrap {
    display: grid;
    justify-items: end;
    gap: 0.45rem;
    min-width: 6rem;
}

.consent-category__status,
.consent-pill {
    font-family: var(--font-display);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.consent-switch {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.consent-switch input {
    position: absolute;
    opacity: 0;
    inset: 0;
}

.consent-switch__track {
    position: relative;
    display: inline-flex;
    width: 3.15rem;
    height: 1.8rem;
    border: var(--border-heavy);
    background: rgba(13, 13, 13, 0.08);
}

.consent-switch__track::after {
    content: '';
    position: absolute;
    top: 0.15rem;
    left: 0.15rem;
    width: 1.1rem;
    height: 1.1rem;
    background: var(--color-black);
    transition: transform 0.18s ease, background 0.18s ease;
}

.consent-switch input:checked + .consent-switch__track {
    background: rgba(255, 66, 1, 0.12);
}

.consent-switch input:checked + .consent-switch__track::after {
    transform: translateX(1.25rem);
    background: var(--color-accent);
}

.consent-switch input:focus-visible + .consent-switch__track,
.consent-button:focus-visible,
.consent-inline-link:focus-visible,
.consent-icon-button:focus-visible,
.site-footer__legal-button:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 3px;
}

.consent-switch.is-locked {
    opacity: 0.65;
}

.consent-modal__meta {
    margin-bottom: 1rem;
}

.consent-inline-link {
    display: inline-flex;
    align-items: center;
    min-height: 2.5rem;
    padding: 0.6rem 0.9rem;
    border: var(--border-heavy);
    background: transparent;
    font-family: var(--font-display);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.site-footer__legal-links {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.7rem;
}

.site-footer__legal-button {
    border: 0;
    padding: 0;
    background: transparent;
    color: rgba(255, 255, 255, 0.82);
    font-family: var(--font-mono);
    text-decoration: underline;
    text-underline-offset: 0.14em;
}

/* ── Gallery ──────────────────────────────────── */

.sub-section--gallery {
    padding: 1rem;
}

.sub-section--gallery .sub-gallery-grid,
.sub-section--gallery .sub-cell {
    margin: 0;
}

.sub-gallery-grid {
    column-count: 4;
    column-gap: 1rem;
}

.sub-gallery-item {
    position: relative;
    display: block;
    break-inside: avoid;
    margin-bottom: 1rem;
    background: var(--color-black);
    border: var(--border-heavy);
    box-shadow: 4px 4px 0 rgba(13, 13, 13, 0.08);
}

.sub-gallery-item button {
    display: block;
    width: 100%;
    border: 0;
    padding: 0;
    cursor: pointer;
    background: none;
    overflow: hidden;
}

.sub-gallery-item img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.45s ease, opacity 0.3s ease, filter 0.3s ease;
}

.sub-gallery-item:hover img {
    transform: scale(1.05);
    opacity: 0.88;
    filter: saturate(1.02);
}

.sub-gallery-item button::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 55%, rgba(13, 13, 13, 0.18));
    opacity: 0;
    transition: opacity 0.25s ease;
    pointer-events: none;
}

.sub-gallery-item:hover button::after,
.sub-gallery-item button:focus-visible::after {
    opacity: 1;
}

.sub-gallery-item button:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 4px;
}

@media (max-width: 1200px) {
    .sub-gallery-grid {
        column-count: 3;
    }
}

/* ── Counter (törzskártya) ────────────────────── */

.sub-counter {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    min-height: 20rem;
}

.sub-counter__icon {
    width: 3rem;
    filter: brightness(0) invert(1);
    opacity: 0.65;
}

.sub-counter__num {
    font-family: var(--font-display);
    font-size: clamp(5rem, 12vw, 11rem);
    font-weight: 900;
    line-height: 0.85;
    color: var(--color-white);
    letter-spacing: -0.04em;
}

.sub-counter__label {
    font-family: var(--font-display);
    font-size: clamp(0.7rem, 1vw, 0.95rem);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.65);
    margin-top: 0.25rem;
}

.sub-counter__meta {
    font-size: 0.7rem;
    color: rgba(255,255,255,0.35);
    margin-top: 0.5rem;
}

/* ── Hours + contact ──────────────────────────── */

.sub-hours {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.sub-hours__icon {
    width: 3rem;
    filter: brightness(0) invert(1);
    opacity: 0.65;
    margin-bottom: auto;
}

.sub-hours__value {
    font-family: var(--font-display);
    font-size: clamp(2.8rem, 6vw, 5.5rem);
    font-weight: 900;
    line-height: 0.88;
    color: var(--color-white);
    letter-spacing: -0.04em;
    margin-top: 1rem;
}

.sub-hours__label {
    font-family: var(--font-display);
    font-size: clamp(0.7rem, 0.95vw, 0.9rem);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.6);
    margin-top: 0.2rem;
}

.sub-contact-panel {
    padding: 1.4rem 1.25rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1.5rem;
}

.sub-contact-panel__meta {
    margin-top: auto;
}

.sub-contact-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.sub-contact-list li,
.sub-contact-list p {
    font-size: clamp(0.88rem, 1.1vw, 1rem);
    line-height: 1.4;
    margin: 0;
}

.sub-contact-list__label {
    display: block;
    margin-bottom: 0.2rem;
    font-family: var(--font-display);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(13, 13, 13, 0.56);
}

.sub-contact-list a {
    color: var(--color-accent);
    text-decoration: none;
}

.sub-contact-list a:hover {
    text-decoration: underline;
}

.sub-contact-list--light {
    color: rgba(255, 255, 255, 0.85);
}

.sub-contact-list--light .sub-contact-list__label {
    color: rgba(255, 255, 255, 0.58);
}

.sub-contact-list--light a {
    color: var(--color-white);
}

.sub-socials {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.sub-socials a {
    display: grid;
    place-items: center;
    width: 2.4rem;
    height: 2.4rem;
    border: var(--border-heavy);
    color: var(--color-accent);
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}

.sub-socials a:hover {
    background: var(--color-accent);
    color: var(--color-white);
}

.sub-socials svg {
    width: 1.1rem;
    height: 1.1rem;
    fill: currentColor;
}

.sub-socials--light a {
    border-color: rgba(255, 255, 255, 0.5);
    color: var(--color-white);
}

/* ── Embed cards (törzskártya) ────────────────── */

.sub-embed-card {
    padding: 1.25rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.sub-embed-card + .sub-embed-card {
    border-top: var(--border-heavy);
}

.sub-embed-card__label {
    font-family: var(--font-display);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-accent);
    margin: 0 0 0.4rem;
}

.sub-embed-card__title {
    margin: 0 0 1rem;
    font-family: var(--font-display);
    font-size: clamp(1.4rem, 2.5vw, 2.2rem);
    font-weight: 900;
    line-height: 0.95;
    letter-spacing: -0.025em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.sub-embed-copy {
    display: grid;
    gap: 0.95rem;
    max-width: 40rem;
}

.sub-embed-copy p {
    margin: 0;
    font-size: clamp(0.92rem, 1.02vw, 1rem);
    line-height: 1.68;
    color: rgba(13, 13, 13, 0.76);
}

.sub-embed-copy a {
    color: var(--color-accent);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.16em;
}

.mailchimp-form {
    display: grid;
    gap: 0.85rem;
    max-width: 32rem;
}

.mailchimp-form__intro,
.mailchimp-form__meta {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.5;
    color: rgba(13, 13, 13, 0.68);
}

.mailchimp-form__field {
    display: grid;
    gap: 0.35rem;
}

.mailchimp-form__consent {
    color: rgba(13, 13, 13, 0.72);
}

.mailchimp-form__label {
    font-family: var(--font-display);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.mailchimp-form__required {
    color: var(--color-black);
}

.mailchimp-form__input {
    width: 100%;
    min-height: 3.15rem;
    padding: 0.82rem 1rem;
    border: var(--border-heavy);
    background: var(--color-white);
    color: var(--color-black);
    font: inherit;
}

.mailchimp-form__input::placeholder {
    color: rgba(13, 13, 13, 0.42);
}

.mailchimp-form__input:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 3px;
}

.mailchimp-form__actions {
    display: flex;
    justify-content: flex-start;
    padding-top: 0.2rem;
}

.mailchimp-form__button {
    min-width: 13rem;
}

.mailchimp-form__honeypot {
    position: absolute;
    left: -5000px;
}

/* ── Rules ────────────────────────────────────── */

.sub-rules-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: stretch;
}

.sub-rules-card {
    padding: 1.5rem 1.25rem;
    border-right: var(--border-heavy);
}

.sub-rules-card:last-child {
    border-right: 0;
}

.sub-rules-card__icon {
    width: 2.6rem;
    margin-bottom: 0.9rem;
}

.sub-rules-card h2 {
    margin: 0 0 0.85rem;
    font-family: var(--font-display);
    font-size: clamp(1.3rem, 2.2vw, 2rem);
    font-weight: 900;
    line-height: 0.95;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.sub-rules-card ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.sub-rules-card li {
    position: relative;
    padding-left: 1rem;
    font-size: clamp(0.86rem, 1vw, 0.96rem);
    line-height: 1.5;
    color: rgba(13,13,13,0.7);
}

.sub-rules-card li::before {
    content: '—';
    position: absolute;
    left: 0;
    color: var(--color-accent);
    font-weight: 700;
}

.sub-rules-card p {
    font-size: clamp(0.86rem, 1vw, 0.96rem);
    line-height: 1.55;
    color: rgba(13,13,13,0.7);
    margin: 0 0 0.5rem;
}

.sub-legal-copy {
    padding: 1.6rem 1.4rem 1.8rem;
    max-width: 66rem;
}

.sub-legal-copy > *:first-child {
    margin-top: 0;
}

.sub-legal-copy > *:last-child {
    margin-bottom: 0;
}

.sub-legal-copy h2,
.sub-legal-copy h3,
.sub-legal-copy h4 {
    margin: 1.75rem 0 0.75rem;
    font-family: var(--font-display);
    font-weight: 900;
    line-height: 0.98;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.sub-legal-copy h2 {
    font-size: clamp(1.55rem, 2.2vw, 2.2rem);
}

.sub-legal-copy h3 {
    font-size: clamp(1.15rem, 1.7vw, 1.5rem);
}

.sub-legal-copy h4 {
    font-size: clamp(1rem, 1.4vw, 1.2rem);
}

.sub-legal-copy p,
.sub-legal-copy li,
.sub-legal-copy blockquote {
    font-size: clamp(0.94rem, 1.05vw, 1rem);
    line-height: 1.75;
    color: rgba(13,13,13,0.78);
}

.sub-legal-copy p,
.sub-legal-copy ul,
.sub-legal-copy ol,
.sub-legal-copy blockquote {
    margin: 0 0 1rem;
}

.sub-legal-copy ul,
.sub-legal-copy ol {
    padding-left: 1.3rem;
}

.sub-legal-copy li + li {
    margin-top: 0.35rem;
}

.sub-legal-copy a {
    color: var(--color-accent);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.16em;
}

.about-story {
    display: grid;
    gap: 0.95rem;
    max-width: 60rem;
}

.about-story p {
    margin: 0;
    font-size: clamp(0.98rem, 1.04vw, 1.05rem);
    line-height: 1.72;
    color: rgba(13, 13, 13, 0.78);
}

.about-story__lead {
    font-size: clamp(1.12rem, 1.22vw, 1.26rem);
    line-height: 1.6;
    color: var(--color-black);
}

.page-about .sub-cell__body {
    max-width: 30ch;
}

.page-reservation .sub-hero__main {
    grid-template-columns: minmax(0, 1fr) 25rem;
    min-height: 9.5rem;
}

.page-reservation .sub-hero__title-wrap {
    align-items: center;
}

.page-reservation .sub-hero__h1 {
    font-size: clamp(2.8rem, 6.2vw, 4.9rem);
}

.page-reservation .sub-hero__sub {
    padding: 0.8rem 0.95rem;
    font-size: clamp(0.8rem, 0.9vw, 0.9rem);
    line-height: 1.42;
}

.page-reservation .sub-hero__meta {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.8fr);
}

.page-reservation .sub-hero__meta-item {
    min-width: 0;
    padding: 0.65rem 0.85rem 0.6rem;
}

.page-reservation .sub-hero__meta-item strong {
    font-size: clamp(0.78rem, 0.92vw, 0.98rem);
    line-height: 1.08;
    overflow-wrap: anywhere;
}

.page-reservation .sub-hero__meta-item--email strong {
    font-family: var(--font-body);
    font-size: clamp(0.7rem, 0.8vw, 0.88rem);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: 0;
    text-transform: none;
    white-space: nowrap;
    overflow-wrap: normal;
}

/* ── Event detail ─────────────────────────────── */

.sub-event-hero {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    align-items: stretch;
    min-height: 0;
}

.sub-event-hero__info {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 1rem;
    padding: 2rem 1.75rem;
    border-right: var(--border-heavy);
}

.sub-event-hero__status {
    font-family: var(--font-display);
    font-size: clamp(0.65rem, 0.85vw, 0.8rem);
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-accent);
    display: flex;
    align-items: center;
    gap: 0.5em;
}

.sub-event-hero__title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(2rem, 3.8vw, 4.4rem);
    font-weight: 900;
    line-height: 0.92;
    letter-spacing: -0.035em;
    text-transform: uppercase;
    color: var(--color-black);
}

.sub-event-hero__details {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin: 0;
    padding: 0.85rem 0;
    border-top: 1px solid rgba(13,13,13,0.1);
    border-bottom: 1px solid rgba(13,13,13,0.1);
}

.sub-event-hero__detail {
    display: grid;
    grid-template-columns: 5rem 1fr;
    gap: 0.5rem;
    align-items: baseline;
}

.sub-event-hero__detail dt {
    font-family: var(--font-display);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(13,13,13,0.38);
}

.sub-event-hero__detail dd {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(0.75rem, 1vw, 0.9rem);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-black);
}

.sub-event-hero__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    width: fit-content;
    padding: 0.85rem 1rem 0.8rem;
    border: 2px solid var(--color-accent);
    background: var(--color-accent);
    color: var(--color-white);
    font-family: var(--font-display);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.sub-event-hero__cta:hover,
.sub-event-hero__cta:focus-visible {
    background: var(--color-black);
    border-color: var(--color-black);
    color: var(--color-white);
}

.schedule-inline {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.schedule-inline__icon {
    opacity: 0.68;
}

.sub-event-hero__desc {
    font-size: clamp(0.88rem, 1.1vw, 1rem);
    line-height: 1.6;
    color: rgba(13,13,13,0.65);
    margin: 0;
    max-width: 40ch;
    flex: 1;
}

.sub-event-hero__back {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-family: var(--font-display);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    color: rgba(13,13,13,0.4);
    margin-top: auto;
    transition: color 0.2s;
}

.sub-event-hero__back:hover {
    color: var(--color-accent);
}

.sub-event-hero__media {
    position: relative;
    overflow: hidden;
    align-self: stretch;
    aspect-ratio: auto;
    min-height: 0;
    height: 100%;
    background: var(--color-black);
}

.sub-event-hero__media--placeholder {
    background-size: cover;
    background-position: center;
}

.sub-event-hero__placeholder-logo {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding-left: 2rem;
    pointer-events: none;
}

.sub-event-hero__placeholder-logo img {
    width: clamp(7rem, 14vw, 14rem);
    filter: brightness(0) invert(1);
    opacity: 0.15;
}

.sub-event-hero__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.sub-event-body {
    display: grid;
    grid-template-columns: 1fr 20rem;
    align-items: start;
}

.sub-event-body__main {
    padding: 1.5rem 1.35rem;
    border-right: var(--border-heavy);
}

.sub-event-body__side {
    position: sticky;
    top: 5rem;
    align-self: start;
    padding: 1.25rem;
}

.sub-event-body__side--newsletter {
    position: relative;
    top: auto;
    align-self: stretch;
    padding: 0;
    background: linear-gradient(180deg, rgba(255, 248, 241, 0.98), rgba(255, 243, 233, 0.96));
}

.sub-event-body__side-block {
    padding-bottom: 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid rgba(13,13,13,0.1);
}

.sub-event-body__side-label {
    font-family: var(--font-display);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(13,13,13,0.38);
    margin-bottom: 0.3rem;
}

.sub-event-body__side-value {
    font-family: var(--font-display);
    font-size: clamp(0.82rem, 1vw, 0.95rem);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-black);
    line-height: 1.4;
}

.sub-event-side-newsletter {
    display: grid;
    gap: 0.65rem;
    padding: 1.1rem;
    min-height: 0;
    background: transparent;
}

.sub-event-body__side--newsletter .sub-event-side-newsletter {
    position: sticky;
    top: 5rem;
}

.sub-event-side-newsletter__eyebrow {
    margin: 0;
    font-family: var(--font-display);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 66, 1, 0.72);
}

.sub-event-side-newsletter__title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.1rem, 1.7vw, 1.55rem);
    font-weight: 900;
    line-height: 0.98;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.sub-event-side-newsletter__body {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.5;
    color: rgba(13, 13, 13, 0.66);
}

.sub-event-side-newsletter__form {
    display: grid;
    gap: 0.6rem;
}

.sub-event-side-newsletter__consent {
    color: rgba(13, 13, 13, 0.72);
}

.sub-event-side-newsletter__input {
    min-width: 0;
    min-height: 3rem;
    padding: 0.8rem 0.9rem;
    border: 2px solid rgba(255, 66, 1, 0.78);
    background: var(--color-white);
    color: var(--color-black);
    font: inherit;
}

.sub-event-side-newsletter__input::placeholder {
    color: rgba(13, 13, 13, 0.42);
}

.sub-event-side-newsletter__input:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 3px;
}

.sub-event-side-newsletter__button {
    min-height: 3rem;
    padding: 0.8rem 1rem;
    border: 2px solid var(--color-accent);
    background: var(--color-accent);
    color: var(--color-white);
    font-family: var(--font-display);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.sub-event-side-newsletter__button:hover,
.sub-event-side-newsletter__button:focus-visible {
    background: var(--color-black);
    border-color: var(--color-black);
    color: var(--color-white);
}

.sub-event-side-newsletter__honeypot {
    position: absolute;
    left: -5000px;
}

.sub-event-back--inside {
    margin-top: 0.2rem;
}

.sub-event-back {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-family: var(--font-display);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    color: rgba(13,13,13,0.4);
    margin-top: 0.5rem;
    transition: color 0.2s;
}

.sub-event-back:hover {
    color: var(--color-accent);
}

.sub-event-newsletter {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 28rem);
    gap: 1.25rem;
    align-items: center;
    padding: 1.35rem 1.5rem;
    background: linear-gradient(180deg, rgba(255, 248, 241, 0.96), rgba(255, 244, 234, 0.96));
    color: var(--color-black);
}

.program-archive {
    background: var(--color-white);
}

.program-archive[open] .program-archive__summary {
    border-bottom: var(--border-heavy);
}

.program-archive__summary {
    display: flex;
    align-items: center;
    min-height: 3.5rem;
    padding: 0.75rem 1rem;
    cursor: pointer;
    list-style: none;
    font-family: var(--font-display);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(13,13,13,0.55);
}

.program-archive__summary::-webkit-details-marker {
    display: none;
}

.program-archive__summary::after {
    content: "+";
    margin-left: auto;
    font-size: 1.25rem;
    line-height: 1;
    color: var(--color-accent);
}

.program-archive[open] .program-archive__summary::after {
    content: "−";
}

.program-archive__body {
    display: grid;
    gap: 1rem;
    padding: 1rem;
}

.program-archive__intro {
    margin: 0;
    max-width: 42rem;
    font-size: 0.92rem;
    line-height: 1.5;
    color: rgba(13,13,13,0.62);
}

.program-archive__list {
    display: grid;
    gap: 0;
    border-top: 1px solid rgba(13,13,13,0.08);
}

.program-archive__item {
    display: grid;
    grid-template-columns: minmax(0, 20rem) minmax(0, 1fr);
    gap: 1rem;
    padding: 0.85rem 0;
    border-bottom: 1px solid rgba(13,13,13,0.08);
    text-decoration: none;
    color: var(--color-black);
}

.program-archive__item:hover,
.program-archive__item:focus-visible {
    color: var(--color-accent);
}

.program-archive__date {
    font-family: var(--font-display);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(13,13,13,0.45);
}

.program-archive__name {
    font-family: var(--font-display);
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.sub-event-newsletter__copy {
    display: grid;
    gap: 0.35rem;
}

.sub-event-newsletter__eyebrow {
    margin: 0;
    font-family: var(--font-display);
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 66, 1, 0.72);
}

.sub-event-newsletter__title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.4rem, 2.4vw, 2.25rem);
    font-weight: 900;
    line-height: 0.95;
    letter-spacing: -0.025em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.sub-event-newsletter__body {
    margin: 0;
    max-width: 42rem;
    font-size: 0.92rem;
    line-height: 1.5;
    color: rgba(13, 13, 13, 0.66);
}

.sub-event-newsletter__form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.6rem;
    align-items: center;
}

.sub-event-newsletter__consent {
    order: 3;
    color: rgba(13, 13, 13, 0.72);
}

.sub-event-newsletter__input {
    min-width: 0;
    min-height: 3rem;
    padding: 0.8rem 0.95rem;
    border: 2px solid rgba(255, 66, 1, 0.82);
    background: var(--color-white);
    color: var(--color-black);
    font: inherit;
}

.sub-event-newsletter__input::placeholder {
    color: rgba(13, 13, 13, 0.42);
}

.sub-event-newsletter__input:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 3px;
}

.sub-event-newsletter__button {
    min-height: 3rem;
    padding: 0.8rem 1rem;
    border: 2px solid var(--color-accent);
    background: var(--color-accent);
    color: var(--color-white);
    font-family: var(--font-display);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.sub-event-newsletter__button:hover,
.sub-event-newsletter__button:focus-visible {
    background: var(--color-black);
    border-color: var(--color-black);
    color: var(--color-white);
}

.sub-event-newsletter__honeypot {
    position: absolute;
    left: -5000px;
}

.sub-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.85rem;
}

.sub-tag {
    padding: 0.22rem 0.6rem;
    border: 1px solid var(--color-accent);
    font-family: var(--font-display);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.sub-related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: stretch;
}

.sub-related-card {
    display: flex;
    flex-direction: column;
    border-right: var(--border-heavy);
    text-decoration: none;
    color: inherit;
    transition: background 0.2s;
}

.sub-related-card:last-child {
    border-right: 0;
}

.sub-related-card__head {
    padding: 0.7rem 1rem;
    border-bottom: var(--border-heavy);
}

.sub-related-card__title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1rem, 1.6vw, 1.7rem);
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    color: var(--color-accent);
}

.sub-related-card__meta {
    font-family: var(--font-display);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(13,13,13,0.4);
    margin-top: 0.2rem;
}

.sub-related-card__media--placeholder {
    background-size: cover;
    background-position: center;
}

.sub-related-card__placeholder-icon {
    position: absolute;
    inset: 0;
    margin: auto;
    width: clamp(3rem, 6vw, 5rem);
    filter: brightness(0) invert(1);
    opacity: 0.15;
    object-fit: unset !important;
    height: auto !important;
}

.sub-related-card__media {
    flex: 1;
    position: relative;
    overflow: hidden;
    background: var(--color-black);
    min-height: 10rem;
}

.sub-related-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease;
}

.sub-related-card:hover .sub-related-card__media img {
    transform: scale(1.04);
}

/* ── Calendar in sub-shell ────────────────────── */

.sub-shell .program-calendar {
    padding: 1.25rem;
}

.sub-shell .cal-popup {
    position: fixed;
}

/* ── Responsive ───────────────────────────────── */

/* Tablet: grids that benefit from early stacking */
@media (max-width: 900px) {
    .sub-grid--2,
    .sub-grid--2-1,
    .sub-grid--1-2,
    .sub-grid--1-3 {
        grid-template-columns: 1fr;
    }

    .sub-grid--2 > * + *,
    .sub-grid--2-1 > * + *,
    .sub-grid--1-2 > * + *,
    .sub-grid--1-3 > * + * {
        border-left: 0;
        border-top: var(--border-heavy);
    }

    .page-reservation .sub-hero__main {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .page-reservation .sub-hero__title-wrap {
        border-right: 0;
        border-bottom: var(--border-heavy);
    }

    .sub-drinks-row {
        grid-template-columns: 1fr;
    }

    .sub-drinks-row__cat {
        border-right: 0;
        border-bottom: var(--border-heavy);
    }

    .drink-sheet {
        padding: 1.1rem;
        border-width: 4px;
    }

    .drink-sheet__sections {
        border-top-width: 4px;
    }

    .drink-sheet__sections::before {
        width: 4px;
        transform: translateX(-2px);
    }

    .drink-sheet__section {
        border-left-width: 4px;
        border-right-width: 0;
        border-bottom-width: 4px;
        padding: 1.2rem 1rem 1rem;
    }

    .drink-sheet__column--right .drink-sheet__section {
        border-right-width: 4px;
    }

    .drink-sheet__item-main {
        grid-template-columns: 1fr auto;
        align-items: start;
    }

    .sub-gallery-grid {
        column-count: 2;
    }

    .sub-section--gallery {
        padding: 0.75rem;
    }

    .consent-banner__content,
    .consent-category__main {
        grid-template-columns: 1fr;
    }

    .consent-banner__actions,
    .consent-modal__footer {
        justify-content: flex-start;
    }

    .consent-category__toggle-wrap {
        justify-items: start;
    }
}

/* Mobile: hero sections, event layout, rules */
@media (max-width: 700px) {
    .sub-hero__main {
        display: block;
    }

    .sub-hero__title-wrap {
        border-right: 0;
        padding: 0.9rem 1rem 0.8rem;
        border-bottom: var(--border-heavy);
    }

    .sub-hero__aside {
        border-top: 0;
        padding: 0;
    }

    .sub-hero__h1 {
        font-size: clamp(3rem, 14vw, 4.5rem);
    }

    .sub-hero__meta {
        border-top: 0;
    }

    .sub-section__head h2 {
        font-size: clamp(1.8rem, 8vw, 2.6rem);
    }

    .sub-featured {
        grid-template-columns: 1fr;
    }

    .sub-featured__info {
        border-right: 0;
        border-bottom: var(--border-heavy);
    }

    .sub-featured__media {
        min-height: 56vw;
    }

    .sub-event-hero {
        grid-template-columns: 1fr;
        min-height: unset;
    }

    .sub-event-hero__info {
        border-right: 0;
        border-bottom: var(--border-heavy);
        padding: 1.5rem 1.25rem;
        gap: 0.75rem;
    }

    .sub-event-hero__media {
        aspect-ratio: 16 / 9;
        min-height: unset;
    }

    .sub-event-body {
        grid-template-columns: 1fr;
    }

    .sub-event-newsletter {
        grid-template-columns: 1fr;
        padding: 1.1rem 1.25rem;
    }

    .sub-event-newsletter__form {
        grid-template-columns: 1fr;
    }

    .sub-event-body__main {
        border-right: 0;
    }

    .sub-event-body__side {
        display: grid;
        gap: 1rem;
        position: static;
        top: auto;
        padding: 1rem 1.25rem;
        border-top: var(--border-heavy);
    }

    .sub-event-body__side--newsletter {
        padding: 0;
        border-top: 0;
    }

    .sub-event-body__side--newsletter .sub-event-side-newsletter {
        position: static;
        top: auto;
    }

    .sub-rules-grid {
        display: flex;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .sub-rules-grid::-webkit-scrollbar { display: none; }

    .sub-rules-card {
        flex: 0 0 82vw;
        scroll-snap-align: start;
        border-right: var(--border-heavy);
        border-bottom: 0;
    }

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

    .sub-related-card {
        border-right: 0;
        border-bottom: var(--border-heavy);
    }

    .sub-related-card:last-child {
        border-bottom: 0;
    }
}

@media (min-width: 981px) {
    .nav__menu a {
        padding: 0 0.92rem;
    }
}

@media (min-width: 981px) and (max-width: 1100px) {
    .nav__logo {
        padding: 0 0.95rem;
    }

    .nav__logo-img {
        height: 1.2rem;
    }

    .nav__menu a {
        padding: 0 0.62rem;
        font-size: 0.88rem;
    }

    .nav__lang {
        padding: 0 0.75rem;
        font-size: 0.9rem;
    }
}

body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__menu.is-open {
    background: var(--color-accent) !important;
    color: var(--color-white) !important;
}

@media (max-width: 980px) {
    body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__inner.container {
        grid-template-columns: minmax(0, 1fr) auto auto;
        grid-template-areas:
            "logo lang burger"
            "menu menu  menu";
    }

    body:is(.page-home, .page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__logo {
        width: auto;
        min-width: 0;
    }
}

/* ── Program + Event page — home-style event cards ────── */

:is(.page-program, .page-event) .home-programs-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
}

:is(.page-program, .page-event) .home-program-card {
    display: flex;
    flex-direction: column;
}

:is(.page-program, .page-event) .home-program-card__head {
    min-height: 4rem;
    padding: 0.6rem 1.25rem;
}

:is(.page-program, .page-event) .home-program-card__head h3,
:is(.page-program, .page-event) .home-program-card__date {
    font-size: clamp(1.2rem, 1.7vw, 2rem);
    line-height: 1;
}

:is(.page-program, .page-event) .home-program-card__media {
    flex: 1;
    aspect-ratio: 16 / 9;
    min-height: 0;
}

:is(.page-program, .page-event) .home-program-card__media--placeholder {
    background-color: var(--color-black);
    background-size: cover;
    background-position: center;
}

:is(.page-program, .page-event) .home-program-card__overlay {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1rem;
    background: linear-gradient(180deg, rgba(13,13,13,0.35), rgba(13,13,13,0.55) 48%, rgba(13,13,13,0.75));
}

:is(.page-program, .page-event) .home-program-card__topline {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-family: var(--font-display);
    font-size: clamp(0.9rem, 1.1vw, 1.3rem);
    font-weight: 700;
    color: var(--color-white);
}

:is(.page-program, .page-event) .home-program-card__middle {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    text-align: center;
}

:is(.page-program, .page-event) .home-program-card__label {
    min-height: 0;
    padding: 0.5rem 1.5rem;
    border-width: 3px;
    font-size: clamp(1.1rem, 1.6vw, 2rem);
    letter-spacing: 0;
}

:is(.page-program, .page-event) .home-program-card__copy {
    max-width: 18ch;
    margin: 0;
    color: var(--color-white);
    font-family: var(--font-display);
    font-size: clamp(0.85rem, 0.95vw, 1.1rem);
    font-weight: 700;
    line-height: 1.05;
    text-transform: uppercase;
}

:is(.page-program, .page-event) .home-program-card__wave img {
    width: 2.4rem;
    filter: brightness(0) invert(1);
    opacity: 0.7;
}

:is(.page-program, .page-event) .home-program-card__brand img {
    width: 2.8rem;
    filter: brightness(0) invert(1);
}

:is(.page-program, .page-event) .home-program-card__placeholder-logo {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding-left: 1.5rem;
    pointer-events: none;
}

:is(.page-program, .page-event) .home-program-card__placeholder-logo img {
    width: clamp(6rem, 12vw, 12rem);
    filter: brightness(0) invert(1);
    opacity: 0.18;
}

/* Featured card: text left, image right */
:is(.page-program, .page-event) .home-program-card--featured {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    min-height: clamp(240px, 26vw, 380px);
    border-right: 0;
    border-bottom: var(--border-heavy);
}

:is(.page-program, .page-event) .home-program-card--featured .home-program-card__head {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
    min-height: unset;
    padding: 1.75rem 2rem;
    border-bottom: 0;
    border-right: var(--border-heavy);
}

:is(.page-program, .page-event) .home-program-card--featured .home-program-card__media {
    aspect-ratio: 16 / 9;
    min-height: unset;
    height: auto;
}

:is(.page-program, .page-event) .home-program-card--featured .home-program-card__overlay {
    justify-content: flex-end;
    background: linear-gradient(180deg, transparent 55%, rgba(13,13,13,0.5));
}

:is(.page-program, .page-event) .home-program-card--featured .home-program-card__placeholder-logo img {
    width: clamp(7rem, 14vw, 14rem);
}

/* Featured card text elements */
.featured-card__status {
    font-family: var(--font-display);
    font-size: clamp(0.65rem, 0.85vw, 0.8rem);
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-accent);
    display: flex;
    align-items: center;
    gap: 0.5em;
}

.featured-card__title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 3vw, 4.2rem);
    font-weight: 900;
    line-height: 0.92;
    text-transform: uppercase;
    color: var(--color-black);
    letter-spacing: -0.02em;
}

.featured-card__desc {
    margin: 0;
    font-size: clamp(0.82rem, 1vw, 1rem);
    line-height: 1.55;
    color: rgba(13, 13, 13, 0.65);
    max-width: 34ch;
}

.featured-card__footer {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
    margin-top: auto;
    padding-top: 1rem;
    width: 100%;
    border-top: 1px solid rgba(13, 13, 13, 0.12);
}

.featured-card__date {
    font-family: var(--font-display);
    font-size: clamp(0.6rem, 0.8vw, 0.78rem);
    font-weight: 600;
    letter-spacing: 0.1em;
    color: rgba(13, 13, 13, 0.42);
    text-transform: uppercase;
    line-height: 1.5;
}

.featured-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    font-family: var(--font-display);
    font-size: clamp(0.75rem, 0.9vw, 0.88rem);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--color-white);
    background: var(--color-accent);
    padding: 0.6em 1.2em;
    transition: background 0.2s ease, color 0.2s ease;
}

.featured-card__cta:hover,
.featured-card__cta:focus-visible {
    background: var(--color-black);
    color: var(--color-white);
}

/* Pulsing live dot */
.live-dot {
    display: inline-block;
    width: 0.65em;
    height: 0.65em;
    border-radius: 50%;
    background: var(--color-accent);
    animation: live-pulse 1.6s ease-in-out infinite;
    flex-shrink: 0;
}

@keyframes live-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%       { opacity: 0.35; transform: scale(0.6); }
}

@media (max-width: 760px) {
    /* Card grids: horizontal scroll */
    :is(.page-program, .page-event) .home-programs-grid {
        display: flex;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    :is(.page-program, .page-event) .home-programs-grid::-webkit-scrollbar { display: none; }

    :is(.page-program, .page-event) .home-program-card {
        flex: 0 0 82vw;
        scroll-snap-align: start;
        border-right: var(--border-heavy);
        border-bottom: 0;
    }

    :is(.page-program, .page-event) .home-program-card:last-child {
        border-right: 0;
    }

    /* Featured card: stacks on mobile */
    :is(.page-program, .page-event) .home-program-card--featured {
        grid-template-columns: 1fr;
        min-height: unset;
        flex: unset;
        scroll-snap-align: unset;
    }

    :is(.page-program, .page-event) .home-program-card--featured .home-program-card__head {
        border-right: 0;
        border-bottom: var(--border-heavy);
        padding: 1.5rem 1.25rem;
    }

    :is(.page-program, .page-event) .home-program-card--featured .home-program-card__media {
        aspect-ratio: 16 / 9;
        height: auto;
    }
}

@media (max-width: 760px) {
    body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) {
        --container: 100vw;
    }

    body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event)::before,
    body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event)::after {
        display: none !important;
    }

    body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .site-header {
        width: 100%;
        margin: 0;
    }

    body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .sub-shell,
    body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .site-footer {
        width: min(100%, calc(100vw - 1rem));
        margin: 0 auto;
    }

    body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .sub-shell {
        border-top: 0;
    }

    body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .site-main {
        padding-bottom: 0;
    }

    body:is(.page-program, .page-membership, .page-rules, .page-contact, .page-drinks, .page-gallery, .page-event) .nav__inner.container {
        width: 100%;
        margin: 0;
        padding: 0;
    }

    .sub-hero__bar {
        padding: 0.7rem 1rem 0.65rem;
        gap: 0.4rem;
        font-size: 0.6rem;
        line-height: 1.25;
        letter-spacing: 0.12em;
        flex-wrap: wrap;
    }

    .sub-hero__main {
        display: block;
        min-height: 0;
        border-bottom: 0;
    }

    .sub-hero__title-wrap {
        align-items: flex-start;
        padding: 0.9rem 1rem 0.8rem;
        border-right: 0;
        border-bottom: var(--border-heavy);
    }

    .sub-hero__h1 {
        font-size: clamp(2.35rem, 11.5vw, 3.6rem);
        line-height: 0.9;
        white-space: normal;
        text-wrap: balance;
    }

    .sub-hero__aside {
        border-top: 0;
        padding: 0;
    }

    .sub-hero__sub {
        padding: 0.95rem 1rem 1rem;
        font-size: 0.94rem;
        line-height: 1.55;
        border-bottom: var(--border-heavy);
    }

    .sub-hero__meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        border-top: 0;
    }

    .sub-hero__meta-item {
        padding: 0.78rem 0.9rem 0.72rem;
        font-size: 0.58rem;
    }

    .sub-hero__meta-item strong {
        font-size: 0.82rem;
        line-height: 1.12;
        margin-bottom: 0.18rem;
    }

    .sub-section__head {
        min-height: 0;
        padding: 0.85rem 1rem;
    }

    .sub-section__head h2 {
        font-size: clamp(1.55rem, 7.5vw, 2.25rem);
    }

    .sub-cell,
    .sub-featured__info,
    .sub-event-hero__info,
    .sub-event-body__main,
    .sub-embed-card,
    .sub-shell .program-calendar {
        padding: 1rem;
    }

    .sub-cell--stack > * + * {
        border-top: var(--border-heavy);
    }

    .sub-contact-panel {
        padding: 1rem;
        gap: 1rem;
    }

    .sub-contact-panel__meta {
        margin-top: 0;
    }

    .sub-counter {
        min-height: 0;
        gap: 1.25rem;
    }

    .sub-counter__num {
        font-size: clamp(3.8rem, 18vw, 5.8rem);
    }

    .sub-hours__value {
        font-size: clamp(2.8rem, 15vw, 4.8rem);
    }

    .sub-grid--2,
    .sub-grid--3,
    .sub-grid--2-1,
    .sub-grid--1-2,
    .sub-grid--1-3,
    .sub-event-body {
        grid-template-columns: 1fr;
    }

    .sub-grid > * + * {
        border-left: 0;
        border-top: var(--border-heavy);
    }

    .sub-drinks-row {
        grid-template-columns: 1fr;
    }

    .sub-drinks-row__cat {
        padding: 1rem;
        border-right: 0;
        border-bottom: var(--border-heavy);
    }

    .sub-drink-item {
        padding: 0.9rem 1rem;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
    }

    .drink-sheet {
        gap: 0;
        padding: 0;
        border-width: 2px;
    }

    .drink-sheet__header {
        padding: 1rem;
        border-bottom: 2px solid var(--color-accent);
    }

    .drink-sheet__sections {
        grid-template-columns: 1fr;
        border-top-width: 0;
    }

    .drink-sheet__sections::before {
        display: none;
    }

    .drink-sheet__column--right .drink-sheet__section {
        border-left-width: 2px;
    }

    .drink-sheet__column--left .drink-sheet__section,
    .drink-sheet__column--right .drink-sheet__section {
        border-right-width: 2px;
    }

    .drink-sheet__item-main {
        gap: 0.75rem;
    }

    .drink-sheet__item-desc {
        max-width: none;
    }

    .drink-sheet__section {
        padding: 1rem 0.9rem 0.9rem;
        border-top-width: 2px;
        border-left-width: 2px;
        border-right-width: 2px;
        border-bottom-width: 2px;
    }

    .drink-sheet__column:first-child .drink-sheet__section:first-child {
        border-top-width: 0;
    }

    .drink-sheet__section-title {
        font-size: clamp(1.35rem, 8vw, 2rem);
    }

    .consent-banner {
        left: 0.5rem;
        right: 0.5rem;
        bottom: 0.5rem;
        padding: 0.9rem;
    }

    .consent-banner__title,
    .consent-modal__title {
        font-size: 1.15rem;
    }

    .consent-banner__body,
    .consent-modal__intro,
    .consent-category__description {
        font-size: 0.9rem;
    }

    .consent-button {
        width: 100%;
        justify-content: center;
    }

    .consent-modal {
        width: calc(100vw - 1rem);
        margin-top: 0.5rem;
        max-height: calc(100dvh - 1rem);
        padding: 0.9rem;
    }

    .sub-drink-item__name,
    .sub-drink-item__price {
        font-size: 0.98rem;
    }

    .sub-drink-item__desc {
        margin-top: 0.2rem;
        font-size: 0.8rem;
        line-height: 1.38;
    }

    .sub-gallery-grid {
        column-count: 1;
        column-gap: 0;
        padding: 0.6rem;
    }

    .sub-section--gallery {
        padding: 0;
        border-top: var(--border-heavy);
    }

    .sub-gallery-item {
        margin-bottom: 0.6rem;
        box-shadow: none;
    }

    .sub-gallery-item:last-child {
        margin-bottom: 0;
    }

    .program-archive__item {
        grid-template-columns: 1fr;
        gap: 0.35rem;
    }

    .sub-rules-grid {
        display: grid;
        grid-template-columns: 1fr;
        overflow: visible;
        scrollbar-width: auto;
    }

    .sub-rules-card {
        padding: 1.1rem 1rem;
        border-right: 0;
        border-bottom: var(--border-heavy);
    }

    .sub-rules-card:last-child {
        border-bottom: 0;
    }

    .sub-rules-card h2 {
        font-size: clamp(1.45rem, 8vw, 2rem);
    }

    .sub-rules-card h2 br {
        display: none;
    }

    .sub-event-hero {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .sub-event-hero__info {
        gap: 0.85rem;
        border-right: 0;
        border-bottom: var(--border-heavy);
    }

    .sub-event-hero__title {
        font-size: clamp(2rem, 10vw, 3.4rem);
    }

    .sub-event-hero__details {
        gap: 0.65rem;
        padding: 0.8rem 0;
    }

    .sub-event-hero__detail {
        grid-template-columns: 1fr;
        gap: 0.15rem;
    }

    .sub-event-hero__desc {
        max-width: none;
        font-size: 0.95rem;
    }

    .sub-event-hero__media {
        aspect-ratio: 1.1 / 1;
        min-height: 0;
    }

    .sub-event-body__main {
        border-right: 0;
    }

    .sub-event-body__side {
        display: none;
    }

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

    .sub-related-card {
        border-right: 0;
        border-bottom: var(--border-heavy);
    }

    .sub-related-card:last-child {
        border-bottom: 0;
    }

    .program-calendar {
        display: grid;
        gap: 1rem;
    }

    .cal-month {
        width: 100%;
        box-shadow: none;
    }

    :is(.page-program, .page-event) .home-programs-grid {
        display: grid;
        grid-template-columns: 1fr;
        overflow: visible;
        scroll-snap-type: none;
    }

    :is(.page-program, .page-event) .home-program-card {
        flex: none;
        border-right: 0;
        border-bottom: var(--border-heavy);
    }

    :is(.page-program, .page-event) .home-program-card:last-child {
        border-bottom: 0;
    }

    :is(.page-program, .page-event) .home-program-card__head {
        min-height: 0;
        padding: 0.85rem 1rem;
        gap: 0.55rem;
    }

    :is(.page-program, .page-event) .home-program-card__head h3,
    :is(.page-program, .page-event) .home-program-card__date {
        font-size: clamp(1rem, 5vw, 1.35rem);
    }

    :is(.page-program, .page-event) .home-program-card__overlay {
        padding: 1rem 0.9rem;
    }

    :is(.page-program, .page-event) .home-program-card__label {
        padding: 0.45rem 0.9rem;
        font-size: clamp(1rem, 5vw, 1.35rem);
    }

    :is(.page-program, .page-event) .home-program-card__copy {
        max-width: 22ch;
        font-size: 0.88rem;
        line-height: 1.12;
    }

    :is(.page-program, .page-event) .home-program-card--featured {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    :is(.page-program, .page-event) .home-program-card--featured .home-program-card__head {
        padding: 1rem;
        border-right: 0;
        border-bottom: var(--border-heavy);
    }

    .featured-card__title {
        font-size: clamp(1.9rem, 10vw, 3rem);
    }

    .featured-card__desc {
        max-width: none;
        font-size: 0.94rem;
    }

    .featured-card__footer {
        gap: 0.8rem;
        padding-top: 0.8rem;
    }
}
