/* Ippersiel Collab — composition éditoriale, contenu statique par défaut.
   Le défilement horizontal est une amélioration réservée aux écrans spacieux. */
:root{--contenu:94rem}
body{overflow-x:clip}
main{overflow:clip}
h1,h2,h3{font-weight:560}
[data-reveal],[data-reveal-group] li{opacity:1;transform:none}
[data-reveal].est-visible,[data-reveal-group].est-visible li{transition:none}
.menu-est-ouvert .entete{color:var(--mineral)}
.menu-est-ouvert .entete .entete__logo img{filter:invert(1)}
.menu-est-ouvert .entete::before{background:var(--carbone);opacity:1}
.menu-mobile{overflow-y:auto;overscroll-behavior:contain}
.entete__progression span{width:100%;transform:scaleX(var(--lecture,0));transform-origin:left}
.entete.est-sur-contact .entete__progression{opacity:0}

/* Une seule phrase, quatre mouvements. */
.hero{min-height:100svh}
.hero::before{opacity:.5}
.hero__cadre{min-height:calc(100svh - var(--entete));padding-block:clamp(1.5rem,4vh,3rem) 2.5rem;gap:1.5rem;grid-template-rows:auto 1fr auto}
.surtitre{margin:0}
.titre-hero{font-size:clamp(3rem,min(7.1vw,10.8vh),7.6rem);line-height:1;letter-spacing:-.065em;padding-block:1rem}
.titre-hero__ligne{overflow:visible;padding:0}
.titre-hero__ligne>span,.mot-avancer{opacity:1;transform:none}
.titre-hero__ligne--milieu{padding-left:17%}
.titre-hero__ligne--fin{padding-right:2%;text-align:right}
.titre-hero__impact{font-size:clamp(5rem,min(13.5vw,19vh),13.5rem);line-height:.96;letter-spacing:-.075em;margin:0;color:var(--sarcelle-fonce)}
.impulsion{width:clamp(2rem,5vw,5rem);height:.08em;right:2%;transform:none}
.mot-accent{position:relative;display:inline-block;color:var(--sarcelle-fonce)}
.mot-accent::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.05em;background:var(--orange);transform:scaleX(0);transform-origin:left}
@media(prefers-reduced-motion:no-preference){.est-prete .mot-accent::after{transform:scaleX(1);transition:transform .8s var(--sortie) .55s}}
@media(prefers-reduced-motion:reduce){.mot-accent::after{transform:scaleX(1)}}
.hero__bas{width:100%;padding:1.4rem 0 0;border-top:1px solid var(--trait);grid-template-columns:minmax(0,37rem) auto;gap:2rem;align-items:center}
.hero__intro{font-size:clamp(1.05rem,1.35vw,1.2rem);max-width:48ch}
.hero__bas .lien-action{padding:.85rem 1.15rem;background:var(--carbone);color:var(--mineral);border:0;justify-self:end;font-size:1rem}
.hero__bas .lien-action::after{display:none}
.fil-orange{display:none}
@media(prefers-reduced-motion:no-preference){
 .est-prete .titre-hero{animation:entree .65s var(--sortie) both}
 @keyframes entree{from{opacity:.5;transform:translateY(12px)}to{opacity:1;transform:none}}
}

/* Deux idées de même poids, réunies dans un diptyque. */
.positionnement{padding-block:clamp(5rem,9vw,9rem)}
.positionnement .titre-section{max-width:17ch;font-size:clamp(2.8rem,6.3vw,6.3rem);line-height:1.02;margin-bottom:clamp(3rem,6vw,6rem)}
.en-marche{color:var(--sarcelle-fonce)}.en-marche::after{display:none}
.positionnement__corps{max-width:none;grid-template-columns:1fr 1fr;gap:0;align-items:stretch}
.positionnement__corps>p{max-width:none!important;margin:0;display:flex;align-items:center;padding:clamp(2rem,4.5vw,4.5rem);font:450 clamp(1.2rem,1.85vw,1.65rem)/1.45 var(--texte);letter-spacing:0}
.positionnement__corps>.texte-lead{background:var(--carbone);color:var(--mineral)}
.positionnement__corps>p:last-child{background:var(--sarcelle);color:var(--carbone)}
.impacts{margin-top:2rem;gap:0}.impacts li{font-size:clamp(.98rem,1.2vw,1.15rem);padding-block:1rem}
.montee-carbone{display:none}

/* Expertise : lisible sans JavaScript, trois pauses franches sur grand écran. */
.expertise{position:relative;padding-top:5rem}
.expertise__entete{display:flex;justify-content:space-between;gap:3rem;align-items:start;padding-bottom:3rem}
.expertise__entete .titre-section{max-width:23ch;font-size:clamp(1.8rem,3.3vw,3rem);line-height:1.08}
.expertise__grille{grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:clamp(3rem,7vw,7rem);align-items:center}
.expertise__chapitre--decale .expertise__grille>div{padding:0}.expertise__chapitre--decale .liste-services{transform:none}
.expertise__chapitre h3{max-width:14ch;font-size:clamp(2.5rem,5.4vw,5.8rem);line-height:1.03;letter-spacing:-.055em}
.expertise__chapitre::before{display:none}
.expertise__accroche{max-width:38ch;line-height:1.5}
.liste-services li{padding:1rem 0 1rem 1.3rem;font-size:clamp(1rem,1.2vw,1.15rem);color:#c8cacc;transition:color .3s,transform .35s var(--sortie)}
.liste-services li:hover{transform:translateX(.4rem)}
.liste-services li::before{background:var(--sarcelle);top:1.75rem}
.expertise__rideau{display:none}.scene__progression{display:none}
@media(min-width:75rem) and (min-height:46rem) and (prefers-reduced-motion:no-preference){
 .scenes-actives .expertise{height:340svh;padding:0}
 .scenes-actives .expertise__sticky{position:sticky;top:0;height:100svh;overflow:hidden;background:var(--carbone)}
 .scenes-actives .expertise__entete{position:absolute;z-index:3;top:calc(var(--entete) + 2rem);left:0;right:0;pointer-events:none}
 .scenes-actives .expertise__entete .titre-section{font-size:1.2rem;max-width:25ch;text-align:right;color:var(--doux)}
 .scenes-actives .expertise__chapitres{position:absolute;inset:0;border:0}
 .scenes-actives .expertise__chapitre{position:absolute;inset:0;display:grid;align-items:center;padding:calc(var(--entete) + 8rem) 0 4rem;border:0;background:var(--carbone);transform:translate3d(0,var(--panel-y,0%),0)}
 .scenes-actives .expertise__chapitre:nth-child(2){--panel-y:100%}
 .scenes-actives .expertise__chapitre:nth-child(3){--panel-y:200%}
 .scenes-actives .expertise__chapitre h3{font-size:clamp(3rem,5.5vw,5.8rem)}
 .scenes-actives .expertise .scene__progression{display:block;position:absolute;left:var(--marge);right:var(--marge);bottom:2rem;height:1px;background:#383838}
 .scene__progression span{display:block;height:100%;background:var(--sarcelle);transform:scaleX(var(--p,0));transform-origin:left}
}

/* Les besoins forment un ensemble que l’on peut parcourir d’un regard. */
.besoins{padding-block:clamp(5rem,9vw,9rem)}
.besoins .titre-section{font-size:clamp(2.6rem,5.2vw,5rem);line-height:1.04;max-width:18ch;margin-bottom:3rem}
.besoins__liste li{font-size:clamp(1.2rem,1.8vw,1.65rem);line-height:1.4;min-height:9rem}
.besoins__liste li:hover{transform:none}.expansion-sarcelle{display:none}
.accompagnement{position:relative;padding:clamp(4rem,7vw,7rem) 0}
.accompagnement__sticky{max-width:var(--contenu);margin:auto;padding-inline:var(--marge)}
.accompagnement .titre-section{max-width:23ch;font-size:clamp(2.5rem,4.8vw,4.6rem);line-height:1.07;margin-bottom:3.5rem}
.accompagnement__grille h3{font-size:clamp(1.6rem,2.55vw,2.6rem);line-height:1.12;letter-spacing:-.04em}
.accompagnement__grille p{color:var(--carbone)}
.portee{height:2px;margin-bottom:2rem}
.accompagnement__mention{font-size:1rem;max-width:65ch;margin-top:2rem;margin-inline:auto;text-align:center}.connecteur-orange{display:none}

/* Le chiffre et sa signification restent réunis. */
.realisation{padding-block:clamp(5rem,9vw,9rem)}
.realisation__entete .titre-section{max-width:15ch;font-size:clamp(2.7rem,5vw,5rem);line-height:1.04}
.realisation__nom{font-size:clamp(2.5rem,4vw,4rem);line-height:1.06}
.realisation__signature{font-size:clamp(1.15rem,1.7vw,1.5rem)}
.preuve{max-width:var(--contenu);min-height:19rem;margin-block:clamp(3.5rem,6vw,6rem);align-items:center;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);overflow:visible}
.preuve__chiffre{font-size:clamp(5rem,11.6vw,11.5rem);line-height:1.05;letter-spacing:-.065em}
.preuve__ombre,.preuve__barre{display:none}
.preuve__valeur{color:var(--sarcelle)}
.preuve__texte{max-width:32ch;font-size:clamp(1.15rem,1.8vw,1.55rem);padding:1.5rem 0;border-block:1px solid var(--trait)}
.compteur-actif .preuve__texte{opacity:0;transform:translateY(.5rem)}
.compteur-actif.est-compteur-visible .preuve__texte{opacity:1;transform:none;transition:opacity .25s,transform .35s}
.realisation__recit{font-size:clamp(1.25rem,2vw,1.8rem)}

/* Approche : une lecture verticale, reliée par une ligne de composition. */
.approche{position:relative;padding:clamp(5rem,9vw,9rem) 0 0}
.approche__sticky{max-width:var(--contenu);margin:auto}
.approche__entete .titre-section{max-width:17ch;font-size:clamp(2.8rem,5.7vw,5.6rem);line-height:1.04;margin-bottom:4rem}
.approche__mouvements{display:block;padding:0 var(--marge)}
.approche__mouvements::before,.approche__mouvements::after{display:none}
.approche__mouvements li{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center;padding:clamp(2.5rem,5vw,5rem) 0;border-top:1px solid var(--trait)}
.approche__mouvements h3{max-width:16ch;margin:0;font-size:clamp(2rem,3.4vw,3.3rem);line-height:1.08;letter-spacing:-.045em}
.approche__mouvements li:first-child h3{color:var(--orange)}
.approche__mouvements p{max-width:36ch;font-size:clamp(1.1rem,1.6vw,1.35rem)}
.approche__conclusion{max-width:none;margin:0 var(--marge);padding:2rem 0 4rem 52%;font-size:1.1rem}
.approche__masque{display:none}
.approche__transition{height:clamp(4rem,9vw,8rem);background:var(--carbone);clip-path:polygon(0 100%,100% 0,100% 100%);margin-bottom:-1px}
.approche__transition span{display:none}

/* Catherine : un portrait intact, un nom à son échelle. */
.apropos{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:clamp(3rem,6vw,6rem);max-width:var(--contenu);margin:auto;min-height:0;padding:clamp(4rem,7vw,7rem) var(--marge);align-items:start}
.apropos__portrait{position:sticky;top:calc(var(--entete) + 2rem);aspect-ratio:1067/1600;overflow:hidden;background:var(--carbone)}
.apropos__portrait picture{height:100%}
.apropos__portrait img{width:100%;height:100%;object-fit:contain;object-position:center;transform:none!important;opacity:1}
.apropos__portrait::after{display:none}
.apropos__contenu{margin:0;padding:0;max-width:none}
.apropos__nom{font-size:clamp(2.8rem,5.2vw,5rem);line-height:1.02;letter-spacing:-.05em;max-width:12ch;margin:0 0 1.5rem;text-shadow:none}
.apropos__titre{max-width:30ch;font-size:clamp(1.15rem,1.8vw,1.6rem);line-height:1.35;padding-bottom:1.5rem}
.apropos__bio{margin-block:1.5rem;gap:1rem;font-size:clamp(1rem,1.25vw,1.15rem);color:#c8cacc}
.apropos__contenu>.lien-action{font-size:1rem}

/* Une invitation et un formulaire qui partagent la même grille. */
.contact{padding-block:clamp(5rem,9vw,9rem)}
.contact__grille{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(3rem,6vw,6rem);align-items:start}
.contact__titre{font-size:clamp(2.5rem,4.4vw,4.4rem);line-height:1.08;max-width:14ch;letter-spacing:-.05em}
.contact__titre span{display:inline}.contact__titre span::after{display:none}
.contact__texte{font-size:1.2rem}
.contact__coordonnees{font-size:1rem;overflow-wrap:anywhere}
.contact__liens{flex-direction:column;align-items:flex-start;gap:1.25rem}
.contact__liens .lien-action:first-child{padding:.8rem 1.2rem;background:var(--carbone);color:var(--mineral);border:0}
.contact__liens .lien-action:first-child::after{display:none}
.contact__liens .lien-action+.lien-action{font-size:.95rem;color:var(--sarcelle-fonce)}
.contact__liens .lien-action+.lien-action::before{display:none}
.formulaire{padding:clamp(1.5rem,3vw,3rem);background:var(--carbone);color:var(--mineral);gap:1.35rem;border-top:3px solid var(--sarcelle)}
.formulaire .champ label small,.formulaire .champ__aide,.formulaire .formulaire__note{color:#bfc3c5}
.formulaire .champ input,.formulaire .champ textarea{color:var(--mineral);border-bottom-color:#808487}
.formulaire .champ input:focus,.formulaire .champ textarea:focus{border-bottom-color:var(--sarcelle);box-shadow:0 2px 0 var(--sarcelle)}
.formulaire .champ__erreur{color:#ff967e}
.formulaire__envoi{background:var(--orange);font-size:1.2rem}
.formulaire__envoi:hover{background:var(--sarcelle)}
.pied{border-top:1px solid #333}

@media(max-width:74.99rem){
 .expertise__entete{display:block}.expertise__entete .titre-section{max-width:24ch}
 .expertise__grille{gap:3rem}
 .expertise__chapitre h3{font-size:clamp(2.5rem,5vw,4rem)}
}
@media(max-width:61.99rem){
 .titre-hero{font-size:clamp(3rem,7.6vw,5rem)}
 .titre-hero__impact{font-size:clamp(5rem,14vw,9rem)}
 .hero__bas{grid-template-columns:1fr;gap:1.3rem}.hero__bas .lien-action{justify-self:start}
 .expertise__grille{grid-template-columns:1fr 1fr}
 .apropos{grid-template-columns:1fr 1fr;gap:2.5rem}
 .apropos__nom{font-size:clamp(2.5rem,5.5vw,4rem)}
 .apropos__portrait{aspect-ratio:1067/1600}
 .contact__grille{grid-template-columns:1fr;gap:3rem}.contact__intro{max-width:42rem}.formulaire{width:100%;max-width:45rem}
 .accompagnement__grille{grid-template-columns:1fr}
 .accompagnement__grille article,.accompagnement__grille article+article{display:grid;grid-template-columns:1fr 1.2fr;column-gap:3rem;padding:2rem 0;border-left:0;border-top:1px solid var(--trait)}
 .accompagnement__grille article:first-child{border-top:0}.portee{grid-column:1/-1;max-width:8rem;margin-bottom:1.5rem}
 .accompagnement__grille h3{max-width:16ch}
}
@media(max-width:47.99rem){
 :root{--marge:clamp(1.1rem,5vw,2rem)}
 .hero__cadre{padding:1.7rem var(--marge) 2rem;gap:1.4rem}
 .surtitre{font-size:.65rem;letter-spacing:.14em}
 .titre-hero{font-size:clamp(2.4rem,10.7vw,4.9rem);line-height:1.08;letter-spacing:-.06em;padding-block:1rem}
 .titre-hero__ligne--milieu{padding-left:12%}.titre-hero__ligne--fin{padding-right:0}
 .titre-hero__impact{font-size:clamp(4rem,19.5vw,8.5rem);line-height:1.12}
 .impulsion{right:0;width:1.4rem;height:.07em}
 .hero__bas{padding-top:1.2rem;gap:1rem}.hero__intro{font-size:1.02rem;line-height:1.55}.hero__bas .lien-action{font-size:.95rem}
 .positionnement .titre-section{font-size:clamp(2.4rem,9.7vw,4rem);line-height:1.08;max-width:17ch}
 .positionnement__corps{grid-template-columns:1fr}.positionnement__corps>p{padding:2rem;font-size:1.25rem}
 .impacts{grid-template-columns:1fr 1fr}.impacts li,.impacts li+li{padding:.8rem .5rem 1rem 0;border:0;border-top:1px solid var(--trait);margin:0;font-size:.95rem}.impacts li:nth-child(even){padding-left:.65rem}
 .expertise{padding-top:4rem}.expertise__entete{padding-bottom:2rem}.expertise__entete .titre-section{font-size:2.1rem;line-height:1.1;max-width:20ch}
 .expertise__chapitre{padding-block:3rem}.expertise__grille{grid-template-columns:1fr;gap:2rem}
 .expertise__chapitre h3{font-size:clamp(2rem,8.9vw,3.6rem);line-height:1.09;max-width:16ch;letter-spacing:-.055em}
 .expertise__accroche{font-size:1.1rem}.liste-services li{font-size:1rem;padding-block:.85rem}
 .besoins .titre-section{font-size:clamp(2.3rem,9vw,3.6rem)}.besoins__liste{grid-template-columns:1fr}
 .besoins__liste li,.besoins__liste li:nth-child(even){grid-template-columns:1.6rem 1fr;border-right:0;padding:1.4rem 0;min-height:0;font-size:1.2rem}
 .accompagnement .titre-section{font-size:clamp(2rem,8.3vw,3.4rem);line-height:1.1;letter-spacing:-.05em}
 .accompagnement__grille article,.accompagnement__grille article+article{display:block;padding:2rem 0}.accompagnement__grille h3{font-size:1.8rem;max-width:100%}.accompagnement__mention{font-size:.95rem}
 .realisation__entete,.realisation__corps{grid-template-columns:1fr;gap:2.5rem}
 .realisation__entete .titre-section{font-size:clamp(2.5rem,10vw,3.8rem)}
 .preuve{grid-template-columns:1fr;gap:1.2rem;min-height:0;margin-block:3.5rem}
 .preuve__chiffre{font-size:clamp(4rem,20vw,7rem)}.preuve__texte{font-size:1.2rem;max-width:100%;padding-block:1.25rem}
 .realisation__fiche div{grid-template-columns:1fr;gap:.5rem}
 .approche__entete .titre-section{font-size:clamp(2.4rem,9.7vw,3.8rem);margin-bottom:2.5rem}
 .approche__mouvements li{grid-template-columns:1fr;gap:1.25rem;padding:2.3rem 0}
 .approche__mouvements h3{font-size:clamp(1.9rem,7.5vw,3rem);max-width:17ch}.approche__conclusion{padding:1.5rem 0 2.5rem;font-size:1rem}
 .apropos{grid-template-columns:1fr;gap:2.5rem;padding-block:3rem 4rem}
 .apropos__portrait{position:relative;top:auto;max-width:29rem;width:100%;margin:auto;aspect-ratio:1067/1600}
 .apropos__nom{font-size:clamp(2.7rem,11vw,4.5rem);max-width:12ch}.apropos__bio{font-size:1.07rem;line-height:1.6}
 .contact__titre{font-size:clamp(2.35rem,9.5vw,3.8rem);line-height:1.1}.contact__texte{font-size:1.12rem}
 .formulaire{padding:1.5rem}.formulaire__envoi{font-size:1.1rem;padding:1rem}
 .pied__grille{gap:2rem}.pied__contact{overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){
 .compteur-actif .preuve__texte{opacity:1;transform:none}
}
@media print{
 .hero,.hero__cadre{min-height:0}.expertise__chapitre,.apropos{break-inside:avoid}.preuve__texte{opacity:1!important;transform:none!important}
}
