:root {
    --theme-noir: #100d0a;
    --theme-panel: #1b130d;
    --theme-ivory: #fff7ea;
    --theme-muted: #cdbca4;
    --theme-gold: #d6a646;
    --theme-spice: #a23b18;
    --theme-line: rgba(255, 247, 234, .2);
    --theme-line-dark: rgba(16, 13, 10, .16);
    --theme-display: "Playfair Display", Georgia, serif;
    --theme-body: "Inter Tight", system-ui, sans-serif;
}

.spice-theme {
    background: var(--theme-noir);
    color: var(--theme-ivory);
    font-family: var(--theme-body);
    text-wrap: pretty;
}

.spice-theme .header,
.spice-theme .navbar {
    background: rgba(16, 13, 10, .86) !important;
    border-bottom: 1px solid var(--theme-line);
}

.spice-theme a {
    color: inherit;
}

.theme-hero {
    min-height: calc(100vh - 72px);
    overflow: hidden;
    padding: clamp(7rem, 12vw, 11rem) clamp(1.4rem, 5vw, 5rem) clamp(4rem, 8vw, 7rem);
    position: relative;
}

.theme-hero::before {
    background:
        radial-gradient(circle at 50% 42%, rgba(214, 166, 70, .2), transparent 24%),
        linear-gradient(180deg, rgba(16, 13, 10, .78), rgba(16, 13, 10, .96)),
        url("/themes/assets/images/unsplash/dfc003d07d331706a57ae930960e.jpg") center / cover no-repeat;
    content: "";
    inset: 0;
    position: absolute;
    z-index: 0;
}

.theme-hero::after {
    background: linear-gradient(180deg, transparent 55%, var(--theme-noir));
    content: "";
    inset: 0;
    position: absolute;
    z-index: 1;
}

.theme-hero-inner {
    align-items: center;
    display: grid;
    gap: clamp(2rem, 5vw, 5rem);
    grid-template-columns: 1fr;
    margin: 0 auto;
    max-width: 1040px;
    min-height: 68vh;
    position: relative;
    text-align: center;
    z-index: 2;
}

.theme-kicker {
    color: var(--theme-gold);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .32em;
    margin-bottom: 1.4rem;
    text-transform: uppercase;
}

.theme-hero h1,
.theme-section h2,
.theme-page-head h1,
.theme-note strong {
    font-family: var(--theme-display);
    font-style: italic;
    font-weight: 300;
    letter-spacing: -.035em;
}

.theme-hero h1 {
    color: var(--theme-ivory);
    font-size: clamp(4rem, 10vw, 9.5rem);
    line-height: .88;
    margin: 0;
    margin-inline: auto;
    max-width: 10ch;
}

.theme-lede,
.theme-page-head p {
    color: var(--theme-muted);
    font-size: clamp(1.1rem, 2vw, 1.45rem);
    font-weight: 300;
    line-height: 1.72;
    max-width: 54ch;
}

.theme-hero .theme-lede {
    margin-inline: auto;
}

.theme-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
    margin-top: 2.4rem;
}

.theme-btn {
    border: 1px solid var(--theme-line);
    border-radius: 0 !important;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .2em;
    min-width: 13rem;
    padding: 1rem 1.4rem;
    text-transform: uppercase;
}

.theme-btn-light {
    background: var(--theme-ivory);
    color: var(--theme-noir);
}

.theme-btn-outline {
    background: transparent;
    color: var(--theme-ivory);
}

.theme-btn:hover,
.theme-btn:focus {
    background: var(--theme-gold);
    border-color: var(--theme-gold);
    color: var(--theme-noir);
}

.theme-note {
    border: 1px solid var(--theme-line);
    color: var(--theme-muted);
    margin: 1rem auto 0;
    max-width: 560px;
    padding: 1.5rem;
    text-align: left;
}

.theme-note strong {
    color: var(--theme-ivory);
    display: block;
    font-size: 2rem;
    margin-bottom: .85rem;
}

.theme-section {
    padding: clamp(5rem, 12vh, 10rem) clamp(1.4rem, 5vw, 5rem);
}

.theme-ritual {
    background:
        linear-gradient(90deg, rgba(214, 166, 70, .08) 1px, transparent 1px),
        var(--theme-noir);
    background-size: 80px 80px;
}

.theme-ritual-head {
    margin: 0 auto;
    max-width: 880px;
    text-align: center;
}

.theme-ritual-grid {
    display: grid;
    gap: 0;
    grid-template-columns: repeat(3, 1fr);
    margin: clamp(3rem, 7vw, 6rem) auto 0;
    max-width: 1180px;
}

.theme-ritual-grid article {
    border-left: 1px solid var(--theme-line);
    min-height: 260px;
    padding: clamp(1.6rem, 3vw, 3rem);
}

.theme-ritual-grid article:first-child {
    border-left: 0;
}

.theme-ritual-grid span {
    color: var(--theme-gold);
    display: block;
    font-family: var(--theme-display);
    font-size: 4rem;
    font-style: italic;
    line-height: 1;
    margin-bottom: 2rem;
}

.theme-ritual-grid h3 {
    font-family: var(--theme-display);
    font-size: clamp(1.8rem, 3vw, 3rem);
    font-style: italic;
    font-weight: 300;
}

.theme-ritual-grid p {
    color: var(--theme-muted);
}

.theme-story-strip {
    display: grid;
    gap: clamp(2rem, 6vw, 7rem);
    grid-template-columns: minmax(0, .95fr) minmax(280px, .65fr);
}

.theme-order-entry {
    display: grid;
    gap: clamp(2rem, 6vw, 6rem);
    grid-template-columns: minmax(0, .7fr) minmax(320px, .8fr);
    align-items: center;
}

.theme-light {
    background: var(--theme-ivory);
    color: var(--theme-noir);
}

.theme-light p {
    color: rgba(16, 13, 10, .68);
}

.theme-light .theme-kicker {
    color: var(--theme-spice);
}

.theme-split,
.theme-menu-teaser,
.theme-reservation-shell {
    align-items: center;
    display: grid;
    gap: clamp(3rem, 8vw, 8rem);
    grid-template-columns: minmax(0, .8fr) minmax(280px, .58fr);
    margin: 0 auto;
    max-width: 1320px;
}

.theme-photo {
    aspect-ratio: 4 / 5;
    background: url("/themes/assets/images/unsplash/7ca2662a24324f72d5007f3ba5ea.jpg") center / cover no-repeat;
    border: 1px solid var(--theme-line-dark);
}

.theme-section h2,
.theme-page-head h1 {
    font-size: clamp(2.8rem, 6vw, 6rem);
    line-height: .98;
    margin: 0 0 1.5rem;
}

.theme-search {
    margin-top: 2rem;
    max-width: 860px;
}

.theme-page-head {
    padding: clamp(7rem, 12vw, 11rem) clamp(1.4rem, 5vw, 5rem) clamp(3rem, 7vw, 6rem);
}

.theme-back {
    color: var(--theme-muted);
    display: inline-flex;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .18em;
    margin-bottom: 3rem;
    text-transform: uppercase;
}

.theme-live-menu .menu-item {
    background: rgba(255, 247, 234, .06) !important;
    border: 1px solid var(--theme-line) !important;
}

.theme-local-head,
.theme-order-grid {
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    margin: 0 auto 2rem;
    max-width: 1320px;
}

.theme-local-head {
    align-items: start;
    border: 1px solid var(--theme-line);
    padding: 1.5rem;
}

.theme-facts {
    border-top: 1px solid var(--theme-line);
}

.theme-facts div {
    border-bottom: 1px solid var(--theme-line);
    display: grid;
    gap: 1rem;
    grid-template-columns: 140px 1fr;
    padding: 1rem 0;
}

.theme-facts span {
    color: var(--theme-gold);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
}

@media (max-width: 900px) {
    .theme-hero-inner,
    .theme-split,
    .theme-menu-teaser,
    .theme-reservation-shell {
        grid-template-columns: 1fr;
    }

    .theme-ritual-grid,
    .theme-story-strip,
    .theme-order-entry {
        grid-template-columns: 1fr;
    }

    .theme-ritual-grid article {
        border-left: 0;
        border-top: 1px solid var(--theme-line);
    }

    .theme-local-head,
    .theme-order-grid {
        grid-template-columns: 1fr;
    }

    .theme-hero h1 {
        font-size: clamp(3.6rem, 17vw, 6rem);
    }
}

/* moosys: complete missing branded header/footer partials, accessible and responsive */
.mss-nav{width:min(100%,1280px);margin-inline:auto;padding:1.05rem clamp(1rem,4vw,3rem);display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.mss-brand{display:inline-flex;flex-direction:column;flex-shrink:0;text-decoration:none!important;line-height:1.04;letter-spacing:.05em}
.mss-brand__primary{font-family:var(--theme-display);font-size:clamp(1.35rem,2vw,1.75rem);font-weight:700}
.mss-brand__secondary{margin-top:.22rem;color:var(--theme-gold);font-size:.66rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.mss-nav__links{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:clamp(.75rem,2vw,1.75rem)}
.mss-nav__links a,.mss-footer__links a{color:var(--theme-ivory);font-size:.8rem;font-weight:600;letter-spacing:.025em;text-decoration:none;text-underline-offset:.3em}
.mss-nav__links a:hover,.mss-nav__links a:focus-visible,.mss-footer__links a:hover,.mss-footer__links a:focus-visible{color:var(--theme-gold);text-decoration:underline}
.mss-footer{padding:clamp(2rem,5vw,4rem) clamp(1.2rem,4vw,3rem);border-top:1px solid var(--theme-line);background:var(--theme-noir)}
.mss-footer__inner{width:min(100%,1280px);margin-inline:auto;display:flex;flex-wrap:wrap;align-items:start;justify-content:space-between;gap:1.75rem}
.mss-footer__brand{font-family:var(--theme-display);font-size:1.4rem;color:var(--theme-ivory)}
.mss-footer__desc{margin:.6rem 0 0;max-width:30rem;color:var(--theme-muted);font-size:.86rem;line-height:1.6}
.mss-footer__links{display:flex;flex-wrap:wrap;gap:.65rem 1.3rem;align-items:center}
.mss-footer__legal{width:100%;margin:0;color:var(--theme-muted);font-size:.72rem}
@media(max-width:740px){.mss-nav{align-items:flex-start;flex-direction:column;gap:1.15rem}.mss-nav__links{justify-content:flex-start;gap:.75rem 1.3rem}.mss-footer__inner{flex-direction:column;gap:1.2rem}}

