/* Ôresto — base commune des directions. Les couleurs et polices viennent des feuilles de direction. */
@font-face{font-family:"Fraunces";src:url(/assets/fonts/fraunces.woff2) format("woff2");font-weight:300 800;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url(/assets/fonts/fraunces-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Mulish";src:url(/assets/fonts/mulish.woff2) format("woff2");font-weight:400 800;font-display:swap}

@font-face{font-family:"Caveat";src:url(/assets/fonts/caveat.woff2) format("woff2");font-weight:500 700;font-display:swap}


:root{
  --bg:#f2ecda;--surface:#fbf7ec;--ink:#1d2a22;--muted:#5a6158;--line:rgba(29,42,34,.16);
  --accent:#105a3c;--accent-ink:#f2ecda;--mark:#c45b4f;
  --font-display:"Fraunces",Georgia,serif;--font-text:"Mulish",system-ui,sans-serif;
  --radius:12px;--wrap:1200px;--gutter:clamp(16px,4vw,40px);--header-h:64px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.55 var(--font-text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
h1,h2,h3,h4,p,ul,dl,dd,figure{margin:0}
ul{padding:0;list-style:none}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus,var(--accent));outline-offset:3px;border-radius:4px}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border-radius:999px;
  border:1.5px solid currentColor;font:700 .95rem/1 var(--font-text);text-decoration:none;white-space:nowrap;transition:background-color .16s,color .16s,border-color .16s}
.btn-solid{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}

/* ---------- en-tête */
.site-top{position:sticky;top:0;z-index:30;height:var(--header-h)}
.site-top-inner{height:100%;max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:16px}
.site-logo{display:block;flex:none}
.site-logo img{height:44px;width:auto}
.site-nav{display:flex;align-items:center;gap:4px}
.site-nav a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border-radius:999px;text-decoration:none;font-weight:700;font-size:.95rem}
.site-call svg{width:18px;height:18px;fill:currentColor}
@media (max-width:520px){.site-call span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.site-nav a{padding:0 10px}}

/* ---------- menu : bandeau collant (onglets de service + catégories) */
.restaurant-menu{scroll-margin-top:var(--header-h)}
.menu-sticky{position:sticky;top:var(--header-h);z-index:20}
.menu-sticky-inner{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.menu-service-tabs{display:flex;gap:4px}
.menu-service-tab{cursor:pointer;border:0;background:none;min-height:44px;padding:0 18px;font-weight:700}
.menu-jump-bar{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:8px 0;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent)}
.menu-jump-bar::-webkit-scrollbar{display:none}
.menu-jump-bar[hidden]{display:none}
.menu-jump-bar a{flex:none;display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;text-decoration:none;font-size:.9rem;font-weight:700;white-space:nowrap}
.menu-service-panel{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.menu-service-panel:focus-visible{outline-offset:-2px}
.bistro-menu-tools{padding:24px 0 8px}
.bistro-menu-tools p{font-weight:700}
.menu-facts{display:flex;flex-wrap:wrap;gap:8px 28px;padding:8px 0 0}
.menu-facts p{display:grid;gap:0}
.menu-facts strong{font-size:.95rem}
.menu-facts span{color:var(--muted);font-size:.92rem}

/* catégories */
.menu-category-stage{display:grid;gap:clamp(36px,5vw,56px) clamp(32px,5vw,72px);padding:28px 0 56px}
@media (min-width:900px){.menu-category-stage{grid-template-columns:1fr 1fr}.bistro-category.bistro-wide{grid-column:1/-1}}
.menu-category-panel{scroll-margin-top:calc(var(--header-h) + 120px)}
.menu-category-panel:focus{outline:none}
.menu-category-heading{display:flex;flex-direction:column-reverse;gap:4px}
.menu-category-heading h3{font-family:var(--font-display);font-weight:600;line-height:1.1;font-size:clamp(1.75rem,3vw,2.25rem)}
.menu-category-heading p{color:var(--muted);font-size:.95rem}
.menu-category-note{color:var(--muted);font-size:.92rem;margin-top:6px}
.menu-category-note strong{color:var(--ink)}
.bistro-dishes{margin-top:16px}
/* Catégories larges : deux colonnes qui se remplissent l'une après l'autre, sans trou entre plats de hauteurs différentes. */
@media (min-width:900px){
  .bistro-wide .bistro-dishes{columns:2;column-gap:clamp(32px,5vw,72px)}
  .bistro-wide .bistro-dishes>*{break-inside:avoid}
  .bistro-wide .bistro-dishes:has(.menu-subheading){columns:auto}
}

/* plats : nom — pointillés — prix */
.dish-item{padding:12px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr;column-gap:16px;align-content:start}
.dish-line{display:flex;align-items:baseline;gap:10px}
.dish-line h4{font:700 1.06rem/1.3 var(--font-text);display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:6px}
.dish-line::after{content:"";order:1;flex:1;min-width:16px;border-bottom:2px dotted var(--line);transform:translateY(-4px)}
.dish-price{order:2;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.dish-item>p{color:var(--muted);font-size:.98rem;margin-top:2px;max-width:60ch}
.dish-item .dish-note{font-size:.92rem;font-weight:700;color:var(--ink)}
.dish-markers{display:inline-flex;gap:4px;align-self:center}
.dish-marker{display:inline-grid;place-items:center;width:20px;height:20px;color:var(--mark)}
.dish-marker svg{width:16px;height:16px}
.dish-marker[data-marker=vegan] svg,.dish-marker[data-marker=gluten] svg{stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dish-marker[data-marker=vegan],.dish-marker[data-marker=gluten]{color:var(--accent)}
.dish-history{margin-top:6px}
.dish-history summary{cursor:pointer;display:inline-flex;align-items:center;min-height:32px;font-size:.88rem;font-weight:700;color:var(--accent);list-style:none}
.dish-history summary::-webkit-details-marker{display:none}
.dish-history summary::before{content:"+";display:inline-grid;place-items:center;width:18px;height:18px;margin-right:6px;border-radius:50%;border:1.5px solid currentColor;font-size:.8rem;line-height:1}
.dish-history[open] summary::before{content:"–"}
.dish-history p{color:var(--muted);font-size:.92rem;max-width:62ch;padding:4px 0 6px}

/* plats avec photo : vignette à gauche */
.dish-item-feature{grid-template-columns:88px 1fr;grid-template-areas:"ph line" "ph desc" "ph more"}
.dish-item-feature .dish-feature-photo{grid-area:ph;align-self:start}
.dish-item-feature .dish-feature-photo img{width:88px;height:88px;object-fit:cover;border-radius:10px}
.dish-item-feature .dish-line{grid-area:line}
.dish-item-feature>p{grid-area:desc}
.dish-item-feature .dish-history{grid-area:more}
.bistro-section-photo{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius);margin-top:20px}
@media (min-width:900px){.bistro-photo-section .bistro-section-photo{grid-column:1/-1;aspect-ratio:21/8}}

/* listes compactes */
.menu-subheading{font:600 1.2rem/1.3 var(--font-display);margin:24px 0 4px}
.bistro-dishes>.menu-subheading:first-child{margin-top:0}
.compact-dish-grid{display:grid;gap:0 32px}
@media (min-width:640px){.compact-dish-grid{grid-template-columns:1fr 1fr}}
.compact-price-list li{display:flex;align-items:baseline;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.compact-price-list li::after{content:"";order:1;flex:1;min-width:16px;border-bottom:2px dotted var(--line);transform:translateY(-4px)}
.compact-price-list strong{order:2;font-variant-numeric:tabular-nums;white-space:nowrap}
.plain-option-list li{padding:8px 0;border-bottom:1px solid var(--line)}
@media (min-width:900px){.bistro-wide .compact-price-list{columns:2;column-gap:clamp(32px,5vw,72px)}.bistro-wide .compact-price-list li{break-inside:avoid}}

/* légende et allergies */
.bistro-menu-key,.menu-allergen-note{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.menu-marker-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;padding:16px 0;border-top:1px solid var(--line);font-size:.92rem}
.menu-marker-keys{display:flex;flex-wrap:wrap;gap:8px 18px}
.menu-marker-keys>span{display:inline-flex;align-items:center;gap:6px}
.menu-allergen-note{padding-bottom:48px;color:var(--muted);font-size:.92rem}

/* ---------- promotion P'tits jeudi */
.kids-thursday-banner{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.kids-thursday-banner-copy{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}
.kids-thursday-message{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 24px}
.kids-thursday-deal{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px}
.kids-thursday-offer{display:flex;align-items:baseline;gap:8px}
.kids-thursday-cta{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 20px;border-radius:999px;text-decoration:none;font-weight:800}

/* ---------- galerie */
.gallery{max-width:var(--wrap);margin:0 auto;padding:clamp(48px,7vw,88px) var(--gutter)}
.gallery h2{font:600 clamp(1.75rem,3vw,2.25rem)/1.1 var(--font-display);margin-bottom:20px}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery-mosaic .gallery-grid{display:grid;gap:12px;grid-template-columns:repeat(2,1fr);grid-auto-rows:clamp(150px,22vw,260px)}
.gallery-mosaic .g-1{grid-row:span 2}
@media (min-width:760px){.gallery-mosaic .gallery-grid{grid-template-columns:repeat(4,1fr)}.gallery-mosaic .g-1{grid-column:span 2;grid-row:span 2}.gallery-mosaic .g-4{grid-column:span 2}}
.gallery-mosaic figure{overflow:hidden;border-radius:var(--radius)}
.gallery-strip .gallery-grid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}
.gallery-strip figure{flex:0 0 clamp(220px,28vw,340px);aspect-ratio:4/5;scroll-snap-align:start;overflow:hidden;border-radius:var(--radius)}
.gallery-strip .g-1,.gallery-strip .g-4{flex-basis:clamp(280px,40vw,520px);aspect-ratio:auto}

/* ---------- pied de page et emplacement */
.site-foot-inner{max-width:var(--wrap);margin:0 auto;padding:clamp(48px,7vw,80px) var(--gutter) 24px;display:grid;gap:40px}
@media (min-width:900px){.site-foot-inner{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}}
.foot-info{display:grid;gap:14px;justify-items:start}
.foot-deer{width:72px;height:72px}
.foot-info h2{font:600 clamp(1.75rem,3vw,2.4rem)/1.1 var(--font-display)}
.foot-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.location-card{display:grid;border-radius:var(--radius);overflow:hidden}
@media (min-width:640px){.location-card{grid-template-columns:1.1fr 1fr}}
.location-illustration{position:relative;min-height:240px}
.location-map-live,.location-map-fallback{position:absolute;inset:0;width:100%;height:100%;border:0}
.location-map-credit{position:absolute;right:6px;bottom:6px;z-index:2;font-size:.7rem;padding:2px 6px;border-radius:4px;background:rgba(255,255,255,.85);color:#222;text-decoration:none}
.location-note{display:none}
.location-details{padding:24px;display:grid;gap:10px;align-content:start}
.location-eyebrow{font-size:.85rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.location-details h2{font:600 1.6rem/1.15 var(--font-display)}
.location-address{display:grid}
.location-chips{display:flex;flex-wrap:wrap;gap:6px}
.location-chip{font-size:.85rem;padding:4px 10px;border-radius:999px}
.location-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.location-action{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;text-decoration:none;font-weight:700;font-size:.92rem;border:1.5px solid currentColor}
.location-live-marker{display:flex;flex-direction:column;align-items:center;gap:4px}
.location-live-marker-dot{width:16px;height:16px;border-radius:50%;background:var(--accent);border:3px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.location-live-marker-label{font:800 .78rem/1 var(--font-text);background:#fff;color:#1d2a22;padding:4px 8px;border-radius:6px;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.foot-line{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding-top:20px;font-size:.9rem}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
