/* SIP — feuille de styles unique. Générée depuis les maquettes. */

/* ---------- Base commune ---------- */
:root{--denim:#357CBC;--denim-fonce:#2A6394;--bleu-clair:#75ABDB;--bleu-pale:#DCE9F4;--gris:#444444;--gris-moyen:#909293;--gris-clair:#F2F3F4;--gris-trait:#DDE0E2;--blanc:#fff;--f-titre:"Barlow Semi Condensed",Bahnschrift,system-ui,sans-serif;--f-corps:"Barlow",Bahnschrift,system-ui,sans-serif;--max:1200px;--r:4px;--ombre:0 1px 2px rgba(68,68,68,.05),0 10px 30px rgba(53,124,188,.10)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
h1,h2,h3,h4{font-family:var(--f-titre);margin:0;line-height:1.12;font-weight:700}
p{margin:0 0 1rem}
img,svg{max-width:100%}
a{color:var(--denim-fonce)}
:focus-visible{outline:3px solid var(--denim);outline-offset:3px;border-radius:2px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.surtitre{font-family:var(--f-titre);font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:.18em;color:var(--denim);display:block;margin-bottom:12px}
.section.alt{background:var(--gris-clair)}
.section.pale{background:var(--bleu-pale)}
.btn{font-family:var(--f-titre);font-weight:600;font-size:1rem;text-transform:uppercase;letter-spacing:.08em;padding:15px 30px;border-radius:var(--r);border:2px solid transparent;text-decoration:none;display:inline-flex;align-items:center;gap:10px;cursor:pointer;transition:background .18s,color .18s,border-color .18s}
.btn-1{background:var(--denim-fonce);color:#fff}
.btn-1:hover{background:var(--gris)}
.btn-2{background:transparent;color:var(--denim-fonce);border-color:var(--denim)}
.btn-2:hover{background:var(--denim-fonce);color:#fff;border-color:var(--denim-fonce)}
.btn-clair{background:#fff;color:var(--denim-fonce);border-color:#fff}
.btn-fantome{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.btn-fantome:hover{background:rgba(255,255,255,.14);border-color:#fff}
.entete{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--gris-trait)}
.entete .wrap{display:flex;align-items:center;gap:28px;padding-top:14px;padding-bottom:14px}
.logo{width:180px;flex-shrink:0}
.menu a{font-family:var(--f-titre);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.92rem;color:var(--gris);text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}
.menu a:hover,.menu a.actif{color:var(--denim-fonce);border-color:var(--bleu-clair)}
.menu a.btn-1,.menu a.btn-1:hover{color:var(--blanc);border-bottom-color:transparent}
.langue{font-size:.8rem;color:var(--gris-moyen);text-decoration:none;letter-spacing:.1em}
.burger{display:none;margin-left:auto;background:none;border:1px solid var(--gris-trait);border-radius:var(--r);padding:9px 12px;cursor:pointer;color:var(--gris)}
.hero{background:var(--bleu-pale);position:relative;overflow:hidden;padding:80px 0 0}
.hero::before{content:"";position:absolute;top:-140px;right:-120px;width:520px;height:520px;border-radius:50%;background:var(--bleu-clair);opacity:.30}
.hero .wrap{position:relative;z-index:1}
.hero-grille{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(2.4rem,5.2vw,4rem);letter-spacing:-.005em;margin:0 0 20px}
.hero h1 em{font-style:normal;color:var(--denim)}
.hero p{font-size:1.2rem;max-width:52ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}
.hero-visuel{aspect-ratio:4/3;background:#fff;border-radius:var(--r);box-shadow:var(--ombre);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--denim);text-align:center;padding:24px;border:1px dashed var(--bleu-clair)}
.hero-visuel strong{font-family:var(--f-titre);text-transform:uppercase;letter-spacing:.12em;font-size:.9rem}
.hero-visuel span{font-size:.85rem;color:var(--gris-moyen)}
.pole:last-child{border-right:0}
.pole:hover{background:var(--gris-clair)}
.groupe-etendue{font-size:1rem;text-transform:uppercase;letter-spacing:.16em;color:var(--gris-moyen);margin:44px 0 18px;padding-bottom:8px;border-bottom:1px solid var(--gris-trait)}
.tag:hover{border-color:var(--bleu-clair);color:var(--denim-fonce)}
.equipements{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.equipement{border-top:3px solid var(--denim);padding-top:18px}
.equipement h4{font-family:var(--f-titre);font-size:1.15rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.equipement p{font-size:.94rem;color:var(--gris-moyen);margin:0}
.references{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-top:24px}
.ref:hover{box-shadow:var(--ombre);border-color:var(--bleu-clair)}
.ref-partenaire{border-color:var(--bleu-clair);border-width:2px}
.ref-partenaire span{color:var(--denim-fonce)}
.partenaires{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:20px;margin-top:24px}
.partenaire{background:#fff;border:1px solid var(--gris-trait);border-left:4px solid var(--bleu-clair);border-radius:0 var(--r) var(--r) 0;padding:24px 26px;display:grid;grid-template-columns:100px 1fr;gap:22px;align-items:start}
.partenaire-logo{display:flex;align-items:center;justify-content:center;min-height:56px}
.partenaire-logo img{max-width:100%;max-height:48px;object-fit:contain}
.partenaire b{display:block;font-family:var(--f-titre);font-size:1.15rem;text-transform:uppercase;letter-spacing:.05em}
.partenaire>div>span{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--gris-moyen);margin:4px 0 12px}
.partenaire p{margin:0;font-size:.94rem;color:var(--gris-moyen)}
.pourquoi{margin-top:48px;background:#fff;border-left:5px solid var(--bleu-clair);padding:26px 30px;border-radius:0 var(--r) var(--r) 0}
.pourquoi p{margin:0;font-size:1.05rem}
.deux-col{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.liste-check{list-style:none;padding:0;margin:24px 0 0}
.liste-check li{padding-left:30px;position:relative;margin-bottom:12px}
.liste-check li::before{content:"";position:absolute;left:0;top:11px;width:14px;height:3px;background:var(--bleu-clair)}
.encadre{background:#fff;border-left:4px solid var(--denim);padding:28px 32px;box-shadow:var(--ombre);border-radius:0 var(--r) var(--r) 0}
.groupe{display:flex;align-items:center;gap:14px;margin:52px 0 4px;font-size:1.25rem;text-transform:uppercase;letter-spacing:.08em;color:var(--denim-fonce)}
.groupe svg{width:34px;height:34px;color:var(--denim);flex-shrink:0}
.groupe::after{content:"";flex:1;height:1px;background:var(--gris-trait)}
.sf-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px;margin-top:20px}
.sf{background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);padding:30px;position:relative;overflow:hidden;text-decoration:none;color:inherit;display:block;transition:transform .2s,box-shadow .2s}
.sf::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--bleu-clair);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.sf:hover{transform:translateY(-3px);box-shadow:var(--ombre)}
.sf:hover::after{transform:scaleX(1)}
.sf svg{width:40px;height:40px;color:var(--denim);margin-bottom:14px}
.sf h3{font-size:1.2rem;text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px}
.sf p{font-size:.95rem;color:var(--gris-moyen);margin:0}
.sf .lien{font-family:var(--f-titre);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.82rem;color:var(--denim-fonce);margin-top:14px;display:inline-block}
.etape::before{counter-increment:e;content:"0" counter(e);position:absolute;top:-16px;left:0;background:var(--bleu-pale);color:var(--denim-fonce);font-family:var(--f-titre);font-weight:700;font-size:.9rem;letter-spacing:.1em;padding:2px 10px}
.etape h3{font-size:1.1rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
button.etape{font:inherit;text-align:left;background:none;border:0;border-top:2px solid var(--bleu-clair);cursor:pointer;color:inherit;padding:28px 0 0;transition:border-color .18s}
button.etape:hover{border-top-color:var(--denim)}
button.etape[aria-pressed="true"]{border-top-color:var(--denim-fonce)}
button.etape[aria-pressed="true"]::before{background:var(--denim-fonce);color:#fff}
button.etape[aria-pressed="true"] h3{color:var(--denim-fonce)}
button.etape[aria-pressed="true"] p{color:var(--gris)}
.recap p{margin:0;font-size:1.05rem}
.recap strong{color:var(--denim-fonce)}
.st-carte{margin:64px 0 20px;font-size:1rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gris-moyen);padding-bottom:8px;border-bottom:1px solid var(--gris-trait)}
.cas{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:24px}
.cas-item{border-left:3px solid var(--bleu-clair);padding-left:20px}
.cas-quoi{display:block;font-family:var(--f-titre);font-weight:600;font-size:1.12rem;color:var(--denim-fonce);margin-bottom:8px;line-height:1.3}
.cas-item p{font-size:.94rem;color:var(--gris-moyen);margin:0}
.filtre:hover{border-color:var(--bleu-clair)}
.filtre[aria-pressed="true"]{background:var(--denim-fonce);border-color:var(--denim-fonce);color:#fff}
.rea:hover{transform:translateY(-3px);box-shadow:var(--ombre)}
.rea[hidden]{display:none}
.rea-photo{aspect-ratio:16/10;background:var(--bleu-pale);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--denim);text-align:center;padding:18px}
.rea-photo.rea-img{padding:0;display:block;background:none}
.rea-photo.rea-img img{width:100%;height:100%;object-fit:cover;display:block}
.rea-photo strong{font-family:var(--f-titre);text-transform:uppercase;letter-spacing:.12em;font-size:.82rem}
.techs{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:18px}
.puces{display:flex;flex-wrap:wrap;gap:8px}
.puce{background:#fff;border:1px solid var(--gris-trait);border-radius:2px;padding:6px 12px;font-size:.88rem}
.pied-grille{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:48px}
.pied h4{color:#fff;font-size:.9rem;text-transform:uppercase;letter-spacing:.14em;margin-bottom:14px}
.pied a:hover{color:#fff;text-decoration:underline}
.pied ul{list-style:none;padding:0;margin:0}
.pied li{margin-bottom:9px}
svg{max-width:100%}
.bandeau .wrap{position:relative;z-index:1}
.fil a{text-decoration:none}
.phases{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
.phase-haut{background:var(--denim-fonce);color:#fff;padding:14px 20px}
.phase-haut b{font-family:var(--f-titre);font-size:1.05rem;text-transform:uppercase;letter-spacing:.08em}
.phase-haut span{display:block;font-size:.82rem;color:var(--bleu-pale);letter-spacing:.04em}
.phase-corps{padding:20px;display:flex;flex-direction:column;gap:14px}
.etape b{display:block;font-family:var(--f-titre);font-size:1.1rem;text-transform:uppercase;letter-spacing:.04em;margin:2px 0 4px}
.branches{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.branche{background:var(--bleu-pale);border-radius:2px;padding:8px 10px;font-size:.82rem;font-family:var(--f-titre);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--denim-fonce);text-align:center}
.jalons{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:32px}
.jalon{background:#fff;border:1px solid var(--gris-trait);border-top:4px solid var(--denim);border-radius:0 0 var(--r) var(--r);padding:22px}
.jalon.option{border-top-color:var(--gris-moyen)}
.jalon h3{font-size:1.05rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px}
.jalon ul{list-style:none;margin:0;padding:0}
.jalon li{font-size:.92rem;padding:7px 0 7px 20px;position:relative;border-bottom:1px solid var(--gris-clair)}
.jalon li:last-child{border-bottom:0}
.jalon li::before{content:"";position:absolute;left:0;top:15px;width:10px;height:2px;background:var(--bleu-clair)}
.jalon.option li::before{background:var(--gris-moyen)}
.legende{display:flex;flex-wrap:wrap;gap:24px;margin-top:24px;font-size:.88rem;color:var(--gris-moyen)}
.legende span{display:flex;align-items:center;gap:8px}
.legende i{width:24px;height:4px;display:block;background:var(--denim)}
.legende i.opt{background:var(--gris-moyen)}
.docs{margin-top:32px;max-width:86ch}
.docs details{border-bottom:1px solid var(--gris-trait);padding:4px 0}
.docs summary{cursor:pointer;list-style:none;padding:20px 34px 20px 0;position:relative;font-family:var(--f-titre);font-weight:600;font-size:1.15rem}
.docs summary::-webkit-details-marker{display:none}
.docs summary::after{content:"+";position:absolute;right:6px;top:16px;font-size:1.6rem;color:var(--denim);font-weight:400;line-height:1}
.docs details[open] summary::after{content:"–"}
.docs .contenu{padding:0 34px 22px 0}
.docs .contenu p{margin:0 0 10px}
.docs .contenu ul{margin:0 0 10px;padding-left:20px}
.docs .contenu li{margin-bottom:6px;font-size:.95rem}
.tagopt{font-family:var(--f-titre);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;background:var(--gris-clair);color:var(--gris-moyen);padding:3px 9px;border-radius:2px;margin-left:10px;vertical-align:middle}
.note p:last-child{margin-bottom:0}
.texte h2:first-of-type{margin-top:0}
.texte h3{font-size:1.1rem;text-transform:uppercase;letter-spacing:.04em;margin:32px 0 10px}
.texte p{margin:0 0 14px}
.texte ul{margin:0 0 16px;padding-left:22px}
.texte li{margin-bottom:8px}
.texte dl{margin:0 0 18px;display:grid;grid-template-columns:220px 1fr;gap:2px 20px}
.texte dt{font-family:var(--f-titre);font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gris-moyen);padding:9px 0;border-bottom:1px solid var(--gris-trait)}
.texte dd{margin:0;padding:9px 0;border-bottom:1px solid var(--gris-trait);font-size:.97rem}
.acompleter{background:#fffbe8;color:#6b5a1e;padding:1px 7px;border-radius:2px;font-size:.9em;font-weight:600;white-space:nowrap}
.alerte{background:#fffbe8;border:1px dashed #d9c26a;color:#6b5a1e;font-size:.9rem;padding:16px 22px;border-radius:var(--r);margin-bottom:32px}
.alerte p{margin:0 0 8px}
.alerte p:last-child{margin:0}
.etape-bloc{margin-bottom:52px}
.etape-titre{display:flex;align-items:baseline;gap:14px;margin-bottom:6px}
.etape-bloc h2{font-size:1.5rem;text-transform:uppercase;letter-spacing:.03em}
.etape-bloc .intro{color:var(--gris-moyen);font-size:.98rem;margin-bottom:22px}
.cartes{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.carte{position:relative}
.carte input{position:absolute;opacity:0;width:1px;height:1px}
.carte label{display:block;height:100%;border:2px solid var(--gris-trait);border-radius:var(--r);padding:20px;cursor:pointer;transition:border-color .18s,background .18s}
.carte label:hover{border-color:var(--bleu-clair)}
.carte input:checked + label{border-color:var(--denim-fonce);background:var(--bleu-pale)}
.carte input:focus-visible + label{outline:3px solid var(--denim);outline-offset:3px}
.carte svg{width:38px;height:38px;color:var(--denim);display:block;margin-bottom:10px}
.carte b{display:block;font-family:var(--f-titre);font-size:1.08rem;text-transform:uppercase;letter-spacing:.05em}
.carte span{display:block;font-size:.88rem;color:var(--gris-moyen);margin-top:4px;line-height:1.45}
.champ{margin-bottom:20px}
.champ label{display:block;font-family:var(--f-titre);font-weight:600;font-size:.88rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:7px}
.champ input[type=text],.champ input[type=email],.champ input[type=tel],.champ select,.champ textarea{width:100%;padding:13px 15px;font-family:var(--f-corps);font-size:1rem;border:1px solid var(--gris-moyen);border-radius:var(--r);background:#fff;color:var(--gris)}
.champ textarea{min-height:160px;resize:vertical}
.champ input:focus,.champ select:focus,.champ textarea:focus{border-color:var(--denim);outline:none;box-shadow:0 0 0 3px rgba(53,124,188,.18)}
.aide{font-size:.85rem;color:var(--gris-moyen);margin-top:6px}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.oblig{color:var(--denim-fonce)}
.radios{display:flex;flex-wrap:wrap;gap:10px}
.radios label{border:1px solid var(--gris-trait);border-radius:var(--r);padding:10px 18px;cursor:pointer;font-size:.94rem;text-transform:none;letter-spacing:0;font-family:var(--f-corps);font-weight:400}
.radios input{position:absolute;opacity:0}
.radios input:checked + span{color:var(--denim-fonce);font-weight:600}
.radios label:has(input:checked){border-color:var(--denim-fonce);background:var(--bleu-pale)}
.consent{display:flex;gap:12px;align-items:flex-start;background:var(--gris-clair);padding:18px 20px;border-radius:var(--r);font-size:.9rem;color:var(--gris-moyen)}
.consent input{margin-top:5px;flex-shrink:0;width:18px;height:18px}
.aside{position:sticky;top:110px}
.recap h3{font-size:1.05rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--gris-trait)}
.recap dl{margin:0}
.recap dt{font-family:var(--f-titre);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:var(--gris-moyen);margin-top:16px}
.recap dt:first-child{margin-top:0}
.recap dd{margin:4px 0 0;font-size:.95rem}
.recap dd.vide{color:var(--gris-moyen);font-style:italic}
.recap .btn{width:100%;justify-content:center;margin-top:24px}
.promesse{margin-top:22px;padding-top:18px;border-top:1px solid var(--gris-trait);font-size:.86rem;color:var(--gris-moyen)}
.direct{background:var(--bleu-pale);border-radius:var(--r);padding:22px 24px;margin-top:20px;font-size:.94rem}
.direct b{display:block;font-family:var(--f-titre);text-transform:uppercase;letter-spacing:.1em;font-size:.85rem;color:var(--denim-fonce);margin-bottom:8px}
.direct a{display:block;text-decoration:none;font-weight:600}
.confirmation{display:none;background:var(--bleu-pale);border-left:4px solid var(--denim);padding:28px 32px;border-radius:0 var(--r) var(--r) 0;margin-bottom:32px}
.confirmation.visible{display:block}
.confirmation h2{font-size:1.3rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px}
.confirmation p{margin:0;font-size:.98rem}
.identite{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--gris-trait);border:1px solid var(--gris-trait);border-radius:var(--r);overflow:hidden;margin-top:36px}
.identite div{background:#fff;padding:18px 20px}
.identite dt{font-family:var(--f-titre);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gris-moyen);margin-bottom:5px}
.identite dd{margin:0;font-size:.98rem;font-weight:500}
.recit{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.bloc-recit{margin-bottom:44px}
.bloc-recit:last-child{margin-bottom:0}
.bloc-recit h2{font-size:1.35rem;text-transform:uppercase;letter-spacing:.04em;padding-top:16px;border-top:3px solid var(--denim);margin-bottom:14px}
.bloc-recit ul{margin:0 0 12px;padding-left:20px}
.bloc-recit li{margin-bottom:8px}
.photo{aspect-ratio:4/3;background:var(--bleu-pale);border-radius:var(--r);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:20px}
.photo.large{grid-column:span 2;aspect-ratio:16/9}
.photo strong{font-family:var(--f-titre);text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;color:var(--denim)}
.photo-reelle{margin:0;background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.photo-reelle.large{grid-column:span 2}
.photo-reelle img{width:100%;height:auto;display:block}
.serie{margin-top:36px;counter-reset:p}
.vue-media{background:var(--bleu-pale);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center}
.vue-media img{width:100%;height:100%;object-fit:contain;display:block}
.vue-texte{padding:26px 30px;align-self:center}
.vue-num{counter-increment:p;font-family:var(--f-titre);font-weight:700;font-size:.75rem;letter-spacing:.16em;color:var(--denim);display:block;margin-bottom:6px}
.vue-num::before{content:"Vue 0" counter(p)}
.vue h3{font-size:1.12rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.vue p{font-size:.94rem;color:var(--gris-moyen);margin:0}
.atouts{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:26px;margin-top:32px}
.atout{border-top:3px solid var(--denim);padding-top:18px}
.atout h3{font-size:1.08rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.atout p{font-size:.94rem;color:var(--gris-moyen);margin:0}
.chiffre{border-left:3px solid var(--bleu-clair);padding-left:20px}
.photo-reelle figcaption{padding:16px 20px;font-size:.88rem;color:var(--gris-moyen);line-height:1.5}
.photo span{font-size:.82rem;color:var(--gris-moyen)}
.etape.actif{background:var(--denim-fonce);border-color:var(--denim-fonce);color:#fff}
.deux{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:32px}
.deux h3{font-size:1rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gris-moyen);padding-bottom:8px;border-bottom:1px solid var(--gris-trait);margin-bottom:16px}
.liste-livrables{list-style:none;margin:0;padding:0}
.liste-livrables li{padding:9px 0 9px 22px;position:relative;font-size:.95rem;border-bottom:1px solid var(--gris-trait)}
.liste-livrables li:last-child{border-bottom:0}
.liste-livrables li::before{content:"";position:absolute;left:0;top:17px;width:12px;height:2px;background:var(--bleu-clair)}
.sf-liens{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:28px}
.sf-lien{background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);padding:18px;text-decoration:none;color:inherit;display:flex;align-items:center;gap:14px;transition:box-shadow .2s,transform .2s}
.sf-lien:hover{box-shadow:var(--ombre);transform:translateY(-2px)}
.sf-lien svg{width:32px;height:32px;color:var(--denim);flex-shrink:0}
.sf-lien b{font-family:var(--f-titre);font-size:.98rem;text-transform:uppercase;letter-spacing:.04em}
.voisins{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:28px}
.voisin{background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);overflow:hidden;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}
.voisin:hover{transform:translateY(-3px);box-shadow:var(--ombre)}
.voisin-photo{aspect-ratio:16/10;background:var(--bleu-pale);display:flex;align-items:center;justify-content:center;color:var(--denim);font-family:var(--f-titre);font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;text-align:center;padding:14px}
.voisin-corps{padding:20px}
.voisin h3{font-size:1.08rem;margin-bottom:6px}
.voisin p{font-size:.9rem;color:var(--gris-moyen);margin:0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:22px;margin-top:32px}
.card{background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);padding:26px;text-decoration:none;color:inherit;display:block;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}
.card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--bleu-clair);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.card:hover{transform:translateY(-3px);box-shadow:var(--ombre)}
.card:hover::after{transform:scaleX(1)}
.card svg{width:40px;height:40px;color:var(--denim);margin-bottom:14px}
.card h3{font-size:1.15rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.card p{font-size:.94rem;color:var(--gris-moyen);margin:0}
.card .more{font-family:var(--f-titre);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:var(--denim-fonce);margin-top:14px;display:inline-block}
.refs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:24px}
.serie-groupe{font-family:var(--f-titre);font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.16em;color:var(--gris-moyen);margin:40px 0 18px;padding-bottom:8px;border-bottom:1px solid var(--gris-trait)}
.serie-groupe:first-child{margin-top:0}
.flux{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;margin-top:32px;counter-reset:f}
.etape-flux{background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);padding:20px;position:relative}
.etape-flux::before{counter-increment:f;content:"0" counter(f);font-family:var(--f-titre);font-weight:700;font-size:.78rem;letter-spacing:.14em;color:var(--denim);display:block;margin-bottom:8px}
.etape-flux b{display:block;font-family:var(--f-titre);font-size:1.05rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.etape-flux p{font-size:.9rem;color:var(--gris-moyen);margin:0}
.photo-reelle figcaption strong{color:var(--gris)}
.colonne{background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);overflow:hidden}
.colonne-haut{padding:14px 20px;font-family:var(--f-titre);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.86rem}
.colonne.avant .colonne-haut{background:var(--gris-clair);color:var(--gris-moyen)}
.colonne.apres .colonne-haut{background:var(--denim-fonce);color:#fff}
.colonne ul{list-style:none;margin:0;padding:16px 20px}
.colonne li{padding:9px 0;border-bottom:1px solid var(--gris-clair);font-size:.94rem}
.colonne li:last-child{border-bottom:0}
h1,h2,h3{font-family:var(--f-titre);margin:0;line-height:1.12;font-weight:700}
.filtrage{padding:40px 0 0}
.groupe-filtre{margin-bottom:22px}
.groupe-filtre h2{font-family:var(--f-titre);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.16em;color:var(--gris-moyen);margin-bottom:12px}
.compteur{font-size:.9rem;color:var(--gris-moyen);margin:8px 0 0}
.reinit{background:none;border:0;color:var(--denim-fonce);font-family:var(--f-corps);font-size:.9rem;cursor:pointer;text-decoration:underline;padding:0;margin-left:10px}
.grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:26px;padding:36px 0 88px}
.etiq.secteur{background:var(--gris-clair);color:var(--gris-moyen)}
.lien{font-family:var(--f-titre);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:var(--denim-fonce);margin-top:14px}
.vide{padding:56px 0;text-align:center;color:var(--gris-moyen)}
.vide[hidden]{display:none}
.bandeau-grille{display:grid;grid-template-columns:88px 1fr;gap:28px;align-items:start}
.bandeau-picto svg{width:88px;height:88px;color:var(--denim)}
.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.sommaire{position:sticky;top:110px;background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);padding:24px;box-shadow:var(--ombre)}
.sommaire h2{font-size:.85rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gris-moyen);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--gris-trait)}
.sommaire ul{list-style:none;margin:0;padding:0}
.sommaire li{margin-bottom:10px}
.sommaire a{font-size:.94rem;text-decoration:none}
.sommaire a:hover{text-decoration:underline}
.encart-devis{background:var(--bleu-pale);border-radius:var(--r);padding:22px;margin-top:20px;font-size:.93rem}
.encart-devis b{display:block;font-family:var(--f-titre);text-transform:uppercase;letter-spacing:.1em;font-size:.85rem;color:var(--denim-fonce);margin-bottom:8px}
.encart-devis .btn{width:100%;justify-content:center;margin-top:12px;padding:12px 20px;font-size:.9rem}
.livrables{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;margin-top:32px}
.livrable{border-top:3px solid var(--denim);padding-top:18px}
.livrable h3{font-size:1.1rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.livrable p{font-size:.94rem;color:var(--gris-moyen);margin:0}
.deroule{counter-reset:e;margin-top:32px}
.phase:last-child{border-bottom:0}
.phase::before{counter-increment:e;content:"0" counter(e);font-family:var(--f-titre);font-weight:700;font-size:1.5rem;color:var(--bleu-clair);line-height:1}
.phase h3{font-size:1.15rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.phase p{margin:0;font-size:.97rem}
.normes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:28px}
.norme{background:#fff;border:1px solid var(--gris-trait);border-left:4px solid var(--denim);border-radius:0 var(--r) var(--r) 0;padding:20px 24px}
.norme b{font-family:var(--f-titre);font-size:1rem;text-transform:uppercase;letter-spacing:.06em;color:var(--denim-fonce);display:block;margin-bottom:6px}
.norme p{margin:0;font-size:.92rem;color:var(--gris-moyen)}
.faq{margin-top:28px;max-width:80ch}
.faq details{border-bottom:1px solid var(--gris-trait);padding:4px 0}
.faq summary{cursor:pointer;list-style:none;padding:20px 34px 20px 0;position:relative;font-family:var(--f-titre);font-weight:600;font-size:1.15rem;letter-spacing:.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:16px;font-size:1.6rem;color:var(--denim);font-weight:400;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{padding:0 34px 20px 0;margin:0;color:var(--gris)}
.autres{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:28px}
.zone{background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);padding:26px 30px;margin-top:28px}
.zone p{margin:0}
.lien-rea{font-family:var(--f-titre);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:var(--denim-fonce);margin-top:14px;display:inline-block}

/* ---------- Variations de gabarit ---------- */
body.g-accueil,body.g-liste{margin:0;background:var(--blanc);color:var(--gris);font-family:var(--f-corps);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
body.g-liste,body.g-prestation,body.g-projet,body.g-texte{margin:0;background:#fff;color:var(--gris);font-family:var(--f-corps);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
body.g-accueil .section{padding:96px 0}
body.g-prestation .section,body.g-texte .section{padding:80px 0}
body.g-projet .section{padding:72px 0}
body.g-accueil h2.titre{font-size:clamp(1.9rem,3.6vw,2.6rem);text-transform:uppercase;letter-spacing:.02em}
body.g-prestation h2.titre,body.g-texte h2.titre{font-size:clamp(1.7rem,3.2vw,2.3rem);text-transform:uppercase;letter-spacing:.02em}
body.g-projet h2.titre{font-size:clamp(1.6rem,3vw,2.1rem);text-transform:uppercase;letter-spacing:.02em}
body.g-accueil .chapo{max-width:66ch;color:var(--gris);font-size:1.08rem}
body.g-projet .chapo,body.g-texte .chapo{max-width:70ch;font-size:1.05rem}
body.g-prestation .chapo{max-width:68ch;font-size:1.05rem}
body.g-accueil .menu{display:flex;gap:26px;margin-left:auto;align-items:center}
body.g-liste .menu,body.g-prestation .menu,body.g-projet .menu,body.g-texte .menu{display:flex;gap:26px;margin-left:auto;align-items:center;flex-wrap:wrap}
body.g-accueil .poles{margin-top:72px;background:#fff;border-radius:var(--r) var(--r) 0 0;box-shadow:var(--ombre);display:grid;grid-template-columns:repeat(4,1fr)}
body.g-projet .poles{margin-top:64px;background:#fff;border-radius:var(--r) var(--r) 0 0;box-shadow:var(--ombre);display:grid;grid-template-columns:repeat(4,1fr)}
body.g-accueil .pole{padding:30px 22px;text-align:center;border-right:1px solid var(--gris-trait);text-decoration:none;color:inherit;transition:background .2s}
body.g-projet .pole{padding:28px 20px;text-align:center;border-right:1px solid var(--gris-trait);text-decoration:none;color:inherit;transition:background .2s}
body.g-accueil .pole svg{width:52px;height:52px;color:var(--denim);margin-bottom:10px}
body.g-projet .pole svg{width:48px;height:48px;color:var(--denim);margin-bottom:10px}
body.g-accueil .pole b{display:block;font-family:var(--f-titre);font-size:1.15rem;text-transform:uppercase;letter-spacing:.06em}
body.g-projet .pole b{display:block;font-family:var(--f-titre);font-size:1.1rem;text-transform:uppercase;letter-spacing:.06em}
body.g-accueil .pole span{font-size:.85rem;color:var(--gris-moyen);line-height:1.4;display:block;margin-top:4px}
body.g-projet .pole span{font-size:.83rem;color:var(--gris-moyen);line-height:1.4;display:block;margin-top:4px}
body.g-accueil .declaration{font-family:var(--f-titre);font-weight:600;font-size:clamp(1.6rem,3.4vw,2.4rem);line-height:1.25;color:var(--denim-fonce);max-width:24ch;margin:24px 0 0;border-left:5px solid var(--bleu-clair);padding-left:28px}
body.g-projet .declaration{font-family:var(--f-titre);font-weight:600;font-size:clamp(1.5rem,3.2vw,2.2rem);line-height:1.28;color:var(--denim-fonce);max-width:26ch;margin:22px 0 0;border-left:5px solid var(--bleu-clair);padding-left:26px}
body.g-accueil .principes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px;margin-top:56px}
body.g-projet .principes{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:30px;margin-top:44px}
body.g-accueil .principe h3{font-size:1.15rem;text-transform:uppercase;letter-spacing:.06em;padding-top:20px;border-top:3px solid var(--denim);margin-bottom:10px}
body.g-projet .principe h3{font-size:1.12rem;text-transform:uppercase;letter-spacing:.05em;padding-top:18px;border-top:3px solid var(--denim);margin-bottom:10px}
body.g-accueil .principe p{font-size:.96rem;color:var(--gris-moyen);margin:0}
body.g-projet .principe p{font-size:.95rem;color:var(--gris-moyen);margin:0}
body.g-accueil .tags{display:flex;flex-wrap:wrap;gap:10px}
body.g-projet .tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
body.g-accueil .tag{background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);padding:9px 16px;font-size:.95rem;transition:border-color .18s,color .18s}
body.g-projet .tag{background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);padding:8px 15px;font-size:.93rem}
body.g-accueil .ref{background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);padding:22px 16px 14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:120px;transition:box-shadow .2s,border-color .2s}
body.g-projet .ref{background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);padding:20px 14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:110px}
body.g-accueil .ref img{max-height:44px;max-width:100%;width:auto;object-fit:contain;display:block}
body.g-projet .ref img{max-height:40px;max-width:100%;object-fit:contain}
body.g-accueil .ref span{font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--gris-moyen);text-align:center;line-height:1.3}
body.g-projet .ref span{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--gris-moyen);text-align:center}
body.g-accueil .chiffres-grand{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px;margin-top:36px}
body.g-projet .chiffres-grand{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:26px;margin-top:34px}
body.g-accueil .cg{border-top:3px solid var(--denim);padding-top:22px}
body.g-projet .cg{border-top:3px solid var(--denim);padding-top:20px}
body.g-accueil .cg b{display:block;font-family:var(--f-titre);font-size:clamp(2.6rem,5vw,3.6rem);font-weight:700;line-height:1;color:var(--denim);letter-spacing:-.02em}
body.g-projet .cg b{display:block;font-family:var(--f-titre);font-size:clamp(2.4rem,4.6vw,3.4rem);font-weight:700;line-height:1;color:var(--denim);letter-spacing:-.02em}
body.g-accueil .cg span{display:block;font-size:.95rem;color:var(--gris-moyen);margin-top:12px}
body.g-projet .cg span{display:block;font-size:.93rem;color:var(--gris-moyen);margin-top:11px}
body.g-accueil .etapes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;margin-top:44px;counter-reset:e}
body.g-projet .etapes{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
body.g-accueil .etape{position:relative;padding-top:28px;border-top:2px solid var(--bleu-clair)}
body.g-texte .etape{border-left:3px solid var(--bleu-clair);padding-left:16px;position:relative}
body.g-projet .etape{font-family:var(--f-titre);font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);padding:10px 16px;color:var(--gris-moyen)}
body.g-accueil .etape p{font-size:.93rem;color:var(--gris-moyen);margin:0}
body.g-texte .etape p{margin:0;font-size:.9rem;color:var(--gris-moyen)}
body.g-accueil .recap{margin-top:44px;background:var(--bleu-pale);border-radius:var(--r);padding:24px 28px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}
body.g-liste .recap{background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);box-shadow:var(--ombre);padding:26px}
body.g-accueil .filtres{display:flex;flex-wrap:wrap;gap:10px;margin:32px 0 28px}
body.g-liste .filtres{display:flex;flex-wrap:wrap;gap:9px}
body.g-accueil .filtre{font-family:var(--f-titre);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.82rem;padding:9px 18px;border:1px solid var(--gris-trait);background:#fff;border-radius:var(--r);cursor:pointer;color:var(--gris);transition:all .18s}
body.g-liste .filtre{font-family:var(--f-titre);font-weight:600;text-transform:uppercase;letter-spacing:.09em;font-size:.8rem;padding:9px 17px;border:1px solid var(--gris-trait);background:#fff;border-radius:var(--r);cursor:pointer;color:var(--gris);transition:all .18s}
body.g-accueil .rea-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}
body.g-prestation .rea-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-top:28px}
body.g-accueil .rea,body.g-prestation .rea{background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
body.g-liste .rea{background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}
body.g-prestation .rea{background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);text-decoration:none;color:inherit;display:block;transition:transform .2s,box-shadow .2s}
body.g-accueil .rea-photo span,body.g-prestation .rea-photo span{font-size:.8rem;color:var(--gris-moyen)}
body.g-liste .rea-photo span{font-size:.79rem;color:var(--gris-moyen)}
body.g-accueil .rea-corps{padding:26px;flex:1;display:flex;flex-direction:column}
body.g-liste .rea-corps,body.g-prestation .rea-corps{padding:24px;flex:1;display:flex;flex-direction:column}
body.g-accueil .etiq{align-self:flex-start;font-family:var(--f-titre);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.14em;color:var(--denim-fonce);background:var(--bleu-pale);padding:5px 10px;border-radius:2px}
body.g-projet .etiq{font-family:var(--f-titre);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.13em;color:var(--denim-fonce);background:#fff;padding:6px 11px;border-radius:2px}
body.g-liste .etiq{font-family:var(--f-titre);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;color:var(--denim-fonce);background:var(--bleu-pale);padding:5px 9px;border-radius:2px}
body.g-prestation .etiq{align-self:flex-start;font-family:var(--f-titre);font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:.14em;color:var(--denim-fonce);background:var(--bleu-pale);padding:5px 10px;border-radius:2px}
body.g-accueil .rea h3,body.g-liste .rea h3{font-size:1.2rem;margin:14px 0 8px}
body.g-prestation .rea h3{font-size:1.15rem;margin:12px 0 8px}
body.g-accueil .rea p{font-size:.94rem;color:var(--gris-moyen)}
body.g-liste .rea p,body.g-prestation .rea p{font-size:.93rem;color:var(--gris-moyen);margin:0}
body.g-accueil .tech{font-size:.78rem;letter-spacing:.03em;border:1px solid var(--gris-trait);border-radius:2px;padding:3px 9px;color:var(--gris-moyen)}
body.g-liste .tech{font-size:.77rem;letter-spacing:.03em;border:1px solid var(--gris-trait);border-radius:2px;padding:3px 9px;color:var(--gris-moyen)}
body.g-accueil .chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:32px}
body.g-projet .chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:28px;margin-top:36px}
body.g-projet .chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:28px;margin-top:36px}
body.g-accueil .chiffre b{display:block;font-family:var(--f-titre);font-size:3rem;font-weight:700;line-height:1;color:var(--denim)}
body.g-projet .chiffre b{display:block;font-family:var(--f-titre);font-size:2.4rem;font-weight:700;line-height:1;color:var(--denim)}
body.g-projet .chiffre b{display:block;font-family:var(--f-titre);font-size:2.5rem;font-weight:700;line-height:1;color:var(--denim)}
body.g-projet .chiffre b{display:block;font-family:var(--f-titre);font-size:2.6rem;font-weight:700;line-height:1;color:var(--denim)}
body.g-accueil .chiffre span{font-size:.95rem;color:var(--gris-moyen)}
body.g-projet .chiffre span{font-size:.92rem;color:var(--gris-moyen)}
body.g-projet .chiffre span{font-size:.93rem;color:var(--gris-moyen)}
body.g-accueil .techno-groupes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px;margin-top:40px}
body.g-prestation .techno-groupes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:28px;margin-top:28px}
body.g-accueil .techno-groupes h3{font-size:1rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gris-moyen);padding-bottom:8px;border-bottom:1px solid var(--gris-trait);margin-bottom:14px}
body.g-prestation .techno-groupes h3{font-size:.95rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gris-moyen);padding-bottom:8px;border-bottom:1px solid var(--gris-trait);margin-bottom:14px}
body.g-accueil .cta{background:var(--gris);color:#fff;padding:80px 0}
body.g-liste .cta,body.g-prestation .cta,body.g-projet .cta,body.g-texte .cta{background:var(--gris);color:#fff;padding:72px 0}
body.g-accueil .cta h2{font-size:clamp(1.8rem,3.4vw,2.5rem);text-transform:uppercase;letter-spacing:.02em;margin-bottom:16px}
body.g-liste .cta h2,body.g-prestation .cta h2,body.g-projet .cta h2,body.g-texte .cta h2{font-size:clamp(1.7rem,3.2vw,2.3rem);text-transform:uppercase;letter-spacing:.02em;margin-bottom:16px}
body.g-accueil .cta p{color:#D8DBDD;max-width:58ch;font-size:1.08rem}
body.g-liste .cta p,body.g-prestation .cta p,body.g-projet .cta p,body.g-texte .cta p{color:#D8DBDD;max-width:58ch;font-size:1.05rem}
body.g-accueil .cta-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
body.g-liste .cta-actions,body.g-prestation .cta-actions,body.g-projet .cta-actions,body.g-texte .cta-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}
body.g-accueil .pied{background:#333;color:#C9CDCF;padding:64px 0 32px;font-size:.95rem}
body.g-liste .pied,body.g-prestation .pied,body.g-projet .pied,body.g-texte .pied{background:#333;color:#C9CDCF;padding:56px 0 28px;font-size:.95rem}
body.g-accueil .pied .logo-pied{width:200px;margin-bottom:20px}
body.g-liste .pied .logo-pied,body.g-prestation .pied .logo-pied,body.g-projet .pied .logo-pied,body.g-texte .pied .logo-pied{width:190px;margin-bottom:18px}
body.g-accueil .pied a{color:#C9CDCF;text-decoration:none}
body.g-liste .pied a,body.g-prestation .pied a,body.g-projet .pied a,body.g-texte .pied a{color:#C9CDCF}
body.g-accueil .bas{border-top:1px solid #4a4a4a;margin-top:44px;padding-top:22px;font-size:.85rem;color:#9a9ea0;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}
body.g-liste .bas,body.g-prestation .bas,body.g-projet .bas,body.g-texte .bas{border-top:1px solid #4a4a4a;margin-top:32px;padding-top:20px;font-size:.85rem;color:#9a9ea0}
body.g-prestation .bandeau,body.g-texte .bandeau{background:var(--bleu-pale);padding:56px 0 64px;position:relative;overflow:hidden}
body.g-liste .bandeau{background:var(--bleu-pale);padding:64px 0 56px;position:relative;overflow:hidden}
body.g-projet .bandeau{background:var(--bleu-pale);padding:48px 0 56px;position:relative;overflow:hidden}
body.g-liste .bandeau{background:var(--bleu-pale);padding:52px 0 56px;position:relative;overflow:hidden}
body.g-prestation .bandeau::before,body.g-texte .bandeau::before{content:"";position:absolute;top:-170px;right:-110px;width:480px;height:480px;border-radius:50%;background:var(--bleu-clair);opacity:.28}
body.g-liste .bandeau::before{content:"";position:absolute;top:-160px;right:-100px;width:460px;height:460px;border-radius:50%;background:var(--bleu-clair);opacity:.28}
body.g-projet .bandeau::before{content:"";position:absolute;top:-180px;right:-120px;width:480px;height:480px;border-radius:50%;background:var(--bleu-clair);opacity:.28}
body.g-liste .bandeau::before{content:"";position:absolute;top:-170px;right:-110px;width:470px;height:470px;border-radius:50%;background:var(--bleu-clair);opacity:.28}
body.g-prestation .fil,body.g-texte .fil{font-size:.85rem;color:var(--denim-fonce);margin-bottom:22px}
body.g-liste .fil,body.g-projet .fil{font-size:.85rem;color:var(--denim-fonce);margin-bottom:20px}
body.g-prestation .bandeau h1,body.g-texte .bandeau h1{font-size:clamp(2rem,4.4vw,3.1rem);margin-bottom:16px}
body.g-liste .bandeau h1{font-size:clamp(2.2rem,4.6vw,3.4rem);margin-bottom:16px}
body.g-projet .bandeau h1{font-size:clamp(1.9rem,4vw,2.9rem);margin-bottom:16px}
body.g-liste .bandeau h1{font-size:clamp(2rem,4.4vw,3rem);margin-bottom:14px}
body.g-texte .bandeau .accroche{max-width:62ch;font-size:1.15rem}
body.g-projet .bandeau .accroche{max-width:62ch;font-size:1.12rem}
body.g-prestation .bandeau .accroche{max-width:60ch;font-size:1.15rem}
body.g-texte .phase{background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);overflow:hidden}
body.g-prestation .phase{display:grid;grid-template-columns:64px 1fr;gap:24px;padding:26px 0;border-bottom:1px solid var(--gris-trait)}
body.g-texte .etape-num{font-family:var(--f-titre);font-weight:700;font-size:.78rem;letter-spacing:.14em;color:var(--denim)}
body.g-liste .etape-num{font-family:var(--f-titre);font-weight:700;font-size:.9rem;letter-spacing:.14em;color:var(--denim-fonce);background:var(--bleu-pale);padding:3px 10px;border-radius:2px}
body.g-texte .note{background:var(--bleu-pale);border-left:4px solid var(--denim);padding:20px 26px;border-radius:0 var(--r) var(--r) 0;margin-top:32px}
body.g-projet .note{background:var(--bleu-pale);border-left:4px solid var(--denim);padding:20px 26px;border-radius:0 var(--r) var(--r) 0;margin-top:32px;font-size:.95rem}
body.g-texte .texte{max-width:78ch}
body.g-projet .texte{max-width:80ch}
body.g-texte .texte h2{font-size:1.5rem;text-transform:uppercase;letter-spacing:.03em;margin:56px 0 16px;padding-top:20px;border-top:3px solid var(--denim)}
body.g-projet .texte h2{font-size:1.45rem;text-transform:uppercase;letter-spacing:.03em;margin:48px 0 14px;padding-top:18px;border-top:3px solid var(--denim)}
body.g-liste .bandeau p{max-width:62ch;font-size:1.12rem}
body.g-liste .bandeau p{max-width:64ch;font-size:1.1rem}
body.g-liste .colonnes{display:grid;grid-template-columns:1fr 340px;gap:56px;align-items:start;padding:72px 0 96px}
body.g-prestation .colonnes{display:grid;grid-template-columns:1fr 300px;gap:56px;align-items:start}
body.g-projet .etiqs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
body.g-liste .etiqs{display:flex;flex-wrap:wrap;gap:6px}
body.g-projet .galerie{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:32px}
body.g-projet .galerie{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px;margin-top:32px;align-items:start}
body.g-projet .vue{display:grid;grid-template-columns:340px 1fr;background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);overflow:hidden;margin-bottom:16px}
body.g-projet .vue{display:grid;grid-template-columns:340px 1fr;gap:0;background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);overflow:hidden;margin-bottom:16px}
body.g-projet .photo-unique{margin:32px 0 0;background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);overflow:hidden;display:grid;grid-template-columns:minmax(0,420px) 1fr;align-items:stretch}
body.g-projet .photo-unique{margin:32px 0 0;background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);overflow:hidden;display:grid;grid-template-columns:minmax(0,460px) 1fr;align-items:stretch}
body.g-projet .photo-unique{margin:32px 0 0;background:#fff;border:1px solid var(--gris-trait);border-radius:var(--r);overflow:hidden}
body.g-projet .photo-unique img{width:100%;height:100%;object-fit:cover;display:block}
body.g-projet .photo-unique img{width:100%;height:auto;display:block}
body.g-projet .photo-unique figcaption{padding:28px 32px;font-size:.94rem;color:var(--gris-moyen);line-height:1.6;align-self:center}
body.g-projet .photo-unique figcaption{padding:20px 26px;font-size:.92rem;color:var(--gris-moyen);line-height:1.6}
body.g-projet .photo-unique figcaption strong{color:var(--gris);display:block;margin-bottom:10px}
body.g-projet .photo-unique figcaption strong{color:var(--gris)}
body.g-projet .avant-apres{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:32px}
body.g-projet .avant-apres{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:32px}

/* ---------- Requêtes média ---------- */
@media (max-width:960px){
  .hero-grille,.deux-col{grid-template-columns:1fr;gap:36px}
  .pole:nth-child(2){border-right:0}
  .pole:nth-child(1),.pole:nth-child(2){border-bottom:1px solid var(--gris-trait)}
  .pied-grille{grid-template-columns:1fr 1fr}
  .aside{position:static}
  .duo{grid-template-columns:1fr}
  .sommaire{position:static}
  .bandeau-grille{grid-template-columns:1fr;gap:18px}
  .bandeau-picto svg{width:64px;height:64px}
  body.g-accueil .poles,body.g-liste .poles,body.g-prestation .poles,body.g-projet .poles,body.g-texte .poles{grid-template-columns:repeat(2,1fr)}
  body.g-liste .colonnes{grid-template-columns:1fr;gap:40px;padding:48px 0 72px}
  body.g-prestation .colonnes{grid-template-columns:1fr;gap:40px}
  body.g-accueil .menu,body.g-liste .menu,body.g-prestation .menu,body.g-projet .menu,body.g-texte .menu{display:none}
}
@media (max-width:900px){
  .phases{grid-template-columns:1fr}
  .recit,.deux{grid-template-columns:1fr;gap:32px}
  .photo.large{grid-column:span 1;aspect-ratio:4/3}
  .photo-reelle.large{grid-column:span 1}
  body.g-accueil .menu,body.g-liste .menu,body.g-prestation .menu,body.g-projet .menu,body.g-texte .menu{display:none}
}
@media (max-width:760px){
  .vue-media{aspect-ratio:16/10}
  .vue-texte{padding:20px 22px}
  body.g-accueil .vue,body.g-liste .vue,body.g-prestation .vue,body.g-projet .vue,body.g-texte .vue{grid-template-columns:1fr}
  body.g-accueil .photo-unique,body.g-liste .photo-unique,body.g-prestation .photo-unique,body.g-projet .photo-unique,body.g-texte .photo-unique{grid-template-columns:1fr}
  body.g-accueil .avant-apres,body.g-liste .avant-apres,body.g-prestation .avant-apres,body.g-projet .avant-apres,body.g-texte .avant-apres{grid-template-columns:1fr}
}
@media (max-width:720px){
  .menu.ouvert{display:flex}
  .menu a{padding:12px 0;width:100%}
  .burger{display:block}
  .entete .wrap{position:relative}
  .pied-grille{grid-template-columns:1fr}
  body.g-accueil .menu,body.g-liste .menu,body.g-prestation .menu,body.g-projet .menu,body.g-texte .menu{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;align-items:flex-start;gap:0;padding:12px 24px 20px;border-bottom:1px solid var(--gris-trait)}
  body.g-accueil .section,body.g-liste .section,body.g-prestation .section,body.g-projet .section,body.g-texte .section{padding:64px 0}
  body.g-accueil .poles,body.g-liste .poles,body.g-prestation .poles,body.g-projet .poles,body.g-texte .poles{grid-template-columns:1fr}
  body.g-accueil .pole,body.g-liste .pole,body.g-prestation .pole,body.g-projet .pole,body.g-texte .pole{border-right:0;border-bottom:1px solid var(--gris-trait)}
}
@media (max-width:620px){
  .texte dl{grid-template-columns:1fr;gap:0}
  .texte dt{border-bottom:0;padding-bottom:0}
}
@media (max-width:520px){
  .partenaire{grid-template-columns:1fr;gap:14px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important}
  .rea:hover{transform:none}
}

/* ---------- Compléments (menu mobile, formulaire) ---------- */

/* ---------------------------------------------------------------
   Polices hébergées localement.
   Les charger depuis Google Fonts transmettrait l'adresse IP de
   chaque visiteur à un service hors Union européenne, ce que la
   politique de confidentialité exclut explicitement.
   font-display:swap : le texte reste lisible pendant le chargement.
   --------------------------------------------------------------- */
@font-face{font-family:"Barlow";font-style:normal;font-weight:400;font-display:swap;
  src:url("/assets/fonts/Barlow-Regular.woff2") format("woff2")}
@font-face{font-family:"Barlow";font-style:normal;font-weight:500;font-display:swap;
  src:url("/assets/fonts/Barlow-Medium.woff2") format("woff2")}
@font-face{font-family:"Barlow";font-style:normal;font-weight:600;font-display:swap;
  src:url("/assets/fonts/Barlow-SemiBold.woff2") format("woff2")}
@font-face{font-family:"Barlow Semi Condensed";font-style:normal;font-weight:400;font-display:swap;
  src:url("/assets/fonts/BarlowSemiCondensed-Regular.woff2") format("woff2")}
@font-face{font-family:"Barlow Semi Condensed";font-style:normal;font-weight:500;font-display:swap;
  src:url("/assets/fonts/BarlowSemiCondensed-Medium.woff2") format("woff2")}
@font-face{font-family:"Barlow Semi Condensed";font-style:normal;font-weight:600;font-display:swap;
  src:url("/assets/fonts/BarlowSemiCondensed-SemiBold.woff2") format("woff2")}
@font-face{font-family:"Barlow Semi Condensed";font-style:normal;font-weight:700;font-display:swap;
  src:url("/assets/fonts/BarlowSemiCondensed-Bold.woff2") format("woff2")}
/* ---------------------------------------------------------------
   Accessibilité : contrastes portés au seuil WCAG AA (4,5:1).
   Les aplats et bordures gardent le bleu de marque #357CBC ;
   seules les couleurs de TEXTE sont ajustées.
   --------------------------------------------------------------- */
:root{
  --gris-moyen:#616466;      /* était #909293 : 2,81:1. Valide sur blanc, gris clair et bleu pâle. */
  --texte-bleu:var(--denim-fonce);
  --bleu-sur-fonce:#8CBCE4;  /* était #75ABDB — 3,99:1 sur #444 */
}
.surtitre{color:var(--texte-bleu)}
a{color:var(--denim-fonce)}
.pied a,.bas a{color:var(--bleu-sur-fonce)}
.etape-num,.vue-num,.chiffre b,.stat b{color:var(--texte-bleu)}

/* Lien d'évitement : premier élément focusable, invisible tant qu'il n'a pas le focus. */
.evitement{position:absolute;left:-9999px;top:0;z-index:100;background:var(--denim-fonce);
  color:#fff;padding:12px 20px;border-radius:0 0 var(--r) 0;font-family:var(--f-titre);
  font-weight:600;text-transform:uppercase;letter-spacing:.06em;text-decoration:none}
.evitement:focus{left:0}

/* --- Menu mobile --- */
.burger{display:none;margin-left:auto;font-family:var(--f-titre);font-weight:600;
  text-transform:uppercase;letter-spacing:.08em;font-size:.9rem;background:transparent;
  border:2px solid var(--gris-trait);border-radius:var(--r);padding:9px 16px;cursor:pointer;color:var(--gris)}
.burger[aria-expanded="true"]{border-color:var(--denim);color:var(--denim-fonce)}
@media (max-width:860px){
  .burger{display:block}
  body .entete .menu{display:none;width:100%;flex-direction:column;align-items:flex-start;
    gap:2px;margin:14px 0 4px;border-top:1px solid var(--gris-trait);padding-top:12px}
  body .entete .menu.ouvert{display:flex}
  body .entete .menu a{width:100%;padding:10px 0}
}

/* --- Formulaire : champ piège et retour utilisateur --- */
.depot-champ{width:100%;padding:14px;border:1px dashed var(--gris-trait);border-radius:var(--r);
  background:#fff;font-family:var(--f-corps);font-size:.95rem;cursor:pointer}
.depot-champ:hover{border-color:var(--bleu-clair)}
.depot-champ:focus-visible{outline:3px solid var(--denim);outline-offset:2px}
.oblig{color:var(--denim)}
input:user-invalid,textarea:user-invalid{border-color:#C98A8A}
button[type="submit"][disabled]{opacity:.6;cursor:progress}
.piege{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.retour{margin:14px 0 0;padding:12px 16px;border-radius:var(--r);font-size:.95rem;display:none}
.retour.ok,.retour.ko{display:block}
.retour.ok{background:#E8F3E8;border:1px solid #7FB07F;color:#2F5D2F}
.retour.ko{background:#FBEAEA;border:1px solid #C98A8A;color:#8A2F2F}

/* --- Garde-fous responsive --- */
img,svg,video,table{max-width:100%}

/* Le conteneur <picture> ne doit pas s'intercaler dans les mises en page
   flex ou grid : display:contents rend l'image enfant direct de son parent,
   comme lorsque les images étaient posées sans conteneur. */
picture{display:contents}
.titre-pied{font-family:var(--f-titre);font-weight:600;font-size:.9rem;text-transform:uppercase;
  letter-spacing:.12em;color:#fff;margin:0 0 14px}
.groupe-radios{border:0;padding:0;margin:0;min-inline-size:0}
.groupe-radios legend{padding:0;font-family:var(--f-titre);font-weight:600;font-size:.95rem;
  text-transform:uppercase;letter-spacing:.05em;color:var(--gris);margin-bottom:10px}

/* Contrastes sur fonds colorés : le gris et le bleu de marque ne passent pas
   sur le bleu pâle (#DCE9F4) ni sur le gris foncé (#444). */
/* Fond bleu pâle : le texte doit rester foncé. */
.pale .surtitre{color:var(--denim-fonce)}
/* Fond gris foncé : bleu éclairci pour atteindre 4,84:1. */
.cta .surtitre,.surtitre-fonce{color:var(--bleu-sur-fonce)}
/* Vignettes de remplacement sur fond bleu pâle : le bleu de marque n'y atteint
   que 3,57:1. Classe doublée pour passer devant les règles de gabarit. */
.rea-photo.rea-photo strong,.voisin-photo.voisin-photo,.photo.photo strong{color:var(--denim-fonce)}

/* Cibles tactiles : sur mobile, les liens du pied de page et du fil d'Ariane
   font 16 à 20 px de haut. Le seuil recommandé est 24 px (WCAG 2.2, 2.5.8). */
@media (max-width:760px){
  .pied-grille a,.bas a,.fil a{display:inline-block;min-height:24px;line-height:24px}
  .pied-grille li{margin-bottom:6px}
  .bas a{padding:2px 0}
}
/* Liens en pleine ligne dans le corps de texte : même exigence. */
@media (max-width:760px){
  main p a,main li a,main dd a,.aide a,.consent a,.promesse a,.chapo a{
    display:inline-block;min-height:24px;line-height:1.5}
  .evitement{min-height:0}
}

/* Bandeau de préproduction : volontairement voyant, pour qu'on ne confonde
   jamais cet environnement avec le site en ligne. */
.bandeau-preprod{position:sticky;top:0;z-index:200;background:#8A2F2F;color:#fff;
  padding:10px 20px;font-size:.88rem;line-height:1.4;display:flex;gap:12px;
  align-items:baseline;flex-wrap:wrap}
.bandeau-preprod strong{font-family:var(--f-titre);text-transform:uppercase;
  letter-spacing:.1em;white-space:nowrap}
.bandeau-preprod span{opacity:.92}
@media print{.bandeau-preprod{display:none}}

/* Fil d'Ariane : c'est un <p> placé dans .bandeau, il héritait donc de la
   taille du chapeau sur les pages liste (17,6 px au lieu de 13,6). Sélecteur
   volontairement spécifique pour passer devant les règles de gabarit. */
body[class] .bandeau p.fil,
body[class] p.fil{font-size:.85rem;line-height:1.5;margin:0 0 22px;color:var(--denim-fonce);max-width:none}

/* Espacement vertical des sections.
   Les maquettes du gabarit « liste » n'employaient pas .section : les pages
   /savoir-faire/ et /l-entreprise/, construites après coup, se retrouvaient
   sans aucune respiration. Valeur de repli alignée sur les autres gabarits. */
body.g-liste .section{padding:72px 0}
@media (max-width:760px){
  body.g-liste .section{padding:52px 0}
}

/* L'attribut hidden vaut display:none, mais une règle display: explicite
   le neutralise. Les cartes de réalisation sont en flex ou en block : sans
   cette ligne, les filtres cochent les boutons sans rien masquer. */
[hidden]{display:none!important}

/* Cadrage des images dans les conteneurs à ratio fixe.
   height:100% dans un parent dont la hauteur découle d'aspect-ratio est
   une hauteur indéfinie : l'image reprend alors son ratio d'origine et les
   vignettes prennent des hauteurs différentes. On fixe le ratio sur l'image. */
.rea-photo img,.voisin-photo img{width:100%;height:100%;aspect-ratio:16/10;
  object-fit:cover;object-position:center;display:block}
.photo img,.vue-media img,.hero-visuel img{width:100%;height:100%;aspect-ratio:4/3;
  object-fit:cover;object-position:center;display:block}
.vue-media.large img,.photo.large img{aspect-ratio:16/9}

/* Blocs de chiffres : les maquettes ne les définissaient que pour l'accueil et
   les fiches projet. Sur les pages du gabarit « liste », le nombre et son
   libellé se retrouvaient collés sur la même ligne (« 152armoires »). */
body.g-liste .chiffre b,body.g-texte .chiffre b,body.g-prestation .chiffre b{
  display:block;font-family:var(--f-titre);font-size:2.6rem;font-weight:700;
  line-height:1;color:var(--denim-fonce)}
body.g-liste .cg b,body.g-texte .cg b,body.g-prestation .cg b{
  display:block;font-family:var(--f-titre);font-size:clamp(2.4rem,4.6vw,3.4rem);
  font-weight:700;line-height:1;color:var(--denim-fonce);letter-spacing:-.02em}
body.g-liste .chiffre span,body.g-texte .chiffre span,body.g-prestation .chiffre span{
  display:block;font-size:.95rem;color:var(--gris-moyen);margin-top:10px}

/* Page de demande de devis : la version anglaise est rattachée à un autre
   gabarit que la française et se retrouvait sans marge sous le bandeau,
   le formulaire collé au fond bleu. On aligne les deux. */
body.g-projet .colonnes{display:grid;grid-template-columns:1fr 340px;gap:56px;
  align-items:start;padding:72px 0 96px}
@media (max-width:900px){
  body.g-projet .colonnes{grid-template-columns:1fr;gap:40px;padding:48px 0 72px}
}

/* Visuel d'accueil : le cadre en pointillés et le fond blanc étaient ceux de
   l'emplacement vide. Une fois la photo posée, ils n'ont plus lieu d'être. */
.hero-visuel:has(img){padding:0;border:0;background:transparent;aspect-ratio:16/10;overflow:hidden}
.hero-visuel:has(img) img{width:100%;height:100%;aspect-ratio:16/10;object-fit:cover;
  border-radius:var(--r);box-shadow:var(--ombre);display:block}

/* Page méthode : la pastille numérotée venait d'un compteur CSS partagé avec
   les phases, et affichait « 02 » en face de « Étape 01 ». Le libellé écrit
   dans le HTML est juste : on ne garde que lui. */
body.g-texte .etape::before,body.g-texte .phase::before{content:none}
body.g-texte .etape{padding-top:0}
/* Le bleu de marque n'atteint que 4,41:1 sur blanc en petit texte.
   Sélecteur scopé pour passer devant la règle de gabarit. */
body[class] .etape-num{color:var(--denim-fonce)}

/* ---------------------------------------------------------------
   Diaporama du visuel d'accueil : deux vues d'atelier en fondu.
   Les images sont superposées ; seule la vue active est opaque.
   Sans JavaScript, la première reste affichée : le bloc n'est
   jamais vide.
   --------------------------------------------------------------- */
.hero-visuel:has(.diapo){padding:0;border:0;background:transparent;
  aspect-ratio:16/10;overflow:hidden;border-radius:var(--r);box-shadow:var(--ombre)}
.diapo{list-style:none;margin:0;padding:0;position:relative;width:100%;height:100%}
.diapo li{position:absolute;inset:0;opacity:0;transition:opacity .9s ease-in-out}
.diapo li.vue-active{opacity:1}
.diapo img{width:100%;height:100%;aspect-ratio:16/10;object-fit:cover;display:block}

/* Repères de position, discrets, en bas à droite */
.diapo-points{position:absolute;right:8px;bottom:8px;display:flex;gap:2px;z-index:2}
/* Le point mesure 9 px, mais la zone tactile doit faire 24 px : on garde
   l'apparence et on élargit la cible avec un remplissage transparent. */
.diapo-points button{width:24px;height:24px;padding:0;border:0;background:none;
  cursor:pointer;display:grid;place-items:center}
.diapo-points button::before{content:"";width:9px;height:9px;border-radius:50%;
  background:rgba(255,255,255,.55);transition:background .3s;
  box-shadow:0 0 3px rgba(0,0,0,.35)}
.diapo-points button[aria-current="true"]::before{background:#fff}
.diapo-points button:focus-visible{outline:2px solid #fff;outline-offset:3px}

/* Mouvement réduit : on n'anime plus, on affiche la première vue. */
@media (prefers-reduced-motion:reduce){
  .diapo li{transition:none}
  .diapo-points{display:none}
}

