/* ---------- Pages internes ---------- */
.page-hero{padding:var(--e-80) 0}
.page-hero .wrap{display:flex;flex-direction:column;gap:var(--e-16);max-width:var(--l-large)}
.page-hero--court{padding:var(--e-64) 0}
.page-hero--court h1{font-size:var(--t-2xl);max-width:900px}
.page-hero h1{margin:0;font-size:var(--t-3xl);line-height:var(--i-titre);letter-spacing:var(--approche-titre)}
.page-hero p{margin:0;max-width:640px;font-size:var(--t-l);color:var(--vert-clair)}
.ariane ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--e-8);font-size:var(--t-xs);color:var(--gris-sombre)}
.ariane li+li::before{content:"/";margin-right:var(--e-8);opacity:.6}
.ariane a{color:var(--vert-clair);text-decoration:none}.ariane a:hover{text-decoration:underline}
.ariane [aria-current]{color:var(--surface-claire);font-weight:600}
.contenu{padding:var(--e-48) 0 var(--e-section)}
/* filtres */
.filtres{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--e-16) var(--e-24);padding-bottom:var(--e-32);margin-bottom:var(--e-32);border-bottom:1px solid var(--gris-10)}
.filtre{display:flex;flex-direction:column;gap:var(--e-8)}
.filtre-titre{font-size:var(--t-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--encre-douce)}
.puces{display:flex;flex-wrap:wrap;gap:var(--e-8)}
.puce{min-height:44px;padding:0 var(--e-16);border-radius:var(--r);border:1px solid var(--gris);background:var(--surface-claire);color:var(--encre);font:inherit;font-size:var(--t-s);font-weight:600;cursor:pointer}
.puce:hover{border-color:var(--vert);color:var(--vert-fonce)}
.puce[aria-pressed="true"]{background:var(--vert);border-color:var(--vert);color:var(--surface-claire)}
.champ{min-height:44px;padding:0 var(--e-16);border-radius:var(--r);border:1px solid var(--gris);background:var(--surface-claire);color:var(--encre);font:inherit;font-size:var(--t-s);min-width:200px}
.champ:focus,.puce:focus-visible{outline:2px solid var(--vert-profond);outline-offset:2px}
.compteur{margin:0 0 var(--e-24);font-size:var(--t-s);color:var(--encre-douce)}
.grille-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--e-32) var(--e-24)}
.grille-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--e-32) var(--e-24)}
@media (max-width:1024px){.grille-4{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.grille-3,.grille-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.grille-3{grid-template-columns:1fr}.grille-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--e-24) var(--e-16)}}
/* vignette vidéo */
.video{position:relative;aspect-ratio:16/9;background:var(--vert-nuit);color:var(--gris-sombre);display:flex;align-items:center;justify-content:center;font-size:var(--t-xs)}
.video-play{width:64px;height:64px;border-radius:50%;background:var(--sable);color:var(--encre);display:flex;align-items:center;justify-content:center}
.video-tags{position:absolute;right:var(--e-12);bottom:var(--e-12);display:flex;gap:var(--e-8)}
.video-label{position:absolute;top:var(--e-12);left:var(--e-12)}
.carte-titre{margin:0;font-size:var(--t-l);line-height:var(--i-ajuste)}
.carte-corps{padding:var(--e-24);display:flex;flex-direction:column;gap:var(--e-12);flex:1}
.carte-meta{font-size:var(--t-xs);color:var(--encre-douce)}
.pagination{display:flex;justify-content:center;gap:var(--e-8);margin-top:var(--e-48)}
.pagination a,.pagination span{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r);border:1px solid var(--gris-10);text-decoration:none;color:var(--encre);font-weight:600}
.pagination [aria-current]{background:var(--vert);border-color:var(--vert);color:var(--surface-claire)}
.titre-section{margin:0 0 var(--e-24);font-size:var(--t-2xl);line-height:var(--i-serre)}
/* ---------- Blocs partagés (cartes, bulletin, navigation de section) ---------- */
.proj-dom{font-size:var(--t-xs);font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.proj-titre{margin:0;font-size:var(--t-s);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.proj-meta{margin-top:auto}
.proj-bailleur{display:flex;align-items:center;gap:var(--e-8);padding-top:var(--e-12);border-top:1px solid var(--gris-10);font-size:var(--t-xs);font-weight:600;color:var(--encre-douce)}
.proj-logo{width:28px;height:28px;border-radius:50%;background:#fff;border:1px solid var(--gris-10);flex:none}
.pub{display:flex;flex-direction:column;gap:var(--e-8);text-decoration:none;color:var(--encre)}
.pub-couv{aspect-ratio:210/297;border-radius:var(--r);padding:var(--e-16);box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;margin-bottom:var(--e-8);box-shadow:var(--ombre-panneau);transition:transform var(--duree) var(--sortie)}
.pub:hover .pub-couv{transform:translateY(-6px)}
.pub-couv-marque{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.85}
.pub-couv-titre{font-family:var(--f-titre);font-size:var(--t-l);font-weight:800;line-height:var(--i-titre);letter-spacing:var(--approche-titre);overflow-wrap:break-word;hyphens:auto}
.pub-type{font-size:var(--t-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--vert-fonce)}
.pub-titre{font-weight:600;line-height:var(--i-ajuste)}
.pub:hover .pub-titre{color:var(--vert-fonce)}
.recherche-pub{flex:1 1 280px;min-width:0}
.recherche-pub .champ{width:100%;box-sizing:border-box}
@media (max-width:600px){.pub-couv{padding:var(--e-12)}.pub-couv-titre{font-size:var(--t-m)}}
.album{display:flex;flex-direction:column;gap:var(--e-12);text-decoration:none;color:var(--encre)}
.album-couv{position:relative;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;transition:transform var(--duree) var(--sortie);box-shadow:var(--ombre-panneau)}
.album:hover .album-couv{transform:translateY(-4px)}
.album-badge{position:absolute;left:var(--e-12);bottom:var(--e-12);display:flex;gap:var(--e-8)}
.album-titre{font-weight:700;font-size:var(--t-l);line-height:var(--i-ajuste)}
.album:hover .album-titre{color:var(--vert-fonce)}
.actu-meta{margin:0;display:flex;flex-wrap:wrap;gap:var(--e-8);font-size:var(--t-xs);color:var(--encre-douce)}
.actu-cat{font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--vert-fonce)}
.actu{display:flex;flex-direction:column;gap:var(--e-16);text-decoration:none;color:var(--encre)}
.actu-img{overflow:hidden;border-radius:var(--r)}
.actu-img .ph{aspect-ratio:3/2;transition:transform .6s var(--sortie)}
.actu--grand .actu-img .ph{aspect-ratio:16/9}
.actu:hover .actu-img .ph{transform:scale(1.04)}
.actu-texte{display:flex;flex-direction:column;gap:var(--e-8);align-items:flex-start}
.actu-titre{margin:0;font-size:var(--t-l);line-height:var(--i-ajuste);font-weight:700;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color var(--duree) var(--sortie)}
.actu--grand .actu-titre{font-size:var(--t-xl)}
.actu:hover .actu-titre{text-decoration-color:currentColor}
.actu-chapo{margin:0;color:var(--encre-douce);line-height:var(--i-base)}
.actu:focus-visible{outline:2px solid var(--vert-profond);outline-offset:4px;border-radius:var(--r)}
.une{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;gap:var(--e-48);text-decoration:none;color:var(--encre);margin-bottom:var(--e-64)}
.une .actu-img .ph{aspect-ratio:16/10}
.une-texte{display:flex;flex-direction:column;gap:var(--e-16);align-items:flex-start}
.une-surtitre{font-size:var(--t-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--brique)}
.une .actu-titre{font-size:var(--t-2xl);line-height:var(--i-serre);letter-spacing:var(--approche-titre)}
.une .actu-chapo{font-size:var(--t-m)}
.une:hover .actu-titre{text-decoration-color:currentColor}
.une:hover .actu-img .ph{transform:scale(1.03)}
.filtres-actus{position:sticky;top:var(--h-entete);z-index:5;background:var(--surface-claire);padding:var(--e-16) 0;margin-bottom:var(--e-48);border-bottom:1px solid var(--gris-10)}
.filtres-actus .filtres{padding:0;margin:0;border:0}
.filtres-actus .filtres{align-items:center;gap:var(--e-12)}
.filtres-actus .filtre-titre{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.filtres-actus .filtre:first-child{margin-right:auto}
.filtres-actus .champ{min-width:0;width:220px}
@media (min-width:1181px){.filtres-actus .filtres{flex-wrap:nowrap}.filtres-actus .champ{width:200px}}
.mosaique{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--e-64) var(--e-32)}
.mosaique .actu--grand{grid-column:span 2}
.grille-actus{gap:var(--e-48) var(--e-32)}
.charger{display:flex;justify-content:center;margin-top:var(--e-64)}
@media (max-width:1180px){.filtres-actus{position:static}}
@media (max-width:900px){.une{grid-template-columns:1fr;gap:var(--e-24)}.mosaique{grid-template-columns:repeat(2,minmax(0,1fr))}.filtres-actus .champ{width:100%}.filtres-actus .filtre:not(:first-child){flex:1 1 200px}}
@media (max-width:600px){.mosaique{grid-template-columns:1fr;gap:var(--e-48)}.mosaique .actu--grand{grid-column:auto}.une .actu-titre{font-size:var(--t-xl)}}
.bulletin{padding:var(--e-80) 0}
.bulletin-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--e-48);align-items:center}
.bulletin h2{margin:var(--e-8) 0 var(--e-12);font-size:var(--t-2xl);line-height:var(--i-serre)}
.bulletin p{margin:0;color:var(--vert-clair)}
.surtitre-clair{font-size:var(--t-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--sable)!important}
.bulletin-form{display:flex;flex-direction:column;gap:var(--e-12)}
.bulletin-form > label{font-weight:600}
.bulletin-ligne{display:flex;gap:var(--e-8);flex-wrap:wrap}
.bulletin-ligne input{flex:1;min-width:220px;min-height:48px;padding:0 var(--e-16);border-radius:var(--r);border:0;font:inherit;color:var(--encre)}
.bulletin-ligne input:focus,.bulletin-case input:focus-visible{outline:2px solid var(--sable);outline-offset:2px}
.btn-sable{background:var(--sable);color:var(--encre)}
.bulletin-case{display:flex;gap:var(--e-8);align-items:flex-start;font-size:var(--t-s);color:var(--vert-clair)}
.bulletin-case input{width:20px;height:20px;margin:2px 0 0;flex:none;accent-color:var(--sable)}
.bulletin-case a{color:var(--surface-claire)}
.bulletin-ok{font-weight:600;color:var(--surface-claire)!important}
@media (max-width:900px){.bulletin-grille{grid-template-columns:1fr}}
.dom-tete{display:flex;justify-content:space-between;align-items:end;gap:var(--e-16);flex-wrap:wrap;margin-bottom:var(--e-32)}
.qsn-section{padding:var(--e-section) 0}
.qsn-section h2{margin:0 0 var(--e-32);font-size:var(--t-2xl);line-height:var(--i-serre)}
.surtitre{display:block;margin-bottom:var(--e-12);font-size:var(--t-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brique)}
.part-grille{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--e-24)}
@media (max-width:900px){.part-grille{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.part-grille{grid-template-columns:1fr}}
.part{display:flex;flex-direction:column;background:var(--surface-claire);border:1px solid var(--gris-10);border-radius:var(--r);overflow:hidden;transition:box-shadow var(--duree) var(--sortie)}
.part:hover{box-shadow:var(--ombre-panneau)}
.part-logo{height:120px;display:flex;align-items:center;justify-content:center;background:#fff;border-bottom:1px solid var(--gris-10);font-family:var(--f-titre);font-size:var(--t-xl);font-weight:800;color:var(--encre-douce);letter-spacing:.02em}
.part-corps{padding:var(--e-24);display:flex;flex-direction:column;gap:var(--e-12);flex:1}
.part-type{font-size:var(--t-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--vert-fonce)}
.part-nom{margin:0;font-size:var(--t-l);line-height:var(--i-ajuste)}
.part-nom a{color:var(--encre);text-decoration:none}.part-nom a:hover{color:var(--vert-fonce);text-decoration:underline}
.part-infos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--e-4);font-size:var(--t-s)}
.part-infos li{display:flex;gap:var(--e-8);align-items:center;color:var(--encre)}
.part-infos svg{flex:none;color:var(--vert-fonce)}
.part-infos a{color:var(--vert-fonce);font-weight:600;display:inline-flex;align-items:center;gap:4px;min-height:44px}
.part-pied{margin-top:auto;padding-top:var(--e-12);border-top:1px solid var(--gris-10);display:flex;justify-content:space-between;align-items:center;gap:var(--e-8)}
.part-pied a{color:var(--vert-fonce);font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:var(--e-8);min-height:44px}
.part-pied a:hover{text-decoration:underline}
/* ---------- Site : photos réelles, filtres en liens, formulaires ---------- */
.ph-photo{background-size:cover;background-position:center;background-repeat:no-repeat;color:transparent}
a.puce{display:inline-flex;align-items:center;text-decoration:none}
.vide{margin:0;padding:var(--e-48) var(--e-24);text-align:center;border:1px dashed var(--gris-30);border-radius:var(--r);color:var(--encre-douce)}
.alerte{margin:0 0 var(--e-24);padding:var(--e-16) var(--e-24);border-radius:var(--r);background:var(--vert-clair);color:var(--vert-profond);font-weight:600}
.alerte--erreur{background:var(--brique-clair);color:var(--brique)}
.erreur-champ{margin:0;font-size:var(--t-xs);font-weight:600;color:var(--brique)}
.formulaire{display:flex;flex-direction:column;gap:var(--e-24);max-width:var(--l-contenu)}
.formulaire .ligne{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--e-24)}
.formulaire label{display:flex;flex-direction:column;gap:var(--e-8);font-weight:600;font-size:var(--t-s)}
.formulaire .champ{width:100%;box-sizing:border-box;min-width:0}
.formulaire textarea.champ{min-height:180px;padding:var(--e-12) var(--e-16);resize:vertical;line-height:var(--i-base)}
.formulaire .facultatif{font-weight:400;color:var(--encre-douce)}
.piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.texte-riche{max-width:var(--l-contenu);line-height:var(--i-aere)}
.texte-riche h2,.texte-riche h3{line-height:var(--i-serre)}
.contact-grille{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--e-64);align-items:start}
@media (max-width:900px){.contact-grille{grid-template-columns:1fr;gap:var(--e-48)}}
@media (max-width:600px){.formulaire .ligne{grid-template-columns:1fr}}
/* ---------- Blocs de page : diaporama (haut de page en photos) et présentation en deux colonnes ---------- */
/* Diaporama : la photo occupe tout l'espace, le texte court est en bas */
.hero-slider{height:clamp(520px,82vh,760px)}
.hs-piste{display:flex;height:100%;transition:transform .6s var(--sortie)}
.hs-slide{flex:0 0 100%;position:relative}
.hero-slider .hero-courbe{z-index:3}
.hs-photo{position:absolute;inset:0;background-size:cover;background-position:center}
.hs-photo span{position:absolute;top:50%;left:50%;transform:translate(-50%,-90%);text-align:center;font-size:var(--t-s);font-weight:600;color:rgb(255 255 255 / .55)}
.hs-photo small{font-weight:400}
.hs-bas{position:absolute;left:0;right:0;bottom:0;z-index:2;padding-top:var(--e-80);padding-bottom:calc(clamp(64px,11vw,170px) * .4 + var(--e-8));background:linear-gradient(0deg,rgb(10 46 26 / .85) 0%,rgb(10 46 26 / .55) 55%,transparent 100%)}
/* Texte centré en bas, au-dessus des points de navigation ; il descend dans la courbe du hero
   et s'arrête juste au-dessus du creux crème (37,5 % de la hauteur de la courbe, au centre) */
.hs-bas-wrap{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--e-16)}
.hs-legendes{max-width:760px}
.hs-legende{margin:0;font-size:var(--t-xl);line-height:var(--i-ajuste);font-weight:700;color:var(--surface-claire);text-shadow:0 1px 8px rgb(0 0 0 / .35);text-wrap:balance}
.hs-legende[hidden]{display:none}
/* Flèches sur les côtés, centrées verticalement */
.hs-fleche{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:48px;height:48px;border-radius:50%;border:1px solid rgb(255 255 255 / .5);background:rgb(10 46 26 / .35);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.hs-fleche--prec{left:var(--gouttiere)}
.hs-fleche--suiv{right:var(--gouttiere)}
.hs-fleche:hover{background:var(--surface-claire);color:var(--vert-profond)}
.hs-points{display:flex;justify-content:center}
.hs-point{width:32px;height:44px;border:0;background:none;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.hs-point span{width:10px;height:10px;border-radius:50%;background:rgb(255 255 255 / .5);transition:width .2s,background-color .2s}
.hs-point[aria-current="true"] span{width:28px;border-radius:5px;background:var(--sable)}
.hs-fleche:focus-visible,.hs-point:focus-visible{outline:2px solid var(--sable);outline-offset:2px}
@media (max-width:700px){.hero-slider{height:clamp(440px,78vh,600px)}.hs-legende{font-size:var(--t-l)}.hs-fleche{width:40px;height:40px;top:40%}.hs-fleche--prec{left:var(--e-8)}.hs-fleche--suiv{right:var(--e-8)}}
@media (prefers-reduced-motion:reduce){.hs-piste{transition:none}}
/* Présentation : texte gauche + texte droite */
.presentation-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--e-48);align-items:end}
.presentation-surtitre{display:block;margin-bottom:var(--e-12);font-size:var(--t-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brique)}
.presentation h2{margin:0 0 var(--e-24);font-size:var(--t-2xl);line-height:var(--i-serre)}
.presentation p{margin:0 0 var(--e-16);font-size:var(--t-l);line-height:var(--i-base)}
@media (max-width:900px){.presentation-grille{grid-template-columns:1fr;gap:0}}
/* Domaines de compétences : 2 x 2, pictogramme à gauche, texte à droite ; toute la carte réagit au survol */
.domaines-grille{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--e-24)}
.domaine-carte{display:flex;align-items:center;gap:var(--e-24);padding:var(--e-32);text-decoration:none;color:var(--encre);border:1px solid transparent;transition:transform var(--duree) var(--sortie),box-shadow var(--duree) var(--sortie),border-color var(--duree) var(--sortie)}
.domaine-ico{flex:none;width:96px;height:96px;border-radius:50%;background:var(--d-fond);border:1px solid var(--d-bord);color:var(--d-couleur);display:flex;align-items:center;justify-content:center;transition:background-color var(--duree) var(--sortie),color var(--duree) var(--sortie)}
.domaine-texte{display:flex;flex-direction:column;gap:var(--e-8);min-width:0}
.domaine-carte h3{margin:0;font-size:var(--t-xl);line-height:var(--i-ajuste);transition:color var(--duree) var(--sortie)}
.domaine-carte p{margin:0;color:var(--encre);line-height:var(--i-base)}
.domaine-carte:hover,.domaine-carte:focus-visible{transform:translateY(-4px);border-color:var(--d-bord);box-shadow:0 32px 40px -24px rgb(10 46 26 / .35);color:var(--encre)}
.domaine-carte:hover .domaine-ico,.domaine-carte:focus-visible .domaine-ico{background:var(--d-couleur);color:var(--surface-claire)}
.domaine-carte:hover h3,.domaine-carte:focus-visible h3{color:var(--d-couleur)}
.domaine-carte:focus-visible{outline:2px solid var(--vert-profond);outline-offset:3px}
@media (max-width:800px){.domaines-grille{grid-template-columns:1fr}}
@media (max-width:480px){.domaine-carte{padding:var(--e-24);gap:var(--e-16);align-items:flex-start}.domaine-ico{width:64px;height:64px}.domaine-ico svg{width:32px;height:32px}}
@media (prefers-reduced-motion:reduce){.domaine-carte,.domaine-ico{transition:none}.domaine-carte:hover,.domaine-carte:focus-visible{transform:none}}
