/* Shared responsive layout for both typography variants. Keep after component styles. */
.ticker .ticker-copy { font: inherit; color: inherit; letter-spacing: inherit; }
.footer-links { list-style: none; margin: 0; padding: 0; }
.footer-main > section { min-width: 0; }
.brand-logo { display: block; }

@media (max-width: 900px) {
    :root,
    :root[data-bn-large-text="true"] {
        --bn-safe-top: env(safe-area-inset-top, 0px);
        --bn-header-expanded-height: calc(64px + var(--bn-safe-top));
        --bn-header-collapsed-height: var(--bn-header-expanded-height);
        --bn-header-height: var(--bn-header-expanded-height);
        --bn-logo-width: 110px;
        --bn-logo-height: 32px;
    }
    :root { --bn-mobile-edge: 28px; }
    .wrap {
        width: calc(100% - max(var(--bn-mobile-edge), env(safe-area-inset-left, 0px)) - max(var(--bn-mobile-edge), env(safe-area-inset-right, 0px)));
    }
    .site-header {
        height: var(--bn-header-height);
        padding-top: var(--bn-safe-top);
        transition: transform .2s ease;
    }
    .header-accent { display: none; }
    .header-inner { height: 63px; min-height: 63px; transition: none; }
    .brand,.brand img { transition: none; }
    .brand img { width: 110px; height: 32px; object-fit: contain; }
    .mobile-navigation summary {
        width: 44px;
        height: 44px;
        min-height: 44px;
        padding: 0;
        border: 0;
        background: transparent;
    }
    .mobile-menu-icon { width: 24px; }
    /* The accessible names remain available without visible labels. */
    .mobile-navigation summary .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .mobile-navigation-panel { padding-bottom: env(safe-area-inset-bottom, 0px); }
    .is-mobile-header-hidden .site-header { transform: translateY(-100%); }
    .is-mobile-header-hidden .site-header:focus-within,
    :root:has(dialog[open]) .site-header,
    .site-header:has(.mobile-navigation[open]) { transform: none; }
    .ticker { overflow: visible; }
    .ticker > .wrap { justify-content: center; flex-wrap: wrap; white-space: normal; text-align: center; }
    .ticker > .wrap > :not(:first-child) { display: none; }
    .ticker .ticker-copy { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
}

@media (max-width: 700px) {
    :root { --bn-mobile-edge: 18px; }
    /* Full-width footer surface; readable content stays inside the safe gutters. */
    .site-footer { padding-top: var(--space-9); padding-bottom: 0; }
    .footer-main { grid-template-columns: minmax(0,1fr); gap: var(--space-8); }
    .footer-main > div:first-child { grid-column: auto; }
    .footer-main .eyebrow { margin-bottom: var(--space-3); }
    .footer-title { margin-bottom: 0; }
    .footer-main h2 { font-size: var(--text-control); line-height: 1.5; margin: 0 0 var(--space-3); }
    .footer-main address,
    .footer-main p:not(.footer-title):not(.eyebrow),
    .footer-main a { font-size: 1rem; line-height: 1.65; }
    .footer-main a { display: inline-flex; align-items: center; min-height: 44px; padding-block: .4rem; }
    .footer-main .venue-hours { margin-block: var(--space-2); font-size: 1rem; }
    .footer-bottom {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-2);
        margin-top: var(--space-8);
        padding-top: var(--space-6);
        padding-bottom: max(var(--space-6), calc(env(safe-area-inset-bottom, 0px) + 12px));
        font-size: .8125rem;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }
    .footer-bottom nav { gap: 0 1.25rem; margin: 0; }
    .footer-bottom nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: .875rem; }
    .home .site-footer .newsletter-footer { border-top: 0; border-bottom: 1px solid var(--line); padding-block: 0 var(--space-9); margin-bottom: var(--space-9); }
}

/* The same short, complete line is useful when the text-size setting is enlarged. */
:root[data-bn-large-text="true"] .ticker { overflow: visible; }
:root[data-bn-large-text="true"] .ticker > .wrap { flex-wrap: wrap; justify-content: center; white-space: normal; text-align: center; }
:root[data-bn-large-text="true"] .ticker > .wrap > :not(:first-child) { display: none; }

@media (prefers-reduced-motion: reduce) { .site-header { transition: none; } }
:root[data-bn-reduced-motion="true"] .site-header { transition: none; transform: none; }

.booking-return .control-button { display:inline-flex; align-items:center; gap:10px; }
/* Long controls must also reflow inside the mobile panel with enlarged text. */
.mobile-navigation-panel .menu-item-booking > a,
.mobile-navigation-panel .mobile-calendar { max-width:100%; overflow-wrap:anywhere; }

.contact-brand { width:260px; max-width:100%; margin:0 0 var(--space-8); }
.contact-brand img { display:block; width:100%; height:auto; }
:root[data-bn-palette="light"] .contact-brand { background:var(--brand-bg); border-radius:var(--radius-xs); padding:var(--space-4); }
