/* PORTÉ depuis docs/maquettes/site-v7/maquette-site-silex-v7.html par tools/site/porter-maquette-v7.mjs — ne pas modifier à la main. */
@font-face{font-family:"Inter";font-weight:400;font-style:normal;font-display:swap;src:url(/assets/v7/m/65a3f1cf8508858b.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:600;font-style:normal;font-display:swap;src:url(/assets/v7/m/1716acca0af7690b.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:700;font-style:normal;font-display:swap;src:url(/assets/v7/m/7c22f59d6e0ded0c.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:800;font-style:normal;font-display:swap;src:url(/assets/v7/m/dc5e499228098371.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:400;font-style:normal;font-display:swap;src:url(/assets/v7/m/6ed4d5af36253a8a.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:500;font-style:normal;font-display:swap;src:url(/assets/v7/m/f9064fc6aacdccbe.woff2) format("woff2")}
@font-face{font-family:"Caveat";font-weight:700;font-style:normal;font-display:swap;src:url(/assets/v7/m/5bd0d42a836df20a.woff2) format("woff2")}
:root{
  --encre:#1D1D1F;--cyan:#0B8FB2;--cyan-p:#097B99;--cyan-c:#18B4D6;--nuit:#0A3A45;--teinte:#E8F7FB;--ardoise:#31506B;--brume:#F5F5F7;--etincelle:#B11E2F;--gris:#6E6E73;
  --bg:#FFFFFF;--bg-2:#F5F5F7;--surface:#FFFFFF;--texte:#1D1D1F;--texte-2:#3F4A55;--texte-3:#6E6E73;
  --accent:#097B99;--ligne:#0B8FB2;--rail:rgba(49,80,107,.26);--rail-fort:rgba(49,80,107,.5);--bordure:#E3E7EB;
  --teinte-bg:#E8F7FB;--erreur:#B11E2F;--erreur-bg:#FBECEE;--ombre:0 1px 2px rgba(10,58,69,.06),0 14px 34px rgba(10,58,69,.09);
  --tete-bg:rgba(255,255,255,.88);--nuit-grad:linear-gradient(135deg,#097B99 0%,#0A3A45 100%);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0C181D;--bg-2:#11242A;--surface:#152C33;--texte:#F5F5F7;--texte-2:#C2CED4;--texte-3:#93A6AF;
  --accent:#18B4D6;--ligne:#18B4D6;--rail:rgba(232,247,251,.22);--rail-fort:rgba(232,247,251,.42);--bordure:rgba(232,247,251,.13);
  --teinte-bg:rgba(24,180,214,.11);--erreur:#F08A95;--erreur-bg:rgba(177,30,47,.22);--ombre:0 1px 2px rgba(0,0,0,.3),0 14px 34px rgba(0,0,0,.35);
  --tete-bg:rgba(12,24,29,.86);color-scheme:dark;}
  :root:not([data-theme="light"]) .logo-c{display:none}:root:not([data-theme="light"]) .logo-b{display:block}}
:root[data-theme="dark"]{--bg:#0C181D;--bg-2:#11242A;--surface:#152C33;--texte:#F5F5F7;--texte-2:#C2CED4;--texte-3:#93A6AF;
  --accent:#18B4D6;--ligne:#18B4D6;--rail:rgba(232,247,251,.22);--rail-fort:rgba(232,247,251,.42);--bordure:rgba(232,247,251,.13);
  --teinte-bg:rgba(24,180,214,.11);--erreur:#F08A95;--erreur-bg:rgba(177,30,47,.22);--ombre:0 1px 2px rgba(0,0,0,.3),0 14px 34px rgba(0,0,0,.35);
  --tete-bg:rgba(12,24,29,.86);color-scheme:dark;}
:root[data-theme="dark"] .logo-c{display:none}:root[data-theme="dark"] .logo-b{display:block}
.logo-b{display:none}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:70px}
body{margin:0;background:var(--bg);color:var(--texte);font:400 17px/1.55 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;font-feature-settings:"kern","liga","cv11"}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent);text-underline-offset:3px}
button{font:inherit;color:inherit}
.wrap{max-width:720px;margin:0 auto;padding:0 16px}
.mono,.age,.prix b{font-family:"IBM Plex Mono",ui-monospace,monospace}
h1,h2,h3{margin:0;font-weight:800;letter-spacing:-.03em;color:var(--texte)}
h1{font-size:clamp(33px,9vw,54px);line-height:1.04;margin:10px 0 14px}
h2{font-size:clamp(27px,7.2vw,40px);line-height:1.08;margin:8px 0 14px}
h3{font-size:19px;line-height:1.25;letter-spacing:-.012em;font-weight:700}
p{margin:0 0 14px}
.acc{color:var(--accent)}
.sur+.phrase{margin-top:10px}
sup{font-size:.62em;line-height:0;vertical-align:.5em;margin-left:.02em}
.nuit .phrase .acc{background:linear-gradient(#18B4D6,#18B4D6) 0 100%/100% 4px no-repeat;padding-bottom:4px}
.sur{display:block;font:700 12.5px/1.3 Inter;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.lead{font-size:19px;line-height:1.5;color:var(--texte-2)}
.doux{color:var(--texte-2)}
.petit{font-size:14px;line-height:1.45;color:var(--texte-3)}
section{padding:52px 0}
section.serre{padding-top:8px}
.fond2{background:var(--bg-2)}
.teinte{background:var(--teinte-bg)}

/* barre de maquette */
.maq{background:#0A3A45;color:#E8F7FB;font:500 11.5px/1.3 "IBM Plex Mono",monospace;padding:7px 16px 8px;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.maq b{font-weight:500;color:#fff;letter-spacing:.06em}
.maq .seg{display:inline-flex;border:1px solid rgba(232,247,251,.35);border-radius:999px;overflow:hidden}
.maq .seg button{background:none;border:0;color:#E8F7FB;padding:4px 9px;font:500 11.5px "IBM Plex Mono",monospace;cursor:pointer}
.maq .seg button[aria-pressed="true"]{background:#E8F7FB;color:#0A3A45}
.maq .src{flex-basis:100%;color:#9fd9e8;display:none}
.maq .src.on{display:block}

/* en-tête */
.tete{position:sticky;top:0;z-index:50;background:var(--tete-bg);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--bordure)}
.tete .wrap{display:flex;align-items:center;gap:10px;height:58px}
.tete .marque{display:block;margin-right:auto;padding:6px 0}
.tete .marque img{height:26px;width:auto}
.btn{text-align:center;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 24px;border-radius:999px;background:var(--cyan-p);color:#fff;font-weight:700;font-size:17px;text-decoration:none;border:0;cursor:pointer;letter-spacing:-.005em}
.btn:active{transform:translateY(1px)}
.btn.sec{background:transparent;color:var(--texte);box-shadow:inset 0 0 0 1.5px var(--rail-fort)}
.btn.blanc{background:#fff;color:#0A3A45}
.btn.mini{min-height:38px;padding:0 15px;font-size:15px}
.menu-btn{width:44px;height:44px;border:0;background:none;display:grid;place-content:center;gap:5px;cursor:pointer;margin-right:-8px}
.menu-btn i{display:block;width:22px;height:2px;border-radius:2px;background:var(--texte)}
.ctas{display:flex;flex-direction:column;gap:10px;margin:22px 0 10px}
.ctas .btn{width:100%}
@media (min-width:560px){.ctas{flex-direction:row;flex-wrap:wrap}.ctas .btn{width:auto}}

/* menu : le plan des lignes */
.menu{position:fixed;inset:0;z-index:80;background:var(--bg);overflow-y:auto;visibility:hidden;opacity:0;transform:translateY(-12px);transition:opacity .22s,transform .22s,visibility 0s .22s}
.menu.ouvert{visibility:visible;opacity:1;transform:none;transition:opacity .22s,transform .22s}
.menu .tete-m{display:flex;align-items:center;height:58px;border-bottom:1px solid var(--bordure)}
.menu .tete-m .marque{margin-right:auto}
.menu .tete-m img{height:26px;width:auto}
.fermer{width:44px;height:44px;border:0;background:none;font-size:30px;line-height:1;cursor:pointer;margin-right:-8px;color:var(--texte)}
.plan{list-style:none;margin:18px 0 8px;padding:0 0 0 30px;position:relative}
.plan::before{content:"";position:absolute;left:8px;top:16px;bottom:16px;width:4px;border-radius:4px;background:var(--ligne)}
.plan.branche::before{background:var(--rail-fort);width:3px;left:8.5px}
.plan li a{display:block;padding:9px 0;text-decoration:none;color:var(--texte);font-weight:700;font-size:20px;letter-spacing:-.015em;position:relative}
.plan li a::before{content:"";position:absolute;left:-30px;top:50%;width:20px;height:20px;margin-top:-10px;border-radius:50%;background:var(--bg);border:4px solid var(--ligne)}
.plan.branche li a{font-size:17px;font-weight:600;padding:7px 0}
.plan.branche li a::before{width:14px;height:14px;margin-top:-7px;left:-27px;border-width:3px;border-color:var(--rail-fort)}
.plan li a[aria-current="page"]::before{background:var(--ligne);box-shadow:0 0 0 5px rgba(24,180,214,.25)}
.plan li a small{display:block;font:500 12.5px/1.3 Inter;color:var(--texte-3);letter-spacing:0}
.menu .sur{margin-top:18px}

/* héros et film */
.hero{padding:22px 0 8px}
.film{margin:18px 0 0;position:relative}
.film button{display:block;width:100%;padding:0;border:0;background:#0A3A45;border-radius:16px;overflow:hidden;position:relative;cursor:pointer;aspect-ratio:16/9;box-shadow:var(--ombre)}
.film img{width:100%;height:100%;object-fit:cover}
.play{position:absolute;left:50%;top:50%;width:68px;height:68px;margin:-34px 0 0 -34px;border-radius:50%;background:rgba(255,255,255,.95);display:grid;place-items:center;box-shadow:0 0 0 8px rgba(24,180,214,.28),0 0 40px 10px rgba(24,180,214,.35)}
.play svg{width:24px;height:24px;margin-left:4px}
.film .duree{position:absolute;left:10px;bottom:10px;background:rgba(10,58,69,.82);color:#fff;font:500 11.5px "IBM Plex Mono",monospace;letter-spacing:.04em;padding:4px 8px;border-radius:6px}
.film figcaption{font-size:14.5px;color:var(--texte-3);margin-top:10px;line-height:1.45}
html[data-film="escalier"] .si-carte{display:none!important}
html:not([data-film="escalier"]) .si-escalier{display:none!important}

/* la ligne : fil conducteur des pages */
.trajet{position:relative;padding-left:36px;margin-top:26px}
.trajet::before{content:"";position:absolute;left:10px;top:12px;bottom:14px;width:3px;border-radius:3px;background:var(--rail)}
.trajet>.fil{position:absolute;left:9px;top:12px;width:5px;border-radius:5px;height:var(--p,0px);background:var(--ligne);transition:height .3s ease-out}
.trajet>.train{position:absolute;left:11.5px;top:calc(12px + var(--p,0px));width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px var(--cyan-c),0 0 18px 7px rgba(24,180,214,.5);transition:top .3s ease-out;z-index:2}
.arret{position:relative;padding-bottom:30px}
.arret:last-of-type{padding-bottom:4px}
.arret::before{content:"";position:absolute;left:-35.5px;top:1px;width:22px;height:22px;border-radius:50%;background:var(--bg);border:4px solid var(--rail-fort);transition:border-color .3s,box-shadow .3s;z-index:1}
.fond2 .arret::before{background:var(--bg-2)}.teinte .arret::before{background:var(--teinte-bg)}
.arret.on::before{border-color:var(--ligne);box-shadow:0 0 0 6px rgba(24,180,214,.16)}
.arret.aig::before{border-radius:4px;transform:rotate(45deg) scale(.86)}
.arret .age{display:block;font-size:13px;font-weight:500;color:var(--accent);margin-bottom:3px;letter-spacing:.01em}
.arret h3{margin-bottom:6px}
.arret p{color:var(--texte-2);margin-bottom:0}
.arret .voies{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.arret .voies li{border:1px solid var(--bordure);border-left:4px solid var(--c,var(--ligne));border-radius:10px;padding:10px 12px;background:var(--surface);font-size:15.5px;line-height:1.4}
.arret .voies b{display:block}
.arret .voies span{color:var(--texte-3);font-size:14px}

/* schémas en SVG natif */
.schema{width:100%;height:auto;display:block;overflow:visible}
.schema text{font-family:Inter;fill:var(--texte)}
.schema .nom{font-weight:700;font-size:13.5px}
.schema .pt{font-weight:600;font-size:11.5px;fill:var(--texte-3)}
.schema .ag{font-family:"IBM Plex Mono";font-weight:500;font-size:11px;fill:var(--accent)}
.schema .rail{stroke:var(--rail-fort)}
.schema .ln{stroke:var(--ligne)}
.schema .bg{fill:var(--bg)}
.schema .arc{stroke:var(--rail-fort);transition:stroke .5s}
.schema .st-e{stroke:var(--rail-fort);transition:stroke .4s}
.schema .coeur{fill:var(--ligne);opacity:0;transition:opacity .4s}
.schema .onde{fill:none;stroke:var(--cyan-c);stroke-width:2;opacity:0}
.schema .noeud{stroke:var(--rail-fort);transition:opacity .6s .9s}
.schema .droit{stroke:var(--ligne);opacity:0;transition:opacity .6s 1s}
.schema.declic .st-e{stroke:var(--ligne)}
.schema.declic .coeur{opacity:1}
.schema.declic .onde{animation:onde 1.1s ease-out .1s 2}
.schema.declic .arc{stroke:var(--ligne)}
.schema.declic .a1{transition-delay:.25s}.schema.declic .a2{transition-delay:.45s}.schema.declic .a3{transition-delay:.65s}.schema.declic .a4{transition-delay:.85s}
.schema.declic .noeud{opacity:0}.schema.declic .droit{opacity:1}
@keyframes onde{0%{opacity:.9;r:10}100%{opacity:0;r:40}}
.carte-schema{background:var(--surface);border:1px solid var(--bordure);border-radius:18px;padding:14px 12px 10px;box-shadow:var(--ombre)}
.btn-declic{margin-top:6px;width:100%;min-height:46px;border-radius:12px;border:0;background:var(--teinte-bg);color:var(--accent);font-weight:700;font-size:16px;cursor:pointer}

/* le cahier (maquettes d'interface) */
.cahier{background:var(--surface);border:1px solid var(--bordure);border-radius:18px;box-shadow:var(--ombre);padding:16px 16px 14px;margin-top:22px}
.cahier .bandeau{display:flex;justify-content:space-between;gap:10px;font:500 11px "IBM Plex Mono";letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--bordure);padding-bottom:10px;margin-bottom:12px}
.consigne{font-weight:700;font-size:16.5px;margin-bottom:6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.l{display:flex;align-items:center;gap:10px;font-family:Caveat,cursive;font-weight:700;font-size:27px;line-height:1.15;padding:3px 0;color:var(--texte)}
.l .n{font:500 11px "IBM Plex Mono";color:var(--texte-3);width:12px;flex:none}
.l .faux{text-decoration:underline;text-decoration-color:var(--etincelle);text-decoration-thickness:2.5px;text-underline-offset:6px}
.l .gris{opacity:.45}
.fr{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;line-height:1}
.fr>span:first-child{border-bottom:2px solid currentColor;padding:0 3px 2px}
.fr>span:last-child{padding-top:2px}
.consigne .fr{font-size:14px;font-weight:700}
.ok,.ko{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font:700 13px Inter}
.ok{background:var(--cyan-p);color:#fff}
.ko{background:var(--etincelle);color:#fff}
.err{margin:6px 0 10px 22px;border-left:3px solid var(--etincelle);background:var(--erreur-bg);border-radius:0 10px 10px 0;padding:8px 12px;font-size:14.5px;line-height:1.4}
.err b{display:block;font:500 10.5px "IBM Plex Mono";letter-spacing:.1em;text-transform:uppercase;color:var(--erreur);margin-bottom:2px}
.puce{display:flex;align-items:center;gap:10px;margin:4px 0 10px 22px;padding:9px 12px;border-radius:12px;background:var(--nuit-grad);color:#fff;font-size:14.5px;line-height:1.3}
.puce .tri{flex:none;width:26px;height:26px;border-radius:50%;background:#fff;display:grid;place-items:center}
.puce small{display:block;font:500 11px "IBM Plex Mono";opacity:.8}
.tient{display:inline-flex;align-items:center;gap:6px;font:600 13px Inter;color:var(--accent);background:var(--teinte-bg);padding:4px 10px;border-radius:999px;margin-left:auto}

/* images éditoriales */
.visuel{margin:22px 0 0;border-radius:16px;overflow:hidden;background:var(--bg-2);box-shadow:var(--ombre)}
.visuel img{width:100%;height:auto}
.visuel.pleine{margin-left:-16px;margin-right:-16px;border-radius:0;box-shadow:none}
.legende{font-size:14px;color:var(--texte-3);margin-top:8px}

/* bande Nuit */
.nuit{background:var(--nuit-grad);color:#fff;position:relative;overflow:hidden}
.nuit::after{content:"";position:absolute;right:-30%;top:-40%;width:90%;height:90%;background:radial-gradient(closest-side,rgba(255,255,255,.13),rgba(255,255,255,0));pointer-events:none}
.nuit h2,.nuit h3{color:#fff}.nuit .sur{color:#E8F7FB}.nuit p,.nuit .lead{color:rgba(255,255,255,.88)}
.nuit .wrap{position:relative;z-index:1}
.voies-nuit{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 4px;padding:0;list-style:none}
.voies-nuit li{font-size:14.5px;font-weight:600;padding:7px 12px 7px 26px;border-radius:999px;background:rgba(255,255,255,.08);position:relative;color:#fff}
.voies-nuit li::before{content:"";position:absolute;left:10px;top:50%;width:9px;height:9px;margin-top:-4.5px;border-radius:50%;border:2.5px solid var(--c)}

/* grosses phrases */
.phrase{font-weight:800;font-size:clamp(25px,7vw,36px);line-height:1.12;letter-spacing:-.025em;margin:0}
.phrase .acc{color:var(--accent)}
.nuit .phrase .acc{color:#E8F7FB}

/* listes de stations-liens (thèmes) */
.lignes{list-style:none;padding:0;margin:20px 0 0;border-top:1px solid var(--bordure)}
.lignes a{display:grid;grid-template-columns:22px 1fr 18px;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid var(--bordure);text-decoration:none;color:var(--texte)}
.lignes a::before{content:"";width:18px;height:18px;border-radius:50%;border:4px solid var(--ligne);background:var(--bg)}
.lignes a::after{content:"→";color:var(--texte-3);font-weight:600}
.lignes b{display:block;font-size:17.5px;letter-spacing:-.01em;line-height:1.25}
.lignes span{display:block;font-size:14.5px;color:var(--texte-3);line-height:1.4;margin-top:2px}

/* engagements */
.engage{display:grid;gap:12px;margin-top:20px}
.engage div{background:var(--surface);border:1px solid var(--bordure);border-radius:14px;padding:14px 16px}
.engage b{display:block;font-size:16.5px;margin-bottom:3px}
.engage p{margin:0;font-size:15.5px;color:var(--texte-2)}

/* étapes chiffrées */
.etapes3{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px;counter-reset:e}
.etapes3 li{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start;font-size:16.5px;line-height:1.4}
.etapes3 li::before{counter-increment:e;content:counter(e);width:34px;height:34px;border-radius:50%;background:var(--teinte-bg);color:var(--accent);display:grid;place-items:center;font:500 15px "IBM Plex Mono"}
.etapes3 b{display:block}
.etapes3.stations li{grid-template-columns:22px 1fr}
.etapes3.stations li::before{content:"";width:18px;height:18px;margin-top:2px;border:4px solid var(--ligne);background:var(--bg)}
.teinte .etapes3.stations li::before{background:var(--teinte-bg)}

/* tarifs */
.bascule{display:inline-flex;background:var(--bg-2);border-radius:999px;padding:4px;margin:20px 0 6px;border:1px solid var(--bordure)}
.bascule button{border:0;background:none;padding:9px 16px;border-radius:999px;font-weight:600;font-size:15px;cursor:pointer;color:var(--texte-2)}
.bascule button[aria-pressed="true"]{background:var(--surface);color:var(--texte);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.bascule em{font-style:normal;font:500 12px "IBM Plex Mono";color:var(--accent);margin-left:4px}
.offre{border:1px solid var(--bordure);border-radius:20px;padding:20px 18px;margin-top:14px;background:var(--surface);position:relative}
.offre.reco{border:2px solid var(--ligne);box-shadow:var(--ombre)}
.offre .etiq{position:absolute;top:-12px;left:16px;background:var(--cyan-p);color:#fff;font:500 11px "IBM Plex Mono";letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px}
.offre h3{font-size:20px}
.prix{display:flex;align-items:baseline;gap:8px;margin:10px 0 2px;flex-wrap:wrap}
.prix b{font-size:44px;font-weight:500;letter-spacing:-.03em;line-height:1}
.prix b i{font-style:normal;font-size:.5em;margin-left:.2em;font-weight:500}
.prix span{color:var(--texte-3);font-size:15px}
.prix s{color:var(--texte-3);font:400 15px "IBM Plex Mono"}
.offre ul{list-style:none;padding:0;margin:14px 0 16px;display:grid;gap:7px}
.offre li{padding-left:26px;position:relative;font-size:15.5px;line-height:1.4;color:var(--texte-2)}
.offre li::before{content:"";position:absolute;left:2px;top:5px;width:12px;height:12px;border-radius:50%;border:3px solid var(--ligne)}
.offre .btn{width:100%}
.tarifs[data-periode="annuel"] .m,.tarifs:not([data-periode="annuel"]) .a{display:none}
.offre.reco{background:var(--nuit-grad);color:#fff;border:0;box-shadow:0 18px 44px rgba(10,58,69,.28)}
.offre.reco h3,.offre.reco .prix b{color:#fff}.offre.reco .prix span,.offre.reco li,.offre.reco .doux,.offre.reco s{color:rgba(255,255,255,.88)!important}.offre.reco li::before{border-color:#E8F7FB}
.offre.reco .etiq{background:#E8F7FB;color:#0A3A45}
.essai .petit{color:rgba(255,255,255,.75);margin:10px 0 0}

/* FAQ */
details{border-bottom:1px solid var(--bordure);padding:4px 0}
summary{list-style:none;cursor:pointer;padding:14px 34px 14px 0;font-weight:700;font-size:17px;position:relative;line-height:1.35}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:4px;top:10px;font:400 26px Inter;color:var(--accent)}
details[open] summary::after{content:"–"}
details p{color:var(--texte-2);font-size:16px}
.faq{margin-top:14px;border-top:1px solid var(--bordure)}

/* formulaires */
form.devis{display:grid;gap:12px;margin-top:18px}
form.devis label{display:grid;gap:5px;font-weight:600;font-size:15px}
form.devis input,form.devis select,form.devis textarea{font:400 16px Inter;padding:12px 14px;border-radius:12px;border:1.5px solid var(--bordure);background:var(--surface);color:var(--texte);width:100%}
form.devis .merci{display:none;color:var(--accent);font-weight:600}
form.devis.envoye .merci{display:block}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chips a{display:inline-block;padding:8px 13px;border-radius:999px;border:1.5px solid var(--bordure);text-decoration:none;color:var(--texte);font-size:14.5px;font-weight:600}

/* cartes de contenus libres */
.libres{display:grid;gap:10px;margin-top:18px}
.libre{display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:center;padding:12px;border:1px solid var(--bordure);border-radius:14px;background:var(--surface)}
.libre .vig{width:56px;height:56px;border-radius:12px;background:var(--nuit-grad);display:grid;place-items:center}
.libre b{display:block;font-size:15.5px;line-height:1.3}
.libre span{font:500 11.5px "IBM Plex Mono";color:var(--texte-3)}

/* rapport parent */
.rapport .ligne-r{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--bordure);font-size:15.5px}
.rapport .ligne-r:last-of-type{border-bottom:0}
.etat{font:500 11px "IBM Plex Mono";letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:6px;white-space:nowrap}
.etat.acq{background:var(--teinte-bg);color:var(--accent)}
.etat.cours{background:var(--bg-2);color:var(--texte-2);border:1px solid var(--bordure)}
.etat.revoir{background:var(--erreur-bg);color:var(--erreur)}
.reco-p{margin-top:10px;background:var(--bg-2);border-radius:12px;padding:12px 14px;font-size:15px;line-height:1.45}
.reco-p b{display:block;font:500 11px "IBM Plex Mono";letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:3px}

/* atelier graphique */
.atelier svg{touch-action:none;width:100%;height:auto;display:block}
.atelier .eq{font:500 18px "IBM Plex Mono";text-align:center;margin:8px 0 2px}
.atelier .eq em{font-style:normal;color:var(--accent)}

/* manifeste */
.manifeste p{font-size:clamp(21px,5.6vw,27px);line-height:1.38;font-weight:600;letter-spacing:-.015em;margin-bottom:22px;color:var(--texte)}
.manifeste p.doux2{color:var(--texte-2);font-weight:500}
.manifeste .signe{font:500 13px "IBM Plex Mono";color:var(--accent);letter-spacing:.06em;text-transform:uppercase}

/* notes de maquette */
.note{margin:16px 0 0;border:1.5px dashed var(--rail-fort);border-radius:12px;padding:10px 12px;font:500 12.5px/1.45 "IBM Plex Mono";color:var(--texte-2);background:transparent}
.note b{color:var(--accent);font-weight:500}
html.sans-notes .note{display:none}
.nuit .note{color:#E8F7FB;border-color:rgba(232,247,251,.45)}.nuit .note b{color:#fff}

/* fin de page commune */
.fin{background:var(--nuit-grad);color:#fff;padding:52px 0 30px;position:relative;overflow:hidden}
.fin h2{color:#fff}.fin p{color:rgba(255,255,255,.88)}
.fin .petit{color:rgba(255,255,255,.72)}
.pied{background:#06262E;color:rgba(255,255,255,.78);padding:36px 0 40px;font-size:15px}
.pied img{height:32px;width:auto;margin-bottom:12px}
.pied .cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0}
.pied h4{margin:0 0 8px;font:500 11px "IBM Plex Mono";letter-spacing:.1em;text-transform:uppercase;color:#9fd9e8}
.pied a{display:block;color:#fff;text-decoration:none;padding:4px 0}
.pied .legal{font-size:13px;color:rgba(255,255,255,.6);border-top:1px solid rgba(255,255,255,.12);padding-top:16px}

.toast{visibility:hidden;position:fixed;left:16px;right:16px;bottom:18px;z-index:90;background:#0A3A45;color:#fff;border-radius:14px;padding:14px 16px;font-size:15px;box-shadow:0 10px 30px rgba(0,0,0,.3);transform:translateY(140%);transition:transform .3s}
.toast.on{transform:none;visibility:visible}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* filigrane : la signature de l'app */
section,.fin{position:relative}
.tex{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.055}
.tex rect{fill:url(#tx)}
.nuit .tex,.fin .tex{opacity:.08}.nuit .tex rect,.fin .tex rect{fill:url(#txb)}
:root[data-theme="dark"] .tex rect{fill:url(#txb)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .tex rect{fill:url(#txb)}}
section>.wrap,.fin>.wrap{position:relative;z-index:1}
html.sans-tex .tex{display:none}

/* déclinaisons */
html[data-slogan="fil"] .si-declic{display:none!important}
html:not([data-slogan="fil"]) .si-fil{display:none!important}
html[data-famhero="c01"] .si-fpub{display:none!important}
html:not([data-famhero="c01"]) .si-fc01{display:none!important}
.variante{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 0;font:500 12px "IBM Plex Mono",monospace;color:var(--texte-2)}
.variante .seg{display:inline-flex;border:1.5px dashed var(--rail-fort);border-radius:999px;overflow:hidden}
.variante button{background:none;border:0;padding:6px 11px;font:500 12px "IBM Plex Mono",monospace;cursor:pointer;color:var(--texte-2)}
.variante button[aria-pressed="true"]{background:var(--teinte-bg);color:var(--accent)}
html.sans-notes .variante{display:none}

/* affiches de films composées (univers du fil) */
.film button .aff{position:absolute;inset:0;background:linear-gradient(180deg,#FBFCFD,#EDF2F4)}
.film button .aff.sombre{background:radial-gradient(120% 95% at 25% 0%,#0E5A6B 0%,#0A3A45 72%)}
.aff svg{position:absolute;inset:0;width:100%;height:100%}
.aff .t{position:absolute;left:6%;top:9%;right:24%;font:800 clamp(17px,4.8vw,27px)/1.1 Inter;letter-spacing:-.028em;color:#1D1D1F}
.aff .t em{font-style:normal;color:#0B8FB2}
.aff.sombre .t{color:#fff}.aff.sombre .t em{color:#18B4D6}
.aff .k{position:absolute;left:6%;top:calc(9% - 15px);font:500 9.5px "IBM Plex Mono";letter-spacing:.12em;text-transform:uppercase;color:#0B8FB2}
.aff.sombre .k{color:#9fd9e8}
.film .play.petit{width:54px;height:54px;margin:-27px 0 0 -27px;left:auto;right:6%;top:auto;bottom:12%}

/* barre de navigation de maquette, en bas de chaque page */
.maqnav{background:#0A3A45;color:#E8F7FB;font:500 12.5px/1.3 "IBM Plex Mono",monospace;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.maqnav[hidden]{display:none}
.maqnav a{color:#fff;text-decoration:none;max-width:42%}
.maqnav span{opacity:.7;white-space:nowrap}
.maq a.plan-l{color:#fff;font-weight:500;text-decoration:none;border:1px solid rgba(232,247,251,.5);border-radius:999px;padding:4px 10px}

/* plan du site (page de maquette) */
.fiche{border:1px solid var(--bordure);border-radius:16px;padding:16px;margin-top:12px;background:var(--surface)}
.fiche h3 a{color:var(--texte);text-decoration:none}
.fiche h3 a::after{content:" →";color:var(--accent)}
.fiche .num{font:500 11.5px "IBM Plex Mono";color:var(--accent);letter-spacing:.06em}
.fiche dl{margin:10px 0 0;display:grid;gap:8px}
.fiche dt{font:500 10.5px "IBM Plex Mono";letter-spacing:.1em;text-transform:uppercase;color:var(--texte-3)}
.fiche dd{margin:0;font-size:15px;line-height:1.45;color:var(--texte-2)}
.change{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:10px}
.change li{padding-left:22px;position:relative;font-size:16px;line-height:1.45;color:var(--texte-2)}
.change li::before{content:"";position:absolute;left:0;top:7px;width:10px;height:10px;border-radius:50%;border:3px solid var(--ligne)}
.change b{color:var(--texte)}

/* onglets de démonstration */
.onglets{display:inline-flex;background:var(--bg-2);border-radius:999px;padding:4px;border:1px solid var(--bordure);margin-top:14px}
.onglets button{border:0;background:none;padding:9px 18px;border-radius:999px;font-weight:600;font-size:15px;cursor:pointer;color:var(--texte-2)}
.onglets button[aria-pressed="true"]{background:var(--surface);color:var(--texte);box-shadow:0 1px 4px rgba(0,0,0,.12)}
[data-panneau][hidden]{display:none}

/* bibliothèque */
.filtres{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.filtres button{border:1.5px solid var(--bordure);background:var(--surface);border-radius:999px;padding:8px 13px;font-size:14.5px;font-weight:600;cursor:pointer;color:var(--texte)}
.filtres button[aria-pressed="true"]{border-color:var(--ligne);background:var(--teinte-bg);color:var(--accent)}
.biblio{display:grid;gap:10px;margin-top:16px}
.biblio .libre[hidden]{display:none}
.libre .vig.art{background:var(--teinte-bg)}
.libre .vig svg{width:22px;height:22px}
.libre>span:last-child{font:400 15px/1.35 Inter;color:var(--texte)}
.libre>span:last-child>span{display:block;font:500 11.5px "IBM Plex Mono";color:var(--texte-3)}
.libre>span:last-child>span.lib{font:500 10.5px "IBM Plex Mono";color:var(--accent);letter-spacing:.06em;text-transform:uppercase}

/* article */
.article p{font-size:18px;line-height:1.65;color:var(--texte)}
.article h2{font-size:clamp(23px,6vw,30px);margin-top:28px}
.meta{font:500 12.5px "IBM Plex Mono";color:var(--texte-3);letter-spacing:.04em}

/* sous-titres disponibles */
.langues{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.langues span{font:500 12.5px Inter;padding:5px 10px;border-radius:999px;background:var(--teinte-bg);color:var(--accent)}
.langues b{font:500 11px "IBM Plex Mono";letter-spacing:.08em;text-transform:uppercase;color:var(--texte-3);align-self:center;margin-right:2px}

/* parcours parent : ce qui est libre, ce qui s'ouvre */
.cadenas{display:inline-block;font:500 10.5px "IBM Plex Mono";letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:6px;margin-top:8px}
.cadenas.libre-t{background:var(--teinte-bg);color:var(--accent)}
.cadenas.ferme{background:var(--bg-2);color:var(--texte-2);border:1px solid var(--bordure)}

/* console enseignant */
.console .ligne-r{display:grid;grid-template-columns:62px 1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--bordure);font-size:15px}
.console .ligne-r:last-of-type{border-bottom:0}
.console .who{font:500 12px "IBM Plex Mono";color:var(--texte-3)}

/* correction d'un texte */
.l.lt{font-size:23px;align-items:flex-start;flex-wrap:wrap;gap:4px 10px}
.l.lt>span:nth-child(2){flex:1;min-width:0}
.l.lt .ok,.l.lt .ko{margin-top:4px}
.l.lt .n{margin-top:8px}

/* menu horizontal : caché sur téléphone */
.nav-b{display:none}

/* boutons : droits, coins arrondis, comme sur le site en ligne */
.btn{border-radius:10px;font-weight:600;font-size:16.5px;min-height:50px;padding:0 22px}
.btn.mini{border-radius:9px;min-height:38px;padding:0 14px;font-size:14.5px}
.onglets,.bascule{border-radius:12px}
.onglets button,.bascule button,.filtres button,.chips a{border-radius:9px}

/* manifeste : un texte qu'on lit, pas une affiche */
.manifeste p{font-size:clamp(18.5px,4.8vw,20.5px);line-height:1.6;font-weight:500;letter-spacing:-.008em;margin-bottom:18px}
.manifeste p.doux2{font-weight:400}

/* héros : centré, une seule colonne, sur toutes les tailles */
.hero .wrap{text-align:center}
.hero h1{max-width:18ch;margin-left:auto;margin-right:auto;text-wrap:balance}
.hero .lead{max-width:56ch;margin-left:auto;margin-right:auto}
.hero .ctas{align-items:center;justify-content:center}
.hero .variante,.hero .langues,.hero .filtres,.hero .onglets{justify-content:center}
.hero .note{text-align:left;max-width:640px;margin-left:auto;margin-right:auto}
.hero .col-m{margin-top:26px;text-align:left}
.hero .col-m>*{margin-left:auto;margin-right:auto}

/* menu horizontal : caché sur téléphone */
.nav-b{display:none}

/* ---------------------------------------------------------------- bureau
   Le téléphone ne change pas. Dès 980 px : une page centrée de 1 180 px,
   comme le site en ligne. Deux colonnes seulement sur quelques sections. */
@media (min-width:980px){
  body{font-size:17px}
  .wrap{max-width:1180px;padding:0 40px}
  h1{font-size:clamp(42px,4.2vw,56px);margin:14px auto 20px}
  h2{font-size:clamp(30px,2.8vw,40px);margin:10px 0 16px}
  .lead{font-size:19px}
  .phrase{font-size:clamp(30px,2.8vw,38px)}
  section{padding:88px 0}
  section.serre{padding-top:36px}
  .hero{padding:72px 0 64px}
  .tete .wrap{height:68px;gap:30px}
  .tete .marque{margin-right:0}
  .nav-b{display:flex;gap:26px;margin-right:auto;margin-left:24px}
  .nav-b a{color:var(--texte-2);text-decoration:none;font-weight:600;font-size:15px;padding:6px 0;border-bottom:2px solid transparent}
  .nav-b a:hover{color:var(--texte)}
  .nav-b a[aria-current="page"]{color:var(--texte);border-bottom-color:var(--ligne)}
  .menu-btn{display:none}
  .ctas{flex-direction:row;flex-wrap:wrap}
  .ctas .btn{width:auto}

  /* sections centrées (le cas général) */
  .centre>.col-t{text-align:center;max-width:780px;margin:0 auto}
  .centre>.col-t .lead,.centre>.col-t>p{max-width:62ch;margin-left:auto;margin-right:auto}
  .centre>.col-t .ctas,.centre>.col-t .onglets,.centre>.col-t .variante{justify-content:center}
  .centre>.col-m{max-width:880px;margin:34px auto 0}
  .centre>.col-m>.carte-schema,.centre>.col-m>.cahier,.centre>.col-m>div>.cahier,.centre>.col-m>div>.carte-schema{max-width:700px;margin-left:auto;margin-right:auto}
  .centre>.col-m>.lignes,.centre>.col-m>.trajet,.centre>.col-m>.faq,.centre>.col-m>.etapes3,.centre>.col-m>.change,.centre>.col-m>.chips,.centre>.col-m>form{max-width:760px;margin-left:auto;margin-right:auto}
  .centre>.col-m>.chips,.centre>.col-m>.ctas{justify-content:center}
  .centre>.col-m>.petit{text-align:center}
  .duo>.col-t>.trajet{margin-top:30px}
  .centre>.col-m>.onglets{display:flex;width:max-content;margin:0 auto 4px}
  .centre>.col-m>.note,.centre>.col-m>.petit{max-width:760px;margin-left:auto;margin-right:auto}
  .centre>.col-m>a.btn{display:flex;width:max-content;margin:22px auto 0}
  .seul>*{max-width:780px;margin-left:auto;margin-right:auto}
  .seul{text-align:center}
  .seul>.lead,.seul>p{max-width:62ch}
  .seul.manifeste,.seul.article{text-align:left}
  .seul.manifeste>*,.seul.article>*{max-width:700px}
  .seul>.etapes3,.seul>.change,.seul>.fiches,.seul>.biblio,.seul>.trajet,.seul>.chips,.seul>.note{text-align:left}
  .seul>.chips{justify-content:center}
  .seul>.fiches,.seul>.biblio{max-width:none}
  .hero .col-m{margin-top:44px}
  .hero .col-m>.film,.hero .col-m>.visuel,.hero .col-m>div>.film{max-width:960px}
  .hero .col-m>.cahier{max-width:700px}

  /* deux colonnes : seulement les sections marquées « deux » */
  .duo{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:80px;align-items:center}
  .duo>.col-m>:first-child{margin-top:0}
  .duo.inv{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}
  .duo.inv>.col-t{order:2}
  .duo .col-m .carte-schema,.duo .col-m .cahier{max-width:620px}

  .engage{gap:14px}
  .centre .engage,.seul .engage{grid-template-columns:repeat(3,minmax(0,1fr));text-align:left}
  .centre .engage:has(>div:nth-child(4)),.seul .engage:has(>div:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}
  .engage div{padding:20px 22px}
  .biblio,.libres{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .col-m .libres,.article .libres{grid-template-columns:1fr}
  .fiche{margin-top:0}
  .fiches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}

  .tarifs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}
  .tarifs>.bascule{grid-column:1/-1;justify-self:center;order:-1;margin:0 0 10px}
  .tarifs>.petit,.tarifs>.note{grid-column:1/-1;text-align:center}
  .tarifs .offre{margin-top:0;display:flex;flex-direction:column;padding:28px 26px}
  .tarifs .offre ul{flex:1;align-content:start}
  .tarifs .offre .ctas{flex-direction:column}
  .tarifs .offre .ctas .btn{width:100%}

  .visuel.pleine{margin-left:0;margin-right:0;border-radius:16px}
  .pied .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:auto 1fr;column-gap:48px;align-items:start}
  .pied .cols{display:contents}
  .pied .wrap>img{grid-column:1;grid-row:1}
  .pied .wrap>p:not(.legal){grid-column:1;grid-row:2}
  .pied .cols>div:first-child{grid-column:2;grid-row:1/3}
  .pied .cols>div:last-child{grid-column:3;grid-row:1/3}
  .pied .legal{grid-column:1/-1;grid-row:3;margin-top:28px}
  .fin .centre .etapes3{max-width:520px;margin-left:auto;margin-right:auto}
  .maqnav{padding:14px 40px}
  .toast{left:auto;right:24px;max-width:420px}
}

/* atelier graphique : capsule visuelle 3D */
.av .av-ecran{position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 100%);border:1px solid var(--bordure)}
.av canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.av .av-chap{position:absolute;left:14px;top:12px;display:flex;align-items:baseline;gap:10px;text-align:left}
.av .av-n{font:500 11px "IBM Plex Mono",monospace;letter-spacing:.08em;color:var(--accent)}
.av .av-t{font:800 clamp(17px,2.2vw,24px)/1.1 Inter,sans-serif;letter-spacing:-.02em;color:var(--texte)}
.av .av-cap{margin:12px 2px 10px;font-size:16px;line-height:1.45;color:var(--texte-2);min-height:3em;text-align:left}
.av .av-barre{display:flex;align-items:center;gap:10px}
.av .av-pp{flex:none;width:36px;height:36px;border-radius:10px;border:1px solid var(--bordure);background:var(--surface);color:var(--accent);display:grid;place-items:center;cursor:pointer}
.av .av-pp .i-play{display:none}.av.pause .av-pp .i-play{display:block}.av.pause .av-pp .i-pause{display:none}
.av .av-pp span{display:grid}
.av .av-seg{flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.av .av-seg button{background:none;border:0;padding:0;text-align:left;cursor:pointer;font:600 12px Inter,sans-serif;color:var(--texte-3);min-width:0}
.av .av-seg button i{display:block;height:4px;border-radius:2px;background:var(--bordure);overflow:hidden;margin-bottom:6px}
.av .av-seg button u{display:block;height:100%;width:0;background:var(--ligne)}
.av .av-seg button span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.av .av-seg button.on{color:var(--texte)}
@media (max-width:560px){.av .av-seg button span{font-size:10.5px}.av .av-cap{font-size:15px}}

/* v6 · héros : le titre, puis le film en grand, puis le texte et les boutons */
.hv>.col-t h1{margin-bottom:0}
.hv>.col-m{margin:22px auto 0;text-align:left}
.hv>.col-m>*{margin-left:auto;margin-right:auto}
.hv>.col-m>.cahier{max-width:760px}
.hv>.col-b{margin-top:22px}
.hv>.col-b .lead{margin-top:0!important}
@media (min-width:980px){
  .hero{padding:44px 0 64px}
  .hero h1{font-size:clamp(40px,3.5vw,52px);max-width:26ch;line-height:1.06}
  .hv>.col-t h1{margin-top:10px}
  .hv>.col-m{margin-top:30px;max-width:980px}
  .hv>.col-m .film,.hv>.col-m .visuel{max-width:980px}
  .hv>.col-b{max-width:780px;margin:30px auto 0}
  .hv>.col-b .lead{font-size:19.5px}
}
@media (max-width:979px){.tarifs{display:flex;flex-direction:column}
  .tarifs>.bascule{order:-2;align-self:center;margin-bottom:6px}.tarifs>.offre.reco{order:-1;margin-top:22px}}
@media (min-width:980px){
  .hv .aff .t{font-size:clamp(22px,3vw,40px)}.hv .aff .k{font-size:12px;top:calc(9% - 20px)}}
/* v6 · vue téléphone */
.telv{position:fixed;inset:0;z-index:200;background:rgba(6,20,25,.94);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:16px;overflow:hidden}
.telv[hidden]{display:none}
.telv .telv-h{display:flex;gap:12px;align-items:center;color:#E8F7FB;font:500 12px "IBM Plex Mono",monospace;margin-bottom:12px}
.telv .telv-h button{background:#E8F7FB;color:#0A3A45;border:0;border-radius:9px;padding:7px 12px;font:600 13px Inter,sans-serif;cursor:pointer}
.telv .tel{width:414px;height:868px;border-radius:52px;background:#111;padding:12px;box-shadow:0 30px 80px rgba(0,0,0,.5);transform-origin:top center;flex:none;position:relative}
.telv iframe{width:390px;height:844px;border:0;border-radius:40px;background:#fff;display:block}
html.cadre .maq,html.cadre .telv{display:none!important}

/* v7 · affiches vidéo : l'image porte déjà le titre et la durée */
.film.vid button{aspect-ratio:16/9}
.film.vid img,.film.vid picture{width:100%;height:100%;object-fit:cover}
.film.vid picture{display:block}
.film.vid .play{left:var(--px);top:var(--py);right:auto;bottom:auto;transform:translate(-50%,-50%)}
.txt-m{display:none}
.h1-long{max-width:30ch!important}.h1-long .acc{display:block}
/* v7 · téléphone : alléger, épurer */
@media (max-width:640px){
  body{font-size:16px}
  h1{font-size:clamp(29px,8.2vw,36px);line-height:1.08;letter-spacing:-.028em}
  h1.h1-long{font-size:clamp(26px,7.4vw,32px)}
  h2{font-size:clamp(24px,6.6vw,29px);line-height:1.12}
  .lead{font-size:16.5px;line-height:1.5}
  .phrase{font-size:26px}
  section{padding:46px 0}
  .hero{padding:20px 0 30px}
  .txt-d{display:none}.txt-m{display:inline}
  .film.vid button{aspect-ratio:4/5}
  .film.vid .play{left:var(--mx);top:var(--my);transform:translate(-50%,-50%) scale(.86)}
  .m-cache{display:none!important}
  .engage div p{display:none}
  .engage div{padding:14px 16px}
  .lignes li a>span>span{display:none}
  .faq summary{font-size:16px}
  .trajet .arret p{font-size:15px}
}
/* v7 · lecture sur téléphone : la version verticale en plein écran */
.plein{position:fixed;inset:0;z-index:150;background:#06141a;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px}
.plein[hidden]{display:none}
.plein img{max-height:calc(100% - 70px);max-width:100%;border-radius:12px;object-fit:contain}
.plein p{color:#E8F7FB;font:500 12px/1.4 "IBM Plex Mono",monospace;text-align:center;margin:10px 0 0;max-width:340px}
.plein button{position:absolute;top:12px;right:12px;background:#E8F7FB;color:#0A3A45;border:0;border-radius:9px;padding:7px 12px;font:600 13px Inter,sans-serif}
