/* Shared responsive rules, after each page's own styles. */
html { -webkit-text-size-adjust: 100%; }
img, iframe { max-width: 100%; }
nav .brand { color: inherit; text-decoration: none; flex-shrink: 0; }
nav .links { min-width: 0; }
nav a, .btn, .nav-toggle { touch-action: manipulation; }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; line-height: 1.5; text-align: center; }
.nav-toggle { display: none; font: inherit; }
a:focus-visible, button:focus-visible { outline: 2px solid #b99555; outline-offset: 4px; }
.grid2, .intro, .split, .contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid2 > *, .intro > *, .split > *, .contact-grid > *, .menu-items > * { min-width: 0; }
.copy, .lead, .menu-item p, footer { overflow-wrap: anywhere; }
.menu-item-top h3 { min-width: 0; overflow-wrap: anywhere; }
.price { flex-shrink: 0; }
.panel.booking-widget { padding: 16px; }
.map { padding: 0; }
.map iframe { display: block; }
footer { gap: 24px; flex-wrap: wrap; }
@media (max-width: 1100px) {
    .grid2, .intro, .contact-grid { gap: 32px; }
    .panel { padding: 28px; }
    .menu-items { column-gap: 32px; }
    .section h2 { font-size: clamp(36px, 5.4vw, 70px); }
}
@media (max-width: 1024px) {
    nav, .events-page nav {
        position: sticky; top: 0; z-index: 20; width: 100%;
        display: flex; flex-wrap: wrap; gap: 12px; padding: 14px 5vw;
        background: #0b0b0bf5; border-bottom: 1px solid #292929;
    }
    nav .brand, .events-page nav .brand { font-size: 23px; letter-spacing: 1.5px; }
    nav .links { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 8px 16px; }
    nav .links a:not(.btn) { display: inline-flex; }
    nav .links a { min-height: 44px; align-items: center; font-size: 12px; }
    nav .links .btn { margin-top: 4px; }
    .nav-ready .nav-toggle {
        display: inline-flex; align-items: center; justify-content: center;
        min-height: 44px; padding: 10px 14px; border: 1px solid #b99555;
        background: transparent; color: #f5f1e8; font-size: 12px;
        letter-spacing: 1.5px; cursor: pointer;
    }
    .nav-ready nav .links {
        flex-direction: column; align-items: stretch; gap: 4px;
        max-height: calc(100dvh - 84px); overflow-y: auto;
        padding: 12px 0 4px; border-top: 1px solid #292929;
    }
    .nav-ready nav .links[hidden] { display: none; }
    .nav-ready nav .links a { padding: 10px 12px; }
    .nav-ready nav .links a[aria-current="page"] { color: #d6b779; }
    .page-hero { min-height: 42vh; padding: 64px 6vw; }
    .page-hero h1 { font-size: clamp(40px, 8.5vw, 88px); line-height: 1; overflow-wrap: anywhere; }
    .section { padding: 64px 6vw; }
    .hero { min-height: 80svh; padding: 80px 6vw; }
    .hero h1 { font-size: clamp(46px, 10vw, 100px); letter-spacing: -2px; }
    .card { padding: 36px; }
    .card h3 { font-size: clamp(36px, 6vw, 60px); }
    .booking { padding: 80px 6vw; }
    .booking h2 { font-size: clamp(40px, 8vw, 80px); line-height: 1; }
    .actions { flex-wrap: wrap; }
}
@media (max-width: 820px) {
    .grid2, .intro, .split, .contact-grid { grid-template-columns: minmax(0, 1fr); }
    .menu-items { grid-template-columns: minmax(0, 1fr); }
    .section h2 { font-size: clamp(34px, 7vw, 58px); line-height: 1; overflow-wrap: anywhere; }
    .section { padding: 48px 6vw; }
    .lead, .copy { font-size: 16px; }
    .visual { height: 340px; }
    .card { min-height: 340px; padding: 32px 6vw; }
    footer { display: flex; flex-direction: column; padding: 32px 6vw; line-height: 1.8; }
    .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
    .gallery-item { height: 280px; }
    .story-logo-box { min-height: 280px; }
    .map iframe { min-height: 360px !important; height: 360px; }
    .panel.booking-widget { padding: 8px; }
}
@media (max-width: 650px) {
    .gallery { grid-template-columns: minmax(0, 1fr); }
    .gallery-item { height: auto; aspect-ratio: 4 / 3; }
    .page-hero { min-height: auto; padding: 48px 6vw; }
    .page-hero h1 { font-size: clamp(36px, 9vw, 58px); }
    .kicker { font-size: 11px; letter-spacing: 2px; line-height: 1.8; }
    .eyebrow { line-height: 1.7; letter-spacing: 2.5px; }
    .panel { padding: 22px; }
    .panel h3 { font-size: 30px; }
    .section h2.menu-section-title { gap: 8px; }
    .menu-section-title::before, .menu-section-title::after { width: 18px; }
    .menu-item-top { gap: 12px; }
    .menu-item h3 { font-size: 19px; }
    .price { font-size: 18px; }
    .drinks-start { padding-top: 56px; }
    .drinks-heading { margin-bottom: 64px; }
    .events-page .events-hero h1 { font-size: clamp(36px, 9vw, 58px); }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .gallery-item img { transition: none; }
}
