/* Shared responsive layer. Loaded after page-level styles. */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
}

body {
    padding-top: calc(var(--ribbon-height) + var(--header-height));
}

main,
section,
.container,
.container > *,
[class*="__grid"] > *,
[class*="__layout"] > * {
    min-width: 0;
}

.container {
    width: 100%;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
li,
a,
span {
    overflow-wrap: break-word;
}

.rt-ribbon__age {
    flex: 0 0 auto;
}

.rt-ribbon__text {
    min-width: 0;
    margin: 0;
    font-size: inherit;
    line-height: 1.35;
}

.btn,
.input,
.textarea,
select {
    min-width: 0;
    max-width: 100%;
}

.btn {
    text-align: center;
    line-height: 1.35;
}

.cookie-banner {
    max-height: 100dvh;
    overflow-y: auto;
}

@media (max-width: 1180px) {
    .rt-ribbon__inner {
        font-size: 0.74rem;
        letter-spacing: 0.12em;
    }
}

@media (max-width: 1024px) {
    .home-featured__grid,
    .home-gastro__grid,
    .home-poker__grid,
    .home-vip__grid,
    .home-team__grid,
    .home-social__grid,
    .home-newsletter__grid,
    .menu-section__layout,
    .menu-section__layout--reverse,
    .section-highlight__grid,
    .section-upcoming__grid,
    .section-guest__grid,
    .vip-section__grid,
    .vip-section__grid--reverse,
    .vip-section__grid--events,
    .reservation-layout__grid,
    .contact-hero__grid,
    .contact-main__grid,
    .careers-hero__inner,
    .cookie-layout__grid,
    .terms-layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 960px) {
    :root {
        --header-height: 68px;
    }

    .site-header__inner {
        height: var(--header-height);
        gap: var(--space-3);
    }

    .nav-toggle {
        display: flex;
        flex: 0 0 40px;
    }

    .site-nav {
        position: fixed;
        top: calc(var(--ribbon-height) + var(--header-height));
        right: 0;
        left: 0;
        z-index: 850;
        max-height: calc(100dvh - var(--ribbon-height) - var(--header-height));
        overflow-y: auto;
        overscroll-behavior: contain;
        transform: translateY(-12px);
        opacity: 0;
        pointer-events: none;
        transition: opacity var(--transition-base), transform var(--transition-base);
    }

    .site-nav--open {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }

    .site-nav__list {
        width: 100%;
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-2);
        padding: var(--space-4) var(--layout-gutter);
        background: radial-gradient(circle at 0 0, rgba(212, 175, 55, 0.12), transparent 60%), var(--color-bg-velvet);
        border-bottom: 1px solid rgba(184, 168, 138, 0.35);
        box-shadow: 0 24px 50px rgba(0, 0, 0, 0.9);
    }

    .site-nav__item,
    .site-nav__link {
        display: block;
        width: 100%;
    }

    .site-nav__link {
        padding-block: 0.65rem;
    }

    .site-nav__item--cta .site-nav__link--cta {
        padding-block: 0.7rem;
    }

    .home-hero__grid,
    .careers-hero__inner,
    .contact-hero__grid,
    .contact-main__grid,
    .reservation-layout__grid,
    .vip-section__grid,
    .menu-section__layout,
    .section-highlight__grid,
    .section-upcoming__grid,
    .section-guest__grid {
        gap: var(--space-6);
    }

    .grid-2,
    .disclaimer-grid,
    .privacy-next__grid,
    .section-fairplay__grid,
    .section-gallery__grid,
    .section-faq__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .cookie-toc,
    .terms-toc__card {
        position: static;
    }
}

@media (max-width: 768px) {
    :root {
        --ribbon-height: 60px;
        --layout-gutter: 20px;
    }

    .rt-ribbon {
        height: var(--ribbon-height);
        padding: 7px 14px;
    }

    .rt-ribbon__inner {
        justify-content: flex-start;
        gap: 9px;
        font-size: 0.66rem;
        line-height: 1.35;
        letter-spacing: 0.08em;
    }

    .rt-ribbon__age {
        height: 24px;
        padding-inline: 9px;
        font-size: 0.66rem;
    }

    .rt-ribbon__text {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }

    .home-hero {
        padding-block: var(--space-10);
    }

    .home-hero__grid {
        gap: var(--space-6);
    }

    .home-hero__title {
        font-size: clamp(2rem, 7vw, 2.6rem);
    }

    .home-facts {
        margin-top: var(--space-4);
        gap: var(--space-3);
        scrollbar-width: thin;
    }

    .site-footer {
        margin-top: var(--space-10);
    }
}

@media (max-width: 640px) {
    :root {
        --layout-gutter: 18px;
    }

    p {
        font-size: 1rem;
        line-height: 1.65;
    }

    h2 {
        font-size: clamp(1.65rem, 8vw, 2rem);
    }

    h3 {
        font-size: clamp(1.3rem, 6vw, 1.65rem);
    }

    .menu-hero__title,
    .contact-hero__title,
    .careers-hero__title,
    .privacy-hero__title,
    .cookie-hero__title,
    .disclaimer-hero__title,
    .page-hero__title,
    .thank-title {
        font-size: clamp(1.85rem, 9vw, 2.15rem);
    }

    .home-hero__title {
        font-size: clamp(1.9rem, 9vw, 2.35rem);
    }

    .card,
    .home-featured__card,
    .home-newsletter__card,
    .contact-form__fieldset,
    .contact-box,
    .reservation-sidebar__section,
    .privacy-next__block,
    .thank-card {
        padding: var(--space-5);
    }

    .home-gastro__highlights,
    .home-vip__highlights,
    .home-team__profiles,
    .home-newsletter__form,
    .section-experience__columns,
    .section-upcoming__meta,
    .section-join__fields {
        grid-template-columns: minmax(0, 1fr);
    }

    .home-featured,
    .home-gastro,
    .home-poker,
    .home-vip,
    .home-team,
    .home-social,
    .home-newsletter,
    .section-highlight,
    .section-upcoming,
    .section-experience,
    .section-fairplay,
    .section-gallery,
    .section-guest,
    .section-faq,
    .section-join {
        padding-block: var(--space-8);
    }

    .menu-section,
    .vip-section {
        margin-bottom: var(--space-8);
    }

    .vip-section {
        margin-top: var(--space-10);
    }

    .home-hero__image,
    .home-featured__image,
    .home-poker__image,
    .home-vip__image,
    .home-team__image,
    .home-social__image,
    .menu-section__image,
    .section-highlight__image,
    .section-upcoming__image,
    .section-gallery__image,
    .section-guest__image,
    .vip-figure__image {
        width: 100%;
        aspect-ratio: 4 / 3;
        object-fit: cover;
    }

    .home-hero__ctas,
    .home-featured__actions,
    .home-gastro__actions,
    .home-poker__actions,
    .home-vip__actions,
    .home-social__actions,
    .menu-hero__ctas,
    .menu-section__actions,
    .section-upcoming__cta-group,
    .vip-card__cta-row,
    .reservation-form__actions,
    .contact-hero__actions,
    .privacy-hero__ctas,
    .privacy-next__actions,
    .cookie-contact-cta,
    .cookie-meta-strip__actions,
    .disclaimer-hero__cta,
    .page-hero__actions,
    .terms-cta__actions,
    .careers-hero__ctas,
    .careers-cta__actions,
    .thank-ctas {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
    }

    .home-hero__ctas .btn,
    .home-featured__actions .btn,
    .home-gastro__actions .btn,
    .home-poker__actions .btn,
    .home-vip__actions .btn,
    .home-social__actions .btn,
    .menu-hero__ctas .btn,
    .menu-section__actions .btn,
    .section-upcoming__cta-group .btn,
    .vip-card__cta-row .btn,
    .reservation-form__actions .btn,
    .contact-hero__actions .btn,
    .privacy-hero__ctas .btn,
    .privacy-next__actions .btn,
    .cookie-contact-cta .btn,
    .cookie-meta-strip__actions .btn,
    .disclaimer-hero__cta .btn,
    .page-hero__actions .btn,
    .terms-cta__actions .btn,
    .careers-hero__ctas .btn,
    .careers-cta__actions .btn,
    .thank-ctas .btn {
        width: 100%;
        justify-content: center;
    }

    .reservation-form__row,
    .contact-form__row,
    .contact-newsletter__fields {
        flex-direction: column;
        align-items: stretch;
    }

    .input,
    .textarea,
    select {
        font-size: 16px;
    }

    .index-label {
        flex-wrap: wrap;
        row-gap: var(--space-2);
    }

    .index-label__divider {
        min-width: 48px;
    }

    .site-footer__nav {
        width: 100%;
    }
}

@media (max-width: 480px) {
    :root {
        --header-height: 64px;
        --ribbon-height: 64px;
        --layout-gutter: 16px;
    }

    .rt-ribbon {
        padding-inline: 10px;
    }

    .rt-ribbon__inner {
        gap: 8px;
        font-size: 0.61rem;
        letter-spacing: 0.055em;
    }

    .rt-ribbon__age {
        height: 22px;
        padding-inline: 8px;
    }

    .site-header__inner {
        height: var(--header-height);
    }

    .rt-brand {
        min-width: 0;
        gap: var(--space-2);
    }

    .rt-brand__text {
        min-width: 0;
    }

    .rt-brand__title {
        overflow: hidden;
        font-size: 0.74rem;
        letter-spacing: 0.16em;
        white-space: nowrap;
        text-overflow: ellipsis;
    }

    .nav-toggle {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
    }

    .home-hero {
        padding-block: var(--space-8);
    }

    .home-hero__grid {
        gap: var(--space-5);
    }

    .home-hero__title {
        font-size: clamp(1.8rem, 9.5vw, 2.15rem);
    }

    .card,
    .home-featured__card,
    .home-newsletter__card,
    .contact-form__fieldset,
    .contact-box,
    .reservation-sidebar__section,
    .privacy-next__block,
    .thank-card {
        padding: var(--space-4);
        border-radius: var(--radius-lg);
    }

    .btn {
        width: 100%;
        padding: 0.75rem 1rem;
        white-space: normal;
    }

    .home-facts {
        font-size: 0.7rem;
        letter-spacing: 0.1em;
    }

    .site-footer {
        padding-block: var(--space-6);
    }

    .site-footer__nav {
        flex-direction: column;
        align-items: flex-start;
    }

    .cookie-banner__actions,
    .cookie-banner__btn {
        width: 100%;
    }
}
