/* Responsive refinements for the main landing page. */
.page {
    overflow-x: clip;
}

.page main,
.page .container,
.page .hero-copy,
.page .hero-right,
.page .card,
.page .card-surface,
.page .card-soft,
.page .contact-panel,
.page .event-card,
.page .testimonial-card {
    min-width: 0;
}

.page h1,
.page h2,
.page h3,
.page p,
.page a,
.page span {
    overflow-wrap: break-word;
}

.page .btn {
    max-width: 100%;
    min-height: 46px;
    white-space: normal;
    text-align: center;
    line-height: 1.35;
}

.dining-image-wrapper,
.poker-image-wrapper,
.contact-image-wrapper {
    aspect-ratio: 16 / 10;
}

.dining-image,
.poker-image,
.contact-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 1024px) {
    .layout-section {
        padding-block: var(--space-14);
    }

    .layout-section--tight {
        padding-block: var(--space-10);
    }

    .dining-layout,
    .poker-layout,
    .contact-layout,
    .reservation-cta {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-6);
    }

    .dining-image-wrapper,
    .poker-image-wrapper,
    .contact-image-wrapper {
        max-height: 520px;
    }
}

@media (max-width: 900px) {
    .eg-header__inner {
        justify-content: flex-start;
    }

    .eg-header__toggle {
        flex: 0 0 auto;
        margin-left: auto;
    }

    .eg-header__toggle--open .eg-header__toggle-bar:first-child {
        transform: translateY(3.75px) rotate(45deg);
    }

    .eg-header__toggle--open .eg-header__toggle-bar:nth-child(2) {
        opacity: 1;
        transform: translateY(-3.75px) rotate(-45deg);
    }

    .eg-header__nav {
        position: static;
        flex: 0 0 0;
        width: 0;
    }

    .eg-header__nav-list {
        position: fixed;
        top: 4.5rem;
        left: 0;
        right: 0;
        width: 100%;
        max-height: calc(100dvh - 4.5rem);
        overflow-y: auto;
        padding: 1.25rem max(1.25rem, calc((100vw - 1120px) / 2 + 1.25rem)) 1.5rem;
    }

    .eg-header__nav-list.eg-header__nav--mobile-open {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .hero-grid,
    .grid-2,
    .grid-3,
    .poker-meta-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .hero-grid {
        gap: var(--space-8);
    }

    .hero-copy {
        gap: var(--space-5);
    }

    .hero-right {
        order: -1;
        min-height: 360px;
    }

    .section-title {
        margin-bottom: var(--space-7);
    }

    .section-title p:not(span) {
        max-width: 44rem;
    }

    .menu-highlight-grid,
    .event-grid,
    .testimonial-grid,
    .why-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--space-5);
    }

    .poker-content,
    .dining-copy,
    .reservation-cta-main,
    .contact-info {
        gap: var(--space-4);
    }

    .poker-meta-grid {
        gap: var(--space-5);
    }

    .poker-actions,
    .dining-actions {
        align-items: center;
    }

    .reservation-cta-actions {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 720px) {
    .menu-highlight-grid,
    .event-grid,
    .testimonial-grid,
    .why-grid,
    .contact-meta-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .contact-meta-grid {
        gap: var(--space-4);
    }

    .contact-meta-value,
    .contact-meta-value a {
        overflow-wrap: anywhere;
    }
}

@media (max-width: 640px) {
    .container {
        padding-inline: var(--space-4);
    }

    .layout-section,
    .layout-section--tight {
        padding-block: var(--space-10);
    }

    .hero.layout-section {
        padding-top: var(--space-6);
        padding-bottom: var(--space-10);
    }

    .hero-grid {
        gap: var(--space-6);
    }

    .hero-title {
        font-size: clamp(1.8rem, 8.5vw, 2.2rem);
        line-height: 1.08;
        letter-spacing: 0.035em;
    }

    .hero-lead {
        line-height: 1.6;
    }

    .hero-actions,
    .dining-actions,
    .poker-actions {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-3);
    }

    .hero-actions .btn,
    .dining-actions .btn,
    .poker-actions .btn,
    .reservation-cta-actions .btn,
    .text-center > .btn,
    .contact-info .btn,
    .mt-6 > .btn {
        width: 100%;
    }

    .hero-meta {
        align-items: flex-start;
        gap: var(--space-3);
    }

    .hero-right {
        display: grid;
        min-height: 0;
        padding-top: 220px;
        border-radius: var(--radius-xl);
    }

    .hero-card {
        position: relative;
        inset: auto;
        z-index: 2;
        width: auto;
        margin: var(--space-4);
        padding: var(--space-4);
    }

    .hero-card-header,
    .hero-card-foot {
        flex-wrap: wrap;
        align-items: flex-start;
    }

    .hero-card-chip {
        white-space: normal;
    }

    .section-title {
        gap: var(--space-1);
        margin-bottom: var(--space-6);
    }

    .section-title h2 {
        font-size: clamp(1.65rem, 7.5vw, 2rem);
        line-height: 1.16;
    }

    .section-title p,
    .card p,
    .card-surface p,
    .card-soft p,
    .event-card p,
    .contact-panel p {
        line-height: 1.65;
    }

    .card,
    .card-surface,
    .card-soft,
    .contact-panel,
    .event-card,
    .testimonial-card,
    .poker-meta-highlight {
        padding: var(--space-5);
    }

    .card h3,
    .card-surface h3,
    .card-soft h3,
    .event-card h3,
    .testimonial-card h3,
    .contact-panel h3 {
        font-size: clamp(1.2rem, 5.5vw, 1.45rem);
    }

    .dining-image-wrapper,
    .poker-image-wrapper,
    .contact-image-wrapper {
        aspect-ratio: 4 / 3;
        border-radius: var(--radius-lg);
    }

    .poker-meta-row {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-1);
    }

    .poker-meta-label {
        font-size: var(--font-size-xs);
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .poker-meta-value {
        overflow-wrap: anywhere;
    }

    .event-meta {
        flex-direction: column;
        gap: var(--space-2);
    }

    .testimonial-quote {
        font-size: var(--font-size-base);
        line-height: 1.55;
    }

    .reservation-cta {
        padding: var(--space-5);
    }

    .map-shell {
        padding: var(--space-4);
    }

    .eg-header__inner {
        height: 4.25rem;
    }

    .eg-header__brand {
        min-width: 0;
        gap: var(--space-2);
    }

    .eg-header__mark {
        width: 30px;
        height: 30px;
        flex: 0 0 auto;
    }

    .eg-header__brand-title {
        overflow-wrap: normal;
        font-size: 0.76rem;
        letter-spacing: 0.18em;
        white-space: nowrap;
    }

    .eg-header__nav-list {
        top: 4.25rem;
        max-height: calc(100dvh - 4.25rem);
        padding-inline: var(--space-4);
    }

    .eg-footer__top {
        padding-top: var(--space-8);
        padding-bottom: var(--space-6);
    }

    .eg-footer__brand {
        align-items: flex-start;
    }

    .eg-footer__brand-subtitle,
    .eg-footer__contact-value,
    .eg-footer__contact-link,
    .eg-footer__responsible {
        overflow-wrap: anywhere;
    }

    .eg-footer__grid {
        gap: var(--space-6);
    }

    .eg-footer__bottom-inner {
        width: 100%;
    }

    .eg-footer__responsible {
        flex-basis: auto;
        max-width: none;
    }

    .eg-cookie {
        max-height: 85dvh;
        overflow-y: auto;
    }

    .eg-cookie__inner {
        padding-inline: var(--space-4);
        gap: var(--space-4);
    }

    .eg-cookie__actions,
    .eg-cookie__button,
    .eg-age__actions,
    .eg-age__button {
        width: 100%;
    }

    .eg-cookie__button,
    .eg-age__button {
        min-width: 0;
        min-height: 46px;
        white-space: normal;
    }

    .eg-age__dialog {
        max-height: 100dvh;
        overflow-y: auto;
        padding: var(--space-4);
    }

    .eg-age__content {
        padding: var(--space-5);
    }
}

@media (max-width: 420px) {
    .hero-right {
        padding-top: 190px;
    }

    .hero-card-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 2px;
    }

    .hero-card-value {
        font-size: var(--font-size-xs);
    }

    .eyebrow {
        letter-spacing: 0.14em;
    }
}
