#gallery.section-muted {
    background:
        linear-gradient(180deg, #f8f2e7 0%, #f7f0df 100%);
}

.gallery-shell {
    max-width: 1080px;
    margin: 0 auto;
    padding: 1.25rem;
    border: 1px solid rgba(94,72,43,.18);
    border-radius: 4px;
    background:
        linear-gradient(90deg, rgba(36,61,50,.07) 0 1.2rem, transparent 1.2rem calc(100% - 1.2rem), rgba(36,61,50,.07) calc(100% - 1.2rem)),
        repeating-linear-gradient(135deg, rgba(112,86,50,.035) 0 1px, transparent 1px 10px),
        #fffaf0;
    box-shadow: 0 18px 42px rgba(55,42,25,.1), inset 0 0 0 4px rgba(255,252,240,.8);
}

.gallery-header {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.1rem;
    padding-bottom: .9rem;
    border-bottom: 1px solid rgba(94,72,43,.14);
}

.gallery-header .section-title {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    color: #243d32;
    letter-spacing: .04em;
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: .85rem;
    max-width: 1000px;
    margin: 0 auto;
}

.gallery-grid > p {
    grid-column: 1 / -1;
    margin: 0;
    padding: 2.4rem 1rem;
    border-radius: 4px;
    background:
        linear-gradient(180deg, rgba(255,253,247,.94), rgba(249,242,227,.9));
    border: 1px dashed rgba(94,72,43,.24);
    color: #6d6254;
    font-family: Georgia, "Times New Roman", serif;
    text-align: center;
}

.gallery-grid > p::before {
    display: block;
    margin-bottom: .45rem;
    color: #243d32;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.gallery-grid .thumb {
    grid-column: span 4;
    padding: 0;
    border: .45rem solid #fffaf0;
    border-radius: 4px;
    overflow: hidden;
    background: #efe4cf;
    box-shadow: 0 14px 28px rgba(55,42,25,.14);
    cursor: zoom-in;
    aspect-ratio: 4 / 3;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.gallery-grid .thumb:nth-child(4n + 1) {
    grid-column: span 5;
    aspect-ratio: 5 / 4;
}

.gallery-grid .thumb:nth-child(4n + 2) {
    grid-column: span 7;
    aspect-ratio: 16 / 9;
}

.gallery-grid .thumb:nth-child(4n + 3) {
    grid-column: span 7;
    aspect-ratio: 16 / 10;
}

.gallery-grid .thumb:nth-child(4n + 4) {
    grid-column: span 5;
    aspect-ratio: 1 / 1;
}

.gallery-grid .thumb:hover {
    transform: translateY(-3px);
    border-color: #f4e6c6;
    box-shadow: 0 22px 38px rgba(55,42,25,.18);
}

.gallery-grid .thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    background: #f8fafc;
}

.gallery-page-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }

.gallery-cta-strip { display: flex; align-items: center; justify-content: space-between; gap: 1rem; text-align: left; }

.gallery-cta-actions { display: flex; gap: .75rem; flex-wrap: wrap; }

.gallery-dark-ghost { color: var(--text); border-color: #d1d5db; background: #fff; }

.terms-page {
    background:
        radial-gradient(circle at top left, rgba(234,179,8,.1), transparent 24%),
        linear-gradient(180deg, #fbfbfa 0%, #ffffff 100%);
}

.terms-hero .gallery-page-hero-copy {
    max-width: 46rem;
}

.terms-hero {
    align-items: center;
    padding-bottom: 4.2rem;
}

.terms-layout {
    display: grid;
    gap: 1.4rem;
    max-width: 1080px;
}

.terms-intro {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 1.1rem;
    align-items: stretch;
    padding: 1.35rem;
    border: 1px solid rgba(229,231,235,.95);
    border-radius: 28px;
    background:
        radial-gradient(circle at top left, rgba(234,179,8,.12), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.96));
    box-shadow: 0 18px 40px rgba(15,23,42,.07);
}

.terms-intro-copy {
    display: grid;
    align-content: start;
    gap: .75rem;
    padding: .35rem;
    text-align: left;
}

.terms-intro-copy h2 {
    margin: 0;
    font-size: clamp(1.8rem, 3vw, 2.4rem);
    line-height: 1.05;
}

.terms-intro-copy p {
    margin: 0;
    color: var(--muted);
    line-height: 1.7;
    max-width: 42ch;
}

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

.terms-summary-card {
    padding: 1rem 1.05rem;
    border-radius: 20px;
    background: rgba(255,255,255,.88);
    border: 1px solid rgba(226,232,240,.95);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
    text-align: left;
}

.terms-summary-card h3 {
    margin: 0 0 .35rem;
    font-size: 1rem;
}

.terms-summary-card p {
    margin: 0;
    color: var(--muted);
    line-height: 1.6;
}

.terms-columns {
    display: grid;
    grid-template-columns: minmax(280px, .82fr) minmax(320px, 1.18fr);
    gap: 1.2rem;
    align-items: start;
}

.terms-card {
    gap: 1.1rem;
    padding: 1.15rem;
}

.terms-card .story-card-block {
    padding: 1.3rem 1.35rem;
}

.terms-card .story-card-block h3 {
    max-width: none;
    margin-bottom: .75rem;
}

.terms-card .story-card-block p {
    max-width: none;
}

.terms-list {
    margin: .9rem 0 0;
    padding-left: 1.1rem;
    color: var(--muted);
    line-height: 1.7;
}

.terms-list li + li {
    margin-top: .55rem;
}

.terms-list li::marker {
    color: #ca8a04;
}

.contact-quick { margin-top: 1rem; text-align: left; max-width: 800px; margin-left: auto; margin-right: auto; }

.contact-quick .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .5rem; }

.contact-quick input, .contact-quick textarea, .contact-quick button { font: inherit; padding: .5rem .6rem; border: 1px solid #d1d5db; border-radius: 8px; }

.contact-quick textarea { resize: vertical; }

.contact-quick button { background: var(--accent); color: #111; border: none; font-weight: 700; cursor: pointer; }

.contact-quick a { color: #2563eb; text-decoration: none; }

.contact-quick a:hover { text-decoration: underline; }

.modal .contact-quick { max-width: none; margin-left: 0; margin-right: 0; }

.modal .contact-quick textarea { width: 100%; display: block; }

.modal .contact-quick button { margin-top: .6rem; }

.modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.5); backdrop-filter: blur(4px); display: none; align-items: center; justify-content: center; z-index: 100; }

.modal-overlay.open { display: flex; animation: fadeBg .18s ease both; }

.modal { background: var(--card); color: var(--text); width: min(720px, 92vw); border-radius: 14px; box-shadow: 0 40px 80px rgba(0,0,0,.25); transform: translateY(8px) scale(.98); opacity: 0; transition: transform .18s ease, opacity .18s ease; }

.modal.in { transform: translateY(0) scale(1); opacity: 1; }

.modal-header { display: flex; align-items: center; justify-content: space-between; padding: .9rem 1rem; border-bottom: 1px solid #eef1f4; }

.modal-content { padding: 1rem; }

.modal-close { background: transparent; border: none; font-size: 1.6rem; line-height: 1; cursor: pointer; color: var(--muted); }

@keyframes fadeBg {
from { opacity: 0 }

to { opacity: 1 }
}

.lightbox-overlay { position: fixed; inset: 0; background: rgba(15, 23, 42, .82); backdrop-filter: blur(6px); display: none; align-items: center; justify-content: center; padding: 1rem; z-index: 110; }

.lightbox-overlay.open { display: flex; animation: fadeBg .18s ease both; }

.lightbox-dialog { position: relative; width: min(96vw, 1200px); max-height: 92vh; display: grid; place-items: center; }

.lightbox-image { max-width: 100%; max-height: 86vh; width: auto; height: auto; object-fit: contain; border-radius: 14px; box-shadow: 0 30px 80px rgba(0,0,0,.35); background: #fff; transition: opacity .18s ease, transform .18s ease; }

.lightbox-image.is-switching { opacity: .35; transform: scale(.985); }

.lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 3rem; height: 3rem; border: none; border-radius: 999px; background: rgba(255,255,255,.92); color: #111827; font-size: 2rem; line-height: 1; cursor: pointer; box-shadow: 0 10px 30px rgba(0,0,0,.2); display: grid; place-items: center; }

.lightbox-prev { left: 1rem; }

.lightbox-next { right: 1rem; }

.lightbox-close { position: absolute; top: -0.5rem; right: -0.5rem; width: 2.5rem; height: 2.5rem; border: none; border-radius: 999px; background: rgba(255,255,255,.92); color: #111827; font-size: 1.5rem; line-height: 1; cursor: pointer; box-shadow: 0 10px 30px rgba(0,0,0,.2); }

@media (max-width: 640px) {
.lightbox-nav { width: 2.5rem; height: 2.5rem; font-size: 1.6rem; }

.lightbox-prev { left: .5rem; }

.lightbox-next { right: .5rem; }
}

.faq-page {
    background:
        radial-gradient(circle at top left, rgba(234,179,8,.1), transparent 24%),
        linear-gradient(180deg, #fbfbfa 0%, #ffffff 100%);
}

.faq-layout {
    display: grid;
    gap: 1.2rem;
    max-width: 900px;
}

.faq-intro-card,
.faq-section-card,
.faq-contact-card {
    display: grid;
    gap: 1rem;
}

.faq-card {
    padding: 1.2rem;
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.95));
    border: 1px solid rgba(229,231,235,.9);
    box-shadow: 0 20px 50px rgba(15,23,42,.08);
}

.faq-card h3 {
    margin: 0;
    font-size: 1.05rem;
    color: var(--brand);
}

.faq-card p {
    margin: .7rem 0 0;
    color: var(--muted);
    line-height: 1.7;
}

.faq-intro-card h2,
.faq-contact-card h2 {
    margin: 0;
    color: var(--brand);
    font-size: clamp(1.4rem, 2.4vw, 2rem);
}

.faq-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}

.faq-chip {
    display: inline-flex;
    align-items: center;
    padding: .55rem .9rem;
    border-radius: 999px;
    border: 1px solid rgba(146,64,14,.16);
    background: rgba(255,248,235,.9);
    color: #92400e;
    text-decoration: none;
    font-size: .9rem;
    font-weight: 700;
}

.faq-chip:hover {
    background: rgba(255,243,214,.96);
}

.faq-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.faq-inline-link {
    white-space: nowrap;
}

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

.faq-qa {
    padding-top: 1rem;
    border-top: 1px solid rgba(229,231,235,.9);
}

.faq-qa:first-child {
    padding-top: 0;
    border-top: 0;
}

.faq-qa h3 {
    margin: 0;
    color: var(--brand);
    font-size: 1.05rem;
}

.faq-contact-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

@media (max-width: 720px) {
.faq-card {
        padding: 1rem;
    }

.faq-section-head {
        align-items: flex-start;
    }

.faq-inline-link,
    .faq-contact-actions .btn {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 1080px) {
.buffet-overview-grid {
        grid-template-columns: 1fr;
    }

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

.gallery-page-cta-card {
        flex-direction: column;
        text-align: center;
    }

.gallery-page-cta-actions {
        justify-content: center;
    }

.gallery-page-grid-full .thumb,
    .gallery-page-grid-full .thumb:nth-child(6n + 1),
    .gallery-page-grid-full .thumb:nth-child(6n + 2),
    .gallery-page-grid-full .thumb:nth-child(6n + 3),
    .gallery-page-grid-full .thumb:nth-child(6n + 4),
    .gallery-page-grid-full .thumb:nth-child(6n + 5),
    .gallery-page-grid-full .thumb:nth-child(6n + 6) {
        grid-column: span 6;
        aspect-ratio: 16 / 11;
    }

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

.catering-contact-card {
        grid-template-columns: 1fr;
        text-align: center;
    }

.catering-contact-copy,
    .catering-contact-actions {
        justify-content: center;
        text-align: center;
    }

.gallery-grid .thumb,
    .gallery-grid .thumb:nth-child(4n + 1),
    .gallery-grid .thumb:nth-child(4n + 2),
    .gallery-grid .thumb:nth-child(4n + 3),
    .gallery-grid .thumb:nth-child(4n + 4) {
        grid-column: span 6;
        aspect-ratio: 16 / 11;
    }

.group-offer-grid { grid-template-columns: 1fr; }

.reasons-grid,
    .menu-service-grid { grid-template-columns: 1fr; }

.reasons-grid {
        padding: 1.35rem;
        width: min(34rem, calc(100vw - 2rem));
        background:
            repeating-linear-gradient(135deg, rgba(116,82,45,.045) 0 1px, transparent 1px 8px),
            #f7efd9;
    }

.reasons-grid::before { inset: .65rem; }

.reasons-grid::after { display: none; }

.reason-card:not(:last-child)::after { display: none; }

.ticket-number,
    .ticket-corner { display: none; }
}

@media (max-width: 640px) {
body { padding-bottom: 0; }

.buffet-menu-card,
    .buffet-note-card {
        padding: 1.2rem;
        border-radius: 24px;
    }

.buffet-menu-meta {
        align-items: flex-start;
    }

.buffet-gallery-grid { grid-template-columns: 1fr; }

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

.gallery-page-hero {
        min-height: 62svh;
        padding: 5.2rem 1rem 1.8rem;
    }

.gallery-page-grid-full .thumb,
    .gallery-page-grid-full .thumb:nth-child(6n + 1),
    .gallery-page-grid-full .thumb:nth-child(6n + 2),
    .gallery-page-grid-full .thumb:nth-child(6n + 3),
    .gallery-page-grid-full .thumb:nth-child(6n + 4),
    .gallery-page-grid-full .thumb:nth-child(6n + 5),
    .gallery-page-grid-full .thumb:nth-child(6n + 6) {
        grid-column: 1 / -1;
        aspect-ratio: 16 / 10;
        border-radius: 20px;
    }

.gallery-page-cta-card {
        padding: 1.15rem;
        border-radius: 22px;
    }

.catering-hero-inner {
        padding-top: 6rem;
        padding-bottom: 5.2rem;
    }

.catering-services-grid {
        grid-template-columns: 1fr;
    }

.catering-service-card,
    .catering-contact-card {
        border-radius: 20px;
    }

.catering-contact-card {
        padding: 1.15rem;
    }

.gallery-shell {
        padding: .85rem;
        border-radius: 22px;
    }

.gallery-grid {
        gap: .7rem;
    }

.gallery-grid .thumb,
    .gallery-grid .thumb:nth-child(4n + 1),
    .gallery-grid .thumb:nth-child(4n + 2),
    .gallery-grid .thumb:nth-child(4n + 3),
    .gallery-grid .thumb:nth-child(4n + 4) {
        grid-column: 1 / -1;
        aspect-ratio: 16 / 10;
        border-radius: 18px;
    }

#about-content {
        padding: 1.3rem 1.15rem;
        border-radius: 20px;
    }

#about-content::before {
        top: .55rem;
        right: .75rem;
        font-size: 3.5rem;
    }

.contact-card {
        padding: 1.15rem;
        border-radius: 20px;
    }

.group-offer-grid { grid-template-columns: 1fr; }

.group-offer { grid-template-columns: 1fr; padding: 1.1rem; border-radius: 20px; }

.group-offer-copy { padding-right: 0; }

.group-offer-intro { max-width: none; font-size: 1.6rem; }

.group-offer-details { padding: 1rem; }

.group-offer-list li { padding: .8rem .85rem .8rem 2.6rem; }

.group-offer-options { gap: .5rem; }

.story-card { padding: .95rem; border-radius: 20px; }

.story-card-block { padding: 1rem; border-radius: 18px; }

.terms-intro,
    .terms-columns,
    .terms-summary-grid { grid-template-columns: 1fr; }

.terms-intro { padding: 1rem; border-radius: 22px; }

.terms-card { padding: .95rem; }

.terms-card .story-card-block { padding: 1rem; }

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

.menu-service-card,
    .menu-meta { padding: 1rem; }

.menu-category { padding: 1rem; max-width: calc(100vw - 2rem); }

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

.menu-item img { height: 170px; }

#home {
        min-height: auto;
        background-position: 58% center;
        display: flex;
        flex-direction: column;
        padding-top: 1rem;
    }

#home .hero { order: 1; }

.hero-notice { order: 2; }

.shape-divider { order: 3; }

#home .hero { padding-top: 1.25rem; padding-bottom: 4rem; }

#home .hero h1 { max-width: 8ch; font-size: clamp(2rem, 11vw, 3rem); }

.hero-notice {
        position: relative;
        left: auto;
        top: auto;
        bottom: auto;
        transform: none;
        width: min(24rem, calc(100% - 2rem));
        margin: 0 auto;
        padding: .9rem 1rem;
    }

.open-status-chip { justify-self: center; }

.hero-notice p {
        font-size: clamp(1.15rem, 4.6vw, 1.45rem);
        line-height: 1.15;
    }

.hero-notice .hero-notice-sub {
        font-size: 1rem;
        line-height: 1.35;
    }

.gallery-cta-strip { flex-direction: column; text-align: center; }

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