:root{
  --paper:#F1EAD8;--paper-2:#E6DCC4;
  --green:#969276;--green-deep:#7D795F;--green-ink:#5C5945;
  --wine:#6E1A2E;
  --ink:#1F221B;--muted:#5E6155;--cream:#F6F0E1;
  --display:'Bebas Neue',Impact,sans-serif;--ui:'Karla',system-ui,sans-serif;--body:'Karla',system-ui,sans-serif;
  --gutter:clamp(16px,5vw,64px);
  --hero-x:clamp(16px,9vw,150px);
  --vichy:repeating-linear-gradient(90deg,var(--wine) 0 6px,transparent 6px 12px),repeating-linear-gradient(0deg,var(--wine) 0 6px,transparent 6px 12px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--paper);line-height:1.55;font-size:17px;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,.d{font-family:var(--display);font-weight:400;text-transform:uppercase;line-height:.95;letter-spacing:.03em}
.wrap{padding-inline:var(--gutter);max-width:1360px;margin-inline:auto}
.vichy{height:8px;background:var(--vichy);background-color:var(--cream);background-size:12px 12px;opacity:.8}
.btn{display:inline-flex;align-items:center;padding:11px 20px;background:var(--wine);color:var(--cream);font-family:var(--ui);font-weight:600;text-transform:uppercase;font-size:.8rem;letter-spacing:.14em;transition:background .2s}
.btn:hover{background:var(--green-ink)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}

/* LOCKUP */
.lockup{display:inline-flex;flex-direction:column;align-items:center;line-height:1;color:var(--paper)}
.lockup .script{font-family:'Sacramento',cursive;font-weight:400;-webkit-text-stroke:.045em currentColor;paint-order:stroke fill}
.nav .brand .script{-webkit-text-stroke:.022em currentColor}
.lockup .script i{font-style:normal;margin-left:.16em}
.lockup .sub{font-family:'Anton',Impact,sans-serif;text-transform:uppercase;letter-spacing:.04em;margin-top:-.32em;color:var(--paper-2)}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px var(--hero-x);color:var(--paper);background:transparent;transition:background .3s,padding .3s}
.nav.on{background:rgba(24,30,24,.94);padding-block:8px}
.brand img{display:none}
.brand .script{font-size:2.5rem;transition:font-size .3s}
.brand .sub{font-size:.58rem;letter-spacing:.2em;margin-top:-.2em}
.nav.on .brand .script{font-size:2.1rem}
.nav ul{display:flex;gap:4px;list-style:none;font-family:var(--ui);font-weight:600;text-transform:uppercase;font-size:.78rem;letter-spacing:.16em}
.nav ul a{padding:8px 14px;opacity:.85;transition:opacity .2s}
.nav ul a:hover{opacity:1}
.nav .btn{background:var(--wine);color:var(--cream)}
.nav .btn:hover{background:var(--paper);color:var(--wine)}

/* HERO */
.hero{position:relative;min-height:100vh;padding-top:92px;display:flex;align-items:center;color:var(--paper);background:#1E241E}
.hero-img{position:absolute;inset:0}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:100% 50%}
.hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(24,30,24,.9) 0%,rgba(24,30,24,.72) 30%,rgba(24,30,24,.25) 58%,rgba(24,30,24,.08) 100%)}
.hero-copy{position:relative;padding:clamp(56px,12vh,140px) var(--gutter) clamp(56px,12vh,140px) var(--hero-x);max-width:none;display:flex;flex-direction:column;gap:22px}
.hero .kicker{display:block;font-family:var(--ui);font-weight:600;text-transform:uppercase;font-size:.78rem;letter-spacing:.2em;color:#E9B949;margin-bottom:14px}
.hero h1{font-size:clamp(2.8rem,5vw,4.8rem);line-height:.95;letter-spacing:.03em;max-width:none;white-space:nowrap}
.hero h1 strong{font-weight:500;display:block}
.hero h1 em{font-style:normal;color:#E9B949}
.hero p.lead{font-size:1.08rem;max-width:46ch;color:var(--paper-2)}
.hero-copy .btn{background:var(--wine);color:var(--cream);padding:15px 26px;font-size:.82rem}
.hero-copy .btn.ghost{background:transparent;color:var(--paper);box-shadow:inset 0 0 0 1px rgba(246,240,225,.7)}
.hero-copy .btn.ghost:hover{background:var(--paper);color:var(--green-ink)}

/* SECTIONS */
section{padding-block:clamp(64px,9vw,120px)}
.title{font-size:clamp(2.8rem,5vw,4.8rem);max-width:14ch}
.title em{font-style:normal;color:var(--wine)}
.rule{height:1px;background:var(--wine);margin:22px 0 30px;max-width:80px}

/* ABOUT */
.about{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:start}
.about .txt>p{font-size:1.1rem;max-width:52ch;color:var(--muted)}
.pillars{display:grid;margin-top:40px}
.pillar{padding:20px 0;border-top:1px solid rgba(31,34,27,.25);display:grid;grid-template-columns:200px 1fr;gap:20px}
.pillar>div{display:contents}
.pillar h3{font-size:1.4rem;letter-spacing:.05em}
.pillar p{font-size:.98rem;color:var(--muted)}
.about .pics{display:grid;grid-template-columns:1fr 1fr;gap:12px;position:sticky;top:96px}
.about .pics img{width:100%;height:100%;object-fit:cover;border:3px solid var(--paper);outline:1px solid rgba(31,34,27,.35)}
.about .pics img:nth-child(1){grid-column:1/3;aspect-ratio:16/10}
.about .pics img:nth-child(2),.about .pics img:nth-child(3){aspect-ratio:1}
.awen{margin-top:36px;padding:18px 0;border-top:1px solid rgba(31,34,27,.25);border-bottom:1px solid rgba(31,34,27,.25)}
.awen .serif{font-family:var(--display);text-transform:uppercase;font-size:1.5rem;letter-spacing:.05em;color:var(--wine)}
.awen small{display:block;margin-top:4px;color:var(--muted);font-size:.95rem}

/* MENU (ardoise verte) */
.menu{background:var(--green-ink);color:var(--paper)}
.menu .title{color:var(--paper)}
.menu .title em{color:var(--paper-2)}
.menu-head p{max-width:52ch;color:var(--paper-2);margin-top:20px;font-size:1.05rem}
.tabs{display:flex;flex-wrap:wrap;gap:4px;margin-top:40px}
.tabs label{padding:11px 18px;font-family:var(--ui);font-weight:600;text-transform:uppercase;font-size:.78rem;letter-spacing:.14em;cursor:pointer;background:transparent;color:var(--paper-2);box-shadow:inset 0 0 0 1px var(--paper-2);transition:background .2s,color .2s}
.tabs label:hover{color:var(--paper);box-shadow:inset 0 0 0 1px var(--paper)}
.menu input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.panel{display:none;padding-top:48px}
#t-pizzas:checked~.tabs label[for=t-pizzas],#t-cuisine:checked~.tabs label[for=t-cuisine],#t-boissons:checked~.tabs label[for=t-boissons],#t-formules:checked~.tabs label[for=t-formules]{background:var(--paper);color:var(--wine);box-shadow:none}
#t-pizzas:checked~#p-pizzas,#t-cuisine:checked~#p-cuisine,#t-boissons:checked~#p-boissons,#t-formules:checked~#p-formules{display:block}
.cols{columns:2;column-gap:72px}
#p-pizzas .cols{columns:auto;display:grid;grid-template-columns:1.25fr 1fr;gap:72px;align-items:start}
.grp{break-inside:avoid;margin-bottom:48px}
.grp h3{font-size:1.7rem;letter-spacing:.06em;color:var(--paper);padding-bottom:8px;border-bottom:1px solid rgba(246,240,225,.45);margin-bottom:6px}
.grp>p{font-size:.92rem;color:var(--paper-2);margin-bottom:10px}
.item{padding:13px 0;border-bottom:1px solid rgba(246,240,225,.18)}
.item .l{display:flex;align-items:baseline;gap:12px}
.item .l b{font-weight:700;font-size:.98rem}
.item .l i{flex:1;border-bottom:1px dotted rgba(246,240,225,.45);min-width:24px;transform:translateY(-5px)}
.item .l span{font-family:var(--display);font-size:1.2rem;white-space:nowrap;letter-spacing:.04em}
.item p{font-size:.9rem;color:var(--paper-2);margin-top:2px;line-height:1.45}
.tag{font-weight:700;margin-right:6px;text-transform:uppercase;font-size:.78rem;letter-spacing:.06em}
.tag::after{content:" ·"}
.tag.v{color:#B9D19A}.tag.p,.tag.pp{color:#F2A58E}.tag.n{color:var(--paper-2)}.tag.s{color:#A9C7DC}
.fav{position:sticky;top:96px;padding:28px 32px;background:var(--paper);color:var(--ink);margin-bottom:48px}
.fav h3{color:var(--wine);border-color:var(--wine)}
.fav .item{border-color:rgba(31,34,27,.15)}
.fav .item p{color:var(--muted)}
.fav .item .l i{border-color:rgba(31,34,27,.35)}
.fav .tag.v{color:#4E6A2E}.fav .tag.p,.fav .tag.pp{color:var(--wine)}
.formules{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.card{padding:36px;background:var(--green-deep);display:flex;flex-direction:column;gap:10px;min-height:280px}
.card.hi{background:var(--paper);color:var(--ink)}
.card.hi p{color:var(--muted)}
.card.hi h3,.card.hi .price{color:var(--wine)}
.card h3{font-size:2.1rem}
.card .price{font-family:var(--display);font-size:3.6rem;line-height:1;margin-top:auto}
.card p{font-size:1rem;color:var(--paper)}
.note{margin-top:28px;font-size:.92rem;color:var(--muted)}
.menu .note{color:var(--paper-2)}

/* TEAM */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:48px}
.member{display:flex;flex-direction:column;gap:16px}
.member figure{aspect-ratio:3/4;overflow:hidden;background:var(--green-deep);border:3px solid var(--paper);outline:1px solid rgba(31,34,27,.35)}
.member img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.1)}
.member h3{font-size:2.2rem}
.member h3 small{display:block;font-family:var(--body);text-transform:none;font-size:1rem;color:var(--wine);font-weight:700;letter-spacing:0;margin-bottom:4px}
.member p{font-size:.98rem;color:var(--muted)}
.member blockquote{font-weight:500;font-size:1.05rem;line-height:1.4;padding-left:14px;border-left:2px solid var(--wine)}

/* GALERIE */
.galerie{background:var(--paper-2);padding-block:clamp(56px,8vw,96px)}
.galerie .head .title{max-width:none}
.galerie .head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:32px}
.galerie .arrows{display:flex;gap:6px}
.galerie .arrows button{width:46px;height:46px;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;font-size:1.3rem;line-height:1;transition:background .2s,color .2s}
.galerie .arrows button:hover{background:var(--wine);border-color:var(--wine);color:var(--cream)}
.strip{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);padding-inline:var(--gutter);padding-bottom:12px;scrollbar-width:thin;scrollbar-color:var(--wine) transparent}
.strip img{height:clamp(240px,38vw,440px);width:auto;flex:none;scroll-snap-align:start;object-fit:cover;border:3px solid var(--paper);outline:1px solid rgba(31,34,27,.3)}
@media(max-width:960px){.galerie .arrows{display:none}}

/* REVIEWS */
.reviews{background:var(--wine);color:var(--paper)}
.score{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.score .n{font-family:var(--display);font-size:5.5rem;line-height:1}
.stars{color:#E9B949;display:flex;gap:2px}
.score small{display:block;font-size:1rem;color:rgba(255,255,255,.85)}
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:48px}
.q{padding-top:20px;border-top:1px solid rgba(255,255,255,.45);display:flex;flex-direction:column;gap:14px}
.q p{font-size:1.08rem;line-height:1.45;font-weight:400}
.q p::before{content:"« "}.q p::after{content:" »"}
.q footer{margin-top:auto;font-family:var(--ui);font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.16em}

/* INFOS */
.infos{display:grid;grid-template-columns:1fr 1.1fr;align-items:start;gap:clamp(32px,6vw,96px)}
.hours{list-style:none;margin-top:32px}
.hours li{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:11px 0;border-top:1px solid rgba(31,34,27,.25);font-size:.98rem}
.hours li b{font-family:var(--ui);text-transform:uppercase;font-size:.78rem;font-weight:600;letter-spacing:.14em;align-self:center}
.hours li.off{color:var(--muted)}
.hours li em{font-style:normal;color:var(--wine);font-weight:700;font-size:.9rem}
.contact-big{font-family:var(--display);text-transform:uppercase;font-size:clamp(1.7rem,2.6vw,2.4rem);line-height:1.1;letter-spacing:.04em}
.contact-big a{color:var(--wine)}
.contact-big a:hover{color:var(--green-ink)}
.infos .box{background:var(--green-ink);color:var(--paper);padding:40px;position:relative;overflow:hidden;margin-top:32px}
.infos .box img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.3}
.infos .box>*{position:relative}
.infos .box h3{font-size:2.1rem}
.infos .box p{color:var(--paper-2);margin-top:12px;max-width:34ch}
.infos .box .btn{margin-top:24px}

/* FOOTER */
footer.site{background:var(--green-ink);color:var(--paper-2);padding:clamp(48px,7vw,80px) var(--gutter) 28px}
.foot{max-width:1360px;margin-inline:auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.foot h4{font-family:var(--ui);font-weight:600;text-transform:uppercase;font-size:.72rem;letter-spacing:.16em;color:var(--paper);margin-bottom:14px}
.foot p,.foot li{font-size:.92rem;line-height:1.6}
.foot ul{list-style:none}
.foot a:hover{color:var(--paper);text-decoration:underline}
.foot .lockup{margin-bottom:14px}
.foot .lockup .script{font-size:2.2rem}
.foot .lockup .sub{font-size:.55rem;letter-spacing:.2em}
.foot .hrs li{display:flex;justify-content:space-between;gap:12px;border-top:1px solid rgba(246,240,225,.12);padding:6px 0}
.foot .hrs li:first-child{border:0}
.bottom{max-width:1360px;margin:24px auto 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:.8rem}
.bottom nav{display:flex;gap:18px;flex-wrap:wrap}
.bottom a:hover{color:var(--paper);text-decoration:underline}

/* REVEAL */
.rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.rv.in{opacity:1;transform:none}

@media(max-width:960px){
  .nav ul{display:none}
  .nav{padding:12px 16px}
  .nav .brand .sub{display:none}
  .nav .btn .num{display:none}
  .nav .btn{padding:11px 16px}
  .hero{min-height:88vh;padding-top:80px}
  .hero h1{white-space:normal;font-size:clamp(2.6rem,11vw,3.4rem)}
  .brand .script{font-size:2.1rem}
  .hero-img img{object-position:62% 60%}
  .hero-img::after{background:linear-gradient(180deg,rgba(24,30,24,.55) 0%,rgba(24,30,24,.9) 100%)}
  .about,.infos,.formules{grid-template-columns:1fr}
  .about .pics{position:static}
  .pillar{grid-template-columns:1fr;gap:6px}
  .cols,#p-pizzas .cols{columns:1;display:block}
  .fav{position:static}
  .team-grid,.quotes{grid-template-columns:1fr}
  .foot{grid-template-columns:1fr 1fr}
    .score .n{font-size:5rem}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.rv{opacity:1;transform:none}}

/* PAGES */
.page{padding:140px var(--gutter) 80px;max-width:960px;margin-inline:auto}
.page h1{font-size:clamp(2.4rem,4.5vw,3.6rem);margin-bottom:6px}
.page .lead{color:var(--muted);margin-bottom:36px;max-width:60ch}
.page h2{font-size:1.5rem;color:var(--wine);margin:32px 0 8px}
.page p{margin-bottom:12px;max-width:72ch}
.page a{text-decoration:underline}
.page a:hover{color:var(--wine)}

@media(max-width:640px){
  .foot{grid-template-columns:1fr;gap:32px}
  .foot>div:first-child p{max-width:34ch}
  .foot li{overflow-wrap:anywhere}
  .foot .hrs li{padding:8px 0}
  .bottom{flex-direction:column;align-items:flex-start;gap:10px}
}
@media(max-width:640px){.hero .kicker span{display:block}}

/* RÉSERVATION */
.resa{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-top:22px;padding-top:20px;border-top:1px solid rgba(246,240,225,.2)}
.resa label{display:flex;flex-direction:column;gap:6px;font-family:var(--ui);font-weight:600;text-transform:uppercase;font-size:.66rem;letter-spacing:.14em;color:var(--paper)}
.resa label.wide,.resa button{grid-column:1/3}
.resa input,.resa select{font:inherit;font-family:var(--body);font-size:1rem;padding:11px 12px;background:var(--paper);border:0;border-radius:0;color:var(--ink);color-scheme:light;width:100%}
.resa select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231F221B' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.resa select:focus{outline:2px solid #E9B949;outline-offset:1px}
.resa input::placeholder{color:var(--muted)}
.resa input:focus{outline:2px solid #E9B949;outline-offset:1px}
.resa .btn.ghost{appearance:none;-webkit-appearance:none;border:0;margin-top:6px;justify-content:center;background:#E9B949;color:var(--ink);box-shadow:none;cursor:pointer}
.resa .btn.ghost:hover{background:var(--paper);color:var(--ink)}
.mbar{display:none}
@media(max-width:640px){
  .mbar{display:grid;grid-template-columns:1fr 1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:60;background:var(--wine);color:var(--cream);font-family:var(--ui);font-weight:600;text-transform:uppercase;font-size:.72rem;letter-spacing:.14em;text-align:center;box-shadow:0 -1px 0 rgba(0,0,0,.2)}
  .mbar a{padding:15px 6px;border-right:1px solid rgba(255,255,255,.15)}
  .mbar a:last-child{border:0}
  body{padding-bottom:50px}
  .resa{grid-template-columns:1fr}
  .resa label.wide,.resa button{grid-column:1}
}
