@font-face{font-family:"Hanken";src:url(/polices/hanken-grotesk-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Plex Mono";src:url(/polices/ibm-plex-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
:root{--bleu:#345d95;--bleu-2:#4f78ae;--bleu-3:#7ea3d0;--bleu-pale:#eef3f9;--vert:#75be4d;--vert-2:#5f9e38;--encre:#16202e;--gris:#5b6473;--trait:#e1e7ef;--erreur:#b42318;--m:1.25rem;--max:88rem;--r:18px;--espace:4.5rem;--sortie:cubic-bezier(.16,1,.3,1);--sans:"Hanken",system-ui,sans-serif;--mono:"Plex Mono",ui-monospace,monospace}
@media (min-width:48rem){
.methode-liste{grid-template-columns:repeat(2,minmax(0,1fr))}
.secteurs-liste{grid-template-columns:repeat(2,minmax(0,1fr))}
.dessin-photo .cadre{grid-template-columns:1fr 1fr}
.dp-texte{grid-column:1/-1}:root{--m:2.5rem;--espace:6.5rem}}
@media (min-width:75rem){:root{--m:4rem;--espace:8rem}}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scrollbar-color:var(--bleu) var(--bleu-pale);accent-color:var(--bleu);caret-color:var(--bleu)}
body{margin:0;background:#fff;color:var(--encre);font:400 1.0625rem/1.65 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--bleu);color:#fff}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.03em;line-height:1.08;text-wrap:balance}
h1{font-size:clamp(2.6rem,5.4vw,5rem)}
h2{font-size:clamp(1.9rem,3.6vw,3.2rem)}
p{margin:0 0 1em;text-wrap:pretty}
ul,ol{list-style:none;margin:0;padding:0}
figure{margin:0}
strong{font-weight:600}
.bleu{color:var(--bleu)}
.num,.ix-num,.ix-annee,.cartouche dd,.compteur{font-variant-numeric:tabular-nums}
.num{font-family:var(--mono);font-size:.8rem;color:var(--bleu)}
:focus-visible{outline:2px solid var(--bleu);outline-offset:3px;border-radius:4px}
.evitement{position:absolute;left:var(--m);top:-4rem;z-index:30;background:var(--bleu);color:#fff;padding:.75rem 1rem;border-radius:999px;transition:top .2s var(--sortie)}
.evitement:focus{top:.75rem}
.cadre{max-width:var(--max);margin:0 auto;padding:0 var(--m)}
main>section{padding-left:var(--m);padding-right:var(--m)}
main>section>*{max-width:var(--max);margin-left:auto;margin-right:auto}
main>section:has(>.cadre){padding-left:0;padding-right:0}
main>section>.cadre{max-width:var(--max)}
/* boutons et liens */
.btn,.bouton{display:inline-flex;align-items:center;gap:.6rem;min-height:3rem;padding:.9rem 1.5rem;border:0;border-radius:999px;background:var(--bleu);color:#fff;font:600 1rem var(--sans);cursor:pointer;transition:background .25s}
.btn:hover,.bouton:hover{background:var(--encre)}
.btn::after{content:"";width:.45rem;height:.45rem;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);transition:transform .3s var(--sortie)}
.btn:hover::after{transform:translateX(3px) rotate(45deg)}
.btn-vert{background:var(--vert);color:var(--encre)}
.btn-vert:hover{background:#fff;color:var(--encre)}
.lien{display:inline-block;font-weight:600;color:var(--bleu);border-bottom:2px solid var(--vert);padding-bottom:.15rem;white-space:nowrap;transition:color .2s,border-color .2s}
.lien:hover{color:var(--encre);border-color:var(--bleu)}
/* en-tête */
.entete{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.97);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.entete.defile{border-bottom-color:var(--trait);box-shadow:0 6px 24px rgba(22,32,46,.06)}
.entete .cadre{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:5.5rem}
.logo{height:3.4rem;width:auto}
.entete nav{display:flex;align-items:center;gap:.15rem}
.entete nav a{padding:.55rem .9rem;border-radius:999px;font-weight:500;font-size:.98rem;transition:background .2s,color .2s}
.entete nav a:hover,.entete nav a[aria-current=page]{background:var(--bleu-pale);color:var(--bleu)}
.entete nav .cta{background:var(--bleu);color:#fff;margin-left:.5rem}
.entete nav .cta:hover,.entete nav .cta[aria-current=page]{background:var(--encre);color:#fff}
/* accueil */
.ouv{padding-top:2.5rem;padding-bottom:var(--espace)}
.ouv .cadre{display:grid;gap:3rem;align-items:center}
.chapo{font-size:clamp(1.12rem,1.6vw,1.32rem);line-height:1.55;color:var(--gris);max-width:34rem;margin:1.5rem 0 0}
.ouv .chapo{margin-bottom:2.25rem}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem 2rem}
.compo{position:relative;padding:0 2rem 2rem 0}
.compo::before{content:"";position:absolute;right:0;bottom:0;width:78%;height:72%;background:var(--bleu);border-radius:var(--r)}
.compo::after{content:"";position:absolute;left:-.9rem;top:-.9rem;width:4.5rem;aspect-ratio:1;background:var(--vert);border-radius:6px}
.compo img{position:relative;z-index:1;width:100%;aspect-ratio:4/4.3;object-fit:cover;border-radius:var(--r)}
.etiquette{position:absolute;z-index:2;left:1.25rem;bottom:3.25rem;margin:0;background:#fff;border-radius:12px;padding:.75rem 1rem;box-shadow:0 10px 30px rgba(22,32,46,.14);font-size:.92rem;line-height:1.4}
.etiquette b{display:block;font-weight:600}
.etiquette span{color:var(--gris)}
.equipe+.clients{margin-top:var(--espace)}
.clients{border-top:1px solid var(--trait);border-bottom:1px solid var(--trait);padding-top:1.75rem;padding-bottom:1.75rem}
.clients .cadre{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem 2.5rem}
.clients-titre{font-size:.98rem;font-weight:500;letter-spacing:0;color:var(--gris);margin-right:auto}
.clients-liste{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem 2.25rem}
.clients-liste img{height:2.3rem;width:auto;max-width:7.5rem;object-fit:contain;filter:grayscale(1);opacity:.62;mix-blend-mode:multiply;transition:filter .3s,opacity .3s}
.clients-liste li:hover img{filter:none;opacity:1}
.missions{background:var(--bleu-pale);padding-top:var(--espace);padding-bottom:var(--espace);margin-top:var(--espace)}
.missions .cadre{display:grid;gap:3rem}
.missions .intro p{color:var(--gris);margin:1.25rem 0 1.5rem;max-width:28rem}
.missions ul{display:grid;gap:1rem}
.missions li a{display:grid;grid-template-columns:5rem 1fr;gap:.35rem 1.5rem;align-items:center;background:#fff;border-radius:var(--r);padding:1.5rem 1.75rem;transition:transform .5s var(--sortie),box-shadow .5s var(--sortie)}
.missions li a:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(52,93,149,.14)}
.missions li img{width:5rem;grid-row:span 2;transform:scale(1.35)}
.missions h3{font-size:1.4rem;letter-spacing:-.02em}
.missions li p{margin:0;color:var(--gris);font-size:1rem}
.projets{padding-top:var(--espace)}
.tete{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:2.25rem}
.galerie-accueil{display:grid;gap:1.25rem}
.galerie-accueil a,.galerie a{display:block;position:relative;border-radius:var(--r);overflow:hidden;background:var(--bleu-pale)}
.galerie-accueil img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/10;transition:transform 1.2s var(--sortie)}
.galerie-accueil a:hover img{transform:scale(1.04)}
.nom{position:absolute;left:1rem;right:1rem;bottom:1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#fff;border-radius:12px;padding:.7rem 1rem;font-size:.95rem;line-height:1.35}
.nom b{font-weight:600}
.nom span{color:var(--gris);text-align:right}
.chiffres{padding-top:var(--espace)}
.chiffres p{font-size:clamp(1.55rem,3vw,2.6rem);font-weight:500;letter-spacing:-.025em;line-height:1.32;max-width:38ch;margin:0}
.chiffres b{color:var(--bleu);font-weight:600}
/* pied et appel */
.pied{margin-top:var(--espace);color:var(--gris);font-size:.95rem}
.appel-boite{position:relative;overflow:hidden;display:grid;gap:2rem;background:var(--bleu);color:#fff;border-radius:calc(var(--r) + 6px);padding:2.5rem 1.75rem}
.appel-boite::after{content:"";position:absolute;right:-3rem;top:-3rem;width:12rem;aspect-ratio:1;background:var(--bleu-2);border-radius:24px;transform:rotate(12deg)}
.appel-boite>*{position:relative;z-index:1;margin:0}
.appel h2{color:#fff}
.appel-boite p{color:#dbe6f3;margin:1rem 0 0}
.appel-boite p a:not(.btn){color:#fff;border-bottom:1px solid var(--vert)}
.appel-boite .btn{margin:0}
.pied-grille{display:grid;gap:2rem;padding-top:4rem;padding-bottom:2rem}
.pied-grille p{margin:.4rem 0 0}
.pied-grille a:hover{color:var(--bleu)}
.pied-titre{font-weight:600;color:var(--encre);margin:0!important}
.pied-grille nav{display:flex;flex-direction:column;gap:.3rem}
.pied-grille .logo{height:3rem}
.pied-bas{padding-bottom:2.5rem;font-size:.88rem}
/* pages intérieures */
.titre-page{padding-top:3.5rem}
.titre-page h1{max-width:18ch}
.titre-page .chapo{max-width:40rem}
.section-tete{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:2.25rem!important}
.section-tete h2{max-width:22ch}
.intertitre{font-size:1.3rem;letter-spacing:-.015em;line-height:1.3}
.grand-texte{font-size:clamp(1.35rem,2.3vw,2rem);line-height:1.4;letter-spacing:-.02em;max-width:36ch}
.grand-texte strong{color:var(--bleu)}
.texte p:not(.grand-texte){color:var(--gris);max-width:66ch}
.texte .grand-texte{margin-bottom:1.5rem}
.liste{margin:0 0 1.5rem}
.liste li{position:relative;padding-left:1.4rem;margin:.4rem 0;color:var(--gris);max-width:66ch}
.liste li::before{content:"";position:absolute;left:0;top:.62em;width:.5rem;height:.5rem;border-radius:2px;background:var(--vert)}
.bandeau-photo{margin-top:var(--espace);padding:0 var(--m)}
.bandeau-photo img{width:100%;max-width:var(--max);margin:0 auto;aspect-ratio:21/9;min-height:18rem;object-fit:cover;border-radius:var(--r)}
.bandeau-photo figcaption{max-width:var(--max);margin:.75rem auto 0;font-size:.9rem;color:var(--gris)}
.deux-col{display:grid;gap:1.5rem;padding-top:var(--espace)}
.deux-col>*{margin:0}
.portrait{margin-top:1.5rem!important;max-width:13rem}
.portrait img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%;box-shadow:0 0 0 6px var(--bleu-pale)}
.portrait figcaption{font-size:.92rem;color:var(--gris);margin-top:1rem}
.equipe{padding-top:var(--espace)}
.eq-liste{display:grid;gap:1rem}
.eq-liste li{display:grid;gap:.25rem;background:var(--bleu-pale);border-radius:var(--r);padding:1.4rem 1.6rem}
.eq-nom{font-size:1.35rem;font-weight:600;letter-spacing:-.02em}
.eq-role{color:var(--encre)}
.eq-site{font-size:.92rem;color:var(--bleu);font-weight:500}
.mission{padding-top:var(--espace);scroll-margin-top:7rem}
.mission-tete{margin-bottom:2rem!important}
.mission-corps{display:grid;gap:2.5rem}
.planche{background:#fff;border:1px solid var(--trait);border-radius:var(--r);overflow:hidden;align-self:start}
.planche img{padding:1.5rem 1.5rem 0}
.planche figcaption,.pp figcaption{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 1.25rem;border-top:1px solid var(--trait);font-size:.85rem;color:var(--gris);background:var(--bleu-pale)}
.phases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:1.75rem 0 2rem}
.phases li{background:var(--bleu-pale);border-radius:12px;padding:.9rem 1rem;font-weight:600;line-height:1.35}
.phases .num{display:block;margin-bottom:.25rem}
.dessin{mix-blend-mode:multiply;width:100%}
.refs-outils{padding-top:2.5rem}
.filtres{display:flex;flex-wrap:wrap;gap:.5rem}
.filtres[hidden]{display:none}
.filtre{font:500 .95rem var(--sans);border:1px solid var(--trait);background:#fff;color:var(--encre);border-radius:999px;padding:.6rem 1.1rem;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.filtre:hover{border-color:var(--bleu);color:var(--bleu)}
.filtre[aria-pressed=true]{background:var(--bleu);border-color:var(--bleu);color:#fff}
.compteur{margin-top:1rem!important;font-size:.92rem;color:var(--gris);min-height:1.2rem}
.refs{padding-top:1.5rem}
.refs-grille{display:grid;gap:1.25rem}
.refs-grille li[hidden]{display:none}
.refs-grille a{display:block}
.cadre-img,.refs-grille .cadre{position:relative;overflow:hidden;border-radius:var(--r);background:var(--bleu-pale);aspect-ratio:4/3;max-width:none;padding:0;margin:0}
.refs-grille .cadre img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--sortie)}
.refs-grille .cadre .dessin,.refs-grille .cadre .trait{object-fit:contain;padding:6%;mix-blend-mode:multiply;background:#fff}
.refs-grille a:hover .cadre img{transform:scale(1.04)}
.legende{padding:.85rem .25rem 0}
.legende h2,.legende h3{font-size:1.15rem;letter-spacing:-.015em;line-height:1.3;transition:color .2s}
.legende p{margin:.2rem 0 0;color:var(--gris);font-size:.94rem}
.refs-grille a:hover .legende h2{color:var(--bleu)}
.index{padding-top:var(--espace)}
.ix-tete,.ix-liste a{display:grid;grid-template-columns:2.75rem minmax(0,1fr) auto;gap:.25rem 1rem;align-items:baseline}
.ix-tete{font-size:.85rem;font-weight:500;color:var(--gris);padding:0 .75rem .8rem;border-bottom:1px solid var(--encre)}
.ix-tete span{font:inherit;color:inherit}
.ix-tete .ix-ville,.ix-tete .ix-missions{display:none}
.ix-liste li{border-bottom:1px solid var(--trait)}
.ix-liste li[hidden]{display:none}
.ix-liste a{padding:1rem .75rem;border-radius:12px;transition:background .2s}
.ix-liste a:hover{background:var(--bleu-pale)}
.ix-liste a:hover .ix-nom{color:var(--bleu)}
.ix-num{font-family:var(--mono);font-size:.8rem;color:var(--gris)}
.ix-nom{font-size:1.06rem;font-weight:600;letter-spacing:-.01em;line-height:1.35}
.ix-ville{grid-column:2;color:var(--gris);font-size:.95rem}
.ix-annee{grid-column:3;grid-row:1;font-size:.9rem;color:var(--gris);text-align:right}
.ix-missions{grid-column:2;display:flex;gap:.35rem;flex-wrap:wrap}
.pastille{font-size:.78rem;font-weight:600;border-radius:999px;padding:.12rem .55rem;background:var(--bleu-pale);color:var(--bleu)}
.fiche-ouverture{padding-top:3rem}
.fiche-titre h1{max-width:20ch}
.fiche-ville{font-size:clamp(1.2rem,2vw,1.6rem);color:var(--bleu);font-weight:600;margin:.6rem 0 0}
.fil-ariane{display:flex;justify-content:space-between;gap:1rem;margin-top:1.75rem;font-size:.95rem;color:var(--gris)}
.fil-ariane a{color:var(--bleu);font-weight:600}
.fil-ariane a::before{content:"";display:inline-block;width:.42rem;height:.42rem;margin-right:.55rem;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);vertical-align:.1rem}
.planche-projet{padding-top:2rem}
.pp{border:1px solid var(--trait);border-radius:var(--r);overflow:hidden;background:#fff}
.pp-cadre img{width:100%}
.pp-seule{border:0}
.pp-seule img{border-radius:var(--r)}
.fiche-corps{display:grid;gap:2.5rem;padding-top:var(--espace)}
.fiche-corps>*{margin:0;max-width:none}
.cartouche{background:var(--bleu-pale);border-radius:var(--r);overflow:hidden;align-self:start}
.cartouche-tete{display:flex;align-items:center;gap:.9rem;padding:1rem 1.25rem;background:var(--bleu);color:#fff;font-weight:600}
.cartouche-tete img{height:2.4rem;width:auto;background:#fff;border-radius:8px;padding:.2rem}
.cartouche-tete .num{margin-left:auto;color:#dbe6f3}
.cartouche dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:.5rem 1.25rem 1rem}
.cartouche dl>div{padding:.8rem 0;border-bottom:1px solid #d6e0ec}
.cartouche .c-0,.cartouche .c-5,.cartouche .c-6{grid-column:1/-1}
.cartouche .c-6{border-bottom:0}
.cartouche dt{font-size:.85rem;color:var(--gris)}
.cartouche dd{margin:.2rem 0 0;font-weight:600;line-height:1.4}
.cartouche .c-0 dd{font-size:1.15rem}
.galerie{padding-top:var(--espace)}
.galerie .intertitre{margin-bottom:1.25rem}
.galerie ul{display:grid;gap:1rem}
.galerie a{aspect-ratio:4/3}
.galerie img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--sortie)}
.galerie a:hover img{transform:scale(1.03)}
.suite{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;max-width:var(--max);margin:var(--espace) auto 0;padding:0 var(--m)}
.suite a{display:block;background:var(--bleu-pale);border-radius:var(--r);padding:1.25rem 1.5rem;font-weight:600;font-size:1.15rem;line-height:1.35;transition:background .2s,color .2s}
.suite a:last-child{text-align:right}
.suite a:hover{background:var(--bleu);color:#fff}
.suite a:hover .suite-sens{color:#dbe6f3}
.suite-sens{display:block;margin-bottom:.35rem;font-size:.88rem;font-weight:500;color:var(--gris)}
.contact{display:grid;gap:3rem;padding-top:var(--espace)}
.contact>*{margin:0;max-width:none}
.contact-direct{display:flex;flex-direction:column;gap:.4rem;margin-bottom:2.5rem}
.contact-direct a{font-size:clamp(1.4rem,2.6vw,2.2rem);font-weight:600;letter-spacing:-.02em;color:var(--bleu);width:fit-content;border-bottom:2px solid var(--vert);transition:color .2s}
.contact-direct a:hover{color:var(--encre)}
.agences{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.agence{background:var(--bleu-pale);border-radius:var(--r);padding:1.25rem 1.4rem}
.agence .petit{font-size:.88rem;color:var(--gris);margin:0}
.agence-ville{font-size:1.3rem;font-weight:600;letter-spacing:-.02em;margin:.2rem 0 .4rem}
.agence p:last-child{color:var(--gris);margin:0}
.formulaire{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem 1rem;align-content:start;background:var(--bleu-pale);border-radius:var(--r);padding:1.75rem}
.formulaire .large{grid-column:1/-1}
.champ label{display:block;font-size:.92rem;font-weight:600;margin-bottom:.4rem}
.champ input,.champ textarea{width:100%;font:inherit;color:var(--encre);background:#fff;border:1px solid var(--trait);border-radius:12px;padding:.8rem 1rem;resize:vertical;transition:border-color .2s,box-shadow .2s}
.champ textarea{min-height:9rem}
.champ input:hover,.champ textarea:hover{border-color:var(--bleu-3)}
.champ input:focus,.champ textarea:focus{outline:none;border-color:var(--bleu);box-shadow:0 0 0 3px rgba(52,93,149,.18)}
.champ input:user-invalid,.champ textarea:user-invalid{border-color:var(--erreur)}
.champ:has(:user-invalid)::after{content:"Champ à compléter correctement";display:block;margin-top:.35rem;font-size:.85rem;color:var(--erreur)}
.piege{position:absolute;left:-9999px}
.mention{font-size:.9rem;color:var(--gris);margin:0}
.formulaire .bouton{justify-self:start}
.actions-page{padding-top:2.5rem}
.texte-long{padding-top:2.5rem}
.texte-long>*{max-width:68ch!important;margin-left:max(0px,calc((100% - var(--max))/2))!important}
.texte-long h2{font-size:1.35rem;letter-spacing:-.015em;margin-top:2.25rem!important;margin-bottom:.6rem!important;line-height:1.3}
.texte-long p{color:var(--gris)}
.actions{padding-top:0}
section.actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;padding-top:2.5rem}
.apercu{position:fixed;left:0;top:0;z-index:40;width:clamp(15rem,22vw,21rem);pointer-events:none;opacity:0;transition:opacity .3s var(--sortie)}
.apercu img{width:100%;border-radius:14px;background:#fff;transform:translate(1.5rem,-50%) scale(.96);box-shadow:0 18px 45px rgba(22,32,46,.22);transition:transform .45s var(--sortie)}
.apercu.visible{opacity:1}
.apercu.visible img{transform:translate(1.5rem,-50%) scale(1)}
.cabinet-accueil{padding-top:var(--espace)}
.cabinet-accueil .cadre{display:grid;gap:2.5rem;align-items:center}
.ca-portrait{display:flex;align-items:center;gap:1.25rem}
.ca-portrait img{width:8rem;aspect-ratio:1;object-fit:cover;border-radius:50%;box-shadow:0 0 0 6px var(--bleu-pale)}
.ca-portrait figcaption{display:flex;flex-direction:column;line-height:1.4}
.ca-portrait b{font-size:1.15rem}.ca-portrait span{color:var(--gris)}
.ca-texte h2{margin-bottom:1.25rem}
.ca-texte .grand-texte{color:var(--gris);margin-bottom:1.5rem}
.valeurs-pastilles{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.75rem}
.valeurs-pastilles li{padding:.45rem 1rem;border-radius:999px;background:var(--bleu-pale);color:var(--bleu);font-weight:600}
.valeurs-pastilles li:first-child{background:var(--vert);color:var(--encre)}
.methode{padding-top:var(--espace)}
.methode-liste{display:grid;gap:1rem;counter-reset:etape}
.methode-liste li{position:relative;padding:1.5rem;border-radius:var(--r);background:#fff;border:1px solid var(--trait)}
.methode-liste li::before{content:"";position:absolute;left:1.5rem;right:1.5rem;top:0;height:3px;border-radius:0 0 3px 3px;background:var(--bleu-3)}
.methode-liste li:nth-child(4)::before{background:var(--bleu)}
.methode-liste li:last-child::before{background:var(--vert)}
.methode-liste h3{font-size:1.2rem;letter-spacing:-.015em;margin:.5rem 0 .4rem}
.methode-liste p{margin:0;color:var(--gris);font-size:.98rem}
.dessin-photo{padding-top:var(--espace)}
.dessin-photo .cadre{display:grid;gap:1.25rem;align-items:end}
.dp-texte p{color:var(--gris);margin:1rem 0 1.5rem;max-width:30rem}
.dp-dessin,.dp-photo{position:relative;border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--trait)}
.dp-dessin img{width:100%}
.dp-photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/4}
.dp-dessin figcaption,.dp-photo figcaption{position:absolute;left:.75rem;top:.75rem;background:#fff;border-radius:999px;padding:.25rem .75rem;font-size:.85rem;font-weight:600;box-shadow:0 4px 14px rgba(22,32,46,.12)}
.secteurs{padding-top:var(--espace)}
.tete-note{margin:0;color:var(--gris)}
.secteurs-liste{display:grid;gap:1rem}
.secteurs-liste li{display:grid;grid-template-columns:auto 1fr;gap:.2rem 1.25rem;align-items:baseline;padding:1.4rem 1.5rem;border-radius:var(--r);background:var(--bleu-pale)}
.sect-nb{grid-row:span 2;font-size:clamp(2.2rem,3.6vw,3rem);font-weight:600;letter-spacing:-.04em;color:var(--bleu);line-height:1;font-variant-numeric:tabular-nums}
.secteurs-liste h3{font-size:1.15rem;letter-spacing:-.015em}
.secteurs-liste p{margin:0;color:var(--gris);font-size:.94rem}
.en-cours{padding-top:var(--espace)}
@media (max-width:40rem){
.entete .cadre{height:4.5rem}
.logo{height:2.8rem}
.entete nav a:not(.cta){display:none}
.formulaire,.agences{grid-template-columns:minmax(0,1fr)}
.etiquette{left:.75rem;bottom:2.75rem}
}
@media (min-width:40rem) and (max-width:48rem){.entete nav a{padding:.5rem .6rem;font-size:.92rem}}
@media (min-width:48rem){
.appel-boite{padding:3.5rem}
.refs-grille{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1.25rem}
.galerie ul{grid-template-columns:repeat(2,minmax(0,1fr))}
.galerie li:nth-child(3n+1){grid-column:1/-1}
.galerie li:nth-child(3n+1) a{aspect-ratio:16/9}
.phases{grid-template-columns:repeat(4,minmax(0,1fr))}
.eq-liste{grid-template-columns:repeat(2,minmax(0,1fr))}
.ix-tete,.ix-liste a{grid-template-columns:3rem minmax(0,2.2fr) minmax(0,1.2fr) 8.5rem minmax(0,1.2fr);gap:1rem}
.ix-tete .ix-ville,.ix-tete .ix-missions{display:block}
.ix-ville,.ix-missions,.ix-annee{grid-column:auto;grid-row:auto}
.ix-annee{text-align:left}
.pied-grille{grid-template-columns:1.5fr 1fr 1fr 1fr 1fr}
}
@media (min-width:62rem){
.cabinet-accueil .cadre{grid-template-columns:.7fr 1.3fr;gap:5rem}
.ca-portrait{flex-direction:column;align-items:flex-start}
.ca-portrait img{width:13rem}
.methode-liste{grid-template-columns:repeat(5,minmax(0,1fr))}
.secteurs-liste{grid-template-columns:repeat(3,minmax(0,1fr))}
.dessin-photo .cadre{grid-template-columns:.8fr 1.4fr .8fr}
.dp-texte{grid-column:auto;align-self:center}
.ouv .cadre{grid-template-columns:1.05fr .95fr;gap:5rem}
.compo{padding:0 2.25rem 2.25rem 0}
.compo::after{width:5rem;left:-1.1rem;top:-1.1rem}
.missions .cadre{grid-template-columns:.8fr 1.2fr;gap:5rem}
.missions .intro{position:sticky;top:8rem;align-self:start}
.galerie-accueil{grid-template-columns:1.3fr 1fr}
.galerie-accueil a:first-child{grid-row:span 2}
.galerie-accueil a:first-child img{aspect-ratio:auto;min-height:100%}
.appel-boite{grid-template-columns:1.4fr 1fr;align-items:end;padding:4.5rem}
.appel-boite>p{justify-self:end}
.refs-grille{grid-template-columns:repeat(3,minmax(0,1fr))}
.deux-col{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:2rem;padding-left:max(var(--m),calc((100% - var(--max))/2));padding-right:max(var(--m),calc((100% - var(--max))/2))}
.deux-col>.intertitre,.deux-col>.direction-gauche{grid-column:1/4;padding-top:.4rem}
.deux-col>.texte{grid-column:4/12}
.eq-liste{grid-template-columns:repeat(4,minmax(0,1fr))}
.mission-corps{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4rem}
.fiche-corps{grid-template-columns:repeat(12,minmax(0,1fr));gap:2rem;padding-left:max(var(--m),calc((100% - var(--max))/2));padding-right:max(var(--m),calc((100% - var(--max))/2))}
.fiche-corps .texte{grid-column:1/7}
.fiche-corps .cartouche{grid-column:8/13}
.contact{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:4rem;padding-left:max(var(--m),calc((100% - var(--max))/2));padding-right:max(var(--m),calc((100% - var(--max))/2))}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}.apercu{display:none}}
/* ---- Couche flat : aplats, angles nets, aucune ombre ---- */
:root{--r:0px}
.etiquette,.missions li a:hover,.apercu img,.dp-dessin figcaption,.dp-photo figcaption,.entete.defile,.portrait img,.ca-portrait img{box-shadow:none}
.btn,.bouton,.filtre,.entete nav a,.evitement,.champ input,.champ textarea{border-radius:3px}
.pastille,.valeurs-pastilles li{border-radius:2px}
.entete.defile{border-bottom-color:var(--trait)}
.compo{padding:0 2.25rem 2.25rem 0}
.compo::after{border-radius:0}
.etiquette{border-radius:0;background:var(--encre);color:#fff;left:0;bottom:2.25rem;padding:.9rem 1.2rem}
.etiquette span{color:#b9c6d8}
.nom{left:0;right:0;bottom:0;border-radius:0;padding:.85rem 1.1rem}
.galerie-accueil a:hover .nom{background:var(--bleu);color:#fff}
.galerie-accueil a:hover .nom span{color:#fff}
.missions ul{gap:2px}
.missions li a{border-radius:0;transition:background .25s,color .25s}
.missions li a:hover{transform:none;background:var(--bleu);color:#fff}
.missions li a:hover p{color:#fff}
.methode-liste{gap:2px}
.methode-liste li{border:0;background:var(--bleu-pale);border-radius:0;padding:1.75rem 1.5rem}
.methode-liste li::before{display:none}
.methode-liste .num{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;background:var(--bleu);color:#fff;font-size:.85rem}
.methode-liste li:last-child .num{background:var(--vert);color:var(--encre)}
.methode-liste h3{margin-top:1.1rem}
.secteurs-liste{gap:2px}
.secteurs-liste li{border-radius:0}
.secteurs-liste li:nth-child(6n+1){background:var(--bleu);color:#fff}
.secteurs-liste li:nth-child(6n+1) .sect-nb{color:#fff}
.secteurs-liste li:nth-child(6n+1) p{color:#dbe6f3}
.secteurs-liste li:nth-child(6n+3){background:var(--vert)}
.secteurs-liste li:nth-child(6n+3) .sect-nb,.secteurs-liste li:nth-child(6n+3) p{color:var(--encre)}
.secteurs-liste li:nth-child(6n+5){background:var(--encre);color:#fff}
.secteurs-liste li:nth-child(6n+5) .sect-nb{color:var(--vert)}
.secteurs-liste li:nth-child(6n+5) p{color:#c4ccd8}
.eq-liste{gap:2px}
.eq-liste li,.agence,.suite a,.formulaire,.cartouche,.pp,.planche,.dp-dessin,.dp-photo,.galerie a,.galerie-accueil a,.refs-grille .cadre,.bandeau-photo img,.pp-seule img,.appel-boite{border-radius:0}
.dp-dessin figcaption,.dp-photo figcaption{left:0;top:0;border-radius:0;background:var(--encre);color:#fff;padding:.35rem .8rem}
.dp-photo figcaption{background:var(--vert);color:var(--encre)}
.appel-boite::after{right:0;top:0;width:clamp(4rem,9vw,7rem);transform:none;border-radius:0;background:var(--vert)}
.appel-boite::before{content:"";position:absolute;right:clamp(4rem,9vw,7rem);top:0;width:clamp(2rem,4.5vw,3.5rem);aspect-ratio:1;background:var(--bleu-2)}
.cartouche-tete img{border-radius:0}
.champ input:focus,.champ textarea:focus{box-shadow:none;border-color:var(--bleu);outline:2px solid var(--bleu);outline-offset:-1px}
.suite a{background:var(--bleu-pale)}
.ix-liste a{border-radius:0}
.apercu img{border-radius:0;border:1px solid var(--trait)}
.planche img{padding:1.5rem 1.5rem 0}
.portrait img,.ca-portrait img{outline:6px solid var(--bleu-pale);outline-offset:0}
/* ---- Rythme : alternance pleine largeur / cadré ---- */
.clients{background:var(--bleu-pale);border:0}
.missions{background:var(--bleu);color:#fff;margin-top:var(--espace)}
.missions h2{color:#fff}
.missions .intro p{color:#dbe6f3}
.missions .lien,.missions .lien:hover{color:#fff}
.missions li a{background:var(--bleu-2);color:#fff}
.missions li a p{color:#fff}
.missions li a:hover{background:var(--encre)}
.galerie-accueil{width:100vw;margin-left:calc(50% - 50vw);gap:2px}
.galerie-accueil a{min-height:20rem}
.galerie-accueil img{aspect-ratio:auto;height:100%;min-height:20rem}
.projets .tete{margin-bottom:2rem}
.dessin-photo .cadre{max-width:none;padding:0;gap:2px}
.dp-texte{background:var(--bleu-pale);padding:2.5rem var(--m)}
.dp-dessin,.dp-photo{border:0}
.dp-dessin{background:#fff;display:flex;align-items:center;border-top:1px solid var(--trait);border-bottom:1px solid var(--trait)}
.chiffres{background:var(--encre);color:#fff;margin-top:var(--espace);padding-top:var(--espace);padding-bottom:var(--espace)}
.chiffres b{color:var(--vert)}
.chiffres p{max-width:30ch;font-size:clamp(1.7rem,3.6vw,3.2rem)}
.pied{margin-top:0}
.chiffres+.pied .appel{margin-top:0}
.appel .cadre{max-width:none;padding:0}
.appel-boite{padding:3.5rem var(--m)}
main+.pied{margin-top:var(--espace)}
main:has(>.chiffres:last-child)+.pied{margin-top:0}
@media (min-width:62rem){
.ouv{padding-top:0;padding-bottom:0}
.ouv .cadre{max-width:none;padding:0 0 0 max(var(--m),calc((100% - var(--max))/2));grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:4.5rem;min-height:calc(100svh - 5.5rem)}
.ouv .cadre>div:first-child{padding:4rem 0}
.compo{padding:0;height:100%;min-height:36rem}
.compo::before{right:auto;left:-2.25rem;bottom:2.5rem;width:2.25rem;height:42%;border-radius:0}
.compo::after{left:-2.25rem;top:auto;bottom:calc(2.5rem + 42%);width:2.25rem;height:2.25rem}
.compo img{height:100%;aspect-ratio:auto}
.etiquette{bottom:2.5rem;left:0}
.galerie-accueil{grid-template-columns:1.5fr 1fr 1fr}
.galerie-accueil a{height:clamp(24rem,38vw,38rem)}
.galerie-accueil a:first-child{grid-row:auto}
.galerie-accueil a:first-child img{min-height:0}
.dessin-photo .cadre{grid-template-columns:1fr 1.35fr 1fr;align-items:stretch}
.dp-texte{padding:4rem max(var(--m),calc((100% - var(--max))/2));padding-right:3rem;display:flex;flex-direction:column;justify-content:center}
.dp-photo img{height:100%;aspect-ratio:auto}
.appel-boite{padding:5rem max(var(--m),calc((100% - var(--max))/2))}
.chiffres p{max-width:32ch}
}
/* ---- Pied de page sombre ---- */
.pied-sombre{background:var(--encre);color:#fff;padding-top:var(--espace);padding-bottom:2rem}
.pied-sombre a{transition:color .2s}
.pied-sombre a:hover{color:var(--vert)}
.pied-haut{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.14)}
.pied-sombre .logo{height:3.6rem}
.pied-accroche{margin:0;max-width:26rem;font-size:1.1rem;line-height:1.5;color:#c3ccd9}
.pied-contact{display:flex;flex-direction:column;gap:.25rem;padding:3.5rem 0}
.pied-grand{width:fit-content;font-size:clamp(2rem,5.4vw,4.5rem);font-weight:500;letter-spacing:-.035em;line-height:1.1;color:#fff}
.pied-grand:first-child{color:var(--vert)}
.pied-grand:first-child:hover{color:#fff}
.pied-grille{display:grid;gap:2rem;padding:2.5rem 0;border-top:1px solid rgba(255,255,255,.14)}
.pied-ville{margin:0 0 .5rem;font-size:1.3rem;font-weight:600;letter-spacing:-.015em;color:#fff}
.pied-agence p:last-child{margin:0;font-size:1rem;line-height:1.6;color:#c3ccd9}
.pied-nav{display:flex;flex-direction:column;gap:.45rem;font-size:1.05rem;font-weight:500}
.pied-bas{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.14);font-size:.88rem;color:#9aa6b6}
.pied-bas a{color:#c3ccd9}
.pied-sombre ::selection{background:var(--vert);color:var(--encre)}
.pied-sombre :focus-visible{outline-color:var(--vert)}
@media (min-width:48rem){.pied-grille{grid-template-columns:1fr 1fr 1fr}}
@media (min-width:62rem){.pied-grille{grid-template-columns:1fr 1fr 1fr 1fr}.pied-nav{grid-column:4;flex-direction:column}.dp-texte{padding-left:4rem}}
/* ---- Ouverture : chantier de cubes interactif ---- */
.jeu{position:relative;display:flex;align-items:center;justify-content:center;min-height:24rem;background:var(--bleu-pale);overflow:hidden}
.jeu::before{content:"";position:absolute;left:0;top:0;width:3rem;height:3rem;background:var(--vert)}
.jeu-repli{width:100%;max-width:32rem}
.jeu.actif .jeu-repli{display:none}
.jeu-svg{display:block;width:100%;max-width:40rem;height:auto;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.jeu-aide{display:none;position:absolute;left:0;bottom:0;margin:0;padding:.55rem .9rem;background:var(--encre);color:#fff;font-size:.88rem}
.jeu.actif .jeu-aide{display:block}
@media (min-width:62rem){.jeu{height:100%;min-height:calc(100svh - 5.5rem)}}
/* ---- En-tête v2 ---- */
.entete{background:#fff;border-bottom:1px solid var(--trait)}
.entete .cadre{height:6rem;gap:2rem}
.marque{display:flex;align-items:center;gap:.9rem;flex:none}
.entete .logo{height:3.6rem}
.marque-texte{display:none;flex-direction:column;line-height:1.25;padding-left:.9rem;border-left:1px solid var(--trait)}
.marque-texte b{font-size:.98rem;font-weight:600;color:var(--encre)}
.marque-texte span{font-size:.88rem;color:var(--gris)}
.menu{display:flex;align-items:center;gap:.25rem;margin:0 auto}
.entete nav.menu a{position:relative;padding:.6rem .85rem;border-radius:0;background:none;font-weight:500;color:var(--encre)}
.entete nav.menu a::after{content:"";position:absolute;left:.85rem;right:.85rem;bottom:.2rem;height:3px;background:var(--vert);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--sortie)}
.entete nav.menu a:hover{background:none;color:var(--bleu)}
.entete nav.menu a:hover::after,.entete nav.menu a[aria-current=page]::after{transform:scaleX(1)}
.entete nav.menu a[aria-current=page]{background:none;color:var(--bleu)}
.menu-contact{display:none}
.entete-actions{display:flex;align-items:center;gap:1rem;flex:none}
.entete-tel{display:none;font-weight:600;color:var(--bleu);font-variant-numeric:tabular-nums}
.entete-tel:hover{color:var(--encre)}
.entete .cta{display:inline-flex;align-items:center;min-height:2.9rem;padding:.7rem 1.2rem;border-radius:3px;background:var(--bleu);color:#fff;font-weight:600;transition:background .2s}
.entete .cta:hover,.entete .cta[aria-current=page]{background:var(--encre);color:#fff}
.menu-bouton{display:inline-flex;align-items:center;gap:.6rem;min-height:2.9rem;padding:.6rem .9rem;border:1px solid var(--trait);border-radius:3px;background:#fff;color:var(--encre);font:600 .95rem var(--sans);cursor:pointer}
.menu-bouton[hidden]{display:none}
.menu-bouton span{position:relative;width:1.1rem;height:2px;background:currentColor}
.menu-bouton span::before,.menu-bouton span::after{content:"";position:absolute;left:0;width:100%;height:2px;background:currentColor;transition:transform .3s var(--sortie)}
.menu-bouton span::before{top:-6px}.menu-bouton span::after{top:6px}
.menu-ouvert .menu-bouton span{background:transparent}
.menu-ouvert .menu-bouton span::before{transform:translateY(6px) rotate(45deg)}
.menu-ouvert .menu-bouton span::after{transform:translateY(-6px) rotate(-45deg)}
@media (max-width:61.99rem){
.entete .cadre{height:auto;min-height:5rem;flex-wrap:wrap;gap:.75rem 1rem;padding-top:.6rem;padding-bottom:.6rem}
.entete .logo{height:3rem}
.entete .cta{display:none}
.menu{order:3;width:100%;margin:0;flex-wrap:wrap}
.menu-js .menu{display:none}
.menu-js.menu-ouvert .menu{display:flex;flex-direction:column;align-items:stretch;padding:.5rem 0 1rem;border-top:1px solid var(--trait)}
.menu-js.menu-ouvert .menu a{padding:.9rem 0;font-size:1.15rem;border-bottom:1px solid var(--trait)}
.menu-js.menu-ouvert .menu a::after{display:none}
.menu-contact{display:block}
.entete-actions{margin-left:auto}
}
@media (min-width:62rem){.menu-bouton{display:none!important}.entete nav.menu a:not(.cta){display:inline-block}}
@media (min-width:75rem){.marque-texte{display:flex}.entete-tel{display:inline}}
@media (min-width:40rem) and (max-width:61.99rem){.entete-tel{display:inline}}
/* ---- Logos sous les boutons de l'ouverture ---- */
.ouv-clients{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--trait)}
.ouv-clients p{margin:0 0 1rem;font-size:.92rem;font-weight:500;color:var(--gris)}
.ouv-clients ul{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.75rem}
.ouv-clients img{height:2.2rem;width:auto;max-width:6.5rem;object-fit:contain;filter:grayscale(1);opacity:.62;mix-blend-mode:multiply;transition:filter .3s,opacity .3s}
.ouv-clients li:hover img{filter:none;opacity:1}
.jeu-svg{max-width:44rem}
@media (min-width:62rem){.entete nav.menu .menu-contact{display:none}}
.entete .cadre{max-width:none}
@media (min-width:62rem){.entete .menu{margin:0 0 0 auto}.entete nav.menu a.menu-contact{display:none}.entete-actions{padding-left:1.25rem;border-left:1px solid var(--trait)}}
/* ---- Une seule largeur de contenu : 88rem de contenu, marges en plus ---- */
.cadre,main>section>.cadre{max-width:calc(var(--max) + 2*var(--m))}
.entete .cadre{max-width:none}
@media (min-width:62rem){
.dessin-photo .cadre{grid-template-columns:max(calc(var(--m) - 2px),calc((100% - var(--max))/2 - 2px)) minmax(0,1fr) minmax(0,1.35fr) minmax(0,1fr)}
.dessin-photo .cadre::before{content:"";grid-column:1;grid-row:1;background:var(--bleu-pale);margin-right:-2px}
.dp-texte{grid-column:2;padding-left:0!important;padding-right:3rem}
}
/* ---- En-têtes des pages intérieures ---- */
.titre-page,.fiche-ouverture{position:relative;overflow:hidden;isolation:isolate;background:var(--bleu-pale);padding-top:3rem;padding-bottom:3.5rem}
.titre-page::before,.fiche-ouverture::before{content:"";position:absolute;left:0;top:0;width:3rem;height:3rem;background:var(--vert)}
.titre-page::after,.fiche-ouverture::after{content:"";position:absolute;z-index:-1;right:-4rem;bottom:-5rem;width:min(30rem,48vw);aspect-ratio:367/344;background:url(/img/iso/logo-cubes.svg?v=8c) center/contain no-repeat;opacity:.95}
.titre-page h1{font-size:clamp(2.4rem,5vw,4.4rem);max-width:16ch}
.titre-page .chapo{max-width:36rem;color:var(--encre);opacity:.78}
.tp-ariane{display:flex;gap:.6rem;align-items:center;margin-bottom:1.5rem;font-size:.95rem;color:var(--gris)}
.tp-ariane a{color:var(--bleu);font-weight:600;border-bottom:2px solid var(--vert)}
.tp-ariane a:hover{color:var(--encre)}
.fiche-ouverture{padding-bottom:3rem}
.fiche-titre h1{font-size:clamp(2.2rem,4.6vw,4rem)}
.fiche-ouverture .fiche-titre{max-width:calc(100% - min(26rem,40vw))}
.titre-page .cadre{padding-right:max(var(--m),min(26rem,40vw))}
.planche-projet{padding-top:3rem}
@media (min-width:62rem){.titre-page,.fiche-ouverture{padding-top:4.5rem;padding-bottom:5rem}.titre-page::after,.fiche-ouverture::after{right:max(-2rem,calc((100% - var(--max))/2 - 6rem));bottom:-6rem}}
@media (max-width:40rem){.titre-page::after,.fiche-ouverture::after{width:14rem;right:-4rem;bottom:-4.5rem;opacity:.35}.titre-page .cadre{padding-right:var(--m)}.fiche-ouverture .fiche-titre{max-width:none}}
.fiche-ouverture>.fiche-titre{max-width:var(--max)!important;margin-left:auto;margin-right:auto;padding-right:min(26rem,40vw)}
@media (max-width:40rem){.fiche-ouverture>.fiche-titre{padding-right:0}}
/* ---- Trait d'architecte : cotes sous les titres, repères de coupe ---- */
.tete h2,.section-tete h2,.missions .intro h2,.ca-texte h2,.dp-texte h2{position:relative;padding-bottom:1.1rem}
.tete h2::after,.section-tete h2::after,.missions .intro h2::after,.ca-texte h2::after,.dp-texte h2::after{content:"";position:absolute;left:0;bottom:0;width:4.5rem;height:9px;border-left:1.5px solid currentColor;border-right:1.5px solid currentColor;background:linear-gradient(currentColor,currentColor) center/100% 1.5px no-repeat;opacity:.55}
.missions .intro h2::after{opacity:.8}
.galerie-accueil a::before,.refs-grille li a .cadre::before,.galerie li a::before,.dp-dessin::before,.pp::before{content:"";position:absolute;z-index:3;left:10px;top:10px;width:18px;height:18px;border-left:1.5px solid #fff;border-top:1.5px solid #fff;pointer-events:none;mix-blend-mode:difference}
.galerie-accueil a::after,.refs-grille li a .cadre::after,.galerie li a::after,.dp-dessin::after{content:"";position:absolute;z-index:3;right:10px;bottom:10px;width:18px;height:18px;border-right:1.5px solid #fff;border-bottom:1.5px solid #fff;pointer-events:none;mix-blend-mode:difference}
.galerie-accueil a::after{bottom:3.6rem}
.dp-dessin::before,.dp-dessin::after,.pp::before{border-color:#16202e;mix-blend-mode:normal}
.dp-dessin::before{top:2.6rem}
.pp{position:relative}
.pp::before{left:12px;top:12px}
.jeu{background:#f4f8fc}
.pied-sombre .logo{height:6rem}@media (min-width:62rem){.pied-sombre .logo{height:7.5rem}}
/* ---- Détails de dessin d'architecte ---- */
.missions{background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:44px 44px;background-position:-1px -1px}
.projets,.secteurs,.methode,.en-cours,.index{position:relative}
.projets::before,.secteurs::before,.methode::before,.en-cours::before{content:attr(data-coupe);position:absolute;top:calc(var(--espace) / 2 - 1rem);left:var(--m);right:var(--m);height:2rem;max-width:var(--max);margin:0 auto;display:flex;align-items:center;font:500 .8rem var(--mono);color:var(--bleu);background:linear-gradient(90deg,var(--bleu-3) 50%,transparent 0) 2.6rem 50%/18px 1px repeat-x;padding-left:0}
.chiffres{position:relative}
.chiffres .cadre{position:relative}
.chiffres .cadre::before{content:"";position:absolute;left:var(--m);right:var(--m);top:-2.5rem;height:12px;border-left:1.5px solid var(--vert);border-right:1.5px solid var(--vert);background:linear-gradient(var(--vert),var(--vert)) center/100% 1px no-repeat;opacity:.7}
.chiffres .cadre::after{content:"ÉCH. 1:100";position:absolute;right:var(--m);bottom:-2.75rem;font:.75rem var(--mono);letter-spacing:.08em;color:#8fa0b6}
.pied-reperes{display:flex;align-items:center;gap:1.5rem;opacity:.75}
.pied-reperes img{height:3.2rem;width:auto}
.pied-reperes img+img{height:2rem}
.galerie-accueil a:first-child::after{background:url(/img/iso/echelle-clair.svg) right bottom/7rem auto no-repeat;border:0;width:7.5rem;height:2rem;right:12px;bottom:3.8rem;mix-blend-mode:normal}
.projets::before,.secteurs::before,.methode::before,.en-cours::before{width:auto}
[data-coupe]::before{content:attr(data-coupe)!important}
.methode[data-coupe]::before,.projets[data-coupe]::before,.secteurs[data-coupe]::before,.en-cours[data-coupe]::before{box-sizing:border-box;padding-left:.6rem;background:radial-gradient(circle at 1rem 50%,transparent 0 .78rem,var(--bleu) .8rem .86rem,transparent .9rem) 0 0/2rem 2rem no-repeat,linear-gradient(90deg,var(--bleu-3) 50%,transparent 0) 2.6rem 50%/18px 1px repeat-x}
.methode[data-coupe]::before,.projets[data-coupe]::before,.secteurs[data-coupe]::before,.en-cours[data-coupe]::before{padding-left:0;text-indent:calc(1rem - .3em);color:#fff;font-weight:600;background:radial-gradient(circle at 1rem 50%,var(--bleu) 0 .9rem,transparent .95rem) 0 0/2rem 2rem no-repeat,linear-gradient(90deg,var(--bleu-3) 50%,transparent 0) 2.6rem 50%/18px 1px repeat-x}
/* ---- Page Cabinet : trois colonnes, frise, portrait, cartes équipe ---- */
.trois-col{display:grid;gap:1.5rem 3rem;padding-top:var(--espace)}
.trois-col>*{margin:0}
.frise{position:relative;padding-left:1.5rem;border-left:2px solid var(--bleu-3)}
.frise li{position:relative;padding:0 0 1.4rem}
.frise li::before{content:"";position:absolute;left:calc(-1.5rem - 7px);top:.35rem;width:12px;height:12px;background:var(--bleu)}
.frise li:last-child::before{background:var(--vert)}
.fr-date{display:block;font:600 .95rem var(--mono);color:var(--bleu)}
.fr-texte{display:block;color:var(--encre);line-height:1.5}
.portrait-grand{margin:0;align-self:start;background:var(--bleu-pale)}
.portrait-grand img{width:100%;aspect-ratio:1;object-fit:cover;filter:grayscale(1)}
.portrait-grand figcaption{display:flex;flex-direction:column;padding:1rem 1.25rem;border-top:3px solid var(--vert)}
.portrait-grand b{font-size:1.1rem}
.portrait-grand span{color:var(--gris);font-size:.95rem}
.eq-cartes{display:grid;gap:2px;grid-template-columns:repeat(2,minmax(0,1fr))}
.eq-cartes li{background:var(--bleu-pale)}
.eq-photo{aspect-ratio:1;background:var(--bleu);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}
.eq-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.eq-initiale{font-size:clamp(3rem,7vw,5.5rem);font-weight:600;color:#fff;letter-spacing:-.03em}
.eq-photo::after{content:"";position:absolute;right:0;bottom:0;width:22%;aspect-ratio:1;background:var(--vert)}
.eq-cartes li:nth-child(odd) .eq-photo:not(:has(img)){background:var(--bleu-2)}
.eq-cartes .eq-nom{margin:1rem 1.2rem .2rem;font-size:1.2rem;font-weight:600}
.eq-cartes .eq-role{margin:0 1.2rem .5rem;color:var(--gris);font-size:.95rem;line-height:1.45}
.eq-cartes .eq-site{margin:0 1.2rem 1.2rem;font-size:.9rem;font-weight:600;color:var(--bleu)}
main:has(>.clients:last-child)+.pied{margin-top:0}
main>.clients:last-child{margin-bottom:0}
@media (min-width:48rem){.eq-cartes{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:62rem){
.trois-col{grid-template-columns:minmax(0,2.5fr) minmax(0,5.5fr) minmax(0,4fr);column-gap:3rem;padding-left:max(var(--m),calc((100% - var(--max))/2));padding-right:max(var(--m),calc((100% - var(--max))/2))}
.trois-col>.intertitre{padding-top:.4rem}
.portrait-grand{max-width:22rem;justify-self:end;width:100%}
}
/* ---- Détails d'archi : page Cabinet ---- */
section[data-coupe]{position:relative}
.trois-col[data-coupe]::before,.equipe[data-coupe]::before{content:attr(data-coupe);position:absolute;top:calc(var(--espace) / 2 - 1rem);left:max(var(--m),calc((100% - var(--max))/2));right:max(var(--m),calc((100% - var(--max))/2));height:2rem;display:flex;align-items:center;text-indent:calc(1rem - .3em);font:600 .8rem var(--mono);color:#fff;background:radial-gradient(circle at 1rem 50%,var(--bleu) 0 .9rem,transparent .95rem) 0 0/2rem 2rem no-repeat,linear-gradient(90deg,var(--bleu-3) 50%,transparent 0) 2.6rem 50%/18px 1px repeat-x}
.equipe[data-coupe]::before{left:var(--m);right:var(--m);max-width:var(--max);margin:0 auto}
.frise{border-left:1px dashed var(--bleu-3)}
.frise li::before{left:calc(-1.5rem - 8px);top:.3rem;width:0;height:0;background:none;border-left:8px solid transparent;border-right:8px solid transparent;border-top:12px solid var(--bleu)}
.frise li:last-child::before{background:none;border-top-color:var(--vert)}
.frise li::after{content:"";position:absolute;left:calc(-1.5rem + 10px);top:.3rem;width:1.1rem;height:1px;background:var(--bleu)}
.fr-date{padding-left:.4rem}
.bandeau-photo{position:relative}
.bandeau-photo::after{content:"";position:absolute;right:calc(var(--m) + 14px);bottom:3rem;width:8rem;height:2.2rem;background:url(/img/iso/echelle-clair.svg) right center/contain no-repeat;pointer-events:none}
.bandeau-photo::before{content:"";position:absolute;left:calc(var(--m) + 12px);top:12px;width:20px;height:20px;border-left:1.5px solid #fff;border-top:1.5px solid #fff;z-index:1;pointer-events:none}
.portrait-grand,.eq-photo{position:relative}
.portrait-grand::before{content:"";position:absolute;left:10px;top:10px;width:18px;height:18px;border-left:1.5px solid var(--encre);border-top:1.5px solid var(--encre);z-index:1}
.portrait-grand::after{content:"";position:absolute;right:-14px;top:0;bottom:4.6rem;width:9px;border-top:1.5px solid var(--encre);border-bottom:1.5px solid var(--encre);background:linear-gradient(var(--encre),var(--encre)) center/1px 100% no-repeat;opacity:.55}
.eq-photo::before{content:"";position:absolute;left:10px;top:10px;width:16px;height:16px;border-left:1.5px solid #fff;border-top:1.5px solid #fff;z-index:1;mix-blend-mode:difference}
/* ---- Cabinet : titres latéraux fixes, équipe en médaillons ---- */
@media (min-width:62rem){.trois-col>.intertitre{position:sticky;top:8rem;align-self:start}}
.eq-cartes li{display:flex;flex-direction:column;align-items:flex-start;padding:1.6rem 1.4rem 1.4rem}
.eq-photo{width:7rem;height:7rem;aspect-ratio:1;border-radius:50%;flex:none;outline:6px solid #fff}
.eq-photo img{border-radius:50%}
.eq-photo::after{width:1.4rem;right:-.2rem;bottom:-.2rem;border-radius:0}
.eq-photo::before{display:none}
.eq-initiale{font-size:2.8rem}
.eq-cartes .eq-nom{margin:1.2rem 0 .2rem}
.eq-cartes .eq-role{margin:0 0 .6rem}
.eq-cartes .eq-site{margin:auto 0 0}
.eq-cartes li:first-child .eq-photo img{object-position:50% 30%}
.trois-col[data-coupe="A"]{padding-top:calc(var(--espace) + 1rem)}
/* ---- Page Missions ---- */
.sommaire{position:sticky;top:6rem;z-index:15;background:#fff;border-bottom:1px solid var(--trait)}
.sommaire .cadre{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}
.sommaire a{display:flex;align-items:center;gap:.75rem;padding:.9rem .5rem;font-weight:600;font-size:.98rem;color:var(--encre);border-bottom:3px solid transparent;transition:color .2s,border-color .2s}
.sommaire a:hover{color:var(--bleu);border-bottom-color:var(--vert)}
.sommaire img{width:2.6rem;height:auto;transform:scale(1.4)}
.mission{position:relative;scroll-margin-top:11rem;padding-top:calc(var(--espace) + 1rem)}
.mission[data-coupe]::before{content:attr(data-coupe);position:absolute;top:calc(var(--espace) / 2 - 1rem);left:max(var(--m),calc((100% - var(--max))/2));right:max(var(--m),calc((100% - var(--max))/2));height:2rem;display:flex;align-items:center;text-indent:calc(1rem - .3em);font:600 .8rem var(--mono);color:#fff;background:radial-gradient(circle at 1rem 50%,var(--bleu) 0 .9rem,transparent .95rem) 0 0/2rem 2rem no-repeat,linear-gradient(90deg,var(--bleu-3) 50%,transparent 0) 2.6rem 50%/18px 1px repeat-x}
.mi-grille{display:grid;gap:2rem 3rem}
.mi-titre img{width:6.5rem;height:auto;margin:-1rem 0 .5rem -.5rem}
.mi-titre h2{font-size:clamp(1.8rem,3vw,2.6rem)}
.mi-nb{margin:.75rem 0 0;font:500 .9rem var(--mono);color:var(--bleu)}
.mi-sous{font-size:1.05rem;letter-spacing:0;margin:1.75rem 0 .75rem;color:var(--encre)}
.mi-contenu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px}
.mi-contenu li{background:var(--bleu-pale);padding:.8rem 1rem;font-weight:500;line-height:1.35;position:relative;padding-left:2.1rem}
.mi-contenu li::before{content:"";position:absolute;left:.9rem;top:1.15rem;width:.5rem;height:.5rem;background:var(--vert)}
.mi-refs{margin-top:3rem}
.mi-refs .tete{margin-bottom:1.25rem}
.mi-refs .mi-sous{margin:0}
.mission .planche{position:relative}
.mission .planche::before{content:"";position:absolute;left:10px;top:10px;width:18px;height:18px;border-left:1.5px solid var(--encre);border-top:1.5px solid var(--encre)}
.mission .phases{margin:1.25rem 0 0}
@media (min-width:62rem){
.mi-grille{grid-template-columns:minmax(0,3fr) minmax(0,5fr) minmax(0,4fr)}
.mi-titre{position:sticky;top:11rem;align-self:start}
.mission .planche{align-self:start;position:sticky;top:11rem}
.mi-refs .refs-grille{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:40rem){.sommaire a span{font-size:.82rem}.sommaire img{display:none}.mi-contenu{grid-template-columns:minmax(0,1fr)}}
.mission .phases{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px}
.mission .phases li{border-radius:0;background:var(--bleu);color:#fff}
.mission .phases li:last-child{background:var(--vert);color:var(--encre)}
.mission .phases .num{color:#dbe6f3}
.mission .phases li:last-child .num{color:var(--encre)}
/* ---- Page Cabinet : déclinaison du logo ---- */
.sommaire-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.cab-titre img,.cab-tete>img{width:6.5rem;height:auto;margin:-1rem 0 .5rem -.5rem}
.cab-titre .intertitre{font-size:clamp(1.6rem,2.6vw,2.2rem);letter-spacing:-.025em}
.cab-titre .mi-nb{margin-top:.5rem}
.cab-tete{display:block;max-width:var(--max);margin:0 auto}
.trois-col,.equipe,.clients{scroll-margin-top:11rem}
@media (min-width:62rem){.trois-col>.cab-titre{position:sticky;top:11rem;align-self:start;padding-top:0}}
@media (max-width:40rem){.sommaire-4 a span{font-size:.75rem}}
/* ---- Pied de page enrichi ---- */
.pied-grille-riche{display:grid;gap:2.5rem 2rem;padding:3rem 0 2.5rem;border-top:1px solid rgba(255,255,255,.14)}
.pied-agences{display:grid;gap:1.75rem}
.pied-lien-carte{display:inline-block;margin-top:.6rem;font-size:.92rem;font-weight:600;color:var(--vert);border-bottom:1px solid currentColor}
.pied-titre-col{margin:0 0 .9rem!important;font-size:.82rem!important;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#9aa6b6!important}
.pied-col ul{display:grid;gap:.5rem}
.pied-col li a{color:#e3e8ef;font-size:1rem;line-height:1.4}
.pied-col li a:hover{color:var(--vert)}
.pied-infos{display:grid;gap:1rem 2rem;padding:2rem 0;border-top:1px solid rgba(255,255,255,.14);font-size:.92rem;color:#c3ccd9}
.pied-infos p{margin:0}
.pied-infos b{display:block;font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#9aa6b6;margin-bottom:.25rem}
.pied-bas-liens{display:flex;gap:1.5rem}
@media (min-width:48rem){.pied-grille-riche{grid-template-columns:repeat(2,minmax(0,1fr))}.pied-infos{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:62rem){.pied-grille-riche{grid-template-columns:1.1fr 1fr .8fr 1.3fr}.pied-infos{grid-template-columns:1.6fr 1.6fr 1fr 1.4fr 1fr}}
/* ---- Page Références ---- */
.refs-outils{position:sticky;top:6rem;z-index:15;background:#fff;border-bottom:1px solid var(--trait);padding:1rem 0!important}
.refs-outils[hidden]{display:none}
.refs-outils .cadre{display:grid;gap:.6rem}
.refs-outils .filtres{gap:.4rem}
.refs-outils .filtre{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .8rem;font-size:.9rem;border-radius:3px}
.refs-outils .filtre img{width:1.7rem;height:auto;margin:-.3rem -.1rem;transform:scale(1.25)}
.refs-outils .filtre[aria-pressed=true] img{filter:brightness(1.6) saturate(.6)}
.filtres-secteurs .filtre{background:var(--bleu-pale);border-color:transparent}
.refs-barre{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.refs-barre .compteur{margin:0!important;font:500 .9rem var(--mono);color:var(--bleu)}
.vues{display:flex;gap:2px}
.vue{font:600 .88rem var(--sans);padding:.45rem .9rem;border:1px solid var(--trait);background:#fff;color:var(--encre);cursor:pointer;border-radius:3px}
.vue[aria-pressed=true]{background:var(--encre);color:#fff;border-color:var(--encre)}
.refs[data-coupe],.index[data-coupe]{padding-top:calc(var(--espace) + 1rem)!important}
.refs[data-coupe]::before,.index[data-coupe]::before{content:attr(data-coupe);position:absolute;top:calc(var(--espace) / 2 - 1rem);left:max(var(--m),calc((100% - var(--max))/2));right:max(var(--m),calc((100% - var(--max))/2));height:2rem;display:flex;align-items:center;text-indent:calc(1rem - .3em);font:600 .8rem var(--mono);color:#fff;background:radial-gradient(circle at 1rem 50%,var(--bleu) 0 .9rem,transparent .95rem) 0 0/2rem 2rem no-repeat,linear-gradient(90deg,var(--bleu-3) 50%,transparent 0) 2.6rem 50%/18px 1px repeat-x}
.refs-js .index{display:none}
.refs-js.vue-index .index{display:block}
.refs-js.vue-index .refs{display:none}
.refs-js .index .section-tete{display:none}
.carte-secteur{margin:0 0 .3rem!important;font:500 .78rem var(--mono)!important;color:var(--bleu)!important;text-transform:uppercase;letter-spacing:.04em}
.carte-missions{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.5rem!important}
.badge-cours{position:absolute;z-index:4;right:0;top:0;background:var(--vert);color:var(--encre);font-weight:600;font-size:.82rem;padding:.3rem .7rem}
.refs-grille li a .cadre{position:relative}
@media (max-width:48rem){.refs-outils{position:static}.refs-outils .filtres{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.25rem}.refs-outils .filtre{flex:none}}
.filtres-secteurs .filtre[aria-pressed=true]{background:var(--bleu);border-color:var(--bleu);color:#fff}
/* ---- Sélecteur Grille / Index ---- */
.vues{display:inline-flex;gap:0;border:1px solid var(--bleu);padding:2px;background:#fff}
.vue{position:relative;display:inline-flex;align-items:center;gap:.55rem;padding:.5rem .95rem .5rem .8rem;border:0;border-radius:0;background:transparent;color:var(--bleu);font:600 .88rem var(--sans);transition:background .2s,color .2s}
.vue::before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
.vue[data-vue=grille]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='0' y='0' width='7' height='7'/%3E%3Crect x='9' y='0' width='7' height='7'/%3E%3Crect x='0' y='9' width='7' height='7'/%3E%3Crect x='9' y='9' width='7' height='7'/%3E%3C/svg%3E")}
.vue[data-vue=index]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='0' y='1' width='3' height='3'/%3E%3Crect x='5' y='1.5' width='11' height='2'/%3E%3Crect x='0' y='6.5' width='3' height='3'/%3E%3Crect x='5' y='7' width='11' height='2'/%3E%3Crect x='0' y='12' width='3' height='3'/%3E%3Crect x='5' y='12.5' width='11' height='2'/%3E%3C/svg%3E")}
.vue:hover{background:var(--bleu-pale)}
.vue[aria-pressed=true]{background:var(--bleu);color:#fff}
.vue[aria-pressed=true]::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:3px;background:var(--vert)}
.vue:focus-visible{outline:2px solid var(--vert);outline-offset:2px}
/* ---- Séparateurs de la barre de filtres ---- */
.refs-outils .cadre{gap:0}
.refs-outils .filtres{align-items:center;padding:.55rem 0;border-bottom:1px solid var(--trait)}
.refs-outils .filtres::before{content:attr(data-titre);flex:none;width:6.5rem;font:500 .78rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gris)}
.refs-outils .filtres-secteurs{border-bottom:0}
.refs-barre{position:relative;margin-top:.5rem;padding-top:.85rem}
.refs-barre::before{content:"";position:absolute;left:0;right:0;top:0;height:9px;border-left:1.5px solid var(--encre);border-right:1.5px solid var(--encre);background:linear-gradient(var(--encre),var(--encre)) center/100% 1px no-repeat;opacity:.35}
@media (max-width:48rem){.refs-outils .filtres::before{width:auto;margin-right:.6rem}}
@media (min-width:48rem){.refs-outils .filtres{position:relative;padding-left:6.5rem}.refs-outils .filtres::before{position:absolute;left:0;top:1.05rem}}
/* ---- Fiche référence ---- */
.fiche-secteur{margin:0 0 .75rem;font:500 .8rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--bleu)}
.fiche-etiquettes{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.25rem}
.fiche-mission{display:inline-flex;align-items:center;gap:.45rem;background:#fff;padding:.35rem .75rem .35rem .45rem;font-weight:600;font-size:.9rem}
.fiche-mission img{width:1.8rem;height:auto;margin:-.3rem 0;transform:scale(1.25)}
.badge-statut{display:inline-flex;align-items:center;padding:.35rem .75rem;background:var(--encre);color:#fff;font-weight:600;font-size:.9rem}
.badge-statut.cours{background:var(--vert);color:var(--encre)}
.fiche-faits{padding-top:0!important}
.fiche-faits dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;border:1.5px solid var(--encre);background:#fff;position:relative;z-index:2}
.fiche-faits dl>div{padding:1rem 1.2rem;border-right:1px solid var(--trait);border-bottom:1px solid var(--trait)}
.fiche-faits dt{font:500 .75rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gris)}
.fiche-faits dd{margin:.35rem 0 0;font-size:clamp(1.05rem,1.6vw,1.35rem);font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.fiche-ouverture{padding-bottom:5.5rem}
.fiche-faits{margin-top:-3rem}
.planche-projet[data-coupe],.fiche-corps[data-coupe],.galerie[data-coupe],.similaires[data-coupe]{position:relative;padding-top:calc(var(--espace) + 1rem)!important}
.planche-projet[data-coupe]::before,.fiche-corps[data-coupe]::before,.galerie[data-coupe]::before,.similaires[data-coupe]::before{content:attr(data-coupe);position:absolute;top:calc(var(--espace) / 2 - 1rem);left:max(var(--m),calc((100% - var(--max))/2));right:max(var(--m),calc((100% - var(--max))/2));height:2rem;display:flex;align-items:center;text-indent:calc(1rem - .3em);font:600 .8rem var(--mono);color:#fff;background:radial-gradient(circle at 1rem 50%,var(--bleu) 0 .9rem,transparent .95rem) 0 0/2rem 2rem no-repeat,linear-gradient(90deg,var(--bleu-3) 50%,transparent 0) 2.6rem 50%/18px 1px repeat-x}
.planche-projet[data-coupe]{padding-top:4rem!important}
.planche-projet[data-coupe]::before{top:1rem}
.similaires{padding-top:var(--espace)}
.similaires .refs-grille{grid-template-columns:repeat(1,minmax(0,1fr))}
.suite a{display:flex;align-items:center;gap:1rem}
.suite a:last-child{justify-content:flex-end}
.suite a img{width:6.5rem;height:4.5rem;object-fit:cover;flex:none;background:#fff;mix-blend-mode:multiply}
@media (min-width:48rem){.fiche-faits dl{grid-template-columns:repeat(4,minmax(0,1fr))}.similaires .refs-grille{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:62rem){.fiche-corps .cartouche{position:sticky;top:8rem}}
/* ---- Précédente / suivante : grille commune, collée au pied ---- */
.suite{max-width:calc(var(--max) + 2*var(--m));margin:var(--espace) auto 0;padding:0 var(--m);gap:2px}
.suite a{border-radius:0}
main:has(>.suite:last-child)+.pied{margin-top:0}
main>.suite:last-child{margin-bottom:0}
/* ---- Fiche : cartouche dans le bandeau, barre suivante collante, visionneuse ---- */
.fiche-ouverture{padding-bottom:2rem}
.fiche-faits{margin-top:0;background:var(--bleu-pale);padding-bottom:3rem!important}
.fiche-faits dl{max-width:var(--max);margin:0 auto}
.suite{position:sticky;bottom:0;z-index:12;margin-top:var(--espace);background:#fff;padding-top:.5rem;padding-bottom:.5rem;box-shadow:0 -1px 0 var(--trait)}
.suite a{padding:.75rem 1rem;font-size:1rem}
.suite a img{width:4.5rem;height:3rem}
.suite .suite-sens{margin-bottom:.15rem}
.visionneuse{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:rgba(14,22,34,.94);padding:4rem 4.5rem}
.visionneuse[hidden]{display:none}
.visionneuse img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 0 0 1px rgba(255,255,255,.12)}
.vis-legende{position:absolute;left:0;right:0;bottom:1.2rem;margin:0;text-align:center;color:#c3ccd9;font-size:.92rem}
.visionneuse button{position:absolute;display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;font:400 2rem/1 var(--sans);cursor:pointer;transition:background .2s,border-color .2s}
.visionneuse button:hover{background:var(--bleu);border-color:var(--bleu)}
.vis-fermer{top:1rem;right:1rem}
.vis-prec{left:1rem;top:50%;transform:translateY(-50%)}
.vis-suiv{right:1rem;top:50%;transform:translateY(-50%)}
.vis-ouverte{overflow:hidden}
.galerie a{cursor:zoom-in}
@media (max-width:40rem){.visionneuse{padding:3.5rem .5rem}.vis-prec,.vis-suiv{top:auto;bottom:3rem;transform:none}}
/* ---- Fiche : comparateur, ratio, intervenants ---- */
.comparateur{position:relative}
.comparateur-photo{display:none}
.comparateur.actif .comparateur-photo{display:block;position:absolute;inset:0;clip-path:inset(0 0 0 var(--coupe,50%))}
.comparateur.actif .comparateur-photo img{width:100%;height:100%;object-fit:cover}
.comparateur.actif::after{content:"";position:absolute;top:0;bottom:0;left:var(--coupe,50%);width:2px;margin-left:-1px;background:var(--vert);pointer-events:none}
.comparateur-curseur{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;z-index:3}
.comparateur-curseur:focus-visible+*{outline:2px solid var(--bleu)}
.comparateur.actif .comparateur-curseur:focus-visible{opacity:0}
.comparateur.actif:focus-within::after{width:4px;margin-left:-2px}
.comparateur.actif::before{content:"Dessin   |   Photo";position:absolute;z-index:2;top:.75rem;left:var(--coupe,50%);transform:translateX(-50%);background:var(--encre);color:#fff;font:600 .78rem var(--sans);padding:.3rem .7rem;white-space:pre;pointer-events:none}
.intervenants{position:relative;padding-top:calc(var(--espace) + 1rem)!important}
.intervenants::before{content:attr(data-coupe);position:absolute;top:calc(var(--espace) / 2 - 1rem);left:max(var(--m),calc((100% - var(--max))/2));right:max(var(--m),calc((100% - var(--max))/2));height:2rem;display:flex;align-items:center;text-indent:calc(1rem - .3em);font:600 .8rem var(--mono);color:#fff;background:radial-gradient(circle at 1rem 50%,var(--bleu) 0 .9rem,transparent .95rem) 0 0/2rem 2rem no-repeat,linear-gradient(90deg,var(--bleu-3) 50%,transparent 0) 2.6rem 50%/18px 1px repeat-x}
.intervenants .intertitre{margin-bottom:1rem}
.intervenants table{width:100%;border-collapse:collapse;font-size:1rem}
.intervenants th,.intervenants td{text-align:left;padding:.85rem 1rem;border-bottom:1px solid var(--trait)}
.intervenants thead th{font:500 .75rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gris);border-bottom:1.5px solid var(--encre)}
.intervenants tbody th{font-weight:600}
.intervenants td{color:var(--gris)}
.intervenants tr.trec{background:var(--bleu-pale)}
.intervenants tr.trec th{color:var(--bleu)}
.intervenants tr.trec th::after{content:"";display:inline-block;width:.55rem;height:.55rem;background:var(--vert);margin-left:.6rem;vertical-align:.1rem}
@media (min-width:48rem){.fiche-faits dl:has(>div:nth-child(5)){grid-template-columns:repeat(5,minmax(0,1fr))}}
/* ---- Page Contact ---- */
.contact[data-coupe],.territoire[data-coupe]{position:relative;padding-top:calc(var(--espace) + 1rem)}
.contact[data-coupe]::before,.territoire[data-coupe]::before{content:attr(data-coupe);position:absolute;top:calc(var(--espace) / 2 - 1rem);left:max(var(--m),calc((100% - var(--max))/2));right:max(var(--m),calc((100% - var(--max))/2));height:2rem;display:flex;align-items:center;text-indent:calc(1rem - .3em);font:600 .8rem var(--mono);color:#fff;background:radial-gradient(circle at 1rem 50%,var(--bleu) 0 .9rem,transparent .95rem) 0 0/2rem 2rem no-repeat,linear-gradient(90deg,var(--bleu-3) 50%,transparent 0) 2.6rem 50%/18px 1px repeat-x}
.agence{position:relative}
.agence img{width:4.5rem;height:auto;margin:-.6rem 0 .3rem -.4rem}
.agence .lien{margin-top:.75rem;font-size:.95rem}
.choix-mission{border:0;margin:0;padding:0}
.choix-mission legend{font-size:.92rem;font-weight:600;margin-bottom:.6rem;padding:0}
.choix-grille{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px}
.choix{position:relative;display:flex;align-items:center;gap:.6rem;padding:.75rem .9rem;background:#fff;border:1px solid var(--trait);cursor:pointer;font-weight:600;font-size:.95rem;line-height:1.3;transition:border-color .2s,background .2s}
.choix img{width:2.4rem;height:auto;margin:-.4rem 0;transform:scale(1.3)}
.choix input{position:absolute;opacity:0;pointer-events:none}
.choix:hover{border-color:var(--bleu-3)}
.choix:has(input:checked){border-color:var(--bleu);background:var(--bleu);color:#fff}
.choix:has(input:checked) img{filter:brightness(1.7) saturate(.5)}
.choix:has(input:focus-visible){outline:2px solid var(--vert);outline-offset:2px}
.facultatif{font-weight:400;color:var(--gris)}
.champ textarea::placeholder{color:#8a93a3}
.territoire-grille{display:grid;gap:2rem 3rem;align-items:start}
.carte{padding:1rem 1rem 0}
.carte img{width:100%;height:auto}
.legende-carte{display:grid;gap:.6rem;margin:1.5rem 0}
.legende-carte li{display:flex;align-items:center;gap:.75rem;color:var(--encre)}
.lg-agence{width:12px;height:12px;background:var(--vert);border:1.5px solid var(--encre);transform:rotate(45deg);flex:none}
.lg-point{width:12px;height:12px;border-radius:50%;background:var(--bleu);flex:none}
.lg-dep{width:16px;height:12px;background:var(--bleu-pale);border:1px solid #9bb3d1;flex:none}
@media (min-width:62rem){.territoire-grille{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.territoire{padding-left:max(var(--m),calc((100% - var(--max))/2));padding-right:max(var(--m),calc((100% - var(--max))/2))}}
/* ---- Cabinet : planches et sticky ---- */
.cab-droite{display:grid;gap:2rem;align-self:start}
.cab-droite .planche,.cab-planche,.equipe-planche{position:relative}
.cab-droite .planche::before,.cab-planche::before,.equipe-planche::before{content:"";position:absolute;left:10px;top:10px;width:18px;height:18px;border-left:1.5px solid var(--encre);border-top:1.5px solid var(--encre)}
.cab-planche{margin-top:2rem!important}
.equipe-grille{display:grid;gap:2rem}
@media (min-width:62rem){
.cab-droite{position:sticky;top:11rem}
.trois-col.direction .portrait-grand{position:sticky;top:11rem}
.equipe-grille{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start}
.equipe-planche{position:sticky;top:11rem}
.equipe-grille .eq-cartes{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* ---- Barre de filtres compacte au défilement ---- */
.refs-resume,.refs-deplier{display:none}
.refs-outils.replie{padding:.5rem 0!important}
.refs-outils.replie .filtres{display:none}
.refs-outils.replie.deplie .filtres{display:flex}
.refs-outils.replie .refs-barre{margin-top:0;padding-top:0}
.refs-outils.replie .refs-barre::before{display:none}
.refs-outils.replie .refs-resume{display:block;margin:0;font-size:.92rem;font-weight:600;color:var(--encre);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.refs-outils.replie .refs-deplier{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .8rem;border:1px solid var(--trait);background:#fff;color:var(--bleu);font:600 .85rem var(--sans);cursor:pointer;border-radius:3px;flex:none}
.refs-outils.replie .refs-deplier::after{content:"";width:.4rem;height:.4rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.refs-outils.replie.deplie .refs-deplier::after{transform:rotate(-135deg) translateY(-1px)}
.refs-outils.replie .refs-barre{display:flex;align-items:center;gap:1rem}
.refs-outils.replie .compteur{flex:none}
.refs-outils.replie .refs-resume{flex:1}
.refs-outils.replie.deplie .refs-barre{margin-top:.5rem}
@media (max-width:40rem){.refs-outils.replie .refs-resume{display:none}}
@media (max-width:48rem){.refs-outils.replie{position:sticky;top:81px}.refs-outils.replie .refs-barre{gap:.6rem}.refs-outils.replie .vues{margin-left:auto}.refs-outils.replie .refs-deplier{padding:.4rem .6rem}}
@media (max-width:48rem){.refs-outils.replie .vue{font-size:0;gap:0;padding:.55rem .65rem}.refs-outils.replie .compteur{font-size:.85rem}}
/* ---- Animations légères ---- */
@media (prefers-reduced-motion:no-preference){
html{scroll-behavior:smooth;scroll-padding-top:7rem}
.anim-js .anim{opacity:0;transform:translateY(14px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}
.anim-js .anim.vu{opacity:1;transform:none}
.anim-js figure.anim{transform:translateY(20px)}
}
/* ---- Dessin par défaut, photo définitive au survol ---- */
.galerie-accueil a{background:var(--bleu-pale)}
.galerie-accueil img.trait{object-fit:contain;padding:7% 6% 12%;mix-blend-mode:multiply;background:#fff}
.galerie-accueil a:first-child img.trait{padding:6% 5% 9%}
.galerie-accueil a:hover img.trait{transform:none}
.refs-grille .cadre,.galerie-accueil a,.mi-refs .cadre{position:relative}
img.survol{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .45s cubic-bezier(.2,.7,.2,1);pointer-events:none;transform:none!important}
a:hover img.survol,a:focus-visible img.survol{opacity:1}
@media (hover:none){img.survol{display:none}}
.dp-photo{display:block;align-self:stretch}
.dp-photo img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:50% 50%}
@media (min-width:62rem){.dessin-photo .cadre{grid-template-columns:max(calc(var(--m) - 2px),calc((100% - var(--max))/2 - 2px)) minmax(0,1fr) minmax(0,1.3fr) minmax(0,1.3fr)}}
@media (max-width:61.99rem){.dp-photo{aspect-ratio:16/10}}
img.survol{object-fit:contain;background:var(--bleu-pale)}
.jeu-svg{cursor:default}
@media (max-width:47.99rem){.titre-page::after,.fiche-ouverture::after{width:8.5rem;right:-1.5rem;bottom:-1.5rem;opacity:.5}}
/* ---- Mégamenu plein écran (mobile et tablette) ---- */
.mm{display:none}
@media (max-width:61.99rem){
html.menu-bloque{overflow:hidden}
.menu-js.menu-ouvert .menu{display:block;position:fixed;left:0;right:0;top:var(--bas-entete,5rem);bottom:0;z-index:60;margin:0;padding:0;background:#fff;border-top:1px solid var(--trait);overflow-y:auto;overscroll-behavior:contain;animation:mm-entree .28s cubic-bezier(.2,.7,.2,1)}
.menu-js.menu-ouvert .menu>a{display:none}
.menu-ouvert .mm{display:grid;grid-template-columns:1fr;gap:0}
.mm-col{padding:1.4rem var(--m) 1.2rem;border-bottom:1px solid var(--trait)}
.entete nav.menu .mm a{padding:0;font-weight:500;color:var(--encre)}
.entete nav.menu .mm a::after{display:none}
.entete nav.menu .mm-titre{display:flex;align-items:center;justify-content:space-between;font-size:1.6rem;font-weight:700;letter-spacing:-.01em;color:var(--encre)}
.entete nav.menu .mm-titre::after{content:"";display:block!important;position:static;width:.6rem;height:.6rem;border-right:2px solid var(--bleu);border-top:2px solid var(--bleu);background:none;transform:rotate(45deg)}
.mm-sous{list-style:none;margin:.9rem 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:.15rem}
.entete nav.menu .mm-sous a{display:flex;align-items:center;gap:.75rem;min-height:2.9rem;padding:.25rem 0;font-size:1rem;color:var(--encre)}
.entete nav.menu .mm-sous a:hover{color:var(--bleu)}
.mm-sous img{width:2.6rem;height:auto;flex:none}
.mm-pied{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;padding:1.6rem var(--m) 2.2rem;background:var(--bleu-pale)}
.entete nav.menu .mm-tel{font-size:1.5rem;font-weight:700;color:var(--bleu)}
.entete nav.menu .mm-pied .btn{padding:.85rem 1.3rem;color:#fff;background:var(--bleu)}
.mm-pied p{flex-basis:100%;margin:0;font-size:.9rem;color:var(--gris)}
@media (min-width:40rem){.menu-ouvert .mm{grid-template-columns:1fr 1fr}.mm-col:nth-child(3){grid-column:1/-1}.mm-col:nth-child(3) .mm-sous{grid-template-columns:1fr 1fr}.mm-col:nth-child(odd):not(:nth-child(3)){border-right:1px solid var(--trait)}}
@media (min-width:48rem){.menu-ouvert .mm{grid-template-columns:repeat(3,1fr)}.mm-col:nth-child(3){grid-column:auto}.mm-col:nth-child(3) .mm-sous{grid-template-columns:1fr}.mm-col:not(:nth-child(3)){border-right:1px solid var(--trait)}.mm-pied{grid-column:1/-1}}
.mm-pied{grid-column:1/-1}
}
@keyframes mm-entree{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
/* ---- Responsive : petits écrans ---- */
h1,h2,h3{overflow-wrap:break-word}
.missions .cadre{grid-template-columns:minmax(0,1fr)}
@media (min-width:62rem){.missions .cadre{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}}
@media (max-width:26rem){.missions li a{grid-template-columns:3.6rem minmax(0,1fr);gap:.3rem 1rem;padding:1.2rem 1.1rem}.missions li img{width:3.6rem}.missions h3{font-size:1.2rem;hyphens:auto}}
.fil-ariane a,.agence .lien{display:inline-flex;align-items:center;min-height:2.75rem}
@media (max-width:40rem){.suite a{padding:.6rem .75rem;font-size:.88rem;gap:.6rem;min-width:0}.suite a img{display:none}.suite a>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.suite .suite-sens{font-size:.75rem}}
@media (max-width:30rem){.fiche-ouverture::after{display:none}}
/* ---- Ouverture : carrousel des planches ---- */
.hc{position:relative;display:flex;flex-direction:column;justify-content:center;min-width:0;background:#fff}
.hc-piste{display:flex;margin:0;padding:0;list-style:none;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.hc-piste::-webkit-scrollbar{display:none}
.hc-piste li{flex:0 0 100%;scroll-snap-align:start;min-width:0}
.hc-piste a{display:block;color:var(--encre)}
.hc-piste img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:contain;transition:transform 1.2s var(--sortie)}
.hc-piste a:hover img{transform:scale(1.02)}
.hc-legende{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:1rem 0 0;border-top:1px solid var(--trait);margin-top:1rem}
.hc-legende b{font-size:1.05rem}
.hc-legende span{font-size:.92rem;color:var(--gris);text-align:right}
.hc-bas{display:flex;align-items:center;gap:1rem;margin-top:1.25rem}
.hc-compteur{margin:0;font:500 .9rem var(--mono);color:var(--gris);flex:none}
.hc-compteur b{color:var(--bleu);font-weight:600}
.hc-barre{position:relative;flex:1;height:2px;background:var(--trait);overflow:hidden}
.hc-barre span{position:absolute;inset:0;background:var(--vert);transform:scaleX(0);transform-origin:left}
.hc-prec,.hc-suiv{display:inline-grid;place-items:center;width:2.75rem;height:2.75rem;flex:none;border:1px solid var(--trait);background:#fff;color:var(--bleu);cursor:pointer;border-radius:3px;transition:background .2s,color .2s,border-color .2s}
.hc-prec[hidden],.hc-suiv[hidden]{display:none}
.hc-prec::before,.hc-suiv::before{content:"";width:.55rem;height:.55rem;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);margin-right:.2rem}
.hc-prec::before{transform:rotate(-135deg);margin:0 0 0 .2rem}
.hc-prec:hover,.hc-suiv:hover{background:var(--bleu);border-color:var(--bleu);color:#fff}
.hc-prec:focus-visible,.hc-suiv:focus-visible{outline:2px solid var(--vert);outline-offset:2px}
@media (min-width:62rem){.ouv .hc{padding:2rem 0}}
.hc-compteur,.hc-barre{display:none}
.hc-bas{justify-content:flex-end;gap:.5rem}
.ca-final{padding-bottom:var(--espace)}.ca-final .actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.75rem;margin-top:1.75rem}
