/* ==========================================================================
   SHORTCUT — onepage
   Maquette de référence : 1600 px de large, conteneur 1200 px (marges 200).
   Les tailles « desktop » sont celles du PSD ; clamp() les réduit en dessous.
   ========================================================================== */

@font-face{font-family:"Antonio";src:url(../fonts/antonio.woff2) format("woff2");font-weight:100 700;font-display:swap}
/* Même fichier, métriques rééquilibrées : les capitales tombent pile au centre des boutons */
@font-face{font-family:"Antonio Btn";src:url(../fonts/antonio.woff2) format("woff2");font-weight:100 700;font-display:swap;ascent-override:99.8%;descent-override:13.9%;line-gap-override:0%}
@font-face{font-family:"Space Grotesk";src:url(../fonts/space-grotesk.woff2) format("woff2");font-weight:300 700;font-display:swap}

:root{
  --red:#e4231f;
  --black:#000;
  --white:#fff;
  --card:#2b2b2b;
  --muted:#676767;
  --rule:rgba(255,255,255,.3);
  --rule-soft:rgba(255,255,255,.25);

  --display:"Antonio","Arial Narrow",Arial,sans-serif;
  --display-btn:"Antonio Btn","Antonio","Arial Narrow",Arial,sans-serif;
  --sans:"Space Grotesk",Helvetica,Arial,sans-serif;

  --wrap:1200px;
  --gut:clamp(20px,4vw,40px);

  /* Moteur d'animation — mêmes valeurs que le site Orkidées */
  --dur-fast:.5s;
  --dur:.9s;
  --dur-slow:1.4s;
  --dur-titre:2.2s;
  --dur-faq:1.2s;
  --dur-btn:.6s;
  --dur-panneau:.84s;
  --dur-mot:1.04s;
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-inout:cubic-bezier(.65,0,.35,1);
  --ease-soft:cubic-bezier(.33,0,.2,1);
  --ease-btn:cubic-bezier(.5,.5,.3,1);
  --ease-split:cubic-bezier(.785,.135,.15,.86);
  --stagger:.18s;
  --stagger-menu:.14s;
  --delai-titre:.32s;
  --balayage-depart:.15;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--black);color:var(--white);font-family:var(--sans);font-weight:300;font-size:clamp(16px,1.25vw,20px);line-height:1.2;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
img,svg{display:block;max-width:100%;height:auto}
h1,h2,h3,p,ul,figure,address{margin:0;padding:0}
ul{list-style:none}
address{font-style:normal}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
strong{font-weight:500}
.red{color:var(--red)}
:focus-visible{outline:2px solid var(--red);outline-offset:4px}

.wrap{width:100%;max-width:calc(var(--wrap) + 2 * var(--gut));margin-inline:auto;padding-inline:var(--gut)}
@media (min-width:1280px){.wrap{max-width:var(--wrap);padding-inline:0}}

/* ---------- Typo commune ---------- */
.kick{font-family:var(--display);font-weight:200;font-size:clamp(18px,1.5625vw,25px);line-height:1.2;color:var(--red);white-space:pre}
.h2{font-family:var(--display);font-weight:700;font-size:clamp(38px,4.0625vw,65px);line-height:1.2;margin-top:clamp(2px,.25vw,4px)}
.h2 .l{display:block}

.titre .l{display:block}
.txt,.box__txt{font-size:clamp(16px,1.25vw,20px);line-height:1.2}
.lead{font-weight:400;font-size:clamp(17px,1.375vw,22px);line-height:1.2}

/* ---------- Hachures ---------- */
.hatch{height:20px;margin-inline:10px;opacity:.24;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='21.45' height='20'%3E%3Cpath d='M.2 0l17 20' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") left center/21.45px 20px repeat-x}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;height:64px;padding:0 19px 0 25px;background:var(--red);color:var(--white);font-family:var(--display-btn);font-weight:400;font-size:40px;line-height:1;overflow:hidden;position:relative;white-space:nowrap;transition:background var(--dur-btn) var(--ease-btn),box-shadow var(--dur-btn) var(--ease-btn)}
.btn__in{display:grid;overflow:hidden}
.btn__in>span{grid-area:1/1;display:block;transition:transform var(--dur-btn) var(--ease-btn)}
.btn__in>span+span{transform:translate3d(0,110%,0)}
.btn:hover,.btn:focus-visible{background:var(--black);box-shadow:inset 0 0 0 1px var(--red)}
.btn:hover .btn__in>span:first-child,.btn:focus-visible .btn__in>span:first-child{transform:translate3d(0,-110%,0)}
.btn:hover .btn__in>span+span,.btn:focus-visible .btn__in>span+span{transform:none}
.btn--sm{height:63px;padding:0 23px 0 24px}

/* ==========================================================================
   EN-TÊTE
   ========================================================================== */
.hd{position:fixed;inset:0 0 auto;z-index:40;padding-top:env(safe-area-inset-top,0px);color:var(--white);isolation:isolate;
  --hd-dur:.84s;transition:color .3s var(--ease-inout)}
/* Panneau blanc : descend du haut de l'écran à la rencontre du contenu qui remonte */
.hd::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--white);transform:translate3d(0,-101%,0);transition:transform var(--hd-dur) var(--ease)}
.hd__in{display:flex;align-items:flex-start;padding-top:clamp(24px,6.44vw,103px);padding-bottom:12px;transition:padding var(--hd-dur) var(--ease)}
.hd.is-scrolled{color:var(--black);transition:color .26s var(--ease-inout) .04s}
.hd.is-scrolled::before{transform:none}
.hd.is-scrolled .hd__in{padding-top:clamp(18px,2.375vw,38px);padding-bottom:clamp(18px,1.8vw,29px)}
/* Au retour en haut : le blanc repart vers le haut, le contenu redevient blanc immédiatement */
.lang{display:flex;gap:9px}
.lang__btn{width:35px;height:36px;display:grid;place-items:center;padding-top:1px;color:inherit;font-family:var(--display-btn);font-weight:400;font-size:22px;line-height:1;box-shadow:inset 0 0 0 1px currentColor;transition:background var(--dur-fast) var(--ease-inout),box-shadow var(--dur-fast) var(--ease-inout)}
.lang__btn+.lang__btn{width:36px}
.lang__btn[aria-current]{background:var(--red);box-shadow:none;color:var(--white)}
.lang__btn:not([aria-current]):hover{background:rgba(128,128,128,.18)}
.hd__logo{display:block;width:230px;margin:2px 0 0 51px;color:inherit}
.hd__logo svg{width:100%}
.burger{margin-left:auto;width:38px;height:31px;position:relative}
.burger span{position:absolute;right:0;height:3px;background:currentColor;transition:width var(--dur-fast) var(--ease-inout)}
.burger span:nth-child(1){top:0;width:38px}
.burger span:nth-child(2){top:14px;width:38px}
.burger span:nth-child(3){top:28px;width:19px}
.burger:hover span:nth-child(3){width:38px}
.burger:hover span:nth-child(2){width:26px}

/* ---------- Menu plein écran ---------- */
.drawer{position:fixed;inset:0;z-index:60;background:var(--black);overflow:auto;transform:translate3d(0,-100%,0);visibility:hidden;transition:transform var(--dur-panneau) var(--ease),visibility 0s linear var(--dur-panneau)}
.drawer.is-open{transform:none;visibility:visible;transition:transform var(--dur-panneau) var(--ease),visibility 0s}
.drawer__sigle{position:absolute;left:calc(50% - 18px);top:267px;width:631px;color:var(--white);opacity:.12;pointer-events:none}
.drawer__in{position:relative;min-height:100%;padding-top:clamp(90px,9.9vw,159px);padding-bottom:60px}
.drawer__close{position:absolute;right:var(--gut);top:clamp(24px,6.56vw,105px);width:38px;height:38px;color:var(--white);opacity:0;transition:opacity var(--dur) var(--ease) .52s}
@media (min-width:1280px){.drawer__close{right:0}}
.drawer.is-open .drawer__close{opacity:1}
.drawer__close:hover{color:var(--red)}
.drawer__item{display:block;overflow:hidden;text-align:left;color:inherit;font-family:var(--display);font-weight:700;font-size:clamp(44px,4.0625vw,65px);line-height:1.15;transition:color var(--dur-fast) var(--ease-inout)}
.drawer__item:hover,.drawer__item:focus-visible,.drawer__item.is-actif{color:var(--red)}
.drawer__mot{display:block;transform:translate3d(0,100%,0);transition:transform var(--dur-mot) var(--ease)}
.drawer.is-open .drawer__mot{transform:none;transition-delay:calc(.6s + var(--i) * var(--stagger-menu))}
.drawer__aside{margin-top:clamp(40px,3.8vw,61px);font-family:var(--display);font-weight:600;font-size:16px;line-height:1.2;white-space:pre;opacity:0;transform:translate3d(0,12px,0);transition:opacity var(--dur) var(--ease) .68s,transform var(--dur) var(--ease) .68s}
.drawer.is-open .drawer__aside{opacity:1;transform:none}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{position:relative;height:min(68.75vw,1100px);overflow:hidden;isolation:isolate}
.hero__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;z-index:-2}
.hero__sigle{position:absolute;z-index:-1;left:calc(50% - min(1.125vw,18px));top:min(16.69vw,267px);width:min(39.44vw,631px);color:var(--black);mix-blend-mode:soft-light}
.hero__in{padding-top:min(16.19vw,259px)}
.hero__title{font-family:var(--display);font-weight:700;font-size:clamp(30px,2.8125vw,45px);line-height:1.2}

/* ==========================================================================
   SECTIONS
   ========================================================================== */
.sec--intro{padding-top:clamp(70px,8.44vw,135px)}

/* Les deux blocs pictos */
.intro__items{margin-top:clamp(56px,7.75vw,124px)}
.pic{display:flex;align-items:flex-start}
.pic__ico{flex:0 0 auto;color:var(--red)}
.pic .txt{width:418px;max-width:100%}
.pic--1{margin-left:195px}
.pic--1 .pic__ico{width:73px;margin-right:44px}
.pic--2{margin-left:466px;margin-top:clamp(64px,8.25vw,132px)}
.pic--2 .pic__ico{width:85px;margin-right:50px}

.sec--intro .hatch{margin-top:clamp(70px,8.8vw,141px)}
.sec--intro .hatch--tight{margin-top:39px}

/* Double expertise */
.force{display:grid;grid-template-columns:601px 1fr;column-gap:100px;margin-top:clamp(60px,5.8vw,93px)}
.force__main{display:flex;flex-direction:column;align-items:flex-end;position:relative;z-index:0}
.force__lead{font-weight:400;font-size:clamp(22px,1.875vw,30px);line-height:1.2;text-align:right}
.force__lead span{display:block}
.force__btn{margin-top:70px}
.force__img{width:1024px;max-width:none;align-self:flex-start;margin:48px 0 0 -38px;position:relative;z-index:-1}
.force__side{position:relative;z-index:1;padding-top:126px}
.h3red{font-family:var(--display);font-weight:700;font-size:clamp(32px,3.125vw,50px);line-height:1.2;color:var(--red)}
.h3red:first-child{max-width:410px}
.h3red+.h3red{margin-top:88px;max-width:470px}

/* Chiffres */
.stats{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;margin:81px 0 0;padding-bottom:98px}
.stat__n{display:block;font-family:var(--display);font-weight:700;font-size:clamp(64px,6.25vw,100px);line-height:.88;height:.88em}
.stat__n--plus{display:flex;align-items:center;justify-content:center}
.stat__l{display:block;margin-top:21px;font-family:var(--display);font-weight:400;font-size:18px;line-height:1.2;color:var(--muted)}
.stats+.hatch{margin-top:0}
@media (min-width:1280px){.stat{position:relative}.stat:nth-child(1){left:15px}.stat:nth-child(2){left:-18px}.stat:nth-child(4){left:-33px}}

/* Partenaires */
.partners{position:relative;margin-top:clamp(70px,6.4vw,102px);padding-inline:22px 27px}
.partners__title{font-family:var(--display);font-weight:700;font-size:clamp(32px,2.8125vw,45px);line-height:1.2;text-align:center}
.partners__cmd{display:flex;justify-content:flex-end;gap:14px;margin-top:49px;padding-right:3px}
.partners__cmd.is-inutile{visibility:hidden}
.partners__cmd button{width:25px;height:32px;color:var(--white);position:relative;transition:opacity var(--dur-fast) var(--ease-inout)}
.partners__cmd button::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(255,255,255,.3)}
.partners__cmd button svg{width:25px;height:32px}
.partners__cmd button:disabled{opacity:.3;cursor:default}
.partners__cmd button:not(:disabled):hover{color:var(--red)}
.partners__track{display:flex;gap:41px;margin-top:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.partners__track::-webkit-scrollbar{display:none}
.card{flex:0 0 calc((100% - 3 * 41px) / 4);aspect-ratio:257/184;scroll-snap-align:start;position:relative;display:grid;place-items:center;background:var(--card);overflow:hidden;cursor:default;outline-offset:-3px}
.card__logo{width:auto;max-width:72%;max-height:52%;transition:opacity .3s ease-out .15s}
.card__split{position:absolute;height:50%;width:0;background:var(--red);transition:width .3s var(--ease-split),left 0s,right 0s}
.card__split--up{top:0;left:0;right:auto}
.card__split--down{bottom:0;right:0;left:auto}
.card__txt{position:absolute;inset:0;display:grid;place-items:center;padding:0 18px;text-align:center;font-family:var(--display-btn);font-weight:500;font-size:20px;line-height:1.2;opacity:0;transition:opacity .3s ease-out .15s}
.card:hover .card__logo,.card:focus-visible .card__logo{opacity:0;transition-delay:0s}
.card:hover .card__txt,.card:focus-visible .card__txt{opacity:1}
.card:hover .card__split--up,.card:focus-visible .card__split--up{width:100%;left:auto;right:0}
.card:hover .card__split--down,.card:focus-visible .card__split--down{width:100%;left:0;right:auto}

.sec--intro .hatch--end{margin-top:123px}

/* Secteurs */
.sec--secteurs{padding-top:clamp(80px,10.1vw,162px)}

.secteurs{display:grid;grid-template-columns:452px 1fr;column-gap:147px;margin-top:95px}
.secteurs__main{position:relative;z-index:0}
.mission{font-size:clamp(17px,1.375vw,22px);line-height:1.15}
.mission__label{display:block;font-weight:300;margin-bottom:1.2em}
.mission__txt{display:block;font-weight:500;color:var(--red)}
.secteurs__img{width:1010px;max-width:none;margin:50px 0 0 calc(-1 * max(0px,(100vw - var(--wrap)) / 2) - 5px);position:relative;z-index:-1}
@media (min-width:1600px){.secteurs__img{margin-left:-205px}}
.secteurs__side{position:relative;z-index:1;margin-right:-2px}
.secteurs__track{display:flex;flex-direction:column;gap:81px}

/* Défilement « épinglé » des deux blocs (desktop, activé par JS) :
   la grille reste collée sous l'en-tête, seule la colonne de droite défile */
.secteurs-pin.is-pin .secteurs{position:sticky;top:var(--pin-top)}
.secteurs-pin.is-pin .secteurs__side{height:var(--pin-h);overflow:hidden;--ft:0px;--fb:0px;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 var(--ft),#000 calc(100% - var(--fb)),transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 var(--ft),#000 calc(100% - var(--fb)),transparent 100%)}
.secteurs-pin.is-pin .secteurs__track{will-change:transform}
.secteurs-pin.is-pin .box{min-height:min(623px,var(--pin-h))}
.box{min-height:623px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:55px 58px 55px 61px;box-shadow:inset 0 0 0 1px var(--rule)}
.box__title{font-family:var(--display);font-weight:700;font-size:clamp(28px,2.5vw,40px);line-height:1.15}
.box__txt{font-weight:400;margin-top:55px}
.box .btn{margin-top:46px}

/* Ligne de typo */
.ruban{overflow:hidden;margin-top:143px;padding-block:6px}
.ruban__piste{display:flex;width:max-content}
.ruban__serie{display:flex;flex:0 0 auto;font-family:var(--display);font-weight:700;font-size:clamp(56px,6.25vw,100px);line-height:1.1;white-space:nowrap;color:var(--card)}
.ruban__serie span{padding-right:.5em}
.js .ruban__piste{animation:ruban var(--ruban-duree,60s) linear -9s infinite}
.ruban:hover .ruban__piste{animation-play-state:paused}
@keyframes ruban{to{transform:translate3d(-50%,0,0)}}

/* Solutions */
.sec--solutions{padding-top:157px}
.sec--solutions .hatch--start{margin-bottom:clamp(80px,10.1vw,162px)}
.solutions{display:grid;grid-template-columns:445px 1fr;column-gap:155px;margin-top:76px;align-items:start}
.solutions__main .btn{margin-top:62px}
.faq__item{border-bottom:1px solid var(--rule-soft)}
.faq__item+.faq__item .faq__q{padding-top:47px}
.faq__q{width:100%;display:flex;justify-content:space-between;align-items:flex-start;gap:30px;text-align:left;padding-bottom:45px;font-family:var(--display);font-weight:500;font-size:clamp(22px,1.75vw,28px);line-height:1.15}
.faq__ico{flex:0 0 auto;width:15px;height:15px;margin-top:.4em;background:var(--red);transition:transform var(--dur-fast) var(--ease-inout)}
.faq__item.is-open .faq__ico{transform:scale(1.07,.27)}
.faq__wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur) var(--ease)}
.faq__item.is-open .faq__wrap{grid-template-rows:1fr;transition:grid-template-rows var(--dur-faq) var(--ease-soft)}
.faq__inner{overflow:hidden}
.faq__a{font-weight:400;font-size:18px;line-height:1.2;padding:0 0 68px 1px;margin-top:-2px;opacity:0;transition:opacity var(--dur-fast) var(--ease)}
.faq__item.is-open .faq__a{opacity:1;transition-delay:calc(var(--dur-faq) / 3)}
.faq__q:hover .faq__ico{transform:rotate(45deg)}
.faq__item.is-open .faq__q:hover .faq__ico{transform:scale(1.07,.27)}
.sec--solutions .hatch--end{margin-top:141px}

/* 40 ans */
.sec--about{padding-top:158px}
.about{display:grid;grid-template-columns:601px 1fr;column-gap:0;margin-top:54px}
.about__photo{grid-column:1;grid-row:1;position:relative;width:432px;margin-left:30px}
.about__photo>img:first-child{width:432px}
.about__sign{position:absolute;left:-24px;top:342px;width:290px}
.about__p1{grid-column:2;grid-row:1;padding-top:95px;max-width:500px}
.about__p2{grid-column:1;grid-row:2;margin-top:-26px;max-width:490px;position:relative}
.about__p2 .btn{margin-top:87px}
.about__map{grid-column:2;grid-row:2;width:598px;margin-top:3px}

/* ==========================================================================
   CONTACT + PIED
   ========================================================================== */
.end{position:relative;isolation:isolate;padding-top:141px;padding-bottom:540px}
.end__bg{position:absolute;z-index:-1;left:calc(50% - 454px);top:208px;width:1024px}
.contact{display:flex;justify-content:space-between;align-items:center;gap:40px;min-height:450px;background:var(--red);padding:90px 127px 84px 80px}
.contact__txt{max-width:440px}
.contact__title{font-family:var(--display);font-weight:700;font-size:clamp(34px,2.8125vw,45px);line-height:1.1}
.contact__txt p{margin-top:32px;font-weight:400;font-size:18px;line-height:1.2;max-width:425px}
.contact__btns{display:grid;gap:19px;width:353px;flex:0 0 auto}
.cbtn{display:grid;place-items:center;height:77px;box-shadow:inset 0 0 0 1px var(--rule);font-family:var(--display-btn);font-weight:700;font-size:35px;line-height:1;transition:background var(--dur-btn) var(--ease-btn),box-shadow var(--dur-btn) var(--ease-btn)}
a.cbtn:hover,a.cbtn:focus-visible{background:var(--black);box-shadow:inset 0 0 0 1px var(--black)}

.ft{margin-top:146px}
.ft__cols{display:grid;grid-template-columns:375px 360px 1fr;margin-top:91px}
.ft__logo{display:block;width:251px;color:var(--white)}
.ft__logo svg{width:251px}
.ft__baseline{display:block;margin-top:9px;font-family:var(--sans);font-weight:400;font-size:9.2px;letter-spacing:.37em;line-height:1;white-space:nowrap}
.ft__desc{margin-top:40px;max-width:275px;font-size:16px;line-height:1.2}
.ft__h{font-family:var(--display);font-weight:700;font-size:20px;line-height:1.2;color:var(--red);margin:3px 0 19px}
.ft__txt,.ft__list{font-weight:400;font-size:16px;line-height:1.2}
.ft__txt a:hover{text-decoration:underline}
.ft__list li{position:relative;padding-left:24px}
.ft__list li::before{content:"•";position:absolute;left:0;color:var(--red)}
.ft__bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:128px}
.ft__copy{font-weight:400;font-size:14px;line-height:1.2;margin-left:-3px;margin-bottom:-4px}
.ft__social{display:flex;gap:9px}
.sq{width:61px;height:61px;display:grid;place-items:center;background:var(--red);color:var(--white);transition:background var(--dur-fast) var(--ease-inout),box-shadow var(--dur-fast) var(--ease-inout)}
.sq svg{width:24px;height:24px}
.sq:hover,.sq:focus-visible{background:var(--black);box-shadow:inset 0 0 0 1px var(--red)}

/* ==========================================================================
   LIEN PIED DE PAGE
   ========================================================================== */
.ft__copy a,.ft__lien{color:inherit;font:inherit;background-image:linear-gradient(var(--red),var(--red));background-size:0 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size var(--dur-fast) var(--ease-inout),color var(--dur-fast) var(--ease-inout)}
.ft__copy a:hover,.ft__copy a:focus-visible,.ft__lien:hover,.ft__lien:focus-visible{color:var(--red);background-size:100% 1px}

/* ==========================================================================
   CONSENTEMENT COOKIES — calé en bas de page
   ========================================================================== */
body{padding-bottom:var(--bandeau,0px)}
.consent{position:fixed;inset:auto 0 0;z-index:50;background:var(--black);padding-bottom:env(safe-area-inset-bottom,0px);transform:translate3d(0,100%,0);transition:transform var(--dur-panneau) var(--ease)}
.consent::before{content:"";position:absolute;inset:0 0 auto;height:1px;background:var(--rule-soft)}
.consent.is-in{transform:none}
.consent[hidden]{display:none}
.consent__in{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-block:26px}
.consent__txt{max-width:720px}
.consent__h{font-family:var(--display);font-weight:700;font-size:20px;line-height:1.2;color:var(--red);margin-bottom:6px}
.consent__txt p+p,.consent__txt p:not(.consent__h){font-weight:400;font-size:16px;line-height:1.3}
.consent__more{font:inherit;color:var(--white);text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:3px}
.consent__more:hover{color:var(--red)}
.consent__btns{display:flex;gap:9px;flex:0 0 auto}
.consent__btn{min-width:150px;height:56px;padding:0 22px;font-family:var(--display-btn);font-weight:400;font-size:30px;line-height:1;box-shadow:inset 0 0 0 1px var(--rule);transition:background var(--dur-btn) var(--ease-btn),box-shadow var(--dur-btn) var(--ease-btn),color var(--dur-btn) var(--ease-btn)}
.consent__btn--accepter{background:var(--red);box-shadow:none}
.consent__btn--refuser:hover,.consent__btn--refuser:focus-visible{box-shadow:inset 0 0 0 1px var(--white)}
.consent__btn--accepter:hover,.consent__btn--accepter:focus-visible{background:var(--black);box-shadow:inset 0 0 0 1px var(--red)}

/* ==========================================================================
   MENTIONS LÉGALES — lightbox
   ========================================================================== */
.legal{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:clamp(16px,4vw,60px);border:0;background:transparent;color:var(--white);display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity var(--dur-fast) var(--ease-soft),visibility 0s linear var(--dur-fast),overlay var(--dur-fast) allow-discrete,display var(--dur-fast) allow-discrete}
.legal:not([open]){display:none}
.legal[open].is-in{opacity:1;visibility:visible;transition:opacity var(--dur-fast) var(--ease-soft),visibility 0s}
.legal::backdrop{background:rgba(0,0,0,.82);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.legal__box{position:relative;width:min(100%,900px);max-height:100%;overflow:auto;overscroll-behavior:contain;background:var(--black);box-shadow:inset 0 0 0 1px var(--rule);padding:clamp(28px,4.4vw,70px) clamp(22px,5vw,80px);transform:translate3d(0,28px,0);transition:transform var(--dur) var(--ease)}
.legal.is-in .legal__box{transform:none}
.legal__close{position:absolute;top:clamp(20px,2.5vw,36px);right:clamp(20px,2.5vw,36px);width:30px;height:30px;color:var(--white);transition:color var(--dur-fast) var(--ease-inout),transform var(--dur-fast) var(--ease-inout)}
.legal__close:hover,.legal__close:focus-visible{color:var(--red);transform:rotate(90deg)}
.legal__title{font-family:var(--display);font-weight:700;font-size:clamp(38px,4.0625vw,65px);line-height:1.2;margin:4px 0 30px}
.legal .hatch{margin:0 0 10px}
.legal__body h3{font-family:var(--display);font-weight:700;font-size:20px;line-height:1.2;color:var(--red);margin:30px 0 8px}
.legal__body p{font-weight:400;font-size:16px;line-height:1.45;max-width:68ch}
.legal__body p+p{margin-top:.8em}
.legal__body a{text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:3px}
.legal__body a:hover{color:var(--red)}
.legal__btn{margin-top:6px;height:48px;padding:0 20px;background:var(--red);font-family:var(--display-btn);font-weight:400;font-size:24px;line-height:1;transition:background var(--dur-btn) var(--ease-btn),box-shadow var(--dur-btn) var(--ease-btn)}
.legal__btn:hover,.legal__btn:focus-visible{background:var(--black);box-shadow:inset 0 0 0 1px var(--red)}
html:has(.legal[open]){overflow:hidden}

@media (max-width:1023px){
  .consent__in{flex-direction:column;align-items:stretch;gap:18px;padding-block:20px}
  .consent__txt{max-width:none}
}
@media (max-width:767px){
  .consent__txt p:not(.consent__h){font-size:14px}
  .consent__btns{display:grid;grid-template-columns:1fr 1fr}
  .consent__btn{min-width:0;height:50px;font-size:26px}
  .ft__copy{line-height:1.8}
}
@media (prefers-reduced-motion:reduce){.consent,.legal,.legal__box,.hd,.hd::before,.hd__in{transition-duration:.01ms!important;transition-delay:0s!important}}
@media print{.consent,.legal{display:none}}

/* Variante menu sur petit écran : ligne dépliée sous la rubrique */
.drawer__note{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur) var(--ease)}
.drawer__note>span{overflow:hidden;font-family:var(--sans);font-weight:400;font-size:15px;line-height:1.3;color:var(--white)}
.drawer__note b{display:block;padding-top:6px;font-family:var(--display);font-weight:700;font-size:17px;color:var(--red);white-space:pre}
.drawer__note>span>span{display:block;padding-bottom:12px}
.drawer__note.is-open{grid-template-rows:1fr}

/* ==========================================================================
   BULLE « BIENTÔT » (boutons des pages à venir)
   ========================================================================== */
.bientot{position:fixed;left:0;top:0;z-index:80;width:max-content;max-width:min(360px,calc(100vw - 24px));padding:13px 18px 14px;background:var(--white);color:var(--black);pointer-events:none;opacity:0;visibility:hidden;transform:translate3d(0,10px,0);transition:opacity .3s var(--ease),transform .6s var(--ease),visibility 0s linear .6s}
.bientot.is-in{opacity:1;visibility:visible;transform:none;transition:opacity .3s var(--ease),transform .6s var(--ease),visibility 0s}
.bientot.is-bas{transform:translate3d(0,-10px,0)}
.bientot.is-bas.is-in{transform:none}
.bientot::after{content:"";position:absolute;left:var(--fleche,26px);bottom:-6px;width:12px;height:12px;margin-left:-6px;background:var(--white);transform:rotate(45deg)}
.bientot.is-bas::after{bottom:auto;top:-6px}
.bientot.is-droite{transform:translate3d(-10px,0,0)}
.bientot.is-droite.is-in{transform:none}
.bientot.is-droite::after{left:0;bottom:auto;top:var(--fleche-y,50%);margin:-6px 0 0 -6px}
.bientot__k{display:block;font-family:var(--display);font-weight:700;font-size:17px;line-height:1.1;color:var(--red);white-space:pre}
.bientot__t{display:block;margin-top:4px;font-weight:400;font-size:15px;line-height:1.3}
@media (prefers-reduced-motion:reduce){.bientot{transition-duration:.01ms!important}}

/* ==========================================================================
   ANIMATIONS D'APPARITION (principes Orkidées)
   ========================================================================== */
.js [data-anim]{transition:opacity var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease);transition-delay:calc(var(--i,0) * var(--stagger))}
.js [data-anim=reveal]{opacity:0;transform:translate3d(0,28px,0)}
.js [data-anim=fade]{opacity:0}
.js [data-anim].is-in{opacity:1;transform:none}
.js [data-anim=reveal-lines]>*{opacity:0;transform:translate3d(0,.5em,0);transition:opacity var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease);transition-delay:calc(var(--i,0) * var(--stagger))}
.js [data-anim=reveal-lines].is-in>*{opacity:1;transform:none}
.js [data-anim=filet]{transform:scaleX(0);transform-origin:left center}
.js [data-anim=filet].is-in{transform:none}
.js .hero__sigle[data-anim=fade].is-in{opacity:1}
/* Titre : balayage ligne par ligne */
.js [data-anim=titre-balayage] .l{-webkit-mask-image:linear-gradient(90deg,#000 0 45.45%,rgba(0,0,0,var(--balayage-depart)) 54.55% 100%);mask-image:linear-gradient(90deg,#000 0 45.45%,rgba(0,0,0,var(--balayage-depart)) 54.55% 100%);-webkit-mask-size:220% 100%;mask-size:220% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:100% 0;mask-position:100% 0;transition:-webkit-mask-position var(--dur-titre) var(--ease),mask-position var(--dur-titre) var(--ease)}
.js [data-anim=titre-balayage] .l:nth-child(2){transition-delay:var(--stagger)}
.js [data-anim=titre-balayage] .l:nth-child(3){transition-delay:calc(2 * var(--stagger))}
.js [data-anim=titre-balayage] .l:nth-child(4){transition-delay:calc(3 * var(--stagger))}
.js [data-anim=titre-balayage] .l:nth-child(5){transition-delay:calc(4 * var(--stagger))}
.js [data-anim=titre-balayage].is-in .l{-webkit-mask-position:0 0;mask-position:0 0}
/* Image : dévoilement par le bas / signature : tracé de gauche à droite */
.js [data-anim=devoile-bas]{-webkit-mask-image:linear-gradient(180deg,#000 0 45.45%,transparent 54.55% 100%);mask-image:linear-gradient(180deg,#000 0 45.45%,transparent 54.55% 100%);-webkit-mask-size:100% 220%;mask-size:100% 220%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:0 100%;mask-position:0 100%;transition:-webkit-mask-position var(--dur-slow) var(--ease),mask-position var(--dur-slow) var(--ease)}
.js [data-anim=devoile-bas].is-in{-webkit-mask-position:0 0;mask-position:0 0}
.js [data-anim=balayage]{-webkit-mask-image:linear-gradient(90deg,#000 0 45.45%,transparent 54.55% 100%);mask-image:linear-gradient(90deg,#000 0 45.45%,transparent 54.55% 100%);-webkit-mask-size:220% 100%;mask-size:220% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:100% 0;mask-position:100% 0;transition:-webkit-mask-position var(--dur-titre) var(--ease-inout) .5s,mask-position var(--dur-titre) var(--ease-inout) .5s}
.js [data-anim=balayage].is-in{-webkit-mask-position:0 0;mask-position:0 0}

@media (prefers-reduced-motion:reduce){
  .js [data-anim],.js [data-anim]>*,.js [data-anim] .l{opacity:1!important;transform:none!important;-webkit-mask-image:none!important;mask-image:none!important;transition:none!important}
  .js .ruban__piste{animation:none}
  .ruban__copie{display:none}
  .drawer,.drawer__mot,.drawer__aside,.drawer__close,.faq__wrap,.faq__a,.btn__in>span,.card__split,.card__logo,.card__txt{transition-duration:.01ms!important;transition-delay:0s!important}
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1279px){
  .pic--1{margin-left:12%}
  .pic--2{margin-left:36%}
  .force{grid-template-columns:1fr 1fr;column-gap:8%}
  .force__img{width:170%;margin-left:-3%}
  .h3red:first-child,.h3red+.h3red{max-width:none}
  .h3red+.h3red{margin-top:70px}
  .force__side{padding-top:100px}
  .secteurs{grid-template-columns:1fr 1.3fr;column-gap:6%}
  .secteurs__img{width:180%;margin-left:calc(-1 * var(--gut))}
  .box{min-height:0;padding:48px 44px}
  .solutions{grid-template-columns:1fr 1.35fr;column-gap:8%}
  .about{grid-template-columns:1fr 1fr}
  .about__photo{margin-left:0}
  .about__map{width:100%}
  .about__p1,.about__p2{max-width:none}
  .about__p2{padding-right:6%}
  .contact{padding:70px 60px}
  .ft__cols{grid-template-columns:1fr 1.1fr 1.1fr;gap:30px}
  .end__bg{left:auto;right:0;width:min(1024px,80vw)}
}

@media (max-width:1023px){
  .hd__logo{width:180px;margin-left:28px}
  .intro__items{display:grid;gap:56px}
  .pic--1,.pic--2{margin:0}
  .pic .txt{width:auto;max-width:560px}
  .force{grid-template-columns:1fr}
  .force__main{align-items:flex-start}
  .force__lead{text-align:left}
  .force__btn{margin-top:40px}
  .force__img{width:calc(100% + 2 * var(--gut));margin:40px calc(-1 * var(--gut)) 0}
  .force__side{padding-top:20px;display:grid;gap:40px}
  .h3red+.h3red{margin-top:0}
  .sec--intro .hatch--tight{margin-top:60px}
  .stats{grid-template-columns:repeat(2,1fr);row-gap:56px;margin-top:64px;padding-bottom:70px}
  .card{flex-basis:calc((100% - 2 * 24px) / 2.4)}
  .partners{padding-inline:0}
  .partners__track{gap:24px}
  .sec--intro .hatch--end{margin-top:80px}
  .secteurs{grid-template-columns:1fr;margin-top:48px}
  .secteurs__img{width:calc(100% + 2 * var(--gut));margin:32px calc(-1 * var(--gut)) 0}
  .secteurs__side{margin:0}
  .secteurs__track{gap:32px}
  .ruban{margin-top:100px}
  .sec--solutions{padding-top:100px}
  .solutions{grid-template-columns:1fr;row-gap:64px;margin-top:48px}
  .solutions__main .btn{margin-top:40px}
  .sec--solutions .hatch--end{margin-top:100px}
  .sec--about{padding-top:100px}
  .about{grid-template-columns:1fr;margin-top:40px}
  .about__photo,.about__p1,.about__p2,.about__map{grid-column:1;grid-row:auto}
  .about__photo{width:min(432px,86%);margin-left:6%}
  .about__photo>img:first-child{width:100%}
  .about__sign{width:67%;top:61%;left:-6%}
  .about__p1{padding-top:40px}
  .about__p2{margin-top:32px;padding:0}
  .about__p2 .btn{margin-top:40px}
  .about__map{margin-top:56px}
  .end{padding-top:100px;padding-bottom:min(80vw,540px)}
  .end__bg{top:auto;bottom:0;width:100%;height:auto}
  .contact{flex-direction:column;align-items:stretch;min-height:0;padding:56px 40px}
  .contact__txt{max-width:none}
  .contact__btns{width:100%}
  .ft{margin-top:100px}
  .ft__cols{grid-template-columns:1fr 1fr;row-gap:48px;margin-top:64px}
  .ft__col--brand{grid-column:1/-1}
  .ft__bottom{margin-top:64px}
}

@media (max-width:1023px) and (orientation:portrait){
  .hero{height:auto;min-height:72vh}
  .hero__in{padding-bottom:40px}
}

@media (max-width:767px){
  body{font-size:17px}
  .hd__in{align-items:center}
  .hd__logo{width:150px;margin:0 auto 0 20px}
  .burger{margin-left:0}
  .hero{height:auto;min-height:100svh;min-height:100vh}
  @supports (height:100svh){.hero{min-height:100svh}}
  .hero__in{padding-top:120px;padding-bottom:40px}
  .hero__sigle{left:auto;right:-14%;top:auto;bottom:18%;width:78vw}
  .pic{flex-direction:column;gap:22px}
  .pic--1 .pic__ico{width:56px;margin:0}
  .pic--2 .pic__ico{width:64px;margin:0}
  .btn{height:56px;font-size:34px;padding:0 16px 0 20px}
  .force__lead span{display:inline}
  .stat__l{font-size:16px}
  .stat__l br{display:none}
  .partners__title{text-align:left}
  .partners__cmd{margin-top:24px}
  .card{flex-basis:72%}
  .box{padding:36px 24px}
  .box__txt{margin-top:28px}
  .box .btn{margin-top:32px}
  .box__title br,.faq__q br,.contact__title br,.contact__txt p br,.mission__txt br,.h3red br{display:none}
  .h2 .l{display:inline}
  .ruban{margin-top:72px}
  .faq__item+.faq__item .faq__q{padding-top:28px}
  .faq__q{padding-bottom:28px}
  .faq__a{padding-bottom:40px}
  .contact{padding:44px 24px}
  .cbtn{height:64px;font-size:28px}
  .ft__cols{grid-template-columns:1fr}
  .ft__bottom{flex-direction:column;align-items:flex-start;gap:28px}
  .ft__copy{margin-left:0}
}

@media print{.hd,.drawer,.ruban,.end__bg{display:none}.js [data-anim],.js [data-anim] .l{opacity:1;transform:none;-webkit-mask-image:none;mask-image:none}}
