/* ============================================================
   La Juste Dose Pharma — app.css (v0.3.0)
   Transposition fidèle de la maquette validée accueil-v0.4.html.
   Charte v1.2 : tokens exacts, Playfair Italic = titres (≥22px),
   Montserrat = reste (corps ≥16px), mouvement transform/opacity
   une fois, pas de parallaxe, tout coupé sous reduced-motion.
   Aucune couleur improvisée — uniquement les tokens.
   ============================================================ */

:root{
  --vert:#1F4D3A; --dore:#C9942B; --dore-texte:#876114;
  --creme:#F7F0E3; --blanc-casse:#FCFAF3; --blanc:#FFFFFF;
  --encre:#22281F; --sable:#F0E6D0;
  --vert-hover:#173B2C; --gris-texte:#565B52; --gris-meta:#6B6F66;
  --alerte:#9A3324; /* rouge d'alerte charte (libellés « obligatoire » ; validation de fond en attente) */
  --bordure:#E3DCCB; --bordure-sable:#E8DFC9;
  --r-carte:16px; --r-encart:12px; --r-grand:28px;
  --t-rapide:160ms ease-out; --t-douce:340ms cubic-bezier(.22,.61,.36,1);
  --gout:clamp(20px,5vw,40px);
  --ombre-carte:0 1px 2px rgba(34,40,31,.05);
  --ombre-elev:0 22px 46px -22px rgba(31,77,58,.32);
}
*{margin:0;padding:0;box-sizing:border-box}
@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}
body{font-family:'Montserrat','Helvetica Neue',Arial,sans-serif;font-size:16px;line-height:1.7;color:var(--encre);background:var(--creme);overflow-x:hidden}
svg{display:block}
a{color:var(--vert)}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--vert);outline-offset:3px;border-radius:6px}
.conteneur{max-width:1160px;margin-inline:auto;padding-inline:var(--gout)}

h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:500;color:var(--vert);line-height:1.12}
.eyebrow{font-size:13px;letter-spacing:3px;text-transform:uppercase;font-weight:600;color:var(--dore-texte);display:inline-flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--dore);display:inline-block}
.sur-vert .eyebrow{color:var(--creme)}
.sur-vert .eyebrow::before{background:var(--dore)}

/* têtes de section */
.tete{display:grid;gap:16px;margin-bottom:clamp(38px,6vw,60px);max-width:620px}
.tete h2,.tete h1{font-size:clamp(32px,4.8vw,46px)}
.tete p{color:var(--gris-texte);font-size:17px;max-width:560px}
.tete.centre{margin-inline:auto;text-align:center}
.tete.centre .eyebrow{justify-content:center}

/* ===== HEADER (la partie de gabarit est l'élément collant) ===== */
header.wp-block-template-part{position:sticky;top:0;z-index:100}
body.admin-bar header.wp-block-template-part{top:32px}
@media (max-width:782px){body.admin-bar header.wp-block-template-part{top:46px}}
.header{position:relative;transform:translateZ(0);background:rgba(247,240,227,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--bordure)}
/* lien d'évitement (WCAG 2.4.1) : invisible hors focus clavier */
.evitement{position:absolute;left:-9999px;top:10px;z-index:200;background:var(--creme);color:var(--vert);font-weight:600;font-size:15px;text-decoration:none;padding:12px 18px;border-radius:8px;border:1.5px solid var(--vert)}
.evitement:focus{left:12px}
.header .barre{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:13px}
.logo svg{height:56px;width:auto}
.nav{display:flex;gap:clamp(16px,2.4vw,32px);align-items:center}
.nav a{font-size:14px;font-weight:600;text-decoration:none;padding-block:8px;position:relative}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--dore);transform:scaleX(0);transform-origin:left center;transition:transform var(--t-rapide)}
.nav a:hover::after,.nav a:focus-visible::after{transform:scaleX(1)}
.nav .nav-cta{background:var(--vert);color:var(--creme);padding:9px 18px;border-radius:999px;transition:transform var(--t-rapide)}
.nav .nav-cta::after{display:none}
.nav .nav-cta:hover{background:var(--vert-hover);transform:translateY(-1px)}
.burger{display:none;background:none;border:0;cursor:pointer;padding:10px;color:var(--vert)}
@media (max-width:919px){
  .logo svg{height:46px}
  /* sans JS : menu déplié sous la barre (la nav reste accessible) ; avec JS : burger + panneau */
  html:not(.js) .header .barre{flex-wrap:wrap}
  html:not(.js) .nav{position:static;flex-direction:column;align-items:stretch;flex-basis:100%;padding-bottom:14px}
  .js .nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--creme);border-bottom:1px solid var(--bordure);flex-direction:column;align-items:stretch;padding:8px var(--gout) 20px}
  .js .nav.ouvert{display:flex}
  .nav a{font-size:17px;padding:14px 4px;border-bottom:1px solid var(--bordure)}
  .nav a:last-child{border-bottom:0}
  .nav .nav-cta{text-align:center;margin-top:10px}
  .js .burger{display:block}
}

/* ===== boutons ===== */
.btn{display:inline-flex;align-items:center;gap:10px;font:inherit;font-size:15px;font-weight:600;letter-spacing:.3px;text-decoration:none;border-radius:999px;padding:16px 32px;cursor:pointer;border:0;transition:transform var(--t-rapide)}
.btn:active{transform:scale(.97)}
.btn .fleche{transition:transform var(--t-rapide)}
.btn:hover .fleche{transform:translateX(5px)}
.btn-plein{background:var(--vert);color:var(--creme);box-shadow:0 10px 22px -12px rgba(31,77,58,.6)}
.btn-plein:hover{background:var(--vert-hover);transform:translateY(-2px);box-shadow:0 16px 30px -14px rgba(31,77,58,.7)}
.btn-ligne{background:transparent;color:var(--vert);border:1.5px solid var(--vert);padding:14px 28px}
.btn-ligne:hover{background:rgba(31,77,58,.07);transform:translateY(-2px)}
.sur-vert .btn-creme{background:var(--creme);color:var(--vert)}
.sur-vert .btn-creme:hover{background:var(--blanc);transform:translateY(-2px)}

/* ===== HÉROS (asymétrique) ===== */
/* padding-block:0 neutralise le padding hérité de `main section` (l.125) en HAUT et en BAS :
   sinon le héros cumule l'air de la section ET du conteneur (sous le header collant, et avant
   la section « Trois portes »). Le conteneur seul gère l'air, compact et symétrique. */
.hero{position:relative;background:radial-gradient(120% 120% at 85% 0%, var(--blanc-casse) 0%, var(--creme) 55%);padding-block:0}
.hero .conteneur{display:grid;grid-template-columns:1.04fr .96fr;gap:clamp(32px,5vw,72px);align-items:center;padding-block:clamp(32px,5vw,72px)}
.hero-txt h1{font-size:clamp(40px,6vw,68px);margin:18px 0 0;max-width:14ch}
.hero-txt .promesse{font-size:clamp(17px,2vw,20px);color:var(--gris-texte);max-width:36ch;margin-top:22px}
.hero-txt .actions{margin-top:34px;display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.hero-txt .reassure{margin-top:20px;font-size:13.5px;color:var(--gris-texte);display:flex;gap:16px;flex-wrap:wrap}
.hero-txt .reassure span{display:inline-flex;align-items:center;gap:7px}
.hero-txt .reassure svg{color:var(--vert)}

/* panneau illustré du héros */
.hero-vis{position:relative;aspect-ratio:1/1;max-width:520px;justify-self:center;width:100%}
/* Dégradé de verts déjà présents dans la charte (cat-medoc) + liseré crème intérieur :
   donne de la profondeur au panneau sans improviser de couleur. */
.hero-panneau{position:absolute;inset:0;background:linear-gradient(160deg,#27583f 0%,var(--vert) 52%,var(--vert-hover) 100%);border-radius:var(--r-grand);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(247,240,227,.08)}
.hero-illus{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--creme)}
/* halo discret derrière l'icône : la met en valeur, reste visible sous la vidéo
   (fond noir éliminé par mix-blend-mode:lighten, voir plus bas) */
.hero-illus::before{content:"";position:absolute;inset:0;margin:auto;width:56%;aspect-ratio:1/1;border-radius:999px;background:radial-gradient(closest-side,rgba(247,240,227,.11),rgba(247,240,227,0) 74%)}
/* Icône animée du héros (morphing mortier ⇄ croix, boucle continue).
   Même principe que les vignettes des cartes mais inversé : la vidéo est un trait
   crème sur fond noir ; sous mix-blend-mode:lighten le noir perd partout contre le
   vert du panneau (fond invisible sans canal alpha), seul le trait crème reste.
   L'image fixe (même traitement) s'affiche par défaut ; la vidéo ne la remplace
   qu'avec JS et hors prefers-reduced-motion. */
.hero-illus .ic-fixe,
.hero-illus .ic-anim{position:relative;width:62%;height:auto;mix-blend-mode:lighten}
.hero-illus .ic-anim{display:none}
@media (prefers-reduced-motion: no-preference){
  .js .hero-illus .ic-fixe{display:none}
  .js .hero-illus .ic-anim{display:block}
}
/* chips flottants */
.chip{position:absolute;background:var(--blanc);border:1px solid var(--bordure-sable);border-radius:16px;padding:13px 17px;box-shadow:var(--ombre-elev);display:flex;align-items:center;gap:12px;font-size:15px;font-weight:700;color:var(--vert)}
/* pastille = icône trait continu de la série : déclinaison verte (-vert.webp) sur les
   chips blancs, crème d'origine sur le chip sombre. L'image porte son propre fond,
   on ne fait que l'arrondir ; le background n'est qu'un fondu de chargement. */
.chip .ic{width:40px;height:40px;border-radius:11px;background:var(--vert);overflow:hidden;flex:0 0 auto}
.chip .ic img{display:block;width:100%;height:100%}
.chip small{display:block;font-weight:500;color:var(--gris-texte);font-size:12.5px;margin-top:1px}
.chip-1{top:13%;left:-7%}
.chip-2{bottom:15%;right:-9%}
.chip-3{bottom:-4%;left:14%;background:var(--vert);color:var(--creme);border-color:rgba(247,240,227,.24)}
.chip-3 .ic{background:var(--creme)}
.chip-3 small{color:var(--creme);opacity:.82}
@media (max-width:919px){
  .hero .conteneur{grid-template-columns:1fr;text-align:center}
  .hero-txt h1,.hero-txt .promesse{max-width:none;margin-inline:auto}
  .hero-txt .actions,.hero-txt .reassure{justify-content:center}
  /* mobile : on masque le grand visuel illustré (gain de hauteur, accès direct au contenu).
     La grille n'a plus qu'une colonne (le texte) : aucun vide créé. Desktop inchangé (≥920). */
  .hero-vis{display:none}
  .eyebrow{justify-content:center}
}
@media (max-width:520px){.chip-1{left:-2%}.chip-2{right:-2%}.chip span{display:none}.chip{padding:12px}}

/* séparateur trait gradué */
.sep{display:flex;justify-content:center;padding-block:clamp(28px,5vw,44px)}
.sep svg{width:min(440px,80%);color:var(--vert)}

/* ===== sections ===== */
main section{padding-block:clamp(64px,9vw,108px)}
.s-piliers{background:var(--blanc-casse)}
.s-equipe{background:var(--blanc-casse)}
.s-actu{background:var(--creme)}
.s-boutique{background:var(--creme)}

.grille-3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.6vw,30px)}
@media (max-width:919px){.grille-3{grid-template-columns:1fr;max-width:460px;margin-inline:auto}}

/* cartes piliers */
.carte{background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--r-carte);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--ombre-carte);transition:transform var(--t-douce)}
.carte:hover{transform:translateY(-6px);box-shadow:var(--ombre-elev)}
.carte .vignette{background:var(--creme);border-bottom:1px solid var(--bordure-sable);padding:26px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.carte .vignette .grand-ic{width:62px;height:62px;color:var(--vert);position:relative;z-index:1;transition:transform var(--t-douce)}
.carte:hover .vignette .grand-ic{transform:scale(1.08) rotate(-3deg)}
/* Icône animée « trait continu » (assets/icones/) : une image fixe + une vidéo.
   L'image fixe porte l'icône TERMINÉE — c'est elle qui s'affiche si le JS est coupé
   ou si le visiteur refuse le mouvement. La vidéo ne prend sa place que si le trait
   peut réellement se dessiner ; son poster est un crème uni, donc la vignette paraît
   vide jusqu'à la lecture (sans poster, une <video> risque un carré noir, que darken
   rendrait catastrophique). On ne montre jamais l'icône terminée avant de la dessiner :
   elle semblerait s'effacer pour se redessiner.
   mix-blend-mode:darken : le fond des médias (Kling le rend plus clair, ~252,249,235)
   est au-dessus du crème de la vignette (247,240,227), qui gagne donc partout sur le
   fond — seul le trait vert reste, sans canal alpha, et le cercle sable reste visible
   derrière. La marge négative fait déborder le média dans le padding : la vignette
   garde exactement la hauteur des cartes restées au picto SVG (boîte de 62px), sans
   quoi les titres se désaligneraient d'une carte à l'autre. */
.carte .vignette .ic-fixe,
.carte .vignette .ic-anim{width:96px;height:96px;margin-block:-17px;position:relative;z-index:1;display:block;mix-blend-mode:darken;transition:transform var(--t-douce)}
.carte:hover .vignette .ic-fixe,
.carte:hover .vignette .ic-anim{transform:scale(1.06)}
.carte .vignette .ic-anim{display:none}
@media (prefers-reduced-motion: no-preference){
  .js .carte .vignette .ic-fixe{display:none}
  .js .carte .vignette .ic-anim{display:block}
}
.carte .vignette::after{content:"";position:absolute;right:-30px;bottom:-30px;width:120px;height:120px;border-radius:999px;background:var(--sable);opacity:.6}
.carte .corps{padding:clamp(22px,3vw,30px);display:flex;flex-direction:column;gap:14px;flex-grow:1}
.carte h3,.carte h2{font-size:25px}
.carte .corps p{color:var(--gris-texte);font-size:15.5px;flex-grow:1}
.lien-fleche{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;text-decoration:none;color:var(--vert);margin-top:4px}
.lien-fleche span{position:relative}
.lien-fleche span::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;background:var(--dore);transform:scaleX(0);transform-origin:left;transition:transform var(--t-rapide)}
.lien-fleche:hover span::after{transform:scaleX(1)}
.lien-fleche svg{transition:transform var(--t-rapide)}
.lien-fleche:hover svg{transform:translateX(4px)}
/* carte entièrement cliquable (ex. hub Jeux) : la carte est un <a>, « Jouer » devient un <span>.
   Un seul lien focusable (anneau vert sur toute la carte) ; le repère s'anime au survol de la carte. */
a.carte{text-decoration:none;color:var(--encre)}
a.carte:hover .lien-fleche span::after{transform:scaleX(1)}
a.carte:hover .lien-fleche svg{transform:translateX(4px)}

/* ===== NEWSLETTER ===== */
.s-news{background:var(--vert);color:var(--creme);position:relative;overflow:hidden}
.s-news .filigrane{position:absolute;left:-6%;top:50%;transform:translateY(-50%);width:340px;color:rgba(247,240,227,.07);pointer-events:none}
.s-news .duo{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,64px);align-items:center}
@media (max-width:919px){.s-news .duo{grid-template-columns:1fr}}
.s-news h2{color:var(--creme);font-size:clamp(30px,4.4vw,42px);margin-top:14px}
.s-news .argu{margin-top:22px;display:grid;gap:12px;font-size:15.5px}
.s-news .argu li{list-style:none;display:flex;gap:12px;align-items:baseline}
.s-news .argu li svg{flex:0 0 auto;color:var(--creme)}
.carte-form{background:var(--blanc);color:var(--encre);border-radius:var(--r-carte);padding:clamp(26px,3.5vw,38px);box-shadow:0 30px 70px -30px rgba(34,40,31,.5)}
.carte-form .titre-f{font-family:'Playfair Display',serif;font-style:italic;font-size:23px;color:var(--vert);margin-bottom:20px}
.champ{display:grid;gap:6px;margin-bottom:16px;text-align:left}
.champ label{font-size:12px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--gris-texte)}
.champ input{width:100%;padding:14px 16px;font:inherit;font-size:16px;color:var(--encre);background:var(--blanc-casse);border:1px solid var(--bordure);border-radius:var(--r-encart)}
.champ input:focus-visible{outline:none;border-color:var(--vert);box-shadow:0 0 0 3px var(--vert)}
.carte-form .btn{width:100%;justify-content:center;margin-top:6px}
.carte-form .note{margin-top:14px;font-size:12.5px;color:var(--gris-texte);line-height:1.55}

/* ===== ÉQUIPE (cartes portrait sur décors de l'officine virtuelle) ===== */
/* Introduction élargie localement (65-80 caractères par ligne) : le conteneur
   global et les .tete des autres sections ne bougent pas. */
.s-equipe .tete{max-width:840px}
.s-equipe .tete p{max-width:680px}
.equipe-grille{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2vw,26px)}
@media (max-width:1023px){.equipe-grille{grid-template-columns:repeat(2,1fr);gap:22px;max-width:720px;margin-inline:auto}}
@media (max-width:619px){.equipe-grille{grid-template-columns:1fr;max-width:380px}}
.perso{background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--r-carte);overflow:hidden;box-shadow:var(--ombre-carte);transition:transform var(--t-douce),box-shadow var(--t-douce)}
/* rythme décalé : cartes 2 et 4, dès la grille à 2 colonnes */
@media (min-width:620px){.perso.decale{transform:translateY(26px)}}
/* Portrait : décor (map de l'officine) + voile de contraste + personnage en deux
   calques superposés. Ratio fixe : aucun décalage de mise en page, et la variante
   précharge avec la carte (opacity:0, pas display:none). */
.perso .portrait{position:relative;aspect-ratio:4/3.4;background:linear-gradient(160deg,var(--vert) 0%,var(--vert-hover) 100%);overflow:hidden}
.perso .portrait .decor{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.perso .portrait::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,59,44,.18) 0%,rgba(23,59,44,.05) 42%,rgba(23,59,44,.34) 100%);pointer-events:none}
.perso .portrait .avatar{position:absolute;left:50%;bottom:0;transform:translateX(-50%);height:96%;width:auto;z-index:1;filter:drop-shadow(0 12px 26px rgba(34,40,31,.35))}
.perso .portrait .avatar-alt{opacity:0}
/* Survol : pointeurs fins uniquement (rien ne dépend du survol au tactile) */
@media (hover:hover) and (pointer:fine){
  .perso:hover{transform:translateY(-6px);box-shadow:var(--ombre-elev)}
  .perso:hover .portrait .avatar{transform:translateX(-50%) translateY(-4px) scale(1.02)}
}
@media (hover:hover) and (pointer:fine) and (min-width:620px){
  .perso.decale:hover{transform:translateY(20px)}
}
/* Fondu croisé visuel par défaut -> variante, coupé sous reduced-motion */
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .perso .portrait .avatar{transition:opacity var(--t-douce),transform var(--t-douce)}
  .perso:hover .portrait .avatar-base{opacity:0}
  .perso:hover .portrait .avatar-alt{opacity:1}
}
.perso .infos{padding:22px clamp(18px,2.4vw,26px) 26px}
.perso h3{font-size:26px}
.perso .role{display:block;font-size:11.5px;letter-spacing:2px;text-transform:uppercase;font-weight:600;color:var(--dore-texte);margin:6px 0 14px}
.perso .cite{font-family:'Playfair Display',serif;font-style:italic;font-size:22px;color:var(--encre);line-height:1.4;padding-left:14px;border-left:3px solid var(--dore)}
/* micro-lien vers la fiche personnage ; .a-venir = page pas encore créée
   (URLs centralisées dans ljd_fiches_personnages(), functions.php) */
.perso .fiche-lien{display:inline-block;margin-top:16px;font-size:12.5px;letter-spacing:.6px;font-weight:600;color:var(--vert);text-decoration:underline;text-underline-offset:3px}
.perso a.fiche-lien:hover{color:var(--vert-hover)}
.perso .fiche-lien.a-venir{color:var(--gris-texte);text-decoration:none;cursor:default}
/* Quatuor de l'accueil : « Découvrir X » aligné à la même hauteur sur les 4 cartes
   (retour Joseph 24/07, déjà appliqué sur /officine/). On retire le décalage en
   quinconce et on pousse le lien en bas de chaque carte (grille à hauteur égale). */
.s-equipe .equipe-grille .perso{display:flex;flex-direction:column}
.s-equipe .equipe-grille .perso .portrait{flex:0 0 auto}
.s-equipe .equipe-grille .perso .infos{flex:1;display:flex;flex-direction:column}
.s-equipe .equipe-grille .perso .infos .fiche-lien{margin-top:auto;padding-top:24px}
@media (min-width:620px){.s-equipe .equipe-grille .perso.decale{transform:none}}
@media (hover:hover) and (pointer:fine) and (min-width:620px){.s-equipe .equipe-grille .perso.decale:hover{transform:translateY(-6px)}}
.s-equipe .actions{margin-top:clamp(40px,6vw,58px);display:flex;justify-content:center}

/* ===== ACTU ===== */
.carte-art{text-decoration:none;color:var(--encre)}
.carte-art .vignette{aspect-ratio:16/9;border-bottom:1px solid var(--bordure-sable);color:var(--creme)}
.carte-art .vignette.cat-medoc{background:linear-gradient(135deg,#27583f,#1F4D3A)}
.carte-art .vignette.cat-officine{background:linear-gradient(135deg,#2c5a45,#214f3b)}
.carte-art .vignette.cat-digital{background:linear-gradient(135deg,#1f4d3a,#173b2c)}
.carte-art .vignette .grand-ic{width:54px;height:54px}
.carte-art .vignette::after{background:rgba(247,240,227,.08)}
.carte-art .meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.carte-art .date{font-size:12px;font-weight:600;color:var(--gris-texte)}
.carte-art .cat{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;color:var(--dore-texte)}
.carte-art h3{font-size:22px;line-height:1.3}
.carte-art .corps p{font-size:14.5px}
.s-actu .actions{margin-top:clamp(40px,6vw,54px);display:flex;justify-content:center}

/* ===== Hub « Dose d'actu » (/articles/) — refonte en cartes (#9) ===== */
.art-hub-tete{max-width:640px;margin-bottom:clamp(28px,5vw,46px)}
.art-hub-tete h1{font-size:clamp(32px,5vw,46px);line-height:1.16}
.art-hub-tete p:not(.eyebrow){color:var(--gris-texte);font-size:17px;margin-top:12px}
.art-hub .wp-block-post-template{gap:clamp(18px,2.6vw,28px)}
.carte-art-item{position:relative;display:flex;flex-direction:column;gap:8px;background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--r-carte);padding:clamp(20px,3vw,28px);box-shadow:var(--ombre-carte);transition:transform var(--t-douce),box-shadow var(--t-douce)}
.carte-art-item:hover{transform:translateY(-4px);box-shadow:var(--ombre-elev)}
.carte-art-item .art-item-cat{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;color:var(--dore-texte)}
.carte-art-item .art-item-cat a{color:var(--dore-texte);text-decoration:none}
/* titre Playfair : interlignage relevé (1.25) — corrige les titres tassés sur 2 lignes (#9) */
.carte-art-item .art-item-titre{font-size:clamp(22px,2.4vw,25px);line-height:1.25;color:var(--vert);margin:0}
.carte-art-item .art-item-titre a{color:var(--vert);text-decoration:none}
.carte-art-item .art-item-titre a::after{content:"";position:absolute;inset:0}
.carte-art-item .art-item-date{font-size:12.5px;font-weight:600;color:var(--gris-texte)}
.carte-art-item .wp-block-post-excerpt{margin:0;font-size:14.5px;line-height:1.6;color:var(--gris-texte)}
/* lien étiré sur le titre = toute la carte cliquable : on masque le « lire la suite » (2e lien superflu) */
.carte-art-item .wp-block-post-excerpt__more-text{display:none}
.art-hub .wp-block-query-pagination{margin-top:clamp(28px,5vw,40px);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px}
.art-hub .wp-block-query-pagination-numbers{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px}
.art-hub .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 13px;border:1px solid var(--bordure);border-radius:12px;color:var(--vert);font-weight:600;text-decoration:none;transition:background-color var(--t-rapide),border-color var(--t-rapide),color var(--t-rapide)}
.art-hub a.page-numbers:hover{background:var(--blanc-casse);border-color:var(--vert)}
.art-hub .page-numbers.current{background:var(--vert);border-color:var(--vert);color:var(--creme)}
.art-hub .page-numbers.dots{border-color:transparent;min-width:auto;padding:0 4px}
.art-hub .wp-block-query-pagination-previous,.art-hub .wp-block-query-pagination-next{display:inline-flex;align-items:center;gap:7px;height:42px;padding:0 18px;border:1.5px solid var(--vert);border-radius:999px;color:var(--vert);font-weight:600;text-decoration:none;transition:background-color var(--t-rapide),transform var(--t-rapide)}
.art-hub .wp-block-query-pagination-previous:hover,.art-hub .wp-block-query-pagination-next:hover{background:rgba(31,77,58,.07);transform:translateY(-1px)}

/* ===== BOUTIQUE ===== */
.boutique-encart{position:relative;background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--r-grand);overflow:hidden;display:grid;grid-template-columns:1fr .9fr;gap:0}
@media (max-width:780px){.boutique-encart{grid-template-columns:1fr}}
.boutique-encart .texte{padding:clamp(34px,5vw,56px)}
.boutique-encart h2{font-size:clamp(28px,4vw,40px);margin:14px 0}
.boutique-encart p{color:var(--gris-texte);max-width:42ch;margin-bottom:28px}
.boutique-encart .visuel{background:linear-gradient(150deg,var(--vert),var(--vert-hover));display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;min-height:240px;color:var(--creme)}
.boutique-encart .visuel .grand-ic{width:46%;max-width:180px}
.boutique-encart .visuel .wm{position:absolute;left:-12%;top:-14%;width:55%;color:rgba(247,240,227,.1)}
.boutique-encart .ruban{position:absolute;top:22px;right:-46px;transform:rotate(40deg);background:var(--vert);color:var(--creme);border-block:2px solid var(--dore);font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:700;padding:7px 58px;z-index:2}

/* ===== FOOTER ===== */
.footer{background:var(--vert);color:var(--creme);padding-block:clamp(56px,8vw,84px) 34px;position:relative;overflow:hidden}
.footer a{color:var(--creme);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}
.footer a:hover{text-decoration-color:var(--dore)}
.footer a:focus-visible{outline-color:var(--creme)}
.footer .colonnes{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:clamp(28px,5vw,64px)}
@media (max-width:919px){
  .footer{padding-block:44px 28px}
  .footer .colonnes{grid-template-columns:1fr;gap:30px}
  .footer .barre-bas{margin-top:30px;padding-top:20px}
}
/* Bloc marque : le logo complet du site en variante crème (currentColor), à la place
   de l'ancien duo monogramme + nom en texte. Le nom reste accessible via l'aria-label
   du SVG ; le repère doré du trait de justesse est conservé tel quel. */
.footer .logo-pied{color:var(--creme)}
.footer .logo-pied svg{width:min(190px,100%);height:auto}
@media (max-width:600px){
  .footer .logo-pied svg{width:168px}
}
.footer .pitch{font-size:14.5px;opacity:.85;max-width:34em;margin-top:14px}
.footer h2{font-family:'Montserrat',sans-serif;font-style:normal;font-size:12px;letter-spacing:2px;text-transform:uppercase;font-weight:600;color:var(--creme);margin-bottom:18px;opacity:.8}
.footer ul{list-style:none;display:grid;gap:11px;font-size:14.5px}
.footer .reseaux{display:flex;gap:12px}
.footer .reseaux a{width:44px;height:44px;border-radius:999px;background:var(--creme);color:var(--vert);display:flex;align-items:center;justify-content:center;transition:transform var(--t-rapide)}
.footer .reseaux a:hover{transform:translateY(-3px)}
.footer .barre-bas{margin-top:clamp(40px,6vw,56px);padding-top:26px;border-top:1px solid rgba(247,240,227,.18);text-align:center;font-size:13px;opacity:.82;max-width:64em;margin-inline:auto}

/* ===== Mention IA globale (au-dessus du footer, tout le site) — discrète mais lisible (V3) ===== */
.ia-mention{background:var(--sable);border-top:1px solid var(--bordure-sable)}
.ia-mention p{margin:0 auto;padding-block:14px;font-size:12.5px;line-height:1.55;color:var(--gris-texte);text-align:center}

/* ===== ARTICLE (gabarit Dose d'Actu — refonte v0.4.0) ===== */
.art-hero,.art-enveloppe{ -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.art-hero h1,.art-contenu h2,.art-contenu h3{text-wrap:balance}
.art-contenu p,.art-contenu li{text-wrap:pretty}

/* barre de progression de lecture (créée par app.js, transform pur) */
.header .progress{position:absolute;left:0;right:0;bottom:-3px;height:3px;background:var(--dore);transform:scaleX(0);transform-origin:left center;pointer-events:none}

/* bandeau d'article */
.art-hero{background:linear-gradient(168deg,var(--vert) 0%,var(--vert-hover) 100%);color:var(--creme);position:relative;overflow:hidden;padding:clamp(48px,7vw,84px) 0 clamp(120px,14vw,170px)}
.art-hero .filigrane{position:absolute;right:-8%;top:-18%;width:42%;color:rgba(247,240,227,.07);pointer-events:none}
.art-hero .conteneur{position:relative;max-width:880px;margin-inline:0;margin-left:auto;margin-right:auto}
.art-badges{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.badge-cat-liste a{display:inline-block;background:var(--creme);color:var(--vert);font-size:11.5px;letter-spacing:2px;text-transform:uppercase;font-weight:700;padding:7px 16px;border-radius:999px;text-decoration:none}
.badge-format-liste{display:flex;gap:8px;flex-wrap:wrap}
.badge-format-liste a{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(247,240,227,.4);color:var(--creme);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;padding:6px 14px;border-radius:999px;text-decoration:none}
.badge-format-liste a::before{content:"";width:6px;height:6px;border-radius:99px;background:var(--dore)}
/* hub /jeux/ : badge d'accès des jeux connectés (indicateur doré doublé d'un libellé, règle charte) + CTA compte */
.badge-acces{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;background:var(--sable);color:var(--dore-texte);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;padding:6px 14px;border-radius:999px}
.badge-acces::before{content:"";width:6px;height:6px;border-radius:99px;background:var(--dore)}
.cta-connectes{display:flex;gap:12px;flex-wrap:wrap;margin-top:auto}
.cta-connectes .btn{font-size:14px;padding:13px 24px}

/* Bandeau d'accès pleine largeur (ex. /fiches/ → catalogue des fiches médicaments) : carte
   cliquable dans l'esprit des cartes d'aires, mais sur toute la largeur, pour mettre l'accent. */
.fiches-bandeau{display:flex;align-items:center;gap:20px;width:100%;background:var(--vert);color:var(--creme);border-radius:var(--r-carte);padding:22px 28px;margin:22px 0 8px;text-decoration:none;box-shadow:0 12px 26px -16px rgba(31,77,58,.55);transition:transform var(--t-rapide),box-shadow var(--t-rapide)}
.fiches-bandeau:hover{transform:translateY(-2px);box-shadow:0 18px 34px -18px rgba(31,77,58,.65)}
.fiches-bandeau:focus-visible{outline:3px solid var(--dore);outline-offset:3px}
.fiches-bandeau .fb-ic{flex:0 0 auto;width:52px;height:52px;border-radius:14px;background:rgba(247,240,227,.14);display:flex;align-items:center;justify-content:center}
/* icône en CSS (mask) : WordPress filtre les SVG inline du contenu de page (kses) */
.fiches-bandeau .fb-ic::before{content:"";width:28px;height:28px;background:var(--creme);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h9l5 5v11a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z'/%3E%3Cpath d='M14 4v5h5'/%3E%3Cpath d='M8 13h8M8 17h6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h9l5 5v11a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z'/%3E%3Cpath d='M14 4v5h5'/%3E%3Cpath d='M8 13h8M8 17h6'/%3E%3C/svg%3E") center/contain no-repeat}
.fiches-bandeau .fb-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.fiches-bandeau .fb-txt b{font-size:19px;font-weight:600;line-height:1.25}
.fiches-bandeau .fb-txt small{font-size:14px;color:var(--creme);opacity:.86;line-height:1.4}
.fiches-bandeau .fb-fleche{flex:0 0 auto;color:var(--creme);font-size:26px;line-height:1;transition:transform var(--t-rapide)}
.fiches-bandeau:hover .fb-fleche{transform:translateX(5px)}
.fiches-bandeau .fb-lien{display:none} /* mobile uniquement : repère « lien » du bandeau */
@media (max-width:600px){
  .fiches-bandeau{gap:14px;padding:18px 20px;margin-top:18px}
  .fiches-bandeau .fb-ic{display:none} /* texte seul sur mobile (retour Joseph 13/07) */
  .fiches-bandeau .fb-txt b{font-size:17px}
  .fiches-bandeau .fb-fleche{display:none}
  .fiches-bandeau .fb-lien{display:inline-block;color:var(--creme);font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:3px;margin-top:4px}
}
.art-hero .wp-block-post-title{color:var(--creme);font-size:clamp(30px,4.6vw,52px);line-height:1.2;max-width:21ch;margin:0}
.art-meta{margin-top:20px;display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;font-size:13px;color:rgba(247,240,227,.85)}
.art-meta .wp-block-post-date,.art-meta .temps-lecture{display:inline-flex;align-items:center;background:rgba(247,240,227,.12);padding:6px 14px;border-radius:999px;font-weight:600;color:var(--creme)}
.art-meta .wp-block-post-date::before{content:"Mise à jour le\00a0"}
.art-trait{display:block;width:min(320px,60%);color:var(--creme);margin-top:26px}

/* carte de lecture chevauchante */
.art-enveloppe{position:relative;z-index:2;overflow-x:clip;margin-top:clamp(-110px,-9vw,-70px);padding-bottom:clamp(56px,8vw,96px)}
.art-carte{min-width:0;background:var(--blanc-casse);border:1px solid var(--bordure);border-radius:var(--r-grand);box-shadow:0 30px 80px -38px rgba(34,40,31,.45);padding:clamp(24px,4vw,56px)}
.art-grille{display:grid;grid-template-columns:216px minmax(0,1fr);gap:clamp(28px,4vw,56px)}
@media (max-width:980px){.art-grille{grid-template-columns:minmax(0,1fr)}.toc{display:none}}

/* sommaire collant (généré par app.js depuis les h2[id]) */
.toc{align-self:start;position:sticky;top:96px}
.toc .toc-titre{font-size:11.5px;letter-spacing:2.5px;text-transform:uppercase;font-weight:700;color:var(--dore-texte);margin-bottom:14px;display:flex;align-items:center;gap:9px}
.toc .toc-titre::before{content:"";width:22px;height:2px;background:var(--dore)}
.toc ol{list-style:none;display:grid;padding:0;margin:0}
.toc a{display:block;font-size:13.5px;line-height:1.45;color:var(--gris-texte);text-decoration:none;padding:7px 0 7px 14px;border-left:2px solid var(--bordure)}
.toc a:hover{color:var(--vert)}
.toc a.actif{color:var(--vert);font-weight:600;border-left:2px solid var(--dore)}

/* corps de lecture */
.art-contenu{min-width:0;overflow-wrap:break-word;max-width:68ch;font-size:16.5px;line-height:1.78}
.art-contenu .wp-block-post-content>p{margin-bottom:18px}
.art-contenu h2{font-size:clamp(24px,3vw,31px);line-height:1.25;margin:46px 0 16px;position:relative;padding-top:16px}
.art-contenu h2::before{content:"";position:absolute;top:0;left:0;width:30px;height:2.5px;background:var(--dore)}
.art-contenu .wp-block-post-content>h2:first-child,.art-contenu .accroche-comptoir+h2{margin-top:8px}
.art-contenu h3{font-size:22px;line-height:1.3;margin:30px 0 10px}
.art-contenu ul,.art-contenu ol{padding-left:22px;margin-bottom:18px;display:grid;gap:9px}
.art-contenu .wp-block-post-content strong{color:var(--vert)}

/* accroche comptoir — Sam */
.accroche-comptoir{display:grid;grid-template-columns:76px minmax(0,1fr);gap:18px;align-items:center;background:var(--sable);border:1px solid var(--bordure-sable);border-radius:18px;padding:20px 24px;margin-bottom:26px}
.medaillon{width:76px;height:76px;border-radius:999px;background:linear-gradient(160deg,var(--vert),var(--vert-hover));border:3px solid var(--blanc);box-shadow:0 8px 18px -8px rgba(34,40,31,.4);overflow:hidden;flex:none}
.medaillon img{width:100%;height:100%;object-fit:cover;object-position:top;margin:0}
.accroche-comptoir blockquote{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:22px;line-height:1.42;color:var(--encre);margin:0;padding:0;border:0}
.accroche-comptoir .qui{display:block;margin-top:8px;font-family:'Montserrat',sans-serif;font-style:normal;font-size:11.5px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--dore-texte)}

/* formule en carte */
.formule{background:var(--blanc);border:1px solid var(--bordure);border-left:4px solid var(--dore);border-radius:0 14px 14px 0;padding:18px 22px;margin:18px 0 22px;font-size:17px}
.formule strong{font-variant-numeric:tabular-nums}

/* tableaux : carte arrondie, chiffres tabulaires */
.tbl{border:1px solid var(--bordure);border-radius:16px;overflow:hidden;margin:22px 0;background:var(--blanc);box-shadow:var(--ombre-carte)}
.tbl-defile{overflow-x:auto}
.tbl table{width:100%;border-collapse:collapse;font-size:15px;margin:0}
.tbl th{background:var(--vert);color:var(--creme);text-align:left;padding:12px 16px;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;border:0}
.tbl td{padding:11px 16px;border:0;border-top:1px solid var(--bordure-sable);vertical-align:top}
.tbl tbody tr:hover td{background:var(--creme)}
.tbl td:first-child{font-weight:700;color:var(--vert);font-variant-numeric:tabular-nums}
.tbl td:last-child{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.tbl-simple td:last-child{white-space:normal}
.tbl .ligne-clef td{background:var(--sable)}
.tbl .ligne-clef:hover td{background:var(--sable)}
.note-tbl{font-size:13.5px;color:var(--gris-texte);margin:-8px 0 22px}

/* encadré final — Thomas */
.la-juste-dose{background:linear-gradient(160deg,var(--vert),var(--vert-hover));color:var(--creme);border-radius:20px;padding:26px 28px;margin:40px 0 28px;position:relative;overflow:hidden}
.la-juste-dose .wm{position:absolute;right:-8%;bottom:-22%;width:38%;color:rgba(247,240,227,.08)}
.ljd-tete{display:flex;align-items:center;gap:16px;margin-bottom:14px;position:relative}
.ljd-tete .medaillon{width:60px;height:60px;border-color:rgba(247,240,227,.5)}
.ljd-label{font-size:12px;letter-spacing:3px;text-transform:uppercase;font-weight:700;color:var(--creme);margin:0}
.ljd-label small{display:block;letter-spacing:.4px;text-transform:none;font-weight:500;font-size:12px;color:rgba(247,240,227,.75);margin-top:3px}
.la-juste-dose p{position:relative;font-size:16.5px;margin:0}
.art-contenu .la-juste-dose p strong{color:var(--creme);border-bottom:2px solid var(--dore)}

/* FAQ */
.faq{border-top:1px solid var(--bordure);margin-top:8px}
.faq details{border-bottom:1px solid var(--bordure)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 2px;font-weight:600;font-size:16px;color:var(--encre);min-width:0}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:9px;height:9px;border-right:2px solid var(--dore-texte);border-bottom:2px solid var(--dore-texte);transform:rotate(45deg);transition:transform var(--t-rapide);flex:none;margin-right:4px}
.faq details[open] summary::after{transform:rotate(225deg)}
.faq details p{padding:0 2px 18px;color:var(--gris-texte)}

/* encart jeu — renvoi d'un article vers un jeu Réflexe.
   PIÈGE wpautop : le markup doit être inséré en UNE SEULE LIGNE dans post_content
   (les retours à la ligne autour de span/a deviennent des <br> au rendu). */
.encart-jeu{display:block;background:var(--sable);border:1px solid var(--bordure-sable);border-radius:18px;padding:18px 22px;margin:26px 0;text-decoration:none;color:var(--encre)}
.encart-jeu .ej-label{display:block;font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--dore-texte)}
.encart-jeu .ej-titre{display:block;font-size:18px;line-height:1.3;color:var(--vert);margin-top:3px}
.encart-jeu .ej-pitch{display:block;font-size:14.5px;line-height:1.55;color:var(--gris-texte);margin-top:4px}
.encart-jeu .ej-jouer{display:inline-flex;align-items:center;gap:9px;margin-top:10px;font-size:14px;font-weight:700;color:var(--vert)}
.encart-jeu .ej-jouer::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);transition:transform var(--t-rapide)}
.encart-jeu:hover{border-color:var(--dore);background:var(--creme)}
.encart-jeu:hover .ej-jouer::after{transform:rotate(45deg) translate(2px,-2px)}
@media (max-width:700px){
  .encart-jeu{padding:16px 18px}
  .encart-jeu .ej-pitch{font-size:14px}
}

/* sources + journal */
.sources{background:var(--blanc);border:1px solid var(--bordure);border-radius:16px;padding:20px 24px;margin-top:30px}
.sources-titre{font-size:11.5px;letter-spacing:2.5px;text-transform:uppercase;font-weight:700;color:var(--gris-texte);margin-bottom:12px;display:flex;align-items:center;gap:9px}
.sources-titre::before{content:"";width:22px;height:2px;background:var(--dore)}
.sources ul{list-style:none;display:grid;gap:9px;font-size:13.5px;padding:0;margin:0}
.sources a{color:var(--vert);text-decoration:underline;text-decoration-color:var(--dore);text-underline-offset:3px}
.note-sante{margin-top:20px;font-size:12.5px;color:var(--gris-texte);font-style:italic}

/* ---------- article mobile (≤700px) ---------- */
@media (max-width:700px){
  .art-hero{padding:34px 0 96px}
  .art-badges{margin-bottom:16px;gap:8px}
  .badge-cat-liste a{font-size:10.5px;padding:6px 13px}
  .badge-format-liste a{font-size:10px;padding:5px 11px}
  .art-hero .wp-block-post-title{font-size:27px}
  .art-meta{margin-top:16px;gap:8px;font-size:12px}
  .art-trait{margin-top:20px}
  .art-enveloppe{margin-top:-64px}
  .art-carte{padding:22px 18px;border-radius:20px}
  .art-contenu{font-size:16px;line-height:1.72}
  .art-contenu h2{margin-top:38px}
  .accroche-comptoir{grid-template-columns:1fr;gap:12px;padding:18px}
  .accroche-comptoir .medaillon{width:56px;height:56px}
  .accroche-comptoir blockquote{font-size:22px;line-height:1.4}
  .formule{font-size:15.5px;padding:14px 16px}
  .tbl-grille thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .tbl-grille tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 14px;align-items:baseline;padding:11px 14px}
  .tbl-grille tr+tr{border-top:1px solid var(--bordure-sable)}
  .tbl-grille td{display:block;border:0;padding:0}
  .tbl-grille td:nth-child(2){grid-column:1/-1;order:3;font-size:12.5px;color:var(--gris-texte);font-weight:400;white-space:normal}
  .tbl-grille td:nth-child(2):empty{display:none}
  .tbl-grille td:last-child{justify-self:end;font-size:15.5px}
  /* surlignage propre en grille mobile : le fond habille la ligne, pas les cellules (sinon trous blancs dans les gap) */
  .tbl-grille tbody tr:hover{background:var(--creme)}
  .tbl-grille .ligne-clef,.tbl-grille .ligne-clef:hover{background:var(--sable)}
  .tbl-grille tbody tr:hover td,.tbl-grille .ligne-clef td,.tbl-grille .ligne-clef:hover td{background:transparent}
  .tbl th,.tbl td{font-size:14px}
  .tbl-simple th,.tbl-simple td{padding:10px 12px}
  .la-juste-dose{padding:22px 20px}
  .ljd-tete .medaillon{width:52px;height:52px}
  .sources{padding:18px 16px}
}

/* ===== MOUVEMENT (charte v1.2 : transform/opacity uniquement, 150-400 ms,
   une fois, pas de parallaxe ni de boucle, tout coupé sous reduced-motion) ===== */
@media (prefers-reduced-motion: no-preference){
  .js .reveal{opacity:0;transform:translateY(12px);transition:opacity .4s cubic-bezier(.22,.61,.36,1),transform .4s cubic-bezier(.22,.61,.36,1);transition-delay:calc(var(--i,0)*100ms)}
  .js .reveal.vu{opacity:1;transform:none}
  /* le trait gradué se trace quand il entre à l'écran (scaleX = transform pur) */
  .js .trace .regle{transform:scaleX(0);transform-box:fill-box;transform-origin:left center}
  .js .trace .gradu{opacity:0}
  .js .trace .repere{opacity:0;transform-box:fill-box;transform-origin:center;transform:translateY(6px)}
  .js .trace.vu .regle{animation:ljd-tracer .4s cubic-bezier(.5,0,.2,1) forwards}
  .js .trace.vu .gradu{animation:ljd-fade .3s ease-out .35s forwards}
  .js .trace.vu .repere{animation:ljd-poser .35s cubic-bezier(.34,1.56,.64,1) .6s forwards}
  @keyframes ljd-tracer{to{transform:scaleX(1)}}
  @keyframes ljd-fade{to{opacity:1}}
  @keyframes ljd-poser{to{opacity:1;transform:none}}
}
/* coupe-circuit : aucun mouvement pour qui le demande */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{transition:none !important;animation:none !important}
}
/* impression : rien ne reste masqué par les révélations */
@media print{
  .js .reveal,.js .trace .gradu,.js .trace .repere{opacity:1 !important;transform:none !important}
  .js .trace .regle{transform:none !important}
  /* PDF d'une fiche = la fiche seule : on retire le chrome du site (header + footer + mention IA). */
  .header,.footer,.ia-mention{display:none !important}
}

/* ============================================================
   LA JUSTE VEILLE — page produit /veille/ (template page-veille)
   Transposition fidèle de maquettes/veille-produit-v0.1.html
   (validée par Joseph le 12/06/2026, revue Codex appliquée).
   Préfixe v- : aucune collision avec .hero/.carte/.champ/.faq
   de l'accueil et du gabarit d'article. Tokens charte v1.2 only.
   ============================================================ */

/* titres : interlignage relevé sur cette page (retour Joseph 12/06) */
.v-main .tete h2{line-height:1.28}
.v-main .tete p{line-height:1.6;max-width:580px}

/* ----- héros ----- */
.v-hero{position:relative;background:radial-gradient(120% 120% at 85% 0%, var(--blanc-casse) 0%, var(--creme) 55%);padding-block:0}
.v-hero .conteneur{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(32px,5vw,72px);align-items:center;padding-block:clamp(52px,7vw,92px)}
.v-hero h1{font-size:clamp(38px,5.4vw,60px);line-height:1.16;margin:18px 0 0;max-width:15ch}
.v-hero .promesse{font-size:clamp(17px,2vw,19px);line-height:1.6;color:var(--gris-texte);max-width:44ch;margin-top:22px}
.v-hero .promesse strong{color:var(--encre);font-weight:600}
.v-prix-ligne{margin-top:22px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.v-prix-ligne .grand{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:600;font-size:clamp(30px,3.4vw,38px);color:var(--vert);line-height:1.1}
.v-prix-ligne .grand small{font-family:'Montserrat','Helvetica Neue',Arial,sans-serif;font-style:normal;font-weight:500;font-size:15px;color:var(--gris-texte)}
.v-prix-ligne .ou{font-size:14px;color:var(--gris-texte)}
.v-prix-ligne .petit{font-size:15.5px;font-weight:600;color:var(--encre)}
.v-hero .actions{margin-top:22px;display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.v-hero .reassure{margin-top:18px;font-size:14px;color:var(--gris-texte);display:flex;gap:16px;flex-wrap:wrap}
.v-hero .reassure span{display:inline-flex;align-items:center;gap:7px}
.v-hero .reassure svg{color:var(--vert);flex:none}

/* aperçu d'email (statique, non interactif) */
.v-apercu{position:relative;max-width:480px;justify-self:end;width:100%}
.v-apercu .fond{position:absolute;inset:26px -18px -22px 30px;background:var(--sable);border-radius:var(--r-carte);transform:rotate(2.4deg)}
.v-mail{position:relative;background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--r-carte);box-shadow:var(--ombre-elev);overflow:hidden}
.v-mail-tete{background:var(--vert);color:var(--creme);padding:16px 22px;display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.v-mail-tete .titre{font-size:13px;letter-spacing:3px;font-weight:600}
.v-mail-tete .date{font-size:12.5px;opacity:.92}
.v-mail-corps{padding:20px 22px 22px;display:grid;gap:16px}
.v-mail-bloc{display:grid;gap:7px;padding-bottom:14px;border-bottom:1px solid var(--bordure)}
.v-mail-bloc:last-child{border-bottom:0;padding-bottom:0}
.v-pastille{justify-self:start;font-size:10.5px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;color:var(--vert);background:var(--sable);border-radius:999px;padding:4px 11px}
.v-pastille.or{background:transparent;border:1px solid var(--dore);color:var(--dore-texte)}
.v-mail-bloc h3{font-size:17.5px;line-height:1.3}
.v-mail-bloc p{font-size:13px;line-height:1.55;color:var(--gris-texte)}
.v-mail-bloc .source{font-size:12px;color:var(--gris-texte)}
.v-mail-bloc .source .faux-lien{font-weight:600;color:var(--vert);text-decoration:underline}
@media (max-width:919px){
  .v-hero .conteneur{grid-template-columns:1fr;padding-block:44px}
  .v-apercu{justify-self:center;margin-top:8px}
  .v-apercu .fond{inset:18px -8px -14px 18px}
}

/* ----- comment ça marche ----- */
.v-etapes{background:var(--blanc-casse)}
.v-etapes-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.5vw,28px)}
.v-etape{background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--r-carte);padding:28px 26px;box-shadow:var(--ombre-carte);display:grid;gap:14px;align-content:start;transition:transform var(--t-rapide),box-shadow var(--t-rapide)}
.v-etape:hover{transform:translateY(-3px);box-shadow:0 14px 30px -18px rgba(31,77,58,.25)}
.v-etape .num{width:40px;height:40px;border-radius:999px;background:var(--sable);color:var(--vert);font-weight:600;font-size:17px;display:grid;place-items:center}
.v-etape h3{font-size:21px;line-height:1.42}
.v-etape p{font-size:15px;line-height:1.62;color:var(--gris-texte)}
@media (max-width:919px){.v-etapes-grille{grid-template-columns:1fr;max-width:460px;margin-inline:auto}}

/* ----- thématiques ----- */
.v-familles{display:grid;gap:26px}
.v-famille{background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--r-carte);padding:24px 26px;box-shadow:var(--ombre-carte)}
.v-famille h3{font-family:'Montserrat','Helvetica Neue',Arial,sans-serif;font-style:normal;font-size:13px;font-weight:600;letter-spacing:2.4px;text-transform:uppercase;color:var(--dore-texte);margin-bottom:14px;line-height:1.5}
.v-pilules{display:flex;flex-wrap:wrap;gap:9px}
.v-pilule{font-size:14px;font-weight:500;line-height:1.45;color:var(--encre);background:var(--creme);border:1px solid var(--bordure);border-radius:999px;padding:7px 15px}
.v-note{margin-top:22px;display:flex;gap:12px;align-items:flex-start;background:var(--sable);border:1px solid var(--bordure-sable);border-radius:var(--r-encart);padding:16px 20px;font-size:14.5px;line-height:1.6}
.v-note svg{flex:none;color:var(--vert);margin-top:3px}

/* ----- déontologie + exemple ----- */
.v-deonto{background:var(--blanc-casse)}
.v-deux-col{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(22px,3vw,36px);align-items:stretch}
@media (max-width:919px){.v-deux-col{grid-template-columns:1fr}}
.v-encart-deonto{background:var(--blanc);border:1px solid var(--bordure);border-left:4px solid var(--dore);border-radius:var(--r-carte);padding:30px 32px;box-shadow:var(--ombre-carte);display:grid;gap:14px;align-content:start}
.v-encart-deonto .label{font-size:12px;font-weight:600;letter-spacing:2.4px;text-transform:uppercase;color:var(--dore-texte)}
.v-encart-deonto blockquote{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:19px;line-height:1.5;color:var(--vert);margin:0;padding:0;border:0}
.v-encart-deonto .ref{font-size:13.5px;line-height:1.6;color:var(--gris-texte)}
.v-encart-deonto .non-dpc{font-size:13.5px;line-height:1.6;color:var(--gris-texte);border-top:1px solid var(--bordure);padding-top:14px}
.v-carte-exemple{background:var(--vert);color:var(--creme);border-radius:var(--r-carte);padding:30px 32px;display:grid;gap:16px;align-content:center;box-shadow:var(--ombre-elev)}
.v-carte-exemple h3{color:var(--creme);font-size:clamp(22px,2.6vw,27px);line-height:1.35}
.v-carte-exemple p{font-size:15px;line-height:1.65;opacity:.94;max-width:42ch}
.v-carte-exemple .btn-creme{background:var(--creme);color:var(--vert);justify-self:start}
.v-carte-exemple .btn-creme:hover{background:var(--blanc);transform:translateY(-2px)}

/* ----- tarifs ----- */
.v-tarifs{background:var(--vert);color:var(--creme)}
.v-tarifs .tete h2{color:var(--creme)}
.v-tarifs-grille{display:grid;grid-template-columns:repeat(2,minmax(0,420px));gap:clamp(18px,2.5vw,28px);justify-content:center}
@media (max-width:919px){.v-tarifs-grille{grid-template-columns:minmax(0,420px)}}
.v-tarif{background:var(--blanc-casse);color:var(--encre);border-radius:var(--r-carte);padding:32px 30px;display:grid;gap:8px;align-content:start;position:relative}
.v-tarif.reco{outline:2.5px solid var(--dore);box-shadow:0 26px 50px -24px rgba(0,0,0,.45)}
.v-badge-reco{position:absolute;top:-14px;left:28px;background:var(--dore);color:var(--encre);font-size:12px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;padding:5px 14px;border-radius:999px}
/* v-formule et non .formule : la classe .formule appartient au gabarit d'article (revue Codex 12/06) */
.v-tarif .v-formule{font-size:14px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--dore-texte)}
.v-tarif .prix{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:600;font-size:46px;color:var(--vert);line-height:1.05}
.v-tarif .prix small{font-family:'Montserrat','Helvetica Neue',Arial,sans-serif;font-style:normal;font-weight:500;font-size:15px;color:var(--gris-texte)}
.v-tarif .equiv{font-size:14px;line-height:1.55;color:var(--gris-texte)}
.v-tarif ul{list-style:none;margin-top:14px;display:grid;gap:10px;font-size:15px;line-height:1.5;padding:0}
.v-tarif li{display:flex;gap:9px;align-items:flex-start}
.v-tarif li svg{flex:none;color:var(--vert);margin-top:4px}
.v-tarif .btn{margin-top:20px;justify-self:start}
.v-garanties{margin-top:26px;text-align:center;font-size:14px;color:var(--creme);opacity:.95;display:flex;gap:18px;justify-content:center;flex-wrap:wrap}

/* ----- FAQ (v-faq : cartes, distincte de la .faq du gabarit d'article) ----- */
.v-faq{max-width:760px;margin-inline:auto;display:grid;gap:12px}
.v-faq details{background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--r-encart);box-shadow:var(--ombre-carte)}
.v-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 22px;font-weight:600;font-size:15.5px;line-height:1.45;transition:background-color var(--t-rapide);border-radius:var(--r-encart)}
.v-faq summary:hover{background:var(--blanc-casse)}
.v-faq summary::-webkit-details-marker{display:none}
.v-faq summary .ind{flex:none;width:26px;height:26px;border-radius:999px;background:var(--sable);color:var(--vert);display:grid;place-items:center;font-weight:600;transition:transform var(--t-rapide)}
.v-faq details[open] summary .ind{transform:rotate(45deg)}
.v-faq .rep{padding:0 22px 20px;font-size:15px;line-height:1.65;color:var(--gris-texte);max-width:62ch}

/* ----- déjà abonné ----- */
.v-deja{padding-block:30px;border-top:1px solid var(--bordure)}
.v-deja p{text-align:center;font-size:14.5px;line-height:1.8;color:var(--gris-texte)}
.v-deja strong{color:var(--encre)}
.v-deja a{font-weight:600}

/* ============================================================
   PAGES SYSTÈME — 404 (introuvable) + recherche (search)
   Templates templates/404.html et templates/search.html.
   Préfixes .sys- / .ljd-recherche / .rech- : aucune collision
   avec l'accueil, le gabarit d'article ou la page veille.
   Tokens charte v1.2 uniquement, aucune couleur improvisée.
   ============================================================ */

/* bloc centré commun aux deux pages — rythme vertical aéré et harmonisé */
.sys-wrap{max-width:680px;margin-inline:auto;text-align:center}
.sys-wrap .eyebrow{justify-content:center;margin-bottom:18px}
.sys-code{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:600;font-size:clamp(88px,19vw,160px);line-height:1;color:var(--vert);margin:0 0 22px}
.sys-titre{font-size:clamp(28px,4vw,42px);line-height:1.25;margin:0 auto;max-width:20ch}
.sys-intro{color:var(--gris-texte);font-size:17px;line-height:1.7;max-width:52ch;margin:20px auto 0}
.sys-actions{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.sys-form{margin-top:26px}
.sys-aussi{margin-top:46px}
.sys-aussi-titre{font-size:11.5px;letter-spacing:2.5px;text-transform:uppercase;font-weight:700;color:var(--dore-texte);margin-bottom:14px}
.sys-liens{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.sys-liens a{font-size:14px;font-weight:600;color:var(--vert);text-decoration:none;background:var(--blanc);border:1px solid var(--bordure);border-radius:999px;padding:9px 18px;transition:transform var(--t-rapide),border-color var(--t-rapide)}
.sys-liens a:hover{transform:translateY(-2px);border-color:var(--vert)}

/* champ de recherche en pilule (404, page de résultats) */
.ljd-recherche{display:flex;gap:8px;width:100%;max-width:520px;margin-inline:auto;background:var(--blanc);border:1px solid var(--bordure);border-radius:999px;padding:6px 6px 6px 10px;box-shadow:var(--ombre-carte)}
.ljd-recherche:focus-within{border-color:var(--vert);box-shadow:0 0 0 3px var(--vert)}
.ljd-recherche__champ{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:16px;color:var(--encre);padding:10px 6px}
.ljd-recherche__champ::placeholder{color:var(--gris-texte)}
.ljd-recherche__champ:focus-visible{outline:none}
.ljd-recherche__btn{flex:none;display:inline-flex;align-items:center;gap:8px;border:0;cursor:pointer;background:var(--vert);color:var(--creme);border-radius:999px;padding:11px 20px;font:inherit;font-weight:600;font-size:14px;transition:background-color var(--t-rapide),transform var(--t-rapide)}
.ljd-recherche__btn:hover{background:var(--vert-hover);transform:translateY(-1px)}
.ljd-recherche__btn svg{color:var(--creme)}
@media (max-width:520px){
  .ljd-recherche__btn{padding:11px 14px}
  .ljd-recherche__btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}

/* recherche dans l'en-tête (icône loupe en haut à droite) — même logique progressive que le
   menu : champ visible sans JS, replié derrière l'icône avec JS (html.js posé par functions.php). */
.barre-droite{display:flex;align-items:center;gap:clamp(12px,2vw,20px)}
.rech-toggle{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;background:none;border:0;cursor:pointer;color:var(--vert);transition:background-color var(--t-rapide)}
.rech-toggle:hover{background:rgba(31,77,58,.08)}
.rech-toggle svg{width:22px;height:22px}
html:not(.js) .rech-toggle{display:none}
.rech-entete{position:absolute;top:100%;left:0;right:0;background:var(--creme);border-bottom:1px solid var(--bordure);box-shadow:0 18px 30px -22px rgba(34,40,31,.4)}
.rech-entete .conteneur{padding-block:9px;display:flex;justify-content:flex-end}
.rech-entete .ljd-recherche{margin-inline:0;max-width:440px;padding:4px 4px 4px 10px}
.rech-entete .ljd-recherche__champ{padding:8px 6px;font-size:15px}
.rech-entete .ljd-recherche__btn{padding:9px 18px}
.js .rech-entete{display:none}
.js .rech-entete.ouvert{display:block}
html:not(.js) .rech-entete{position:static}
@media (max-width:919px){
  .rech-entete .conteneur{justify-content:stretch}
  .rech-entete .ljd-recherche{max-width:none}
}

/* ============================================================
   Espace membre — écrans d'authentification (.auth-*)
   Transposition fidèle de la maquette validée tests-ux/apercu-auth-etape2.html.
   Carte unique centrée (connexion, inscription étape 1/2, profil étape 2/2,
   mot de passe oublié, réinitialiser, vérifier l'e-mail). Tokens charte only.
   ============================================================ */
.auth-section{padding:56px 0;background:var(--blanc-casse)}
.auth-card{max-width:500px;margin:0 auto;background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--r-grand);padding:40px 38px;box-shadow:var(--ombre-carte)}
.auth-eyebrow{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dore-texte);margin:0 0 10px}
.auth-titre{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:500;color:var(--vert);font-size:28px;line-height:1.15;margin:0 0 8px}
.auth-sous{color:var(--gris-texte);font-size:15px;margin:0 0 24px}
.auth-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:var(--blanc);border:1px solid var(--bordure);border-radius:999px;padding:12px 18px;font:inherit;font-size:15px;font-weight:600;color:var(--encre);cursor:pointer;transition:background-color var(--t-rapide)}
.auth-google:hover{background:var(--creme)}
.auth-ou{display:flex;align-items:center;gap:14px;color:var(--gris-meta);font-size:13px;margin:18px 0}
.auth-ou::before,.auth-ou::after{content:"";flex:1;height:1px;background:var(--bordure)}
.auth-champ{margin:0 0 16px}
.auth-champ label.principal{display:block;font-size:14px;font-weight:600;color:var(--encre);margin:0 0 6px}
.auth-champ input[type=email],.auth-champ input[type=password],.auth-champ input[type=text],.auth-champ select,.auth-champ textarea{width:100%;font:inherit;font-size:15px;color:var(--encre);background:var(--blanc);border:1px solid var(--bordure);border-radius:12px;padding:13px 14px}
.auth-champ textarea{resize:vertical;min-height:120px}
.auth-champ input:focus-visible,.auth-champ select:focus-visible,.auth-champ textarea:focus-visible{outline:none;border-color:var(--vert);box-shadow:0 0 0 3px rgba(31,77,58,.16)}
.auth-champ .indice{font-size:12.5px;color:var(--gris-meta);margin:6px 0 0}
.auth-champ .oblig{color:var(--alerte);font-weight:700}
.auth-champ .fac{color:var(--gris-meta);font-weight:400}
.auth-rangee{display:flex;justify-content:space-between;align-items:baseline}
.auth-rangee a{font-size:13px}
.auth-card .duo{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.auth-soumettre{width:100%;justify-content:center;margin-top:6px}
.auth-consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--gris-texte);margin:0 0 12px}
.auth-consent input{margin-top:3px;width:17px;height:17px;flex:0 0 auto;accent-color:var(--vert)}
.auth-consent-note{font-size:12.5px;color:var(--gris-meta);margin:-4px 0 14px 27px}
.auth-note{font-size:12.5px;color:var(--gris-meta);margin:14px 0 0;text-align:center}
.auth-bas{text-align:center;font-size:14px;color:var(--gris-texte);margin:22px 0 0;padding-top:18px;border-top:1px solid var(--bordure)}
/* bandeaux d'état (connexion : erreur d'identifiants, e-mail à confirmer…) */
.auth-bandeau{font-size:13.5px;line-height:1.5;border-radius:12px;padding:11px 14px;margin:0 0 18px}
.auth-bandeau--alert{background:rgba(154,51,36,.08);color:var(--alerte);border:1px solid rgba(154,51,36,.28)}
.auth-bandeau--info{background:var(--creme);color:var(--encre);border:1px solid var(--bordure)}
/* carte centrée (déconnexion, vérifier e-mail) ; les champs de formulaire restent alignés à gauche */
.auth-card--centre{text-align:center}
.auth-card--centre .auth-champ{text-align:left}
.auth-etapes{display:flex;align-items:center;gap:8px;margin:0 0 18px}
.auth-etapes .seg{height:5px;border-radius:999px;background:var(--bordure);flex:1}
.auth-etapes .seg.actif{background:var(--vert)}
.auth-etapes .lib{flex:0 0 auto;font-size:12px;font-weight:600;color:var(--gris-meta);letter-spacing:.03em}
/* champs conditionnels du profil (profession « autre », département, RPPS) : masqués seulement
   quand JS est actif (html.js) et révélés par view.js ; sans JS, tous les champs restent visibles
   (dégradation propre, comme le menu). Scopé à la carte pour ne pas créer un .cache global. */
.js .auth-card .cache{display:none}
@media (max-width:520px){
  .auth-card{padding:30px 22px}
  .auth-card .duo{grid-template-columns:1fr}
}

/* ============================================================
   Espace membre — invitations contextualisées (CTA compte)
   Encart de fin de fiche / sous le jeu (.cta-membre) + bandeau global
   au-dessus du pied de page (.cta-bandeau). Masqués pour les membres
   connectés (rendu serveur). Tokens charte only ; CTA doré jamais en texte.
   ============================================================ */
.cta-membre{background:var(--blanc-casse);border-block:1px solid var(--bordure);padding:clamp(30px,5vw,52px) 0}
.cta-membre-in{display:grid;grid-template-columns:1.3fr auto;gap:clamp(20px,4vw,48px);align-items:center}
.cta-membre-eyebrow{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dore-texte);margin:0 0 8px}
.cta-membre-titre{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:500;color:var(--vert);font-size:clamp(24px,3vw,30px);line-height:1.15;margin:0 0 10px}
.cta-membre-sous{color:var(--gris-texte);font-size:16px;line-height:1.6;max-width:56ch;margin:0}
.cta-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.cta-membre .cta-actions{flex-direction:column;align-items:stretch;min-width:210px}
.cta-membre .cta-actions .btn{justify-content:center;white-space:nowrap}

/* bandeau global, pleine largeur, fondu dans le pied de page (même vert) avec un filet de séparation */
.cta-bandeau{background:var(--vert);color:var(--creme);border-bottom:1px solid rgba(247,240,227,.16)}
.cta-bandeau-in{display:flex;flex-wrap:wrap;gap:20px clamp(48px,7vw,90px);align-items:center;justify-content:space-between;padding-block:clamp(28px,3.6vw,40px)}
.cta-bandeau-txt{font-size:clamp(17px,2vw,20px);font-weight:600;line-height:1.5;color:var(--creme);margin:0;max-width:40ch}
.cta-bandeau .cta-actions{gap:24px}
.cta-bandeau .cta-lien{color:var(--creme);font-weight:600;font-size:15px;white-space:nowrap;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--dore)}
.cta-bandeau .cta-lien:hover{text-decoration-color:var(--creme)}
.cta-bandeau a:focus-visible{outline-color:var(--creme)}

@media (max-width:780px){
  .cta-membre-in{grid-template-columns:1fr}
  .cta-membre .cta-actions{flex-direction:row;min-width:0}
  .cta-membre .cta-actions .btn{flex:1}
  /* bandeau : empilement net texte puis actions, interlignage aéré */
  .cta-bandeau-in{flex-direction:column;align-items:flex-start;gap:22px;padding-block:32px}
  .cta-bandeau-txt{max-width:none;line-height:1.55}
}
@media (max-width:480px){
  .cta-membre .cta-actions{flex-direction:column}
}

/* ============================================================
   Espace membre — tableau de bord (Mon espace), transposé de apercu-mon-espace-v3.html.
   La brique Suivi réutilise le CSS réel du jeu (.jdci) pour le composant « Ta justesse ».
   ============================================================ */
.esp-main{padding-block:clamp(28px,4vw,48px);background:var(--blanc-casse)}
/* Mon espace : neutralise le padding-block hérité de `main section` (l.131) — sinon 108px de vide en haut/bas de la page ET de chaque brique. */
.esp{padding-block:clamp(18px,2.6vw,28px)}
.brique{padding-block:0}
.compte{display:grid;grid-template-columns:226px 1fr;gap:14px 22px;align-items:start}
.compte-tete{grid-column:1/-1;margin:0 0 4px}
.esp-hello{font-size:clamp(26px,4vw,34px);margin:0}
.esp-meta{color:var(--gris-texte);font-size:14px;margin:4px 0 0}
.compte-nav{position:sticky;top:92px;display:flex;flex-direction:column;gap:3px;background:var(--blanc);border:1px solid var(--bordure);border-radius:14px;padding:8px}
.compte-nav a{display:flex;align-items:center;gap:10px;padding:10px 13px;border-radius:9px;font-size:14.5px;font-weight:600;color:var(--encre);text-decoration:none;cursor:pointer}
.compte-nav a:hover{background:var(--creme)}
.compte-nav a.actif{background:var(--vert);color:var(--creme)}
.compte-contenu{min-width:0}
.js .brique{display:none}.js .brique.actif{display:block}
.esp-sec{background:var(--blanc);border:1px solid var(--bordure);border-radius:16px;padding:18px 20px;margin:0 0 12px}
.esp-sec h2{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:500;color:var(--vert);font-size:21px;margin:0 0 9px}
.esp-sec .sec-aide{font-size:13.5px;color:var(--gris-meta);margin:0 0 10px;line-height:1.5}
.lien-danger{font-size:13.5px;color:var(--alerte);background:transparent;border:1px solid rgba(154,51,36,.28);border-radius:999px;padding:9px 16px;cursor:pointer;font-weight:600}
.brique .jdci{background:transparent}
.esp-vide-js{font-size:13.5px;color:var(--gris-meta)}
.js .esp-vide-js{display:none}
/* Profil */
.prof-tete{display:flex;align-items:center;gap:16px;background:var(--vert);color:var(--creme);border-radius:14px;padding:18px 22px;margin-bottom:16px}
.prof-tete .nom{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:20px;margin:0}
.prof-tete .sub{font-size:13px;opacity:.92;margin:2px 0 0}
.prof-grille{display:grid;grid-template-columns:1fr 1fr;gap:13px 18px;margin-bottom:16px}
.prof-champ label{display:block;font-size:12.5px;color:var(--gris-meta);margin:0 0 5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}
.prof-champ .v{font-size:15px;font-weight:600}
.prof-abo{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--bordure);border-radius:12px;padding:14px 16px;margin-bottom:10px}
.prof-abo>div:first-child{flex:1 1 auto;min-width:0}
.prof-news-form{flex:0 0 auto}
.prof-abo .t{font-size:14.5px;font-weight:700;margin:0 0 3px}
.prof-abo .s{font-size:13px;color:var(--gris-texte);margin:0;line-height:1.45}
.prof-etat{font-size:13px;font-weight:600;color:var(--vert);white-space:nowrap;align-self:center}
.prof-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.vp-note{font-size:12.5px;color:var(--gris-meta);margin:14px 0 0}
/* Achats */
.ach-vide{font-size:14.5px;color:var(--gris-texte);line-height:1.6}
.ach-aide{margin-top:16px;font-size:13.5px;color:var(--gris-texte)}
.ach-liste{list-style:none;margin:0;padding:0}
.ach-item{border:1px solid var(--bordure);border-radius:12px;padding:14px 16px;margin-bottom:10px}
.ach-ligne{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;font-size:13px;color:var(--gris-meta)}
.ach-statut{font-weight:600;color:var(--vert)}
.ach-montant{margin-left:auto;font-weight:700;color:var(--encre)}
.ach-produits{margin:6px 0 0;font-size:14.5px;font-weight:600}
.ach-fichiers{margin:10px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.ach-dl{font-size:13.5px;font-weight:600}
.ach-aide-plus{margin-top:14px;font-size:13.5px;color:var(--gris-texte)}
/* Hub « Les fiches » (page-fiches.html) : sections texte contenues (680px, la largeur
   de lecture du site), grilles et bandeaux pleine largeur du conteneur. */
.hub-fiches .entry-content>h2{margin:clamp(34px,6vw,52px) 0 10px}
.hub-fiches .entry-content>h2:first-child{margin-top:0}
.hub-fiches .entry-content>p{max-width:680px;color:var(--gris-texte)}
/* La grille des aires (catalogue généré, pensé pour sa page archive autonome) perd son
   grand pied de 80px dans le hub : le titre suivant garde son propre rythme (retour Joseph). */
.hub-fiches .ljd-cat{padding-bottom:0}
/* Bandeaux du hub : icône trait continu (verte, fusion darken comme les piliers de
   l'accueil) sur mini encadré crème ; le masque décoratif d'origine s'efface quand
   le bandeau porte une image (les bandeaux sans image restent inchangés ailleurs). */
.fiches-bandeau .fb-ic:has(img){background:var(--creme)}
.fiches-bandeau .fb-ic:has(img)::before{display:none}
.fiches-bandeau .fb-ic img{display:block;width:50px;height:50px;mix-blend-mode:darken}
/* Boutique : encart « aucun produit » (état vide d'avant septembre) à la charte,
   sans la marge fantôme du bandeau d'info Woo (retour Joseph : rythme du hub fiches). */
.hub-boutique .wc-block-components-notice-banner.is-info{margin:0;background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--r-encart);color:var(--gris-texte);box-shadow:none}
.hub-boutique .wc-block-components-notice-banner.is-info svg{fill:var(--vert)}
/* Tête de hub boutique : générée en HTML par le plugin, elle réplique au pixel les
   inter-blocs Gutenberg des hubs fiches et Dose d'actu (24px avant le titre, 12px
   avant le chapeau) et respire après le fil d'Ariane (retour Joseph). */
.hub-boutique .ariane{margin:0 0 24px}
.hub-boutique .art-hub-tete .eyebrow{margin:0}
.hub-boutique .art-hub-tete h1{margin:24px 0 0}
.hub-boutique .art-hub-tete p:not(.eyebrow){margin:12px 0 0}
/* État vide maison de la boutique (packs pas encore publiés) */
.ljd-boutique-vide{border:1px solid var(--bordure);background:var(--blanc);border-radius:var(--r-encart);padding:16px 18px}
.ljd-boutique-vide p{margin:0;font-size:15.5px;color:var(--gris-texte);line-height:1.5}
/* Boutique : fiche produit d'un pack gratuit (porte + rappel « déjà à toi ») */
.ljd-porte-page.ljd-porte-produit{padding:8px 0 12px}
.ljd-porte-page.ljd-porte-produit .ljd-porte{margin:8px 0 0}
.ljd-boutique-deja{border:1px solid var(--bordure);border-radius:12px;padding:14px 16px;margin:8px 0 0}
.ljd-boutique-deja p{margin:0 0 10px;font-size:14.5px;color:var(--gris-texte)}
.ljd-boutique-deja p:last-child{margin:0}
/* Veille Pro (vouvoiement : produit payant) */
.vp-tete{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap}
.vp-tag{display:inline-flex;align-items:center;gap:7px;background:var(--vert);color:var(--creme);border-radius:999px;padding:5px 13px;font-size:12.5px;font-weight:700;white-space:nowrap}
.vp-etat{font-size:13px;color:var(--gris-meta)}
#brique-veille h2{font-size:clamp(22px,3.4vw,26px);line-height:1.2}
.vp-pitch{font-size:15.5px;color:var(--encre);line-height:1.6;margin:0 0 18px}
.vp-benef{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:12px}
.vp-benef li{display:flex;gap:12px;align-items:flex-start}
.vp-benef .ck{flex:0 0 auto;color:var(--vert);margin-top:2px}
.vp-benef b{font-weight:700}
.vp-benef span{color:var(--gris-texte)}
.vp-bas{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--bordure);padding-top:18px}
.vp-prix-l{margin:0;font-size:15px;color:var(--gris-texte)}
.vp-montant{font-family:'Playfair Display',Georgia,serif;font-style:italic;color:var(--vert);font-size:21px}
.vp-offert{color:var(--dore-texte);font-weight:600;font-size:13px}
@media(max-width:820px){
  .compte{grid-template-columns:1fr}
  .compte .btn{justify-content:center}
  .compte-nav{position:static;flex-direction:row;flex-wrap:wrap;gap:8px;background:transparent;border:0;padding:0}
  .compte-nav a{white-space:nowrap;flex:0 0 auto;border:1px solid var(--bordure);background:var(--blanc);border-radius:999px;padding:9px 15px}
  .compte-nav a.actif{border-color:var(--vert)}
  .prof-grille{grid-template-columns:1fr}
  .prof-abo{flex-direction:column;align-items:stretch;gap:12px}
  .prof-actions{flex-direction:column;align-items:stretch}
  .prof-actions .btn,.prof-actions .lien-danger{width:100%;text-align:center}
  .prof-tete{flex-direction:column;align-items:flex-start}
  .vp-bas{flex-direction:column;align-items:stretch}
  .vp-bas .btn{width:100%;text-align:center}
  .vp-tete{flex-direction:column;align-items:flex-start;gap:5px}
}

/* Profil interactif (5c) : édition, bascule newsletter, self-service RGPD */
.switch{position:relative;width:44px;height:25px;flex:0 0 auto}
.switch input{opacity:0;width:0;height:0}
.switch .sl{position:absolute;inset:0;background:var(--sable);border-radius:999px;transition:.2s;cursor:pointer}
.switch .sl::before{content:"";position:absolute;width:19px;height:19px;left:3px;top:3px;background:var(--blanc);border-radius:999px;transition:.2s}
.switch input:checked + .sl{background:var(--vert)}
.switch input:checked + .sl::before{transform:translateX(19px)}
.switch input:focus-visible + .sl{outline:3px solid var(--vert);outline-offset:3px}
.prof-news-form{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.prof-edit,.prof-suppr,.prof-export{margin-top:14px}
.prof-suppr,.prof-export{border-top:1px solid var(--bordure);padding-top:16px}
.js .prof-edit,.js .prof-suppr,.js .prof-export{display:none}
.js .prof-edit.on,.js .prof-suppr.on,.js .prof-export.on{display:block}
.js .prof-edit .cache{display:none}
@media(prefers-reduced-motion:reduce){.switch .sl,.switch .sl::before{transition:none}}

/* Mon espace 5d : objectifs (anneaux + steppers), KPIs, courbe de progression */
.obj-grille{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.obj-carte{display:flex;gap:16px;align-items:center;border:1px solid var(--bordure);border-radius:14px;padding:16px}
.obj-carte.fait{border-color:var(--vert);background:var(--blanc-casse)}
.obj-anneau{flex:0 0 auto;position:relative;width:72px;height:72px}
.obj-anneau > svg{width:72px;height:72px;transform:rotate(-90deg)}
.obj-anneau .piste{fill:none;stroke:var(--sable);stroke-width:9}
.obj-anneau .anim-ring{fill:none;stroke:var(--vert);stroke-width:9;stroke-linecap:round;stroke-dasharray:314.159;stroke-dashoffset:314.159}
.obj-centre{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.obj-centre .n{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:600;color:var(--vert);font-size:25px;line-height:1}
.obj-centre .d{font-size:10px;color:var(--gris-meta)}
.obj-centre .chk{color:var(--vert)}
.obj-titre{font-size:15px;font-weight:700;margin:0 0 3px}
.obj-detail{font-size:13px;color:var(--gris-texte);margin:0;line-height:1.45}
.obj-actions{display:flex;flex-wrap:wrap;gap:10px}
.obj-actions .btn{white-space:nowrap}
.obj-edit{display:none}
.js .obj-vue.off{display:none}
.js .obj-edit.on{display:block}
.oe-ligne{display:grid;grid-template-columns:1fr auto;gap:10px 16px;align-items:center;padding:12px 0;border-top:1px solid var(--bordure)}
.oe-ligne:first-of-type{border-top:0}
.oe-ligne label{font-size:14px;font-weight:600}
.oe-ligne .h{font-size:12.5px;color:var(--gris-meta);font-weight:400;display:block;margin-top:2px}
.oe-stepper{display:inline-flex;align-items:center;border:1px solid var(--bordure);border-radius:999px;overflow:hidden;background:var(--blanc)}
.oe-stepper button{width:46px;height:46px;border:0;background:var(--blanc);color:var(--vert);font-size:23px;font-weight:600;cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center}
.oe-stepper button:hover{background:var(--creme)}
.oe-stepper .oe-val{min-width:56px;text-align:center;font-size:18px;font-weight:700;color:var(--encre)}
.suiv-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.kpi{background:var(--blanc-casse);border:1px solid var(--bordure);border-radius:13px;padding:13px 14px}
.kpi .num{font-family:'Playfair Display',Georgia,serif;font-style:italic;color:var(--vert);font-size:26px;line-height:1}
.kpi .lab{font-size:12.5px;color:var(--gris-texte);margin-top:5px;line-height:1.35}
.chart{width:100%;height:auto;display:block}
.just-tete{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.just-tete .aide{font-size:13px;color:var(--gris-meta)}
@media (prefers-reduced-motion: no-preference){.anim-ring{transition:stroke-dashoffset 1.1s cubic-bezier(.22,1,.36,1)}}
@media(max-width:820px){.obj-grille{grid-template-columns:1fr}}
@media(max-width:560px){.suiv-kpis{grid-template-columns:1fr}.oe-ligne{grid-template-columns:1fr;gap:7px}.oe-ligne .oe-stepper{justify-self:start}.obj-carte{flex-direction:column;align-items:flex-start;gap:12px}}

/* Mon espace : contrôles de courbe (Nombre/% + période) + journal des dernières parties */
.suiv-controles{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:2px 0 14px}
.segbtn{display:inline-flex;border:1px solid var(--bordure);border-radius:999px;overflow:hidden;background:var(--blanc)}
.segbtn button{border:0;background:transparent;color:var(--gris-texte);font:inherit;font-size:14px;font-weight:600;padding:7px 16px;cursor:pointer;line-height:1.2}
.segbtn button[aria-pressed="true"]{background:var(--vert);color:var(--creme)}
.segbtn button:focus-visible{outline:3px solid var(--vert);outline-offset:2px}
.suiv-periode{font-size:14px;font-weight:600;color:var(--gris-texte);display:inline-flex;align-items:center;gap:8px}
.suiv-periode select{font:inherit;font-size:14px;padding:7px 10px;border:1px solid var(--bordure);border-radius:8px;background:var(--blanc);color:var(--encre)}
.suiv-periode select:focus-visible{outline:3px solid var(--vert);outline-offset:2px}
.suivi-parties{margin:0;padding:0}
.suivi-parties .act{border-top:1px solid var(--bordure)}
.suivi-parties .act:first-child{border-top:0}
.suivi-parties .act>summary{display:flex;align-items:baseline;gap:10px;padding:11px 0;cursor:pointer;list-style:none}
.suivi-parties .act>summary::-webkit-details-marker{display:none}
.act-chev{color:var(--gris-meta);font-weight:700;transition:transform .2s;flex:0 0 auto}
.suivi-parties .act[open] .act-chev{transform:rotate(90deg)}
.act-tete{flex:1 1 auto}
.act-tete .act-mode{font-weight:700;font-size:15px;color:var(--encre)}
.act-tete .act-date{font-size:13px;color:var(--gris-meta);margin-left:6px}
.act-resume{font-size:14px;color:var(--gris-texte);white-space:nowrap}
.act-detail{padding:0 0 12px 24px}
.act-detail dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0;font-size:13.5px}
.act-detail dt{color:var(--gris-meta)}
.act-detail dd{margin:0;font-weight:600;color:var(--encre)}
.act-vide{color:var(--gris-texte);font-size:14px;padding:8px 0;margin:0}
.act-plus{display:block;width:100%;margin-top:2px;padding:12px 0 4px;background:none;border:0;border-top:1px solid var(--bordure);color:var(--vert);font:inherit;font-size:14px;font-weight:600;cursor:pointer;text-align:center;transition:color var(--t-rapide)}
.act-plus:hover{color:var(--vert-hover);text-decoration:underline;text-underline-offset:3px}
@media(prefers-reduced-motion:reduce){.act-chev{transition:none}}
/* Mon espace : aération du bloc « À confirmer » (explication au-dessus du bouton) */
.compte .bloc-confirmer .aide-confirmer{margin:8px 0 14px}
.compte .bloc-confirmer>.btn{margin:2px 0 16px}

/* Déclaration « professionnel de santé » (fiches, une fois par appareil, app.js).
   Tokens charte uniquement ; boutons .btn existants ; aucune animation (apparition
   simple, rien à neutraliser sous prefers-reduced-motion). */
.pro-check{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(34,40,31,.55)}
.pro-check-carte{background:var(--blanc-casse);border:1px solid var(--bordure);border-radius:var(--r-grand);box-shadow:var(--ombre-elev);max-width:540px;width:100%;padding:clamp(24px,4vw,38px)}
.pro-check-carte h2{font-size:clamp(23px,3.5vw,30px);margin:0 0 12px}
.pro-check-carte p{color:var(--gris-texte);font-size:15.5px;margin:0 0 18px}
.pro-check-actions{display:grid;gap:10px;justify-items:stretch}
.pro-check-actions .btn{width:100%;text-align:center;justify-content:center}
/* La règle globale de focus pose border-radius:6px sur l'élément focalisé :
   on préserve la pilule des boutons de la modale (retour Joseph 12/07). */
.pro-check .btn:focus-visible{border-radius:999px}
.pro-check-carte:focus-visible{outline:none}
.pro-check-lien{font-size:14px;font-weight:600;color:var(--vert);text-align:center}
html.pro-check-ouverte{overflow:hidden}
.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}

/* Fil d'Ariane visible (fiches, articles) : reflète le BreadcrumbList JSON-LD.
   Tokens charte uniquement ; gris-meta 4,53:1 sur crème = AA (texte normal). */
.ariane{font-size:14px;color:var(--gris-meta);margin:18px 0 6px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ariane a{color:var(--vert);font-weight:600;text-decoration:none}
.ariane a:hover{text-decoration:underline}
.ariane .ariane-sep{color:var(--gris-meta)}
.ariane [aria-current="page"]{color:var(--gris-texte)}
/* Sur les fiches : colonne 680px centrée et rythme resserré (retours Joseph 12/07 :
   moins d'air au-dessus ET en dessous du fil d'Ariane). Le sélecteur double bat le
   padding:40px du .ljd-fiche généré (fiche.css), quel que soit l'ordre de chargement. */
.wp-block-ljd-fiche.ljd-fiche{padding-top:16px}
/* Bas de fiche (retour Joseph 12/07) : la marge de flux de 24px entre la fiche et le
   bandeau « Espace membre » laissait transparaitre le fond creme du site en une bande
   plus foncee entre deux sections blanc casse ; supprimee, et rythme resserre
   (70px generes -> 40px, le bandeau garde son padding). */
.wp-block-ljd-fiche.ljd-fiche{padding-bottom:40px}
.single-fiche .cta-membre{margin-top:0}
.ljd-fiche .ariane{max-width:680px;margin:0 auto 10px}

/* Centre de contact : la carte prend toute la colonne de contenu (alignée sur le
   texte de la page, pas de décalage de gouttières) ; padding confortable en mobile ;
   le bouton d'envoi respire au-dessus (retours Joseph 12/07). */
.ljd-contact .auth-card{max-width:none;padding:clamp(20px,4.5vw,36px)}
.ljd-contact .auth-soumettre{margin-top:22px}

/* Pages « texte » (gabarit page.html : contact, CGU, mentions, à propos…) :
   gouttières latérales sur le titre et le contenu — sans ça, la colonne 680px
   colle aux bords dès que l'écran est plus étroit (retour Joseph 12/07).
   Les articles et les jeux ont leurs propres conteneurs, non concernés. */
.page-texte .wp-block-post-title,.page-texte .wp-block-post-content{padding-inline:var(--gout)}
/* Listes à puces du contenu (RGPD, cookies, méthodo…) : indentées, sinon les puces
   collent au bord gauche sur mobile (retour Joseph 24/07). */
.page-texte .wp-block-post-content ul,.page-texte .wp-block-post-content ol{padding-left:24px;margin-bottom:16px}
.page-texte .wp-block-post-content li{margin-bottom:6px}
/* Tableau des cookies (page 293) : sur mobile, empilé en fiches lisibles d'un bloc,
   plus de défilement horizontal (retour Joseph 24/07). Scopé à la page cookies. */
@media (max-width:600px){
  .page-id-293 .wp-block-table{overflow-x:visible;margin-inline:0}
  .page-id-293 .wp-block-table table,.page-id-293 .wp-block-table tbody,.page-id-293 .wp-block-table tr,.page-id-293 .wp-block-table td{display:block;width:auto}
  .page-id-293 .wp-block-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .page-id-293 .wp-block-table tr{border:1px solid var(--bordure);border-radius:14px;padding:12px 16px;margin-bottom:14px;background:var(--blanc);box-shadow:var(--ombre-carte)}
  .page-id-293 .wp-block-table td{border:0;padding:6px 0;font-size:14.5px;line-height:1.45}
  .page-id-293 .wp-block-table td+td{border-top:1px solid var(--bordure-sable)}
  .page-id-293 .wp-block-table td::before{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;font-weight:700;color:var(--dore-texte);margin-bottom:2px}
  .page-id-293 .wp-block-table td:nth-child(1)::before{content:"Cookie"}
  .page-id-293 .wp-block-table td:nth-child(2)::before{content:"Émetteur"}
  .page-id-293 .wp-block-table td:nth-child(3)::before{content:"Finalité"}
  .page-id-293 .wp-block-table td:nth-child(4)::before{content:"Durée"}
}
/* Hubs par aire et index /fiches/ : le bloc catalogue vit SOUS une intro de page,
   son padding haut de 40px (concu pour l'archive, ou le titre est dans le bloc)
   creait un trou entre le texte et la barre de recherche (retour Joseph 12/07).
   L'archive A-Z (gabarit archive-fiche, sans .page-texte) reste inchangee. */
.page-texte .ljd-cat{padding-top:0;padding-bottom:0}
