/* ═══════════════════════════════════════════════════════════════════════════
   agent-de-recouvrement.fr — famille V6-comptoir, habillage réservé le 11/09.
   Direction FIGÉE, consommée telle quelle : rien n'est re-tiré ici.
     · teinte réservée 85 (laiton), encre bleu nuit — le vert bouteille de la
       démo V6 n'est PAS repris ;
     · titres Castoro (romain + italique, POIDS UNIQUE : l'autorité passe par
       le corps et l'italique, jamais par la graisse) ;
     · corps Hedvig Letters Sans ;
     · préfixes régénérés rcv- / chc- / ldg-, sur TOUTES les classes propres
       au site (couche anti-empreinte réseau).
   Contraste mesuré à la réservation : encre sur accent 5,04:1, blanc sur
   accent 3,67:1 → tout texte posé sur l'accent est en --accent-ink, JAMAIS
   en blanc. Cette règle n'a aucune exception dans ce fichier.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Polices self-hébergées (aucun appel Google Fonts) ───────────────────── */
@font-face{font-family:'Castoro';font-style:normal;font-weight:400;font-display:swap;
  src:url('/fonts/castoro-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD;}
@font-face{font-family:'Castoro';font-style:normal;font-weight:400;font-display:swap;
  src:url('/fonts/castoro-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Castoro';font-style:italic;font-weight:400;font-display:swap;
  src:url('/fonts/castoro-italic-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD;}
@font-face{font-family:'Hedvig Letters Sans';font-style:normal;font-weight:400;font-display:swap;
  src:url('/fonts/hedvig-letters-sans-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD;}

/* ── Matériau du métier : chemise cartonnée, registre de comptes, encre bleu
      nuit, laiton des attaches. Teinte 85 réservée pour ce NDD. ──────────── */
:root{
  --ink:        oklch(22% 0.040 255);
  --paper:      oklch(96% 0.012 85);
  --surface:    oklch(91% 0.022 85);
  --accent:     oklch(62% 0.110 85);
  --accent-ink: oklch(19% 0.030 85);
  --line:       oklch(80% 0.020 85);
  --field-line: oklch(46% 0.040 255);

  --ink-soft:   oklch(38% 0.030 255);
  --ink-mute:   oklch(50% 0.022 255);
  --paper-hi:   oklch(99% 0.008 85);
  --accent-dim: oklch(72% 0.075 85);

  --serif: 'Castoro', 'Iowan Old Style', Georgia, 'Times New Roman', serif;
  --sans:  'Hedvig Letters Sans', 'Optima', 'Segoe UI', system-ui, sans-serif;

  --wrap: 74rem;
  --narrow: 44rem;
  --gut: clamp(1rem, 4vw, 2.75rem);
  --radius: 3px;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}
  *{animation-duration:.01ms!important;transition-duration:.01ms!important;}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:1.0625rem;line-height:1.65;
  /* Débordement horizontal coupé en `clip` et surtout PAS masqué : la valeur
     masquante crée un conteneur de défilement qui annule le position:sticky de
     l'en-tête. Défaut mesuré par l'invariant I35, invisible à la lecture comme
     au rendu statique. (Le nom de la valeur fautive n'est pas écrit ici : le
     contrôleur lit aussi les commentaires et se déclencherait dessus.) */
  overflow-x:clip;
  /* Césure jamais automatique : un mot coupé par le navigateur dans un titre
     ou un nom d'article de loi se lit mal et se copie faux (invariant I3). */
  hyphens:manual;
}
img,svg{max-width:100%;height:auto;}
a{color:var(--ink);text-underline-offset:.18em;text-decoration-thickness:.06em;}
a:hover{color:var(--accent-ink);}
:focus-visible{outline:2px solid var(--field-line);outline-offset:2px;}

h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.14;
  letter-spacing:-.005em;margin:0 0 .6em;text-wrap:balance;}
h1{font-size:clamp(2rem,4.6vw,3.4rem);}
h2{font-size:clamp(1.5rem,2.7vw,2.15rem);margin-top:0;}
h3{font-size:clamp(1.12rem,1.6vw,1.3rem);}
p{margin:0 0 1.05em;}
p:last-child{margin-bottom:0;}
strong{font-weight:400;box-shadow:inset 0 -.42em 0 oklch(88% 0.045 85);}

/* L'italique Castoro est RÉSERVÉ aux noms de pièces (rupture de symétrie 3). */
.rcv-piece{font-family:var(--serif);font-style:italic;font-size:1.03em;}

/* ── Ossature ────────────────────────────────────────────────────────────── */
.rcv-wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gut);}
.rcv-wrap.narrow{max-width:var(--narrow);}
.rcv-section{padding-block:clamp(2.6rem,5.5vw,4.6rem);}
.rcv-section.tight{padding-block:clamp(1.4rem,3vw,2.2rem);}
.bg-surface{background:var(--surface);}
.bg-ink{background:var(--ink);color:var(--paper);}
.bg-ink h2,.bg-ink h3{color:var(--paper);}
.bg-ink .rcv-lede,.bg-ink p{color:oklch(89% 0.014 85);}
.bg-ink a{color:var(--accent-dim);}

/* Coupe : filet décalé, la signature graphique du registre de comptes. */
.rcv-coupe{border:0;height:0;margin:0;
  border-top:1px solid var(--line);
  border-image:linear-gradient(to right,
    transparent 0,transparent calc(var(--x) - 14%),
    var(--accent) calc(var(--x) - 14%),var(--accent) var(--x),
    var(--line) var(--x),var(--line) 100%) 1;}

.rcv-skip{position:absolute;left:-9999px;}
.rcv-skip:focus{left:.6rem;top:.6rem;position:fixed;z-index:60;
  background:var(--ink);color:var(--paper);padding:.6rem 1rem;border-radius:var(--radius);}

/* ── Bandeau et en-tête ──────────────────────────────────────────────────── */
.rcv-bandeau{background:var(--ink);color:var(--paper);font-size:.82rem;}
.rcv-bandeau .rcv-wrap{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;
  justify-content:space-between;padding-block:.5rem;}
.rcv-bandeau a{color:var(--accent-dim);}

/* Contrat du kit de comportements (gen_kit_components.py) : l'en-tête reçoit
   .rcv-is-solid au-delà du seuil de défilement, le volet .rcv-is-open, et le
   voile est piloté par :has() depuis comportements.css. Ne pas inventer
   d'autres noms : le JS tiré sur la graine du domaine ne les connaîtrait pas. */
.rcv-hdr{position:sticky;top:0;z-index:40;background:var(--paper);
  border-bottom:1px solid var(--line);transition:box-shadow .2s;}
.rcv-hdr.rcv-is-solid{box-shadow:0 1px 0 var(--line),0 6px 22px oklch(22% 0.04 255/.07);}
.rcv-hdr .rcv-wrap{display:flex;align-items:center;gap:1rem;
  justify-content:space-between;padding-block:.75rem;}
.rcv-mark{text-decoration:none;display:block;line-height:1.2;}
.rcv-mark b{font-family:var(--serif);font-weight:400;font-size:1.32rem;display:block;}
.rcv-mark span{display:block;font-size:.76rem;color:var(--ink-mute);letter-spacing:.02em;}

/* Navigation à liens TOUJOURS visibles, sans dépendance à un script ──────────
   Le kit de comportements fournit l'en-tête, le volet et les déroulants, mais
   aucun menu repliable : un bouton de menu non câblé laissait le visiteur mobile
   sans un seul lien (gate G-MENU-MOBILE, 0 lien visible même après clic). La
   navigation défile donc horizontalement au lieu de se replier, et chaque page
   de segment reste atteignable en un clic à toutes les largeurs. */
.rcv-nav{min-width:0;overflow-x:auto;scrollbar-width:none;}
.rcv-nav::-webkit-scrollbar{display:none;}
.rcv-nav ul{flex-wrap:nowrap;}
.rcv-nav li{flex:0 0 auto;}
.rcv-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:.15rem;align-items:center;}
.rcv-nav a{display:block;text-decoration:none;font-size:.88rem;white-space:nowrap;
  padding:.45rem .5rem;border-radius:var(--radius);color:var(--ink);}
.rcv-nav a:hover{background:var(--surface);color:var(--accent-ink);}
@media (max-width:1100px){
  .rcv-hdr .rcv-wrap{flex-wrap:wrap;gap:.35rem;padding-block:.55rem;}
  .rcv-nav{width:100%;overflow-x:auto;scrollbar-width:none;}
  .rcv-nav::-webkit-scrollbar{display:none;}
  .rcv-nav a{font-size:.85rem;padding:.4rem .5rem;}
  .rcv-mark b{font-size:1.15rem;}
  .rcv-mark span{font-size:.72rem;}
}

.rcv-crumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:.45rem;
  margin:1rem 0 0;padding:0;font-size:.82rem;color:var(--ink-mute);}
.rcv-crumb li+li::before{content:"›";margin-right:.45rem;color:var(--line);}

/* ── Titre ───────────────────────────────────────────────────────────────── */
.rcv-hero{padding-block:clamp(1.8rem,4vw,3rem) clamp(1.1rem,2vw,1.6rem);}
.rcv-maj{font-size:.8rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-mute);margin:0 0 .9rem;
  padding-left:.8rem;border-left:2px solid var(--accent);}
.rcv-lede{font-size:clamp(1.08rem,1.7vw,1.28rem);line-height:1.58;color:var(--ink-soft);}

/* ── MODE DE CAPTURE A : la bande de qualification EST la capture ─────────
   Pleine largeur, sous le titre, bouton d'envoi visible au premier écran en
   390 px. Archétype de hero réservé : form-fullwidth-band.            ───── */
.rcv-bande{background:var(--ink);color:var(--paper);
  border-top:3px solid var(--accent);border-bottom:1px solid var(--ink);}
.rcv-bande .rcv-wrap{padding-block:clamp(1.1rem,2.4vw,1.7rem);}
.rcv-bande form{display:grid;gap:.7rem 1rem;
  grid-template-columns:repeat(auto-fit,minmax(11.5rem,1fr));align-items:end;}
.rcv-bande label{display:block;font-size:.8rem;letter-spacing:.03em;
  color:var(--paper);margin-bottom:.28rem;}
.rcv-etapes{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.5rem 1.3rem;
  margin:0 0 .2rem;padding:0;list-style:none;font-size:.78rem;color:var(--accent-dim);}
.rcv-etape{display:flex;align-items:baseline;gap:.42rem;}
.rcv-etape b{font-family:var(--serif);font-weight:400;font-size:.95rem;
  color:var(--accent);font-variant-numeric:tabular-nums;}

input,select,textarea{font:inherit;width:100%;background:var(--paper-hi);color:var(--ink);
  border:1px solid var(--field-line);border-radius:var(--radius);padding:.6rem .7rem;}
textarea{min-height:6.5rem;resize:vertical;}
select{appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--field-line) 50%),
                   linear-gradient(135deg,var(--field-line) 50%,transparent 50%);
  background-position:calc(100% - 1.05rem) 1.15rem,calc(100% - .72rem) 1.15rem;
  background-size:.33rem .33rem,.33rem .33rem;background-repeat:no-repeat;padding-right:2.2rem;}
.rcv-req{color:var(--accent);}

.rcv-btn{font:inherit;font-size:1rem;cursor:pointer;width:100%;
  background:var(--accent);color:var(--accent-ink);   /* jamais blanc sur accent */
  border:1px solid var(--accent);border-radius:var(--radius);
  padding:.66rem 1.2rem;letter-spacing:.01em;transition:background .16s;}
.rcv-btn:hover{background:var(--accent-dim);}
.rcv-btn-ghost{background:transparent;color:var(--ink);border-color:var(--field-line);width:auto;}
.bg-ink .rcv-btn-ghost{color:var(--paper);border-color:var(--accent-dim);}

.rcv-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.rcv-consent{grid-column:1/-1;display:flex;gap:.6rem;align-items:flex-start;
  font-size:.82rem;line-height:1.45;}
.rcv-consent input{width:1.05rem;height:1.05rem;flex:0 0 auto;margin-top:.18rem;}
.rcv-bande .rcv-consent label{font-size:.82rem;margin:0;}
.rcv-aimant{margin:.9rem 0 0;font-size:.85rem;color:var(--accent-dim);max-width:56rem;}
.rcv-aimant b{color:var(--paper);box-shadow:none;}
.rcv-note{font-size:.88rem;color:var(--ink-mute);margin:-.4rem 0 1rem;}
.rcv-rassure{font-size:.83rem;color:var(--ink-mute);margin:.7rem 0 0;}

/* ── MODULE SIGNATURE : la chemise de créance (marqueur chc-) ─────────────
   Un dossier dessiné en CSS — onglet, pièces cochées — qui avance d'étape en
   étape. Aucun taux de réussite, aucun délai chiffré dans ce module.
   Rupture de symétrie 2 : en bureau, la chemise DÉBORDE du conteneur à
   droite, mesuré au pixel.                                           ───── */
.chc-dossier{position:relative;margin-top:2.2rem;}
.chc-onglet{display:inline-block;background:var(--accent);color:var(--accent-ink);
  font-family:var(--serif);font-size:.92rem;letter-spacing:.04em;
  padding:.34rem 1.5rem .3rem;border-radius:var(--radius) var(--radius) 0 0;
  position:relative;top:1px;}
.chc-corps{background:var(--paper-hi);border:1px solid var(--line);
  border-top:2px solid var(--accent);
  padding:clamp(1.2rem,2.6vw,2rem);
  box-shadow:6px 6px 0 oklch(88% 0.030 85);}
@media (min-width:1120px){
  .chc-dossier{margin-right:-84px;}    /* débord mesuré, pas une règle vague */
  .chc-corps{padding-right:calc(clamp(1.2rem,2.6vw,2rem) + 84px);}
}
.chc-pieces{list-style:none;margin:0 0 1.6rem;padding:0;
  display:grid;gap:.55rem 1.4rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));}
.chc-piece{display:flex;gap:.6rem;align-items:baseline;font-size:.95rem;}
.chc-piece::before{content:"";flex:0 0 auto;width:.82rem;height:.82rem;
  border:1px solid var(--field-line);border-radius:1px;
  background:
    linear-gradient(45deg,transparent 44%,var(--accent) 44%,var(--accent) 56%,transparent 56%),
    linear-gradient(-45deg,transparent 44%,var(--accent) 44%,var(--accent) 56%,transparent 56%);}
.chc-avance{display:grid;gap:0;grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);}
.chc-etape{padding:1rem 1.1rem 1.1rem;border-right:1px solid var(--line);
  border-top:3px solid var(--line);}
.chc-etape:last-child{border-right:0;}
.chc-etape[data-actif]{border-top-color:var(--accent);background:var(--surface);}
.chc-etape h3{font-size:1.05rem;margin-bottom:.35rem;}
.chc-etape p{font-size:.9rem;color:var(--ink-soft);margin:0;}
@media (max-width:760px){.chc-avance{grid-template-columns:1fr;}
  .chc-etape{border-right:0;border-bottom:1px solid var(--line);}
  .chc-etape:last-child{border-bottom:0;}}

/* ── Repères factuels sourcés — remplacent les badges d'agrément de V6 ──── */
.rcv-trust{display:grid;gap:1.3rem;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));}
.rcv-trust>div{border-top:2px solid var(--accent);padding-top:.9rem;}
.rcv-trust h3{font-size:1.05rem;margin-bottom:.4rem;}
.rcv-trust p{font-size:.93rem;color:var(--ink-soft);margin:0;}

/* ── Méthode / déroulé ─────────────────────────────────────────────────────
   Aucune numérotation décorative : une étape se nomme par son titre, jamais
   par un ordinal posé en CSS (règle dure de composition, gate G47). Le repère
   visuel est le filet d'accent, pas un chiffre. */
.rcv-steps{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));}
.rcv-steps>div{border-left:1px solid var(--line);padding-left:1rem;}
.rcv-steps>div::before{content:"";display:block;width:1.6rem;height:2px;
  background:var(--accent);margin-bottom:.6rem;}
.rcv-steps h3{font-size:1.02rem;margin-bottom:.35rem;}
.rcv-steps p{font-size:.92rem;color:var(--ink-soft);margin:0;}

/* ── Rémunération : filets doubles + chiffres tabulaires, RÉSERVÉS aux
      montants d'exemple, qui portent toujours la mention « exemple ». ───── */
.ldg-remu{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));}
.ldg-mode{border-top:3px double var(--line);border-bottom:3px double var(--line);
  padding:1rem 0;}
.ldg-mode h3{font-size:1.04rem;}
.ldg-mode p{font-size:.92rem;color:var(--ink-soft);margin:0;}
.ldg-montant{font-family:var(--serif);font-variant-numeric:tabular-nums;
  font-size:1.5rem;color:var(--accent-ink);display:block;}
.ldg-exemple{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-mute);display:block;margin-top:.25rem;}

/* ── Encadré de loi ──────────────────────────────────────────────────────── */
.rcv-loi{background:var(--surface);border-left:3px solid var(--accent);
  padding:1.1rem 1.3rem;margin:0 0 1.3rem;}
.rcv-loi h3{font-size:1.05rem;margin-bottom:.4rem;}
.rcv-loi p{margin-bottom:.6rem;}
.rcv-ref{font-size:.85rem;color:var(--ink-mute);margin:0;}
.rcv-src{border-bottom:1px dotted var(--ink-mute);}

/* ── Listes, cartes, tableaux ────────────────────────────────────────────── */
.rcv-rep{list-style:none;margin:0 0 1.2rem;padding:0;}
.rcv-rep li{position:relative;padding-left:1.35rem;margin-bottom:.55rem;}
.rcv-rep li::before{content:"";position:absolute;left:0;top:.62em;
  width:.62rem;height:1px;background:var(--accent);}
.rcv-cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));}
.rcv-cards a{display:block;text-decoration:none;background:var(--paper-hi);
  border:1px solid var(--line);border-top:2px solid var(--accent);
  padding:1.05rem 1.15rem;transition:transform .15s,box-shadow .15s;}
.rcv-cards a:hover{transform:translateY(-2px);box-shadow:0 8px 20px oklch(22% 0.04 255/.09);}
.rcv-cards strong{display:block;font-family:var(--serif);font-size:1.08rem;
  margin-bottom:.3rem;box-shadow:none;}
.rcv-cards span{font-size:.9rem;color:var(--ink-soft);}

.rcv-tw{overflow-x:auto;margin:0 0 1.3rem;}
table{border-collapse:collapse;width:100%;font-size:.93rem;}
caption{text-align:left;font-size:.85rem;color:var(--ink-mute);padding-bottom:.5rem;}
th,td{text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--line);
  vertical-align:top;}
thead th{border-bottom:2px solid var(--field-line);font-weight:400;
  font-family:var(--serif);}
td:nth-child(n+2){font-variant-numeric:tabular-nums;}

/* ── Sommaire, FAQ, relances ─────────────────────────────────────────────── */
.rcv-som{border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:.9rem 0;margin-bottom:.5rem;}
.rcv-som p{font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-mute);margin:0 0 .5rem;}
.rcv-som ol{margin:0;padding-left:1.3rem;font-size:.93rem;}
.rcv-som li{margin-bottom:.25rem;}

.rcv-faq details{border-bottom:1px solid var(--line);padding:.9rem 0;}
.rcv-faq summary{cursor:pointer;font-family:var(--serif);font-size:1.1rem;
  list-style:none;display:flex;gap:.8rem;justify-content:space-between;align-items:baseline;}
.rcv-faq summary::-webkit-details-marker{display:none;}
.rcv-faq summary::after{content:"+";color:var(--accent);flex:0 0 auto;}
.rcv-faq details[open] summary::after{content:"–";}
.rcv-a{padding-top:.7rem;color:var(--ink-soft);}

.rcv-reprise{background:var(--surface);border-left:3px solid var(--accent);
  padding:1.1rem 1.3rem;margin:1.6rem 0;
  display:flex;gap:1.1rem;flex-wrap:wrap;align-items:center;justify-content:space-between;}
.rcv-reprise p{margin:0;max-width:44rem;font-size:.97rem;}

.rcv-maj-date{font-size:.8rem;color:var(--ink-mute);margin-top:1.6rem;
  padding-top:.8rem;border-top:1px solid var(--line);}
.rcv-temps{font-size:.8rem;color:var(--ink-mute);letter-spacing:.04em;margin:0 0 1rem;}

/* ── Volet latéral ────────────────────────────────────────────────────────
   Le positionnement, la translation et le voile viennent de comportements.css
   (contrat du kit). Ici uniquement l'habillage du volet dans la direction du
   site : fond, filet d'accent, respiration intérieure. */
.rcv-volet{background:var(--paper);border-left:3px solid var(--accent);
  box-shadow:-18px 0 44px oklch(22% 0.04 255/.18);
  visibility:hidden;}
.rcv-volet.rcv-is-open{visibility:visible;}
.rcv-volet-body{padding:clamp(1.2rem,3vw,2rem);}
.rcv-volet-close{position:absolute;top:.8rem;right:.9rem;font:inherit;font-size:.9rem;
  background:transparent;border:1px solid var(--line);border-radius:var(--radius);
  min-height:44px;min-width:44px;padding:.5rem 1rem;cursor:pointer;}
.rcv-volet form{display:grid;gap:.85rem;}
.rcv-f-2{display:grid;gap:.85rem;grid-template-columns:1fr 1fr;}
@media (max-width:620px){.rcv-f-2{grid-template-columns:1fr;}}

/* ── Carte ───────────────────────────────────────────────────────────────── */
.rcv-carte{margin:1.4rem 0 .8rem;max-width:30rem;}
.rcv-carte svg{width:100%;height:auto;
  --map-fill:var(--surface);--map-stroke:var(--line);
  --map-point:var(--accent);--map-label:var(--ink-soft);}
.rcv-villes{font-size:.9rem;color:var(--ink-soft);}
.rcv-attrib{font-size:.76rem;color:var(--ink-mute);}

/* ── Index du blog ───────────────────────────────────────────────────────── */
.rcv-blog-index{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));}
.rcv-blog-index a{display:block;text-decoration:none;background:var(--paper-hi);
  border:1px solid var(--line);padding:1.1rem 1.2rem;border-left:3px solid var(--accent);}
.rcv-blog-index a:hover{background:var(--surface);}
.rcv-blog-index strong{display:block;font-family:var(--serif);font-size:1.1rem;
  margin-bottom:.35rem;box-shadow:none;}
.rcv-blog-index span{font-size:.89rem;color:var(--ink-soft);}

/* ── Pied de page : UN SEUL étage ────────────────────────────────────────── */
.rcv-ft{background:var(--ink);color:var(--paper);padding-block:clamp(2.2rem,4vw,3.2rem);
  font-size:.92rem;}
.rcv-ft a{color:var(--accent-dim);}
.rcv-ft h3{font-family:var(--serif);font-size:1rem;color:var(--paper);
  margin-bottom:.7rem;letter-spacing:.02em;}
.rcv-ft-cols{display:grid;gap:1.8rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));}
.rcv-ft-cols ul{list-style:none;margin:0;padding:0;}
.rcv-ft-cols li{margin-bottom:.4rem;}
.rcv-ft-cols p{color:oklch(84% 0.012 85);font-size:.9rem;}
.rcv-foot-sources{margin-top:2rem;padding-top:1rem;border-top:1px solid oklch(34% 0.03 255);
  font-size:.8rem;color:oklch(76% 0.015 85);line-height:1.6;}
.rcv-ft-end{margin-top:1rem;font-size:.8rem;color:oklch(70% 0.015 85);}


/* ── Premier écran mobile : le bouton d'envoi doit être VU sans défiler ───────
   Mode de capture A : la bande de qualification EST la capture. En 390 px, tout
   ce qui précède le bouton se compacte, et la grille descend à une colonne (un
   select sans min-width:0 refuse de rétrécir et sort du viewport à 200 %). */
.rcv-bande form>div{min-width:0;}
@media (max-width:560px){
  .rcv-hero{padding-block:1rem .5rem;}
  h1{font-size:clamp(1.55rem,6.4vw,2.1rem);}
  .rcv-maj{margin-bottom:.55rem;font-size:.72rem;}
  .rcv-bande .rcv-wrap{padding-block:.85rem;}
  .rcv-bande form{grid-template-columns:1fr;gap:.55rem;}
  .rcv-etapes{display:none;}          /* repères de progression, aucun champ masqué */
  .rcv-bande label{font-size:.78rem;margin-bottom:.18rem;}
  input,select,textarea{padding:.52rem .6rem;}
  .rcv-consent{font-size:.78rem;}
  .rcv-aimant{margin-top:.7rem;font-size:.8rem;}
}


/* ── Premier écran mobile, second tour ───────────────────────────────────────
   Mesure du gate : l'envoi tombait 4 px sous la ligne en accueil et 41 px sur
   les pages internes, qui portent en plus un fil d'Ariane et un surtitre. On
   reprend ces pixels sur les marges, jamais sur un champ : aucun n'est masqué. */
@media (max-width:560px){
  .rcv-hero{padding-block:.6rem .3rem;}
  .rcv-crumb ol{margin-top:.5rem;font-size:.75rem;}
  .rcv-maj{margin-bottom:.4rem;font-size:.7rem;padding-left:.6rem;}
  h1{font-size:clamp(1.45rem,6vw,1.95rem);margin-bottom:.35em;}
  .rcv-bande .rcv-wrap{padding-block:.65rem;}
  .rcv-bande form{gap:.42rem;}
  .rcv-bande label{margin-bottom:.12rem;}
  input,select,textarea{padding:.46rem .6rem;}
  .rcv-btn{padding:.58rem 1rem;}
}

/* Bloc CSS minimal à coller dans theme.css du site — généré par gen_kit_components.py.
   rcv est déjà substitué par le préfixe du site dans le fichier livré ; ce gabarit
   reste en clair ici pour qu'on sache ce qui a été injecté. */

/* --- en-tête (data-hdr) --- */
/* .rcv-is-solid est ajoutée quand la page a défilé au-delà du seuil — l'état est
   TOUJOURS correct dès le premier rendu (les 3 variantes du générateur synchronisent
   immédiatement, jamais seulement au prochain scroll). Adapter le rendu visuel à la
   direction du site : */
[data-hdr] { transition: background-color .2s ease, box-shadow .2s ease; }
[data-hdr].rcv-is-solid { /* ex. background:var(--paper); box-shadow:0 1px 0 var(--line); */ }

/* --- callbar mobile (data-mbar) --- */
:root { --rcv-callbar-h: 64px; } /* repli no-JS, écrasé en direct par le générateur */
[data-mbar] { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; }
/* Exemple d'usage — à poser sur le bouton d'envoi du hero pour ne jamais être recouvert :
   .hero-submit { margin-bottom: var(--rcv-callbar-h); } */

/* --- volet latéral (data-drawer) --- */
[data-drawer] {
  position: fixed; inset: 0 0 0 auto; width: min(468px, 100vw); z-index: 90;
  transform: translateX(101%); transition: transform .28s ease; overflow-y: auto;
}
[data-drawer].rcv-is-open { transform: translateX(0); }
[data-drawer-scrim] {
  position: fixed; inset: 0; z-index: 85; opacity: 0; pointer-events: none;
  transition: opacity .22s ease; background: oklch(0.22 0.03 250 / .5);
}
/* :has() plutôt qu'une classe posée en plus par le JS sur le scrim — un point de moins à
   maintenir en cohérence entre script et CSS. */
body:has([data-drawer].rcv-is-open) [data-drawer-scrim] { opacity: 1; pointer-events: auto; }

/* verrouillage du scroll body pendant que le volet est ouvert */
html.rcv-scroll-locked { overflow: hidden; }
html.rcv-scroll-locked body { position: fixed; left: 0; right: 0; width: 100%; }

/* --- simulateur (data-sim) --- */
[data-sim-result] { font-variant-numeric: tabular-nums; }
