/* ============================================================
   Rhône Cleaning — feuille de styles
   Palette : papier #F7F7F3 · encre #16211C · vert #0E7A55 · orange #FF6A13
   Typographie : IBM Plex Sans / Sans Condensed / Mono
   ============================================================ */

/* ============================================================
   Polices auto-hébergées — IBM Plex, SIL Open Font License 1.1
   Servies depuis notre domaine plutôt que depuis Google Fonts :
   une requête tierce en moins avant l'affichage, et aucune donnée
   de visiteur envoyée à un tiers, conformément à ce qu'annonce la
   page « Gestion des cookies ».
   ============================================================ */
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/IBMPlexMono-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('../fonts/IBMPlexMono-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('../fonts/IBMPlexMono-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('../fonts/IBMPlexMono-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 Sans';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/IBMPlexSans-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 Sans';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/IBMPlexSans-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 Sans';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/IBMPlexSans-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 Sans';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/IBMPlexSans-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:'IBM Plex Sans Condensed';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/IBMPlexSansCondensed-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 Sans Condensed';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/IBMPlexSansCondensed-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:'IBM Plex Sans Condensed';font-style:normal;font-weight:700;font-display:swap;
  src:url('../fonts/IBMPlexSansCondensed-700-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 Sans Condensed';font-style:normal;font-weight:700;font-display:swap;
  src:url('../fonts/IBMPlexSansCondensed-700-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;}

:root{
  --papier:#F7F7F3; --blanc:#FFFFFF; --encre:#16211C; --gris:#5C6A64; --lisere:#DDE0D9;
  --vert:#0E7A55; --vert-fonce:#0A2C22; --vert-clair:#E4F1EA;
  --orange:#FF6A13; --orange-clair:#FFEDE1;
  /* Orange assombri pour tout ce qui porte du texte : le #FF6A13 d'origine
     ne donne que 2,87:1 avec du blanc, très loin des 4,5:1 exigés.
     Le ton vif reste employé pour le décoratif, où aucun seuil ne s'applique. */
  --orange-lisible:#BC4E0E;
  --display:"IBM Plex Sans Condensed",system-ui,sans-serif;
  --corps:"IBM Plex Sans",system-ui,sans-serif;
  --data:"IBM Plex Mono",ui-monospace,monospace;
  --marge:clamp(20px,5vw,72px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--papier);color:var(--encre);font-family:var(--corps);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1;letter-spacing:-.015em;margin:0}
p{margin:0 0 1em}
a{color:inherit}
img{max-width:100%;display:block}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
/* Une règle d'auteur comme .bouton{display:inline-block} l'emporte sur le
   display:none que le navigateur applique à [hidden] : les boutons masqués
   par le script restaient visibles. */
[hidden]{display:none!important}

.wrap{max-width:1220px;margin:0 auto;padding-inline:var(--marge);position:relative;z-index:2}
.eyebrow{font-family:var(--data);font-weight:500;font-size:clamp(13.5px,1.5vw,15.5px);letter-spacing:.11em;text-transform:uppercase;color:var(--encre);margin:0 0 22px;display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:34px;height:4px;background:var(--orange);flex:none}

/* ---------- en-tête + logo ---------- */
.bandeau{position:sticky;top:0;z-index:60;background:rgba(247,247,243,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--lisere)}
.bandeau .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:70px}
.marque{display:flex;align-items:center;gap:11px;text-decoration:none}
.marque svg{width:38px;height:38px;flex:none}
.marque .mot{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:.05em;text-transform:uppercase;line-height:1}
.marque .mot i{font-style:normal;color:var(--vert);display:block;font-size:20px}
.nav{display:flex;align-items:center;gap:26px}
.nav a{font-size:14.5px;text-decoration:none;color:var(--gris)}
.nav a:hover{color:var(--vert)}
/* .nav a (0,1,1) l'emporte sur .bouton (0,1,0) : sans ces deux règles, le
   bouton « Devis » de la barre hérite du gris de la navigation, invisible
   sur son fond orange. Le défaut existait depuis l'origine, l'orange plus
   foncé n'a fait que le rendre criant. */
.nav a.bouton{color:#fff}
.nav a.bouton:hover{color:#fff}
@media(max-width:940px){.nav a:not(.bouton){display:none}}

.bouton{display:inline-block;background:var(--orange-lisible);color:#fff;text-decoration:none;font-family:var(--display);font-weight:600;font-size:15px;letter-spacing:.04em;text-transform:uppercase;padding:12px 22px;border:1px solid var(--orange-lisible);cursor:pointer;border-radius:2px;transition:transform .18s,box-shadow .18s,background .18s}
.bouton:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(255,106,19,.32)}
.bouton.creux{background:transparent;color:var(--vert);border-color:var(--vert)}
.bouton.creux:hover{background:var(--vert);color:#fff;box-shadow:0 8px 20px rgba(14,122,85,.28)}

/* ---------- fond Lyon ---------- */
.fond-lyon{position:absolute;left:0;right:0;bottom:0;height:min(58%,330px);z-index:0;pointer-events:none;overflow:hidden}
.fond-lyon svg{width:100%;height:100%;display:block}
.fond-lyon path,.fond-lyon line,.fond-lyon polyline,.fond-lyon circle{fill:none;stroke:var(--vert);stroke-width:1.6;vector-effect:non-scaling-stroke;opacity:.38}
.fond-lyon.pale path,.fond-lyon.pale line,.fond-lyon.pale polyline,.fond-lyon.pale circle{opacity:.24}
.fond-lyon.clair path,.fond-lyon.clair line,.fond-lyon.clair polyline,.fond-lyon.clair circle{stroke:#7FC0A6;opacity:.30}
/* variante pour fond sombre : trait clair lumineux */
.fond-lyon.nuit-fond path,.fond-lyon.nuit-fond line,.fond-lyon.nuit-fond polyline,.fond-lyon.nuit-fond circle{stroke:#4FB98C;opacity:.30}

/* ---------- héros ---------- */
.hero{padding:clamp(48px,7vw,84px) 0 0;position:relative;overflow:hidden}
.hero-grille{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:clamp(28px,5vw,64px);align-items:center}
@media(max-width:940px){.hero-grille{grid-template-columns:1fr}}
.hero h1{font-size:clamp(40px,6.6vw,80px);max-width:15ch}
.hero h1 em{font-style:normal;color:var(--vert);position:relative;white-space:nowrap}
.hero h1 em::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.14em;background:var(--orange);opacity:.85}
.chapo{max-width:50ch;font-size:clamp(16.5px,1.7vw,19px);color:var(--gris);margin-top:24px}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}

.mosaique{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.shot{position:relative;overflow:hidden;background:var(--vert-clair);border-radius:3px;margin:0}
.shot img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/10;transition:transform .7s ease}
.shot:hover img{transform:scale(1.05)}
.shot figcaption{position:absolute;left:0;bottom:0;background:var(--encre);color:#fff;font-family:var(--data);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:7px 12px}
.shot.vide img{display:none}
.shot.vide{aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;text-align:center;padding:18px;background:repeating-linear-gradient(45deg,var(--vert-clair) 0 14px,#D8EBE0 14px 28px)}
.shot.vide::before{content:attr(data-vide);font-family:var(--data);font-size:11.5px;line-height:1.7;letter-spacing:.06em;text-transform:uppercase;color:var(--vert)}
.shot.vide figcaption{display:none}

/* ---------- bandeaux défilants ---------- */
.tickers{margin-top:clamp(40px,6vw,68px);position:relative;z-index:2}
.ticker{overflow:hidden}
.ticker-piste{display:flex;width:max-content;will-change:transform}
.ticker.secteurs{background:var(--orange);color:#fff;border-block:1px solid var(--orange)}
.ticker.secteurs .ticker-piste{animation:versDroite 38s linear infinite}
.ticker.secteurs span{font-family:var(--display);font-weight:700;font-size:clamp(16px,2vw,23px);text-transform:uppercase;letter-spacing:.03em;padding:13px 0;white-space:nowrap}
.ticker.secteurs span::after{content:"●";font-size:.5em;vertical-align:middle;margin:0 26px;opacity:.75}
.ticker.clients{background:var(--blanc);border-bottom:1px solid var(--lisere)}
.ticker.clients .ticker-piste{animation:versGauche 32s linear infinite;align-items:center}
.logo-client{display:flex;align-items:center;justify-content:center;height:92px;padding:0 clamp(26px,3.4vw,52px);white-space:nowrap}
.logo-client img{max-height:58px;width:auto;opacity:.95;transition:transform .3s,opacity .3s}
.logo-client:hover img{opacity:1;transform:scale(1.06)}
.logo-client b{font-family:var(--display);font-weight:700;font-size:21px;letter-spacing:.06em;text-transform:uppercase;color:var(--gris);border:1px solid var(--lisere);padding:11px 20px;border-radius:2px}
.legende-clients{font-family:var(--data);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gris);text-align:center;padding:12px 0 0}
@keyframes versGauche{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes versDroite{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.ticker:hover .ticker-piste{animation-play-state:paused}

/* ---------- repères ---------- */
.repere{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--lisere);border:1px solid var(--lisere);margin-top:clamp(38px,5vw,60px)}
.repere div{background:var(--papier);padding:26px 22px}
.repere b{display:block;font-family:var(--display);font-size:38px;line-height:1;color:var(--vert)}
.repere span{font-family:var(--data);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--gris)}

/* ---------- sections ---------- */
.section{padding:clamp(56px,8vw,104px) 0;position:relative}
.section h2{font-size:clamp(30px,4.4vw,52px);max-width:22ch}
.sous{color:var(--gris);max-width:56ch;margin-top:16px}
.grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:18px;margin-top:44px}
.carte{background:var(--blanc);border:1px solid var(--lisere);border-top:4px solid var(--vert);padding:28px 24px 32px;position:relative;transition:transform .25s,box-shadow .25s,border-top-color .25s}
.carte:hover{transform:translateY(-6px);box-shadow:0 14px 34px rgba(22,33,28,.10);border-top-color:var(--orange)}
.carte h3{font-size:23px;margin-bottom:12px}
.carte p{font-size:15.5px;color:var(--gris);margin:0}
.carte ul{margin:14px 0 0;padding:0;list-style:none}
.carte li{font-size:14.5px;color:var(--gris);padding-left:17px;position:relative;margin-bottom:5px}
.carte li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;background:var(--orange);border-radius:50%}
.cadence{display:inline-block;font-family:var(--data);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--vert);background:var(--vert-clair);padding:5px 10px;border-radius:2px;margin-bottom:14px}

/* ---------- témoignage ---------- */
.temoignage{background:var(--vert-clair);border-block:1px solid #CDE4D8}
.cite{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(20px,4vw,48px);align-items:start}
@media(max-width:760px){.cite{grid-template-columns:1fr}}
.cite .guillemet{font-family:var(--display);font-size:120px;line-height:.7;color:var(--orange);opacity:.5}
.cite blockquote{margin:0;font-family:var(--display);font-weight:600;font-size:clamp(21px,3vw,33px);line-height:1.25;max-width:26ch}
.cite footer{margin-top:24px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.cite footer .qui{font-family:var(--data);font-size:12.5px;letter-spacing:.06em;color:var(--gris);line-height:1.6}
.cite .logo-cite{height:34px;width:auto}
.cite .a-valider{display:inline-block;font-family:var(--data);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--orange);border:1px dashed var(--orange);padding:4px 8px;border-radius:2px}
.temoins{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(34px,5vw,72px);align-items:start}
.temoins .cite{gap:clamp(14px,2vw,26px)}
.temoins .cite .guillemet{font-size:clamp(72px,7vw,104px)}
.temoins .cite blockquote{font-size:clamp(18px,2.3vw,26px);max-width:none}
@media(max-width:880px){
  .temoins{gap:0}
  .temoins .cite + .cite{margin-top:clamp(36px,6vw,52px);padding-top:clamp(36px,6vw,52px);border-top:1px solid #CDE4D8}
}
.cite .titre-avis{font-family:var(--display);font-weight:700;font-size:clamp(15px,1.9vw,18px);color:var(--vert);margin:0 0 14px}

/* ---------- chantiers ---------- */
.chantiers{background:var(--blanc);border-block:1px solid var(--lisere)}
.compar{position:relative;margin-top:40px;border-radius:3px;overflow:hidden;aspect-ratio:16/9;background:var(--vert-clair);user-select:none}
.compar .face{position:absolute;inset:0;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center}
.compar .apres{clip-path:inset(0 0 0 50%)}
.compar .etiq{position:absolute;top:16px;font-family:var(--data);font-size:11px;letter-spacing:.1em;text-transform:uppercase;background:var(--encre);color:#fff;padding:6px 11px;z-index:3}
.compar .etiq.g{left:16px}
.compar .etiq.d{right:16px;background:var(--vert)}
.compar .vide-txt{font-family:var(--data);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--vert);text-align:center;padding:20px}
.poignee{position:absolute;top:0;bottom:0;width:3px;background:var(--orange);left:50%;transform:translateX(-50%);pointer-events:none;z-index:2}
.poignee::after{content:"↔";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;font-size:19px;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.compar input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0;z-index:4}
.bande-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:14px}

/* ---------- estimateur ---------- */
.nuit{background:var(--vert-fonce);color:#EAF2EE}
.nuit .eyebrow{color:#B3E0CB}
.nuit h2{color:#fff}
.nuit .sous{color:#9BB5AB}
.calc{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:clamp(24px,4vw,52px);margin-top:44px;align-items:start}
@media(max-width:940px){.calc{grid-template-columns:1fr}}
.champ{margin-bottom:22px}
.contrainte{border-left:3px solid var(--orange);padding:2px 0 2px 16px;margin-top:26px}
.contrainte .etiquette{display:block;font-family:var(--data);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--orange);margin-bottom:6px}
.contrainte p{margin:0;font-size:15px;color:#C3D6CE;line-height:1.5}
.champ label{display:block;font-family:var(--data);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#7FC0A6;margin-bottom:8px}
.calc select{width:100%;background:#123A2D;color:#EAF2EE;border:1px solid #1D5140;font-family:var(--corps);font-size:16px;padding:12px 14px;appearance:none;border-radius:2px;
  background-image:linear-gradient(45deg,transparent 50%,var(--orange) 50%),linear-gradient(135deg,var(--orange) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.calc input[type=range]{width:100%;accent-color:var(--orange);height:26px}
.valeur{font-family:var(--display);font-size:42px;line-height:1;display:flex;align-items:baseline;gap:8px;color:#fff}
.valeur small{font-family:var(--data);font-size:13px;color:#7FC0A6;letter-spacing:.08em}
.planche{background:#0E3428;border:1px solid #1D5140;padding:clamp(16px,2.6vw,28px);border-radius:3px}
.planche .titre{font-family:var(--data);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#7FC0A6;margin-bottom:16px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.semaine{display:grid;grid-template-columns:30px repeat(7,minmax(0,1fr));gap:6px}
.echelle{position:relative;height:232px;margin-top:22px}
.echelle span{position:absolute;right:0;transform:translateY(-50%);font-family:var(--data);font-size:9.5px;color:#7FB29C}
.jour .nom{font-family:var(--data);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#7FC0A6;text-align:center;margin-bottom:6px}
.col{position:relative;height:232px;background:#12402F;border:1px solid #1D5140;border-radius:2px;overflow:hidden;transition:opacity .3s}
.jour.off .col{opacity:.34}
.jour.off .nom{color:#7FB29C}
.col .occ{position:absolute;left:0;right:0;background:rgba(155,181,171,.10);border-block:1px dashed #24614C}
.col .int{position:absolute;left:3px;right:3px;background:var(--orange-lisible);border-radius:1.5px;display:flex;align-items:center;justify-content:center;transition:top .3s ease,height .3s ease;box-shadow:0 0 0 1px rgba(255,106,19,.35)}
.col .int{flex-direction:column;gap:1px;text-align:center;padding:2px}
.col .int b{font-family:var(--data);font-size:9px;color:#fff;letter-spacing:.02em;line-height:1.25}
.col .int b.hh{font-size:8.5px;opacity:.9;white-space:pre-line}
.sortie{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:18px;margin-top:24px;border-top:1px solid #1D5140;padding-top:20px}
.sortie b{display:block;font-family:var(--display);font-size:30px;line-height:1;color:var(--orange)}
.sortie b.horaire{font-size:21px;letter-spacing:-.01em}
.sortie span{font-family:var(--data);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#7FC0A6}
.avert{font-size:13px;color:#6FA893;margin-top:18px;max-width:64ch}
.nuit .bouton{margin-top:20px}

/* ---------- zone ---------- */
.zone{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,64px);align-items:start}
@media(max-width:860px){.zone{grid-template-columns:1fr}}
.communes{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.communes span{font-family:var(--data);font-size:13px;border:1px solid var(--lisere);color:var(--gris);background:var(--blanc);border-radius:2px;display:inline-flex}
.communes span:not(:has(a)){padding:6px 11px}
.communes span a{display:block;padding:6px 11px;color:var(--vert);text-decoration:none}
.communes span:has(a):hover{border-color:var(--vert);background:var(--vert-clair)}
.etapes dt{font-family:var(--data);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--orange-lisible);margin-top:24px}
.etapes dd{margin:6px 0 0}

/* ---------- FAQ ---------- */
.faq{background:var(--blanc);border-block:1px solid var(--lisere)}
.qr{border-bottom:1px solid var(--lisere)}
.qr:first-of-type{border-top:1px solid var(--lisere)}
.qr summary{list-style:none;cursor:pointer;padding:22px 46px 22px 0;position:relative;font-family:var(--display);font-weight:600;font-size:clamp(18px,2.2vw,22px);transition:color .2s}
.qr summary::-webkit-details-marker{display:none}
.qr summary:hover{color:var(--vert)}
.qr summary::after{content:"";position:absolute;right:8px;top:50%;width:13px;height:13px;margin-top:-7px;border-right:2px solid var(--orange);border-bottom:2px solid var(--orange);transform:rotate(45deg);transition:transform .25s}
.qr[open] summary::after{transform:rotate(-135deg)}
.qr .rep{padding:0 0 24px;max-width:76ch;color:var(--gris);font-size:16px}
.qr .rep p:last-child{margin-bottom:0}
.faq-grille{margin-top:40px}

/* ---------- contact ---------- */
.contact{background:var(--encre);color:#EAF2EE;overflow:hidden}
.contact .eyebrow{color:#B3E0CB}
.contact h2{color:#fff}
.duo{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(28px,5vw,66px);margin-top:44px;align-items:start}
@media(max-width:880px){.duo{grid-template-columns:1fr}}
.form{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.form .large{grid-column:1/-1}
@media(max-width:560px){.form{grid-template-columns:1fr}}
.form label{display:block;font-family:var(--data);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#7FC0A6;margin-bottom:7px}
.form input,.form select,.form textarea{width:100%;background:#1E2C26;border:1px solid #33453D;color:#EAF2EE;font-family:var(--corps);font-size:16px;padding:12px 14px;border-radius:2px}
.form textarea{min-height:118px;resize:vertical}
.form .precis{margin-top:8px}
.form input::placeholder,.form textarea::placeholder{color:#8FA49B}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--orange);outline:none}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;color:#9BB5AB}
.consent input{width:18px;height:18px;flex:none;margin-top:2px;accent-color:var(--orange)}
.envoi{display:flex;flex-wrap:wrap;align-items:center;gap:18px}
.etat{font-size:14px;font-family:var(--data)}
.etat.ok{color:#6FD3A5}
.etat.ko{color:#FF9A6B}
.engagements{border-left:1px solid #33453D;padding-left:clamp(20px,3vw,34px)}
.engagements h3{font-size:19px;margin-bottom:6px;color:#fff}
.engagements dt{font-family:var(--data);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--orange);margin-top:20px}
.engagements dd{margin:4px 0 0;color:#9BB5AB;font-size:15px}

/* ---------- pied ---------- */
.pied{background:var(--vert-fonce);color:#88A99C;font-size:13.5px;padding:46px 0 54px;position:relative;overflow:hidden}
.pied .wrap{position:relative;z-index:2}
.pied .fond-lyon{height:min(72%,240px)}
.pied a{color:#B7CEC4}
.pied .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:28px}
.pied strong{display:block;color:#fff;font-family:var(--display);font-size:15px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px}
.pied .legal{border-top:1px solid #17493A;margin-top:34px;padding-top:20px;font-size:12.5px;line-height:1.75}

/* bandeau cookies */
.cookie{position:fixed;left:16px;right:16px;bottom:16px;z-index:120;max-width:720px;margin:0 auto;background:var(--encre);color:#EAF2EE;border:1px solid #2E3E37;border-radius:4px;padding:20px 22px;box-shadow:0 16px 44px rgba(0,0,0,.34);display:none;gap:16px;align-items:flex-start;flex-wrap:wrap}
.cookie.on{display:flex;animation:cookieUp .4s ease}
@keyframes cookieUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.cookie p{margin:0;font-size:14px;color:#B7CEC4;flex:1 1 320px;line-height:1.55}
.cookie p b{color:#fff;font-family:var(--display);font-weight:600}
.cookie .actes{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.cookie a.detail{font-family:var(--data);font-size:12px;color:#7FC0A6;text-decoration:underline;align-self:center}
.cookie button{font-family:var(--display);font-weight:600;font-size:14px;letter-spacing:.03em;text-transform:uppercase;padding:10px 18px;border-radius:2px;cursor:pointer;border:1px solid}
.cookie .ok{background:var(--orange-lisible);border-color:var(--orange-lisible);color:#fff}
.cookie .ko{background:transparent;border-color:#3E4E47;color:#B7CEC4}
.cookie .ok:hover{background:#D25811}
.cookie .ko:hover{border-color:#6FA893;color:#fff}

/* fenêtre modale (mentions / privacy / cookies) */
.modale{position:fixed;inset:0;z-index:130;background:rgba(10,20,16,.62);backdrop-filter:blur(3px);display:none;align-items:flex-start;justify-content:center;padding:clamp(16px,5vh,60px) 16px;overflow-y:auto}
.modale.on{display:flex}
.feuille{background:var(--papier);max-width:760px;width:100%;border-radius:5px;box-shadow:0 24px 70px rgba(0,0,0,.4);padding:clamp(26px,4vw,48px);position:relative;animation:feuilleUp .35s ease}
@keyframes feuilleUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.feuille h2{font-size:clamp(24px,3.4vw,34px);margin-bottom:6px}
.feuille .maj{font-family:var(--data);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gris);margin-bottom:26px}
.feuille h3{font-family:var(--display);font-size:18px;margin:26px 0 8px;color:var(--vert)}
.feuille p,.feuille li{font-size:15px;color:#333B37;line-height:1.65}
.feuille ul{padding-left:20px;margin:0 0 1em}
.feuille .todo{background:var(--orange-clair);border-left:3px solid var(--orange);padding:2px 10px;border-radius:2px;font-family:var(--data);font-size:13px;color:#9A3D00}
.feuille .fermer{position:absolute;top:16px;right:16px;width:38px;height:38px;border:1px solid var(--lisere);background:var(--blanc);border-radius:50%;font-size:20px;line-height:1;cursor:pointer;color:var(--encre);transition:background .2s,transform .2s}
.feuille .fermer:hover{background:var(--vert-clair);transform:rotate(90deg)}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
.reveal.vu{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* ---------- comparateur : images servies depuis /assets ---------- */
.compar .face.avant{background-image:url("../img/avant.jpg")}
.compar .face.apres{background-image:url("../img/apres.jpg")}

/* ---------- lien « en savoir plus » des cartes ---------- */
.carte{display:flex;flex-direction:column}
.carte-lien{margin:20px 0 0 auto;padding-top:4px}
.carte-lien a{font-family:var(--display);font-weight:600;font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--vert);text-decoration:none;border-bottom:2px solid var(--orange);padding-bottom:3px;transition:color .2s}
.carte-lien a:hover{color:var(--orange)}
.lecteur{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- pages de prestation ---------- */
.hero.interieure{padding-bottom:clamp(40px,6vw,72px)}
.hero.interieure h1{font-size:clamp(32px,4.6vw,54px);max-width:19ch;line-height:1.03}
.mosaique.une{grid-template-columns:1fr}
.mosaique.une .shot img{aspect-ratio:16/10}
.fil{font-family:var(--data);font-size:12px;letter-spacing:.06em;color:var(--gris);margin:0 0 26px;display:flex;gap:9px;flex-wrap:wrap;align-items:baseline}
.fil a{color:var(--vert);text-decoration:none;border-bottom:1px solid transparent}
.fil a:hover{border-bottom-color:var(--vert)}
.fil span[aria-hidden]{opacity:.55}
.hero.interieure .actions .bouton.creux{font-family:var(--data);letter-spacing:.06em}
#methode .etapes dt{margin-top:22px}
#methode .etapes dt:first-child{margin-top:0}

/* ---------- photos et titres cliquables ---------- */
.shot.lien a{display:block}
.shot.lien a::after{content:"";position:absolute;inset:0;z-index:3}   /* toute la vignette devient cliquable */
.shot.lien figcaption{transition:background .25s,padding-right .25s}
.shot.lien figcaption::after{content:" →";opacity:0;margin-left:-10px;transition:opacity .25s,margin-left .25s}
.shot.lien:hover figcaption{background:var(--vert)}
.shot.lien:hover figcaption::after{opacity:1;margin-left:6px}
.shot.lien:has(a:focus-visible){outline:3px solid var(--orange);outline-offset:3px}

.carte h3 a{color:inherit;text-decoration:none;background-image:linear-gradient(var(--orange),var(--orange));background-size:0 2px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .25s,color .2s}
.carte h3 a:hover{color:var(--vert);background-size:100% 2px}

/* le fil d'Ariane doit se lire comme un lien */
.fil a{border-bottom:1px solid rgba(14,122,85,.35)}
.fil a:hover{border-bottom-color:var(--vert)}

/* ---------- zone d'intervention ---------- */
.note-communes{font-size:14px;line-height:1.6;color:var(--gris);margin:16px 0 0;max-width:56ch}

/* ---------- ligne des prestations complémentaires ---------- */
.aussi{font-family:var(--data);font-size:13.5px;letter-spacing:.02em;color:var(--gris);margin:30px 0 0;line-height:2}
.aussi a{color:var(--vert);text-decoration:none;border-bottom:1px solid rgba(14,122,85,.32);transition:border-color .2s,color .2s}
.aussi a:hover{color:var(--orange);border-bottom-color:var(--orange)}

/* ---------- logo de certification ---------- */
.logo-certif{display:block;height:34px;width:auto;margin:0 0 8px;background:#fff;padding:5px 8px;border-radius:3px}

/* ---------- zones tactiles : 24 px minimum ----------
   Les liens du pied de page, séparés par <br>, ne faisaient que 21,6 px de
   haut. Idem pour le fil d'Ariane, la navigation et le lien du bandeau
   cookies. Un peu de remplissage vertical suffit à les rendre atteignables. */
.pied .cols a{display:inline-block;padding:3px 0;line-height:1.45}
.pied .legal a{display:inline-block;padding:4px 0}
.fil a,.fil span{display:inline-block;padding:3px 0}
/* Sous 941px ces liens sont masqués : leur rendre un display ici les
   ressuscitait, et la barre débordait de l'écran sur tout le site. */
@media(min-width:941px){.nav a:not(.bouton){display:inline-block;padding:5px 0}}
.cookie a.detail{display:inline-block;padding:4px 0}
.aussi a{display:inline-block;padding:2px 0}

/* ---------- illustrations au trait ---------- */
.illus{position:relative;margin:0;background:var(--vert-clair);border-radius:3px;overflow:hidden;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center}
.illus svg{width:100%;height:100%;display:block}
.illus .trait{fill:none;stroke:var(--vert);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:.55}
.illus .accent{fill:var(--orange-lisible);opacity:.85}
.illus figcaption{position:absolute;left:0;bottom:0;background:var(--encre);color:#fff;font-family:var(--data);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:7px 12px}

/* ---------------------------------------- cahier des charges / fiche en ligne
   Le formulaire vit à l'écran, le document vit sur le papier. La feuille
   d'impression ne garde que le second : c'est ce qui distingue un outil
   d'un simple formulaire de contact. */
.cdc{background:var(--blanc);border-top:1px solid var(--lisere)}
.cdc .sous{max-width:62ch}

/* ---- le chemin parcouru ----
   Une file de boutons ne dit pas où l'on en est. Un fil qui se remplit, si. */
.cdc-onglets{margin:30px 0 0}
.cdc-onglets ol{display:flex;flex-wrap:wrap;gap:6px 0;list-style:none;margin:0;padding:0;
  counter-reset:none}
.cdc-onglets li{position:relative;display:flex;align-items:center}
.cdc-onglets li+li::before{content:"";width:14px;height:1px;background:var(--lisere);flex:none}
.cdc-onglet{display:inline-flex;align-items:center;gap:9px;background:none;border:0;
  color:var(--gris);font-family:var(--display);font-weight:600;font-size:14px;
  letter-spacing:.01em;padding:8px 12px;border-radius:99px;cursor:pointer;min-height:44px;
  transition:color .16s,background .16s}
.cdc-onglet:hover{color:var(--encre);background:var(--papier)}
.cdc-onglet[aria-current="step"]{color:var(--vert-fonce);background:var(--vert-clair)}
.cdc-num{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;
  background:var(--lisere);color:var(--gris);font-family:var(--data);font-size:12px;
  flex:none;transition:background .16s,color .16s}
.cdc-onglet:hover .cdc-num{background:var(--gris);color:#fff}
.cdc-onglet[aria-current="step"] .cdc-num{background:var(--vert);color:#fff}
.cdc-onglet[data-fait] .cdc-num{background:var(--vert-clair);color:var(--vert)}

/* ---- une étape ---- */
.cdc-etape{margin-top:38px;max-width:740px}
.cdc-etape h3{font-family:var(--display);font-size:clamp(23px,3.2vw,32px);margin:0 0 10px;
  line-height:1.12}
.cdc-etape>.sous{margin-bottom:30px;max-width:60ch}

/* ---- les champs ----
   Fond plein plutôt que boîte cerclée : le champ se lit comme un espace à
   remplir, pas comme une case de formulaire administratif. */
.cdc-champ{margin-bottom:24px}
.cdc-champ>label,.cdc-groupe>legend{display:block;font-family:var(--display);font-weight:600;
  font-size:15px;color:var(--encre);margin-bottom:8px;letter-spacing:.005em}
.cdc-champ input,.cdc-champ select,.cdc-champ textarea,.cdc-precisez input,
.cdc-tableau input,.cdc-tableau select,.cdc-periodique select{width:100%;
  font-family:var(--corps);font-size:16px;color:var(--encre);background:var(--papier);
  border:1px solid transparent;border-bottom:1.5px solid var(--lisere);
  border-radius:3px 3px 0 0;padding:13px 14px;min-height:50px;
  transition:background .16s,border-color .16s}
.cdc-champ input:hover,.cdc-champ select:hover,.cdc-champ textarea:hover,
.cdc-precisez input:hover{border-bottom-color:var(--gris)}
.cdc-champ input:focus,.cdc-champ select:focus,.cdc-champ textarea:focus,
.cdc-precisez input:focus,.cdc-tableau input:focus,.cdc-tableau select:focus,
.cdc-periodique select:focus{background:var(--blanc);border-bottom-color:var(--vert);
  outline:none;box-shadow:0 1px 0 0 var(--vert)}
.cdc-champ input:focus-visible,.cdc-champ select:focus-visible,
.cdc-champ textarea:focus-visible,.cdc-precisez input:focus-visible,
.cdc-tableau input:focus-visible,.cdc-tableau select:focus-visible,
.cdc-periodique select:focus-visible,.cdc-onglet:focus-visible,
.cdc-case:focus-within{outline:2px solid var(--vert);outline-offset:2px}
.cdc-champ textarea{min-height:92px;resize:vertical;line-height:1.55}
.cdc-champ input::placeholder,.cdc-precisez input::placeholder{color:#8FA49B}
.cdc-aide{font-size:14px;line-height:1.55;color:var(--gris);margin:8px 0 0;max-width:58ch}
/* Un point vaut mieux qu'une étiquette criée en capitales sur chaque ligne. */
.cdc-requis{display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--orange);margin-left:7px;vertical-align:middle;text-indent:-9999px;
  overflow:hidden}

/* ---- les groupes de cases ----
   Chaque proposition devient une cible cliquable entière, et l'état coché se
   voit d'un coup d'œil. C'est ce qui sépare une liste d'un choix. */
.cdc-groupe{border:0;padding:0;margin:0 0 30px}
.cdc-groupe>legend{padding:0;margin:0 0 4px;float:left;width:100%}
.cdc-groupe>.cdc-aide{clear:both;margin:0 0 14px}
.cdc-cases{display:grid;gap:8px;margin-top:12px;clear:both}
@media(min-width:720px){.cdc-cases{grid-template-columns:1fr 1fr}}
.cdc-case{position:relative;display:flex;align-items:flex-start;gap:12px;
  background:var(--papier);border:1px solid var(--lisere);border-radius:4px;
  padding:13px 15px;min-height:52px;cursor:pointer;
  transition:background .16s,border-color .16s}
.cdc-case:hover{border-color:var(--vert);background:var(--blanc)}
.cdc-case input{width:20px;height:20px;flex:none;margin-top:1px;accent-color:var(--vert);
  cursor:pointer}
.cdc-case label{font-family:var(--corps);font-weight:400;font-size:15.5px;line-height:1.4;
  margin:0;cursor:pointer;flex:1}
/* :has n'est pas partout ; sans lui on perd la teinte, pas la fonction. */
.cdc-case:has(input:checked){background:var(--vert-clair);border-color:var(--vert)}
.cdc-case:has(input:checked) label{color:var(--vert-fonce)}

.cdc-periodiques{display:grid;gap:16px;margin-top:12px}
@media(min-width:720px){.cdc-periodiques{grid-template-columns:1fr 1fr}}
.cdc-periodique label{font-family:var(--corps);font-weight:400;font-size:15.5px;
  margin-bottom:6px;color:var(--encre)}
.cdc-periodique select{width:100%;font-family:var(--corps);font-size:16px;
  color:var(--encre);background:var(--papier);border:1px solid transparent;
  border-bottom:1.5px solid var(--lisere);border-radius:3px 3px 0 0;padding:13px 14px;
  min-height:50px}
.cdc-cadence{margin-top:20px;grid-column:1/-1}

.cdc-duo{display:grid;grid-template-columns:1fr minmax(120px,170px);gap:0 16px}
.cdc-duo>.cdc-champ{min-width:0}
@media(max-width:520px){.cdc-duo{grid-template-columns:1fr}}

.cdc-precisez{margin-top:12px}
.cdc-precisez label{display:block;font-family:var(--corps);font-weight:400;font-size:14px;
  color:var(--gris);margin-bottom:6px}

.cdc-autre{margin-top:18px;padding-top:16px;border-top:1px dashed var(--lisere);
  grid-column:1/-1}
.cdc-autre label{display:block;font-family:var(--display);font-weight:600;font-size:14px;
  color:var(--gris);margin-bottom:7px}
.cdc-autre input{width:100%;font-family:var(--corps);font-size:16px;color:var(--encre);
  background:var(--papier);border:1px solid transparent;border-bottom:1.5px solid var(--lisere);
  border-radius:3px 3px 0 0;padding:13px 14px;min-height:50px}
.cdc-autre input:focus{background:var(--blanc);border-bottom-color:var(--vert);outline:none}
.cdc-autre input:focus-visible{outline:2px solid var(--vert);outline-offset:2px}
.cdc-autre input::placeholder{color:#8FA49B}

.cdc-tableau-enveloppe{overflow-x:auto;margin-bottom:16px}
.cdc-tableau{width:100%;border-collapse:collapse;min-width:640px}
.cdc-tableau th{font-family:var(--data);font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--gris);text-align:left;padding:0 8px 10px;font-weight:400}
.cdc-tableau td{padding:5px 8px 5px 0;vertical-align:top}
.cdc-tableau td:last-child{width:1%;white-space:nowrap}
.cdc-retirer{background:none;border:1px solid var(--lisere);border-radius:2px;color:var(--gris);font-family:var(--data);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:12px 10px;cursor:pointer;min-height:46px}
.cdc-retirer:hover{border-color:var(--orange-lisible);color:var(--orange-lisible)}

.cdc-navigation{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.cdc-erreur{background:var(--orange-clair);border-left:3px solid var(--orange-lisible);color:var(--encre);font-size:15px;padding:12px 16px;margin-top:24px}
.cdc-sauvegarde{font-family:var(--data);font-size:12px;letter-spacing:.04em;color:var(--gris);margin-top:14px;min-height:1.2em}
.cdc-ecran-seul{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Ces règles ont été perdues lors d'une refonte visuelle et remises ici.
   La plus grave était .cdc-piege : sans elle, le champ piège anti-spam
   devient visible, et un visiteur qui le remplit voit sa demande jetée
   en silence. */
.cdc-sortie{position:absolute;left:-9999px;top:0;width:1px;height:1px;overflow:hidden}
.cdc-consent{margin-top:22px;padding-top:18px;border-top:1px solid var(--lisere)}
.cdc-consent label{font-size:14px;color:var(--gris);line-height:1.5}
.cdc-piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cdc-etat{font-size:15.5px;line-height:1.5;margin:18px 0 0;min-height:1.2em;color:var(--gris)}
.cdc-etat.ko{color:var(--orange-lisible);font-weight:600}
.cdc-merci{max-width:660px;margin-top:34px;padding:clamp(22px,4vw,34px);background:var(--vert-clair);border-left:3px solid var(--vert);border-radius:2px}
.cdc-merci:focus-visible{outline:2px solid var(--vert);outline-offset:3px}
.cdc-merci p{margin:0 0 14px;font-size:16px;line-height:1.6;color:var(--encre)}
.cdc-merci-titre{font-family:var(--display);font-weight:600;font-size:20px!important;line-height:1.35!important}
.cdc-merci-ref{font-family:var(--data);font-size:13px!important;color:var(--gris)}

.cdc-document{background:var(--blanc);border:1px solid var(--lisere);border-radius:2px;padding:clamp(24px,5vw,56px);max-width:820px}
.cdc-document:focus-visible{outline:2px solid var(--vert);outline-offset:3px}
.cdc-doc-tete{border-bottom:2px solid var(--vert-fonce);padding-bottom:18px;margin-bottom:30px}
.cdc-doc-sur{font-family:var(--data);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--vert);margin:0 0 6px}
.cdc-doc-nom{font-family:var(--display);font-size:clamp(26px,4vw,38px);line-height:1.12;margin:0;max-width:none;text-transform:none;letter-spacing:0;border:0;padding:0;color:var(--encre)}
.cdc-doc-date{font-family:var(--data);font-size:12px;color:var(--gris);margin:8px 0 0}
.cdc-doc-section{margin-bottom:30px;break-inside:avoid}
.cdc-document h3{font-family:var(--display);font-size:19px;letter-spacing:.02em;text-transform:uppercase;color:var(--vert-fonce);border-bottom:1px solid var(--lisere);padding-bottom:7px;margin:0 0 16px;max-width:none}
.cdc-document dl{margin:0}
.cdc-doc-ligne{display:grid;grid-template-columns:minmax(150px,34%) 1fr;gap:10px 20px;padding:8px 0;border-bottom:1px solid var(--papier)}
.cdc-document dt{font-family:var(--display);font-weight:600;font-size:14.5px;color:var(--gris)}
.cdc-document dd{margin:0;font-size:15.5px;line-height:1.55;color:var(--encre)}
.cdc-document dd ul{margin:0;padding-left:18px}
.cdc-document dd li{margin-bottom:3px}
.cdc-doc-table{width:100%;border-collapse:collapse;margin-top:6px;font-size:14.5px}
.cdc-doc-table th{font-family:var(--data);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--gris);text-align:left;border-bottom:1px solid var(--lisere);padding:0 10px 7px 0;font-weight:400}
.cdc-doc-table td{padding:8px 10px 8px 0;border-bottom:1px solid var(--papier);vertical-align:top}
.cdc-doc-pied{border-top:1px solid var(--lisere);margin-top:34px;padding-top:16px;font-size:13px;line-height:1.6;color:var(--gris)}
.cdc-doc-pied p{margin:0 0 5px}

@media(max-width:560px){
  .cdc-doc-ligne{grid-template-columns:1fr;gap:3px}
  .cdc-document dt{font-size:13px}
}

/* Le document seul part à l'impression. Tout le reste du site disparaît. */
@media print{
  /* Portrait imposé : le document sortait en paysage si le navigateur avait
     gardé ce réglage, avec des lignes trop larges et des pages à moitié vides. */
  @page{size:A4 portrait;margin:14mm 13mm 15mm}

  body>*:not(main),main>*:not(.cdc),.cdc>.wrap:first-of-type,
  .cdc-onglets,#cdc-form,.bandeau,.pied,.cookie{display:none!important}
  .cdc-sortie{position:static;left:auto;width:auto;height:auto;overflow:visible}
  .cdc,.cdc-document{border:0;padding:0;background:#fff}
  .cdc-document{max-width:none;font-size:11pt}

  /* Une section peut se couper : l'interdire laissait une demi-page blanche
     dès qu'un bloc ne tenait pas jusqu'au bout. Ce sont les lignes et le
     titre qui ne doivent pas être s\u00e9par\u00e9s de leur contenu. */
  .cdc-doc-section{break-inside:auto;margin-bottom:18px}
  .cdc-document h3{break-after:avoid;font-size:12.5pt;margin:0 0 10px;padding-bottom:5px}
  .cdc-doc-ligne{break-inside:avoid;padding:5px 0}
  .cdc-doc-table{break-inside:auto}
  .cdc-doc-table tr{break-inside:avoid}
  .cdc-doc-table th,.cdc-doc-table td{padding:5px 10px 5px 0}
  .cdc-document dt{font-size:10pt}
  .cdc-document dd{font-size:10.5pt;line-height:1.45}
  .cdc-document dd li{margin-bottom:1px}
  .cdc-doc-tete{padding-bottom:12px;margin-bottom:20px}
  .cdc-doc-nom{font-size:20pt}
  .cdc-doc-pied{margin-top:22px;padding-top:10px;font-size:8.5pt}
  a[href]:after{content:""}
}
