@media (max-width: 1180px) {
    :root { --header-height: 88px; }
    .shell { width: min(calc(100% - 48px), var(--container)); }
    .site-header__inner { grid-template-columns: 150px 1fr 160px; }
    .desktop-nav { gap: 20px; }
    .button--header { gap: 12px; padding-inline: 13px; }
    .hero__content { grid-template-columns: 1fr 380px; }
    .section-heading--split { grid-template-columns: .6fr 1.8fr 1fr; gap: 4vw; }
    .gallery-grid { grid-auto-rows: 160px; }
    .site-footer__top { grid-template-columns: 1.4fr .6fr 1fr; }
    .footer-hours { grid-column: 2 / 4; }
    .reservation-layout { grid-template-columns: .75fr 1.25fr; }
}

@media (max-width: 960px) {
    .desktop-nav, .button--header { display: none; }
    .site-header__inner { display: flex; justify-content: space-between; }
    .menu-toggle { display: flex; }
    .mobile-menu__inner { display: flex; min-height: 100%; padding-top: 135px; padding-bottom: 42px; justify-content: space-between; flex-direction: column; }
    .mobile-menu nav { display: flex; flex-direction: column; }
    .mobile-menu nav a { display: flex; align-items: baseline; gap: 24px; padding: 5px 0; font-family: var(--font-display); font-size: clamp(44px, 8vw, 72px); line-height: 1; }
    .mobile-menu nav a span { color: rgba(255,255,255,.35); font-family: var(--font-body); font-size: 9px; letter-spacing: .15em; }
    .mobile-menu__meta { display: flex; justify-content: space-between; color: rgba(255,255,255,.6); font-size: 11px; }
    body.menu-open .site-header { color: #fff; background: transparent; border-color: rgba(255,255,255,.15); backdrop-filter: none; }
    .hero__content { display: flex; padding-top: 180px; align-items: flex-start; justify-content: flex-end; flex-direction: column; }
    .hero h1 { font-size: clamp(58px, 10vw, 92px); }
    .hero__eyebrow { align-self: flex-start; }
    .hero__lead { max-width: 480px; margin-top: 36px; }
    .hero__meta { width: 100%; margin-top: 55px; justify-content: space-between; }
    .scroll-cue { display: none; }
    .section-heading--split { grid-template-columns: .4fr 1.6fr; }
    .section-heading--split .intro__copy { grid-column: 2; }
    .signature, .signature--reverse { grid-template-columns: 1.2fr .8fr; gap: 6vw; }
    .signature--reverse .signature__content { padding-left: 0; }
    .menu-preview__grid { grid-template-columns: 1fr; gap: 70px; }
    .menu-preview__intro { position: static; }
    .menu-preview__intro > p:not(.eyebrow) { max-width: 580px; }
    .private-dining { min-height: 700px; }
    .gallery__heading { grid-template-columns: .4fr 1.3fr; }
    .gallery__heading > p { grid-column: 2; }
    .gallery-grid { grid-template-columns: 1fr 1fr; }
    .gallery-item--3 { grid-row: span 2; }
    .gallery-item--7 { grid-column: span 2; }
    .reviews__grid { grid-template-columns: 1fr; gap: 30px; }
    .review-controls { margin-top: 30px; }
    .numbers__grid { grid-template-columns: 1fr 1fr; }
    .number-item:nth-child(3) { padding-left: 0; border-left: 0; border-top: 1px solid var(--color-line); }
    .number-item:nth-child(4) { border-top: 1px solid var(--color-line); }
    .hours__grid { grid-template-columns: 1fr 1fr; }
    .hours__contact { grid-column: 2; }
    .site-footer__top { grid-template-columns: 1.2fr .8fr .8fr; }
    .site-footer__bottom { grid-template-columns: 1fr 1fr; gap: 16px; }
    .site-footer__bottom > div { justify-content: flex-end; }
    .site-footer__bottom > a { justify-self: start; grid-column: 1 / -1; }
    .page-hero__content > p:last-child { position: static; margin: 35px 0 0; }
    .full-menu__layout { grid-template-columns: 190px 1fr; gap: 7vw; }
    .reservation-layout { grid-template-columns: 1fr; }
    .reservation-layout__visual { position: relative; height: 62vh; min-height: 520px; }
    .reservation-layout__form { max-width: none; padding-top: 100px; }
}

@media (max-width: 720px) {
    :root { --header-height: 74px; }
    .shell { width: calc(100% - 36px); }
    body { font-size: 14px; }
    .section { padding-block: 90px; }
    .site-header__inner, .site-header.is-scrolled .site-header__inner { min-height: 74px; }
    .wordmark { font-size: 17px; }
    .mobile-menu__inner { padding-top: 110px; }
    .mobile-menu nav a { font-size: clamp(41px, 13vw, 58px); }
    .mobile-menu__meta { display: grid; gap: 12px; }
    .mobile-menu__meta p { margin: 0; }
    .hero { min-height: 790px; }
    .hero__media img { object-position: 58% center; }
    .hero__shade { background: linear-gradient(0deg, rgba(10,10,8,.8), rgba(10,10,8,.18) 75%); }
    .hero__content { min-height: 790px; padding-top: 130px; padding-bottom: 28px; }
    .hero__eyebrow { margin-bottom: 20px; }
    .hero h1 { font-size: clamp(51px, 15vw, 70px); line-height: .92; }
    .hero h1 span:nth-child(2) { margin-top: 4px; }
    .hero__lead { margin-top: 24px; }
    .hero__lead > p { max-width: 335px; font-size: 13px; }
    .button-row { align-items: flex-start; gap: 22px; flex-direction: column; }
    .hero__meta { margin-top: 35px; gap: 8px; align-items: flex-start; flex-direction: column; }
    .section-heading--split { display: block; }
    .section-heading--split > div:first-child { display: flex; gap: 20px; }
    .section-heading--split h2, .philosophy h2, .menu-preview h2 { font-size: clamp(48px, 13vw, 64px); }
    .intro__copy { padding-top: 34px; }
    .intro__image { width: calc(100% - 18px); height: 125vw; margin-top: 60px; }
    .vertical-note { right: -42px; }
    .vertical-note { display: none; }
    .display-title { margin: 55px 0 80px; font-size: clamp(57px, 16vw, 78px); }
    .section-kicker { align-items: flex-start; gap: 20px; flex-direction: column; }
    .signature, .signature--reverse { display: flex; margin-bottom: 85px; gap: 30px; flex-direction: column; }
    .signature__image { width: 100%; height: 115vw; max-height: 560px; }
    .signature--reverse .signature__image { order: 0; }
    .signature--reverse .signature__content { order: 1; }
    .signature__content { width: 90%; }
    .signature__content h3 { font-size: clamp(44px, 12vw, 58px); }
    .signature__price { margin-top: 26px; }
    .tab-list { gap: 24px; }
    .menu-line { padding: 22px 0; }
    .menu-line p { padding-right: 10px; font-size: 10px; }
    .private-dining { min-height: 680px; }
    .private-dining__shade { background: linear-gradient(0deg, rgba(16,16,14,.88), rgba(16,16,14,.18) 75%); }
    .private-dining__content { align-self: flex-end; padding-bottom: 70px; }
    .private-dining__content h2 { font-size: clamp(55px, 14vw, 72px); }
    .philosophy__grid { display: flex; gap: 65px; flex-direction: column; }
    .philosophy__image { width: 90%; height: 125vw; max-height: 640px; }
    .principles { align-items: flex-start; flex-direction: column; }
    .principles span { width: 100%; border-bottom: 1px solid var(--color-line); }
    .principles span:last-child { border-bottom: 0; }
    .gallery__heading { display: block; margin-bottom: 55px; }
    .gallery__heading h2 { margin: 35px 0; font-size: clamp(55px, 14vw, 72px); }
    .gallery-grid { grid-auto-rows: 110px; gap: 10px; }
    .gallery-item--1, .gallery-item--2, .gallery-item--3, .gallery-item--4, .gallery-item--5, .gallery-item--6 { grid-row: span 2; }
    .gallery-item--1, .gallery-item--4 { grid-row: span 3; }
    .gallery-item--7 { grid-row: span 3; }
    .cursor-view { display: none; }
    .lightbox { padding: 70px 14px 25px; grid-template-columns: 42px 1fr 42px; }
    .lightbox__nav { font-size: 24px; }
    .review-slider { min-height: 340px; }
    .review p { font-size: clamp(34px, 9.5vw, 48px); }
    .numbers { padding-block: 50px; }
    .number-item { padding: 28px 15px; }
    .number-item strong { font-size: 60px; }
    .number-item span { font-size: 8px; }
    .hours__grid { grid-template-columns: 1fr; gap: 55px; }
    .hours__contact { grid-column: auto; }
    .reservation-cta { min-height: 560px; }
    .reservation-cta h2 { font-size: clamp(63px, 17vw, 86px); }
    .site-footer { padding-top: 75px; }
    .site-footer__top { display: grid; padding-bottom: 60px; grid-template-columns: 1fr 1fr; gap: 55px 30px; }
    .footer-mark { grid-column: 1 / -1; font-size: 66px; }
    .footer-hours { grid-column: 1 / -1; }
    .site-footer__bottom { display: flex; align-items: flex-start; flex-direction: column; }
    .site-footer__bottom > div { justify-content: flex-start; }
    .demo-tag { display: block; width: max-content; margin: 8px 0 0; }
    .page-hero { min-height: 680px; }
    .page-hero h1, .contact-hero h1 { font-size: clamp(68px, 20vw, 98px); }
    .page-hero__content { padding-bottom: 50px; }
    .full-menu__layout { display: block; }
    .menu-index { position: static; margin-bottom: 85px; padding-bottom: 30px; border-bottom: 1px solid var(--color-line); }
    .menu-index a { font-size: 25px; }
    .menu-category { margin-bottom: 75px; }
    .menu-category__heading h2 { font-size: 51px; }
    .reservation-layout__visual { height: 54vh; min-height: 430px; }
    .reservation-layout__visual > div { bottom: 30px; left: 22px; }
    .reservation-layout__visual > div > p:last-child { font-size: 44px; }
    .reservation-layout__form { padding: 75px 18px; }
    .form-heading h1, .success-message h1 { font-size: clamp(58px, 16vw, 76px); }
    .field-grid { grid-template-columns: 1fr; gap: 25px; }
    .choice-row { grid-template-columns: repeat(3, 1fr); }
    .choice-row--times { grid-template-columns: repeat(2, 1fr); }
    .contact-hero { padding-top: 145px; }
    .contact-hero__details { margin-top: 60px; grid-template-columns: 1fr; gap: 40px; }
    .contact-image { height: 85vw; }
    .contact-main__grid, .legal__grid { grid-template-columns: 1fr; gap: 90px; }
    .arrival { margin-top: 60px; }
    .map-placeholder { height: 400px; }
    .map-pin { left: 45%; }
    .map-pin p { min-width: 155px; }
    .map-note { right: 12px; left: 12px; text-align: center; }
    .legal { padding-top: 145px; }
    .legal aside { position: static; }
}

@media (max-width: 390px) {
    .hero h1 { font-size: 49px; }
    .hero__lead > p { margin-bottom: 20px; }
    .button { min-height: 48px; }
    .footer-mark { font-size: 58px; }
    .gallery-grid { display: block; }
    .gallery-item { height: 280px; margin-bottom: 10px; }
}

@media (min-width: 1800px) {
    .hero__content { grid-template-columns: 1fr 460px; }
    .hero h1 { font-size: 128px; }
    .gallery-grid { grid-auto-rows: 230px; }
}
