/*
Theme Name: Secs et Vitalité
*/
@import url('https://fonts.googleapis.com/css2?family=Sen:wght@400;700&family=Karla:wght@400;700&display=swap');

/* ==========================================================================
   GABARIT « PRENDRE RENDEZ-VOUS » — un annuaire d'abord, une revue ensuite.
   Quatre choses le rendent reconnaissable, et ce sont les seules qui comptent :
   1. un MOTEUR a deux champs separes par un VRAI FILET VERTICAL, qui occupe le
      premier ecran sur un aplat (jamais une photo derriere un titre — R-0025) ;
   2. des CARTES HORIZONTALES a medaillon rond de 88 px, coiffees d'un filet
      3 px d'accent double d'un filet 1 px : la signature « filet-double » ;
   3. des listes de villes DENSES a quatre colonnes, separees par des filets 1 px
      et rien d'autre — ni carte, ni ombre, ni pastille ;
   4. une tete basse (72 px) qui ne porte le moteur miniature QUE hors accueil.
   La fonction avant la decoration : aucun ornement qui ne serve a lire.
   ========================================================================== */

/* ---------- 1. JETONS ----------------------------------------------------- */
:root{
  --fond:#f6f8f6;      /* blanc froid administratif, jamais #fff */
  --encre:#182019;     /* bleu-noir d'imprime, jamais #000 */
  --doux:#182019;      /* le gris de service : chapos, comptes, legendes (6,5:1) */
  --filet:#CACDCA;     /* le filet — CHOISI, bleute, jamais un gris pur */
  --surf:#E5E8E5;      /* l'aplat des blocs de service (moteur, en-tete de tableau) */
  --nuit:#182019;      /* la bande sombre « Comment lire une fiche » */
  --nuit-txt:#F6F8F6;
  --nuit-doux:#F6F8F6; /* 8,5:1 sur la bande sombre */
  --accent:#2f7a5c;
  --accent2:#2f7a5c;
  --accent-txt:color-mix(in srgb, #2f7a5c 0%, #1a1a1a);
  --accent2-txt:color-mix(in srgb, #2f7a5c 0%, #1a1a1a);
  --titre:'Sen','Helvetica Neue',Helvetica,Arial,sans-serif;
  --courant:'Karla','Helvetica Neue',Helvetica,Arial,sans-serif;
  --rayon:8px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --fond:#10150f; --encre:#ecf2ee; --doux:#828883; --filet:#141913; --surf:#111610;
    --nuit:#131812; --nuit-txt:#ECF2EE; --nuit-doux:#878D88;
    --accent-txt:color-mix(in srgb, #2f7a5c 0%, #ffffff);
    --accent2-txt:color-mix(in srgb, #2f7a5c 0%, #ffffff);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --fond:#10150f; --encre:#ecf2ee; --doux:#828883; --filet:#141913; --surf:#111610;
  --nuit:#131812; --nuit-txt:#ECF2EE; --nuit-doux:#878D88;
  --accent-txt:color-mix(in srgb, #2f7a5c 0%, #ffffff);
  --accent2-txt:color-mix(in srgb, #2f7a5c 0%, #ffffff);
  color-scheme:dark;
}

/* ---------- 2. SOCLE ------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--fond);color:var(--encre);
  font-family:var(--courant);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
:focus-visible{outline:2px solid var(--accent-txt);outline-offset:2px}
h1,h2,h3,h4{font-family:var(--titre);font-weight:700;margin:0;line-height:1.16;
  letter-spacing:-.014em;text-wrap:balance}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
table{border-collapse:collapse}
.sb-oeil,.sb-oeil-txt{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.sb-oeil:focus{left:.5rem;top:.5rem;width:auto;height:auto;padding:.5rem .8rem;
  background:var(--encre);color:var(--fond);z-index:99;border-radius:var(--rayon)}
.rv-enveloppe{width:min(1200px,100% - 2.4rem);margin-inline:auto}
.rv-point{display:inline-block;width:3px;height:3px;border-radius:50%;
  background:var(--filet);vertical-align:middle;margin-inline:.55em}
.jr-plaque{border-radius:var(--rayon)}

/* boutons : l'accent sert de repere, jamais de fond de texte (contraste garanti) */
.rv-bouton{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
  font-family:var(--titre);font-size:14px;font-weight:700;letter-spacing:.01em;
  padding:.62rem 1.05rem;border-radius:var(--rayon);border:1px solid var(--encre);
  background:var(--encre);color:var(--fond);cursor:pointer;white-space:nowrap}
.rv-bouton:hover{text-decoration:none;background:var(--accent-txt);border-color:var(--accent-txt)}
.rv-bouton--contour{background:transparent;color:var(--encre);border-color:var(--filet)}
.rv-bouton--contour:hover{background:var(--surf);color:var(--encre);border-color:var(--accent)}

/* ---------- 3. LA TETE : 72 px, un seul etage sur l'accueil ---------------- */
.rv-tete{background:var(--fond);position:sticky;top:0;z-index:30;
  border-bottom:1px solid var(--filet)}
.rv-tete-barre{border-bottom:1px solid transparent}
.rv-tete-in{display:flex;align-items:center;gap:1.4rem;min-height:72px}
.rv-marque a{display:flex;align-items:center;gap:.65rem}
.rv-marque a:hover{text-decoration:none}
.rv-mono{display:inline-flex;width:30px;flex:0 0 30px;color:var(--accent)}
.rv-mono svg{width:100%;height:auto;fill:currentColor}
.rv-marque-txt{display:flex;flex-direction:column;line-height:1.1}
.rv-marque-nom{font-family:var(--titre);font-weight:800;font-size:20px;
  letter-spacing:-.022em;color:var(--encre)}
.rv-marque-base{font-size:11.5px;color:var(--doux);letter-spacing:.02em;margin-top:2px}

.rv-nav{display:flex;align-items:center;gap:.15rem;margin-left:auto;
  overflow-x:auto;scrollbar-width:none}
.rv-nav::-webkit-scrollbar{display:none}
.rv-nav a{white-space:nowrap;padding:.5rem .7rem;font-size:14.5px;font-weight:600;
  color:var(--encre);border-radius:var(--rayon)}
.rv-nav a:hover{text-decoration:none;background:var(--surf)}
.rv-nav a.is-actif{color:var(--accent-txt);box-shadow:inset 0 -2px 0 var(--accent)}
.rv-tete-villes{flex:0 0 auto}
.rv-burger{display:none;background:none;border:1px solid var(--filet);cursor:pointer;
  border-radius:var(--rayon);padding:.55rem .6rem;margin-left:auto}
.rv-burger span{display:block;width:18px;height:2px;background:var(--encre);margin:3px 0}

/* hors accueil : le moteur revient, en miniature, sous la barre */
.rv-tete-recherche{background:var(--surf);border-top:1px solid var(--filet);
  padding-block:.6rem}

/* ---------- 4. LE MOTEUR : deux champs, un VRAI filet vertical ------------- */
.rv-moteur{display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(0,1.2fr) auto;
  align-items:stretch;background:var(--fond);border:1px solid var(--filet);
  border-radius:var(--rayon);padding:.32rem}
.rv-moteur-filet{display:block;width:1px;background:var(--filet);margin-block:.5rem}
.rv-moteur-champ{display:flex;flex-direction:column;justify-content:center;
  min-width:0;padding:.3rem .95rem}
.rv-moteur-label{font-family:var(--titre);font-size:10.5px;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;color:var(--doux);margin-bottom:2px}
.rv-moteur-champ input,.rv-moteur-champ select{font:inherit;font-size:16px;
  width:100%;max-width:100%;min-width:0;border:0;background:transparent;
  color:var(--encre);padding:.2rem 0;border-radius:0}
.rv-moteur-champ input::placeholder{color:var(--doux);opacity:1}
.rv-moteur-champ input:focus,.rv-moteur-champ select:focus{outline:none}
.rv-moteur-champ:focus-within .rv-moteur-label{color:var(--accent-txt)}
.rv-moteur-go{font-family:var(--titre);font-size:15px;font-weight:700;
  padding:.7rem 1.5rem;border:0;border-radius:calc(var(--rayon) - 2px);
  background:var(--encre);color:var(--fond);cursor:pointer}
.rv-moteur-go:hover{background:var(--accent-txt)}
.rv-moteur--plein{margin-top:1.4rem;box-shadow:0 1px 0 var(--filet)}
.rv-moteur--plein .rv-moteur-champ{padding-block:.55rem}
.rv-moteur--mini{max-width:min(720px,100%);padding:.22rem}
.rv-moteur--mini .rv-moteur-champ{padding:.28rem .8rem}
.rv-moteur--mini .rv-moteur-champ input,
.rv-moteur--mini .rv-moteur-champ select{font-size:15px}
.rv-moteur--mini .rv-moteur-go{padding:.5rem 1.05rem;font-size:14px}

/* ---------- 5. LE PREMIER ECRAN : un aplat, aucune image derriere ---------- */
.rv-chercher{background:var(--surf);border-bottom:1px solid var(--filet)}
.rv-chercher-in{padding-block:2.6rem 2.2rem;max-width:min(920px,100%);
  margin-inline:auto;width:min(1200px,100% - 2.4rem)}
.rv-chercher-titre{font-size:clamp(27px,3.7vw,42px);line-height:1.1}
.rv-chercher-sous{font-size:17px;color:var(--doux);margin-top:.7rem}
.rv-chercher-aide{font-size:13.5px;color:var(--doux);margin-top:.8rem;
  max-width:min(680px,100%)}
.rv-reperes{display:flex;flex-wrap:wrap;gap:0;margin-top:1.4rem;
  border-top:1px solid var(--filet);padding-top:1rem}
.rv-reperes li{display:flex;align-items:baseline;gap:.45rem;padding-right:1.5rem;
  margin-right:1.5rem;border-right:1px solid var(--filet)}
.rv-reperes li:last-child{border-right:0;margin-right:0;padding-right:0}
.rv-repere-n{font-family:var(--titre);font-size:26px;font-weight:800;
  color:var(--accent-txt);font-variant-numeric:tabular-nums;line-height:1}
.rv-repere-l{font-size:13.5px;color:var(--doux)}

/* ---------- 6. SECTIONS ---------------------------------------------------- */
.rv-section{padding-block:2.2rem}
.rv-section + .rv-section{border-top:1px solid var(--filet)}
.rv-section-tete{margin-bottom:1.2rem}
.rv-section-titre{font-size:clamp(19px,2.2vw,25px);letter-spacing:-.018em}
.rv-section-sous{font-size:14.5px;color:var(--doux);margin-top:.35rem;
  max-width:min(680px,100%)}

/* les specialites : pastilles cliquables, compte reel dans une gelule */
.rv-pastilles{display:flex;flex-wrap:wrap;gap:.55rem}
.rv-pastilles a{display:inline-flex;align-items:center;gap:.6rem;
  border:1px solid var(--filet);border-radius:999px;padding:.5rem .6rem .5rem 1.05rem;
  background:var(--fond);font-size:15px;font-weight:600}
.rv-pastilles a:hover{text-decoration:none;border-color:var(--accent);background:var(--surf)}
.rv-pastille-n{font-family:var(--titre);font-size:12.5px;font-weight:700;
  color:var(--accent-txt);background:var(--surf);border-radius:999px;
  padding:.14rem .55rem;font-variant-numeric:tabular-nums}
.rv-pastilles a:hover .rv-pastille-n{background:var(--fond)}

/* ---------- 7. LA CARTE HORIZONTALE A MEDAILLON ROND (signature) ---------- */
.rv-cartes{display:grid;gap:1rem}
.rv-carte{position:relative;display:grid;grid-template-columns:88px minmax(0,1fr);
  gap:1.15rem;align-items:start;padding:1.25rem 1.25rem 1.1rem;
  border:1px solid var(--filet);border-radius:var(--rayon);background:var(--fond);
  overflow:hidden}
/* filet-double : 3 px d'accent, double d'un filet 1 px, en tete de chaque carte */
.rv-carte::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:var(--accent);box-shadow:0 1px 0 var(--filet)}
.rv-carte:hover{border-color:var(--doux)}
.rv-carte-medaillon{display:block;width:88px;height:88px;flex:0 0 88px;
  border-radius:50%;overflow:hidden;background:var(--surf);
  box-shadow:0 0 0 1px var(--filet)}
.rv-carte-medaillon img{width:88px;height:88px;object-fit:cover;border-radius:50%}
.rv-carte-medaillon .jr-plaque{width:88px;height:88px;border-radius:50%!important;
  display:flex;align-items:center;justify-content:center}
.rv-carte-corps{min-width:0}
.rv-carte-rub{font-family:var(--titre);font-size:11px;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;color:var(--accent-txt);
  margin-bottom:.3rem}
.rv-carte-titre{font-size:19px;font-weight:700;line-height:1.24}
.rv-carte-chapo{font-size:15px;color:var(--doux);margin-top:.4rem}
.rv-carte-pied{display:flex;align-items:center;flex-wrap:wrap;font-size:12.5px;
  color:var(--doux);margin-top:.6rem;padding-top:.55rem;border-top:1px solid var(--filet)}
.rv-cartes--liste{gap:.85rem}

/* ---------- 8. « PAR VILLE » : quatre colonnes denses, filets 1 px seuls --- */
.rv-section--villes{scroll-margin-top:88px}
.rv-villes{columns:4;column-gap:2.2rem}
.rv-villes li{break-inside:avoid;border-bottom:1px solid var(--filet)}
.rv-villes a{display:flex;align-items:baseline;justify-content:space-between;gap:.7rem;
  padding:.42rem 0;font-size:15px}
.rv-villes a:hover{text-decoration:none;color:var(--accent-txt)}
.rv-ville-nom{min-width:0;overflow-wrap:anywhere}
.rv-ville-n{font-family:var(--titre);font-size:12px;font-weight:700;color:var(--doux);
  font-variant-numeric:tabular-nums;flex:0 0 auto}
.rv-villes-reste{margin-top:1.6rem;padding-top:1.1rem;border-top:1px solid var(--filet)}
.rv-villes-reste-titre{font-family:var(--titre);font-size:12px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--doux);margin-bottom:.6rem}
.rv-villes--reste{columns:3}
.rv-villes--liee{columns:3}

/* ---------- 9. LA BANDE SOMBRE : trois reperes de methode ------------------ */
.rv-nuit{background:var(--nuit);color:var(--nuit-txt);margin-block:.4rem}
.rv-nuit-in{padding-block:2.4rem}
.rv-nuit-titre{font-size:clamp(19px,2.2vw,25px);color:var(--nuit-txt)}
.rv-nuit-liste{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;margin-top:1.3rem}
.rv-nuit-liste li{padding-inline:1.6rem}
.rv-nuit-liste li:first-child{padding-left:0}
.rv-nuit-liste li:last-child{padding-right:0}
.rv-nuit-liste li + li{border-left:1px solid color-mix(in srgb, var(--nuit-txt) 22%, transparent)}
.rv-nuit-rang{display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;font-family:var(--titre);font-size:13px;
  font-weight:800;color:var(--nuit);background:var(--nuit-txt);margin-bottom:.6rem}
.rv-nuit-liste h3{font-size:17px;color:var(--nuit-txt)}
.rv-nuit-liste p{font-size:14.5px;color:var(--nuit-doux);margin-top:.35rem}

/* ---------- 10. LA GRILLE DE TROIS ---------------------------------------- */
.rv-grille3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6rem}
.rv-tuile{min-width:0}
.rv-tuile-img{display:block;border:1px solid var(--filet);border-radius:var(--rayon);
  overflow:hidden;margin-bottom:.7rem}
.rv-tuile-img img{width:100%;aspect-ratio:4/3;object-fit:cover}
.rv-tuile-img .jr-plaque{aspect-ratio:4/3}
.rv-tuile-titre{font-size:17.5px;line-height:1.25;margin-top:.2rem}

/* ---------- 11. L'ARTICLE ------------------------------------------------- */
.rv-article{padding-block:1.5rem 2.4rem}
.rv-ariane{display:flex;flex-wrap:wrap;align-items:center;font-size:12.5px;
  color:var(--doux);padding-bottom:.9rem;margin-bottom:1rem;
  border-bottom:1px solid var(--filet)}
.rv-ariane-sep{padding-inline:.5em;color:var(--filet)}
.rv-art-tete{max-width:min(780px,100%)}
.rv-art-titre{font-size:clamp(27px,4vw,42px);line-height:1.08}
/* le chapo : encadre a gauche par le filet-double de la famille */
.rv-art-chapo{font-size:18.5px;line-height:1.5;color:var(--encre);margin-top:1rem;
  background:var(--surf);border-radius:var(--rayon);padding:1rem 1.15rem;
  border-left:3px solid var(--accent);box-shadow:inset 4px 0 0 var(--fond)}
.rv-art-dates{display:flex;align-items:center;flex-wrap:wrap;font-size:12.5px;
  color:var(--doux);margin-top:.9rem}
.rv-art-photo{margin:1.5rem 0 0;border:1px solid var(--filet);
  border-radius:var(--rayon);overflow:hidden}
.rv-art-photo img{width:100%;aspect-ratio:3/2;object-fit:cover}
.rv-art-photo .jr-plaque{aspect-ratio:3/2}
.rv-art-photo figcaption{font-size:12.5px;color:var(--doux);padding:.6rem .9rem;
  background:var(--surf);border-top:1px solid var(--filet)}
.rv-art-corps{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,268px);
  gap:2.6rem;margin-top:1.8rem;align-items:start}
.rv-art-colonne{min-width:0}

/* la fiche pratique : tableau deux colonnes, coiffe du filet-double */
.rv-fiche{position:relative;border:1px solid var(--filet);border-radius:var(--rayon);
  overflow:hidden;margin-bottom:1.6rem}
.rv-fiche::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:var(--accent);box-shadow:0 1px 0 var(--filet)}
.rv-fiche-titre{font-size:13px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--doux);padding:1rem 1.1rem .7rem}
.rv-tableau-boite{overflow-x:auto}
.rv-fiche-table{width:100%;font-size:15.5px}
.rv-fiche-table th{width:34%;text-align:left;vertical-align:top;
  font-family:var(--titre);font-size:12px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--doux);background:var(--surf);
  padding:.75rem 1.1rem;border-top:1px solid var(--filet)}
.rv-fiche-table td{padding:.75rem 1.1rem;border-top:1px solid var(--filet)}
.rv-fiche-note{font-size:12.5px;color:var(--doux);padding:.75rem 1.1rem;
  border-top:1px solid var(--filet)}
.rv-plan{margin:0 0 1.6rem;border:1px solid var(--filet);border-radius:var(--rayon);
  overflow:hidden}
.rv-plan img{width:100%;aspect-ratio:16/9;object-fit:cover}
.rv-plan figcaption{font-size:12.5px;color:var(--doux);padding:.6rem .9rem;
  background:var(--surf);border-top:1px solid var(--filet)}

/* le rail : sommaire construit sur les h2 reels, puis la specialite */
.rv-art-rail{position:sticky;top:96px;display:grid;gap:1.2rem;min-width:0}
.rv-rail-titre{font-family:var(--titre);font-size:11.5px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--doux);
  padding-bottom:.5rem;border-bottom:1px solid var(--filet);margin-bottom:.6rem}
.rv-sommaire ol{counter-reset:rv-som}
.rv-sommaire li{counter-increment:rv-som;border-bottom:1px solid var(--filet)}
.rv-sommaire a{display:block;padding:.48rem 0 .48rem 1.5rem;position:relative;
  font-size:14.5px;line-height:1.35}
.rv-sommaire a::before{content:counter(rv-som);position:absolute;left:0;top:.55rem;
  font-family:var(--titre);font-size:11.5px;font-weight:700;color:var(--accent-txt);
  font-variant-numeric:tabular-nums}
.rv-rail-bloc{border:1px solid var(--filet);border-radius:var(--rayon);padding:1rem 1.05rem}
.rv-rail-txt{font-size:14.5px;color:var(--doux);margin-bottom:.8rem}
.rv-art-pied{margin-top:1.8rem;padding-top:1.2rem;border-top:1px solid var(--filet)}
.rv-section--liee{border-top:1px solid var(--filet);margin-top:2rem}

/* ---------- 12. LE CONTENU WORDPRESS ------------------------------------- */
.rv-texte{font-size:17.5px;line-height:1.68;max-width:min(760px,100%)}
.rv-texte p{margin:0 0 1.1rem}
.rv-texte h2{font-family:var(--titre);font-size:25px;margin:2.1rem 0 .7rem;
  padding-top:.9rem;border-top:3px solid var(--accent);scroll-margin-top:110px}
.rv-texte h2 + p{margin-top:.2rem}
.rv-texte h3{font-family:var(--titre);font-size:20px;margin:1.6rem 0 .5rem;
  padding-left:.75rem;border-left:3px solid var(--filet)}
.rv-texte h4{font-size:17px;margin:1.2rem 0 .4rem}
.rv-texte ul{margin:0 0 1.1rem}
.rv-texte ul li{position:relative;padding-left:1.15rem;margin-bottom:.42rem}
.rv-texte ul li::before{content:"";position:absolute;left:0;top:.72em;width:6px;height:2px;
  background:var(--accent)}
.rv-texte ol{list-style:decimal;margin:0 0 1.1rem;padding-left:1.3rem}
.rv-texte ol li{margin-bottom:.42rem}
.rv-texte a{color:var(--accent-txt);text-decoration:underline;text-underline-offset:3px}
.rv-texte blockquote{margin:1.5rem 0;padding:1rem 1.15rem;background:var(--surf);
  border-radius:var(--rayon);border-left:3px solid var(--accent2);font-size:17px}
.rv-texte blockquote p:last-child{margin-bottom:0}
.rv-texte figure{margin:1.4rem 0}
.rv-texte img{border-radius:var(--rayon)}
.rv-texte figcaption{font-size:12.5px;color:var(--doux);margin-top:.45rem}
.rv-texte table{width:100%;font-size:15.5px;margin:1.4rem 0}
.rv-texte th,.rv-texte td{border-top:1px solid var(--filet);padding:.65rem .8rem;text-align:left}
.rv-texte th{font-family:var(--titre);font-size:12px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--doux);background:var(--surf)}
/* l'encadre de la famille : administratif, jamais un conseil medical */
.rv-texte .rv-encadre{margin:1.6rem 0;padding:1.05rem 1.2rem;background:var(--surf);
  border:1px solid var(--filet);border-radius:var(--rayon);font-size:16px;
  box-shadow:inset 0 3px 0 var(--accent2)}
.rv-texte .rv-encadre > *:last-child{margin-bottom:0}
.rv-texte .rv-encadre strong:first-child{display:block;font-family:var(--titre);
  font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--accent2-txt);
  margin-bottom:.4rem}

/* signature d'auteur (produite par jr_signature) */
.sb-signature{display:flex;gap:1rem;align-items:flex-start}
.sb-signature img{width:64px;height:64px;border-radius:50%;object-fit:cover}
.sb-signature-nom{font-family:var(--titre);font-weight:700;font-size:16px}
.sb-signature-bio{font-size:14.5px;color:var(--doux);margin-top:.25rem;line-height:1.45}
.sb-date{font-size:12.5px;color:var(--doux)}

/* ---------- 13. LA RUBRIQUE ---------------------------------------------- */
.rv-rub-tete{padding-block:1.6rem 1.2rem;border-bottom:1px solid var(--filet)}
.rv-rub-titre{font-size:clamp(24px,3.4vw,36px);margin-top:.5rem}
.rv-rub-chapo{font-size:17px;color:var(--doux);margin-top:.55rem;max-width:min(680px,100%)}
.rv-rub-compte{font-family:var(--titre);font-size:12px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--accent-txt);margin-top:.7rem}
.rv-vide{color:var(--doux);padding-block:2rem}
.rv-pagination{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.8rem;
  padding-top:1.2rem;border-top:1px solid var(--filet);font-size:14px;font-weight:600}
.rv-pagination .page-numbers{padding:.42rem .75rem;border:1px solid var(--filet);
  border-radius:var(--rayon)}
.rv-pagination .current{background:var(--encre);color:var(--fond);border-color:var(--encre)}

/* ---------- 14. LE PIED --------------------------------------------------- */
.rv-pied{margin-top:2.4rem;border-top:1px solid var(--filet);background:var(--surf)}
.rv-pied-grille{display:grid;grid-template-columns:1.25fr 1.15fr .95fr .95fr;
  gap:2rem;padding-block:2.2rem}
.rv-pied-col{min-width:0}
.rv-pied-marque{display:flex;align-items:center;gap:.6rem}
.rv-mono--pied{width:28px;flex:0 0 28px}
.rv-pied-nom{font-family:var(--titre);font-weight:800;font-size:19px;letter-spacing:-.02em}
.rv-pied-base{font-size:13px;color:var(--doux);margin-top:.4rem}
.rv-pied-note{font-size:13px;color:var(--doux);margin-top:.8rem;line-height:1.5;
  padding-top:.8rem;border-top:1px solid var(--filet)}
.rv-pied-titre{font-family:var(--titre);font-size:11.5px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--doux);
  padding-bottom:.5rem;border-bottom:1px solid var(--filet);margin-bottom:.6rem}
.rv-pied-liste li{display:flex;justify-content:space-between;gap:.6rem;
  padding:.3rem 0;font-size:14.5px;border-bottom:1px solid var(--filet)}
.rv-pied-liste--deux{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:1.3rem}
.rv-pied-n{font-size:12px;color:var(--doux);font-variant-numeric:tabular-nums}
.rv-pied-lien{margin-top:.6rem;font-family:var(--titre);font-size:12px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--accent-txt)}
.rv-pied-recherche{margin-top:1rem}
.rv-pied input[type="search"],.rv-pied input[type="text"]{font:inherit;font-size:14px;
  width:100%;padding:.5rem .65rem;border:1px solid var(--filet);border-radius:var(--rayon);
  background:var(--fond);color:var(--encre)}
.rv-pied button[type="submit"],.rv-pied input[type="submit"]{font-family:var(--titre);
  font-size:13px;font-weight:700;margin-top:.45rem;padding:.5rem .95rem;
  border:1px solid var(--encre);background:var(--encre);color:var(--fond);
  border-radius:var(--rayon);cursor:pointer}
.rv-ours{display:flex;justify-content:space-between;align-items:center;gap:1rem;
  flex-wrap:wrap;padding-block:.9rem 1.1rem;border-top:1px solid var(--filet);
  font-size:12.5px;color:var(--doux)}
.rv-bascule{font-family:var(--titre);font-size:12px;font-weight:700;
  padding:.42rem .8rem;border:1px solid var(--filet);background:var(--fond);
  color:var(--encre);border-radius:var(--rayon);cursor:pointer}
.rv-bascule:hover{border-color:var(--accent)}

/* ---------- 15. BARRE MOBILE BASSE ---------------------------------------- */
.sb-nav-mobile{display:none;position:fixed;left:0;right:0;bottom:0;z-index:40;
  background:var(--fond);border-top:1px solid var(--filet);
  padding-bottom:env(safe-area-inset-bottom)}
.sb-nav-mobile-item{flex:1 1 0;display:flex;flex-direction:column;align-items:center;
  gap:2px;padding:.45rem .2rem .5rem;font-size:10px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--doux);text-align:center}
.sb-nav-mobile-item:hover{text-decoration:none}
.sb-nav-mobile-item.is-actif{color:var(--accent-txt)}
.sb-nav-ico{display:block;width:20px;height:20px}
.sb-nav-ico svg{width:100%;height:100%;stroke:currentColor;fill:none}

/* ---------- 16. REPLIS (jamais un debordement horizontal) ----------------- */
@media (max-width: 1080px){
  .rv-villes{columns:3}
  .rv-villes--reste,.rv-villes--liee{columns:2}
  .rv-grille3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rv-art-corps{grid-template-columns:minmax(0,1fr)}
  .rv-art-rail{position:static;max-width:min(760px,100%)}
  .rv-pied-grille{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem}
  .rv-nuit-liste{grid-template-columns:minmax(0,1fr)}
  .rv-nuit-liste li{padding-inline:0;padding-block:1rem}
  .rv-nuit-liste li + li{border-left:0;
    border-top:1px solid color-mix(in srgb, var(--nuit-txt) 22%, transparent)}
}
@media (max-width: 760px){
  .rv-tete{position:static}
  .rv-tete-in{min-height:64px;gap:.8rem}
  .rv-nav{position:absolute;left:0;right:0;top:100%;flex-direction:column;
    align-items:stretch;background:var(--fond);border-bottom:1px solid var(--filet);
    max-height:0;overflow:hidden;padding-inline:1.2rem;z-index:31}
  .rv-nav.is-ouvert{max-height:none;overflow:visible;padding-block:.5rem}
  .rv-nav a{border-bottom:1px solid var(--filet);border-radius:0}
  .rv-tete-barre{position:relative}
  .rv-tete-villes{display:none}
  .rv-burger{display:block}
  .rv-moteur{grid-template-columns:minmax(0,1fr);gap:0}
  .rv-moteur-filet{width:auto;height:1px;margin-block:0;margin-inline:.95rem}
  .rv-moteur-go{margin-top:.4rem;width:100%;padding-block:.8rem}
  .rv-moteur--mini{max-width:100%}
  .rv-chercher-in{padding-block:1.8rem 1.6rem}
  .rv-villes{columns:2}
  .rv-villes--reste,.rv-villes--liee{columns:1}
  .rv-grille3{grid-template-columns:minmax(0,1fr)}
  .rv-carte{grid-template-columns:88px minmax(0,1fr);gap:.95rem;padding:1.1rem}
  .rv-pied-grille{grid-template-columns:minmax(0,1fr)}
  .rv-pied-liste--deux{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rv-art-chapo{font-size:17px}
  .sb-nav-mobile{display:flex}
  body{padding-bottom:64px}
}
@media (max-width: 480px){
  .rv-villes,.rv-pied-liste--deux{columns:1;grid-template-columns:minmax(0,1fr)}
  .rv-marque-base{display:none}
  .rv-carte{grid-template-columns:minmax(0,1fr)}
  .rv-carte-medaillon{margin-bottom:.2rem}
  .rv-reperes li{border-right:0;margin-right:0;padding-right:0;flex:1 1 100%;
    padding-block:.2rem}
  .rv-texte{font-size:17px}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}
@media print{
  .rv-tete-recherche,.rv-nav,.sb-nav-mobile,.rv-art-rail,.rv-bascule,.rv-moteur{display:none!important}
}

/* garde-fou : un display:grid/flex de classe bat l'attribut hidden */
[hidden]{display:none!important}

/* P-470 — la 1re carte de l accueil porte grid-column:span 2 en style INLINE.
   Sur telephone la grille n a plus qu une colonne : le span fabrique une colonne
   implicite dimensionnee sur le contenu (526px dans un ecran de 390) et pousse la page.
   !important est indispensable : on annule un style inline. */
@media (max-width:760px){.sb-grille>*{grid-column:auto!important}}

/* P-491 — display:contents : le h1 de la marque n existe pas pour la mise en page. */
.sb-marque-h1{display:contents}
