/* ═══════════════════════════════════════════════════════════════════════════
   Polices — vendorisées le 26/08/2026. Aucune requête vers un domaine tiers.
   Familles variables : un woff2 par famille et par sous-ensemble couvre tous
   les poids. Seul « latin » est chargé sur une page française ; « latin-ext »
   ne l'est que si un caractère de sa plage apparaît.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Bricolage Grotesque · latin-ext */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 200 800;
  font-stretch: 100%;
  font-display: swap;
  src: url('../fonts/bricolage-grotesque-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;
}

/* Bricolage Grotesque · latin */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 200 800;
  font-stretch: 100%;
  font-display: swap;
  src: url('../fonts/bricolage-grotesque-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;
}

/* Inter · latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/inter-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;
}

/* Inter · latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/inter-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;
}

/* Roboto Mono · latin-ext */
@font-face {
  font-family: 'Roboto Mono';
  font-style: normal;
  font-weight: 100 700;
  font-display: swap;
  src: url('../fonts/roboto-mono-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;
}

/* Roboto Mono · latin */
@font-face {
  font-family: 'Roboto Mono';
  font-style: normal;
  font-weight: 100 700;
  font-display: swap;
  src: url('../fonts/roboto-mono-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;
}
/* ==========================================================================
   Rénov Toit & Façade — feuille de style du site
   Préfixe : rtf-   ·   Bootstrap sert uniquement de socle (grille, collapse)

   Langage visuel : la toiture elle-même.
   — motif de tuiles en courses (arcs répétés)
   — ligne de faîtage en dents entre les sections
   — photos masquées en pignon de maison
   — terre cuite / ardoise / mousse, pas une palette d'agence
   ========================================================================== */

:root {
  /* Matières */
  --rtf-terre:        #B9482C;   /* terre cuite — la tuile */
  --rtf-terre-sombre: #8E3520;
  --rtf-orange:       #E8751A;   /* accent d'action */
  --rtf-orange-fonce: #C85F0D;
  --rtf-ardoise:      #232C38;   /* ardoise — les fonds sombres */
  --rtf-ardoise-clair:#33404F;
  --rtf-mousse:       #55704A;   /* la mousse : l'ennemi, donc l'« avant » */
  --rtf-sable:        #F8F2E9;
  --rtf-sable-fonce:  #EFE5D6;
  --rtf-craie:        #FFFCF8;
  --rtf-encre:        #1A212B;
  --rtf-encre-doux:   #626D7C;
  --rtf-trait:        #E4D9C8;

  --rtf-rayon:      12px;
  --rtf-rayon-doux: 7px;

  --rtf-ombre:       0 1px 2px rgba(26,33,43,.05), 0 8px 24px -12px rgba(26,33,43,.16);
  --rtf-ombre-carte: 0 2px 4px rgba(26,33,43,.05), 0 24px 48px -20px rgba(26,33,43,.28);
  --rtf-ombre-forte: 0 40px 80px -30px rgba(142,53,32,.55);

  --rtf-titrage:  "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;
  --rtf-courante: "Inter", "Segoe UI", system-ui, sans-serif;
  --rtf-chiffres: "Roboto Mono", ui-monospace, "Cascadia Mono", monospace;

  --rtf-section: clamp(4.5rem, 9vw, 8rem);

  /* Motif de tuiles : arcs en courses, comme une couverture vue de face */
  --rtf-tuiles: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='24' viewBox='0 0 46 24'%3E%3Cg fill='none' stroke='%23B9482C' stroke-width='1.25'%3E%3Cpath d='M-23 24a23 23 0 0 1 46 0M0 24a23 23 0 0 1 46 0M23 24a23 23 0 0 1 46 0'/%3E%3C/g%3E%3C/svg%3E");
  --rtf-tuiles-claires: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='24' viewBox='0 0 46 24'%3E%3Cg fill='none' stroke='%23FFFFFF' stroke-width='1.25'%3E%3Cpath d='M-23 24a23 23 0 0 1 46 0M0 24a23 23 0 0 1 46 0M23 24a23 23 0 0 1 46 0'/%3E%3C/g%3E%3C/svg%3E");

  /* Grain : ce qui empêche les aplats de sonner « fond de gabarit » */
  --rtf-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23g)' opacity='.42'/%3E%3C/svg%3E");
}

/* ─── Socle ─────────────────────────────────────────────────────────────── */

body {
  font-family: var(--rtf-courante);
  color: var(--rtf-encre);
  background: var(--rtf-craie);
  font-size: 1rem;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

h1, h2, h3 {
  font-family: var(--rtf-titrage);
  font-weight: 800;
  letter-spacing: -.028em;
}
a { text-decoration: none; color: inherit; }
/* <picture> est transparent : l'<img> reste l'enfant effectif du conteneur. */
picture { display: contents; }

/* Lien d'évitement : invisible tant qu'il n'a pas le focus clavier. */
/* Hauteurs des barres de saisonnalite : en classes plutot qu'en style=,
   pour que la Content-Security-Policy puisse rester en style-src self. */
.rtf-saison__barres li.est-h34 { --h: 34%; }
.rtf-saison__barres li.est-h55 { --h: 55%; }
.rtf-saison__barres li.est-h66 { --h: 66%; }
.rtf-saison__barres li.est-h83 { --h: 83%; }
.rtf-saison__barres li.est-h100 { --h: 100%; }
.rtf-schema__val--grand { font-size: 30px; }

.rtf-evitement {
  position: absolute; left: -9999px; top: 0; z-index: 999;
  background: var(--rtf-terre); color: var(--rtf-craie);
  padding: .85rem 1.5rem; border-radius: 0 0 12px 0;
  font-family: var(--rtf-titrage); font-weight: 600; font-size: .95rem;
}
.rtf-evitement:focus { left: 0; }
img { max-width: 100%; height: auto; display: block; }
:focus-visible { outline: 3px solid var(--rtf-orange); outline-offset: 3px; border-radius: 3px; }

/* Étiquette de section — petite tuile + texte capitales */
.rtf-etiquette {
  display: inline-flex; align-items: center; gap: .6rem;
  font-family: var(--rtf-titrage);
  font-weight: 700; font-size: .76rem;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--rtf-terre);
  margin: 0 0 1.1rem;
}
.rtf-etiquette--centre { justify-content: center; }
.rtf-etiquette--clair { color: #E6A07E; }
.rtf-etiquette__tuile {
  width: 22px; height: 12px; flex: 0 0 22px;
  border-radius: 11px 11px 0 0;
  background: currentColor;
  opacity: .9;
}

.rtf-titre {
  font-size: clamp(2rem, 3.9vw, 3.15rem);
  line-height: 1.08;
  margin: 0 0 1.3rem;
}
.rtf-titre em { font-style: normal; color: var(--rtf-terre); }
.rtf-titre--centre { text-align: center; }
.rtf-titre--inverse { color: var(--rtf-craie); }
.rtf-titre--inverse em { color: #F0A87C; }

.rtf-texte { color: var(--rtf-encre-doux); font-size: 1.04rem; margin: 0 0 1.4rem; }
.rtf-texte--centre { text-align: center; max-width: 56ch; margin-inline: auto; }
.rtf-texte--inverse { color: rgba(255,255,255,.72); }
.rtf-texte strong { color: var(--rtf-encre); font-weight: 600; }
.rtf-texte--inverse strong { color: var(--rtf-craie); }

.rtf-section-entete { max-width: 60ch; margin: 0 auto clamp(2.8rem, 5vw, 4.5rem); text-align: center; }

/* Soulignement tracé main sous un mot clé */
.rtf-souligne { position: relative; display: inline-block; color: var(--rtf-terre); }
.rtf-souligne__trace {
  position: absolute; left: -2%; bottom: -.16em; width: 104%; height: .32em;
  color: var(--rtf-orange); overflow: visible;
}

/* ─── Faîtage : la ligne de dents entre deux sections ───────────────────── */

.rtf-faitage {
  position: absolute; left: 0; right: 0; bottom: -1px; height: 22px;
  background: var(--rtf-craie);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='22' viewBox='0 0 44 22'%3E%3Cpath d='M0 22 22 0l22 22z' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='22' viewBox='0 0 44 22'%3E%3Cpath d='M0 22 22 0l22 22z' fill='%23000'/%3E%3C/svg%3E");
  -webkit-mask-repeat: repeat-x; mask-repeat: repeat-x;
  -webkit-mask-size: 44px 22px; mask-size: 44px 22px;
}
.rtf-faitage--pied { top: -1px; bottom: auto; background: var(--rtf-ardoise); transform: scaleY(-1); }

/* ─── Boutons ───────────────────────────────────────────────────────────── */

.rtf-bouton {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  font-family: var(--rtf-titrage); font-weight: 700; font-size: .95rem;
  letter-spacing: -.01em;
  padding: .82rem 1.6rem;
  border-radius: var(--rtf-rayon-doux);
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.rtf-bouton--plein {
  background: var(--rtf-orange); color: var(--rtf-craie);
  box-shadow: 0 3px 0 var(--rtf-orange-fonce);
}
.rtf-bouton--plein:hover {
  background: var(--rtf-orange-fonce); color: var(--rtf-craie);
  transform: translateY(2px); box-shadow: 0 1px 0 var(--rtf-orange-fonce);
}
.rtf-bouton--fantome { background: transparent; color: var(--rtf-encre); border-color: var(--rtf-trait); }
.rtf-bouton--fantome:hover { border-color: var(--rtf-encre); }
.rtf-bouton--souligne {
  background: transparent; color: var(--rtf-encre);
  border-bottom: 2px solid var(--rtf-terre); border-radius: 0;
  padding-inline: .3rem;
}
.rtf-bouton--souligne:hover { color: var(--rtf-terre); background: rgba(185,72,44,.06); }
.rtf-bouton--large { padding: 1.02rem 2rem; font-size: 1.02rem; }
.rtf-bouton--bloc { width: 100%; }

.rtf-lien-fleche {
  font-family: var(--rtf-titrage); font-weight: 700; font-size: .89rem;
  color: var(--rtf-terre); display: inline-flex; align-items: center; gap: .45rem;
  border-bottom: 2px solid transparent; padding-bottom: 2px;
}
.rtf-lien-fleche::after { content: "→"; transition: transform .18s ease; }
.rtf-lien-fleche:hover { color: var(--rtf-terre-sombre); border-bottom-color: currentColor; }
.rtf-lien-fleche:hover::after { transform: translateX(4px); }

.rtf-coche {
  width: 19px; height: 19px; flex: 0 0 19px;
  border-radius: 9px 9px 3px 3px;
  background: var(--rtf-terre); position: relative; display: inline-block;
}
.rtf-coche::after {
  content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto;
  width: 5px; height: 9px;
  border: solid var(--rtf-craie); border-width: 0 2px 2px 0;
  transform: translateY(0) rotate(45deg);
}

/* ─── Bandeau ───────────────────────────────────────────────────────────── */

.rtf-bandeau { background: var(--rtf-ardoise); color: rgba(255,255,255,.72); font-size: .83rem; }
.rtf-bandeau__grille {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: .6rem 0; flex-wrap: wrap;
}
.rtf-bandeau__annonce { margin: 0; display: flex; align-items: center; gap: .6rem; }
.rtf-bandeau__puce {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--rtf-orange); box-shadow: 0 0 0 3px rgba(232,117,26,.24);
}
.rtf-bandeau__liens { list-style: none; display: flex; gap: 1.6rem; margin: 0; padding: 0; }
.rtf-bandeau__liens a:hover { color: var(--rtf-craie); }
.rtf-bandeau__tel { font-family: var(--rtf-chiffres); font-weight: 700; color: var(--rtf-craie); }

/* ─── En-tête ───────────────────────────────────────────────────────────── */

.rtf-entete {
  position: sticky; top: 0; z-index: 1030;
  background: rgba(255,252,248,.94);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid transparent;
  transition: box-shadow .22s ease, border-color .22s ease;
}
.rtf-entete.est-detache { box-shadow: var(--rtf-ombre); border-bottom-color: var(--rtf-trait); }
.rtf-entete__barre { padding: .8rem 0; }

.rtf-marque { display: flex; align-items: center; gap: .75rem; }
.rtf-marque__embleme {
  width: 46px; height: 46px; flex: 0 0 46px;
  display: grid; place-items: center;
  border-radius: 14px 14px 6px 6px;
  background: var(--rtf-terre); color: var(--rtf-craie);
  box-shadow: 0 3px 0 var(--rtf-terre-sombre);
}
.rtf-marque__embleme svg { width: 26px; height: 26px; }
.rtf-marque__texte strong {
  display: block; font-family: var(--rtf-titrage); font-weight: 800;
  font-size: 1.14rem; line-height: 1.08; letter-spacing: -.035em;
}
.rtf-marque__texte em { font-style: normal; color: var(--rtf-terre); margin: 0 .1em; }
.rtf-marque__texte small {
  display: block; font-size: .7rem; color: var(--rtf-encre-doux);
  letter-spacing: .13em; text-transform: uppercase; font-weight: 500;
}

.rtf-nav { list-style: none; display: flex; gap: 2rem; margin: 0 auto; padding: 0; }
.rtf-nav a {
  font-family: var(--rtf-titrage); font-weight: 500; font-size: .97rem;
  color: var(--rtf-encre); padding: .3rem 0; position: relative;
}
.rtf-nav a::after {
  content: ""; position: absolute; left: 0; bottom: -2px;
  width: 0; height: 3px; background: var(--rtf-terre);
  border-radius: 2px 2px 0 0; transition: width .2s ease;
}
.rtf-nav a:hover::after { width: 100%; }

.rtf-entete__bascule { border: 2px solid var(--rtf-trait); border-radius: 7px; padding: .45rem .6rem; }
.rtf-entete__bascule:focus { box-shadow: none; }
.rtf-entete__traits, .rtf-entete__traits::before, .rtf-entete__traits::after {
  display: block; width: 20px; height: 2.5px; background: var(--rtf-encre); border-radius: 2px;
}
.rtf-entete__traits { position: relative; }
.rtf-entete__traits::before, .rtf-entete__traits::after { content: ""; position: absolute; }
.rtf-entete__traits::before { top: -6px; }
.rtf-entete__traits::after  { top: 6px; }

/* ─── Menu deroulant ────────────────────────────────────────────────────── */

/* Liens et boutons partagent la même boîte, sans quoi les <a> se calent en haut
   de leur <li> pendant que les <button> l'occupent en entier. */
.rtf-nav { gap: 1.7rem; align-items: center; }
.rtf-nav > li { display: flex; align-items: center; }
.rtf-nav > li > a,
.rtf-nav__bascule { display: inline-flex; align-items: center; line-height: 1.4; padding: .3rem 0; }
.rtf-nav__deroulant { position: relative; }

.rtf-nav__bascule {
  font-family: var(--rtf-titrage); font-weight: 500; font-size: .97rem;
  color: var(--rtf-encre); padding: .3rem 0;
  background: none; border: 0; cursor: pointer;
  display: inline-flex; align-items: center; gap: .38em;
}
.rtf-nav__bascule::after {
  content: ""; width: 0; height: 0;
  border: .3em solid transparent; border-bottom: 0; border-top-color: currentColor;
  transition: transform .2s ease;
}
.rtf-nav__bascule[aria-expanded="true"] { color: var(--rtf-terre); }
.rtf-nav__bascule[aria-expanded="true"]::after { transform: rotate(180deg); }

.rtf-nav__menu {
  min-width: 16rem; padding: .45rem; margin-top: .7rem;
  border: 1.5px solid var(--rtf-trait); border-radius: 12px;
  background: var(--rtf-craie);
  box-shadow: 0 22px 44px -20px rgba(26, 33, 43, .38);
}
.rtf-nav__menu .dropdown-item {
  font-family: var(--rtf-courante); font-size: .92rem; font-weight: 500;
  color: var(--rtf-encre); padding: .52rem .7rem; border-radius: 8px;
  white-space: normal;
}
.rtf-nav__menu .dropdown-item::after,
.rtf-nav__menu .dropdown-item:hover::after { content: none; }
.rtf-nav__menu .dropdown-item:hover,
.rtf-nav__menu .dropdown-item:focus {
  background: var(--rtf-sable); color: var(--rtf-terre-sombre);
}

/* Sous le point de bascule, le menu se deplie dans le tiroir plutot qu'en flottant. */
@media (max-width: 991.98px) {
  .rtf-nav { flex-direction: column; gap: .7rem; align-items: flex-start; }
  .rtf-nav__menu {
    position: static !important; transform: none !important;
    border: 0; border-left: 2px solid var(--rtf-trait); border-radius: 0;
    box-shadow: none; background: transparent;
    padding: .2rem 0 .2rem .9rem; margin-top: .25rem; min-width: 0;
  }
  .rtf-nav__menu .dropdown-item { padding: .38rem .4rem; }
}

/* ─── Héros ─────────────────────────────────────────────────────────────── */

.rtf-heros {
  position: relative; isolation: isolate;
  background: var(--rtf-sable);
  padding: clamp(3rem, 6vw, 5.5rem) 0 clamp(5rem, 9vw, 8rem);
  overflow: hidden;
}
/* Pan de toit incliné en fond, côté droit */
.rtf-heros__pan {
  position: absolute; top: 0; right: 0; bottom: 0; left: 46%; z-index: -2;
  background: linear-gradient(150deg, var(--rtf-sable-fonce) 0%, #E8D9C4 100%);
  clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%);
}
/* Courses de tuiles, très discrètes */
.rtf-heros__trame {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: -1; pointer-events: none;
  background-image: var(--rtf-tuiles);
  background-size: 46px 24px;
  opacity: .17;
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 55%, #000);
          mask-image: linear-gradient(to bottom, transparent, #000 55%, #000);
}
.rtf-heros::after {
  content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: -1; pointer-events: none;
  background-image: var(--rtf-grain); opacity: .3; mix-blend-mode: multiply;
}

.rtf-heros__grille {
  display: grid; grid-template-columns: 1.06fr .94fr;
  gap: clamp(2rem, 5vw, 4rem); align-items: center; position: relative;
}
.rtf-heros__accroche {
  font-size: clamp(2.5rem, 5.4vw, 4.3rem);
  line-height: 1.02; margin: 0 0 1.4rem; letter-spacing: -.04em;
}
.rtf-heros__chapo {
  font-size: 1.11rem; color: var(--rtf-encre-doux);
  max-width: 50ch; margin: 0 0 2.1rem;
}
.rtf-heros__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.4rem; margin-bottom: 2.4rem; }
.rtf-heros__garanties {
  list-style: none; padding: 1.4rem 0 0; margin: 0;
  border-top: 2px dashed var(--rtf-trait);
  display: flex; flex-wrap: wrap; gap: .7rem 2rem;
  font-size: .92rem; font-weight: 500;
}
.rtf-heros__garanties li { display: flex; align-items: center; gap: .6rem; }

/* Visuel : bloc terre cuite + photo masquée en pignon */
.rtf-heros__visuel { position: relative; }
.rtf-heros__bloc {
  position: absolute; top: 12%; right: -6%; bottom: -6%; left: 14%;
  background: var(--rtf-terre);
  border-radius: 6px;
  background-image: var(--rtf-tuiles-claires);
  background-size: 46px 24px;
}
.rtf-pignon {
  position: relative;
  clip-path: polygon(50% 0%, 100% 27%, 100% 100%, 0% 100%, 0% 27%);
  filter: drop-shadow(var(--rtf-ombre-forte));
  aspect-ratio: 4 / 5;
}
.rtf-pignon img { width: 100%; height: 100%; object-fit: cover; }
.rtf-pignon--large { aspect-ratio: 4 / 3.4; clip-path: polygon(50% 0%, 100% 20%, 100% 100%, 0% 100%, 0% 20%); }

/* Ticket tarif, avec encoches façon coupon */
.rtf-ticket {
  position: absolute; left: -10%; bottom: 9%;
  background: var(--rtf-craie);
  padding: 1.05rem 1.3rem;
  border-radius: 4px;
  box-shadow: var(--rtf-ombre-carte);
  max-width: 216px;
  border-left: 4px solid var(--rtf-orange);
}
.rtf-ticket::before, .rtf-ticket::after {
  content: ""; position: absolute; right: -9px;
  width: 18px; height: 18px; border-radius: 50%;
  background: var(--rtf-sable);
}
.rtf-ticket::before { top: -9px; }
.rtf-ticket::after  { bottom: -9px; }
.rtf-ticket__intitule {
  font-size: .73rem; text-transform: uppercase; letter-spacing: .1em;
  color: var(--rtf-encre-doux); margin: 0 0 .1rem; font-weight: 600;
}
.rtf-ticket__montant {
  font-family: var(--rtf-titrage); font-weight: 800;
  font-size: 2.5rem; line-height: 1; color: var(--rtf-encre);
  margin: 0 0 .35rem; letter-spacing: -.05em;
}
.rtf-ticket__montant span {
  font-family: var(--rtf-chiffres); font-size: .82rem; font-weight: 700;
  color: var(--rtf-orange); margin-left: .3rem; letter-spacing: 0;
}
.rtf-ticket__mention { font-size: .75rem; color: var(--rtf-encre-doux); margin: 0; line-height: 1.45; }
.rtf-ticket--duree { left: auto; right: -7%; bottom: -5%; }

/* Macaron pivoté */
.rtf-macaron {
  position: absolute; right: -3%; top: 4%;
  width: 108px; height: 108px; border-radius: 50%;
  background: var(--rtf-ardoise); color: var(--rtf-craie);
  display: grid; place-items: center; text-align: center;
  transform: rotate(-11deg);
  box-shadow: var(--rtf-ombre-carte);
  border: 3px dashed rgba(255,255,255,.28);
}
.rtf-macaron span {
  font-family: var(--rtf-titrage); font-weight: 800; font-size: .95rem;
  line-height: 1.15; letter-spacing: -.02em; max-width: 5.5em;
}

/* ─── Repères — bande ardoise, pas quatre boîtes ────────────────────────── */

.rtf-reperes {
  position: relative; isolation: isolate;
  background: var(--rtf-ardoise); color: var(--rtf-craie);
  padding: clamp(2.6rem, 5vw, 3.8rem) 0;
  overflow: hidden;
}
.rtf-reperes__trame {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: -1; pointer-events: none;
  background-image: var(--rtf-tuiles-claires);
  background-size: 46px 24px; opacity: .07;
}
.rtf-reperes__serie {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
}
.rtf-repere { padding: .3rem 2rem; position: relative; }
.rtf-repere + .rtf-repere::before {
  content: ""; position: absolute; left: 0; top: 6%; bottom: 6%;
  width: 1px; background: rgba(255,255,255,.16);
}
.rtf-repere:first-child { padding-left: 0; }
.rtf-repere__valeur {
  font-family: var(--rtf-titrage); font-weight: 800;
  font-size: clamp(2.6rem, 4.6vw, 3.6rem); line-height: .95;
  color: var(--rtf-craie); margin: 0 0 .55rem; letter-spacing: -.05em;
  display: flex; align-items: baseline; gap: .06em;
}
.rtf-repere__valeur--accent { color: #F0A87C; }
.rtf-repere__unite { font-size: .42em; font-weight: 700; color: var(--rtf-orange); letter-spacing: 0; }
.rtf-repere__libelle {
  font-size: .88rem; color: rgba(255,255,255,.6); margin: 0; line-height: 1.5;
}

/* ─── Périmètre ─────────────────────────────────────────────────────────── */

.rtf-perimetre { padding: var(--rtf-section) 0; }
.rtf-perimetre__grille {
  display: grid; grid-template-columns: 1.1fr .9fr;
  gap: clamp(2rem, 5vw, 4.5rem); align-items: start;
}

.rtf-jalons { list-style: none; margin: 2.6rem 0 0; padding: 0; display: grid; gap: 0; }
.rtf-jalon {
  display: grid; grid-template-columns: auto 1fr; gap: 1.3rem;
  align-items: start; padding: 1.5rem 0;
  border-top: 1px solid var(--rtf-trait);
}
.rtf-jalon:last-child { border-bottom: 1px solid var(--rtf-trait); }
.rtf-jalon__rang {
  font-family: var(--rtf-chiffres); font-weight: 700; font-size: .92rem;
  width: 46px; height: 46px; flex: 0 0 46px;
  display: grid; place-items: center;
  border-radius: 23px 23px 5px 5px;
  background: var(--rtf-sable); color: var(--rtf-terre);
  border: 1px solid var(--rtf-trait);
}
.rtf-jalon__titre { font-size: 1.1rem; margin: .35rem 0 .35rem; }
.rtf-jalon p { margin: 0; color: var(--rtf-encre-doux); font-size: .96rem; }

.rtf-argumentaire {
  position: relative;
  background: var(--rtf-sable);
  border: 1px solid var(--rtf-trait);
  border-radius: var(--rtf-rayon);
  padding: 2.6rem clamp(1.6rem, 3vw, 2.4rem) clamp(1.8rem, 3vw, 2.4rem);
  margin-top: 1.2rem;
}
/* Petite crête de tuiles sur le haut de la carte */
.rtf-argumentaire__crete {
  position: absolute; left: 0; right: 0; top: 0; height: 12px;
  background: var(--rtf-terre);
  border-radius: var(--rtf-rayon) var(--rtf-rayon) 0 0;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='12' viewBox='0 0 24 12'%3E%3Cpath d='M0 12a12 12 0 0 1 24 0z' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='12' viewBox='0 0 24 12'%3E%3Cpath d='M0 12a12 12 0 0 1 24 0z' fill='%23000'/%3E%3C/svg%3E");
  -webkit-mask-repeat: repeat-x; mask-repeat: repeat-x;
  -webkit-mask-size: 24px 12px; mask-size: 24px 12px;
}
.rtf-argumentaire__titre { font-size: 1.6rem; margin: 0 0 .7rem; }
.rtf-argumentaire__amorce { color: var(--rtf-encre-doux); font-size: .98rem; margin: 0 0 1.7rem; }
.rtf-argumentaire__liste { list-style: none; margin: 0 0 1.9rem; padding: 0; display: grid; gap: 1.3rem; }
.rtf-argumentaire__liste li { padding-left: 2rem; position: relative; }
.rtf-argumentaire__liste li::before {
  content: ""; position: absolute; left: 0; top: .3rem;
  width: 19px; height: 19px; border-radius: 9px 9px 3px 3px;
  background: var(--rtf-terre);
}
.rtf-argumentaire__liste li::after {
  content: ""; position: absolute; left: 6.5px; top: .58rem;
  width: 5px; height: 9px;
  border: solid var(--rtf-craie); border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.rtf-argumentaire__point { font-family: var(--rtf-titrage); font-weight: 700; font-size: 1.01rem; margin: 0 0 .2rem; }
.rtf-argumentaire__liste p { margin: 0; font-size: .92rem; color: var(--rtf-encre-doux); }

/* ─── Prestations ───────────────────────────────────────────────────────── */

.rtf-prestations {
  position: relative; isolation: isolate;
  background: var(--rtf-sable); padding: var(--rtf-section) 0;
  overflow: hidden;
}
.rtf-prestations__trame {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: -1; pointer-events: none;
  background-image: var(--rtf-grain); opacity: .32; mix-blend-mode: multiply;
}
.rtf-prestations__grille {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
}
.rtf-prestation {
  position: relative;
  background: var(--rtf-craie);
  border: 1px solid var(--rtf-trait);
  border-radius: var(--rtf-rayon);
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.rtf-prestation:hover {
  transform: translateY(-6px);
  box-shadow: var(--rtf-ombre-carte);
  border-color: var(--rtf-terre);
}
/* La première carte occupe deux colonnes et passe en horizontal */
.rtf-prestation--vedette { grid-column: span 2; flex-direction: row; }
.rtf-prestation--vedette .rtf-prestation__visuel { flex: 0 0 46%; aspect-ratio: auto; }
.rtf-prestation--vedette .rtf-prestation__titre { font-size: 1.55rem; }
.rtf-prestation--vedette .rtf-prestation__corps { padding: 2rem; }

.rtf-prestation__visuel { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.rtf-prestation__visuel img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.rtf-prestation:hover .rtf-prestation__visuel img { transform: scale(1.06); }
.rtf-prestation__corps { padding: 1.5rem 1.5rem 1.7rem; display: flex; flex-direction: column; flex: 1; position: relative; }
/* Chiffre fantôme en filigrane */
.rtf-prestation__chiffre {
  position: absolute; right: .8rem; top: .1rem;
  font-family: var(--rtf-titrage); font-weight: 800; font-size: 4.2rem;
  line-height: 1; color: var(--rtf-terre); opacity: .09; letter-spacing: -.06em;
  pointer-events: none;
}
.rtf-prestation__tarif {
  font-family: var(--rtf-chiffres); font-weight: 500; font-size: .84rem;
  color: var(--rtf-encre-doux); margin: 0 0 .3rem;
}
.rtf-prestation__tarif b {
  font-family: var(--rtf-titrage); font-weight: 800; font-size: 1.55rem;
  color: var(--rtf-terre); margin-right: .15rem; letter-spacing: -.04em;
}
.rtf-prestation__titre { font-size: 1.22rem; margin: 0 0 .6rem; }
.rtf-prestation__corps > p { color: var(--rtf-encre-doux); font-size: .95rem; margin: 0 0 1.2rem; flex: 1; }

/* ─── Baromètre ─────────────────────────────────────────────────────────── */

.rtf-barometre {
  position: relative; isolation: isolate;
  background: var(--rtf-ardoise); color: var(--rtf-craie);
  padding: calc(var(--rtf-section) + 1.5rem) 0 var(--rtf-section);
  clip-path: polygon(0 46px, 50% 0, 100% 46px, 100% 100%, 0 100%);
  margin-top: -1px;
  overflow: hidden;
}
.rtf-barometre__trame {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: -1; pointer-events: none;
  background-image: var(--rtf-tuiles-claires); background-size: 46px 24px; opacity: .06;
}
.rtf-barometre__grille {
  display: grid; grid-template-columns: .8fr 1.2fr;
  gap: clamp(2rem, 5vw, 4rem); align-items: center;
}
.rtf-barometre__source {
  font-size: .83rem; color: rgba(255,255,255,.45);
  border-left: 3px solid var(--rtf-orange); padding-left: 1rem; margin: 0;
}

/* Le relevé se lit comme un document, pas comme un tableau de site */
.rtf-releve {
  background: var(--rtf-craie); color: var(--rtf-encre);
  border-radius: 5px; overflow: hidden;
  box-shadow: 0 40px 70px -35px rgba(0,0,0,.8);
}
.rtf-releve__entete {
  display: flex; justify-content: space-between; align-items: center;
  padding: .75rem 1.3rem;
  background: var(--rtf-sable-fonce);
  border-bottom: 2px dashed var(--rtf-trait);
  font-family: var(--rtf-chiffres); font-size: .74rem;
  letter-spacing: .08em; text-transform: uppercase; color: var(--rtf-encre-doux);
}
.rtf-releve__sceau {
  color: var(--rtf-terre); border: 1.5px solid var(--rtf-terre);
  padding: .1rem .5rem; border-radius: 3px; transform: rotate(-3deg); font-weight: 700;
}
.rtf-releve table { width: 100%; border-collapse: collapse; }
.rtf-releve thead th {
  font-family: var(--rtf-titrage); font-weight: 700; font-size: .7rem;
  text-transform: uppercase; letter-spacing: .12em; color: var(--rtf-encre-doux);
  padding: .9rem 1.3rem .6rem; text-align: right;
}
.rtf-releve thead th:first-child { text-align: left; }
.rtf-releve tbody th, .rtf-releve tbody td {
  padding: .9rem 1.3rem; border-top: 1px solid var(--rtf-trait);
  font-size: .95rem; text-align: right;
}
.rtf-releve tbody td { font-family: var(--rtf-chiffres); color: var(--rtf-encre-doux); }
.rtf-releve tbody th {
  text-align: left; font-weight: 600; color: var(--rtf-encre); font-size: .95rem;
}
.rtf-releve tbody th small {
  display: block; font-family: var(--rtf-courante); font-size: .72rem; font-weight: 400;
  color: var(--rtf-encre-doux); text-transform: uppercase; letter-spacing: .07em;
}
.rtf-releve tbody tr:hover { background: rgba(185,72,44,.04); }
.rtf-prix {
  font-family: var(--rtf-titrage); font-weight: 800; font-size: 1.18rem;
  color: var(--rtf-craie); background: var(--rtf-terre);
  padding: .18rem .6rem; border-radius: 4px; display: inline-block; letter-spacing: -.03em;
}
.rtf-releve__pied {
  font-size: .78rem; color: var(--rtf-encre-doux); margin: 0;
  padding: 1rem 1.3rem; background: var(--rtf-sable);
  border-top: 2px dashed var(--rtf-trait); line-height: 1.6;
}

/* ─── Simulateur ────────────────────────────────────────────────────────── */

.rtf-simulateur { padding: var(--rtf-section) 0; }
.rtf-simulateur__cadre {
  position: relative;
  max-width: 880px; margin: 0 auto;
  background: var(--rtf-craie);
  border: 1px solid var(--rtf-trait);
  border-radius: var(--rtf-rayon);
  box-shadow: var(--rtf-ombre-carte);
  padding: clamp(2.2rem, 4vw, 3rem) clamp(1.5rem, 3.5vw, 2.8rem) clamp(1.8rem, 3.5vw, 2.6rem);
}
.rtf-simulateur__crete {
  position: absolute; left: 0; right: 0; top: 0; height: 12px;
  background: var(--rtf-orange);
  border-radius: var(--rtf-rayon) var(--rtf-rayon) 0 0;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='12' viewBox='0 0 24 12'%3E%3Cpath d='M0 12a12 12 0 0 1 24 0z' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='12' viewBox='0 0 24 12'%3E%3Cpath d='M0 12a12 12 0 0 1 24 0z' fill='%23000'/%3E%3C/svg%3E");
  -webkit-mask-repeat: repeat-x; mask-repeat: repeat-x;
  -webkit-mask-size: 24px 12px; mask-size: 24px 12px;
}

.rtf-etapes {
  list-style: none; margin: 0 0 2.3rem; padding: 0;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem;
}
.rtf-etapes li {
  display: flex; align-items: center; gap: .55rem;
  font-family: var(--rtf-titrage); font-weight: 700; font-size: .85rem;
  color: var(--rtf-encre-doux);
  padding-bottom: .7rem;
  border-bottom: 3px solid var(--rtf-trait);
  transition: color .2s ease, border-color .2s ease;
}
.rtf-etapes li span {
  width: 27px; height: 27px; flex: 0 0 27px;
  display: grid; place-items: center;
  border-radius: 13px 13px 4px 4px;
  background: var(--rtf-sable-fonce); color: var(--rtf-encre-doux);
  font-family: var(--rtf-chiffres); font-size: .76rem;
  transition: background-color .2s ease, color .2s ease;
}
.rtf-etapes li[aria-current="step"] { color: var(--rtf-encre); border-bottom-color: var(--rtf-orange); }
.rtf-etapes li[aria-current="step"] span { background: var(--rtf-orange); color: var(--rtf-craie); }

.rtf-panneau { border: 0; padding: 0; margin: 0; }
.rtf-panneau__question {
  font-family: var(--rtf-titrage); font-weight: 800;
  font-size: clamp(1.25rem, 2.5vw, 1.6rem);
  margin: 0 0 1.5rem; float: none; width: auto; letter-spacing: -.03em;
}

.rtf-champ-surface { position: relative; max-width: 300px; }
.rtf-champ-surface__unite {
  position: absolute; right: 1.1rem; top: 50%; transform: translateY(-50%);
  font-family: var(--rtf-chiffres); font-weight: 700; color: var(--rtf-encre-doux); pointer-events: none;
}
.rtf-saisie {
  border: 2px solid var(--rtf-trait);
  border-radius: var(--rtf-rayon-doux);
  padding: .82rem 1rem;
  font-family: var(--rtf-courante); font-size: 1rem;
  background: var(--rtf-craie); color: var(--rtf-encre);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.rtf-saisie:focus {
  border-color: var(--rtf-orange);
  box-shadow: 0 0 0 4px rgba(232,117,26,.16);
  outline: none; background: var(--rtf-craie);
}
.rtf-champ-surface .rtf-saisie {
  font-family: var(--rtf-titrage); font-weight: 800; font-size: 1.5rem;
  padding-right: 3.4rem; letter-spacing: -.03em;
}
.rtf-aide { font-size: .89rem; color: var(--rtf-encre-doux); margin: 1rem 0 0; max-width: 52ch; }

.rtf-choix { display: flex; flex-wrap: wrap; gap: .55rem; margin-bottom: 1.5rem; }
.rtf-choix--colonne { flex-direction: column; }
.rtf-choix:last-child { margin-bottom: 0; }
.rtf-option { cursor: pointer; margin: 0; }
.rtf-option input { position: absolute; opacity: 0; width: 0; height: 0; }
.rtf-option span {
  display: flex; align-items: baseline; gap: .5rem;
  padding: .68rem 1.15rem;
  border: 2px solid var(--rtf-trait);
  border-radius: var(--rtf-rayon-doux);
  font-size: .94rem; font-weight: 500;
  transition: border-color .16s ease, background-color .16s ease, color .16s ease, transform .16s ease;
}
.rtf-option span small { font-family: var(--rtf-chiffres); color: var(--rtf-encre-doux); font-size: .8rem; }
.rtf-option:hover span { border-color: var(--rtf-encre-doux); transform: translateY(-1px); }
.rtf-option input:checked + span {
  border-color: var(--rtf-terre); background: rgba(185,72,44,.07); color: var(--rtf-terre-sombre);
}
.rtf-option input:checked + span small { color: var(--rtf-terre); }
.rtf-option input:focus-visible + span { outline: 3px solid var(--rtf-orange); outline-offset: 2px; }

.rtf-alerte {
  background: #FCEBE6; border-left: 4px solid var(--rtf-terre); color: var(--rtf-terre-sombre);
  padding: .85rem 1.1rem; border-radius: var(--rtf-rayon-doux);
  font-size: .92rem; margin: 1.5rem 0 0;
}
.rtf-simulateur__commandes { display: flex; gap: .8rem; margin-top: 2.1rem; }

.rtf-resultat { margin-top: 2.3rem; border-top: 2px dashed var(--rtf-trait); padding-top: 2.1rem; }
.rtf-resultat h3 { font-size: 1.4rem; margin: 0 0 1rem; }
.rtf-resultat__fourchette {
  font-family: var(--rtf-titrage); font-weight: 800;
  font-size: clamp(2rem, 4.4vw, 3rem); line-height: 1.05;
  color: var(--rtf-terre); margin: 0 0 .3rem; letter-spacing: -.045em;
}
.rtf-resultat__base { font-size: .95rem; color: var(--rtf-encre-doux); margin: 0 0 1.7rem; }
.rtf-resultat table { width: 100%; border-collapse: collapse; margin-bottom: 1.4rem; }
.rtf-resultat caption {
  text-align: left; font-family: var(--rtf-titrage); font-weight: 700;
  font-size: .74rem; text-transform: uppercase; letter-spacing: .12em;
  color: var(--rtf-encre-doux); padding-bottom: .7rem;
}
.rtf-resultat td { padding: .72rem .2rem; border-bottom: 1px solid var(--rtf-trait); font-size: .94rem; }
.rtf-resultat td:last-child {
  text-align: right; font-family: var(--rtf-chiffres); font-weight: 700; white-space: nowrap;
}
.rtf-resultat__mention {
  background: var(--rtf-sable); border-left: 3px solid var(--rtf-orange);
  padding: .85rem 1.1rem; font-size: .88rem; color: var(--rtf-encre-doux); margin: 0 0 1.2rem;
}
.rtf-resultat__note { font-size: .88rem; color: var(--rtf-encre-doux); margin: 0 0 1.5rem; }
.rtf-resultat--refus { border-left: 4px solid var(--rtf-mousse); padding-left: 1.5rem; }
.rtf-resultat--refus h3 { color: var(--rtf-mousse); }
.rtf-resultat--refus p { color: var(--rtf-encre-doux); font-size: .99rem; }

/* ─── Engagements ───────────────────────────────────────────────────────── */

.rtf-engagements { background: var(--rtf-craie); padding: var(--rtf-section) 0; }
.rtf-engagements__grille {
  display: grid; grid-template-columns: .92fr 1.08fr;
  gap: clamp(2.5rem, 6vw, 5rem); align-items: center;
}
.rtf-engagements__visuel { position: relative; }
.rtf-engagements__bloc {
  position: absolute; top: 16%; right: 12%; bottom: -6%; left: -8%;
  background: var(--rtf-mousse); border-radius: 6px;
  background-image: var(--rtf-tuiles-claires); background-size: 46px 24px;
  opacity: .9;
}
.rtf-engagements__liste { list-style: none; margin: 2.2rem 0 0; padding: 0; display: grid; gap: 1.6rem; }
.rtf-engagements__liste li { display: grid; grid-template-columns: auto 1fr; gap: 1.1rem; align-items: start; }
.rtf-engagements__icone {
  width: 42px; height: 42px; flex: 0 0 42px;
  display: grid; place-items: center;
  border-radius: 21px 21px 5px 5px;
  background: var(--rtf-terre); color: var(--rtf-craie);
  box-shadow: 0 3px 0 var(--rtf-terre-sombre);
}
.rtf-engagements__icone svg { width: 20px; height: 20px; }
.rtf-engagements__point { font-family: var(--rtf-titrage); font-weight: 700; font-size: 1.06rem; margin: .4rem 0 .3rem; }
.rtf-engagements__liste p { margin: 0; color: var(--rtf-encre-doux); font-size: .95rem; }

/* ─── Réalisations ──────────────────────────────────────────────────────── */

.rtf-realisations { padding: var(--rtf-section) 0; background: var(--rtf-craie); }
.rtf-comparateur {
  position: relative; max-width: 960px; margin: 0 auto;
  border-radius: var(--rtf-rayon); overflow: hidden;
  box-shadow: var(--rtf-ombre-carte);
  aspect-ratio: 4 / 3; user-select: none; touch-action: none;
  border: 6px solid var(--rtf-craie);
  outline: 1px solid var(--rtf-trait);
}
.rtf-comparateur img { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.rtf-comparateur__volet { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 50%; overflow: hidden; }
.rtf-comparateur__volet img { width: 960px; max-width: none; }
.rtf-comparateur__poignee {
  position: absolute; top: 0; bottom: 0; left: 50%;
  width: 3px; background: var(--rtf-craie); transform: translateX(-50%); cursor: ew-resize;
}
.rtf-comparateur__poignee span {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 52px; height: 52px; border-radius: 26px 26px 8px 8px;
  background: var(--rtf-craie); box-shadow: var(--rtf-ombre-carte);
  display: grid; place-items: center;
}
.rtf-comparateur__poignee span::before {
  content: "‹›"; font-family: var(--rtf-titrage); font-size: 1.25rem; font-weight: 800;
  color: var(--rtf-terre); letter-spacing: -3px;
}
.rtf-comparateur__etiquette {
  position: absolute; top: 1rem;
  font-family: var(--rtf-titrage); font-weight: 800; font-size: .74rem;
  text-transform: uppercase; letter-spacing: .12em;
  padding: .4rem .85rem; border-radius: 4px; margin: 0;
}
.rtf-comparateur__etiquette--avant { left: 1rem; background: var(--rtf-mousse); color: var(--rtf-craie); }
.rtf-comparateur__etiquette--apres { right: 1rem; background: var(--rtf-terre); color: var(--rtf-craie); }
.rtf-attribution {
  text-align: center; font-size: .87rem; color: var(--rtf-encre-doux);
  margin: 1.4rem 0 0; font-style: italic;
}

/* ─── Avis ──────────────────────────────────────────────────────────────── */

.rtf-avis {
  position: relative; isolation: isolate;
  background: var(--rtf-sable); padding: var(--rtf-section) 0; overflow: hidden;
}
.rtf-avis__trame {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: -1; pointer-events: none;
  background-image: var(--rtf-grain); opacity: .3; mix-blend-mode: multiply;
}
.rtf-avis__grille {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
}
.rtf-temoignage {
  position: relative;
  background: var(--rtf-craie);
  border: 1px solid var(--rtf-trait);
  border-radius: var(--rtf-rayon);
  padding: 2rem 1.9rem 1.9rem;
  display: flex; flex-direction: column;
}
.rtf-temoignage:nth-child(2) { transform: translateY(-14px); box-shadow: var(--rtf-ombre-carte); border-color: var(--rtf-terre); }
.rtf-temoignage__guillemet {
  position: absolute; right: 1.3rem; top: .1rem;
  font-family: var(--rtf-titrage); font-weight: 800; font-size: 5rem;
  line-height: 1; color: var(--rtf-terre); opacity: .12;
}
.rtf-etoiles { color: var(--rtf-orange); letter-spacing: .18em; font-size: 1rem; margin-bottom: 1rem; }
.rtf-temoignage blockquote { margin: 0 0 1.7rem; flex: 1; }
.rtf-temoignage blockquote p {
  margin: 0; font-size: 1.02rem; color: var(--rtf-encre); line-height: 1.7;
  font-family: var(--rtf-titrage); font-weight: 500; letter-spacing: -.015em;
}
.rtf-temoignage blockquote p::before { content: "« "; }
.rtf-temoignage blockquote p::after  { content: " »"; }
.rtf-temoignage__signature { display: flex; align-items: center; gap: .9rem; padding-top: 1.2rem; border-top: 1px solid var(--rtf-trait); }
.rtf-temoignage__initiales {
  width: 44px; height: 44px; flex: 0 0 44px;
  display: grid; place-items: center; border-radius: 22px 22px 5px 5px;
  background: var(--rtf-sable); color: var(--rtf-terre);
  border: 1px solid var(--rtf-trait);
  font-family: var(--rtf-titrage); font-weight: 800; font-size: .88rem;
}
.rtf-temoignage__nom { font-family: var(--rtf-titrage); font-weight: 700; margin: 0; font-size: .97rem; }
.rtf-temoignage__lieu { margin: 0; font-size: .81rem; color: var(--rtf-encre-doux); }

/* ─── Appel au devis ────────────────────────────────────────────────────── */

.rtf-appel {
  position: relative; isolation: isolate;
  background: var(--rtf-ardoise); color: var(--rtf-craie);
  padding: var(--rtf-section) 0; overflow: hidden;
}
.rtf-appel__trame {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: -1; pointer-events: none;
  background-image: var(--rtf-tuiles-claires); background-size: 46px 24px; opacity: .06;
}
.rtf-appel__grille {
  display: grid; grid-template-columns: 1.12fr .88fr;
  gap: clamp(2rem, 5vw, 4rem); align-items: start;
}
.rtf-formulaire { margin-top: 1.9rem; }
.rtf-formulaire__paire { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.rtf-formulaire__groupe { margin-bottom: 1.1rem; }
.rtf-formulaire__groupe label {
  display: block; font-family: var(--rtf-titrage); font-weight: 700;
  font-size: .87rem; margin-bottom: .4rem; color: var(--rtf-craie);
}
.rtf-formulaire__groupe label span { font-weight: 400; color: rgba(255,255,255,.5); }
.rtf-formulaire .rtf-saisie {
  width: 100%; background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.18); color: var(--rtf-craie);
}
.rtf-formulaire .rtf-saisie::placeholder { color: rgba(255,255,255,.38); }
.rtf-formulaire .rtf-saisie:focus { background: rgba(255,255,255,.1); border-color: var(--rtf-orange); }
.rtf-saisie--fichier { padding: .65rem 1rem; }
.rtf-piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rtf-formulaire__retour {
  margin: 1rem 0 0; padding: .85rem 1.1rem; border-radius: var(--rtf-rayon-doux);
  font-size: .93rem;
  background: rgba(232,117,26,.16); border-left: 4px solid var(--rtf-orange); color: #F6C79F;
}
.rtf-formulaire__retour.est-erreur { background: rgba(185,72,44,.2); border-left-color: var(--rtf-terre); color: #F3B5A2; }

.rtf-appel__contact {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--rtf-rayon); overflow: hidden;
}
.rtf-appel__portrait { aspect-ratio: 4 / 3.2; overflow: hidden; }
.rtf-appel__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 28%; }
.rtf-coordonnees { list-style: none; margin: 0; padding: 1.9rem; display: grid; gap: 1.5rem; }
.rtf-coordonnees__etiquette {
  display: block; font-family: var(--rtf-titrage); font-weight: 700;
  font-size: .72rem; text-transform: uppercase; letter-spacing: .13em;
  color: #E6A07E; margin-bottom: .35rem;
}
.rtf-coordonnees a { font-family: var(--rtf-chiffres); font-weight: 700; font-size: 1.3rem; color: var(--rtf-craie); }
.rtf-coordonnees a:hover { color: var(--rtf-orange); }
.rtf-coordonnees p { margin: 0; font-size: .91rem; color: rgba(255,255,255,.62); }

/* ─── Pied de page ──────────────────────────────────────────────────────── */

.rtf-pied {
  position: relative;
  background: var(--rtf-ardoise); color: rgba(255,255,255,.62);
  padding: clamp(3.5rem, 6vw, 5rem) 0 0;
  border-top: 1px solid rgba(255,255,255,.1);
}
.rtf-pied__grille {
  display: grid; grid-template-columns: 1.7fr 1fr 1fr 1fr;
  gap: clamp(1.8rem, 4vw, 3rem); padding-bottom: 3rem;
}
.rtf-marque--pied { margin-bottom: 1.2rem; }
.rtf-marque--pied .rtf-marque__texte strong { color: var(--rtf-craie); }
.rtf-marque--pied .rtf-marque__texte small { color: rgba(255,255,255,.45); }
.rtf-pied__identite p { font-size: .93rem; max-width: 40ch; margin: 0; }
.rtf-pied__titre {
  font-family: var(--rtf-titrage); font-size: .78rem; text-transform: uppercase;
  letter-spacing: .13em; color: var(--rtf-craie); margin: 0 0 1.2rem;
}
.rtf-pied__colonne ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .65rem; }
.rtf-pied__colonne a { font-size: .93rem; }
.rtf-pied__colonne a:hover { color: var(--rtf-orange); }
.rtf-pied__bas {
  border-top: 1px solid rgba(255,255,255,.1); padding: 1.5rem 0;
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 1rem; font-size: .85rem;
}
.rtf-pied__bas p { margin: 0; }
.rtf-pied__bas ul { list-style: none; display: flex; gap: 1.5rem; margin: 0; padding: 0; }
.rtf-pied__bas a:hover { color: var(--rtf-orange); }

/* ─── Adaptations ───────────────────────────────────────────────────────── */

@media (max-width: 1199.98px) {
  .rtf-ticket { left: 0; }
  .rtf-macaron { right: 2%; width: 94px; height: 94px; }
  .rtf-ticket--duree { right: 0; }
}

@media (max-width: 991.98px) {
  .rtf-entete__deploiement { padding: 1.2rem 0 .5rem; }
  .rtf-nav { flex-direction: column; gap: .2rem; margin: 0 0 1rem; }
  .rtf-nav > li > a { padding: .65rem 0; display: block; border-bottom: 1px solid var(--rtf-trait); }
  .rtf-nav > li > a::after { display: none; }
  .rtf-entete__action { width: 100%; }

  .rtf-heros__grille,
  .rtf-perimetre__grille,
  .rtf-barometre__grille,
  .rtf-engagements__grille,
  .rtf-appel__grille { grid-template-columns: 1fr; }

  .rtf-heros__pan { top: 0; right: 0; bottom: 0; left: 0; clip-path: polygon(0 32%, 100% 8%, 100% 100%, 0 100%); opacity: .7; }
  .rtf-heros__visuel { max-width: 420px; margin: 1rem auto 0; }
  .rtf-engagements__visuel { order: -1; max-width: 520px; margin-inline: auto; }
  .rtf-prestations__grille { grid-template-columns: repeat(2, 1fr); }
  .rtf-prestation--vedette { grid-column: span 2; flex-direction: column; }
  .rtf-prestation--vedette .rtf-prestation__visuel { flex: none; aspect-ratio: 16 / 9; }
  .rtf-avis__grille { grid-template-columns: 1fr; }
  .rtf-temoignage:nth-child(2) { transform: none; }
  .rtf-pied__grille { grid-template-columns: 1fr 1fr; }
  .rtf-barometre { clip-path: polygon(0 30px, 50% 0, 100% 30px, 100% 100%, 0 100%); }
}

@media (max-width: 767.98px) {
  .rtf-reperes__serie { grid-template-columns: repeat(2, 1fr); gap: 1.8rem 0; }
  .rtf-repere { padding: 0 1.2rem; }
  .rtf-repere:nth-child(odd) { padding-left: 0; }
  .rtf-repere:nth-child(odd)::before { display: none; }
}

@media (max-width: 575.98px) {
  .rtf-bandeau__grille { justify-content: center; text-align: center; }
  .rtf-bandeau__annonce { font-size: .78rem; }
  .rtf-heros__actions { flex-direction: column; align-items: stretch; gap: 1rem; }
  .rtf-heros__actions .rtf-bouton { width: 100%; }
  .rtf-prestations__grille { grid-template-columns: 1fr; }
  .rtf-prestation--vedette { grid-column: span 1; }
  .rtf-reperes__serie { grid-template-columns: 1fr; }
  .rtf-repere { padding: 0; }
  .rtf-repere::before { display: none; }
  .rtf-formulaire__paire { grid-template-columns: 1fr; }
  .rtf-etapes { grid-template-columns: repeat(2, 1fr); gap: .9rem; }
  .rtf-simulateur__commandes { flex-direction: column; }
  .rtf-simulateur__commandes .rtf-bouton { width: 100%; }
  .rtf-pied__grille { grid-template-columns: 1fr; }
  .rtf-pied__bas { flex-direction: column; text-align: center; }
  .rtf-ticket { position: static; margin-top: 1.4rem; max-width: none; }
  .rtf-ticket::before, .rtf-ticket::after { display: none; }
  .rtf-macaron { top: -14px; right: -6px; width: 78px; height: 78px; }
  .rtf-macaron span { font-size: .78rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ─── Notions : coefficient de pente et saisonnalité ────────────────────── */

.rtf-notions {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(1.6rem, 3.5vw, 2.8rem);
  max-width: 1000px; margin: clamp(3rem, 6vw, 4.5rem) auto 0;
}
.rtf-notion {
  background: var(--rtf-sable);
  border: 1px solid var(--rtf-trait);
  border-radius: var(--rtf-rayon);
  padding: clamp(1.5rem, 3vw, 2.1rem);
}
.rtf-notion__titre { font-size: 1.18rem; margin: 0 0 .9rem; line-height: 1.25; }
.rtf-notion p { color: var(--rtf-encre-doux); font-size: .96rem; margin: 0 0 1rem; }
.rtf-notion p:last-child { margin-bottom: 0; }
.rtf-notion strong { color: var(--rtf-encre); font-weight: 600; }

.rtf-notion__table { width: 100%; border-collapse: collapse; margin: 0 0 1.1rem; }
.rtf-notion__table caption {
  text-align: left; font-family: var(--rtf-titrage); font-weight: 700;
  font-size: .72rem; text-transform: uppercase; letter-spacing: .11em;
  color: var(--rtf-terre); padding-bottom: .6rem;
}
.rtf-notion__table th, .rtf-notion__table td {
  padding: .55rem .2rem; border-bottom: 1px solid var(--rtf-trait);
  font-size: .9rem; font-weight: 400; text-align: left;
}
.rtf-notion__table th { color: var(--rtf-encre); }
.rtf-notion__table td { font-family: var(--rtf-chiffres); text-align: right; color: var(--rtf-encre-doux); }
.rtf-notion__table td:last-child { font-weight: 700; color: var(--rtf-terre); }

/* Histogramme de saisonnalité */
.rtf-saison { margin: 0 0 1.1rem; }
.rtf-saison__barres {
  list-style: none; margin: 0 0 .7rem; padding: 0;
  display: grid; grid-template-columns: repeat(12, 1fr);
  gap: 3px; align-items: end; height: 130px;
}
.rtf-saison__barres li {
  position: relative; height: var(--h);
  background: var(--rtf-trait);
  border-radius: 4px 4px 0 0;
  transition: background-color .18s ease;
}
.rtf-saison__barres li.est-pic { background: var(--rtf-terre); }
.rtf-saison__barres li.est-creux { background: var(--rtf-mousse); opacity: .45; }
.rtf-saison__barres li span {
  position: absolute; left: 50%; bottom: -1.5rem; transform: translateX(-50%);
  font-family: var(--rtf-chiffres); font-size: .6rem;
  color: var(--rtf-encre-doux); white-space: nowrap;
}
.rtf-saison figcaption {
  font-size: .8rem; color: var(--rtf-encre-doux);
  margin-top: 1.8rem; line-height: 1.55;
  border-left: 3px solid var(--rtf-terre); padding-left: .8rem;
}

/* ─── FAQ ───────────────────────────────────────────────────────────────── */

.rtf-faq { padding: var(--rtf-section) 0; background: var(--rtf-craie); }
.rtf-faq__liste { max-width: 800px; margin: 0 auto; }
.rtf-faq__question {
  font-family: var(--rtf-titrage); font-weight: 800;
  font-size: clamp(1.08rem, 2.2vw, 1.28rem);
  letter-spacing: -.02em; color: var(--rtf-encre);
  padding: 1.5rem 0 .8rem 2.4rem;
  border-top: 1px solid var(--rtf-trait);
  position: relative;
}
.rtf-faq__liste > .rtf-faq__question:first-child { border-top: 0; padding-top: 0; }
.rtf-faq__question::before {
  content: ""; position: absolute; left: 0; top: 1.75rem;
  width: 22px; height: 12px; border-radius: 11px 11px 0 0;
  background: var(--rtf-terre);
}
.rtf-faq__liste > .rtf-faq__question:first-child::before { top: .25rem; }
.rtf-faq__reponse { margin: 0 0 .6rem; padding-left: 2.4rem; }
.rtf-faq__reponse p { color: var(--rtf-encre-doux); font-size: .99rem; margin: 0 0 .9rem; }
.rtf-faq__reponse p:last-child { margin-bottom: 0; }
.rtf-faq__reponse strong { color: var(--rtf-encre); font-weight: 600; }

@media (max-width: 767.98px) {
  .rtf-notions { grid-template-columns: 1fr; }
  .rtf-saison__barres { height: 100px; }
  .rtf-faq__question, .rtf-faq__reponse { padding-left: 1.9rem; }
}

/* ─── Titres : deux lignes maximum ──────────────────────────────────────── */

/* Coupures explicites sur grand écran, retour au flux naturel sur mobile */
.rtf-saut { display: inline; }

/* Répartition équilibrée quand le navigateur coupe lui-même */
.rtf-heros__accroche,
.rtf-titre,
.rtf-notion__titre,
.rtf-prestation__titre,
.rtf-panneau__question,
.rtf-faq__question { text-wrap: balance; }

/* Le héros gagne de la largeur pour tenir sur deux lignes sans rapetisser */
@media (min-width: 992px) {
  .rtf-heros__grille { grid-template-columns: 1.22fr .78fr; }
}
.rtf-heros__accroche { font-size: clamp(2rem, 4.05vw, 3.4rem); }

/* Titres de section légèrement resserrés */
.rtf-titre { font-size: clamp(1.85rem, 3.3vw, 2.75rem); }

/* La carte vedette occupe deux colonnes ET deux rangées :
   la grille de six prestations se remplit alors exactement, sans trou. */
@media (min-width: 992px) {
  .rtf-prestation--vedette { grid-column: span 2; grid-row: span 2; flex-direction: column; }
  .rtf-prestation--vedette .rtf-prestation__visuel { flex: 1 1 auto; aspect-ratio: auto; min-height: 300px; }
  .rtf-prestation--vedette .rtf-prestation__corps { flex: 0 0 auto; }
}

@media (max-width: 575.98px) {
  .rtf-saut { display: none; }
}

/* Le baromètre a la colonne de texte la plus étroite : son titre y est calibré à part */
@media (min-width: 992px) {
  .rtf-barometre__grille { grid-template-columns: .95fr 1.05fr; }
}
.rtf-barometre .rtf-titre { font-size: clamp(1.7rem, 2.9vw, 2.4rem); }

/* ─── Pages intérieures ─────────────────────────────────────────────────── */

.rtf-ouverture {
  position: relative; isolation: isolate;
  background: var(--rtf-sable);
  padding: 1.4rem 0 clamp(3rem, 6vw, 5rem);
  overflow: hidden;
}
.rtf-ouverture__trame {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: -1; pointer-events: none;
  background-image: var(--rtf-tuiles); background-size: 46px 24px; opacity: .13;
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 60%, #000);
          mask-image: linear-gradient(to bottom, transparent, #000 60%, #000);
}
.rtf-ouverture__grille {
  display: grid; grid-template-columns: 1.25fr .75fr;
  gap: clamp(2rem, 5vw, 3.5rem); align-items: start; margin-top: 1.6rem;
}
.rtf-ouverture__titre {
  font-family: var(--rtf-titrage); font-weight: 800;
  font-size: clamp(1.9rem, 3.9vw, 3.1rem); line-height: 1.06;
  letter-spacing: -.035em; margin: 0 0 1.3rem; text-wrap: balance;
}

/* Fil d'ariane */
.rtf-ariane ol {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: .5rem;
  font-size: .84rem; color: var(--rtf-encre-doux);
}
.rtf-ariane li + li::before { content: "›"; margin-right: .5rem; color: var(--rtf-terre); }
.rtf-ariane a { border-bottom: 1px solid var(--rtf-trait); }
.rtf-ariane a:hover { color: var(--rtf-terre); border-bottom-color: currentColor; }

/* Encadré de synthèse */
.rtf-resume {
  position: relative;
  background: var(--rtf-craie); border: 1px solid var(--rtf-trait);
  border-radius: var(--rtf-rayon);
  padding: 2.4rem 1.6rem 1.6rem;
  box-shadow: var(--rtf-ombre);
}
.rtf-resume__crete {
  position: absolute; left: 0; right: 0; top: 0; height: 12px;
  background: var(--rtf-terre); border-radius: var(--rtf-rayon) var(--rtf-rayon) 0 0;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='12' viewBox='0 0 24 12'%3E%3Cpath d='M0 12a12 12 0 0 1 24 0z' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='12' viewBox='0 0 24 12'%3E%3Cpath d='M0 12a12 12 0 0 1 24 0z' fill='%23000'/%3E%3C/svg%3E");
  -webkit-mask-repeat: repeat-x; mask-repeat: repeat-x;
  -webkit-mask-size: 24px 12px; mask-size: 24px 12px;
}
.rtf-resume__titre {
  font-family: var(--rtf-titrage); font-weight: 800; font-size: 1.05rem;
  margin: 0 0 1rem; letter-spacing: -.02em;
}
.rtf-resume__liste { margin: 0 0 1rem; }
.rtf-resume__liste dt {
  font-size: .9rem; font-weight: 500; color: var(--rtf-encre-doux);
  padding: .55rem 0 0; border-top: 1px solid var(--rtf-trait);
}
.rtf-resume__liste dt:first-child { border-top: 0; padding-top: 0; }
.rtf-resume__liste dd {
  font-family: var(--rtf-titrage); font-weight: 800; font-size: 1.3rem;
  color: var(--rtf-terre); margin: 0 0 .5rem; letter-spacing: -.03em;
}
.rtf-resume__note {
  font-size: .8rem; color: var(--rtf-encre-doux); margin: 0;
  border-left: 3px solid var(--rtf-orange); padding-left: .8rem; line-height: 1.55;
}

/* Corps d'article */
.rtf-article { padding: var(--rtf-section) 0; background: var(--rtf-craie); }
.rtf-article__corps { max-width: 74ch; margin: 0 auto; }
.rtf-article__corps h2 {
  font-size: clamp(1.55rem, 3vw, 2.15rem); line-height: 1.14;
  margin: 3rem 0 1.1rem; text-wrap: balance;
}
.rtf-article__corps h2:first-child { margin-top: 0; }
.rtf-article__corps h3 {
  font-size: clamp(1.12rem, 2.1vw, 1.35rem); line-height: 1.2;
  margin: 2.1rem 0 .8rem; color: var(--rtf-terre); text-wrap: balance;
}
.rtf-article__corps p { color: var(--rtf-encre-doux); font-size: 1.04rem; margin: 0 0 1.2rem; }
.rtf-article__corps strong { color: var(--rtf-encre); font-weight: 600; }
.rtf-article__corps .rtf-notion__table { margin: 1.4rem 0 1.6rem; }

.rtf-facteurs { list-style: none; counter-reset: f; margin: 1.6rem 0 2rem; padding: 0; }
.rtf-facteurs li {
  counter-increment: f; position: relative;
  padding: 1.1rem 0 1.1rem 3.4rem;
  border-top: 1px solid var(--rtf-trait);
  color: var(--rtf-encre-doux); font-size: 1rem;
}
.rtf-facteurs li:last-child { border-bottom: 1px solid var(--rtf-trait); }
.rtf-facteurs li::before {
  content: counter(f, decimal-leading-zero);
  position: absolute; left: 0; top: 1.05rem;
  font-family: var(--rtf-chiffres); font-weight: 700; font-size: .85rem;
  width: 40px; height: 40px; display: grid; place-items: center;
  border-radius: 20px 20px 4px 4px;
  background: var(--rtf-sable); color: var(--rtf-terre);
  border: 1px solid var(--rtf-trait);
}
.rtf-facteurs strong { color: var(--rtf-encre); font-weight: 600; }

.rtf-releve--article { margin: 1.8rem 0 2.2rem; box-shadow: var(--rtf-ombre); }

.rtf-appel__simple { max-width: 62ch; margin: 0 auto; text-align: center; }
.rtf-appel__simple .rtf-heros__actions { justify-content: center; }

@media (max-width: 991.98px) {
  .rtf-ouverture__grille { grid-template-columns: 1fr; }
  .rtf-resume { max-width: 460px; }
}

/* ─── Visuels d'article ─────────────────────────────────────────────────── */

.rtf-visuel { margin: 2rem 0 2.2rem; }
.rtf-visuel img {
  width: 100%; border-radius: var(--rtf-rayon);
  border: 5px solid var(--rtf-craie); outline: 1px solid var(--rtf-trait);
  box-shadow: var(--rtf-ombre-carte);
}
.rtf-visuel figcaption {
  font-size: .87rem; color: var(--rtf-encre-doux);
  margin-top: .9rem; line-height: 1.6;
  border-left: 3px solid var(--rtf-terre); padding-left: .9rem;
}
.rtf-visuel--schema svg {
  width: 100%; height: auto; display: block;
  background: var(--rtf-sable);
  border: 1px solid var(--rtf-trait);
  border-radius: var(--rtf-rayon);
  padding: .5rem;
}
.rtf-schema__cote, .rtf-schema__mesure, .rtf-schema__titre, .rtf-schema__ligne text {
  font-family: var(--rtf-courante); font-size: 13px; fill: var(--rtf-encre-doux);
}
.rtf-schema__mesure { fill: var(--rtf-orange); font-weight: 600; }
.rtf-schema__titre {
  font-family: var(--rtf-titrage); font-weight: 700; font-size: 13px;
  fill: var(--rtf-terre); text-transform: uppercase; letter-spacing: .1em;
}
.rtf-schema__ligne text { fill: var(--rtf-encre); font-size: 14px; }
.rtf-schema__val { font-family: var(--rtf-chiffres); font-weight: 700; fill: var(--rtf-encre-doux); }
.rtf-schema__val--fort { fill: var(--rtf-terre); }

/* Liens contextuels dans le corps */
.rtf-article__corps p a,
.rtf-facteurs a {
  color: var(--rtf-terre); font-weight: 500;
  border-bottom: 2px solid rgba(185,72,44,.28);
  transition: border-color .16s ease, background-color .16s ease;
}
.rtf-article__corps p a:hover,
.rtf-facteurs a:hover { border-bottom-color: var(--rtf-terre); background: rgba(185,72,44,.07); }

.visually-hidden {
  position: absolute !important; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Petits écrans : lisibilité des tableaux
   ───────────────────────────────────────────────────────────────────────────
   Constaté sur un mobile Android de 360 px : le relevé tarifaire réclamait
   458 px pour 336 disponibles, et son conteneur était en `overflow: hidden`
   pour arrondir les angles. Résultat, la colonne « Nous » — celle qui porte
   tout l'argument — était coupée et INATTEIGNABLE, sans même une barre de
   défilement pour la retrouver.

   Deux corrections superposées, dans cet ordre :
   1. resserrer pour que le tableau TIENNE, parce qu'un tableau de prix qu'on
      doit faire défiler est un tableau dont on ne compare plus les lignes ;
   2. autoriser le défilement en dernier recours, pour qu'aucun contenu ne
      soit jamais coupé sur un écran encore plus étroit (320 px).
   ═════════════════════════════════════════════════════════════════════════ */

@media (max-width: 640px) {

  /* Le défilement remplace le rognage. L'angle arrondi est préservé :
     `overflow-x` suffit à le maintenir, `overflow: hidden` n'est pas requis. */
  .rtf-releve {
    overflow: visible;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;   /* inertie sur les moteurs anciens */
  }

  /* Le relevé : 4 colonnes à faire tenir dans 336 px. */
  .rtf-releve thead th {
    padding: .7rem .45rem .5rem;
    font-size: .58rem;
    letter-spacing: .04em;
  }
  .rtf-releve tbody th,
  .rtf-releve tbody td {
    padding: .6rem .45rem;
    font-size: .82rem;
  }
  .rtf-releve tbody th { font-size: .8rem; }

  /* La mention « relevé Lyon » passait en ligne et gonflait la 1re colonne
     de tout son texte. En bloc, elle ne compte plus dans la largeur utile. */
  .rtf-releve tbody th small {
    display: block;
    font-size: .68rem;
    line-height: 1.3;
  }

  .rtf-releve__entete {
    padding: .6rem .75rem;
    font-size: .66rem;
  }

  /* Les tableaux insérés dans le corps des articles. */
  .rtf-notion__table th,
  .rtf-notion__table td {
    padding: .5rem .15rem;
    font-size: .8rem;
  }
  .rtf-notion__table caption { font-size: .66rem; }

  .rtf-resultat table { font-size: .82rem; }
  .rtf-resultat th,
  .rtf-resultat td { padding: .5rem .3rem; }
}

/* Écrans très étroits : on ne resserre plus, on laisse défiler. */
@media (max-width: 380px) {
  .rtf-releve table { min-width: 320px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Petits écrans : décalages décoratifs
   ───────────────────────────────────────────────────────────────────────────
   Les blocs de couleur derrière les visuels sont volontairement décalés hors
   de leur conteneur (marges négatives) pour donner du relief. Sur un écran
   large le conteneur est étroit, le débordement reste dans la page. Sur mobile
   il occupe presque toute la largeur : le décalage sort alors de l'écran et
   provoque un débordement horizontal, masqué par le `overflow-x: hidden` du
   body mais bien réel. Sur mobile, ce relief n'apporte rien : on le neutralise.
   ═════════════════════════════════════════════════════════════════════════ */

@media (max-width: 640px) {
  .rtf-heros__bloc { right: 0; left: 8%; }
  .rtf-engagements__bloc { right: 8%; left: 0; }
}
