/* Samovar Café : feuille de style partagée par toutes les pages.
   Extraite de index.html le 22/09/2026 pour servir /, /menu/ et les pages à venir.
   Chemins absolus (/assets/...) : le fichier est appelé depuis n'importe quel niveau. */
/* ==========================================================================
   1. POLICES : auto-hébergées. Aucune requête vers un serveur tiers.
      Les .woff2 se déposent dans assets/fonts/ (voir NOTE-MISE-EN-LIGNE.md).
      Si les fichiers sont absents, le site bascule sur la pile de repli
      ci-dessous sans casser la mise en page.
   ========================================================================== */
/* Bloc ACTIF depuis le 23/08/2026 : les quatre .woff2 sont dans assets/fonts/
   (sous-ensemble latin, 82 Ko au total). Source : @fontsource, mêmes fichiers
   que Google Webfonts Helper. Voir NOTE-MISE-EN-LIGNE.md, §6.
   POUR NEUTRALISER À NOUVEAU : réencadrer le bloc en commentaire. */
@font-face{
  font-family:"Cormorant Garamond";font-style:normal;font-weight:300;font-display:swap;
  src:local("Cormorant Garamond Light"),url("/assets/fonts/cormorant-garamond-300.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215;
}
@font-face{
  font-family:"Cormorant Garamond";font-style:italic;font-weight:300;font-display:swap;
  src:local("Cormorant Garamond Light Italic"),url("/assets/fonts/cormorant-garamond-300italic.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215;
}
@font-face{
  font-family:"Montserrat";font-style:normal;font-weight:400;font-display:swap;
  src:local("Montserrat Regular"),url("/assets/fonts/montserrat-400.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215;
}
@font-face{
  font-family:"Montserrat";font-style:normal;font-weight:600;font-display:swap;
  src:local("Montserrat SemiBold"),url("/assets/fonts/montserrat-600.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215;
}


/* Sous-ensembles cyrilliques (version russe du site). Téléchargés par le
   navigateur uniquement si la page contient des caractères cyrilliques. */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:300;font-display:swap;
  src:url("/assets/fonts/cormorant-garamond-300-cyrillic.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:300;font-display:swap;
  src:url("/assets/fonts/cormorant-garamond-300italic-cyrillic.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400;font-display:swap;
  src:url("/assets/fonts/montserrat-400-cyrillic.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:600;font-display:swap;
  src:url("/assets/fonts/montserrat-600-cyrillic.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}

/* ==========================================================================
   2. VARIABLES ET BASE
   ========================================================================== */
:root{
  /* ================= CHARTE GRAPHIQUE SAMOVAR =================
     Cinq couleurs, valeurs exactes. Ne jamais les modifier. */
  --red:#C7272B;        /* Samovar Red   */
  --ivory:#FAF7F2;      /* Ivory         */
  --green:#98B863;      /* Garden Green  */
  --forest:#244638;     /* Forest Green  */
  --gold:#B99A5C;       /* Heritage Gold */

  /* ================= DÉRIVÉES =================
     Aucune couleur inventée : chacune est un calcul sur les cinq
     ci-dessus, avec son contraste mesuré. */
  --ink:var(--forest);              /* le texte courant EST Forest Green, 9,79:1 sur Ivory */
  --muted:#5A7266;                  /* Forest + 25% Ivory,  4,87:1 sur Ivory, 4,59:1 sur --soft */
  --soft:#F5F0E7;                   /* Ivory + 7% Heritage Gold, fond de section alterné      */
  --red-dark:#A11F23;               /* Samovar Red assombri, survol, 5,59:1 en blanc          */
  --line:#DCDED8;                   /* Ivory + 14% Forest, filets neutres                     */
  --gold-line:rgba(185,154,92,.55); /* Heritage Gold à 55%, ornement                          */

  /* ================= RÈGLES D'EMPLOI =================
     Contrastes mesurés, seuil WCAG AA : 4,50 texte courant, 3,00 grand texte.
     Samovar Red sur Ivory ........ 5,24:1   texte autorisé
     Samovar Red sur --soft ....... 4,93:1   texte autorisé
     Forest sur Ivory ............. 9,79:1   texte autorisé, c'est l'encre du site
     Blanc sur Forest ............. 10,46:1  texte autorisé
     Blanc sur Samovar Red ........ 5,59:1   texte autorisé
     Forest sur Garden Green ...... 4,67:1   texte autorisé
     Garden Green sur Forest ...... 4,67:1   texte autorisé
     Garden Green sur Ivory ....... 2,10:1   INTERDIT en texte, aplat de fond seulement
     Heritage Gold sur Ivory ...... 2,51:1   INTERDIT en texte, ornement seulement
     Heritage Gold sur Forest ..... 3,90:1   grands titres 24px et plus, et bordures

     L'or est la couleur d'accent : filets, liserés, bordures. Il ne porte
     jamais d'information lisible, sans quoi il passerait sous le seuil.
     Le vert clair est une couleur de fond, jamais une couleur de texte
     sur Ivory. C'est la seule façon d'employer les valeurs exactes de la
     charte sans dégrader la lisibilité. */

  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Montserrat",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --radius:24px;
  --gutter:clamp(1.1rem,4vw,2rem);
}
*{box-sizing:border-box}
[hidden]{display:none !important}   /* sinon .btn{display:inline-flex} écrase l'attribut */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);line-height:1.6;font-size:1rem}
img,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
.wrap{width:min(1180px,100% - var(--gutter)*2);margin-inline:auto}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Accessibilité : lien d'évitement + focus toujours visible */
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--forest);color:#fff;padding:.8rem 1.2rem;border-radius:0 0 12px 0;font-weight:600}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--forest);outline-offset:3px;border-radius:4px}
::selection{background:var(--green);color:var(--forest)}   /* 4,67:1 */
::-moz-selection{background:var(--green);color:var(--forest)}
.reviews :focus-visible,.season :focus-visible,.footer :focus-visible{outline-color:#fff}

/* ==========================================================================
   3. TYPOGRAPHIE
   ========================================================================== */
/* Titres en Cormorant Garamond Light. Le corps est grand, la graisse est
   fine : c'est ce contraste qui fait l'élégance d'un serif de labeur.
   La graisse 300 sert aussi la pile de repli : Georgia n'ayant pas de Light,
   elle rend en romain plutôt qu'en gras simulé, donc fin dans les deux cas. */
h1,h2,h3{font-family:var(--serif);margin:0;font-weight:300;letter-spacing:-.005em}
h1{font-size:clamp(2.6rem,7.4vw,5.6rem);line-height:1.04}
h2{font-size:clamp(2.1rem,5.2vw,4rem);line-height:1.06}
h3{font-size:clamp(1.55rem,2.6vw,2.05rem);line-height:1.12}
.eyebrow{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--red);margin-bottom:.9rem}
.tagline{font-family:var(--serif);font-weight:300;font-size:clamp(1.35rem,2.7vw,2rem);line-height:1.22;color:var(--muted);margin-top:1rem;font-style:italic}
.lead{font-size:1.02rem;max-width:60ch}
/* Filet ornemental sous les surtitres. Purement décoratif, donc exempté du
   seuil de contraste : il ne porte aucune information. */
.eyebrow::after{content:"";display:block;width:38px;height:2px;background:var(--gold);margin-top:.55rem}
.season .eyebrow::after,.reviews .eyebrow::after{background:var(--gold)}
.muted{color:var(--muted)}
.small{font-size:.88rem;color:var(--muted)}

/* ==========================================================================
   4. BOUTONS
   ========================================================================== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.9rem 1.4rem;border-radius:999px;font-weight:600;font-size:.9rem;font-family:inherit;border:0;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-dark);transform:translateY(-2px);box-shadow:0 10px 24px rgba(199,39,43,.28)}
.btn-outline{border:1.5px solid currentColor;background:transparent;color:inherit}
.btn-outline:hover{transform:translateY(-2px)}
.btn-ink{background:var(--forest);color:#fff}
.btn-ink:hover{transform:translateY(-2px)}

/* Bandeau d'état, au-dessus de l'en-tête. Contraste blanc sur #A11F23 : 8,2:1. */
.notice{background:var(--red-dark);color:#fff;font-size:.92rem}
.notice-inner{display:flex;align-items:center;justify-content:space-between;gap:.4rem 1.2rem;flex-wrap:wrap;padding:.65rem 0}
.notice a{text-decoration:underline;text-underline-offset:3px;font-weight:600;white-space:nowrap}
.notice :focus-visible{outline-color:#fff}

/* ==========================================================================
   5. EN-TÊTE ET NAVIGATION (menu mobile sans JavaScript)
   ========================================================================== */
header{position:sticky;top:0;z-index:20;background:rgba(250,247,242,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
nav{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand img{height:42px;width:auto}
.navlinks{display:flex;gap:1.3rem;font-size:.86rem;font-weight:600;align-items:center}
.navlinks a{position:relative;padding:.3rem 0}
.navlinks a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--red);transform:scaleX(0);transform-origin:right;transition:transform .3s ease}
.navlinks a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-actions{display:flex;align-items:center;gap:.6rem}
.menu{display:none}
.menu>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.9rem;padding:.7rem 1rem;border:1.5px solid var(--ink);border-radius:999px}
.menu>summary::-webkit-details-marker{display:none}
.menu[open] .menu-panel{display:block}
.menu-panel{display:none;position:absolute;left:0;right:0;top:100%;background:var(--ivory);border-bottom:1px solid rgba(36,70,56,.1);padding:1rem var(--gutter) 1.4rem;box-shadow:0 18px 34px rgba(36,70,56,.08)}
.menu-panel a{display:block;padding:.85rem 0;border-bottom:1px solid var(--line);font-weight:600}
.menu-panel a:last-child{border-bottom:0}

/* ==========================================================================
   6. SECTIONS
   ========================================================================== */
main>section{padding:clamp(3.5rem,8vw,6.5rem) 0}
.hero{padding-top:clamp(2rem,5vw,4rem)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,4vw,3rem);align-items:center}
.hero-copy>*+*{margin-top:1.3rem}
.hero-actions{display:flex;gap:.7rem;flex-wrap:wrap}
.hero-photo{position:relative;border-radius:32px;overflow:hidden;box-shadow:0 14px 40px rgba(36,70,56,.10)}
.hero-photo picture{display:block}
.hero-photo img{width:100%;height:auto}
.badge{position:absolute;left:16px;bottom:16px;background:var(--ivory);padding:.7rem 1rem;border-radius:999px;font-weight:600;font-size:.8rem;box-shadow:0 6px 18px rgba(36,70,56,.12)}

/* Bandeau d'accès : la réponse aux trois questions bloquantes, dès le premier scroll */
.facts{background:var(--forest);color:#fff;padding:clamp(2rem,4vw,2.6rem) 0}
.facts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.facts h2{font-size:.95rem;font-family:var(--sans);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin-bottom:.4rem}
.facts p{font-size:1rem}
.facts a{text-decoration:underline;text-underline-offset:3px}

.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.split>img{border-radius:28px;width:100%;display:block;aspect-ratio:4/3;object-fit:cover;height:auto}
.story>*+*{margin-top:1.2rem}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:1.2rem;margin-top:2.5rem}

/* Galerie du Lieu : une image haute à gauche, deux carrées à droite. */
.gallery{display:grid;grid-template-columns:1.12fr 1fr;gap:.9rem;aspect-ratio:4/5}
.gallery img{min-height:0;border-radius:20px;width:100%;height:100%;object-fit:cover;background:var(--soft)}
.gallery .tall{grid-row:span 2}
.card{border-radius:var(--radius);overflow:hidden;background:#fff;border:1px solid var(--line);border-bottom:3px solid var(--gold);transition:transform .35s ease,box-shadow .35s ease}
.card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(36,70,56,.08)}
.card img{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto}
.card-body{padding:1.3rem}
.card-body h3{margin-bottom:.5rem}
.menu-list{margin-top:.9rem;font-size:.92rem}
.menu-list li{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;border-bottom:1px dotted var(--line)}
.menu-list li:last-child{border-bottom:0}
.menu-list .price{font-weight:600;white-space:nowrap}

/* Motif samovar de la charte, tuile calculée pour être parfaitement raccord.
   Alpha ramené à 22 % : il habille le fond sans gêner la lecture. */
.motif{background-color:var(--soft);background-image:url("/assets/brand/motif-samovar.webp");
       background-size:168px auto;background-repeat:repeat}

/* Élément signature : le bouleau, posé au fond de la section Saisons.
   Purement décoratif, donc derrière le contenu et sans texte alternatif. */
.season{background:var(--forest);color:#fff;position:relative;overflow:hidden;isolation:isolate}
.season::after{content:"";position:absolute;right:-9%;bottom:0;z-index:-1;pointer-events:none;
               width:min(29vw,360px);aspect-ratio:474/760;opacity:.4;
               background:url("/assets/brand/bouleau.webp") right bottom/contain no-repeat}
.season .eyebrow{color:var(--green)}
.season-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.5rem}
.season-item{border:1px solid var(--gold-line);padding:1.6rem;border-radius:var(--radius);transition:transform .35s ease,background-color .35s ease}
.season-item:hover{transform:translateY(-4px);background:rgba(255,255,255,.07)}
.season-item h3{margin-bottom:.6rem;color:var(--gold)}  /* 3,90:1 sur Forest, corps >=24px : autorisé */

.groupes{background:var(--green)}
.groupes .eyebrow{color:var(--forest)}        /* le rouge sur vert tombait à 2,56:1 */

.groupes .facts-inline{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.4rem}
.groupes .chip{background:rgba(255,255,255,.75);color:var(--ink);border-radius:999px;padding:.45rem .95rem;font-size:.85rem;font-weight:600}

.reviews{background:var(--red);color:#fff}
.reviews .eyebrow{color:#fff}
.reviews-top{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.rating{font-family:var(--serif);font-weight:300;font-size:clamp(3.2rem,7.4vw,5.4rem);line-height:1}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.5rem}
blockquote{margin:0;background:#fff;color:var(--ink);padding:1.6rem;border-radius:var(--radius);display:flex;flex-direction:column;justify-content:space-between;gap:1.2rem;transition:transform .35s ease,box-shadow .35s ease}
blockquote:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(36,70,56,.18)}
blockquote p{font-family:var(--serif);font-weight:300;font-size:1.5rem;line-height:1.28}
blockquote footer{font-size:.8rem;color:var(--muted)}

/* ==========================================================================
   7. VENIR : accès, carte, FAQ
   ========================================================================== */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,4rem)}
.contact-box{background:#fff;border-radius:var(--radius);padding:.4rem 1.5rem;border:1px solid var(--line);border-top:3px solid var(--gold);margin-top:2rem}
.contact-row{padding:1rem 0;border-bottom:1px solid var(--line)}
.contact-row:last-child{border-bottom:0}
.contact-row strong{display:block;font-size:.74rem;text-transform:uppercase;letter-spacing:.12em;color:var(--red);margin-bottom:.2rem}
.contact-row a{text-decoration:underline;text-underline-offset:3px}
.faq{display:grid;gap:.8rem;margin-top:1.6rem}
.faq details{background:#fff;border-radius:18px;padding:1rem 1.2rem;border:1px solid var(--line)}
.faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.3rem;line-height:1;color:var(--red);flex:none}
.faq details[open] summary::after{content:"-"}
.faq details p{padding-top:.8rem;color:var(--muted)}

/* Carte : façade cliquable. Aucun appel à Google avant action explicite. */
.map{margin-top:3rem;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--soft)}
.map-facade{aspect-ratio:16/7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;text-align:center;padding:2rem}
.map-facade p{max-width:46ch}
.map-actions{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center}
.map iframe{width:100%;aspect-ratio:16/7;border:0;display:block}

/* ==========================================================================
   8. PIED DE PAGE
   ========================================================================== */
.footer{background:var(--forest);color:#fff;padding:0 0 2rem;position:relative}
/* Frise de motifs de la charte, en tête du pied de page. Purement
   décorative : elle se répète horizontalement et n'annonce rien. */
.frise{height:62px;background:url("/assets/brand/frise-samovar-v2.webp") repeat-x center/auto 62px;
       opacity:.42;margin-bottom:clamp(2.2rem,4.5vw,3.4rem);border-bottom:1px solid var(--gold-line)}
.footer a{text-decoration:underline;text-underline-offset:3px}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:2.5rem;align-items:start}
.footer img{height:54px;width:auto;filter:brightness(0) invert(1)}
.footer h2{font-family:var(--sans);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--green);margin-bottom:.9rem}
.footer li{padding:.3rem 0;font-size:.92rem}
.footer .signature{font-family:var(--serif);font-weight:300;font-size:1.8rem;line-height:1.15;margin-top:1.2rem;color:var(--gold)}  /* 3,90:1 sur Forest, corps >=24px */
.footer-bottom{margin-top:2.5rem;padding-top:1.4rem;border-top:1px solid var(--gold-line);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.8rem;color:#C6D2C9}

/* ==========================================================================
   9. ANIMATIONS : uniquement transform et opacity, via IntersectionObserver
   ========================================================================== */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.hero-copy>*{animation:fadeUp .8s both}
.hero-copy>*:nth-child(1){animation-delay:.05s}
.hero-copy>*:nth-child(2){animation-delay:.15s}
.hero-copy>*:nth-child(3){animation-delay:.25s}
.hero-copy>*:nth-child(4){animation-delay:.35s}
.hero-copy>*:nth-child(5){animation-delay:.45s}
.hero-photo{animation:fadeUp 1s .2s both}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.is-visible{opacity:1;transform:none}
.cards .reveal:nth-child(2),.season-grid .reveal:nth-child(2),.review-grid .reveal:nth-child(2){transition-delay:.1s}
.cards .reveal:nth-child(3),.season-grid .reveal:nth-child(3),.review-grid .reveal:nth-child(3){transition-delay:.2s}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  .reveal{opacity:1;transform:none}
}

/* ==========================================================================
   10. RESPONSIVE : le mobile est la référence
   ========================================================================== */
@media(max-width:960px){
  .season::after{width:56vw;opacity:.26}
  .frise{height:46px;background-size:auto 46px}
  .motif{background-size:132px auto}
  .notice{font-size:.82rem}
  .notice-inner{padding:.55rem 0}
  .navlinks{display:none}
  .menu{display:block}
  .hero-grid,.split,.contact-grid{grid-template-columns:1fr}
  .facts-grid,.cards,.season-grid,.review-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .map-facade{aspect-ratio:auto;min-height:280px}
}
@media print{
  header,.map,.reviews,.season{display:none}
  body{background:#fff}
  .reveal{opacity:1;transform:none}
}

/* ==========================================================================
   11. PAGE CARTE (/menu/)
   ========================================================================== */
.page-head{padding:clamp(2rem,5vw,3.5rem) 0 clamp(1.5rem,3vw,2rem)}
.crumbs{font-size:.8rem;color:var(--muted);margin-bottom:1.4rem}
.crumbs a{text-decoration:underline;text-underline-offset:3px}
.crumbs li{display:inline}
.crumbs li+li::before{content:"›";margin:0 .5rem}
.menu-jump{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.6rem}
.menu-jump a{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:.45rem .95rem;font-size:.82rem;font-weight:600}
.menu-jump a:hover{border-color:var(--red);color:var(--red)}
.menu-section{padding:clamp(2.2rem,5vw,3.6rem) 0;border-top:1px solid var(--line);scroll-margin-top:90px}
.menu-section:nth-of-type(even){background:var(--soft)}
.menu-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(1.6rem,4vw,3.5rem);align-items:start}
.menu-grid img{border-radius:22px;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.menu-grid .intro{margin-top:.9rem;color:var(--muted);max-width:44ch}
.carte-list{margin-top:.4rem}
.carte-list li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.95rem 0;border-bottom:1px dotted var(--gold-line)}
.carte-list li:last-child{border-bottom:0}
.carte-list h3{font-family:var(--sans);font-size:1rem;font-weight:600;line-height:1.35;letter-spacing:0}
.carte-list p{font-size:.9rem;color:var(--muted);margin-top:.15rem}
.carte-list .price{font-family:var(--serif);font-size:1.55rem;font-weight:300;white-space:nowrap;color:var(--red)}
.menu-note{font-size:.86rem;color:var(--muted);margin-top:1rem}
.menu-cta{background:var(--forest);color:#fff;padding:clamp(2.6rem,6vw,4rem) 0;text-align:center}
.menu-cta h2{margin-bottom:1rem}
.menu-cta .btn-outline{color:#fff}
.menu-cta .hero-actions{justify-content:center;margin-top:1.6rem}
.menu-cta :focus-visible{outline-color:#fff}
@media(max-width:960px){.menu-grid{grid-template-columns:1fr}.menu-grid img{max-height:260px}}
@media print{.menu-jump,.menu-cta,.menu-grid img{display:none}.menu-section{padding:1rem 0}}
.carte-list .price{text-align:right;line-height:1.15}
.carte-list .price small{font-family:var(--sans);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}

/* ==========================================================================
   12. SÉLECTEUR DE LANGUE (FR · EN · RU)
   ========================================================================== */
.lang{display:flex;gap:.15rem;font-size:.78rem;font-weight:600;letter-spacing:.06em}
.lang a{padding:.35rem .45rem;border-radius:6px;color:var(--muted)}
.lang a:hover{color:var(--red)}
.lang a[aria-current="true"]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--red)}
.menu-panel .lang-mobile{display:flex;gap:.6rem;padding-top:.9rem}
.menu-panel .lang-mobile a{display:inline-block;border:1.5px solid var(--line);padding:.45rem .8rem;border-bottom:1.5px solid var(--line)}
.nav-actions>.lang{margin-right:.4rem}
@media(max-width:960px){.nav-actions>.lang{display:none}}
.footer-lang a[aria-current="true"]{text-decoration:none;font-weight:600}

/* =============================================================================
   SUGGESTION DE LANGUE (16/10/2026) : bandeau flottant en bas d'écran,
   affiché par le script seulement sur une page française lue par un
   navigateur en anglais ou en russe.
   ========================================================================== */
.lang-suggest{position:fixed;left:50%;bottom:calc(1rem + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:60;
  display:flex;align-items:center;gap:.75rem;width:min(calc(100% - 2rem),36rem);padding:.65rem .6rem .65rem 1.1rem;
  background:var(--forest);color:var(--ivory);border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.2);
  font-family:var(--sans);font-size:.92rem;line-height:1.35}
.lang-suggest p{margin:0;flex:1;color:inherit}
.lang-suggest .btn{flex:none;white-space:nowrap;margin:0}
.lang-suggest button{flex:none;width:2.4rem;height:2.4rem;border:0;border-radius:50%;background:transparent;color:inherit;
  font-size:1.5rem;line-height:1;cursor:pointer}
.lang-suggest button:hover,.lang-suggest button:focus-visible{background:rgba(250,247,242,.14)}
body.has-lang-suggest{padding-bottom:5.5rem}
@media (max-width:30rem){.lang-suggest{flex-wrap:wrap}.lang-suggest p{flex-basis:calc(100% - 3.2rem)}}
