:root{--olive:#1d0b0d;--forest:#103b15;--lemon:#f7ea48;--cream:#fcf9f0;--sage:#dbe2dc;--terra:#c95b3a;--peach:#f1b48c;--mauve:#b693a8;}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--olive);color:var(--cream);font-family:'Outfit',system-ui,sans-serif;font-size:19px;line-height:1.4;letter-spacing:.03em;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
:focus-visible{outline:2px solid var(--lemon);outline-offset:3px;}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px;}
.cbar{position:sticky;top:0;z-index:300;background:#000;color:#fff;font:500 12px/1 'Inter',system-ui,sans-serif;letter-spacing:0;padding:11px 20px;display:flex;justify-content:space-between;gap:16px;}
.cbar .cb-l{display:flex;gap:18px;flex-shrink:0;white-space:nowrap;}
.cbar a{text-decoration:underline;text-underline-offset:3px;}
.cbar .cb-home{font-weight:700;}

/* header */
.top{padding:0 24px;}
.top-in{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:96px;gap:24px;}
.top nav{display:flex;gap:6px;font-size:15px;text-transform:uppercase;letter-spacing:.06em;flex-wrap:wrap;}
.top nav.r{justify-content:flex-end;}
.top nav a{padding:8px 12px;border:1px solid transparent;border-radius:1px;}
.top nav a:hover{border-color:rgba(255,255,255,.5);}
.top nav a[aria-current]{border-color:#fff;}
.logo{font-size:34px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;text-align:center;line-height:1;}
@media (max-width:860px){.top-in{grid-template-columns:1fr;gap:8px;padding:18px 0;text-align:center;}.top nav,.top nav.r{justify-content:center;}.logo{order:-1;font-size:30px;}}

/* buttons */
.btn{display:inline-block;background:var(--lemon);color:var(--olive);padding:12px 20px;border-radius:1px;border:0;font:600 16px/1.2 'Outfit',system-ui,sans-serif;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;}
.btn:hover{background:#fff;}
.link{display:inline-flex;gap:8px;align-items:center;font-size:16px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--forest);}
.link:hover{text-decoration:underline;}
.on-dark .link,.link.l{color:var(--cream);}
.link.lemon{color:var(--lemon);}

/* hero */
.hero{position:relative;overflow:hidden;min-height:620px;display:flex;align-items:center;padding:40px 0 80px;}
.hero .wrap{width:100%;}
.hero h1{font-size:clamp(52px,9vw,112px);font-weight:400;line-height:1;letter-spacing:.06em;color:var(--lemon);text-transform:uppercase;margin-bottom:28px;position:relative;z-index:2;}
.hero p{font-size:20px;max-width:30ch;margin-bottom:34px;position:relative;z-index:2;}
.hero .acts{display:flex;gap:24px;align-items:center;flex-wrap:wrap;position:relative;z-index:2;}
.disc{position:absolute;right:-14vw;top:50%;transform:translateY(-50%);width:min(56vw,680px);aspect-ratio:1;border-radius:50%;background:repeating-conic-gradient(var(--lemon) 0 .8deg,transparent .8deg 30deg),var(--forest);box-shadow:0 0 0 2px var(--lemon);}
.disc::before,.disc::after{content:'';position:absolute;border-radius:50%;}
.disc::before{inset:7%;border:2px solid var(--lemon);}
.disc::after{inset:38%;background:var(--olive);border:2px solid var(--lemon);}
@media (max-width:860px){.disc{right:-30vw;opacity:.55;width:90vw;}}

/* sections */
section{padding:90px 0;}
.light{background:var(--cream);color:var(--forest);}
.light h2,.light h3{color:var(--forest);}
h2{font-size:clamp(30px,4vw,46px);font-weight:500;letter-spacing:.06em;line-height:1.1;text-transform:uppercase;margin-bottom:18px;}
h3{font-size:22px;font-weight:500;letter-spacing:.04em;line-height:1.2;}
.lead{font-size:20px;max-width:46ch;}
.center{text-align:center;}
.center .lead{margin:0 auto;}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 30px;margin-top:50px;}
@media (max-width:860px){.grid3{grid-template-columns:1fr;}}
.dish p{font-size:19px;margin:8px 0 14px;color:var(--forest);}
.dish h3{margin-top:30px;color:var(--olive);}

/* plate tiles (illustrated, no photo) */
.tile{position:relative;aspect-ratio:1;background:var(--c,#c95b3a);overflow:hidden;}
.tile::before{content:'';position:absolute;inset:13%;border-radius:50%;background:var(--cream);}
.tile::after{content:'';position:absolute;inset:25%;border-radius:50%;background:var(--f,#e8c547);}
.tile i{position:absolute;border-radius:50%;z-index:1;}
.tile.sq::after{border-radius:2px;inset:30% 22%;}

/* feature banner */
.feature{display:grid;grid-template-columns:1fr 1.15fr;gap:60px;align-items:center;}
@media (max-width:860px){.feature{grid-template-columns:1fr;gap:30px;}}
.feature .tile{aspect-ratio:5/4;}

/* hours */
.hours{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;}
.hours dl{border-top:1px solid rgba(252,249,240,.3);}
.hours dl div{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid rgba(252,249,240,.3);}
.hours dt{text-transform:uppercase;letter-spacing:.06em;font-size:16px;}
@media (max-width:860px){.hours{grid-template-columns:1fr;gap:30px;}}

/* menu page */
.page-hero{padding:60px 0 30px;}
.page-hero h1{font-size:clamp(48px,8vw,96px);font-weight:400;letter-spacing:.06em;line-height:1;color:var(--lemon);text-transform:uppercase;margin-bottom:16px;}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:30px 0 0;}
.tabs button{font:500 16px/1.2 'Outfit',sans-serif;letter-spacing:.05em;text-transform:uppercase;background:transparent;color:var(--cream);border:1px solid rgba(255,255,255,.4);border-radius:1px;padding:10px 18px;cursor:pointer;}
.tabs button[aria-selected=true]{background:var(--lemon);color:var(--olive);border-color:var(--lemon);}
.menu{padding:30px 0 90px;}
.menu-group[hidden]{display:none;}
.item{display:grid;grid-template-columns:1fr auto;gap:8px 30px;padding:22px 0;border-bottom:1px solid var(--sage);}
.item h3{font-size:22px;}
.item p{grid-column:1;font-size:18px;color:var(--forest);opacity:.85;}
.item .price{grid-row:1;grid-column:2;font-size:22px;font-weight:500;}
.tag{display:inline-block;margin-left:10px;font-size:12px;border:1px solid var(--forest);padding:1px 6px;border-radius:1px;letter-spacing:.06em;vertical-align:middle;}
.formule{background:var(--forest);color:var(--cream);padding:36px;margin:0 0 40px;}
.formule h2{color:var(--lemon);font-size:28px;margin-bottom:10px;}
.formule p{max-width:60ch;}

/* reservation */
.resa{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:start;padding:30px 0 90px;}
@media (max-width:860px){.resa{grid-template-columns:1fr;}}
form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
@media (max-width:560px){form .row{grid-template-columns:1fr;}}
label{display:block;font-size:15px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;}
input,select,textarea{width:100%;font:400 17px/1.3 'Outfit',sans-serif;letter-spacing:.02em;color:var(--cream);background:transparent;border:1px solid rgba(255,255,255,.5);border-radius:1px;padding:12px 14px;}
input::placeholder,textarea::placeholder{color:#b9aeb0;}
select option{color:#1d0b0d;}
textarea{min-height:110px;resize:vertical;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--lemon);}
.slots{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;}
.slots label{margin:0;}
.slots input{position:absolute;opacity:0;width:0;}
.slots span{display:inline-block;border:1px solid rgba(255,255,255,.5);padding:10px 16px;border-radius:1px;font-size:16px;cursor:pointer;letter-spacing:.04em;text-transform:none;}
.slots input:checked+span{background:var(--lemon);color:var(--olive);border-color:var(--lemon);}
.slots input:focus-visible+span{outline:2px solid var(--lemon);outline-offset:3px;}
.note{font-size:16px;margin-top:16px;min-height:24px;color:var(--lemon);}
.info{border:1px solid rgba(255,255,255,.35);padding:28px;}
.info h3{color:var(--lemon);margin-bottom:12px;}
.info p{font-size:17px;margin-bottom:12px;}
details{border-bottom:1px solid var(--sage);}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;padding:20px 0;font-size:20px;font-weight:500;letter-spacing:.03em;}
summary::-webkit-details-marker{display:none;}
summary::after{content:'+';font-size:26px;font-weight:300;}
details[open] summary::after{content:'\2212';}
details p{padding:0 0 20px;max-width:60ch;color:var(--forest);}

/* footer */
footer{padding:50px 0 40px;border-top:1px solid rgba(252,249,240,.25);}
.foot{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;font-size:16px;}
.foot b{display:block;text-transform:uppercase;letter-spacing:.08em;font-weight:500;margin-bottom:8px;color:var(--lemon);}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
