:root {
    --color-bg: #f7f2e9;
    --color-surface: #fffdf8;
    --color-surface-alt: #eee1cc;
    --color-text: #201d19;
    --color-muted: #635b52;
    --color-primary: #6f1720;
    --color-primary-dark: #511019;
    --color-primary-soft: #f4e7e6;
    --color-gold: #9a6f25;
    --color-gold-dark: #76531a;
    --color-border: #d7c8b2;
    --color-success: #285e3b;
    --color-error: #9a1f28;
    --shadow-sm: 0 8px 24px rgba(57, 39, 26, .08);
    --shadow-md: 0 22px 55px rgba(57, 39, 26, .14);
    --radius-sm: .55rem;
    --radius-md: 1rem;
    --radius-lg: 1.5rem;
    --container: 1200px;
    --font-serif: Georgia, 'Times New Roman', serif;
    --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    background: var(--color-bg);
}

body {
    margin: 0;
    min-width: 320px;
    color: var(--color-text);
    background:
        radial-gradient(circle at 12% 8%, rgba(154, 111, 37, .07), transparent 28rem),
        var(--color-bg);
    font-family: var(--font-sans);
    font-size: 1rem;
    line-height: 1.65;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

body.nav-open {
    overflow: hidden;
}

img,
picture,
svg {
    display: block;
    max-width: 100%;
}

img {
    height: auto;
}

a {
    color: var(--color-primary);
    text-decoration-thickness: .08em;
    text-underline-offset: .18em;
}

a:hover {
    color: var(--color-primary-dark);
}

button,
input,
select,
textarea {
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

:focus-visible {
    outline: 3px solid #005fcc;
    outline-offset: 3px;
    border-radius: .2rem;
}

::selection {
    color: #fff;
    background: var(--color-primary);
}

h1,
h2,
h3,
h4 {
    margin: 0 0 .7em;
    color: var(--color-text);
    font-family: var(--font-serif);
    line-height: 1.12;
    text-wrap: balance;
}

h1 {
    font-size: clamp(2.45rem, 6vw, 5.25rem);
    letter-spacing: -.035em;
}

h2 {
    font-size: clamp(2rem, 4vw, 3.45rem);
    letter-spacing: -.025em;
}

h3 {
    font-size: clamp(1.25rem, 2vw, 1.7rem);
}

p,
ul,
ol {
    margin: 0 0 1.25rem;
}

ul,
ol {
    padding-left: 1.25rem;
}

address {
    font-style: normal;
}

.container {
    width: min(calc(100% - 2rem), var(--container));
    margin-inline: auto;
}

.narrow {
    width: min(calc(100% - 2rem), 820px);
    margin-inline: auto;
}

.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.skip-link {
    position: fixed;
    z-index: 9999;
    top: .75rem;
    left: .75rem;
    padding: .8rem 1rem;
    color: #fff;
    background: var(--color-primary);
    border-radius: var(--radius-sm);
    transform: translateY(-160%);
    transition: transform .15s ease;
}

.skip-link:focus {
    transform: translateY(0);
}

.icon {
    width: 1.15rem;
    height: 1.15rem;
    flex: 0 0 auto;
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    margin-bottom: .9rem;
    color: var(--color-primary);
    font-weight: 800;
    letter-spacing: .12em;
    line-height: 1.3;
    text-transform: uppercase;
    font-size: .78rem;
}

.eyebrow::before {
    width: 2.25rem;
    height: 2px;
    content: '';
    background: var(--color-gold);
}

.lead {
    max-width: 68ch;
    color: #3f3932;
    font-size: clamp(1.08rem, 1.8vw, 1.28rem);
    line-height: 1.65;
}

.text-muted {
    color: var(--color-muted);
}

.section {
    padding: clamp(4.2rem, 8vw, 7.4rem) 0;
}

.section--tight {
    padding: clamp(2.8rem, 5vw, 4.5rem) 0;
}

.section--surface {
    background: var(--color-surface);
}

.section--dark {
    color: #fff;
    background: var(--color-primary-dark);
}

.section--dark h2,
.section--dark h3,
.section--dark .eyebrow {
    color: #fff;
}

.section-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(16rem, .65fr);
    gap: 3rem;
    align-items: end;
    margin-bottom: clamp(2rem, 5vw, 4rem);
}

.section-heading p:last-child {
    margin-bottom: 0;
}

.button-row {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    align-items: center;
}

.button {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    padding: .78rem 1.25rem;
    border: 2px solid transparent;
    border-radius: .45rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: transform .15s ease, background-color .15s ease, border-color .15s ease, color .15s ease;
}

.button:hover {
    transform: translateY(-2px);
}

.button--primary {
    color: #fff;
    background: var(--color-primary);
    border-color: var(--color-primary);
}

.button--primary:hover {
    color: #fff;
    background: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
}

.button--gold {
    color: #fff;
    background: var(--color-gold-dark);
    border-color: var(--color-gold-dark);
}

.button--gold:hover {
    color: #fff;
    background: #5e4114;
    border-color: #5e4114;
}

.button--outline {
    color: var(--color-primary);
    background: transparent;
    border-color: var(--color-primary);
}

.button--outline:hover {
    color: #fff;
    background: var(--color-primary);
}

.button--light {
    color: var(--color-primary-dark);
    background: #fff;
    border-color: #fff;
}

.button--light:hover {
    color: var(--color-primary-dark);
    background: #f3e8d7;
    border-color: #f3e8d7;
}

.button--small {
    min-height: 42px;
    padding: .62rem 1rem;
    font-size: .88rem;
}

.topbar {
    position: relative;
    z-index: 50;
    color: #fff;
    background: var(--color-primary-dark);
    font-size: .84rem;
}

.topbar__inner {
    display: flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    gap: 1.2rem 2rem;
}

.topbar a,
.topbar span {
    display: inline-flex;
    align-items: center;
    gap: .42rem;
    color: #fff;
    text-decoration: none;
}

.topbar a:hover {
    text-decoration: underline;
}

.site-header {
    position: sticky;
    z-index: 40;
    top: 0;
    border-bottom: 1px solid rgba(87, 62, 39, .13);
    background: rgba(255, 253, 248, .96);
    backdrop-filter: blur(10px);
}

.site-header__inner {
    display: flex;
    min-height: 84px;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    color: var(--color-text);
    text-decoration: none;
}

.brand img {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
}

.brand__text {
    display: grid;
    gap: .05rem;
}

.brand__text strong {
    font-family: var(--font-serif);
    font-size: 1.28rem;
    letter-spacing: .06em;
    line-height: 1;
}

.brand__text small {
    color: var(--color-primary);
    font-size: .57rem;
    font-weight: 800;
    letter-spacing: .22em;
}

.main-nav {
    display: flex;
    align-items: center;
    gap: 1.4rem;
}

.main-nav ul {
    display: flex;
    margin: 0;
    padding: 0;
    align-items: center;
    gap: .2rem;
    list-style: none;
}

.main-nav ul a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    padding: .55rem .75rem;
    color: var(--color-text);
    border-radius: .35rem;
    font-size: .87rem;
    font-weight: 800;
    text-decoration: none;
}

.main-nav ul a:hover,
.main-nav ul a[aria-current='page'] {
    color: var(--color-primary);
    background: var(--color-primary-soft);
}

.nav-toggle {
    display: none;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    color: var(--color-text);
    background: transparent;
    border: 1px solid var(--color-border);
    border-radius: .45rem;
    cursor: pointer;
}

.nav-toggle .icon {
    width: 1.65rem;
    height: 1.65rem;
}

.nav-toggle__close {
    display: none;
}

.nav-toggle[aria-expanded='true'] .nav-toggle__open {
    display: none;
}

.nav-toggle[aria-expanded='true'] .nav-toggle__close {
    display: block;
}

.hero {
    position: relative;
    overflow: hidden;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-surface);
}

.hero::before,
.hero::after {
    position: absolute;
    width: 22rem;
    height: 22rem;
    content: '';
    border: 1px solid rgba(154, 111, 37, .18);
    border-radius: 50%;
}

.hero::before {
    top: -12rem;
    left: -10rem;
}

.hero::after {
    right: -11rem;
    bottom: -13rem;
}

.hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    min-height: 650px;
    grid-template-columns: minmax(0, .9fr) minmax(400px, 1.1fr);
    align-items: stretch;
}

.hero__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(4rem, 8vw, 7.5rem) clamp(2rem, 5vw, 5rem) clamp(4rem, 8vw, 7.5rem) 0;
}

.hero__content h1 {
    max-width: 13ch;
}

.hero__content .lead {
    max-width: 620px;
}

.hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--color-border);
}

.hero__meta span {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: var(--color-muted);
    font-size: .92rem;
    font-weight: 700;
}

.hero__media {
    position: relative;
    min-height: 520px;
    overflow: hidden;
}

.hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero__badge {
    position: absolute;
    right: 1.25rem;
    bottom: 1.25rem;
    max-width: 260px;
    padding: 1rem 1.1rem;
    color: #fff;
    background: rgba(81, 16, 25, .94);
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
}

.hero__badge strong,
.hero__badge span {
    display: block;
}

.hero__badge strong {
    margin-bottom: .25rem;
    font-family: var(--font-serif);
    font-size: 1.25rem;
}

.hero__badge span {
    font-size: .9rem;
}

.quick-facts {
    position: relative;
    z-index: 3;
    margin-top: -1px;
    background: var(--color-primary-dark);
}

.quick-facts__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.quick-fact {
    display: flex;
    min-height: 118px;
    align-items: center;
    gap: .85rem;
    padding: 1.4rem;
    color: #fff;
    border-right: 1px solid rgba(255, 255, 255, .18);
}

.quick-fact:last-child {
    border-right: 0;
}

.quick-fact .icon {
    width: 1.8rem;
    height: 1.8rem;
    color: #e7c77f;
}

.quick-fact strong,
.quick-fact span {
    display: block;
}

.quick-fact strong {
    margin-bottom: .15rem;
    font-size: .93rem;
}

.quick-fact span {
    color: #f1e7dc;
    font-size: .82rem;
}

.answer-box {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1.15rem;
    align-items: start;
    padding: clamp(1.3rem, 3vw, 2rem);
    background: #fff;
    border: 1px solid var(--color-border);
    border-left: 5px solid var(--color-gold-dark);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.answer-box__icon {
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    color: #fff;
    background: var(--color-primary);
    border-radius: 50%;
}

.answer-box__icon .icon {
    width: 1.45rem;
    height: 1.45rem;
}

.answer-box h2,
.answer-box h3 {
    margin-bottom: .35rem;
    font-size: 1.4rem;
}

.answer-box p:last-child {
    margin-bottom: 0;
}

.value-grid,
.card-grid,
.feature-grid {
    display: grid;
    gap: 1.25rem;
}

.value-grid {
    grid-template-columns: repeat(4, 1fr);
}

.value-card {
    padding: 1.6rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.value-card__icon {
    display: grid;
    width: 3.25rem;
    height: 3.25rem;
    margin-bottom: 1rem;
    place-items: center;
    color: var(--color-primary);
    background: var(--color-primary-soft);
    border-radius: 50%;
}

.value-card__icon .icon {
    width: 1.65rem;
    height: 1.65rem;
}

.value-card h3 {
    font-size: 1.25rem;
}

.value-card p:last-child {
    margin-bottom: 0;
    color: var(--color-muted);
    font-size: .93rem;
}

.split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(2rem, 6vw, 5.5rem);
    align-items: center;
}

.split--reverse .split__media {
    order: 2;
}

.split__media {
    position: relative;
}

.split__media img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
}

.split__media::after {
    position: absolute;
    z-index: -1;
    right: -1rem;
    bottom: -1rem;
    width: 70%;
    height: 70%;
    content: '';
    border: 2px solid var(--color-gold);
    border-radius: var(--radius-lg);
}

.check-list {
    display: grid;
    gap: .7rem;
    margin: 1.4rem 0 1.8rem;
    padding: 0;
    list-style: none;
}

.check-list li {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
}

.check-list .icon {
    width: 1.3rem;
    height: 1.3rem;
    margin-top: .15rem;
    color: var(--color-success);
}

.card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.food-card,
.event-card,
.info-card {
    overflow: hidden;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.food-card img,
.event-card img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.food-card__body,
.event-card__body,
.info-card {
    padding: 1.4rem;
}

.food-card__body p,
.event-card__body p {
    color: var(--color-muted);
}

.food-card__body p:last-child,
.event-card__body p:last-child {
    margin-bottom: 0;
}

.food-card__tag {
    display: inline-flex;
    margin-bottom: .75rem;
    padding: .25rem .55rem;
    color: var(--color-primary-dark);
    background: var(--color-primary-soft);
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 800;
}

.menu-cta {
    position: relative;
    overflow: hidden;
    padding: clamp(2rem, 5vw, 4rem);
    color: #fff;
    background:
        linear-gradient(115deg, rgba(81, 16, 25, .98), rgba(111, 23, 32, .92)),
        var(--color-primary);
    border-radius: var(--radius-lg);
}

.menu-cta::after {
    position: absolute;
    right: -7rem;
    bottom: -8rem;
    width: 24rem;
    height: 24rem;
    content: '';
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 50%;
}

.menu-cta__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(250px, .55fr);
    gap: 2rem;
    align-items: center;
}

.menu-cta h2,
.menu-cta h3 {
    color: #fff;
}

.menu-cta p {
    color: #f4e8e2;
}

.menu-cta__visual {
    display: flex;
    justify-content: center;
}

.menu-cta__visual img {
    width: min(100%, 280px);
    border: 8px solid rgba(255, 255, 255, .9);
    border-radius: .4rem;
    box-shadow: var(--shadow-md);
    transform: rotate(2deg);
}

.quote-band {
    padding: clamp(2.2rem, 5vw, 4rem) 0;
    text-align: center;
    background: var(--color-surface-alt);
}

.quote-band blockquote {
    max-width: 850px;
    margin: 0 auto;
    font-family: var(--font-serif);
    font-size: clamp(1.5rem, 3vw, 2.55rem);
    line-height: 1.35;
}

.quote-band cite {
    display: block;
    margin-top: 1rem;
    color: var(--color-muted);
    font-family: var(--font-sans);
    font-size: .95rem;
    font-style: normal;
}

.review-panel {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 1.5rem;
    align-items: center;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.review-panel__mark {
    display: grid;
    width: 4rem;
    height: 4rem;
    place-items: center;
    color: #fff;
    background: var(--color-primary);
    border-radius: 50%;
    font-family: var(--font-serif);
    font-size: 2rem;
    font-weight: 800;
}

.review-panel h2 {
    margin-bottom: .35rem;
    font-size: clamp(1.7rem, 3vw, 2.5rem);
}

.review-panel p:last-child {
    margin-bottom: 0;
}

.local-section {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(320px, 1.1fr);
    gap: 2rem;
    align-items: stretch;
}

.location-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.6rem, 4vw, 3rem);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.location-card address {
    display: grid;
    gap: .85rem;
    margin: 1.2rem 0 1.5rem;
}

.location-card address a,
.location-card address span {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    color: var(--color-text);
    text-decoration: none;
}

.location-card address a:hover {
    color: var(--color-primary);
    text-decoration: underline;
}

.location-map {
    position: relative;
    min-height: 420px;
    overflow: hidden;
    background: #e9decc;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.location-map img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.location-map__overlay {
    position: absolute;
    inset: auto 1rem 1rem 1rem;
    padding: 1rem;
    background: rgba(255, 253, 248, .94);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    backdrop-filter: blur(8px);
}

.location-map__overlay p {
    margin-bottom: .7rem;
}

.faq-list {
    display: grid;
    gap: .8rem;
}

.faq-list details {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.faq-list summary {
    display: flex;
    min-height: 58px;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.2rem;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.faq-list summary::-webkit-details-marker {
    display: none;
}

.faq-list summary::after {
    width: 1.8rem;
    height: 1.8rem;
    flex: 0 0 auto;
    content: '+';
    color: #fff;
    background: var(--color-primary);
    border-radius: 50%;
    font-size: 1.3rem;
    line-height: 1.65rem;
    text-align: center;
}

.faq-list details[open] summary::after {
    content: '−';
}

.faq-list details p {
    max-width: 80ch;
    padding: 0 1.2rem 1.15rem;
    margin: 0;
    color: var(--color-muted);
}

.page-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(4.3rem, 9vw, 7.4rem) 0;
    color: #fff;
    background: var(--color-primary-dark);
}

.page-hero::after {
    position: absolute;
    right: -8rem;
    bottom: -10rem;
    width: 30rem;
    height: 30rem;
    content: '';
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 50%;
}

.page-hero h1,
.page-hero .eyebrow {
    color: #fff;
}

.page-hero h1 {
    max-width: 16ch;
    font-size: clamp(2.6rem, 7vw, 5rem);
}

.page-hero .lead {
    max-width: 760px;
    color: #f1e7df;
}

.breadcrumbs {
    margin-bottom: 1.2rem;
}

.breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: .85rem;
}

.breadcrumbs li:not(:last-child)::after {
    margin-left: .4rem;
    content: '/';
    opacity: .65;
}

.breadcrumbs a,
.breadcrumbs span {
    color: inherit;
}

.stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-top: 2rem;
}

.stat {
    padding: 1.25rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    text-align: center;
}

.stat strong,
.stat span {
    display: block;
}

.stat strong {
    color: var(--color-primary);
    font-family: var(--font-serif);
    font-size: 2.3rem;
}

.stat span {
    color: var(--color-muted);
    font-size: .9rem;
}

.menu-download-grid {
    display: grid;
    grid-template-columns: minmax(0, .7fr) minmax(300px, .55fr);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: center;
}

.menu-preview {
    display: flex;
    justify-content: center;
    padding: clamp(1rem, 3vw, 2rem);
    background: var(--color-surface-alt);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.menu-preview img {
    width: min(100%, 480px);
    border-radius: .35rem;
    box-shadow: var(--shadow-md);
}

.menu-highlights {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .9rem;
    margin: 1.5rem 0;
}

.menu-highlight {
    padding: 1rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.menu-highlight strong,
.menu-highlight span {
    display: block;
}

.menu-highlight span {
    color: var(--color-muted);
    font-size: .85rem;
}

.menu-category {
    margin-bottom: 2.4rem;
    scroll-margin-top: 7rem;
}

.menu-category h2 {
    padding-bottom: .65rem;
    border-bottom: 2px solid var(--color-gold);
    font-size: 2rem;
}

.menu-items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 2rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.menu-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    padding: .85rem 0;
    border-bottom: 1px dashed var(--color-border);
}

.menu-item strong {
    line-height: 1.35;
}

.menu-item span {
    color: var(--color-primary-dark);
    font-weight: 800;
    text-align: right;
}

.menu-notice {
    padding: 1.2rem;
    background: #fff8e7;
    border: 1px solid #d5b46e;
    border-radius: var(--radius-md);
}

.event-services {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

.event-service {
    padding: 1.5rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.event-service .icon {
    width: 2rem;
    height: 2rem;
    margin-bottom: 1rem;
    color: var(--color-primary);
}

.event-service p:last-child {
    margin-bottom: 0;
    color: var(--color-muted);
}

.contact-layout {
    display: grid;
    grid-template-columns: minmax(0, .78fr) minmax(360px, 1.22fr);
    gap: clamp(2rem, 6vw, 5rem);
    align-items: start;
}

.contact-panel {
    padding: clamp(1.4rem, 4vw, 2.4rem);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.contact-list {
    display: grid;
    gap: .85rem;
    margin: 1.5rem 0;
}

.contact-list a,
.contact-list span {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    color: var(--color-text);
    text-decoration: none;
}

.contact-list a:hover {
    color: var(--color-primary);
    text-decoration: underline;
}

.tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 1.3rem;
}

.tab-button {
    min-height: 44px;
    padding: .65rem .9rem;
    color: var(--color-text);
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: .4rem;
    font-weight: 800;
    cursor: pointer;
}

.tab-button[aria-selected='true'] {
    color: #fff;
    background: var(--color-primary);
    border-color: var(--color-primary);
}

.tab-panel[hidden] {
    display: none;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.form-field {
    display: grid;
    gap: .38rem;
}

.form-field--full {
    grid-column: 1 / -1;
}

.form-field label,
.fieldset-label {
    color: var(--color-text);
    font-weight: 800;
}

.form-field input,
.form-field select,
.form-field textarea {
    width: 100%;
    min-height: 48px;
    padding: .7rem .8rem;
    color: var(--color-text);
    background: #fff;
    border: 1px solid #8d8274;
    border-radius: .4rem;
}

.form-field textarea {
    min-height: 150px;
    resize: vertical;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    border-color: #005fcc;
    box-shadow: 0 0 0 2px rgba(0, 95, 204, .16);
    outline: 0;
}

.form-hint {
    color: var(--color-muted);
    font-size: .82rem;
}

.checkbox-field {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
}

.checkbox-field input {
    width: 1.25rem;
    height: 1.25rem;
    flex: 0 0 auto;
    margin-top: .15rem;
    accent-color: var(--color-primary);
}

.form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin-top: 1rem;
}

.honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.status-message {
    padding: 1rem;
    margin-bottom: 1.2rem;
    border-radius: var(--radius-sm);
    font-weight: 700;
}

.status-message--success {
    color: #174027;
    background: #e5f4e9;
    border: 1px solid #7eb18a;
}

.status-message--error {
    color: #6e1119;
    background: #fbe7e8;
    border: 1px solid #d58b91;
}

.legal-content {
    padding: clamp(2rem, 5vw, 4rem);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.legal-content h2 {
    margin-top: 2.2rem;
    font-size: 1.8rem;
}

.legal-content h2:first-child {
    margin-top: 0;
}

.legal-content h3 {
    margin-top: 1.5rem;
    font-size: 1.25rem;
}

.legal-content table {
    width: 100%;
    border-collapse: collapse;
}

.legal-content th,
.legal-content td {
    padding: .75rem;
    border: 1px solid var(--color-border);
    text-align: left;
    vertical-align: top;
}

.cta-band {
    color: #fff;
    background: var(--color-primary);
}

.cta-band__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2rem;
    align-items: center;
    padding: clamp(2.5rem, 5vw, 4.5rem) 0;
}

.cta-band h2,
.cta-band p {
    color: #fff;
}

.cta-band p:last-child {
    margin-bottom: 0;
}

.center-panel {
    text-align: center;
}

.center-icon {
    margin: 0 auto 1rem;
}

.center-lead {
    margin-inline: auto;
}

.center-actions {
    justify-content: center;
}

.mobile-actions {
    display: none;
}

.site-footer {
    color: #efe8df;
    background: #1e1b18;
}

.site-footer__grid {
    display: grid;
    grid-template-columns: 1.2fr .75fr 1fr .8fr;
    gap: 2.2rem;
    padding: 4rem 0 2.5rem;
}

.site-footer h2 {
    color: #fff;
    font-family: var(--font-sans);
    font-size: 1rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.footer-brand img {
    width: 145px;
    height: 145px;
    margin-bottom: 1rem;
    object-fit: cover;
    border-radius: 50%;
}

.footer-brand p {
    max-width: 35ch;
    color: #cfc4b8;
}

.footer-links,
.footer-contact {
    display: grid;
    gap: .55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer a {
    color: #efe8df;
}

.footer-contact a {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    text-decoration: none;
}

.footer-contact a:hover,
.footer-links a:hover {
    color: #fff;
    text-decoration: underline;
}

.footer-note {
    color: #cfc4b8;
    font-size: .82rem;
}

.social-row {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    padding: 1rem 0 2rem;
    border-top: 1px solid rgba(255, 255, 255, .12);
}

.social-row a {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    padding: .5rem .85rem;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 999px;
    font-size: .88rem;
    text-decoration: none;
}

.social-row a:hover {
    color: #1e1b18;
    background: #fff;
}

.footer-bottom {
    background: #141210;
}

.footer-bottom__inner {
    display: flex;
    min-height: 70px;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 2rem;
    font-size: .78rem;
}

.footer-bottom__inner p {
    margin: 0;
}

.footer-bottom nav {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem;
}


/* Optimized real photography */
.hero__media picture,
.location-map picture {
    display: block;
    width: 100%;
    height: 100%;
}

.split__media picture,
.food-card picture,
.event-card picture,
.photo-gallery picture {
    display: block;
    width: 100%;
}

.photo-gallery {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.photo-gallery__item {
    position: relative;
    min-width: 0;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    margin: 0;
    background: var(--color-surface-alt);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.photo-gallery__item--wide {
    grid-column: span 2;
    aspect-ratio: 2 / 1;
}

.photo-gallery__item picture,
.photo-gallery__item img {
    width: 100%;
    height: 100%;
}

.photo-gallery__item img {
    display: block;
    object-fit: cover;
    transition: transform .35s ease;
}

.photo-gallery__item:hover img {
    transform: scale(1.035);
}

.photo-gallery__item figcaption {
    position: absolute;
    right: .65rem;
    bottom: .65rem;
    left: .65rem;
    padding: .65rem .75rem;
    color: #fff;
    background: rgba(34, 25, 20, .82);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: .55rem;
    font-size: .82rem;
    font-weight: 800;
    line-height: 1.25;
    backdrop-filter: blur(6px);
}

@media (max-width: 1020px) {
    .photo-gallery {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .photo-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .photo-gallery {
        grid-template-columns: 1fr;
    }

    .photo-gallery__item--wide {
        grid-column: auto;
        aspect-ratio: 4 / 3;
    }
}

@media (max-width: 1020px) {
    .topbar__hours {
        display: none !important;
    }

    .nav-toggle {
        display: inline-flex;
    }

    .main-nav {
        position: fixed;
        z-index: 100;
        top: 122px;
        right: 0;
        bottom: 0;
        left: 0;
        display: none;
        overflow-y: auto;
        padding: 1.2rem;
        background: var(--color-surface);
    }

    .main-nav[data-open='true'] {
        display: block;
    }

    .main-nav ul {
        display: grid;
        gap: .3rem;
    }

    .main-nav ul a {
        min-height: 52px;
        padding: .8rem 1rem;
        font-size: 1.05rem;
    }

    .main-nav__booking {
        width: 100%;
        margin-top: 1rem;
    }

    .hero__grid {
        grid-template-columns: 1fr;
    }

    .hero__content {
        padding-right: 0;
    }

    .hero__media {
        min-height: 480px;
        margin-bottom: 2rem;
        border-radius: var(--radius-lg);
    }

    .quick-facts__grid,
    .value-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .quick-fact:nth-child(2) {
        border-right: 0;
    }

    .quick-fact:nth-child(-n+2) {
        border-bottom: 1px solid rgba(255, 255, 255, .18);
    }

    .card-grid,
    .event-services {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .site-footer__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 760px) {
    body {
        padding-bottom: 70px;
    }

    .container,
    .narrow {
        width: min(calc(100% - 1.25rem), var(--container));
    }

    .topbar__inner {
        justify-content: space-between;
        gap: .6rem;
    }

    .topbar__inner a:first-child span {
        max-width: 150px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .site-header__inner {
        min-height: 74px;
    }

    .brand img {
        width: 50px;
        height: 50px;
    }

    .brand__text strong {
        font-size: 1.05rem;
    }

    .main-nav {
        top: 112px;
    }

    .hero__grid {
        min-height: 0;
    }

    .hero__content {
        padding: 3.7rem 0 2rem;
    }

    .hero__content h1 {
        max-width: none;
    }

    .hero__media {
        min-height: 360px;
    }

    .hero__badge {
        right: .75rem;
        bottom: .75rem;
        left: .75rem;
        max-width: none;
    }

    .section-heading,
    .split,
    .review-panel,
    .menu-cta__grid,
    .local-section,
    .menu-download-grid,
    .contact-layout,
    .cta-band__inner {
        grid-template-columns: 1fr;
    }

    .section-heading {
        gap: .5rem;
    }

    .split--reverse .split__media {
        order: initial;
    }

    .card-grid,
    .event-services,
    .stats-grid {
        grid-template-columns: 1fr;
    }

    .menu-highlights {
        grid-template-columns: 1fr;
    }

    .menu-items {
        grid-template-columns: 1fr;
    }

    .form-grid {
        grid-template-columns: 1fr;
    }

    .form-field--full {
        grid-column: auto;
    }

    .cta-band__inner {
        text-align: center;
    }

    .cta-band__inner .button-row {
        justify-content: center;
    }

    .mobile-actions {
        position: fixed;
        z-index: 120;
        right: 0;
        bottom: 0;
        left: 0;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        min-height: 68px;
        background: #fff;
        border-top: 1px solid var(--color-border);
        box-shadow: 0 -8px 28px rgba(40, 28, 20, .12);
    }

    .mobile-actions a {
        display: flex;
        min-height: 68px;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: .18rem;
        color: var(--color-primary-dark);
        border-right: 1px solid var(--color-border);
        font-size: .72rem;
        font-weight: 800;
        text-decoration: none;
    }

    .mobile-actions a:last-child {
        border-right: 0;
    }

    .mobile-actions .icon {
        width: 1.4rem;
        height: 1.4rem;
    }

    .site-footer__grid {
        grid-template-columns: 1fr;
    }

    .footer-bottom__inner {
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        padding: 1.2rem 0;
    }
}

@media (max-width: 520px) {
    .topbar__inner a:first-child {
        display: none;
    }

    .topbar__inner {
        justify-content: center;
    }

    .main-nav {
        top: 112px;
    }

    .brand__text small {
        letter-spacing: .15em;
    }

    .quick-facts__grid,
    .value-grid {
        grid-template-columns: 1fr;
    }

    .quick-fact,
    .quick-fact:nth-child(2) {
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .18);
    }

    .quick-fact:last-child {
        border-bottom: 0;
    }

    .answer-box {
        grid-template-columns: 1fr;
    }

    .button-row .button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .001ms !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media print {
    .topbar,
    .site-header,
    .mobile-actions,
    .site-footer,
    .button,
    .cta-band {
        display: none !important;
    }

    body {
        padding: 0;
        color: #000;
        background: #fff;
    }

    a {
        color: #000;
        text-decoration: underline;
    }

    .section,
    .page-hero {
        padding: 1rem 0;
        color: #000;
        background: #fff;
    }

    .page-hero h1,
    .page-hero .lead,
    .page-hero .eyebrow {
        color: #000;
    }
}

/* v1.3 — hero rebalanced and accessible lightbox gallery */
.hero__grid {
    min-height: 620px;
    grid-template-columns: minmax(0, .82fr) minmax(460px, 1.18fr);
    gap: clamp(2rem, 4vw, 4.5rem);
    align-items: center;
    padding-block: clamp(2.5rem, 5vw, 4.75rem);
}

.hero__content {
    padding: 1.5rem 0;
}

.hero__content h1 {
    max-width: 15ch;
    margin-bottom: .55em;
    font-size: clamp(2.45rem, 4.25vw, 4.15rem);
    line-height: 1.04;
}

.hero__content .lead {
    max-width: 55ch;
}

.hero__media {
    min-height: 0;
    overflow: visible;
    padding: 1rem .5rem 4.25rem 1rem;
}

.hero__frame {
    position: relative;
    aspect-ratio: 1.48 / 1;
    overflow: hidden;
    background: #251b16;
    border: 8px solid #fff;
    border-radius: 1.25rem;
    box-shadow: 0 28px 68px rgba(49, 25, 20, .24);
    transform: rotate(.45deg);
}

.hero__frame::after {
    position: absolute;
    inset: .65rem;
    content: '';
    pointer-events: none;
    border: 1px solid rgba(226, 184, 104, .62);
    border-radius: .75rem;
}

.hero__frame picture,
.hero__frame img {
    width: 100%;
    height: 100%;
}

.hero__frame img {
    object-fit: cover;
    object-position: center 48%;
    filter: saturate(1.05) contrast(1.02);
}

.hero__image-label {
    position: absolute;
    z-index: 2;
    right: 1.25rem;
    bottom: 1.2rem;
    padding: .55rem .8rem;
    color: #fff;
    background: rgba(32, 24, 19, .76);
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .035em;
    backdrop-filter: blur(8px);
}

.hero__dish {
    position: absolute;
    z-index: 4;
    bottom: .25rem;
    left: 0;
    width: min(220px, 38%);
    overflow: hidden;
    background: #fff;
    border: 5px solid #fff;
    border-radius: 1rem;
    box-shadow: 0 18px 42px rgba(41, 20, 16, .28);
    transform: rotate(-2deg);
}

.hero__dish picture {
    display: block;
    aspect-ratio: 4 / 3;
}

.hero__dish img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero__dish span {
    display: block;
    padding: .52rem .65rem;
    color: var(--color-primary-dark);
    font-family: var(--font-serif);
    font-size: .95rem;
    font-weight: 800;
    line-height: 1.15;
    text-align: center;
}

.hero__badge {
    right: 0;
    bottom: .25rem;
    max-width: min(300px, 48%);
    padding: .9rem 1rem;
    border-radius: 1rem;
    box-shadow: 0 18px 42px rgba(41, 20, 16, .25);
}

.hero__badge strong {
    font-size: 1.12rem;
}

.photo-gallery {
    display: grid;
    grid-auto-flow: dense;
    grid-auto-rows: clamp(105px, 10vw, 165px);
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(.65rem, 1.25vw, 1rem);
}

.photo-gallery__item,
.photo-gallery__item--wide {
    min-width: 0;
    min-height: 0;
    aspect-ratio: auto;
    grid-column: span 1;
    grid-row: span 2;
    overflow: hidden;
    margin: 0;
    background: var(--color-surface-alt);
    border: 1px solid var(--color-border);
    border-radius: 1rem;
    box-shadow: var(--shadow-sm);
}

.photo-gallery__item--wide {
    grid-column: span 2;
    grid-row: span 2;
}

.photo-gallery__item--tall {
    grid-row: span 3;
}

.photo-gallery__item--feature {
    grid-column: span 2;
    grid-row: span 3;
}

.photo-gallery__link {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    color: #fff;
    text-decoration: none;
    cursor: zoom-in;
}

.photo-gallery__link picture,
.photo-gallery__link img {
    width: 100%;
    height: 100%;
}

.photo-gallery__link img {
    object-fit: cover;
    transition: transform .38s ease, filter .38s ease;
}

.photo-gallery__shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 42%, rgba(24, 15, 12, .84) 100%);
    pointer-events: none;
}

.photo-gallery__caption {
    position: absolute;
    z-index: 2;
    right: 1rem;
    bottom: .85rem;
    left: 1rem;
    color: #fff;
    font-family: var(--font-serif);
    font-size: clamp(.95rem, 1.45vw, 1.18rem);
    font-weight: 800;
    line-height: 1.18;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .45);
}

.photo-gallery__zoom {
    position: absolute;
    z-index: 3;
    top: .75rem;
    right: .75rem;
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    place-items: center;
    color: var(--color-primary-dark);
    background: rgba(255, 255, 255, .94);
    border: 1px solid rgba(255, 255, 255, .6);
    border-radius: 50%;
    font-size: 1.35rem;
    font-weight: 500;
    line-height: 1;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .2);
    transition: transform .25s ease, background-color .25s ease;
}

.photo-gallery__link:hover img,
.photo-gallery__link:focus-visible img {
    filter: brightness(.9) saturate(1.08);
    transform: scale(1.045);
}

.photo-gallery__link:hover .photo-gallery__zoom,
.photo-gallery__link:focus-visible .photo-gallery__zoom {
    background: #fff;
    transform: scale(1.08);
}

.lightbox {
    width: 100vw;
    max-width: none;
    height: 100vh;
    max-height: none;
    padding: 0;
    color: #fff;
    background: transparent;
    border: 0;
}

.lightbox::backdrop {
    background: rgba(15, 10, 8, .94);
    backdrop-filter: blur(10px);
}

.lightbox__panel {
    position: relative;
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    padding: 2.5rem 5.5rem 3.5rem;
}

.lightbox__figure {
    display: grid;
    max-width: min(1180px, calc(100vw - 11rem));
    max-height: calc(100vh - 5rem);
    grid-template-rows: minmax(0, 1fr) auto;
    gap: .85rem;
    margin: 0;
}

.lightbox__figure picture {
    display: grid;
    min-height: 0;
    place-items: center;
}

.lightbox__figure img {
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: calc(100vh - 9rem);
    object-fit: contain;
    background: #17110e;
    border-radius: .85rem;
    box-shadow: 0 30px 90px rgba(0, 0, 0, .5);
}

.lightbox__figure figcaption {
    color: #fff;
    font-family: var(--font-serif);
    font-size: 1.12rem;
    font-weight: 700;
    text-align: center;
}

.lightbox__close,
.lightbox__nav {
    position: absolute;
    z-index: 3;
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    color: #fff;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 50%;
    cursor: pointer;
    transition: background-color .2s ease, transform .2s ease;
}

.lightbox__close:hover,
.lightbox__nav:hover {
    background: rgba(255, 255, 255, .22);
    transform: scale(1.05);
}

.lightbox__close {
    top: 1.2rem;
    right: 1.2rem;
}

.lightbox__nav {
    top: 50%;
    transform: translateY(-50%);
}

.lightbox__nav:hover {
    transform: translateY(-50%) scale(1.05);
}

.lightbox__nav--prev {
    left: 1.25rem;
}

.lightbox__nav--prev .icon {
    transform: rotate(180deg);
}

.lightbox__nav--next {
    right: 1.25rem;
}

.lightbox__counter {
    position: absolute;
    bottom: 1rem;
    left: 50%;
    margin: 0;
    color: rgba(255, 255, 255, .78);
    font-size: .86rem;
    font-weight: 700;
    transform: translateX(-50%);
}

body.lightbox-open {
    overflow: hidden;
}

@media (max-width: 1020px) {
    .hero__grid {
        grid-template-columns: 1fr;
        gap: 1rem;
        padding-block: 1.5rem 3rem;
    }

    .hero__content {
        padding: 2.5rem 0 1rem;
    }

    .hero__content h1 {
        max-width: 17ch;
    }

    .hero__media {
        min-height: 0;
        margin-bottom: 0;
        padding: .5rem .75rem 4.5rem;
    }

    .photo-gallery {
        grid-auto-rows: 140px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .hero__content {
        padding-top: 2.65rem;
    }

    .hero__content h1 {
        max-width: 15ch;
        font-size: clamp(2.15rem, 10vw, 3.15rem);
    }

    .hero__media {
        min-height: 0;
        padding-inline: .15rem;
    }

    .hero__frame {
        aspect-ratio: 4 / 3;
        border-width: 5px;
        border-radius: 1rem;
        transform: none;
    }

    .hero__image-label {
        right: .7rem;
        bottom: .7rem;
        font-size: .68rem;
    }

    .hero__dish {
        width: 43%;
        border-width: 4px;
    }

    .hero__dish span {
        padding: .4rem .45rem;
        font-size: .8rem;
    }

    .hero__badge {
        max-width: 53%;
        padding: .68rem .72rem;
    }

    .hero__badge strong {
        font-size: .93rem;
    }

    .hero__badge span {
        display: none;
    }

    .photo-gallery {
        grid-auto-rows: 118px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .55rem;
    }

    .photo-gallery__item,
    .photo-gallery__item--wide {
        grid-column: span 1;
        grid-row: span 2;
        border-radius: .75rem;
    }

    .photo-gallery__item--wide,
    .photo-gallery__item--feature {
        grid-column: span 2;
    }

    .photo-gallery__item--feature {
        grid-row: span 3;
    }

    .photo-gallery__item--tall {
        grid-row: span 3;
    }

    .photo-gallery__caption {
        right: .65rem;
        bottom: .6rem;
        left: .65rem;
        font-size: .92rem;
    }

    .photo-gallery__zoom {
        top: .5rem;
        right: .5rem;
        width: 2rem;
        height: 2rem;
        font-size: 1.15rem;
    }

    .lightbox__panel {
        padding: 4.5rem .75rem 5.2rem;
    }

    .lightbox__figure {
        max-width: calc(100vw - 1.5rem);
        max-height: calc(100vh - 8rem);
    }

    .lightbox__figure img {
        max-height: calc(100vh - 11rem);
        border-radius: .6rem;
    }

    .lightbox__nav {
        top: auto;
        bottom: 1.1rem;
        transform: none;
    }

    .lightbox__nav:hover {
        transform: scale(1.05);
    }

    .lightbox__nav--prev {
        left: calc(50% - 4.2rem);
    }

    .lightbox__nav--next {
        right: calc(50% - 4.2rem);
    }

    .lightbox__counter {
        bottom: 1.9rem;
    }
}

@media (max-width: 420px) {
    .hero__content h1 {
        font-size: 2.08rem;
    }

    .photo-gallery {
        grid-auto-rows: 104px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .photo-gallery__link img,
    .photo-gallery__zoom,
    .lightbox__close,
    .lightbox__nav {
        transition: none;
    }
}


/* v1.4 — full image heroes, 5x3 gallery and WhatsApp booking chat */
.hero--background{position:relative;min-height:clamp(570px,72vh,780px);display:flex;align-items:center;overflow:hidden;background:#18100d;color:#fff}.hero__background,.hero__background img,.hero__overlay{position:absolute;inset:0;width:100%;height:100%}.hero__background img{object-fit:cover;object-position:center 55%}.hero__overlay{background:linear-gradient(90deg,rgba(20,12,9,.82) 0%,rgba(20,12,9,.58) 42%,rgba(20,12,9,.14) 75%),linear-gradient(0deg,rgba(15,8,6,.35),transparent 55%)}.hero__inner{position:relative;z-index:2;width:100%;padding-block:70px}.hero__glass-card{max-width:650px;padding:clamp(28px,4vw,54px);border:1px solid rgba(255,255,255,.24);border-radius:20px;background:rgba(26,15,12,.52);box-shadow:0 30px 80px rgba(0,0,0,.3);backdrop-filter:blur(12px)}.hero--background h1{font-size:clamp(2.35rem,4.6vw,4.7rem);line-height:.98;max-width:12ch;color:#fff;margin:.45rem 0 1.2rem}.hero--background p{font-size:clamp(1rem,1.25vw,1.18rem);max-width:56ch;color:rgba(255,255,255,.9)}.hero--background .eyebrow{color:#f1c978}.hero--background .button--light{background:#fff;color:#241511;border-color:#fff}.hero--background .hero__meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.hero--background .hero__meta span{font-size:.82rem;padding:7px 11px;border-radius:99px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18)}
.page-hero--image{position:relative;min-height:390px;display:flex;align-items:center;background-size:cover;background-position:center;color:#fff;overflow:hidden}.page-hero--image:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,12,9,.82),rgba(22,12,9,.38) 65%,rgba(22,12,9,.2))}.page-hero--image .container{position:relative;z-index:1}.page-hero--image h1,.page-hero--image .lead,.page-hero--image .breadcrumbs a,.page-hero--image .breadcrumbs span{color:#fff}.page-hero--image .eyebrow{color:#f4cc7c}.page-hero--who{background-image:url('../img/photos/hero-quienes-somos.webp')}.page-hero--events{background-image:url('../img/photos/hero-eventos.webp')}.page-hero--contact{background-image:url('../img/photos/hero-contacto.webp')}.page-hero--menu{background-image:url('../img/photos/hero-carta.webp')}
.photo-gallery--15{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:12px!important}.photo-gallery--15 .photo-gallery__item{position:relative!important;display:block!important;aspect-ratio:1/1!important;min-height:0!important;border-radius:14px!important;overflow:hidden!important;background:#211713!important;box-shadow:0 8px 28px rgba(35,20,14,.1)!important}.photo-gallery--15 picture,.photo-gallery--15 img{display:block;width:100%;height:100%}.photo-gallery--15 img{object-fit:cover;transition:transform .45s ease,filter .35s ease}.photo-gallery--15 .photo-gallery__overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:14px;color:#fff;background:linear-gradient(0deg,rgba(20,10,8,.8),transparent 65%);opacity:.86;transition:.25s}.photo-gallery--15 .photo-gallery__overlay strong{font-family:var(--font-display);font-size:1rem;line-height:1.1}.photo-gallery--15 .photo-gallery__overlay span{font-size:.72rem;opacity:0;transform:translateY(5px);transition:.25s}.photo-gallery--15 .photo-gallery__item:hover img,.photo-gallery--15 .photo-gallery__item:focus-visible img{transform:scale(1.07);filter:saturate(1.08)}.photo-gallery--15 .photo-gallery__item:hover .photo-gallery__overlay span,.photo-gallery--15 .photo-gallery__item:focus-visible .photo-gallery__overlay span{opacity:1;transform:none}
.booking-chat-launcher{position:fixed;right:22px;bottom:22px;z-index:9000;border:0;border-radius:999px;background:#1fa855;color:#fff;display:flex;align-items:center;gap:8px;padding:14px 18px;box-shadow:0 14px 36px rgba(20,110,58,.35);font:700 .95rem var(--font-sans);cursor:pointer}.booking-chat-launcher .icon{width:22px;height:22px}.booking-chat[hidden]{display:none}.booking-chat{position:fixed;inset:0;z-index:9500;display:flex;justify-content:flex-end;align-items:flex-end;padding:22px;background:rgba(12,9,7,.42);backdrop-filter:blur(3px)}.booking-chat__window{width:min(420px,100%);max-height:min(760px,calc(100vh - 44px));display:flex;flex-direction:column;border-radius:18px;overflow:hidden;background:#efeae2;box-shadow:0 30px 90px rgba(0,0,0,.35)}.booking-chat__header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:#075e54;color:#fff}.booking-chat__header div{display:flex;flex-direction:column}.booking-chat__header span{font-size:.75rem;opacity:.82}.booking-chat__header button{border:0;background:transparent;color:#fff;cursor:pointer}.booking-chat__conversation{padding:18px;overflow:auto;background-color:#efeae2;background-image:radial-gradient(rgba(80,70,55,.05) 1px,transparent 1px);background-size:16px 16px}.booking-bubble{max-width:88%;padding:11px 13px;border-radius:4px 14px 14px 14px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08);margin-bottom:14px}.booking-chat__form{background:#dcf8c6;padding:14px;border-radius:14px 4px 14px 14px}.booking-chat__fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.booking-chat__fields label{font-size:.76rem;font-weight:700;color:#28443c}.booking-chat__fields label:last-child{grid-column:1/-1}.booking-chat__fields input,.booking-chat__fields textarea{width:100%;margin-top:4px;border:1px solid rgba(7,94,84,.18);border-radius:8px;padding:10px;background:#fff;font:inherit}.booking-chat__fields textarea{min-height:72px;resize:vertical}.booking-chat__notice{font-size:.72rem;color:#46625b;margin:10px 0}.button--whatsapp{width:100%;justify-content:center;background:#128c7e;color:#fff;border-color:#128c7e}
@media(max-width:1000px){.photo-gallery--15{grid-template-columns:repeat(3,minmax(0,1fr))!important}.hero--background{min-height:650px}.hero__glass-card{max-width:590px}}@media(max-width:680px){.hero--background{min-height:620px;align-items:flex-end}.hero__background img{object-position:60% center}.hero__overlay{background:linear-gradient(0deg,rgba(18,10,8,.91),rgba(18,10,8,.18) 78%)}.hero__inner{padding:110px 16px 35px}.hero__glass-card{padding:24px;background:rgba(22,12,9,.62)}.hero--background h1{font-size:clamp(2rem,10vw,3.1rem)}.photo-gallery--15{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}.photo-gallery--15 .photo-gallery__overlay{padding:10px}.booking-chat-launcher{bottom:78px;right:14px;padding:13px}.booking-chat{padding:0;align-items:flex-end}.booking-chat__window{max-height:92vh;border-radius:18px 18px 0 0}.booking-chat__fields{grid-template-columns:1fr}.booking-chat__fields label:last-child{grid-column:auto}.page-hero--image{min-height:340px}.page-hero--image:before{background:linear-gradient(0deg,rgba(22,12,9,.86),rgba(22,12,9,.2))}}
