@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&family=Montserrat:wght@300;400&display=swap');

:root { --black:#0d0d0d; --ink:#12110f; --gold:#d4af37; --gold-soft:#e2c36e; --text:#eee9dc; --muted:#a9a294; --line:rgba(212,175,55,.34); }
* { box-sizing:border-box; }
html { background:#050505; color-scheme:dark; }
body { margin:0; min-height:100vh; color:var(--text); background:radial-gradient(circle at 50% 8%,#211a0c 0,transparent 28%),#050505; font-family:Montserrat,system-ui,sans-serif; }
.grain { position:fixed; inset:0; pointer-events:none; opacity:.045; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E"); }
.skip-link { position:fixed; z-index:20; top:1rem; left:1rem; padding:.7rem 1rem; color:#050505; background:var(--gold-soft); transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.menu-card { position:relative; width:min(100%,48rem); min-height:100vh; margin:0 auto; padding:clamp(2rem,7vw,5rem) clamp(1.4rem,8vw,5.5rem); background:linear-gradient(180deg,rgba(13,13,13,.98),rgba(8,8,8,.98)); box-shadow:0 0 90px rgba(0,0,0,.75); }
.menu-header { position:relative; text-align:center; }
.back { position:absolute; top:0; left:0; color:#746d60; font-size:.58rem; letter-spacing:.18em; text-decoration:none; text-transform:uppercase; transition:color .2s; }
.back:hover,.back:focus-visible { color:var(--gold-soft); }
.eyebrow { margin:0; color:var(--gold-soft); font-family:Cinzel,serif; font-size:clamp(.52rem,1.4vw,.7rem); letter-spacing:.38em; text-transform:uppercase; }
.brand { display:block; width:min(100%,18rem); height:8rem; margin:.35rem auto -.8rem; overflow:hidden; }
.brand img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
.ornament { margin:1.25rem 0; color:var(--gold); font-size:.75rem; text-shadow:0 0 18px rgba(212,175,55,.45); }
.menu-label { margin:0 0 2.2rem; color:#716b5f; font-size:.5rem; letter-spacing:.55em; text-transform:uppercase; }
.menu-switcher { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0 auto 1rem; border:1px solid rgba(212,175,55,.25); }
.menu-switcher button { min-height:2.8rem; padding:.7rem .8rem; border:0; color:#8e877a; background:transparent; font-family:Cinzel,serif; font-size:clamp(.52rem,1.6vw,.63rem); letter-spacing:.14em; text-transform:uppercase; cursor:pointer; transition:color .2s,background .2s; }
.menu-switcher button + button { border-left:1px solid rgba(212,175,55,.25); }
.menu-switcher button[aria-selected="true"] { color:#0d0d0d; background:linear-gradient(120deg,#a47b29,#e3c46c 48%,#b88c34); }
.menu-switcher button:hover:not([aria-selected="true"]),.menu-switcher button:focus-visible:not([aria-selected="true"]) { color:var(--gold-soft); background:rgba(212,175,55,.06); }
.menu-intro { max-width:29rem; min-height:2.8rem; margin:0 auto 3.3rem; color:#817a6e; font-size:.58rem; line-height:1.7; letter-spacing:.05em; text-align:center; }
.menu-section { margin-bottom:clamp(3.4rem,8vw,5.5rem); }
.section-heading { display:flex; align-items:center; gap:1rem; margin-bottom:1.65rem; }
.section-heading h2 { flex:none; margin:0; color:var(--gold-soft); font-family:Cinzel,serif; font-size:clamp(.7rem,2vw,.88rem); font-weight:500; letter-spacing:.3em; text-transform:uppercase; }
.section-heading span { flex:1; height:1px; background:linear-gradient(90deg,var(--line),transparent); }
.section-heading small { flex:none; color:#746d60; font-size:.46rem; font-weight:300; letter-spacing:.15em; text-transform:uppercase; }
.menu-item + .menu-item { margin-top:1.45rem; }
.item-line { display:flex; align-items:baseline; gap:.5rem; }
.item-line h3 { margin:0; color:#eee9dc; font-family:Cinzel,serif; font-size:clamp(.68rem,1.8vw,.82rem); font-weight:500; letter-spacing:.07em; text-transform:uppercase; }
.item-line h3 small { color:#9d9587; font-family:Montserrat,sans-serif; font-size:.52rem; font-weight:300; letter-spacing:.14em; }
.promo-tag { flex:none; padding:.18rem .36rem; border:1px solid rgba(212,175,55,.58); border-radius:999px; color:var(--gold-soft); background:rgba(212,175,55,.08); font-size:.4rem; font-weight:400; letter-spacing:.14em; line-height:1; text-transform:uppercase; }
.dots { flex:1; min-width:1rem; height:1px; border-bottom:1px dotted rgba(212,175,55,.36); }
.price { color:var(--gold-soft); font-family:Cinzel,serif; font-size:.76rem; }
.description { max-width:34rem; margin:.55rem 0 0; color:var(--muted); font-size:clamp(.63rem,1.6vw,.72rem); font-weight:300; line-height:1.75; letter-spacing:.025em; }
.loading,.error { padding:3rem 0; color:var(--muted); font-family:Cinzel,serif; font-size:.72rem; letter-spacing:.2em; text-align:center; text-transform:uppercase; }
.menu-footer { padding-top:1rem; color:#7c7568; font-size:.5rem; letter-spacing:.2em; text-align:center; text-transform:uppercase; }
.menu-footer p { margin:0; }
.menu-footer a { display:inline-block; margin-top:.8rem; color:var(--gold); text-decoration:none; }
@media (max-width:560px) { .menu-card{padding:2rem 1.25rem 3rem}.back span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.brand{width:17rem;max-width:90%;height:7rem}.menu-switcher button{letter-spacing:.08em}.menu-intro{margin-bottom:2.8rem}.section-heading{gap:.7rem;flex-wrap:wrap}.section-heading span{min-width:1rem}.item-line h3{max-width:72%}.description{padding-right:1.8rem} }
@media (prefers-reduced-motion:no-preference) { .menu-section{opacity:0;transform:translateY(10px);animation:reveal .7s ease forwards}.menu-section:nth-child(2){animation-delay:.08s}.menu-section:nth-child(3){animation-delay:.16s}.menu-section:nth-child(4){animation-delay:.24s}@keyframes reveal{to{opacity:1;transform:none}} }
@media print { @page{size:A4;margin:14mm}body{background:#0d0d0d!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.menu-card{width:100%;padding:10mm 15mm;box-shadow:none}.back,.menu-footer a{display:none}.brand{height:27mm}.menu-section{break-inside:avoid;margin-bottom:10mm}.menu-label{margin-bottom:8mm}.menu-item+.menu-item{margin-top:4mm}.description{line-height:1.5} }
