/* Polices hebergees par la maison : plus aucun appel exterieur.
   Memes fichiers variables et memes descripteurs que Google Fonts,
   sous-ensembles latin et latin etendu seulement. */
/* 05/10/2026 audit C10 : les fichiers archivo-400/500/600/700 d un même sous-ensemble sont identiques octet pour octet (vérifié par md5),
   comme caveat-500/600 : ce sont des polices variables (table fvar). Une seule déclaration par sous-ensemble, avec la plage de graisses,
   et un seul fichier (celui nommé 400, resp. 500) : environ 200 Ko de doublons en moins à la première visite. */
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/archivo-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/archivo-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Caveat';font-style:normal;font-weight:500 600;font-display:swap;src:url(/assets/fonts/caveat-500-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Caveat';font-style:normal;font-weight:500 600;font-display:swap;src:url(/assets/fonts/caveat-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:300 700;font-display:swap;src:url(/assets/fonts/fraunces-italic-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:300 700;font-display:swap;src:url(/assets/fonts/fraunces-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/fonts/fraunces-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/fonts/fraunces-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}


  :root{
    --vert-deep:#2E4A42;
    --vert:#4F796F;
    --vert-soft:#7FA79B;
    --vert-text:#3E6055;
    --sage-light:#A9C4B8;
    --sage-bright:#C3D7CC;
    --ink:#25302B;
    --ink-deep:#22312B;
    --texte-doux:#4C554E;
    --plaster:#EFE6D6;
    --plaster-soft:#E5DAC6;
    --cream:#F7F1E4;
    --cream-70:rgba(247,241,228,.8);
    --cream-45:rgba(247,241,228,.45); /* filets et bordures (boutons .btn-line, champs e-mail, fermeture de la visionneuse) : valeur d origine */
    --cream-70-texte:rgba(247,241,228,.7); /* 05/10/2026 audit C12, précisé le 07/10 : textes et placeholders en crème des pages sombres ; 45 % donnait 3,09:1 sur le vert profond, 70 % donne 5:1 */
    --rouge:#B5382E;
    --rouge-clair:#E0857A;
    --rouge-lisible:#F0A79B;
    --display:"Fraunces", Georgia, "Times New Roman", serif;
    --sans:"Archivo", "Helvetica Neue", Arial, sans-serif;
    --script:"Caveat", "Bradley Hand", cursive;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scrollbar-color:var(--vert) var(--plaster);scrollbar-width:thin}
  ::-webkit-scrollbar{width:10px}
  ::-webkit-scrollbar-track{background:var(--plaster)}
  ::-webkit-scrollbar-thumb{background:var(--vert);border-radius:8px}
  body{
    font-family:var(--sans);
    background:var(--plaster);
    color:var(--ink);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  body::after{
    content:"";position:fixed;inset:0;pointer-events:none;z-index:9000;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
    opacity:.035;mix-blend-mode:multiply;
  }
  img{max-width:100%;height:auto;display:block} /* 05/10/2026 audit C13 : height:auto pour que les attributs width/height injectes au build reservent la place sans figer la hauteur */
  a{color:inherit}
  ::selection{background:var(--vert);color:var(--cream)}

  .wrap{max-width:1180px;margin:0 auto;padding:0 28px}
  .eyebrow{
    font-family:var(--sans);font-weight:700;font-size:.72rem;
    letter-spacing:.22em;text-transform:uppercase;color:var(--vert-text);
    display:flex;align-items:center;gap:12px;
  }
  .eyebrow::before{content:"";width:26px;height:1px;background:currentColor;opacity:.6}
  .eyebrow .no{color:var(--rouge);font-variant-numeric:tabular-nums}
  .skip-link{position:absolute;left:-9999px;top:0;z-index:400;background:var(--cream);color:var(--vert-deep);padding:12px 18px;font-weight:700;font-size:.85rem;text-decoration:none;border:2px solid var(--vert-deep)}
  .skip-link:focus{left:12px;top:12px}
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  .ornament{display:flex;align-items:center;justify-content:center;gap:16px;margin:54px 0 0}
  .ornament::before,.ornament::after{content:"";width:64px;height:1px;background:currentColor;opacity:.3}
  .ornament span{color:var(--rouge-clair);font-size:.7rem}


  /* ---------- Pages legales : texte courant sobre ---------- */
  .lg-doc{max-width:44em}
  .lg-doc h2{
    font-family:var(--sans);font-weight:700;font-size:.72rem;
    letter-spacing:.2em;text-transform:uppercase;color:var(--vert-text);
    margin:46px 0 14px;display:flex;align-items:center;gap:12px;
  }
  .lg-doc h2::before{content:"";width:22px;height:1px;background:currentColor;opacity:.5;flex:none}
  .lg-doc h2:first-child{margin-top:0}
  .lg-doc p,.lg-doc li{font-size:.95rem;line-height:1.78;color:var(--texte-doux)}
  .lg-doc p{margin:0 0 14px}
  .lg-doc ul{margin:0 0 14px;padding-left:20px}
  .lg-doc li{margin-bottom:8px}
  .lg-doc strong{color:var(--ink);font-weight:600}
  .lg-doc a{color:var(--vert-text);text-underline-offset:3px}
  .lg-doc .lg-bloc{
    background:var(--plaster);border-radius:3px;padding:24px 26px;margin:0 0 16px;
  }
  .lg-doc .lg-bloc p:last-child{margin-bottom:0}
  .lg-doc .lg-maj{
    margin-top:52px;padding-top:20px;border-top:1px solid rgba(62,96,85,.18);
    font-size:.82rem;color:var(--texte-doux);opacity:.85;
  }
  /* A COMPLETER : volontairement voyant, ne doit pas survivre a la mise en ligne */
  .lg-todo{
    display:block;background:#FBE9E6;border-left:3px solid var(--rouge);
    padding:14px 18px;margin:0 0 14px;color:#7C241D;
    font-family:var(--sans);font-size:.86rem;line-height:1.65;
  }
  .lg-todo b{font-weight:700}
  .dark .lg-doc h2,.darker .lg-doc h2{color:var(--sage-bright)}
  .dark .lg-doc p,.dark .lg-doc li,.darker .lg-doc p,.darker .lg-doc li{color:var(--cream-70)}
  .foot-legal .fl-liens a{color:inherit;text-underline-offset:3px}

  /* ---------- CURSEUR (desktop) ---------- */

  /* ---------- PRÉCHARGEUR ---------- */
  .loader{
    position:fixed;inset:0;z-index:300;background:var(--vert-deep);
    display:flex;align-items:center;justify-content:center;
    transition:transform .6s cubic-bezier(.76,0,.24,1);
  }
  .loader video{width:min(400px,82vw);mix-blend-mode:screen;animation:loaderBadge 1s ease .1s both}
  .loader.done{transform:translateY(-101%)}
  .loader.gone{display:none}
  @keyframes loaderBadge{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}

  /* ---------- RIDEAU DE TRANSITION ---------- */
  .wipe{position:fixed;inset:0;z-index:250;background:var(--vert-deep);transform:scaleY(0);pointer-events:none}
  .wipe.in{animation:wipeIn .3s cubic-bezier(.76,0,.24,1) forwards;transform-origin:bottom}
  .wipe.out{animation:wipeOut .42s cubic-bezier(.76,0,.24,1) forwards;transform-origin:top}
  @keyframes wipeIn{to{transform:scaleY(1)}}
  @keyframes wipeOut{from{transform:scaleY(1)}to{transform:scaleY(0)}}

  /* ---------- NAV ---------- */
  header.nav{
    position:fixed;inset:-80px 0 auto 0;z-index:120;
    padding-top:calc(80px + env(safe-area-inset-top));
    background:linear-gradient(to bottom, rgba(37,48,43,.72), rgba(37,48,43,.5));
    backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    border-bottom:1px solid rgba(247,241,228,.1);
    transition:background .4s ease, box-shadow .4s ease;
  }
  /* 05/10/2026 audit A2 : le fondu descendant ne joue plus à chaque page ; build_site.py pose class="page-accueil" sur <html> de l accueil FR et EN seulement */
  html.page-accueil header.nav{animation:fadeDown .7s ease both}
  /* 05/10/2026 audit A3 : fondu croisé de 0,25 s d une page à l autre (navigation même origine) ; le bandeau, nommé, reste immobile ; Firefox ignore la règle sans effet */
  @media (prefers-reduced-motion:no-preference){
    @view-transition{navigation:auto}
    ::view-transition-old(root),::view-transition-new(root){animation-duration:.25s}
    header.nav{view-transition-name:bandeau}
  }
  header.nav.scrolled{
    background:rgba(34,44,39,.96);
    box-shadow:0 14px 34px -22px rgba(12,20,16,.8);
  }
  .nav-in{max-width:1320px;margin:0 auto;padding:0 28px;height:68px;display:flex;align-items:center;gap:26px}
  .brand{display:flex;align-items:center;gap:12px;text-decoration:none;white-space:nowrap}
  .brand img{height:40px;width:auto;transition:transform .3s ease}
  .brand:hover img{transform:rotate(-6deg)}
  .brand span{font-family:var(--sans);font-weight:700;letter-spacing:.28em;font-size:.9rem;color:var(--cream)}
  nav.links{display:flex;gap:24px;flex:1;justify-content:center}
  nav.links a{
    color:var(--cream-70);text-decoration:none;font-size:.76rem;font-weight:600;
    letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;padding:5px 0;
    background:linear-gradient(var(--sage-light),var(--sage-light)) no-repeat 0 100%/0% 2px;
    transition:color .25s ease, background-size .35s ease;
  }
  nav.links a:hover{color:var(--cream)}
  nav.links a.active{color:var(--cream);background-size:100% 2px}
  .btn{
    display:inline-block;text-decoration:none;font-weight:700;font-size:.8rem;
    letter-spacing:.12em;text-transform:uppercase;border-radius:2px;
    padding:13px 24px;
    transition:transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease, box-shadow .25s ease;
  }
  .btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px -14px rgba(12,20,16,.55)}
  .btn:active{transform:translateY(0);box-shadow:none}
  .btn-cream{background:var(--cream);color:var(--vert-deep)}
  .btn-cream:hover{background:#fff}
  .btn-line{border:1px solid var(--cream-45);color:var(--cream)}
  .btn-line:hover{border-color:var(--cream);background:rgba(247,241,228,.08)}
  .btn-ink{border:1px solid rgba(37,48,43,.45);color:var(--ink)}
  .btn-ink:hover{background:rgba(37,48,43,.06)}
  .head-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
  .btn-vert{background:var(--vert-deep);color:var(--cream)}
  .btn-vert:hover{background:#223A33}
  .nav .btn{padding:10px 18px;margin-left:auto}
  a:focus-visible,button:focus-visible{outline:3px solid var(--vert);outline-offset:2px;box-shadow:0 0 0 6px rgba(247,241,228,.92)}

  /* burger */
  .burger{
    display:none;background:none;border:0;width:44px;height:44px;position:relative;
    flex:none;
  }
  .burger span{position:absolute;left:10px;right:10px;height:2px;background:var(--cream);transition:transform .3s ease, opacity .3s ease, top .3s ease}
  .burger span:nth-child(1){top:16px}
  .burger span:nth-child(2){top:22px}
  .burger span:nth-child(3){top:28px}
  .menu-open{overflow:hidden}
  .menu-open .burger span:nth-child(1){top:22px;transform:rotate(45deg)}
  .menu-open .burger span:nth-child(2){opacity:0}
  .menu-open .burger span:nth-child(3){top:22px;transform:rotate(-45deg)}

  /* overlay menu mobile */
  .overlay{
    position:fixed;inset:0;z-index:110;background:var(--vert-deep);color:var(--cream);
    display:flex;flex-direction:column;justify-content:center;padding:90px 28px 40px;
    overflow-y:auto;
    opacity:0;visibility:hidden;transition:opacity .4s ease, visibility .4s ease;
  }
  .menu-open .overlay{opacity:1;visibility:visible}
  .overlay a.ov-link{
    font-family:var(--display);font-style:italic;font-weight:480;
    font-size:clamp(1.9rem,8vw,2.8rem);line-height:1.35;text-decoration:none;color:var(--cream);
    opacity:0;transform:translateY(16px);transition:opacity .45s ease, transform .45s ease;
  }
  .menu-open .overlay a.ov-link{opacity:1;transform:none}
  .menu-open .overlay a.ov-link:nth-child(2){transition-delay:.06s}
  .menu-open .overlay a.ov-link:nth-child(3){transition-delay:.12s}
  .menu-open .overlay a.ov-link:nth-child(4){transition-delay:.18s}
  .menu-open .overlay a.ov-link:nth-child(5){transition-delay:.24s}
  .menu-open .overlay a.ov-link:nth-child(6){transition-delay:.3s}
  .menu-open .overlay a.ov-link:nth-child(7){transition-delay:.36s}
  /* Barre d'actions du pouce : capsule flottante, opaque, détachée des bords. Safari iPhone
     découpe tout élément fixe au bord de la page (la zone de la pastille d'adresse est une réserve
     de son interface), une barre collée au bord y laissait donc voir le contenu : la capsule assume
     ce contenu autour d'elle, comme les barres flottantes d'Apple. */
  .pouce{
    position:fixed;z-index:900;display:none;align-items:stretch;
    left:max(14px, env(safe-area-inset-left, 0px));right:max(14px, env(safe-area-inset-right, 0px));
    bottom:calc(14px + env(safe-area-inset-bottom, 0px));
    min-height:58px;border-radius:999px;overflow:hidden;
    background-color:var(--vert-deep);
    box-shadow:inset 0 0 0 1px rgba(247,241,228,.14), 0 10px 28px -8px rgba(12,20,16,.45), 0 2px 6px rgba(12,20,16,.22);
  }
  /* la barre reste en place : son glissement passait derrière la barre d'adresse de Safari */
  .pouce.repli{transform:none}
  .pouce a{
    flex:1 1 0;min-width:0;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
    padding:9px 6px 8px;text-decoration:none;color:var(--cream-70);
    font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;-webkit-tap-highlight-color:transparent;
  }
  .pouce a + a{border-left:1px solid rgba(247,241,228,.14)}
  .pouce a:active{background:rgba(247,241,228,.08)}
  .pouce svg{width:19px;height:19px;fill:currentColor}
  .pouce .pouce-resa{color:var(--cream);font-weight:600}
  @media (max-width:860px){
    .pouce{display:flex}
    body{padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px))}
  }
  @media (max-width:860px) and (max-height:480px){
    body{padding-bottom:calc(76px + env(safe-area-inset-bottom, 0px))}
    .pouce{bottom:calc(8px + env(safe-area-inset-bottom, 0px));min-height:50px}
    .pouce a{min-height:50px;flex-direction:row;gap:8px;padding:6px 8px}
  }
  @media print{.pouce{display:none !important}}
  .lang-switch{
    font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.12em;
    color:var(--cream-70);text-decoration:none;padding:6px 10px;border-radius:3px;
    border:1px solid rgba(247,241,228,.28);transition:color .3s ease,border-color .3s ease;
  }
  .lang-switch:hover{color:var(--cream);border-color:var(--cream)}
  .ov-lang{margin-top:auto;font-size:.9rem}
  .ov-lang a{color:var(--sage-bright);text-decoration:underline;text-underline-offset:3px}
  .ov-lang a:hover{color:var(--cream)}
  .overlay .ov-lang + .ov-foot{margin-top:14px}
  /* 05/10/2026 audit C8 : la pastille EN/FR reste visible sous 860 px ; EN, Réserver et burger se rangent à droite du logo */
  @media (max-width:860px){.lang-switch{margin-left:auto}.nav .btn{margin-left:0}}
  /* 05/10/2026 audit C8 : à 360 px de large, logo, pastille, Réserver et burger tiennent sur une ligne */
  @media (max-width:600px){.lang-switch{padding:6px 8px}.nav .btn{padding:10px 14px}}
  .overlay .ov-foot{font-size:.8rem;color:var(--sage-bright);letter-spacing:.06em}
  .overlay .ov-foot a{color:var(--cream);text-decoration:underline;text-underline-offset:3px}

  /* ---------- PAGES ---------- */
  .page{display:none}
  .page.active{display:block}
  .page-head{position:relative;padding:168px 0 30px;overflow:hidden}
  .page-head .ghost{
    position:absolute;top:96px;left:-6px;z-index:0;
    font-family:var(--display);font-style:italic;font-weight:340;
    font-size:clamp(4.4rem,15vw,11.5rem);line-height:1;white-space:nowrap;
    color:transparent;-webkit-text-stroke:1px var(--ink);opacity:.12;
    pointer-events:none;user-select:none;
  }
  .page-head .wrap{position:relative;z-index:1}
  .page-head h1{
    font-family:var(--display);font-weight:560;font-size:clamp(2.6rem,6vw,4.4rem);
    line-height:1.04;letter-spacing:-.01em;text-wrap:balance;margin:.5rem 0 0;
  }
  /* Sous-titre : l'italique reste, mais plus petite et plus aérée, pour qu'elle
     ne se confonde plus avec la grande italique du titre. */
  .page-head .sub{
    font-family:var(--display);font-style:italic;font-weight:400;
    font-variation-settings:"opsz" 20;
    font-size:clamp(.94rem,1.28vw,1.04rem);line-height:1.78;letter-spacing:.012em;
    color:var(--texte-doux);max-width:33em;margin-top:24px;
  }

  /* ---------- Titres : capitales au-dessus, grande italique en dessous ---------- */
  .page-head .lr{padding-bottom:.16em;margin-bottom:-.16em}
  .page-head h1 .t-caps,
  .page-head h1 .t-ital{display:block}
  .page-head h1 .t-caps{
    font-size:.34em;font-weight:600;font-style:normal;
    font-variation-settings:"opsz" 14;
    text-transform:uppercase;letter-spacing:.185em;line-height:1.2;
    color:var(--ink);margin-bottom:.42em;
  }
  .page-head h1 .t-ital{
    font-style:italic;font-weight:370;
    font-variation-settings:"opsz" 120;
    letter-spacing:-.004em;line-height:1.03;color:var(--vert-text);
    margin-left:-.022em;text-wrap:balance;
  }
  .page-head h1.solo .t-caps{
    font-size:.62em;letter-spacing:.145em;line-height:1.08;margin-bottom:0;
  }
  .dark .page-head h1 .t-caps,
  .darker .page-head h1 .t-caps{color:var(--cream)}
  .dark .page-head h1 .t-ital,
  .darker .page-head h1 .t-ital{color:var(--sage-bright);font-weight:410}
  @media (max-width:720px){
    .page-head h1{font-size:clamp(2.05rem,8.6vw,2.7rem);margin-top:.45rem}
    .page-head h1 .t-caps{font-size:.42em;letter-spacing:.125em;margin-bottom:.5em}
    .page-head h1.solo .t-caps{font-size:.78em;letter-spacing:.1em}
    .page-head .sub{margin-top:20px}
  }
  .dark .page-head .sub{color:var(--cream-70)}
  .lr{overflow:hidden}
  .lr > *{display:block}
  .page.enter .lr > *{animation:riseIn .85s cubic-bezier(.22,.61,.36,1) both}
  .page.enter .eyebrow{animation:fadeIn .8s ease both}
  .page.enter .page-head .sub{animation:fadeUp .8s ease .25s both}
  @keyframes riseIn{from{transform:translateY(105%)}to{transform:none}}

  section.blk{padding:64px 0 96px}
  .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1)}
  .reveal.in{opacity:1;transform:none}

  /* ---------- ACCUEIL ---------- */
  .hero{
    position:relative;min-height:100svh;display:flex;align-items:flex-end;justify-content:center;
    background:var(--vert-deep);color:var(--cream);overflow:hidden;
  }
  .hero-bg{position:absolute;inset:-12% 0 0;will-change:transform}
  .hero-img{width:100%;height:100%;object-fit:cover;object-position:center 55%}
  .page.enter .hero-img{animation:heroZoom 3s cubic-bezier(.22,.61,.36,1) both}
  .hero-veil{
    position:absolute;inset:0;
    background:linear-gradient(to top, rgba(24,37,31,.93) 0%, rgba(24,37,31,.6) 36%, rgba(24,37,31,.16) 62%, rgba(24,37,31,.42) 100%);
  }
  .hero-frame{position:absolute;inset:18px;border:1px solid rgba(247,241,228,.18);pointer-events:none}
  .page.enter .hero-frame{animation:fadeIn 1.6s ease .9s both}
  .hero-in{position:relative;width:100%;max-width:900px;padding:130px 28px 60px;text-align:center;display:flex;flex-direction:column;align-items:center}
  .hero-badge{width:min(330px,64vw);height:auto;filter:drop-shadow(0 10px 34px rgba(12,20,16,.55))}
  video.hero-badge{width:min(430px,80vw);mix-blend-mode:screen;filter:none}
  .page.enter .hero-badge{animation:fadeUp 1s ease .15s both}
  /* Ligne de repère posée SOUS le logo : la place centrale reste au badge. */
  .hero-kicker{
    display:flex;align-items:center;justify-content:center;
    gap:clamp(11px,2.4vw,18px);
    margin:clamp(16px,2.2vw,24px) 0 0;
    font-family:var(--sans);font-weight:600;
    font-size:clamp(.66rem,1.6vw,.82rem);line-height:1.6;
    text-transform:uppercase;letter-spacing:.3em;text-indent:.3em;
    color:var(--cream);text-shadow:0 1px 14px rgba(12,20,16,.75);
    white-space:nowrap;
  }
  .hero-kicker::before,
  .hero-kicker::after{
    content:"";flex:none;height:1px;width:clamp(18px,7vw,58px);
    background:currentColor;opacity:.55;
  }
  .page.enter .hero-kicker{animation:fadeIn 1s ease .5s both}
  @media (max-width:600px){
    .hero-kicker{letter-spacing:.18em;text-indent:.18em;gap:9px}
  }
  .hero .lede{
    font-family:var(--display);font-weight:400;font-style:italic;
    font-size:clamp(1.05rem,2vw,1.4rem);max-width:32em;color:var(--cream);
    text-wrap:balance;margin-top:24px;text-shadow:0 1px 18px rgba(12,20,16,.5);
  }
  .page.enter .hero .lede{animation:fadeUp .9s ease .45s both}
  .hero-cta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:30px}
  .page.enter .hero-cta{animation:fadeUp .9s ease .65s both}
  .hero-facts{
    display:flex;gap:12px 30px;flex-wrap:wrap;justify-content:center;margin-top:36px;padding-top:18px;
    border-top:1px solid rgba(247,241,228,.24);width:100%;
    font-size:.8rem;letter-spacing:.06em;color:var(--cream-70);
    text-shadow:0 1px 10px rgba(12,20,16,.55);
  }
  .page.enter .hero-facts{animation:fadeUp .9s ease .9s both}
  .hero-facts a{color:inherit;text-decoration:none;transition:color .3s ease}
  .hero-facts a:hover{color:var(--cream);text-decoration:underline;text-underline-offset:4px}
  .hero-facts b{color:var(--cream);font-weight:700}
  .hero-facts .star{color:var(--sage-light)}
  .hero-facts .hf-notes{display:contents}
  .hero-facts .hf-faits{flex-basis:100%;display:flex;flex-wrap:wrap;justify-content:center;gap:12px 30px}
  .hero-presse{
    display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px 26px;
    margin-top:26px;
  }
  .page.enter .hero-presse{animation:fadeUp .9s ease 1.05s both}
  .hp-eti{
    font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cream-70);
    text-shadow:0 1px 10px rgba(12,20,16,.55);margin-right:2px;
  }
  .hero-presse a{display:inline-flex;align-items:center}
  .hero-presse img{display:block;width:auto;opacity:.7;transition:opacity .3s ease;filter:drop-shadow(0 1px 10px rgba(12,20,16,.4))}
  .hero-presse a:hover img{opacity:1}
  .hp-fig{height:22px}
  .hp-sor{height:20px}
  .hp-pf{height:15px}
  .hp-gm{height:16px}
  .hp-mcm{height:30px}
  img.hp-macaron{width:76px;height:76px;opacity:1;transform:rotate(-5deg);filter:drop-shadow(0 6px 14px rgba(12,20,16,.45))}
  @media (max-width:640px){img.hp-macaron{width:64px;height:64px}}
  @keyframes heroZoom{from{transform:scale(1.07)}to{transform:scale(1)}}
  @keyframes fadeUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
  @keyframes fadeDown{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
  @keyframes fadeIn{from{opacity:0}to{opacity:1}}

  .strip{
    background:var(--vert-deep);color:var(--sage-bright);
    border-top:1px solid rgba(247,241,228,.1);
    padding:15px 0;overflow:hidden;display:flex;
    font-family:var(--display);font-style:italic;font-size:1rem;letter-spacing:.04em;
  }
  .strip-track{flex:none;display:flex;align-items:center;min-width:100%;justify-content:space-around;animation:marquee 74s linear infinite}
  .strip:hover .strip-track,.strip:focus .strip-track,.strip.pause .strip-track{animation-play-state:paused}
  .strip span{padding:0 1.6em;opacity:.95;white-space:nowrap}
  .strip .prov{display:inline-flex;align-items:baseline;gap:16px;padding:0 1.9em}
  .strip .prov i{font-family:var(--script);font-style:normal;font-size:1.45rem;color:var(--sage-bright);white-space:nowrap}
  .strip .prov b{font-weight:600;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cream-70);white-space:nowrap;font-family:var(--sans)}
  .strip .sep{color:var(--rouge-clair);font-style:normal;font-size:.7em;padding:0}
  @keyframes marquee{to{transform:translateX(-100%)}}

  /* accueil : cartes d'orientation */
  .portes{background:var(--plaster)}
  .portes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
  .porte{
    position:relative;display:block;text-decoration:none;overflow:hidden;background:var(--ink);
    aspect-ratio:4/4.6;
  }
  .porte img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,.61,.36,1);position:absolute;inset:0}
  .porte:hover img{transform:scale(1.05)}
  .porte img.pos-haut{object-position:50% 10%}
  .porte img.pos-tete{object-position:50% 45%}
  .porte::after{content:"";position:absolute;inset:0;background:linear-gradient(to top, rgba(24,37,31,.88) 8%, rgba(24,37,31,.18) 55%, rgba(24,37,31,.05))}
  .porte-txt{position:absolute;inset:auto 0 0 0;padding:24px;z-index:2;color:var(--cream)}
  .porte-txt .k{font-family:var(--script);color:var(--sage-bright);font-size:1.25rem;display:block}
  .porte-txt h2{font-family:var(--display);font-weight:560;font-size:1.7rem;line-height:1.1;margin:.15rem 0 .4rem}
  .porte-txt p{font-size:.82rem;color:var(--cream-70);max-width:26em}
  .porte-txt .go{font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--sage-bright);margin-top:10px;display:inline-block}
  .porte:hover .go{color:var(--cream)}

  /* ---------- MAISON : la citation de la grand-mère, dans le fil (B bis) ----------
     05/10/2026 audit : plus de bande verte pleine largeur. Les anciennes règles .quote-band
     (fond vert, 100 px de padding, ornement) sont retirées ; les autres bandes vertes du site
     (.page-cta, .trt-cta, .strip) ne sont pas touchées. Le HTML (agent C) devient un bloc
     .citation-fil contenant un blockquote ou un p, avec deux span.guil pour les guillemets.
     Integration : le bloc est premier enfant du .wrap des trois photos, qui fournit deja la gouttiere
     de 28 px ; la citation ne porte donc ni padding ni largeur augmentee (30 em de texte exactement). */
  /* 10/10/2026 : demande d’Ange, la citation prenait trop de place : 1,75 rem -> 1,35 rem (1,2 -> 1,05 sur téléphone),
     marge haute clamp(96px,10vw,150px) -> clamp(72px,7vw,110px) ; largeur toujours 30 em, donc le bloc rétrécit en proportion */
  .citation-fil{
    max-width:30em;margin:clamp(72px,7vw,110px) auto 0;padding:0;
    font-family:var(--display);font-style:italic;font-weight:400;
    font-size:1.35rem;line-height:1.55;color:var(--vert-deep);text-align:center;text-wrap:pretty;
  }
  .citation-fil blockquote{margin:0}
  .citation-fil .guil{color:var(--rouge)}
  @media (max-width:600px){.citation-fil{font-size:1.05rem}}
  /* 05/10/2026 audit B bis : sur La maison, les trois photos suivent la citation 80 px plus bas (les bandes photo des autres pages gardent leur réglage) */
  #page-maison .band{padding-top:80px}

  /* ---------- CARTE (page sombre) ---------- */
  .dark{background:var(--vert-deep);color:var(--cream)}
  .dark .page-head .eyebrow{color:var(--sage-bright)}
  .dark .page-head .ghost{color:transparent;-webkit-text-stroke:1px var(--cream)}
  .carte-body{position:relative;padding:34px 0 100px}
  .carte-frame{position:absolute;inset:14px;pointer-events:none;border:1px solid rgba(247,241,228,.16)}
  .midi{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 10px}
  .midi-card{
    border:1px solid rgba(247,241,228,.3);padding:16px 20px;flex:1;min-width:240px;
    transition:border-color .3s ease, background .3s ease;
  }
  .midi-card:hover{border-color:rgba(247,241,228,.55);background:rgba(247,241,228,.04)}
  .midi-card .t{font-family:var(--display);font-style:italic;font-size:1.1rem}
  .midi-card .t em{font-style:normal}
  .midi-card .p{font-family:var(--sans);font-weight:700;color:var(--sage-bright);font-size:1.05rem;font-variant-numeric:tabular-nums}
  .midi-card .d{font-size:.78rem;color:var(--cream-70);letter-spacing:.06em;text-transform:uppercase;margin-top:4px}
  .menu-section{display:grid;grid-template-columns:.85fr 1.6fr;gap:12px 64px;padding:46px 0 8px;border-top:1px solid rgba(247,241,228,.18);margin-top:38px}
  .ms-title{position:sticky;top:96px;align-self:start}
  .ms-title .co{
    margin:0;font-family:var(--display);font-style:italic;font-weight:480;
    font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.1;color:var(--cream);display:block;
  }
  .ms-title .fr{
    font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
    color:var(--sage-bright);margin-top:10px;display:block;
  }
  .ms-title .script{
    font-family:var(--script);color:var(--rouge-lisible);
    font-size:1.5rem;letter-spacing:0;text-transform:none;display:block;margin-top:6px;transform:rotate(-2deg);
  }
  .aparte{
    font-family:var(--display);font-style:italic;color:var(--rouge-lisible);
    font-size:1rem;line-height:1.6;max-width:46em;margin:30px 0 0;
  }
  .dishes{display:grid;gap:22px}
  .menu-section .dish{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease}
  .menu-section.in .dish{opacity:1;transform:none}
  .menu-section.in .dish:nth-child(1){transition-delay:.05s}
  .menu-section.in .dish:nth-child(2){transition-delay:.11s}
  .menu-section.in .dish:nth-child(3){transition-delay:.17s}
  .menu-section.in .dish:nth-child(4){transition-delay:.23s}
  .menu-section.in .dish:nth-child(5){transition-delay:.29s}
  .menu-section.in .dish:nth-child(6){transition-delay:.35s}
  .menu-section.in .dish:nth-child(7){transition-delay:.41s}
  .menu-section.in .dish:nth-child(8){transition-delay:.47s}
  .dish-line{display:flex;align-items:baseline;gap:10px}
  .dish-line .n{
    font-family:var(--display);font-weight:560;font-size:1.12rem;letter-spacing:.01em;
    background:linear-gradient(currentColor,currentColor) no-repeat 0 100%/0% 1px;
    transition:background-size .4s ease;
  }
  .dish:hover .dish-line .n{background-size:100% 1px}
  .dish-line .dots{flex:1;border-bottom:2px dotted rgba(247,241,228,.32);transform:translateY(-4px)}
  .dish-line .p{font-weight:700;font-variant-numeric:tabular-nums;color:var(--sage-bright);white-space:nowrap;transition:color .3s ease}
  .dish:hover .dish-line .p{color:var(--cream)}
  .dish .d{font-family:var(--display);font-style:italic;font-weight:340;color:var(--cream-70);font-size:.95rem;max-width:44em;margin-top:3px}
  .carte-foot{
    margin-top:56px;padding-top:24px;border-top:1px solid rgba(247,241,228,.18);
    display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between;
  }
  .carte-foot p{font-size:.82rem;color:var(--cream-70);max-width:46em}
  .carte-foot .actions{display:flex;gap:12px;flex-wrap:wrap}
  .carte-body .ornament{color:var(--cream)}

  /* ---------- GALERIE (catalogue) ---------- */
  .gal-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:22px 18px}
  .gal-grid figure{
    display:flex;flex-direction:column;
    opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease;
  }
  .gal-grid.in figure{opacity:1;transform:none}
  .gal-grid.in figure:nth-child(1){transition-delay:.04s}
  .gal-grid.in figure:nth-child(2){transition-delay:.1s}
  .gal-grid.in figure:nth-child(3){transition-delay:.16s}
  .gal-grid.in figure:nth-child(4){transition-delay:.22s}
  .gal-grid.in figure:nth-child(5){transition-delay:.28s}
  .gal-grid.in figure:nth-child(6){transition-delay:.34s}
  .gal-grid.in figure:nth-child(7){transition-delay:.4s}
  .gal-grid.in figure:nth-child(8){transition-delay:.46s}
  .gal-grid.in figure:nth-child(9){transition-delay:.52s}
  .gal-grid.in figure:nth-child(10){transition-delay:.58s}
  .gal-grid.in figure:nth-child(11){transition-delay:.64s}
  .gal-grid.in figure:nth-child(12){transition-delay:.7s}
  .gal-grid.in figure:nth-child(n+13){transition-delay:.76s}
  .gal-grid .im img.pos-tete{object-position:50% 18%}
  .gal-grid .im img.pos-bas{object-position:50% 70%}
  .gal-grid .im{display:block;position:relative;overflow:hidden;background:var(--ink)}
  .gal-grid .im img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,.61,.36,1)}
  .gal-grid figure:hover .im img{transform:scale(1.05)}
  .gal-grid .im::after{
    content:"";position:absolute;inset:10px;border:1px solid rgba(247,241,228,.35);
    pointer-events:none;opacity:0;transition:opacity .4s ease;
  }
  .gal-grid figure:hover .im::after{opacity:1}
  .gal-grid .im-btn{all:unset;display:block;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .gal-grid .im-btn:focus-visible{outline:2px solid var(--vert);outline-offset:4px}
  dialog.lightbox{border:0;padding:0;background:rgba(20,29,25,.97);width:100vw;height:100vh;max-width:100vw;max-height:100vh;color:var(--cream)}
  dialog.lightbox::backdrop{background:rgba(20,29,25,.6)}
  .lb-in{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:44px 60px}
  .lb-in img{max-width:min(90vw,1100px);max-height:76vh;object-fit:contain}
  /* 05/10/2026 audit A4 : fondu de 0,25 s à l ouverture (keyframe fadeIn existante ; [open] suffit, is-open posée par le JS fait de même) */
  dialog.lightbox[open],dialog.lightbox.is-open{animation:fadeIn .25s ease both}
  /* 05/10/2026 audit A4 : 0,2 s au changement de photo ; le JS pose is-switching sur l image avant de changer src et la retire au load ; la légende, elle, change tout de suite */
  .lb-in img{transition:opacity .2s ease}
  .lb-in img.is-switching{opacity:0}
  .lb-cap{color:var(--cream-70);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;text-align:center}
  .lb-close{position:absolute;top:16px;right:20px;background:none;border:0;color:var(--cream);font-size:1.5rem;cursor:pointer;padding:10px;line-height:1}
  .lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--cream);font-size:2.2rem;cursor:pointer;padding:8px 16px;line-height:1}
  .lb-prev{left:6px}
  .lb-next{right:6px}
  .lb-close:hover,.lb-nav:hover{color:var(--sage-bright)}
  .gal-grid figcaption{
    padding:11px 2px 0;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--texte-doux);
    display:flex;gap:12px;align-items:baseline;
  }
  .gal-grid figcaption .no{color:var(--rouge);font-weight:700;font-variant-numeric:tabular-nums}
  .g-a{grid-column:span 4}.g-a .im{aspect-ratio:16/8.5}
  .g-b{grid-column:span 2}.g-b .im{flex:1;min-height:0}
  .g-b{min-height:100%}
  .g-c{grid-column:span 2}.g-c .im{aspect-ratio:4/3.1}
  .g-d{grid-column:span 3}.g-d .im{aspect-ratio:16/9}

  /* ---------- RENDEZ-VOUS (page sombre profonde) ---------- */
  .darker{background:var(--ink-deep);color:var(--cream)}
  .darker .page-head .eyebrow{color:var(--sage-light)}
  .darker .page-head .ghost{color:transparent;-webkit-text-stroke:1px var(--cream)}
  .page-head .ghost{opacity:.095}
  @media (max-width:600px){.page-head .ghost{opacity:.08}}
  .darker .page-head .sub{color:var(--cream-70)}
  .sera{max-width:840px;margin-top:10px}
  .darker .figcap{color:var(--cream-70)}
  .darker .figcap .no{color:var(--rouge-lisible)}
  .prog{list-style:none;margin:0;padding:0}
  .prog-row{padding:30px 12px;border-top:1px solid rgba(247,241,228,.16);transition:background .3s ease}
  .prog-row:last-child{border-bottom:1px solid rgba(247,241,228,.16)}
  .prog-row:hover{background:rgba(247,241,228,.045)}
  .pr-head{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
  .pr-head .no{font-family:var(--display);font-style:italic;color:var(--rouge-lisible);font-size:1.15rem;font-variant-numeric:tabular-nums;flex:none}
  .pr-head h2{font-family:var(--display);font-weight:560;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.1;color:var(--cream)}
  .pr-head .when{
    margin-left:auto;font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
    color:var(--sage-bright);border:1px solid rgba(247,241,228,.28);padding:6px 13px;border-radius:99px;white-space:nowrap;flex:none;
  }
  .prog-row > p{color:var(--cream-70);font-size:.95rem;max-width:36em;margin:10px 0 12px}
  .prog-row a{color:var(--sage-bright);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:color .25s ease}
  .prog-row a:hover{color:var(--cream)}
  /* Bloc vedette : les soirees chants corses dominent la page */
  .prog-row.vedette h2{font-size:2.1rem}
  .prog-row.vedette .when{border-color:var(--sage-bright);color:var(--sage-bright)}
  /* Alerte soirees : un e-mail, rien d autre */
  .alerte-soirees{margin:26px 0 6px;padding:26px 28px;border:1px solid rgba(195,215,204,.28);border-radius:3px;background:rgba(247,241,228,.045)}
  dialog.alerte-pop > p,
  .alerte-soirees > p{margin:0 0 14px;font-family:var(--display);font-style:italic;font-size:1.08rem;line-height:1.6;color:var(--cream)}
  .alerte-form{display:flex;gap:12px 14px;flex-wrap:wrap;max-width:34em}
  .alerte-form input[type="email"]{flex:1;min-width:200px;background:transparent;border:0;border-bottom:1px solid rgba(195,215,204,.5);color:var(--cream);padding:10px 2px;font:inherit}
  .alerte-form input[type="email"]::placeholder{color:var(--cream-70-texte)}
  .alerte-form input[type="email"]:focus{outline:none;border-bottom-color:var(--cream)}
  .alerte-form input[type="email"]:focus-visible{outline:2px solid var(--sage-bright);outline-offset:3px}
  .alerte-form .btn{cursor:pointer}
  .alerte-note{margin:12px 0 0;font-size:.88rem;color:var(--sage-bright)}
  .alerte-note[hidden]{display:none}
  #page-rendezvous .band{padding-top:26px}
  dialog.alerte-pop{
    border:1px solid rgba(195,215,204,.28);border-radius:3px;
    background:var(--ink-deep);color:var(--cream);
    padding:38px 36px 32px;width:min(92vw,480px);margin:auto;
  }
  dialog.alerte-pop::backdrop{background:rgba(20,29,25,.65)}
  .inter-classiques{margin:40px 0 0;font-family:var(--sans);font-weight:700;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sage-bright)}
  .prog-row a::after{content:" →";transition:margin-left .25s ease;margin-left:2px}
  .prog-row a:hover::after{margin-left:7px}


  .rikiki{
    font-family:var(--script);color:var(--sage-bright);font-size:1.35rem;
    margin-top:36px;transform:rotate(-1.2deg);
  }

  /* ---------- TRAITEUR (éditorial) ---------- */
  .trt-open{padding:30px 0 0}
  .trt-open img{width:100%;height:min(76vh,680px);object-fit:cover;display:block}
  .figcap{
    display:flex;gap:12px;align-items:baseline;padding:12px 2px 0;
    font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--texte-doux);
  }
  .figcap .no{color:var(--rouge);font-weight:700;font-variant-numeric:tabular-nums;flex:none}
  .dark .figcap{color:var(--cream-70)}
  .dark .figcap .no{color:var(--rouge-lisible)}
  .ed-img video{width:100%;display:block;max-height:370px;object-fit:cover}
  .trt-open .figcap{max-width:1180px;margin:0 auto;padding:14px 28px 0}
  /* ---------- Le manifeste : la maison qui parle ----------
     Il ne prend PAS le traitement des titres : capitales et grande italique
     verte restent le signal exclusif « vous êtes sur telle page », six fois
     sur le site, et c'est cette rareté qui fait la force de « LA CARTE ».
     Seule correction : la signature était collée à la grille des portes. */
  #page-accueil{position:relative}
  .dico{position:absolute;top:clamp(230px,37svh,460px);right:4vw;width:292px;z-index:6;padding:30px 22px 18px;
    font-family:Georgia,"Times New Roman",serif;font-size:.83rem;line-height:1.55;color:#33301f;text-align:left;
    transform:rotate(var(--dico-rot,2.4deg));filter:drop-shadow(7px 12px 16px rgba(10,18,14,.5))}
  .dico-papier{position:absolute;inset:-7px;width:calc(100% + 14px);height:calc(100% + 14px);z-index:-1}
  .dico{text-shadow:0 0 .4px rgba(51,48,31,.55)}
  .dico-tape{position:absolute;top:-13px;left:50%;width:116px;height:30px;
    transform:translateX(-50%) rotate(-4deg);
    background:linear-gradient(100deg,rgba(250,244,214,.34),rgba(253,249,229,.66) 46%,rgba(244,236,204,.38));
    box-shadow:0 1px 4px rgba(40,30,10,.2);
    border-left:1px solid rgba(120,100,60,.14);border-right:1px solid rgba(120,100,60,.14)}
  .lex-entree{margin:0;font-size:1.02rem}
  .lex-mot{font-family:var(--display);font-weight:700;letter-spacing:.02em;color:var(--vert-deep);font-size:1.16em}
  .lex-pron{font-size:.78em;letter-spacing:.03em;opacity:.7;margin:0 1px}
  .lex-nat,.lex-ety{font-style:italic;font-size:.85em;opacity:.72}
  .lex-def{margin:7px 0 0;opacity:.94;text-align:left;hyphens:manual;-webkit-hyphens:manual}
  .dico.reveal{opacity:0;transform:rotate(var(--dico-rot,2.4deg))}
  .dico.reveal .dico-tape{opacity:0}
  .dico.reveal.in{opacity:1}
  .dico.reveal.in .dico-tape{opacity:1}
  @media (prefers-reduced-motion:no-preference){
    /* Sur mobile, le lambeau entre en scène au défilement : réaction immédiate. */
    .page.enter .dico.reveal.in{animation:dicoColle 1.25s cubic-bezier(.3,1,.4,1) .15s both}
    .page.enter .dico.reveal.in .dico-tape{animation:dicoScotch .46s cubic-bezier(.25,.9,.35,1) .89s both;transform-origin:10% 60%}
    /* Sur grand écran, il est visible dès l'ouverture du rideau : il ferme la
       cascade d'entrée du bandeau (phrase .45s, bouton .65s, notes .9s,
       presse 1.05s), en bouquet final. */
    @media (min-width:901px){
      .page.enter .dico.reveal.in{animation-delay:1.15s}
      .page.enter .dico.reveal.in .dico-tape{animation-delay:1.89s}
    }
  }
  @keyframes dicoColle{
    0%{opacity:0;transform:translate(24px,-36px) rotate(calc(var(--dico-rot,2.4deg) + 8deg)) scale(1.32);filter:drop-shadow(28px 44px 42px rgba(10,18,14,.2))}
    28%{opacity:1;transform:translate(0,0) rotate(calc(var(--dico-rot,2.4deg) - 1.6deg)) scale(.982);filter:drop-shadow(3px 5px 7px rgba(10,18,14,.62))}
    40%{transform:rotate(calc(var(--dico-rot,2.4deg) + 1.6deg)) scale(1.012);filter:drop-shadow(9px 14px 18px rgba(10,18,14,.42))}
    52%,78%{transform:translateY(1.5px) rotate(calc(var(--dico-rot,2.4deg) + 1.3deg)) scale(1);filter:drop-shadow(9px 15px 19px rgba(10,18,14,.4))}
    86%{transform:translateY(.4px) rotate(calc(var(--dico-rot,2.4deg) - .4deg)) scale(.995);filter:drop-shadow(4px 8px 10px rgba(10,18,14,.58))}
    100%{opacity:1;transform:rotate(var(--dico-rot,2.4deg)) scale(1);filter:drop-shadow(7px 12px 16px rgba(10,18,14,.5))}
  }
  @keyframes dicoScotch{
    0%{opacity:0;transform:translateX(-50%) translateY(-10px) rotate(-7deg) scaleX(.15)}
    45%{opacity:1;transform:translateX(-50%) translateY(-2px) rotate(-5.5deg) scaleX(1.05)}
    72%{transform:translateX(-50%) translateY(0) rotate(-4deg) scaleX(1) scaleY(.9)}
    100%{opacity:1;transform:translateX(-50%) rotate(-4deg) scaleX(1) scaleY(1)}
  }
  @media (max-width:900px){.dico{--dico-rot:-2deg;position:static;width:min(86%,330px);margin:34px auto 6px;transform:rotate(-2deg)}}
  .manif{max-width:900px;margin:0 auto;padding:88px 28px 34px;text-align:center}
  .acces{font-size:.86rem;color:var(--texte-doux);margin-top:6px}
  .manif p{
    font-family:var(--display);font-style:italic;font-weight:400;
    font-size:clamp(1.4rem,2.8vw,2.1rem);line-height:1.45;color:var(--ink);text-wrap:balance;
  }
  .manif .sig{font-family:var(--script);color:var(--rouge);font-size:1.55rem;display:inline-block;margin-top:16px;transform:rotate(-1.5deg)}

  /* L'accueil n'a pas de titre de page : c'est son manifeste qui porte le
     traitement des titres. On reste donc à une occurrence par page, et le
     manifeste de la page Traiteur, lui, n'y touche pas. */
  #page-accueil .manif:not(.dernier-avis) p{
    font-size:clamp(1.5rem,3vw,2.35rem);line-height:1.06;font-style:normal;font-weight:560;
  }
  #page-accueil .manif:not(.dernier-avis) p .t-caps,
  #page-accueil .manif:not(.dernier-avis) p .t-ital{display:block}
  #page-accueil .manif:not(.dernier-avis) p .t-caps{
    font-size:.32em;font-weight:600;font-style:normal;
    font-variation-settings:"opsz" 14;
    text-transform:uppercase;letter-spacing:.185em;line-height:1.3;
    color:var(--ink);margin-bottom:.5em;
  }
  #page-accueil .manif:not(.dernier-avis) p .t-ital{
    font-style:italic;font-weight:370;
    font-variation-settings:"opsz" 120;
    letter-spacing:-.004em;line-height:1.05;color:var(--vert-text);
  }
  @media (max-width:720px){
    #page-accueil .manif:not(.dernier-avis) p{font-size:clamp(1.32rem,6.4vw,1.8rem)}
    #page-accueil .manif:not(.dernier-avis) p .t-caps{font-size:.4em;letter-spacing:.125em}
  }

  .dernier-avis{padding-top:64px}
  .da-eti{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--texte-doux);margin-bottom:14px}

  /* ---------- 11/10/2026 : le profil Instagram officiel sur l’accueil (décision d’Ange : « essayons avec le profil officiel ») ----------
     Une bande crème entre la grille des portes et le dernier avis. La section des portes se referme après
     la grille, la bande suit (section.blk : 64 px en haut, 96 px en bas, 48 et 72 sur téléphone), le dernier
     avis reprend dans une section de clôture sans marge haute (il garde ses 64 px). Même .wrap que les portes
     (1 180 px au plus, gouttières de 28 px) : le texte calé sur le bord gauche de la grille, la carte du profil
     sur son bord droit (540 px, la largeur maximale d’Instagram), alignés en haut ; sous 960 px, le texte puis
     la carte. Avant l’accord, la zone d’attente tient la place de la carte sans rien demander à Meta ; après
     l’accord, site.js (bloc Consentement) y verse le blockquote et Instagram dessine son propre cadre blanc.
     Aucun encadré : la zone d’attente est blanche comme la carte qui la remplacera, sans bordure. */
  .insta-bande{background:var(--cream)}
  .ib-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,540px);gap:30px 64px;align-items:start}
  .ib-texte{padding-top:6px}
  .ib-mot{font-family:var(--script);font-weight:500;font-size:1.45rem;line-height:1.2;color:var(--vert-text)}
  .ib-texte h2{font-family:var(--display);font-weight:560;font-size:clamp(1.7rem,2.3vw,2rem);line-height:1.1;letter-spacing:-.01em;color:var(--ink);margin:.15rem 0 .85rem}
  .ib-phrase{font-size:1rem;line-height:1.6;color:var(--texte-doux);max-width:26em;text-wrap:pretty}
  .ib-suivre,.ib-lien{display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:var(--vert-text);text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:rgba(62,96,85,.45);text-underline-offset:5px;transition:color .25s ease,text-decoration-color .25s ease}
  .ib-suivre{margin-top:10px;font-size:.88rem;letter-spacing:.02em}
  .ib-suivre:hover,.ib-lien:hover{color:var(--vert-deep);text-decoration-color:currentColor}
  /* la carte : conteneur de requête, pour que la case suive la hauteur de la carte réelle à toute largeur.
     Hauteur de la carte d’Instagram mesurée le 11/10/2026 (Chrome, profil @u.mulinu, six posts) : 194 px plus
     les deux tiers de sa largeur jusqu’à 482 px compris (417 px à 334 de large, 370 à 264), 221 px plus les
     deux tiers à partir de 483 px (581 px à 540). La case garde cette hauteur avant l’accord (zone d’attente)
     et pendant le chargement de l’iframe (pas d’affaissement) ; si Instagram allonge sa carte, la case grandit
     avec elle. 11/10/2026 : seuil corrigé de 482 à 483 px après relecture (à 482 px de large, Instagram dessine
     encore la petite formule : la case dépassait la carte de 26 px). */
  .ib-carte{width:100%;max-width:540px;container-type:inline-size}
  .ib-case{position:relative;display:grid;grid-template-columns:minmax(0,1fr);min-height:420px;min-height:calc(194px + 66.666cqi)}
  @container (min-width:483px){.ib-case{min-height:calc(221px + 66.666cqi)}}
  /* la zone d’attente : le logo de la maison sur un rond vert, le compte, le bouton qui vaut accord pour
     Instagram seulement (comme « Afficher le post Instagram » du planning), la ligne sur les cookies et le
     lien direct ; le blanc est celui de la carte d’Instagram */
  .ib-attente{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px 24px;background:#fff;border-radius:3px;text-align:center}
  .ib-logo{display:grid;place-items:center;width:96px;height:96px;border-radius:50%;background:var(--vert-deep)}
  .ib-logo img{width:74px;height:auto}
  .ib-compte{font-family:var(--display);font-weight:560;font-size:1.3rem;line-height:1.2;color:var(--ink);margin:2px 0 8px}
  .ib-attente .btn{border:0;cursor:pointer;font-family:var(--sans);line-height:1.3;min-height:44px;max-width:100%}
  .ib-note{font-size:.8rem;line-height:1.45;color:var(--texte-doux);max-width:24em;text-wrap:balance}
  .ib-lien{font-size:.8rem}
  /* après l’accord : la carte d’Instagram dans la case ; sous 382 px de large elle descend sous les
     326 px qu’Instagram impose (320 px d’écran moins les gouttières : 264 px), sans déborder. Les styles en
     ligne d’Instagram (min-width:326px, max-width:540px) ne cèdent qu’à !important. Pendant le chargement,
     embed.js pose l’iframe en position absolue, largeur 100 % : la case (position:relative) la contient,
     sinon elle prenait toute la largeur de l’écran et débordait de 28 px sur téléphone. */
  .ib-case .instagram-media,.ib-case blockquote{margin:0 !important;min-width:0 !important}
  .ib-case iframe{min-width:0 !important;max-width:100% !important}
  /* entre l’accord et l’arrivée de la carte (1,5 à 7,6 s dans nos essais), et si Instagram ne répond pas :
     le blockquote (embed.js lui retire sa classe instagram-media, d’où le sélecteur par l’élément), blanc,
     tient toute la case et montre le lien direct au centre, dans le style de la maison */
  .ib-case blockquote{display:flex;align-items:center;justify-content:center;padding:24px;border-radius:3px}
  .ib-case blockquote a{font-family:var(--sans);font-size:.8rem;font-weight:700;color:var(--vert-text);text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:rgba(62,96,85,.45);text-underline-offset:5px}
  .ib-case:focus{outline:none}
  /* 11/10/2026 (relecture) : une fois la carte posée, embed.js la ramène un instant à 2 px de haut (environ
     un quart de seconde sur téléphone, comme au planning) avant de la redimensionner. La case garde sa
     hauteur ; blanche dès l’accord, elle reste du blanc de la carte au lieu de virer au crème vide. */
  .ib-case[data-charge]{background:#fff;border-radius:3px}
  @media (max-width:960px){
    .ib-grille{grid-template-columns:minmax(0,1fr)}
    .ib-texte{padding-top:0}
  }
  /* téléphone : la zone d’attente reste moins haute que la carte la plus basse (370 px à 264 de large) */
  @media (max-width:600px){
    .ib-texte h2{font-size:1.7rem}
    .ib-attente{padding:24px 16px}
    .ib-logo{width:88px;height:88px}
    .ib-logo img{width:68px}
  }
  .blk.portes-coda{padding-top:0}
  .chap{padding:84px 0 0}
  .chap-tag{
    display:flex;align-items:baseline;gap:16px;font-size:.72rem;font-weight:700;
    letter-spacing:.24em;text-transform:uppercase;color:var(--vert-text);margin-bottom:38px;
  }
  .chap-tag .num{font-family:var(--display);font-style:italic;font-weight:480;font-size:1.5rem;letter-spacing:0;color:var(--rouge);text-transform:none}
  .chap-tag::after{content:"";flex:1;height:1px;background:rgba(37,48,43,.25);align-self:center}
  .ed{display:grid;grid-template-columns:11fr 9fr;gap:64px;align-items:start}
  .ed.flip{grid-template-columns:9fr 11fr}
  .ed.flip .ed-img{order:2}
  .ed.flip .ed-txt{order:1}
  .ed-txt h2{font-family:var(--display);font-weight:560;font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.1;margin:0 0 .9rem;letter-spacing:-.01em}
  .ed-txt > p{color:var(--texte-doux);font-size:1rem;max-width:36em;margin-bottom:1em}
  .ed-img{display:grid;gap:22px;align-content:start}
  .ed-img img{width:100%;display:block;max-height:370px;object-fit:cover}
  .ed-img img.pos-salon{object-position:50% 38%}
  .infos-photo{margin:48px 0 0}
  .infos-photo img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
  .lines{list-style:none;margin:26px 0 0;padding:0}
  .lines li{display:flex;gap:16px;align-items:baseline;padding:15px 2px;border-top:1px solid rgba(37,48,43,.18)}
  .lines li:last-child{border-bottom:1px solid rgba(37,48,43,.18)}
  .lines .no{color:var(--rouge);font-weight:700;font-size:.7rem;letter-spacing:.08em;font-variant-numeric:tabular-nums;flex:none}
  .lines b{font-family:var(--display);font-weight:560;font-size:1.05rem;letter-spacing:.01em}
  .lines .d{color:var(--texte-doux);font-size:.88rem;display:block;margin-top:2px}
  .lines .cap{margin-left:auto;color:var(--vert-text);font-weight:700;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;flex:none;padding-left:14px}
  .trt-note{font-size:.8rem;color:var(--texte-doux);margin-top:18px;opacity:.9;max-width:36em}
  /* 05/10/2026 audit C20 : rappel discret vers le formulaire (#projet) en fin de chapitre I, un lien souligne et non un bouton */
  .ed-txt > .lien-devis{font-size:.8rem;margin:14px 0 0}
  .lien-devis a{color:var(--vert-text);text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:rgba(62,96,85,.45);text-underline-offset:3px}
  .lien-devis a:hover{text-decoration-color:currentColor}
  .band{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:92px 0 0;align-items:start}
  .band figure:nth-child(2){margin-top:52px}
  .band figure:nth-child(3){margin-top:104px}
  .band img,.band video{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
  .trt-prose{margin-top:96px;border-top:1px solid rgba(37,48,43,.18);padding-top:54px}
  .trt-prose h2{font-family:var(--display);font-weight:560;font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.12;margin:0 0 26px;max-width:22em;letter-spacing:-.01em}
  .trt-prose .cols{columns:2;column-gap:60px}
  .trt-prose .cols.solo{columns:1;max-width:46em}
  .trt-prose p{color:var(--texte-doux);font-size:.98rem;line-height:1.75;margin:0 0 1em;break-inside:avoid}
  .trt-cta{
    margin-top:100px;background:var(--vert-deep);color:var(--cream);
    padding:52px 48px;display:flex;flex-wrap:wrap;gap:26px;align-items:center;justify-content:space-between;
  }
  .trt-cta .t{font-family:var(--display);font-style:italic;font-size:clamp(1.3rem,2.4vw,1.8rem);max-width:22em;text-wrap:balance}
  .trt-cta .actions{display:flex;gap:12px;flex-wrap:wrap}
  .trt-cta .mini-link{font-size:.78rem;color:var(--sage-bright);letter-spacing:.08em}
  .trt-cta .mini-link a{color:var(--sage-bright)}
  .trt-cta .mini-link a:hover{color:var(--cream)}
  .trt-cta.has-form{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:30px}
  .dv-form{display:grid;grid-template-columns:repeat(2,1fr);gap:20px 30px;width:100%}
  .dv-field{display:flex;flex-direction:column;gap:7px}
  .dv-field.large{grid-column:1/-1}
  .dv-field label{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage-bright)}
  .dv-field input,.dv-field select,.dv-field textarea{
    background:transparent;border:0;border-bottom:1px solid var(--cream-45);border-radius:0;
    color:var(--cream);font:inherit;font-size:.95rem;padding:8px 2px;color-scheme:dark;
  }
  .dv-field select option{color:var(--ink-deep);background:var(--cream)}
  .dv-field textarea{min-height:76px;resize:vertical}
  .dv-field input::placeholder,.dv-field textarea::placeholder{color:var(--cream-70-texte)}
  .dv-field input:focus,.dv-field select:focus,.dv-field textarea:focus{outline:none;border-bottom-color:var(--cream)}
  .dv-field input:focus-visible,.dv-field select:focus-visible,.dv-field textarea:focus-visible{outline:2px solid var(--sage-bright);outline-offset:3px}
  .dv-actions{display:flex;gap:14px 18px;flex-wrap:wrap;align-items:center}
  .dv-actions .btn{cursor:pointer}
  .dv-actions .btn:disabled{opacity:.7;cursor:progress;transform:none;box-shadow:none}
  /* champs obligatoires : petite etoile corail lisible sur le vert (contraste 4,9:1) */
  .dv-req{color:var(--rouge-lisible);margin-left:.35em;letter-spacing:0}
  .dv-form .dv-oblig{display:block;margin:0;text-align:center;font-size:.78rem;letter-spacing:.04em;color:var(--sage-bright)}
  .dv-oblig .dv-req{margin:0 .3em 0 0}
  /* information au point de collecte, sur le modele de .alerte-mention (sauge : contraste AA sur le vert) */
  .dv-form .dv-mention{display:block;margin:-12px 0 0;text-align:center;font-size:.74rem;line-height:1.5;letter-spacing:.02em;color:var(--sage-bright)}
  .dv-mention a{color:inherit;text-underline-offset:3px}
  /* message d erreur ou de repli, au pied du bouton */
  .dv-form .dv-msg{display:block;margin:0 auto;max-width:40em;text-align:center;font-size:.92rem;line-height:1.7;color:var(--rouge-lisible)}
  .dv-form .dv-msg[hidden]{display:none}
  .dv-msg a{color:var(--cream);text-decoration:underline;text-underline-offset:3px}
  .dv-msg a:hover{color:#fff}
  /* confirmation : remplace le formulaire une fois la demande partie */
  .dv-ok{max-width:38em}
  .dv-ok:focus{outline:none}
  .dv-ok .dv-ok-t{margin:0 0 12px;font-family:var(--display);font-style:italic;font-size:clamp(1.15rem,2vw,1.45rem);color:var(--cream)}
  .dv-ok p{margin:0 0 10px;color:var(--cream-70);line-height:1.75}
  .dv-ok .dv-ok-mail{color:var(--cream);font-weight:700;overflow-wrap:anywhere}
  .dv-ok .dv-ok-petit{font-size:.85rem;color:var(--sage-bright);margin:0}
  .page-cta{
    margin-top:88px;background:var(--vert-deep);color:var(--cream);
    padding:44px 42px;display:flex;flex-wrap:wrap;gap:22px;align-items:center;justify-content:space-between;
  }
  .page-cta .t{font-family:var(--display);font-style:italic;font-size:clamp(1.25rem,2.3vw,1.7rem);max-width:22em;text-wrap:balance}
  .page-cta .actions{display:flex;gap:12px;flex-wrap:wrap}

  /* ---------- INFOS & AVIS ---------- */
  .infos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:14px}
  .info-card{
    background:var(--cream);border:1px solid rgba(37,48,43,.16);padding:32px 28px;
    transition:transform .4s cubic-bezier(.22,.61,.36,1), box-shadow .4s ease;
  }
  .info-card h2{
    font-size:.74rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
    color:var(--vert-text);margin-bottom:16px;font-family:var(--sans);
  }
  .info-card p{color:var(--texte-doux);font-size:.95rem;margin-bottom:.6em}
  .info-card b{color:var(--ink)}
  .info-card .big{font-family:var(--display);font-size:1.3rem;color:var(--ink);font-weight:560}
  .hours{width:100%;border-collapse:collapse;font-size:.92rem}
  .hours th,.hours td{padding:7px 0;border-bottom:1px dashed rgba(37,48,43,.2);color:var(--texte-doux)}
  .hours th{text-align:left;font-weight:400}
  .hours td:last-child{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}
  .info-card .btn{margin-top:14px}
  .mini{font-size:.78rem;color:var(--texte-doux);opacity:.9}
  .avis-blk{margin-top:88px;border-top:1px solid rgba(37,48,43,.2);padding-top:56px}
  .avis-blk .bt{
    font-family:var(--display);font-weight:560;font-size:clamp(1.7rem,3.4vw,2.4rem);margin:.4rem 0 1.6rem;
  }
  /* 07/10/2026 D4 : ligne discrète sous le titre des avis, page EN seulement (insérée au build) : petit texte doux, sans encadré ; la marge haute négative fusionne avec celle du titre (0,6 rem entre les deux) */
  .avis-blk .avis-note{font-family:var(--display);font-style:italic;font-weight:370;font-size:.85rem;line-height:1.5;color:var(--texte-doux);margin:-1rem 0 1.8rem;max-width:42em}
  .avis-grid{display:grid;grid-template-columns:auto 1fr;gap:64px;align-items:center}
  .score{
    font-family:var(--display);font-weight:600;font-size:clamp(4.5rem,9vw,6.5rem);line-height:1;
    color:var(--vert);font-variant-numeric:tabular-nums;
  }
  .score small{font-size:.35em;color:var(--texte-doux);font-weight:480}
  .score-sub{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--texte-doux);margin-top:10px}
  .bars{display:grid;gap:18px;max-width:560px}
  .bar-row{display:grid;grid-template-columns:90px 1fr 44px;gap:16px;align-items:center;font-size:.85rem;font-weight:600;letter-spacing:.06em}
  .bar{height:6px;background:rgba(37,48,43,.15);border-radius:99px;overflow:hidden}
  .bar i{display:block;height:100%;background:var(--vert);border-radius:99px;width:0;transition:width 1.2s cubic-bezier(.25,.8,.25,1) .3s}
  .avis-grid.in .bar i{width:var(--w)}
  .bar-row .v{font-variant-numeric:tabular-nums;text-align:right;color:var(--vert-text);font-weight:700}
  .presse-eti{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--texte-doux);margin-top:44px}
  .presse-cite{font-family:var(--display);font-style:italic;font-size:clamp(1.15rem,2vw,1.45rem);color:var(--ink);margin-top:14px}
  .presse-cite span{
    font-family:var(--sans);font-style:normal;font-size:.68rem;letter-spacing:.14em;
    text-transform:uppercase;color:var(--texte-doux);margin-left:14px;
  }
  /* 05/10/2026 audit C1 : les 30 citations occupent la même cellule de grille, la boîte prend la hauteur de la plus longue et ne saute plus toutes les 5,5 s */
  .dires{position:relative;margin-top:48px;overflow:hidden;padding:0 56px;display:grid}
  .fl{
    position:absolute;top:50%;transform:translateY(-50%);z-index:2;
    width:38px;height:38px;border-radius:50%;border:1px solid rgba(37,48,43,.25);
    background:var(--cream);color:var(--vert);font-size:1.25rem;line-height:1;cursor:pointer;
    opacity:0;transition:opacity .3s ease,border-color .3s ease;
  }
  .dires:hover .fl,.fl:focus-visible{opacity:1}
  .fl:hover{border-color:var(--vert)}
  .fl-prev{left:4px}
  .fl-next{right:4px}
  @media (hover:none){.fl{opacity:.6}}
  @media (max-width:600px){.dires{padding:0 44px}}
  .dire{
    grid-area:1/1;position:static;opacity:0;transition:opacity .34s ease;margin:0;
    pointer-events:none;
  }
  .dire.actif{opacity:1;pointer-events:auto;transition:opacity .5s ease .3s}
  .dire p{
    font-family:var(--display);font-style:italic;font-size:clamp(1.1rem,2vw,1.4rem);
    line-height:1.5;color:var(--ink);max-width:34em;margin:0;
  }
  .dire cite{
    display:block;font-style:normal;font-family:var(--sans);font-size:.72rem;
    letter-spacing:.14em;text-transform:uppercase;color:var(--texte-doux);margin-top:12px;
  }
  @media (prefers-reduced-motion: reduce){ .dire{transition:none} }
  .badges{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:40px;align-items:center}
  .presse-bande{display:flex;flex-wrap:wrap;align-items:center;gap:22px 33px;margin-top:22px}
  .marque-presse{display:inline-flex;align-items:center;text-decoration:none}
  .marque-presse img{display:block;width:auto;opacity:.82;transition:opacity .3s ease,transform .3s ease}
  .marque-presse:hover img{opacity:1;transform:translateY(-2px)}
  .lg-fig{height:34px}
  .lg-sor{height:30px}
  .lg-pf{height:23px}
  .lg-gm{height:24px}
  .lg-mc{height:46px}
  .marque-presse.script{
    font-family:var(--display);font-style:italic;font-weight:480;font-size:1.05rem;
    letter-spacing:.02em;color:var(--texte-doux);transition:color .3s ease;
  }
  .marque-presse.script:hover{color:var(--vert)}
  .macaron-gaudry{width:128px;height:128px;transform:rotate(-4deg);filter:drop-shadow(0 10px 20px rgba(37,48,43,.28))}
  /* 05/10/2026 audit C19 : sous 600 px, logos centrés ; le macaron seul sur sa ligne (marges = toute la largeur) et la mention « Pari(s) sur la Corse » centrée en dessous */
  @media (max-width:600px){
    .presse-bande{justify-content:center}
    .macaron-gaudry{order:1;margin:0 calc(50% - 64px)}
    .marque-presse.script{order:2;flex-basis:100%;justify-content:center}
  }
  .badge{
    text-decoration:none;
    border:1px solid rgba(37,48,43,.3);padding:9px 16px;font-size:.74rem;
    letter-spacing:.1em;text-transform:uppercase;color:var(--texte-doux);background:var(--cream);
    transition:border-color .3s ease, transform .3s ease;
  }
  a.badge:hover{border-color:var(--vert);transform:translateY(-2px)}
  .badge b{color:var(--ink)}

  /* ---------- FOOTER ---------- */
  footer{background:var(--ink-deep);color:var(--cream-70);padding:26px 0 40px;font-size:.85rem;overflow:hidden}
  .foot-mark{
    font-family:var(--sans);font-weight:700;letter-spacing:.22em;
    font-size:clamp(3rem,10.5vw,8.2rem);line-height:1;white-space:nowrap;
    color:transparent;-webkit-text-stroke:1px rgba(247,241,228,.16);
    user-select:none;margin-bottom:40px;
  }
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;align-items:start}
  .foot-badge{width:118px;height:auto;margin-bottom:16px}
  footer h2{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sage-light);margin-bottom:14px;font-weight:700;font-family:var(--sans)}
  footer a{color:var(--cream-70);text-decoration:none}
  footer a:hover{color:var(--cream);text-decoration:underline}
  footer ul{list-style:none;display:grid;gap:8px}
  .foot-wink{
    font-family:var(--script);color:var(--sage-bright);
    text-align:center;margin-top:34px;transform:rotate(-1.2deg);
  }
  .foot-wink .mim{display:block;font-size:1.5rem}
  .foot-wink .fwco{display:block;font-size:1.1rem;opacity:.9;margin-top:2px}
  .foot-wink .fwtr{
    display:block;font-family:var(--sans);font-size:.66rem;font-weight:600;
    letter-spacing:.18em;text-transform:uppercase;color:var(--cream-70);margin-top:8px;
  }
  .foot-presse{
    margin-top:36px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
    gap:14px 26px;font-size:.72rem;letter-spacing:.1em;color:rgba(247,241,228,.55);
  }
  .fp-eti{text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;margin-right:4px}
  .foot-presse img{display:block;width:auto;opacity:.8;transition:opacity .3s ease}
  .foot-presse a:hover img{opacity:1}
  .fp-fig{height:22px}
  .fp-sor{height:20px}
  .fp-pf{height:16px}
  .fp-gm{height:17px}
  .fp-mcm{height:26px}
  .fp-livre{font-style:italic;letter-spacing:.04em;opacity:.85}
  .foot-legal{
    margin-top:44px;padding-top:20px;border-top:1px solid rgba(247,241,228,.12);
    display:flex;flex-wrap:wrap;gap:8px 28px;font-size:.74rem;color:rgba(247,241,228,.62);
  }

  /* ---------- IMPRESSION ---------- */
  @media print{
    body::after,.loader,.wipe,.overlay,.burger{display:none !important}
    header.nav{position:static;animation:none}
    .page{display:block !important}
    .hero{min-height:auto}
    .reveal,.menu-section .dish,.gal-grid figure{opacity:1 !important;transform:none !important}
    .bar i{width:var(--w) !important}
    .strip-track,.page.enter .lr > *{animation:none}
    .dark,.darker,.page-cta,.trt-cta,.citation-fil,footer{background:#fff !important;color:#111 !important}
    .dark *,.darker *,.page-cta *,.trt-cta *,.citation-fil *,footer *{color:#111 !important}
    video{display:none !important}
  }

  /* ---------- REDUCED MOTION ---------- */
  @media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation:none !important;transition:none !important}
    .reveal,.menu-section .dish,.gal-grid figure,.overlay a.ov-link{opacity:1 !important;transform:none !important}
    .bar i{width:var(--w) !important}
    .hero-bg{transform:none !important}
    .loader{display:none !important}
    .wipe{display:none !important}
    .page.enter .lr > *{transform:none !important}
  }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:1080px){
    nav.links{gap:16px}
    nav.links a{font-size:.7rem}
  }
  @media (max-width:960px){
    .menu-section{grid-template-columns:1fr;gap:20px}
    .ms-title{position:static}
    .ed,.ed.flip{grid-template-columns:1fr;gap:36px}
    .trt-prose .cols{columns:1}
    .ed.flip .ed-img{order:0}
    .band{grid-template-columns:1fr 1fr;padding-top:64px}
    .band figure:nth-child(2),.band figure:nth-child(3){margin-top:0}
    .chap{padding-top:64px}
    .trt-cta{padding:36px 28px}
    .dv-form{grid-template-columns:1fr}
    .page-cta{padding:34px 26px}
    .avis-grid{grid-template-columns:1fr;gap:36px}
    .infos-grid{grid-template-columns:1fr}
    /* 07/10/2026 D14 : en une colonne, l ordre des cartes devient Horaires, Réserver, Adresse (HTML inchangé : Adresse, Horaires, Réserver) ; posé ici car la grille passe à une colonne à 960 px, pas à 860 */
    .infos-grid > .info-card:nth-child(1){order:3}
    .infos-grid > .info-card:nth-child(2){order:1}
    .infos-grid > .info-card:nth-child(3){order:2}
    .infos-photo img{aspect-ratio:4/3}
    .foot-grid{grid-template-columns:1fr 1fr;gap:30px 24px}
    .foot-grid > div:first-child{grid-column:1 / -1}
    footer li{overflow-wrap:anywhere}
    .portes-grid{grid-template-columns:1fr;gap:14px}
    .porte{aspect-ratio:16/9}
    .g-a,.g-b,.g-c,.g-d{grid-column:span 3}
    .g-a .im,.g-b .im,.g-c .im,.g-d .im{aspect-ratio:4/3}
  }
  @media (max-width:860px){
    nav.links{display:none}
    .burger{display:block}
    .brand span{display:none}
  }
  @media (max-height:640px){
    .overlay{justify-content:flex-start}
  }
  @media (max-width:600px){
    section.blk{padding:48px 0 72px}
    .hero-badge{width:min(240px,58vw)}
    video.hero-badge{width:min(310px,74vw)}
    .page-head{padding:132px 0 22px}
    .page-head .ghost{top:78px}
    .pr-head .when{margin-left:0}
    .band{grid-template-columns:1fr}
    .band img,.band video{aspect-ratio:4/3;max-height:280px;object-position:center 72%}
    .gal-grid{gap:18px 10px} .gal-grid figure:last-child:nth-child(odd){grid-column:span 6}
    .g-a,.g-b,.g-c,.g-d{grid-column:span 3}
    .gal-grid figcaption{font-size:.66rem;letter-spacing:.1em}
    .g-a .im,.g-b .im,.g-c .im,.g-d .im{aspect-ratio:4/3}
    .nav-in{gap:12px}
    .prog-row a,.mini-link a,.lien-devis a,footer li a{display:inline-block;padding:6px 0}
  }

  /* ---------- Accueil sur telephone : la facade entiere en bandeau, le texte en dessous ---------- */
  @media (max-width:600px){
    .hero{min-height:auto;align-items:flex-start}
    .hero-bg{inset:env(safe-area-inset-top) 0 auto 0;height:min(84vw,50svh);transform:none !important;overflow:hidden}
    .hero-img{object-position:center 42%}
    .hero-veil{
      inset:env(safe-area-inset-top) 0 auto 0;height:min(84vw,50svh);
      background:linear-gradient(to bottom, rgba(24,37,31,.34) 0%, rgba(24,37,31,0) 24%, rgba(24,37,31,0) 52%, rgba(46,74,66,.62) 80%, var(--vert-deep) 100%);
    }
    .hero-frame{display:none}
    .hero-in{padding:calc(min(84vw,50svh) - 125px + env(safe-area-inset-top)) 16px 40px}
    video.hero-badge{width:min(300px,80vw)}
    .hero-kicker{margin-top:-58px}
    .hero .lede{margin-top:16px;font-size:1rem}
    .hero-cta{margin-top:22px;gap:10px}
    .hero-facts{
      display:grid;grid-template-columns:1fr;justify-items:center;gap:12px;
      margin-top:24px;padding-top:14px;font-size:.72rem;letter-spacing:.02em;
    }
    .hero-facts .hf-notes{display:grid;gap:7px;text-align:left}
    .hero-facts .hf-notes > span{white-space:nowrap}
    .hero-facts .hf-faits{display:flex;flex-wrap:wrap;justify-content:center;gap:5px 14px;letter-spacing:0;color:var(--cream-70)}
    .hero-facts .hf-faits > span{white-space:nowrap}
    .hero-facts .hf-faits > span:nth-child(2){order:3}
    .dico{--dico-rot:2.5deg;position:absolute;top:calc(144px + env(safe-area-inset-top));right:10px;width:min(44vw,166px);margin:0;padding:17px 10px 9px;
      font-size:.56rem;line-height:1.42;transform:rotate(2.5deg);filter:drop-shadow(4px 7px 10px rgba(10,18,14,.5))}
    .dico .lex-entree{font-size:.72rem}
    .dico .lex-def{margin-top:4px;text-align:left;hyphens:manual;-webkit-hyphens:manual}
    .dico-tape{width:62px;height:18px;top:-8px}
    .lex-def br{display:none}
  }

  /* =====================================================================
     PAGES « LES SOIRÉES » (#page-rendezvous) ET « LE PLANNING » (#page-planning)
     Portées des maquettes validées par Ange le 30/09/2026 (fusion v6, planning v4).
     Tout est préfixé par l’identifiant de la page : aucune autre page n’est touchée.
     La maquette mesurait en cqw (largeur de l’écran simulé, 1440 px au plus) :
     sur ordinateur min(Xvw, X × 14,4 px), sur téléphone Xvw.
     ===================================================================== */
  /* 05/10/2026 audit C12 : sur ces deux pages sombres, plus aucun texte sous .7 rem (les .6 à .68 rem sont montés à .7) ; les textes en crème utilisent le jeton --cream-70-texte (70 %), le crème « 45 % » (filets, bordures) y vaut 62 % comme avant le chantier */
  #page-rendezvous,#page-planning{
    --nuit:#161F1B;--encre-papier:#33301F;--cream-45:rgba(247,241,228,.62);
    background:var(--nuit);color:var(--cream);font-size:16px;line-height:1.55;
  }
  /* marges par défaut du navigateur, sur lesquelles les maquettes comptaient (le site les remet à zéro) */
  #page-rendezvous p,#page-planning p{margin:1em 0}
  #page-rendezvous h1,#page-planning h1,#page-rendezvous h2,#page-planning h2,#page-rendezvous h3,#page-planning h3{margin:.83em 0}
  #page-rendezvous figure,#page-planning figure{margin:1em 40px}
  #page-rendezvous img,#page-rendezvous video,#page-planning img,#page-planning video{display:block}
  /* le bandeau fixe du site (68 px + encoche) : les ancres ne passent pas dessous */
  html:has(#page-rendezvous),html:has(#page-planning),html:has(#page-donnees),html:has(#page-traiteur){scroll-padding-top:calc(68px + env(safe-area-inset-top) + 12px)}
  #page-traiteur #projet{scroll-margin-top:24px}

  #page-rendezvous .wrap{max-width:1280px;margin:0 auto;padding:0 40px}
  #page-rendezvous .defs{position:absolute;width:0;height:0;overflow:hidden}
  #page-rendezvous .eyebrow{font-weight:700;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sage-light);display:flex;align-items:center;gap:12px;margin:0}
  #page-rendezvous .eyebrow::before{content:"";width:26px;height:1px;background:currentColor;opacity:.6;flex:none}
  #page-rendezvous .eyebrow .no{color:var(--rouge-lisible);font-variant-numeric:tabular-nums}
  #page-rendezvous .when{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--sage-bright);border:1px solid rgba(247,241,228,.28);padding:6px 13px;border-radius:99px;white-space:nowrap}
  #page-rendezvous .btn{display:inline-block;text-decoration:none;font-weight:700;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;border-radius:2px;padding:13px 24px;transition:transform .2s ease,background .2s ease;cursor:pointer;font-family:var(--sans);border:0;line-height:1.2}
  #page-rendezvous .btn:hover{transform:translateY(-2px)}
  #page-rendezvous .btn:focus-visible{outline:2px solid var(--cream);outline-offset:3px}
  #page-rendezvous .btn-cream{background:var(--cream);color:var(--vert-deep)}
  #page-rendezvous .btn-line{border:1px solid var(--cream-45);color:var(--cream);background:transparent}
  #page-rendezvous .btn-vert{background:var(--vert-deep);color:var(--cream)}
  #page-rendezvous .btn-vert:hover{background:#223A33}
  #page-rendezvous .btn-vert:focus-visible{outline-color:var(--vert-deep)}
  #page-rendezvous .figcap{display:flex;gap:12px;align-items:baseline;padding:14px 2px 0;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-70)}
  #page-rendezvous .ouverture{position:relative;height:min(clamp(640px,min(70vw,1008px),1040px),100svh);overflow:hidden;background:#0F1512}
  #page-rendezvous .ouverture picture{position:absolute;inset:0}
  #page-rendezvous .ouverture .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 46%}
  @media (prefers-reduced-motion:no-preference){
    #page-rendezvous .ouverture .ph{animation:respire 26s ease-in-out infinite alternate;transform-origin:55% 40%}
    @keyframes respire{from{transform:scale(1)}to{transform:scale(1.06)}}
  }
  #page-rendezvous .ouverture .voile{position:absolute;inset:0;background:linear-gradient(to top,rgba(15,21,18,.96) 0,rgba(15,21,18,.78) 22%,rgba(15,21,18,.28) 48%,rgba(15,21,18,0) 70%),linear-gradient(to right,rgba(15,21,18,.55) 0,rgba(15,21,18,.18) 40%,rgba(15,21,18,0) 65%)}
  #page-rendezvous .ouverture .ghost{position:absolute;left:min(1.6vw,23.04px);top:min(18vw,259.2px);z-index:2;font-family:var(--display);font-style:italic;font-weight:340;font-size:clamp(5rem,min(16vw,230.4px),15rem);line-height:1;white-space:nowrap;color:transparent;-webkit-text-stroke:1.5px var(--cream);opacity:.32;text-shadow:0 2px 18px rgba(0,0,0,.35);pointer-events:none;user-select:none}
  #page-rendezvous .ouverture .titre{position:absolute;left:0;right:0;bottom:min(6.2vw,89.28px);z-index:3}
  #page-rendezvous .ouverture h1{font-family:var(--display);font-weight:560;font-size:clamp(3rem,min(7vw,100.8px),6.4rem);line-height:1;letter-spacing:-.01em;margin:.9rem 0 0;text-shadow:0 2px 28px rgba(0,0,0,.55)}
  #page-rendezvous .ouverture h1 .t-caps{display:block;font-size:.32em;font-weight:600;font-style:normal;text-transform:uppercase;letter-spacing:.2em;line-height:1.2;color:var(--cream);margin-bottom:.5em}
  #page-rendezvous .ouverture h1 .t-ital{display:block;font-style:italic;font-weight:380;letter-spacing:-.004em;line-height:.98;color:var(--sage-bright);margin-left:-.02em}
  #page-rendezvous .ouverture .eyebrow{color:var(--sage-bright);text-shadow:0 1px 12px rgba(0,0,0,.6)}
  #page-rendezvous .intro{position:relative;padding:96px 0 40px;text-align:center}
  #page-rendezvous .intro p{font-family:var(--display);font-style:italic;font-weight:370;font-variation-settings:"opsz" 60;font-size:clamp(1.35rem,min(2.1vw,30.24px),1.9rem);line-height:1.5;color:var(--cream);max-width:29em;margin:0 auto;text-wrap:balance}
  #page-rendezvous .intro .trait{width:1px;height:64px;margin:52px auto 0;background:linear-gradient(to bottom,rgba(247,241,228,.5),rgba(247,241,228,0))}
  #page-rendezvous .chap{position:relative;padding:min(6.5vw,93.6px) 0 min(6vw,86.4px)}
  #page-rendezvous .chap .ph{position:absolute;top:max(-3vw,-43.2px);bottom:max(-3vw,-43.2px);width:57%;z-index:0;overflow:hidden}
  /* 05/10/2026 audit C18 et C12 : la légende de la photo (« Le guitariste ») s aligne sur la marge intérieure du .wrap (1280 px + 40 px) au lieu du bord de l écran ; .ph fait 57 % de la page, d où la division ; taille .66 vers .7 rem */
  #page-rendezvous .chap .ph-cap{position:absolute;z-index:2;margin:0;bottom:min(2.4vw,34.56px);right:calc(max(0px,(100% / .57 - 1280px) / 2) + 40px);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cream-70);text-shadow:0 1px 8px rgba(0,0,0,.7)}
  #page-rendezvous .chap.g .ph-cap{right:auto;left:calc(max(0px,(100% / .57 - 1280px) / 2) + 40px)}
  #page-rendezvous .chap .ph img,#page-rendezvous .chap .ph video{width:100%;height:100%;object-fit:cover}
  #page-rendezvous .chap .ph::after{content:"";position:absolute;inset:0;pointer-events:none}
  #page-rendezvous .chap.g .ph{left:0}
  #page-rendezvous .chap.d .ph{right:0}
  #page-rendezvous .chap.g .ph::after{background:linear-gradient(to right,rgba(22,31,27,0) 46%,rgba(22,31,27,.55) 78%,var(--nuit) 100%),linear-gradient(to bottom,var(--nuit) 0,rgba(22,31,27,.96) 5%,rgba(22,31,27,.8) 12%,rgba(22,31,27,.45) 22%,rgba(22,31,27,0) 36%,rgba(22,31,27,0) 66%,rgba(22,31,27,.45) 80%,rgba(22,31,27,.8) 90%,rgba(22,31,27,.96) 96%,var(--nuit) 100%),linear-gradient(to right,rgba(22,31,27,.35),rgba(22,31,27,0) 25%)}
  #page-rendezvous .chap.d .ph::after{background:linear-gradient(to left,rgba(22,31,27,0) 46%,rgba(22,31,27,.55) 78%,var(--nuit) 100%),linear-gradient(to bottom,var(--nuit) 0,rgba(22,31,27,.96) 5%,rgba(22,31,27,.8) 12%,rgba(22,31,27,.45) 22%,rgba(22,31,27,0) 36%,rgba(22,31,27,0) 66%,rgba(22,31,27,.45) 80%,rgba(22,31,27,.8) 90%,rgba(22,31,27,.96) 96%,var(--nuit) 100%),linear-gradient(to left,rgba(22,31,27,.35),rgba(22,31,27,0) 25%)}
  #page-rendezvous .chap .wrap{position:relative;z-index:1;display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px}
  #page-rendezvous .chap .wrap{pointer-events:none}
  #page-rendezvous .chap .txt{pointer-events:auto}
  /* sous-titres du chant (affichés quand le son est mis) : petits, dans la zone claire de la vidéo */
  #page-rendezvous #chant::cue{font:500 15px/1.35 var(--sans);color:#F7F1E4;background:rgba(15,21,18,.62)}
  #page-rendezvous .chap.g .txt{grid-column:7 / 13}
  #page-rendezvous .chap.d .txt{grid-column:1 / 7}
  #page-rendezvous .chap .tete{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
  #page-rendezvous .chap h2{font-family:var(--display);font-weight:560;font-size:clamp(2rem,min(3.4vw,48.96px),3rem);line-height:1.05;margin:16px 0 0;letter-spacing:-.008em}
  #page-rendezvous .chap h2 .no{font-style:italic;font-weight:370;color:var(--rouge-lisible);font-size:.5em;vertical-align:.7em;margin-right:.35em;letter-spacing:0}
  #page-rendezvous .chap .texte{color:var(--cream-70);font-size:1.02rem;line-height:1.7;max-width:33em;margin:22px 0 0}
  #page-rendezvous .chap .texte a{color:var(--cream);text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(247,241,228,.4)}
  #page-rendezvous .chap-01 .ph video{object-position:50% 30%;filter:contrast(1.06) saturate(1.08)}
  #page-rendezvous .chap-01 .ph::before{content:"";position:absolute;inset:0;background:rgba(22,31,27,.16);z-index:1;pointer-events:none}
  #page-rendezvous .commandes{position:absolute;z-index:3;top:calc(min(3vw,43.2px) + 96px);right:27%;display:flex;align-items:center;gap:8px}
  #page-rendezvous .son-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;border:0;cursor:pointer;font:700 .7rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--vert-deep);background:rgba(247,241,228,.94);border-radius:999px;padding:11px 16px;box-shadow:0 8px 22px -10px rgba(0,0,0,.6);transition:background .2s ease,transform .2s ease}
  #page-rendezvous .son-btn:hover{background:#fff;transform:translateY(-1px)}
  #page-rendezvous .son-btn:focus-visible{outline:2px solid var(--cream);outline-offset:3px}
  #page-rendezvous .son-btn .note-mus{font-family:var(--display);font-size:1rem;line-height:1;font-style:italic}
  #page-rendezvous .son-btn.on{background:var(--vert-deep);color:var(--cream)}
  #page-rendezvous .proj{margin-top:44px;position:relative}
  #page-rendezvous .proj .eti{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:var(--sage-light);margin:0;display:flex;align-items:center;gap:12px}
  #page-rendezvous .proj .date{font-family:var(--display);font-style:italic;font-weight:360;font-variation-settings:"opsz" 144;font-size:clamp(3.6rem,min(6.8vw,97.92px),7.2rem);line-height:.94;letter-spacing:-.015em;color:var(--cream);margin:14px 0 0 -.04em;text-shadow:0 0 34px rgba(247,241,228,.28),0 0 90px rgba(247,241,228,.12),0 3px 8px rgba(0,0,0,.45)}
  #page-rendezvous .chap.g .proj .date{margin-left:-22%}
  #page-rendezvous .chap.d .proj .date{margin-right:-22%}
  #page-rendezvous .proj .date time{display:block}
  #page-rendezvous .proj .date .d-jour,#page-rendezvous .proj .date .d-num{display:block}
  #page-rendezvous .chap-01 .proj .date{font-size:clamp(3.4rem,min(6.2vw,89.28px),6.6rem)}
  #page-rendezvous .lambeau{position:relative;width:min(500px,92%);margin:46px 0 0;padding:40px 36px 34px;color:var(--encre-papier);z-index:2}
  #page-rendezvous .chap.g .lambeau{margin-left:-34%;transform:rotate(-1.4deg)}
  #page-rendezvous .chap.d .lambeau{margin-left:auto;margin-right:-34%;transform:rotate(2.1deg)}
  @media (min-width:601px){
    #page-rendezvous .chap.d.chap-02 .lambeau{width:min(700px,calc(100% + 34%));margin-left:0;margin-right:-34%;padding-left:60px;transform:rotate(2.1deg)}
    #page-rendezvous .chap-02 .lambeau .l-menu{font-size:2.1rem}
    #page-rendezvous .chap-02 .lambeau .l-art{margin-top:14px}
  }
  #page-rendezvous .chap-03 .lambeau{transform:rotate(-.6deg)}
  #page-rendezvous .lambeau .papier{position:absolute;inset:-8px;width:calc(100% + 16px);height:calc(100% + 16px);z-index:-1;overflow:visible;filter:drop-shadow(0 22px 26px rgba(0,0,0,.55)) drop-shadow(0 3px 4px rgba(0,0,0,.35))}
  #page-rendezvous .lambeau .scotch{position:absolute;top:-8px;left:50%;width:112px;height:24px;transform:translateX(-50%) rotate(-4deg);background:linear-gradient(100deg,rgba(236,220,170,.30),rgba(246,236,196,.58) 46%,rgba(230,212,160,.32));border-top:1px solid rgba(255,250,230,.35);border-left:1px solid rgba(120,100,60,.14);border-right:1px solid rgba(120,100,60,.14);z-index:3}
  #page-rendezvous .chap-02 .lambeau .scotch{left:33%;transform:translateX(-50%) rotate(3deg)}
  #page-rendezvous .chap-03 .lambeau .scotch{left:auto;right:-16px;top:4px;transform:rotate(-28deg)}
  #page-rendezvous .lambeau>*{position:relative}
  #page-rendezvous .lambeau .l-eti{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:var(--vert-text);margin:0}
  #page-rendezvous .lambeau .l-menu{font-family:var(--display);font-style:italic;font-weight:400;font-variation-settings:"opsz" 72;font-size:1.72rem;line-height:1.12;color:var(--encre-papier);margin:12px 0 0;letter-spacing:-.005em;text-wrap:balance}
  #page-rendezvous .lambeau .l-menu a{color:inherit;text-decoration-color:rgba(51,48,31,.4);text-underline-offset:3px}
  #page-rendezvous .lambeau .l-art{font-family:var(--sans);font-weight:500;font-size:.92rem;line-height:1.5;color:var(--encre-papier);margin:12px 0 0;text-wrap:balance}
  #page-rendezvous .lambeau .l-art b{font-weight:700;white-space:nowrap}
  #page-rendezvous .nowrap{white-space:nowrap}
  html[lang="en"] #page-rendezvous .alerte-ligne .nowrap + .nowrap{white-space:normal}
  #page-rendezvous .lambeau .l-main{font-family:var(--script);font-weight:600;font-size:1.85rem;line-height:1.1;color:var(--vert-deep);margin:22px 0 0;transform:rotate(-1.6deg);transform-origin:left center;text-align:right;padding-right:6px}
  #page-rendezvous .lambeau .l-main-suite{font-size:1.15rem;margin-top:2px}
  #page-rendezvous .lambeau .btn{margin-top:20px;padding:12px 20px;font-size:.74rem}
  #page-rendezvous .chap-01 .lambeau .l-qui{font-size:1.32rem;margin-top:10px;text-wrap:wrap}
  #page-rendezvous .chap-01 .lambeau .l-main{font-size:2.3rem;margin-top:14px;line-height:1.05}
  #page-rendezvous .chap-01 .lambeau .l-main-suite{font-size:1.7rem;margin-top:6px}
  #page-rendezvous .chap-01 .lambeau .btn{margin-top:24px}
  #page-rendezvous .planning{margin-top:38px;position:relative}
  #page-rendezvous .alerte-ligne{position:relative;margin-top:30px;max-width:30em}
  #page-rendezvous .alerte-ligne p{margin:0;font-family:var(--display);font-style:italic;font-size:1.08rem;line-height:1.5;color:var(--cream);text-wrap:balance}
  #page-rendezvous .alerte-ligne form{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:baseline;margin-top:14px}
  #page-rendezvous .alerte-ligne input[type="email"]{flex:0 1 15em;min-width:0;background:transparent;border:0;border-bottom:1px solid var(--cream-45);color:var(--cream);padding:9px 2px;font:inherit;font-size:.95rem;border-radius:0}
  #page-rendezvous .alerte-ligne input[type="email"]::placeholder{color:var(--cream-70-texte)}
  #page-rendezvous .alerte-ligne input[type="email"]:focus-visible{outline:2px solid var(--cream);outline-offset:3px}
  #page-rendezvous .alerte-ligne .btn{padding:11px 20px;font-size:.72rem}
  #page-rendezvous .son-btn,#page-rendezvous .alerte-ligne button{min-height:44px;display:inline-flex;align-items:center}
  #page-rendezvous .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-align:center;vertical-align:middle}
  #page-rendezvous .alerte-ligne input[type="email"]{min-height:44px}
  #page-rendezvous .classiques{position:relative;z-index:1;padding:min(6vw,86.4px) 0 0}
  #page-rendezvous .classiques .eyebrow{max-width:1280px;margin:0 auto 26px;padding:0 40px}
  #page-rendezvous .cl-piste{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
  #page-rendezvous .cl-piste:focus-visible{outline:2px solid var(--sage-bright);outline-offset:4px}
  #page-rendezvous .cl-piste figure{margin:0;position:relative}
  #page-rendezvous .cl-piste .im{position:relative;aspect-ratio:3/4;overflow:hidden;background:#0F1512}
  #page-rendezvous .cl-piste .im img,#page-rendezvous .cl-piste .im video{width:100%;height:100%;object-fit:cover;display:block}
  #page-rendezvous .cl-piste .im::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(15,21,18,.55),rgba(15,21,18,0) 38%);pointer-events:none}
  #page-rendezvous .cl-piste figcaption{padding:16px 22px 0}
  #page-rendezvous .cl-piste figcaption .figcap{padding:0}
  #page-rendezvous .cl-piste .sous{margin:8px 0 0;font-family:var(--display);font-style:italic;font-size:.98rem;color:var(--sage-bright)}
  #page-rendezvous .cl-nav{display:none}
  #page-rendezvous .chap-02 .ph img{object-position:60% 40%}
  #page-rendezvous .chap-03 .ph img{object-position:50% 26%}
  #page-rendezvous .page-cta{margin-top:min(7vw,100.8px);background:var(--vert-deep);color:var(--cream);position:relative;overflow:hidden}
  #page-rendezvous .page-cta .wrap{display:flex;flex-wrap:wrap;gap:24px 40px;align-items:center;justify-content:space-between;padding-top:60px;padding-bottom:60px}
  #page-rendezvous .page-cta .t{font-family:var(--display);font-style:italic;font-weight:380;font-size:clamp(1.5rem,min(2.6vw,37.44px),2.2rem);line-height:1.3;max-width:20em;text-wrap:balance;margin:0}
  #page-rendezvous .page-cta .actions{display:flex;gap:12px;flex-wrap:wrap}
  #page-rendezvous .rikiki-milieu{margin:44px auto 0}
  #page-rendezvous .rikiki{font-family:var(--script);color:var(--sage-bright);font-size:1.35rem;margin:48px auto 0;transform:rotate(-1.2deg);text-align:center;padding:0 40px}
  @media (max-width:600px){
    #page-rendezvous .wrap{padding:0 6vw}
    #page-rendezvous .ouverture{height:132vw}
    #page-rendezvous .ouverture .ph{object-position:50% 35%}
    #page-rendezvous .ouverture .voile{background:linear-gradient(to top,rgba(15,21,18,.97) 0,rgba(15,21,18,.82) 20%,rgba(15,21,18,.3) 46%,rgba(15,21,18,0) 64%)}
    #page-rendezvous .ouverture .ghost{left:-2vw;top:64vw;font-size:28vw;opacity:.34}
    #page-rendezvous .ouverture .titre{bottom:10vw}
    #page-rendezvous .ouverture h1{font-size:12.2vw;margin-top:.6rem}
    #page-rendezvous .ouverture h1 .t-caps{font-size:.4em;letter-spacing:.14em}
    #page-rendezvous .ouverture .eyebrow{font-size:.7rem;letter-spacing:.18em}
    #page-rendezvous .intro{padding:18vw 0 4vw}
    #page-rendezvous .intro p{font-size:5.6vw;line-height:1.5}
    #page-rendezvous .intro .trait{height:14vw;margin-top:12vw}
    #page-rendezvous .chap{padding:0;min-height:150vw;display:flex;flex-direction:column;justify-content:flex-end;margin-top:10vw}
    #page-rendezvous .chap .ph{position:absolute;left:0;right:0;top:0;bottom:auto;height:122vw;width:100%}
    #page-rendezvous .chap.g .ph::after,#page-rendezvous .chap.d .ph::after{background:linear-gradient(to top,var(--nuit) 0,rgba(22,31,27,.97) 16%,rgba(22,31,27,.82) 32%,rgba(22,31,27,.4) 50%,rgba(22,31,27,.1) 66%,rgba(22,31,27,0) 78%),linear-gradient(to bottom,rgba(22,31,27,.35) 0,rgba(22,31,27,.12) 12%,rgba(22,31,27,0) 24%)}
    #page-rendezvous .chap h2,#page-rendezvous .chap .texte,#page-rendezvous .chap .when{text-shadow:0 1px 10px rgba(15,21,18,.75)}
    #page-rendezvous .chap .when{background:rgba(15,21,18,.35)}
    #page-rendezvous .chap .wrap{display:block;padding-top:72vw;padding-bottom:12vw}
    #page-rendezvous .chap .ph-cap,#page-rendezvous .chap.g .ph-cap{display:block;top:5vw;left:5vw;right:auto;bottom:auto;font-size:.7rem;max-width:calc(100% - 10vw)}
    #page-rendezvous .chap-01 .ph-cap{max-width:30%}
    #page-rendezvous .commandes{top:5vw;right:5vw;gap:6px}
    #page-rendezvous .son-btn{padding:10px 14px;font-size:.7rem}
    #page-rendezvous .chap-01 .ph video{object-position:50% 20%}
    #page-rendezvous .chap-03 .ph img{object-position:50% 20%}
    #page-rendezvous .chap.g .txt,#page-rendezvous .chap.d .txt{grid-column:auto}
    #page-rendezvous .chap h2{font-size:9.4vw;margin-top:14px}
    #page-rendezvous .chap .texte{font-size:.98rem;line-height:1.65;margin-top:16px}
    #page-rendezvous .proj{margin-top:9vw}
    #page-rendezvous .proj .date,#page-rendezvous .chap-01 .proj .date{font-size:15.4vw;margin-top:10px}
    #page-rendezvous .chap.g .proj .date,#page-rendezvous .chap.d .proj .date{margin-left:-.04em;margin-right:0}
    #page-rendezvous .lambeau{width:92%;margin:8vw 0 0 2%;padding:28px 22px 26px}
    #page-rendezvous .chap.g .lambeau,#page-rendezvous .chap.d .lambeau{margin-left:2%;margin-right:0;transform:rotate(-1.2deg)}
    #page-rendezvous .chap.chap-01 .lambeau{transform:rotate(-1.4deg)}
    #page-rendezvous .chap.chap-02 .lambeau{width:92%;padding-left:40px;transform:rotate(2.1deg)}
    #page-rendezvous .chap-02 .lambeau .l-menu{font-size:1.5rem}
    #page-rendezvous .chap.chap-03 .lambeau{transform:rotate(-.6deg)}
    #page-rendezvous .lambeau .l-menu{font-size:1.5rem}
    #page-rendezvous .lambeau .l-br{display:block}
    #page-rendezvous .lambeau .l-art{font-size:.9rem}
    #page-rendezvous .lambeau .l-main{font-size:1.4rem}
    #page-rendezvous .chap-01 .lambeau .l-qui{font-size:1.18rem}
    #page-rendezvous .chap-01 .lambeau .l-main{font-size:1.7rem}
    #page-rendezvous .chap-01 .lambeau .l-main-suite{font-size:1.4rem}
    #page-rendezvous .planning{margin-top:9vw}
    #page-rendezvous .alerte-ligne{margin-top:8vw;max-width:none}
    #page-rendezvous .alerte-ligne p{font-size:1rem}
    #page-rendezvous .alerte-ligne input[type="email"]{flex:1 1 10em}
    #page-rendezvous .classiques{padding:14vw 0 0}
    #page-rendezvous .classiques .eyebrow{padding:0 6vw;margin-bottom:18px}
    #page-rendezvous .cl-piste{display:flex;gap:3vw;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 6vw;scroll-padding:0 6vw;scrollbar-width:none;-webkit-overflow-scrolling:touch}
    #page-rendezvous .cl-piste:focus-visible{outline-offset:-2px}
    #page-rendezvous .cl-piste::-webkit-scrollbar{display:none}
    #page-rendezvous .cl-piste figure{flex:0 0 78vw;scroll-snap-align:start}
    #page-rendezvous .cl-piste figcaption{padding:12px 2px 0}
    #page-rendezvous .cl-piste .figcap{font-size:.7rem;letter-spacing:.12em}
    #page-rendezvous .cl-piste .sous{font-size:.92rem}
    #page-rendezvous .cl-nav{display:flex;align-items:center;justify-content:center;gap:14px;margin:22px 6vw 0;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cream-70-texte)}
    #page-rendezvous .cl-nav .pts{display:flex;gap:7px}
    #page-rendezvous .cl-nav .pts i{width:6px;height:6px;border-radius:50%;background:var(--cream);opacity:.3;transition:opacity .25s ease}
    #page-rendezvous .cl-nav .pts i.on{opacity:1}
    #page-rendezvous .page-cta{margin-top:6vw}
    #page-rendezvous .page-cta .wrap{padding-top:12vw;padding-bottom:12vw;display:block}
    #page-rendezvous .page-cta .t{font-size:6.6vw}
    #page-rendezvous .page-cta .actions{margin-top:26px;flex-direction:column}
    #page-rendezvous .page-cta .actions .btn{text-align:center;padding:15px 10px}
    #page-rendezvous .rikiki{padding:0 6vw;font-size:1.25rem;margin-top:40px}
  }
  @media (prefers-reduced-motion:reduce){
    #page-rendezvous .btn,#page-rendezvous .son-btn{transition:none}
  }
  #page-rendezvous .affiche-mur{position:relative;display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:0 36px;align-items:end;margin:46px 0 0 -34%;z-index:2}
  #page-rendezvous .aff-car{grid-column:1;position:relative;transform:rotate(-1.4deg);box-shadow:0 30px 60px -24px rgba(0,0,0,.85),0 3px 0 rgba(0,0,0,.18)}
  #page-rendezvous .aff-car .scotch{position:absolute;top:-11px;left:50%;width:112px;height:24px;transform:translateX(-50%) rotate(-4deg);background:linear-gradient(100deg,rgba(236,220,170,.30),rgba(246,236,196,.58) 46%,rgba(230,212,160,.32));border-top:1px solid rgba(255,250,230,.35);border-left:1px solid rgba(120,100,60,.14);border-right:1px solid rgba(120,100,60,.14);z-index:3}
  #page-rendezvous .aff-piste{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  #page-rendezvous .aff-piste::-webkit-scrollbar{display:none}
  #page-rendezvous .aff-piste img{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always;display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}
  #page-rendezvous .aff-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:0;background:rgba(22,31,27,.62);color:var(--cream);font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s ease;z-index:2}
  #page-rendezvous .aff-nav.prec{left:10px}
  #page-rendezvous .aff-nav.suiv{right:10px}
  #page-rendezvous .aff-nav[disabled]{opacity:0;pointer-events:none}
  #page-rendezvous .aff-nav:focus-visible,#page-rendezvous .aff-car:focus-visible{outline:2px solid var(--cream);outline-offset:3px}
  #page-rendezvous .aff-points{position:absolute;left:0;right:0;bottom:12px;display:flex;justify-content:center;gap:7px;pointer-events:none;z-index:2}
  #page-rendezvous .aff-points span{width:7px;height:7px;border-radius:50%;background:rgba(247,241,228,.5);box-shadow:0 1px 3px rgba(0,0,0,.4)}
  #page-rendezvous .aff-points span.on{background:var(--cream)}
  #page-rendezvous .aff-annot{grid-column:2;padding-bottom:10px}
  #page-rendezvous .aff-main{font-family:var(--script);font-weight:600;font-size:2.15rem;line-height:1.06;color:var(--sage-bright);margin:0;transform:rotate(-2deg);transform-origin:left center;text-wrap:balance}
  #page-rendezvous .aff-suite{font-size:1.55rem;margin-top:8px}
  #page-rendezvous .aff-annot .btn{margin-top:28px}
  @media (prefers-reduced-motion:reduce){
    #page-rendezvous .aff-nav{transition:none}
  }
  @media (max-width:600px){
    #page-rendezvous .affiche-mur{grid-template-columns:minmax(0,1fr);gap:0;margin:8vw 0 0 0}
    #page-rendezvous .aff-car{width:80vw;transform:rotate(-1.2deg)}
    #page-rendezvous .aff-annot{grid-column:1;margin-top:8vw;padding-bottom:0}
    #page-rendezvous .aff-main{font-size:1.85rem}
    #page-rendezvous .aff-suite{font-size:1.4rem}
  }

  #page-planning sup{line-height:0}
  #page-planning .wrap{max-width:1280px;margin:0 auto;padding:0 40px}
  #page-planning .defs{position:absolute;width:0;height:0;overflow:hidden}
  #page-planning .eyebrow{font-weight:700;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sage-light);display:flex;align-items:center;gap:12px;margin:0}
  #page-planning .eyebrow::before{content:"";width:26px;height:1px;background:currentColor;opacity:.6;flex:none}
  #page-planning .btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;text-decoration:none;font-weight:700;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;border-radius:2px;padding:13px 24px;transition:transform .2s ease,background .2s ease;cursor:pointer;font-family:var(--sans);border:0;line-height:1.2;text-align:center}
  #page-planning .btn:hover{transform:translateY(-2px)}
  #page-planning .btn:focus-visible{outline:2px solid var(--cream);outline-offset:3px}
  #page-planning .btn-cream{background:var(--cream);color:var(--vert-deep)}
  #page-planning .btn-line{border:1px solid var(--cream-45);color:var(--cream);background:transparent}
  #page-planning .btn-line:hover{border-color:var(--cream)}
  #page-planning .btn-vert{background:var(--vert-deep);color:var(--cream)}
  #page-planning .btn-vert:hover{background:#223A33}
  #page-planning .tete{position:relative;padding:min(11vw,158.4px) 0 min(3vw,43.2px);overflow:hidden;background:radial-gradient(ellipse 60% 50% at 78% 22%,rgba(79,121,111,.22),rgba(79,121,111,0) 70%),var(--nuit)}
  #page-planning .tete .ghost{position:absolute;right:min(1.6vw,23.04px);top:max(min(4.6vw,66.24px),calc(76px + env(safe-area-inset-top) - .15em));z-index:0;font-family:var(--display);font-style:italic;font-weight:340;font-size:clamp(5rem,min(15vw,216px),14rem);line-height:1;white-space:nowrap;color:transparent;-webkit-text-stroke:1.5px var(--cream);opacity:.32;text-shadow:0 2px 18px rgba(0,0,0,.35);pointer-events:none;user-select:none}
  #page-planning .tete .wrap{position:relative;z-index:1}
  #page-planning .tete h1{font-family:var(--display);font-weight:560;font-size:clamp(3rem,min(7vw,100.8px),6.4rem);line-height:1;letter-spacing:-.01em;margin:.9rem 0 0;text-shadow:0 2px 28px rgba(0,0,0,.55)}
  #page-planning .tete h1 .t-caps{display:block;font-size:.32em;font-weight:600;font-style:normal;text-transform:uppercase;letter-spacing:.2em;line-height:1.2;color:var(--cream);margin-bottom:.5em}
  #page-planning .tete h1 .t-ital{display:block;font-style:italic;font-weight:380;letter-spacing:-.004em;line-height:.98;color:var(--sage-bright);margin-left:-.02em}
  #page-planning .tete .intro{font-family:var(--display);font-style:italic;font-weight:370;font-variation-settings:"opsz" 60;font-size:clamp(1.25rem,min(1.7vw,24.48px),1.6rem);line-height:1.5;color:var(--cream-70);max-width:30em;margin:34px 0 0;text-wrap:balance}
  #page-planning .tete .retour{display:inline-flex;align-items:center;min-height:44px;margin-top:18px;font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--sage-light);text-decoration:underline;text-decoration-color:rgba(169,196,184,.4);text-underline-offset:6px;text-decoration-thickness:1px}
  #page-planning .tete .retour:hover{color:var(--cream);text-decoration-color:var(--cream)}
  #page-planning .tete .retour:focus-visible{outline:2px solid var(--cream);outline-offset:3px}
  #page-planning .sect-tete{display:flex;align-items:baseline;gap:18px 28px;flex-wrap:wrap}
  #page-planning .sect-tete h2{font-family:var(--display);font-weight:560;font-size:clamp(2rem,min(3.4vw,48.96px),3rem);line-height:1.05;margin:0;letter-spacing:-.008em}
  #page-planning .sect-tete .main{font-family:var(--script);font-weight:600;font-size:1.7rem;line-height:1;color:var(--sage-bright);transform:rotate(-2deg);transform-origin:left bottom;display:inline-block;margin:0}
  #page-planning .sect-tete .sous{flex:1 1 100%;margin:10px 0 0;font-family:var(--display);font-style:italic;font-size:1.02rem;color:var(--cream-70-texte)}
  #page-planning .avenir{position:relative;padding:min(5vw,72px) 0 0}
  #page-planning .soiree{margin:40px 0 0;display:grid;grid-template-columns:400px minmax(0,1fr);gap:0 56px;align-items:end}
  #page-planning .soiree .case{grid-column:1;grid-row:1;margin:0}
  #page-planning .soiree .garde{grid-column:1;grid-row:2}
  #page-planning .soiree .leg{grid-column:2;grid-row:1;max-width:34rem;padding-bottom:2px}
  #page-planning .affiche{position:relative;margin:0}
  #page-planning .affiche img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;box-shadow:0 34px 70px -30px rgba(0,0,0,.85)}
  #page-planning .soiree[data-etat="insta"] .garde{display:none}
  #page-planning .garde{margin:18px 0 0;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
  #page-planning .garde .btn{font-size:.7rem;padding:10px 18px}
  #page-planning .garde p{margin:0;font-size:.8rem;line-height:1.45;color:var(--cream-70-texte);text-wrap:balance}
  #page-planning .leg .eti{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:var(--sage-light);margin:0}
  #page-planning .leg .date{font-family:var(--display);font-style:italic;font-weight:380;font-variation-settings:"opsz" 144;font-size:clamp(2.4rem,min(4vw,57.6px),3.6rem);line-height:1;letter-spacing:-.01em;color:var(--cream);margin:12px 0 0}
  #page-planning .leg .texte{font-family:var(--display);font-weight:370;font-size:1.14rem;line-height:1.55;color:var(--cream-70);margin:18px 0 0;max-width:30em;text-wrap:pretty}
  #page-planning .leg .actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;margin:26px 0 0}
  #page-planning .lien-insta{display:inline-flex;align-items:center;min-height:44px;font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--sage-light);text-decoration:underline;text-decoration-color:rgba(169,196,184,.4);text-underline-offset:6px}
  #page-planning .lien-insta:hover{color:var(--cream)}
  #page-planning .lien-insta:focus-visible{outline:2px solid var(--cream);outline-offset:3px}
  #page-planning .alerte-ligne{margin:28px 0 0;padding:22px 0 0;border-top:1px solid rgba(247,241,228,.14)}
  #page-planning .alerte-ligne p{margin:0 0 10px;font-family:var(--display);font-style:italic;font-size:1.02rem;line-height:1.5;color:var(--cream);text-wrap:balance}
  #page-planning .alerte-ligne form{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 16px}
  #page-planning .alerte-ligne input[type="email"]{flex:0 1 16em;min-width:0;min-height:44px;background:transparent;border:0;border-bottom:1px solid rgba(247,241,228,.4);color:var(--cream);padding:8px 2px;font:inherit;font-size:1rem;border-radius:0}
  #page-planning .alerte-ligne input[type="email"]::placeholder{color:var(--cream-70-texte)}
  #page-planning .alerte-ligne input[type="email"]:focus-visible{outline:none;border-bottom-color:var(--cream)}
  #page-planning .alerte-ligne button{font-size:.7rem;padding:10px 18px}
  #page-planning .passe{position:relative;padding:min(6vw,86.4px) 0 0}
  #page-planning .mur{display:grid;grid-template-columns:repeat(5,1fr);gap:44px 26px;margin-top:36px;align-items:end}
  #page-planning .an{grid-column:1 / -1;display:flex;align-items:center;gap:24px;margin:30px 0 -10px}
  #page-planning .an:first-child{margin-top:0}
  #page-planning .an .n{font-family:var(--display);font-style:italic;font-weight:340;font-size:clamp(2.6rem,min(5vw,72px),4.4rem);line-height:1;color:transparent;-webkit-text-stroke:1.2px var(--cream);opacity:.55;white-space:nowrap;user-select:none}
  #page-planning .an.mot .n{font-size:clamp(1.9rem,min(3.4vw,48.96px),3rem);opacity:.5}
  #page-planning .an::after{content:"";flex:1;height:1px;background:rgba(247,241,228,.16)}
  #page-planning .vig{margin:0;grid-row:span 2;display:grid;grid-template-rows:subgrid;row-gap:0;align-items:end}
  #page-planning .vig figcaption{align-self:start}
  #page-planning .vig button{display:block;position:relative;width:100%;padding:0;border:0;background:none;cursor:pointer;text-align:left;color:inherit;font:inherit;border-radius:2px}
  #page-planning .vig button:focus-visible{outline:2px solid var(--cream);outline-offset:6px}
  #page-planning .vig .im{display:block;aspect-ratio:9/16;overflow:hidden;background:#0F1512;box-shadow:0 18px 40px -22px rgba(0,0,0,.85)}
  #page-planning .vig .im img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
  #page-planning .vig .im video{width:100%;height:100%;object-fit:cover}
  @media (hover:hover){
    #page-planning .vig button:hover .im img,#page-planning .vig button:focus-visible .im img{transform:scale(1.025)}
  }
  #page-planning .vig figcaption{padding:13px 2px 0}
  #page-planning .vig .t{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-70);line-height:1.55;margin:0}
  #page-planning .vig .d{font-family:var(--display);font-style:italic;font-size:.92rem;color:var(--sage-bright);margin:4px 0 0}
  #page-planning .vig .t,#page-planning .vig .d{text-wrap:balance}
  #page-planning .vig .d sup,#page-planning .lbp-cap sup{font-size:.62em;line-height:0;vertical-align:.55em}
  #page-planning dialog.lbp{border:0;padding:0;margin:0;background:rgba(15,21,18,.97);width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100vh;max-height:100dvh;color:var(--cream);inset:0;overscroll-behavior:contain}
  #page-planning dialog.lbp::backdrop{background:rgba(15,21,18,.7)}
  #page-planning .lbp-in{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:44px 70px}
  #page-planning .lbp-media{display:contents}
  #page-planning .lbp-in img,#page-planning .lbp-in video{max-width:min(88vw,620px);max-height:76vh;max-height:76dvh;width:auto;height:auto;object-fit:contain;box-shadow:0 40px 80px -30px rgba(0,0,0,.9);touch-action:pan-y}
  #page-planning .lbp-cap{margin:0;text-align:center;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-70);line-height:1.6;max-width:36em}
  #page-planning .lbp-cap .compte{display:block;font-size:.7rem;letter-spacing:.22em;color:var(--cream-70-texte);margin:0 0 4px}
  #page-planning .lbp-cap i{display:block;font-family:var(--display);font-style:italic;text-transform:none;letter-spacing:0;font-size:1rem;color:var(--sage-bright);margin-top:4px}
  #page-planning .lbp-close{position:absolute;top:16px;right:20px;background:none;border:0;color:var(--cream);font-size:1.5rem;cursor:pointer;min-width:48px;min-height:48px;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;font-family:var(--sans)}
  #page-planning .lbp-nav{position:absolute;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--cream);font-size:2.2rem;cursor:pointer;min-width:48px;min-height:48px;display:flex;align-items:center;justify-content:center;padding:0 8px;line-height:1;font-family:var(--display)}
  #page-planning .lbp-prev{left:6px}
  #page-planning .lbp-next{right:6px}
  #page-planning .lbp-close:hover,#page-planning .lbp-nav:hover{color:var(--sage-bright)}
  #page-planning .lbp-close:focus-visible,#page-planning .lbp-nav:focus-visible{outline:2px solid var(--cream);outline-offset:2px}
  #page-planning .page-cta{margin-top:min(8vw,115.2px);background:var(--vert-deep);color:var(--cream);position:relative;overflow:hidden}
  #page-planning .page-cta .wrap{display:flex;flex-wrap:wrap;gap:24px 40px;align-items:center;justify-content:space-between;padding-top:60px;padding-bottom:60px}
  #page-planning .page-cta .t{font-family:var(--display);font-style:italic;font-weight:380;font-size:clamp(1.5rem,min(2.6vw,37.44px),2.2rem);line-height:1.3;max-width:20em;text-wrap:balance;margin:0}
  #page-planning .page-cta .actions{display:flex;gap:12px;flex-wrap:wrap}
  #page-planning .rikiki{font-family:var(--script);color:var(--sage-bright);font-size:1.35rem;margin:48px auto 0;transform:rotate(-1.2deg);text-align:center;padding:0 40px}
  #page-planning .rikiki-milieu{margin:52px auto 0}
  /* la ligne penchée ne dépasse plus du bord de l’écran (débordement de 1 px sur téléphone) */
  #page-rendezvous .rikiki,#page-planning .rikiki{max-width:calc(100% - 4px)}
  @media (max-width:600px){
    #page-planning .wrap{padding:0 6vw}
    #page-planning .tete{padding:46vw 0 6vw}
    #page-planning .tete .ghost{right:auto;left:-2vw;top:11vw;font-size:27vw;opacity:.34}
    #page-planning .tete h1{font-size:12.2vw;margin-top:.6rem}
    #page-planning .tete h1 .t-caps{font-size:.4em;letter-spacing:.14em}
    #page-planning .tete .intro{font-size:5.2vw;margin-top:22px}
    #page-planning .tete .retour{margin-top:12px}
    #page-planning .sect-tete{gap:10px 16px}
    #page-planning .sect-tete h2{font-size:9vw}
    #page-planning .sect-tete .main{font-size:1.45rem}
    #page-planning .sect-tete .sous{font-size:.94rem;margin-top:6px}
    #page-planning .avenir{padding:8vw 0 0}
    #page-planning .soiree{grid-template-columns:minmax(0,1fr);gap:0;margin-top:24px}
    #page-planning .soiree .leg{grid-column:1;grid-row:3;margin-top:30px;max-width:none}
    #page-planning .leg .date{font-size:11.4vw}
    #page-planning .leg .texte{font-size:1.06rem}
    #page-planning .leg .actions{flex-direction:column;align-items:stretch;gap:6px}
    #page-planning .lien-insta{justify-content:center}
    #page-planning .alerte-ligne input[type="email"]{flex:1 1 12em}
    #page-planning .passe{padding:14vw 0 0}
    #page-planning .mur{grid-template-columns:1fr 1fr;gap:8vw 4vw;margin-top:22px}
    #page-planning .an{gap:14px;margin:4vw 0 -3vw}
    #page-planning .an .n{font-size:11vw;-webkit-text-stroke-width:1px}
    #page-planning .an.mot .n{font-size:7vw}
    #page-planning .vig figcaption{padding-top:9px}
    #page-planning .vig .t{font-size:.7rem;letter-spacing:.08em}
    #page-planning .vig .d{font-size:.86rem;margin-top:2px}
    #page-planning .page-cta{margin-top:14vw}
    #page-planning .page-cta .wrap{padding-top:12vw;padding-bottom:12vw;display:block}
    #page-planning .page-cta .t{font-size:6.6vw}
    #page-planning .page-cta .actions{margin-top:26px;flex-direction:column}
    #page-planning .page-cta .actions .btn{text-align:center;padding:15px 10px}
    #page-planning .rikiki{padding:0 6vw;font-size:1.25rem;margin-top:40px}
  }
  @media (max-width:600px){
    #page-planning .lbp-in{padding:40px 12px 104px}
    #page-planning .lbp-in img,#page-planning .lbp-in video{max-width:92vw;max-height:66vh;max-height:66dvh}
    #page-planning .lbp-nav{top:auto;bottom:calc(20px + env(safe-area-inset-bottom));transform:none;font-size:2rem}
    #page-planning .lbp-prev{left:12px}
    #page-planning .lbp-next{right:12px}
    #page-planning .lbp-close{top:auto;right:auto;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom));border:1px solid var(--cream-45);border-radius:50%;font-size:1.2rem}
  }
  @media (prefers-reduced-motion:reduce){
    #page-planning .btn,#page-planning .vig .im img,#page-planning .vig .im{transition:none}
  }
  #page-planning .carrousel{position:relative;box-shadow:0 34px 70px -30px rgba(0,0,0,.85)}
  #page-planning .soiree[data-etat="insta"] .carrousel{box-shadow:none}
  #page-planning .carrousel .piste{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  #page-planning .carrousel .piste::-webkit-scrollbar{display:none}
  #page-planning .carrousel .piste img{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always;display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;box-shadow:none}
  #page-planning .car-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:0;background:rgba(22,31,27,.62);color:var(--cream);font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s ease}
  #page-planning .car-nav.prec{left:10px}
  #page-planning .car-nav.suiv{right:10px}
  #page-planning .car-nav[disabled]{opacity:0;pointer-events:none}
  #page-planning .car-nav:focus-visible,#page-planning .carrousel:focus-visible{outline:2px solid var(--cream);outline-offset:3px}
  #page-planning .points{position:absolute;left:0;right:0;bottom:12px;display:flex;justify-content:center;gap:7px;pointer-events:none}
  #page-planning .points span{width:7px;height:7px;border-radius:50%;background:rgba(247,241,228,.45);box-shadow:0 1px 3px rgba(0,0,0,.4)}
  #page-planning .points span.on{background:var(--cream)}
  @media (prefers-reduced-motion:reduce){
    #page-planning .car-nav{transition:none}
  }

  /* tablette (601 à 960 px, hors maquette) : l’affiche et sa légende manuscrite s’empilent dans la colonne du texte */
  @media (min-width:601px) and (max-width:960px){
    #page-rendezvous .affiche-mur{grid-template-columns:minmax(0,300px);margin-left:0}
    #page-rendezvous .aff-annot{grid-column:1;margin-top:30px;padding-bottom:0}
  }
  /* le bandeau fixe du site, sur téléphone (notes d’intégration, 10.4) */
  @media (max-width:600px){
    #page-planning .tete .ghost{top:calc(68px + env(safe-area-inset-top) + 6px)}
    #page-planning .tete{padding-top:calc(68px + env(safe-area-inset-top) + 30vw)}
  }
  /* le post Instagram, après accord : Instagram dessine son propre cadre */
  #page-planning .case .instagram-media{margin:0 !important}
  #page-planning .case iframe{max-width:100%}
  /* alertes e-mail : la note de retour et la mention des données */
  #page-rendezvous .alerte-ligne .alerte-note,#page-planning .alerte-ligne .alerte-note{margin:12px 0 0;font-family:var(--sans);font-style:normal;font-size:.88rem;color:var(--sage-bright)}
  #page-rendezvous .alerte-ligne .alerte-note[hidden],#page-planning .alerte-ligne .alerte-note[hidden]{display:none}
  #page-rendezvous .alerte-ligne .alerte-note:empty,#page-planning .alerte-ligne .alerte-note:empty{margin:0}
  #page-rendezvous .alerte-ligne .alerte-mention,#page-planning .alerte-ligne .alerte-mention{margin:10px 0 0;font-family:var(--sans);font-style:normal;font-size:.74rem;line-height:1.5;color:var(--cream-70-texte)}
  #page-rendezvous .alerte-mention a,#page-planning .alerte-mention a{color:inherit;text-underline-offset:3px}
  #page-rendezvous .page-cta,#page-planning .page-cta{padding:0;display:block}
  /* 05/10/2026 audit C18 : sous 600 px, une seule règle pour les boutons d une même pile (Réserver cette soirée, Le planning complet, Me prévenir, On en parle, Afficher le post) : pleine largeur, centrés ; les liens secondaires (Instagram, vos données) restent des liens en ligne */
  @media (max-width:600px){
    #page-rendezvous .txt .btn,#page-planning .soiree .btn{display:block;width:100%;text-align:center;padding:14px 12px}
  }

  /* ---------- Bandeau de consentement, commun au site (décision d’Ange du 29/09, règles CNIL) ----------
     Papier de la maison, deux boutons de même poids ; il ne bloque pas la page. */
  .consent{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:950;width:min(calc(100% - 32px),900px);background:var(--plaster);color:var(--ink);border-radius:3px;box-shadow:0 24px 60px -18px rgba(0,0,0,.8);padding:20px 24px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 30px;align-items:center;font-family:var(--sans);line-height:1.55}
  .consent[hidden]{display:none}
  .consent h2{margin:0 0 4px;font-family:var(--display);font-style:italic;font-weight:500;font-size:1.12rem;line-height:1.25;color:var(--ink)}
  .consent p{margin:0;font-size:.88rem;line-height:1.5;color:var(--texte-doux)}
  .consent a{color:var(--vert-text);text-decoration:underline;text-underline-offset:3px;font-weight:600}
  .consent a:focus-visible,.consent button:focus-visible{outline:2px solid var(--vert-deep);outline-offset:3px;box-shadow:none}
  .c-choix{display:flex;gap:10px}
  .c-choix .btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;flex:1 1 0;min-width:8.6em;padding:12px 18px;border:0;cursor:pointer;font-family:var(--sans);line-height:1.2;text-align:center}
  .c-choix .btn:hover{transform:none;box-shadow:none}
  @media (max-width:600px){
    .consent{grid-template-columns:minmax(0,1fr);width:calc(100% - 24px);bottom:calc(12px + env(safe-area-inset-bottom));padding:18px}
  }
  /* la barre du pouce (jusqu’à 860 px) reste visible sous le bandeau */
  @media (max-width:860px){body:has(.pouce) .consent{bottom:calc(80px + env(safe-area-inset-bottom))}}
  @media print{.consent{display:none !important}}
