/* ============================================================================
   RESPIRIT — site.css — compléments du site public respirit.fr
   ----------------------------------------------------------------------------
   Chargée APRÈS /assets/pp.css, sur les pages publiques seulement
   (accueil, /securite, /checklist, /404). Les portails privés ne la chargent pas.

   Règles :
     · jetons --pp-* uniquement ; aucune couleur en dur ;
     · préfixe rs- pour tout composant nouveau ; aucune classe pp-* redéfinie ;
     · les rares compléments posés sur un élément pp-* sont contextuels
       (dans main, dans un composant rs-, ou à l'impression) et regroupés en § 2 ;
     · le mode sombre suit les jetons de pp.css (préférence système et
       [data-theme]) : rien à déclarer ici.

   Gabarits attendus par les pages internes (le reste suit copy.md § 3 et § 4) :

     <section class="pp-hero rs-page-hero"><div class="pp-container">
       <p class="pp-label">…</p><h1 class="pp-hero__title">…</h1>
       <p class="pp-lead">…</p><p class="pp-hero__meta">…</p>
       <div class="rs-actions">…boutons, liens…</div>
     </div></section>

     <article class="rs-qa">
       <h2><svg class="rs-ico" aria-hidden="true" focusable="false"><use href="#ico-securite"/></svg>Question</h2>
       <p>Réponse…</p>
     </article>

     <ol class="rs-rules"><li><article class="rs-rule">
       <span class="rs-rule__num">01</span>
       <h2 class="rs-rule__title">…</h2>
       <p class="rs-rule__text">…</p>
       <dl class="rs-rule__meta"><dt>Pourquoi</dt><dd>…</dd>
         <dt>Comment le vérifier</dt><dd>…</dd><dt>Référence</dt><dd>pastille</dd></dl>
     </article></li>…</ol>

     <div class="rs-cta-band">
       <p class="rs-cta-band__text">Phrase</p>
       <div class="rs-cta-band__actions">boutons, puis <p class="rs-cta-band__line">…</p></div>
     </div>
     (une structure à plat — p, boutons, p, lien — est aussi mise en page)

   SOMMAIRE
      0. Gouttière mobile
      1. Règles déménagées du <style> en ligne de l'ancien index.html
      2. Compléments contextuels : pictogrammes, pastilles, zones tactiles
      3. En-tête
      4. Sections de l'accueil
      5. Hero et carte fondateur
      6. Listes à pictogramme (.rs-decisions, .rs-keys)
      7. Chiffres dans la prose (.rs-figures)
      8. Étude de cas et tuiles KPI
      9. Parcours et prix
     10. Bandeau d'appel et rangée d'actions
     11. Pages internes : en-tête compact, questions, règles, références
     12. Pied de page
     13. Impression
   ========================================================================== */

/* ============================================================================
   0bis. POLICES AUTO-HÉBERGÉES — @font-face (latin + latin-ext)
   ----------------------------------------------------------------------------
   Remplace fonts.googleapis.com / fonts.gstatic.com : aucune requête tierce.
   Fichiers dans assets/fonts/ (licence SIL OFL 1.1, voir assets/fonts/OFL.txt).
   ========================================================================== */

/* Respirit — polices auto-hébergées (latin + latin-ext), extraites de Google Fonts le 2026-09-27.
   IBM Plex Mono 400/500/600, Sora 400/500/600/700, Source Sans 3 400/500/600/700 (+ italique 400/600).
   Licence : SIL Open Font License 1.1 — voir assets/fonts/OFL.txt. */

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/ibm-plex-mono-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/ibm-plex-mono-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/ibm-plex-mono-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/ibm-plex-mono-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/ibm-plex-mono-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/ibm-plex-mono-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/sora-variable-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/sora-variable-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/sora-variable-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/sora-variable-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/sora-variable-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/sora-variable-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/sora-variable-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/sora-variable-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/source-sans-3-italic-variable-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/source-sans-3-italic-variable-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/source-sans-3-italic-variable-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/source-sans-3-italic-variable-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/source-sans-3-variable-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/source-sans-3-variable-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/source-sans-3-variable-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/source-sans-3-variable-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/source-sans-3-variable-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/source-sans-3-variable-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/source-sans-3-variable-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/source-sans-3-variable-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}



/* ============================================================================
   0. GOUTTIÈRE MOBILE — 16 px sous 760 px
   ========================================================================== */
@media (max-width: 759px) {
  :root { --pp-gutter: var(--pp-space-4); }
}


/* ============================================================================
   1. RÈGLES DÉMÉNAGÉES — reprises sans changement de l'ancien <style> en ligne
   ========================================================================== */

/* Menu mobile — pas de composant pp- dédié, bascule conservée telle quelle */
.nav-toggle{
  display:none; align-items:center; justify-content:center;
  width:40px; height:40px; flex:none;
  background:var(--pp-bg); border:1px solid var(--pp-border-strong);
  border-radius:var(--pp-radius-md); cursor:pointer;
}
.nav-toggle svg{ width:20px; height:20px; stroke:var(--pp-text-1); fill:none; stroke-width:1.8; }
.nav-toggle:hover{ background:var(--pp-primary-soft); border-color:var(--pp-primary-line); }
.nav-panel{ display:none; }
@media (max-width:860px){
  .nav-toggle{ display:inline-flex; }
  .pp-nav__inner{ flex-wrap:wrap; }
  /* Correctif Anouk 24 : sur mobile les bascules restent collées à la marque, moitié droite vide */
  .pp-nav__actions{ margin-left:auto; }
  .nav-panel{
    display:none; width:100%; order:3; flex-direction:column; gap:2px;
    padding-block:var(--pp-space-2) var(--pp-space-4);
    border-top:1px solid var(--pp-border);
  }
  .nav-panel.open{ display:flex; }
  .nav-panel a{
    font-family:var(--pp-font-sans); font-size:var(--pp-text-sm); font-weight:var(--pp-weight-medium);
    color:var(--pp-text-2); text-decoration:none;
    padding:var(--pp-space-3) var(--pp-space-1);
    border-top:1px solid var(--pp-border);
  }
  .nav-panel a:first-child{ border-top:0; }
  .nav-panel a:hover{ color:var(--pp-primary); }
}

/* Sous-texte de l'action principale du hero, et lien discret vers l'échelle d'offres */
.pp-hero__note{ margin-top:var(--pp-space-3); font-size:var(--pp-text-sm); color:var(--pp-text-3); max-width:52ch; }
.pp-link-mono{
  display:inline-flex; align-items:center; gap:var(--pp-space-1);
  font-family:var(--pp-font-mono); font-size:var(--pp-text-xs);
  color:var(--pp-text-2); text-decoration:none;
  border-bottom:1px solid var(--pp-border-strong); padding-bottom:2px; width:fit-content;
}
.pp-link-mono:hover{ color:var(--pp-primary); border-color:var(--pp-primary); }

/* Étiquette de prix d'offre — le chiffre seul reste en mono (greffe A), le libellé en sans */
.pp-offer__price-lbl{
  font-family:var(--pp-font-sans); font-size:var(--pp-text-2xs); font-weight:var(--pp-weight-regular);
  letter-spacing:var(--pp-tracking-label); text-transform:uppercase; color:var(--pp-text-3);
}
.pp-offer__tagline{ font-family:var(--pp-font-sans); font-size:var(--pp-text-sm); color:var(--pp-text-2); margin:var(--pp-space-1) 0 var(--pp-space-4); }

/* Petites mentions — notes de bas de bloc, mentions légales */
.pp-fineprint{ font-size:var(--pp-text-sm); color:var(--pp-text-3); max-width:60ch; }
.pp-fineprint--italic{ font-style:italic; }
.pp-footer__copyright{ font-family:var(--pp-font-mono); font-size:var(--pp-text-2xs); color:var(--pp-text-3); margin-top:var(--pp-space-6); }

/* Respiration entre l'intitulé de section et son contenu */
.pp-section__body{ margin-top:var(--pp-space-8); }

/* Sur-titres du hero : .pp-label est inline-flex dans pp.css ; flex de niveau bloc
   pour qu'un second sur-titre retombe à la ligne. */
.pp-hero .pp-label{ display:flex; }

/* Espacements ponctuels remontés depuis des style= en ligne */
.pp-hero__eyebrow{ margin-bottom:var(--pp-space-1); }
.pp-mt-4{ margin-top:var(--pp-space-4); }
.pp-fineprint--wide{ max-width:none; }


/* ============================================================================
   2. COMPLÉMENTS CONTEXTUELS
   ========================================================================== */

/* Pictogrammes du sprite (icons.svg) : le trait est porté par <use>, car le
   contenu d'un <symbol> hérite de l'élément <use>, pas de la racine du sprite. */
use[href^="#ico-"] {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
/* Taille par défaut d'un pictogramme sans classe : jamais 300 × 150 */
:where(svg:has(> use[href^="#ico-"])) { width: 1.25em; height: 1.25em; flex: none; }
.rs-ico { display: block; flex: none; width: 20px; height: 20px; color: var(--pp-accent); }

/* Pastilles longues : dans le contenu, elles se replient dans leur boîte au lieu
   de déborder d'une tuile ou d'une carte (pp.css ne le fait que sous 520 px). */
main .pp-source {
  display: inline-block;
  white-space: normal;
  max-width: 100%;
  line-height: var(--pp-leading-normal);
  vertical-align: middle;
}
main .pp-source__dot { display: inline-block; margin-right: var(--pp-space-2); vertical-align: 0.1em; }
main .pp-source__date { margin-left: var(--pp-space-2); white-space: nowrap; }

/* Pastille interne : pas de lien, pas d'URL, bordure en tirets, point creux */
.rs-source--internal {
  border-style: dashed;
  border-color: var(--pp-border-strong);
  background: transparent;
}
.rs-source--internal:hover {
  border-color: var(--pp-border-strong);
  background: transparent;
  color: var(--pp-text-2);
}
.rs-source--internal .pp-source__dot {
  background: transparent;
  border: 1px solid var(--pp-text-3);
}

/* Zones tactiles ≥ 44 px sans grossir le dessin : une zone invisible centrée */
main a.pp-source,
.pp-link-mono,
.pp-nav__links .pp-nav__link,
.rs-hit { position: relative; }
main a.pp-source::before,
.pp-link-mono::before,
.pp-nav__links .pp-nav__link::before,
.rs-hit::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: max(100%, 44px);
  transform: translateY(-50%);
}

/* Listes posées dans le bandeau d'honnêteté (pp.css ne style que ses <p>) */
.pp-notice ul {
  margin: 0;
  padding-left: var(--pp-space-5);
  font-size: var(--pp-text-sm);
  color: var(--pp-text-2);
  line-height: var(--pp-leading-normal);
}
.pp-notice li { margin: 0 0 var(--pp-space-1); max-width: none; }
.pp-notice li:last-child { margin-bottom: 0; }

/* Montant en ligne : chiffre en mono, jamais la phrase */
.rs-amount {
  font-family: var(--pp-font-mono);
  font-variant-numeric: var(--pp-numeric);
  font-weight: var(--pp-weight-semibold);
  color: var(--pp-text-1);
  white-space: nowrap;
}


/* ============================================================================
   3. EN-TÊTE
   ========================================================================== */

/* Marque : wordmark 132 px (≥ 860 px), monogramme 32 px en dessous.
   Le signe n'est jamais recoloré, même au survol. */
.rs-brand { flex: none; min-height: 44px; }
.rs-brand:hover { color: var(--pp-text-1); }
.rs-brand__wordmark { display: block; flex: none; width: 132px; height: auto; }
.rs-brand__mono { display: none; flex: none; width: 32px; height: 32px; }
@media (max-width: 860px) {
  .rs-brand__wordmark { display: none; }
  .rs-brand__mono { display: block; }
}

/* Sous 860 px, les actions se calent à droite (pp.css leur donne une marge fixe
   quand elles suivent la liste de liens, même masquée) */
@media (max-width: 860px) {
  .pp-nav__inner > .pp-nav__actions { margin-left: auto; }
}

/* Cibles tactiles de la barre : 44 px */
.pp-nav .nav-toggle { width: 44px; height: 44px; }
.rs-nav__cta { min-height: 44px; white-space: nowrap; }

/* Accueil : le bouton d'en-tête s'efface tant que celui du hero est à l'écran
   (visibility, pas display : la barre ne saute pas). Sans JS, il reste visible. */
body.rs-hero-cta-visible .rs-nav__cta { visibility: hidden; }

/* Bascule de thème : icône seule, libellé en texte masqué */
.rs-theme { width: 44px; padding: 0; justify-content: center; }

/* Sous 400 px, la bascule passe dans le panneau de menu */
.rs-theme-row {
  display: none;
  align-items: center;
  gap: var(--pp-space-2);
  width: 100%;
  min-height: 44px;
  padding: var(--pp-space-3) var(--pp-space-1);
  border: 0;
  border-top: 1px solid var(--pp-border);
  background: transparent;
  color: var(--pp-text-2);
  font-family: var(--pp-font-sans);
  font-size: var(--pp-text-sm);
  font-weight: var(--pp-weight-medium);
  text-align: left;
  cursor: pointer;
}
.rs-theme-row:hover { color: var(--pp-primary); }
.rs-theme-row svg { flex: none; }
@media (max-width: 399px) {
  .pp-nav__actions .rs-theme { display: none; }
  .rs-theme-row { display: flex; }
}


/* ============================================================================
   4. SECTIONS DE L'ACCUEIL
   ========================================================================== */
.rs-section { padding-block: var(--pp-space-12); }
@media (min-width: 760px)  { .rs-section { padding-block: var(--pp-space-20); } }
@media (min-width: 1100px) { .rs-section { padding-block: var(--pp-space-24); } }

/* Titre de section : un cran au-dessus sur grand écran, mesure tenue */
.rs-section > .pp-container > h2 {
  max-width: 30ch;
  margin-bottom: var(--pp-space-4);
}
@media (min-width: 980px) {
  .rs-section > .pp-container > h2 {
    font-size: var(--pp-text-3xl);
    line-height: var(--pp-leading-tight);
    letter-spacing: var(--pp-tracking-display);
  }
}

/* Sous-titre de bloc à l'intérieur d'une section */
.rs-subhead {
  font-size: var(--pp-text-xl);
  margin: var(--pp-space-12) 0 var(--pp-space-2);
  max-width: 36ch;
}


/* ============================================================================
   5. HERO ET CARTE FONDATEUR
   ========================================================================== */
.rs-hero { padding-block: var(--pp-space-6) var(--pp-space-12); }
@media (min-width: 760px)  { .rs-hero { padding-block: var(--pp-space-16) var(--pp-space-20); } }
@media (min-width: 1100px) { .rs-hero { padding-block: var(--pp-space-20) var(--pp-space-24); } }

.rs-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pp-space-10); }
@media (min-width: 980px) {
  .rs-hero__grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: var(--pp-space-12);
    align-items: start;
  }
}
.rs-hero__main { min-width: 0; }
.rs-hero__main > .pp-link-mono { margin-top: var(--pp-space-5); }

/* Lignes sous un bouton */
.rs-cta-meta {
  font-size: var(--pp-text-sm);
  color: var(--pp-text-2);
  max-width: 52ch;
  margin: var(--pp-space-4) 0 0;
}
.rs-cta-meta--quiet {
  font-size: var(--pp-text-xs);
  color: var(--pp-text-3);
  margin-top: var(--pp-space-2);
}
.rs-cta-meta a { white-space: nowrap; }

/* Signature : visage et nom en tête du hero, sous 980 px seulement */
.rs-byline {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: var(--pp-space-3);
  align-items: center;
  margin-bottom: var(--pp-space-6);
}
.rs-byline p { margin: 0; max-width: none; }
.rs-byline__name {
  font-family: var(--pp-font-display);
  font-weight: var(--pp-weight-semibold);
  font-size: var(--pp-text-sm);
  line-height: var(--pp-leading-snug);
  color: var(--pp-text-1);
}
.rs-byline__meta { font-size: var(--pp-text-xs); color: var(--pp-text-3); }
@media (min-width: 980px) { .rs-byline { display: none; } }

/* Portrait — photo, ou emplacement de repli au monogramme */
.rs-portrait {
  display: block;
  flex: none;
  overflow: hidden;
  border: 1px solid var(--pp-border);
  background: var(--pp-surface-2);
}
.rs-portrait img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rs-byline__photo  { width: 56px;  height: 56px;  border-radius: var(--pp-radius-pill); }
.rs-founder__photo { width: 176px; height: 176px; border-radius: var(--pp-radius-lg); }
.rs-portrait--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--pp-accent-soft);
  border-color: var(--pp-accent-line);
  color: var(--pp-accent);
}
.rs-portrait--placeholder svg { display: block; width: 50%; height: 50%; }

/* Carte fondateur */
.rs-founder { padding: var(--pp-space-5); }
@media (min-width: 980px) {
  .rs-founder { padding: var(--pp-space-8); box-shadow: var(--pp-shadow-lg); }
}
.rs-founder__id { display: none; }
@media (min-width: 980px) {
  .rs-founder__id {
    display: flex;
    align-items: flex-end;
    gap: var(--pp-space-5);
    margin-bottom: var(--pp-space-6);
  }
}
.rs-founder__name {
  font-family: var(--pp-font-display);
  font-weight: var(--pp-weight-semibold);
  font-size: var(--pp-text-xl);
  line-height: var(--pp-leading-snug);
  letter-spacing: var(--pp-tracking-title);
  color: var(--pp-text-1);
  margin: 0;
  text-wrap: balance;
}
.rs-founder__bio {
  font-size: var(--pp-text-md);
  color: var(--pp-text-1);
  margin: 0 0 var(--pp-space-5);
}
.rs-founder > .pp-fineprint { margin: var(--pp-space-5) 0 0; }

/* Bandeau de preuves : trois lignes empilées, filet de 1 px entre elles */
.rs-proofstrip {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--pp-border);
}
.rs-proofstrip > li {
  display: grid;
  grid-template-columns: var(--pp-space-24) minmax(0, 1fr);
  column-gap: var(--pp-space-4);
  row-gap: var(--pp-space-3);
  align-items: baseline;
  margin: 0;
  max-width: none;
  padding-block: var(--pp-space-4);
  border-bottom: 1px solid var(--pp-border);
}
.rs-proofstrip__value {
  font-family: var(--pp-font-mono);
  font-size: var(--pp-text-2xl);
  font-weight: var(--pp-weight-semibold);
  font-variant-numeric: var(--pp-numeric);
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--pp-text-1);
  white-space: nowrap;
  margin: 0;
  max-width: none;
}
.rs-proofstrip__unit {
  font-family: var(--pp-font-sans);
  font-size: var(--pp-text-md);
  font-weight: var(--pp-weight-medium);
  color: var(--pp-text-2);
  letter-spacing: 0;
}
.rs-proofstrip__text {
  font-size: var(--pp-text-sm);
  color: var(--pp-text-2);
  line-height: var(--pp-leading-normal);
  margin: 0;
  max-width: none;
}
.rs-proofstrip > li > .pp-source,
.rs-proofstrip > li > .pp-sources-row {
  grid-column: 1 / -1;
  justify-self: start;
  margin: 0;
}
.rs-proofstrip > .rs-proofstrip__item--text { grid-template-columns: minmax(0, 1fr); }


/* ============================================================================
   6. LISTES À PICTOGRAMME — .rs-decisions (2 × 2 dès 760 px), .rs-keys (1 col.)
   ========================================================================== */
.rs-decisions,
.rs-keys {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
.rs-decisions > li,
.rs-keys > li {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: var(--pp-space-3);
  margin: 0;
  max-width: none;
  padding-block: var(--pp-space-5);
  border-top: 1px solid var(--pp-border);
}
.rs-decisions > li:last-child,
.rs-keys > li:last-child { border-bottom: 1px solid var(--pp-border); }
.rs-decisions .rs-ico,
.rs-keys .rs-ico { margin-top: 0.15em; }

.rs-item__title {
  font-family: var(--pp-font-display);
  font-weight: var(--pp-weight-semibold);
  font-size: var(--pp-text-lg);
  line-height: var(--pp-leading-snug);
  letter-spacing: var(--pp-tracking-title);
  color: var(--pp-text-1);
  margin: 0 0 var(--pp-space-1);
}
.rs-item__text { margin: 0; color: var(--pp-text-2); max-width: none; }

@media (min-width: 760px) {
  .rs-decisions { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--pp-space-8); }
  .rs-decisions > li { padding-block: var(--pp-space-6); }
  .rs-decisions > li:nth-last-child(-n + 2) { border-bottom: 1px solid var(--pp-border); }
}


/* ============================================================================
   7. CHIFFRES DANS LA PROSE
   ========================================================================== */
.rs-figures {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--pp-space-2) var(--pp-space-4);
  margin: var(--pp-space-6) 0;
  padding-block: var(--pp-space-5);
  border-block: 1px solid var(--pp-border);
  color: var(--pp-text-2);
}
.rs-figures strong {
  font-family: var(--pp-font-mono);
  font-size: var(--pp-text-xl);
  font-weight: var(--pp-weight-semibold);
  font-variant-numeric: var(--pp-numeric);
  letter-spacing: -0.01em;
  color: var(--pp-text-1);
  white-space: nowrap;
}
.pp-prose > .rs-figures { max-width: none; }
.rs-figures__sep { color: var(--pp-text-3); }
@media (max-width: 759px) {
  .rs-figures { flex-direction: column; align-items: flex-start; }
  .rs-figures__sep { display: none; }
}


/* ============================================================================
   8. ÉTUDE DE CAS ET TUILES KPI
   ========================================================================== */
.rs-case { padding: var(--pp-space-5); }
@media (min-width: 760px) { .rs-case { padding: var(--pp-space-8); } }

.rs-case__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--pp-space-3);
}
.rs-case__head h3 { margin: 0; max-width: 32ch; }
.rs-case__sub { color: var(--pp-text-2); margin: var(--pp-space-3) 0 var(--pp-space-6); }

/* 1 colonne, 2 dès 640 px, 4 dès 1100 px ; libellés, valeurs, notes et
   pastilles alignés d'une tuile à l'autre (sous-grille) */
.rs-kpi-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--pp-space-4);
}
@media (min-width: 640px)  { .rs-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .rs-kpi-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.rs-kpi {
  display: grid;
  grid-row: span 4;
  grid-template-rows: subgrid;
  row-gap: var(--pp-space-3);
  background: var(--pp-surface-1);
}
.rs-kpi .pp-kpi__label { align-self: start; }
.rs-kpi .pp-kpi__note { margin: 0; }
.rs-kpi__body { display: grid; gap: var(--pp-space-3); align-content: start; justify-items: start; }
.rs-kpi__sources {
  display: flex;
  flex-wrap: wrap;
  gap: var(--pp-space-2);
  align-self: end;
  padding-top: var(--pp-space-3);
  border-top: 1px solid var(--pp-border);
}

.rs-case > .pp-sources-row { margin-top: var(--pp-space-5); }
.rs-case > .pp-fineprint { margin: var(--pp-space-4) 0 0; }


/* ============================================================================
   9. PARCOURS ET PRIX
   ========================================================================== */
.rs-path { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pp-space-6); align-items: start; }
@media (min-width: 900px) { .rs-path { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); } }
@media (min-width: 760px) { .rs-path > .pp-card { padding: var(--pp-space-8); } }
.rs-path .pp-offer { height: auto; }
.rs-path .pp-badge { margin-bottom: var(--pp-space-3); }
.rs-path .pp-offer__list { margin-bottom: 0; gap: var(--pp-space-3); }
.rs-path .pp-offer__list .rs-ico { width: 18px; height: 18px; margin-top: 0.1em; }
.rs-path .pp-card__desc { font-size: var(--pp-text-md); }
.rs-path .pp-fineprint {
  margin: var(--pp-space-5) 0 0;
  padding-top: var(--pp-space-4);
  border-top: 1px solid var(--pp-border);
  max-width: none;
}

/* Puce « Sur le devis : … » — complément de .pp-chip */
.rs-devis {
  margin-left: var(--pp-space-2);
  vertical-align: middle;
  font-weight: var(--pp-weight-regular);
  letter-spacing: 0;
  line-height: var(--pp-leading-normal);
}
@media (max-width: 519px) {
  .rs-devis { display: flex; width: fit-content; margin: var(--pp-space-2) 0 0; }
}
.pp-fineprint .rs-devis { display: flex; width: fit-content; margin: var(--pp-space-2) 0 0; }

/* « Et aussi » : pas de carte, pas de bouton ; prix en mono à droite dès 760 px */
.rs-offer-rows { margin: var(--pp-space-6) 0 0; border-top: 1px solid var(--pp-border-strong); }
.rs-offer-rows > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--pp-space-2);
  padding-block: var(--pp-space-5);
  border-bottom: 1px solid var(--pp-border);
}
.rs-offer-rows dt {
  font-family: var(--pp-font-display);
  font-weight: var(--pp-weight-semibold);
  font-size: var(--pp-text-lg);
  line-height: var(--pp-leading-snug);
  color: var(--pp-text-1);
}
.rs-offer-rows dd { margin: 0; color: var(--pp-text-2); max-width: var(--pp-measure-prose); }
.rs-offer-rows .rs-offer-rows__price {
  font-family: var(--pp-font-mono);
  font-size: var(--pp-text-md);
  font-weight: var(--pp-weight-medium);
  font-variant-numeric: var(--pp-numeric);
  color: var(--pp-text-1);
}
@media (min-width: 760px) {
  .rs-offer-rows > div { grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--pp-space-8); align-items: baseline; }
  .rs-offer-rows dt { grid-column: 1; grid-row: 1; }
  .rs-offer-rows .rs-offer-rows__price { grid-column: 2; grid-row: 1; text-align: right; white-space: nowrap; }
  .rs-offer-rows dd:not(.rs-offer-rows__price) { grid-column: 1 / -1; grid-row: 2; }
}


/* ============================================================================
   10. BANDEAU D'APPEL ET RANGÉE D'ACTIONS
   ========================================================================== */
.rs-cta-band {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--pp-space-4) var(--pp-space-8);
  margin-top: var(--pp-space-12);
  padding: var(--pp-space-8);
  background: var(--pp-surface-1);
  border: 1px solid var(--pp-border);
  border-radius: var(--pp-radius-lg);
}
@media (max-width: 759px) { .rs-cta-band { padding: var(--pp-space-6); } }
.rs-cta-band p { margin: 0; max-width: none; }
/* Un libellé long peut passer sur deux lignes : interligne lisible */
.rs-cta-band .pp-btn,
.rs-actions .pp-btn { line-height: var(--pp-leading-snug); text-align: center; padding-block: var(--pp-space-2); }
.rs-cta-band > p:first-child,
.rs-cta-band__text {
  font-family: var(--pp-font-display);
  font-weight: var(--pp-weight-semibold);
  font-size: var(--pp-text-xl);
  line-height: var(--pp-leading-snug);
  letter-spacing: var(--pp-tracking-title);
  color: var(--pp-text-1);
  text-wrap: balance;
}
.rs-cta-band > p:not(:first-child),
.rs-cta-band__line { font-size: var(--pp-text-sm); color: var(--pp-text-2); }
.rs-cta-band__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--pp-space-3);
}
.rs-cta-band__actions .pp-btn + .pp-btn { margin-top: 0; }
@media (min-width: 760px) {
  /* Structure à plat : phrase sur sa ligne, boutons côte à côte, puis lignes */
  .rs-cta-band { flex-direction: row; flex-wrap: wrap; align-items: center; }
  .rs-cta-band > p:first-child { flex: 1 1 100%; max-width: 40ch; }
  .rs-cta-band > p:not(:first-child) { flex-basis: 100%; }
  /* Avec .rs-cta-band__actions : phrase à gauche, actions à droite */
  .rs-cta-band:has(> .rs-cta-band__actions) { justify-content: space-between; }
  .rs-cta-band:has(> .rs-cta-band__actions) > p:first-child { flex: 1 1 18rem; max-width: 30ch; }
  .rs-cta-band__actions { align-items: flex-end; text-align: right; }
}

.rs-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--pp-space-3) var(--pp-space-6);
  margin-top: var(--pp-space-6);
}
.rs-actions > p { flex: 0 0 100%; max-width: none; margin: 0; }


/* ============================================================================
   11. PAGES INTERNES — /securite, /checklist, /404
   ========================================================================== */
.rs-page-hero { padding-block: var(--pp-space-8); }
@media (min-width: 760px) { .rs-page-hero { padding-block: var(--pp-space-12); } }
.rs-page-hero .pp-hero__meta {
  margin-top: var(--pp-space-5);
  font-family: var(--pp-font-mono);
  font-size: var(--pp-text-xs);
}
.rs-page-hero .pp-fineprint { margin-top: var(--pp-space-3); }

/* Bloc question-réponse de /securite */
.rs-qa {
  border-top: 1px solid var(--pp-border);
  padding-top: var(--pp-space-8);
  margin-top: var(--pp-space-8);
}
.rs-qa:first-child { margin-top: 0; }
.rs-qa h2 {
  display: flex;
  align-items: flex-start;
  gap: var(--pp-space-3);
  font-size: var(--pp-text-xl);
  margin-bottom: var(--pp-space-4);
}
.rs-qa h2 svg { flex: none; width: 24px; height: 24px; color: var(--pp-accent); margin-top: 0.05em; }
.rs-qa p {
  font-size: var(--pp-text-prose);
  line-height: var(--pp-leading-prose);
  color: var(--pp-text-2);
}
.rs-qa p:last-child { margin-bottom: 0; }
@media (min-width: 760px) {
  .rs-qa > :not(h2) { margin-left: calc(24px + var(--pp-space-3)); }
}

/* Règles de la checklist : numéro dans une colonne de 64 px, contenu à droite */
.rs-rules { list-style: none; margin: 0; padding: 0; }
.rs-rules > li { margin: 0; max-width: none; }
.rs-rule {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--pp-space-2) var(--pp-space-6);
  padding-block: var(--pp-space-8);
  border-top: 1px solid var(--pp-border);
}
.rs-rules > li:last-child .rs-rule { border-bottom: 1px solid var(--pp-border); }
.rs-rule__num {
  font-family: var(--pp-font-mono);
  font-size: var(--pp-text-2xl);
  font-weight: var(--pp-weight-semibold);
  font-variant-numeric: var(--pp-numeric);
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--pp-electric-ink);
}
.rs-rule__title {
  font-family: var(--pp-font-display);
  font-weight: var(--pp-weight-semibold);
  font-size: var(--pp-text-xl);
  margin: 0;
}
.rs-rule__text { font-size: var(--pp-text-lg); color: var(--pp-text-1); margin: var(--pp-space-1) 0 0; }
.rs-rule__meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--pp-space-1) var(--pp-space-5);
  margin: var(--pp-space-3) 0 0;
  font-size: var(--pp-text-sm);
}
.rs-rule__meta dt {
  font-family: var(--pp-font-mono);
  font-size: var(--pp-text-2xs);
  letter-spacing: var(--pp-tracking-label);
  text-transform: uppercase;
  color: var(--pp-text-3);
  padding-top: 0.2em;
}
.rs-rule__meta dd { margin: 0 0 var(--pp-space-3); color: var(--pp-text-2); max-width: var(--pp-measure-prose); }
.rs-rule__meta dd:last-child { margin-bottom: 0; }
.rs-rule code { overflow-wrap: anywhere; }
@media (min-width: 640px) {
  .rs-rule { grid-template-columns: 64px minmax(0, 1fr); align-items: baseline; }
  .rs-rule > * { grid-column: 2; }
  .rs-rule > .rs-rule__num { grid-column: 1; grid-row: 1; }
  .rs-rule__meta { grid-template-columns: max-content minmax(0, 1fr); row-gap: var(--pp-space-3); }
  .rs-rule__meta dd { margin-bottom: 0; }
}

/* Références citées : l'adresse écrite en clair */
.rs-refs { margin-top: var(--pp-space-12); }
.rs-refs :is(ul, ol) {
  list-style: none;
  margin: var(--pp-space-4) 0 0;
  padding: 0;
  border-top: 1px solid var(--pp-border);
}
.rs-refs li {
  margin: 0;
  max-width: none;
  padding-block: var(--pp-space-3);
  border-bottom: 1px solid var(--pp-border);
  color: var(--pp-text-1);
}
.rs-refs a {
  font-family: var(--pp-font-mono);
  font-size: var(--pp-text-xs);
  overflow-wrap: anywhere;
}

/* Impression de la checklist */
.rs-print { cursor: pointer; }
.rs-print-note {
  font-size: var(--pp-text-xs);
  color: var(--pp-text-3);
  margin: var(--pp-space-3) 0 0;
  max-width: 60ch;
}


/* ============================================================================
   12. PIED DE PAGE
   ========================================================================== */
.rs-footer__mark { display: block; width: 132px; height: auto; color: var(--pp-text-1); }
.rs-footer .pp-footer__sig { margin: var(--pp-space-4) 0 var(--pp-space-1); }
.rs-footer .pp-footer__grid > div > .pp-fineprint { margin: 0; }
.rs-footer .pp-footer__list { gap: 0; }
@media (min-width: 360px) and (max-width: 760px) {
  .rs-footer .pp-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--pp-space-6); }
  .rs-footer .pp-footer__grid > :first-child { grid-column: 1 / -1; }
}
.rs-footer .pp-footer__list a { display: inline-flex; align-items: center; min-height: 44px; }

.rs-legal { flex: 1 1 100%; }
.rs-legal p { margin: 0 0 var(--pp-space-3); max-width: none; break-inside: avoid; }
.rs-legal strong { color: var(--pp-text-2); font-weight: var(--pp-weight-semibold); }
.rs-legal a { color: inherit; }
.rs-legal a:hover { color: var(--pp-primary); }
@media (min-width: 980px) {
  .rs-legal { column-count: 2; column-gap: var(--pp-space-10); }
}


/* ============================================================================
   13. IMPRESSION — en plus des règles d'impression de pp.css
   ========================================================================== */
@media print {
  @page { size: A4; margin: 15mm; }

  .pp-nav, .pp-no-print, .rs-cta-band, .pp-footer__grid, .pp-footer__legal,
  .rs-print, .rs-print-note, .rs-byline { display: none !important; }

  /* Une règle, une question : jamais coupée en deux */
  article.rs-rule, .rs-qa, .rs-kpi, .rs-offer-rows > div { break-inside: avoid; page-break-inside: avoid; }

  /* Pastilles sans fond, adresse de la référence en clair sous son lien */
  .pp-source { background: none !important; white-space: normal; }
  main a.pp-source::before, .pp-link-mono::before, .rs-hit::before { content: none; }
  a.pp-source[href^="http"]::after {
    content: " — " attr(href);
    font-family: var(--pp-font-mono);
    font-size: 7.5pt;
    color: var(--pp-text-3);
    word-break: break-all;
  }

  .rs-section, .rs-hero, .rs-page-hero { padding-block: 0 8mm; }
  .rs-hero__grid { display: block; }
  .rs-founder { box-shadow: none; margin-top: 6mm; }

  /* Pied de la checklist imprimée */
  body:has(.rs-rules) .pp-footer__copyright::after {
    content: "respirit.fr/checklist — version 1.0, 25/09/2026";
    display: block;
    margin-top: 1mm;
  }
}


/* ---- pages internes (ajouts) ---- */

/* Premier bloc d'une section interne : pas de second filet juste sous celui du hero */
.rs-qa:first-child { border-top: 0; padding-top: 0; }
.rs-rules > li:first-child > .rs-rule { border-top: 0; padding-top: 0; }

/* Panneau mobile : même gouttière que la barre (il est hors de .pp-nav__inner) */
.nav-panel { padding-inline: var(--pp-gutter); }

/* Panneau mobile : la page courante est marquée, comme dans la barre */
.nav-panel a[aria-current="page"] { color: var(--pp-primary); font-weight: var(--pp-weight-semibold); }

/* Références citées : le nom sur sa ligne, l'adresse en clair dessous */
.rs-refs__name { display: block; }
.rs-refs .rs-refs__url { display: inline-block; max-width: 100%; margin-top: var(--pp-space-1); }

/* 404 : liens de repli, une ligne par destination, cibles de 44 px */
.rs-linklist {
  list-style: none;
  margin: var(--pp-space-6) 0 0;
  padding: 0;
  border-top: 1px solid var(--pp-border);
}
.rs-linklist li { margin: 0; max-width: none; border-bottom: 1px solid var(--pp-border); }
.rs-linklist a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding-block: var(--pp-space-2);
  font-size: var(--pp-text-lg);
  font-weight: var(--pp-weight-medium);
  text-decoration: none;
}
.rs-linklist a:hover { text-decoration: underline; }

/* Commandes de contrôle dans une règle : repérables d'un coup d'œil */
.rs-rule code {
  padding: 0.1em 0.35em;
  border-radius: var(--pp-radius-sm);
  background: var(--pp-surface-2);
  color: var(--pp-text-1);
}

/* Impression des pages internes : règles plus serrées, pied sans page orpheline */
@media print {
  .rs-rule { padding-block: 5mm; }
  .rs-refs { margin-top: 8mm; }
  .rs-footer { margin-top: 4mm; padding-block: 3mm 0; }
  .rs-footer .pp-footer__copyright { margin-top: 0; }
  main > section:last-child { padding-bottom: 0; margin-bottom: 0; }
}
