:root{
  --ground:#151119; --ground-2:#1D1822; --ground-3:#26202C;
  --bone:#EFE8E1; --bone-soft:#B6ABA6; --muted:#8A7F86;
  --wine:#B4515F; --wine-deep:#8E3A48;
  --line:rgba(239,232,225,.16); --line-soft:rgba(239,232,225,.08);
  --display:Baskerville,"Big Caslon","Hoefler Text","Times New Roman",Times,serif;
  --body:Optima,"Segoe UI",Candara,"Gill Sans","Trebuchet MS",system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono","Andale Mono",Menlo,Consolas,monospace;
  --step--1:clamp(.75rem,.72rem + .1vw,.8125rem);
  --step-0:clamp(1rem,.97rem + .18vw,1.075rem);
  --step-1:clamp(1.15rem,1.05rem + .5vw,1.4rem);
  --step-2:clamp(1.4rem,1.2rem + 1vw,1.95rem);
  --step-3:clamp(1.85rem,1.45rem + 2vw,3rem);
  --step-4:clamp(2.6rem,1.7rem + 4.6vw,5.2rem);
  --gutter:clamp(1.25rem,5vw,3.5rem);
  --bar:0px;
}
@media (prefers-color-scheme:light){
  :root{
    --ground:#EDE9E4;--ground-2:#E4DFD9;--ground-3:#D9D3CC;
    --bone:#1B1620;--bone-soft:#4A424C;--muted:#736A75;
    --wine:#8E3A48;--wine-deep:#6E2634;
    --line:rgba(27,22,32,.18);--line-soft:rgba(27,22,32,.09);
  }
}
:root[data-theme="light"]{
  --ground:#EDE9E4;--ground-2:#E4DFD9;--ground-3:#D9D3CC;
  --bone:#1B1620;--bone-soft:#4A424C;--muted:#736A75;
  --wine:#8E3A48;--wine-deep:#6E2634;
  --line:rgba(27,22,32,.18);--line-soft:rgba(27,22,32,.09);
}
:root[data-theme="dark"]{
  --ground:#151119;--ground-2:#1D1822;--ground-3:#26202C;
  --bone:#EFE8E1;--bone-soft:#B6ABA6;--muted:#8A7F86;
  --wine:#B4515F;--wine-deep:#8E3A48;
  --line:rgba(239,232,225,.16);--line-soft:rgba(239,232,225,.08);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--ground);color:var(--bone);font-family:var(--body);
  font-size:var(--step-0);line-height:1.7;padding-bottom:var(--bar);-webkit-font-smoothing:antialiased}
a{color:inherit}
p{margin:0;max-width:60ch}
h1,h2,h3{margin:0;font-family:var(--display);font-weight:400;line-height:1.1;text-wrap:balance}
:focus-visible{outline:2px solid var(--wine);outline-offset:3px}
.wrap{width:100%;max-width:1080px;margin-inline:auto;padding-inline:var(--gutter)}
.eyebrow{margin:0;font-family:var(--mono);font-size:var(--step--1);letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted)}
.ribbon{background:var(--wine-deep);color:#fff;font-family:var(--mono);font-size:var(--step--1);
  letter-spacing:.07em;padding:.55rem var(--gutter);text-align:center}

.top{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--ground) 90%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft)}
.top__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.85rem}
.brand{font-family:var(--display);font-size:var(--step-1);text-decoration:none;letter-spacing:.02em}
.nav{display:none;gap:1.7rem;font-family:var(--mono);font-size:var(--step--1);
  text-transform:uppercase;letter-spacing:.12em}
.nav a{text-decoration:none;color:var(--bone-soft);padding-block:.3rem;
  border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.nav a:hover{color:var(--bone);border-color:var(--wine)}
.nav a[aria-current="page"]{color:var(--bone);border-color:var(--wine)}
@media(min-width:880px){.nav{display:flex}}

.hero{border-bottom:1px solid var(--line)}
.hero__in{padding-block:clamp(3rem,12vw,7rem) clamp(2.25rem,7vw,4.5rem);display:grid;gap:clamp(1.3rem,4vw,2rem)}
.hero h1{font-size:var(--step-4);max-width:12ch;letter-spacing:-.015em}
.hero h1 em{font-style:italic;color:var(--wine)}
.hero__lede{font-size:var(--step-1);line-height:1.55;max-width:46ch;color:var(--bone-soft)}
.hero__rule{display:flex;flex-wrap:wrap;gap:.5rem 1.75rem;font-family:var(--mono);font-size:var(--step--1);
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:.5rem;border-top:1px solid var(--line)}
.hero--page .hero__in{padding-block:clamp(2.25rem,8vw,4rem) clamp(1.75rem,5vw,3rem)}
.hero--page h1{font-size:var(--step-3);max-width:18ch}

.actions{display:flex;flex-wrap:wrap;gap:.7rem}
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);
  font-size:var(--step--1);letter-spacing:.12em;text-transform:uppercase;padding:.95rem 1.6rem;
  text-decoration:none;border:1px solid var(--bone);background:transparent;color:var(--bone);
  transition:background .18s,color .18s,border-color .18s,transform .15s;cursor:pointer}
.btn--solid{background:var(--wine-deep);border-color:var(--wine-deep);color:#fff}
.btn--solid:hover{background:var(--wine);border-color:var(--wine)}
.btn--ghost:hover{background:var(--bone);color:var(--ground)}
.btn:active{transform:translateY(1px)}

.section{padding-block:clamp(2.75rem,7vw,5rem);border-bottom:1px solid var(--line-soft)}
.section__head{display:grid;gap:.8rem;margin-bottom:clamp(1.6rem,4vw,2.5rem);max-width:58ch}
.section__head h2{font-size:var(--step-3)}

.carte{display:grid;gap:clamp(1.75rem,5vw,3rem)}
@media(min-width:900px){.carte{grid-template-columns:minmax(0,1fr) minmax(0,20rem);
  align-items:start;gap:clamp(2.5rem,6vw,5rem)}}
.courses{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--line)}
.courses li{display:flex;align-items:baseline;gap:1rem;justify-content:space-between;
  padding-block:1.05rem;border-bottom:1px solid var(--line-soft)}
.courses .dish{font-family:var(--display);font-size:var(--step-2);line-height:1.25;max-width:24ch}
.courses .supp{font-family:var(--mono);font-size:var(--step--1);color:var(--wine);
  letter-spacing:.06em;white-space:nowrap;font-variant-numeric:tabular-nums}
.courses li.aside .dish{font-family:var(--body);font-size:var(--step-0);color:var(--muted);
  letter-spacing:.14em;text-transform:uppercase}

.price{border:1px solid var(--line);padding:clamp(1.25rem,4vw,1.9rem);display:grid;gap:.35rem;
  background:var(--ground-2);align-content:start}
.price__big{font-family:var(--display);font-size:var(--step-4);line-height:1;font-variant-numeric:tabular-nums}
.price__lbl{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted)}
.price hr{border:0;border-top:1px solid var(--line);margin:.9rem 0}
.price p{font-size:var(--step-0);color:var(--bone-soft)}
.price .sub{display:flex;justify-content:space-between;gap:1rem;font-family:var(--mono);
  font-size:var(--step--1);font-variant-numeric:tabular-nums;color:var(--bone-soft);padding-block:.3rem}
.price .sub b{font-weight:400;color:var(--bone)}
.price .fine{font-size:var(--step--1);color:var(--muted)}

.grid4{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
@media(min-width:760px){.grid4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.grid4{grid-template-columns:repeat(4,1fr)}}
.grid4 > div{background:var(--ground);padding:clamp(1.2rem,3vw,1.6rem);display:grid;gap:.5rem;align-content:start}
.grid4 h3{font-size:var(--step-1);color:var(--wine)}
.grid4 p{color:var(--bone-soft)}
.grid4 .num{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted)}

@media(min-width:900px){.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,4rem);align-items:start}}
.hours{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--line)}
.hours li{display:flex;justify-content:space-between;gap:1rem;padding-block:.85rem;
  border-bottom:1px solid var(--line-soft);font-variant-numeric:tabular-nums}
.hours .day{color:var(--bone-soft)}
.hours .time{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.06em}
.hours li.closed .time{color:var(--muted)}

.card{border:1px solid var(--line);background:var(--ground-2);
  padding:clamp(1.25rem,4vw,1.9rem);display:grid;gap:1rem}
.card h3{font-size:var(--step-1)}
.card dl{margin:0;display:grid;gap:.85rem}
.card dt{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted)}
.card dd{margin:0}
.card a{color:var(--wine);text-underline-offset:3px}

.form{display:grid;gap:1.05rem}
.field{display:grid;gap:.4rem}
label{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted)}
input,textarea,select{font-family:var(--body);font-size:var(--step-0);color:var(--bone);
  background:var(--ground-2);border:1px solid var(--line);padding:.8rem .9rem;border-radius:0;width:100%}
textarea{min-height:6rem;resize:vertical}
@media(min-width:640px){.form__row{display:grid;grid-template-columns:1fr 1fr;gap:1.05rem}}
.form__note{font-family:var(--mono);font-size:var(--step--1);color:var(--muted);letter-spacing:.04em}

.rules{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--line)}
.rules li{padding-block:1rem;border-bottom:1px solid var(--line-soft);display:grid;gap:.3rem}
.rules b{font-family:var(--display);font-size:var(--step-1);font-weight:400}
.rules span{color:var(--bone-soft)}

.foot{padding-block:clamp(2.5rem,7vw,4rem);display:grid;gap:1.75rem}
.foot__grid{display:grid;gap:1.5rem}
@media(min-width:760px){.foot__grid{grid-template-columns:repeat(3,1fr)}}
.foot h4{margin:0 0 .5rem;font-family:var(--mono);font-size:var(--step--1);letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);font-weight:400}
.foot p,.foot address{font-style:normal;color:var(--bone-soft)}
.note{font-family:var(--mono);font-size:var(--step--1);color:var(--wine);
  border:1px dashed var(--wine-deep);padding:.4rem .7rem;display:inline-block;line-height:1.55}
.colophon{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:space-between;align-items:baseline;
  padding-top:1.4rem;border-top:1px solid var(--line);font-family:var(--mono);
  font-size:var(--step--1);letter-spacing:.05em;color:var(--muted)}
.colophon strong{color:var(--bone);font-weight:600}

.callbar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:1fr 1fr;
  border-top:1px solid var(--line);background:color-mix(in srgb,var(--ground) 95%,transparent);
  backdrop-filter:blur(10px);padding-bottom:env(safe-area-inset-bottom)}
.callbar a{display:flex;align-items:center;justify-content:center;padding:1rem .75rem;
  text-decoration:none;font-family:var(--mono);font-size:var(--step--1);
  letter-spacing:.1em;text-transform:uppercase}
.callbar a+a{border-left:1px solid var(--line);background:var(--wine-deep);color:#fff}
@media(min-width:880px){.callbar{display:none}}
@media(max-width:879px){body{--bar:4.25rem}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.page[hidden]{display:none}
