/* Page home. Toute nouvelle règle doit être préfixée par body[data-page="home"] pour rester isolée. */

/* Styles hérités de la page 1.0. À consolider dans ce bloc uniquement. */
/* spécifique accueil */
.hchip{text-decoration:none}
#about{padding-bottom:clamp(4rem,8vw,6rem)}
.fusion-note{margin-top:2.2rem;color:var(--grey);font-weight:300;max-width:62ch}
.fusion-note b{color:var(--gold);font-weight:600}

/* V1.7 — cadrage multi-écrans, carrousel stable et retour d'opération. */
/* V1.11 — le héro laisse la place du bandeau clients sous la ligne de flottaison :
   hauteur = viewport − hauteur réservée au bandeau (--trust-reserve), bornée pour
   que l'essentiel du héro reste entier à 1280×720 comme à 1920×1080. */
body[data-page="home"] .hero{
  --trust-reserve:clamp(7.6rem,13vh,8.5rem);
  height:calc(var(--viewport-h) - var(--trust-reserve));
  min-height:37rem;max-height:62rem;padding-top:calc(var(--nav-h) + 1.1rem);
  padding-bottom:clamp(1.6rem,3.4vh,2.8rem);justify-content:center
}
body[data-page="home"] .hero-slides,body[data-page="home"] .hslide{width:100%;height:100%}
body[data-page="home"] .hslide{background-size:cover;background-position:center 48%}
body[data-page="home"] .hero .eyebrow{margin-bottom:1.15rem}
body[data-page="home"] .hero h1{font-size:clamp(3.35rem,6.35vw,7.15rem);max-width:13.5ch;line-height:.94}
body[data-page="home"] .hero-sub{margin-top:1.45rem;max-width:58ch;line-height:1.62}
body[data-page="home"] .hero-cta{margin-top:1.45rem}
body[data-page="home"] .hero-ind{margin-top:1.55rem;gap:.65rem}
body[data-page="home"] .hchip{min-width:145px;padding:.68rem .9rem .72rem}
body[data-page="home"] .hc-val{font-size:clamp(1.2rem,1.8vw,1.55rem)}
body[data-page="home"] .hc-val.news{min-height:0}
body[data-page="home"] .hc-chg{max-width:19ch;line-height:1.25}
body[data-page="home"] #about{padding-top:clamp(3.5rem,6vw,5.25rem)!important;padding-bottom:clamp(3.5rem,6vw,5.25rem)!important}
body[data-page="home"] #about .about-flow{gap:clamp(2.4rem,5vw,5rem)}
body[data-page="home"] .office-strip{margin-top:clamp(2.5rem,4vw,3.5rem)}
body[data-page="home"] .kpi{padding:clamp(2.25rem,3.8vw,3.4rem) 1.25rem}
body[data-page="home"] .kpi .lbl{margin-top:.9rem;line-height:1.45}
body[data-page="home"] #expertise{padding-top:clamp(4.7rem,8vw,7rem);padding-bottom:clamp(4.7rem,8vw,7rem)}
body[data-page="home"] .who{margin-top:clamp(2.8rem,5vw,4.2rem);padding-top:clamp(2.5rem,4vw,3.5rem)}
body[data-page="home"] #track{padding-top:clamp(4.7rem,8vw,7rem);padding-bottom:clamp(2.8rem,4.5vw,4rem)}
body[data-page="home"] .trh-track{padding-top:2rem}
body[data-page="home"] .trh-track.auto-running{scroll-snap-type:none;scroll-behavior:auto}
body[data-page="home"] .trh-track.is-paused{scroll-snap-type:x proximity}
body[data-page="home"] .trh-track.is-returning{scroll-behavior:auto;pointer-events:none}
body[data-page="home"] .trh-card{flex-basis:clamp(250px,24vw,340px);aspect-ratio:4/5.2}
body[data-page="home"] .trh-nav{position:relative;z-index:2;margin-top:.8rem}
body[data-page="home"] .trh-nav button{background:rgba(255,255,255,.045);backdrop-filter:blur(10px);min-width:46px;min-height:46px}
body[data-page="home"] .cta-band{min-height:clamp(28rem,58svh,39rem);display:grid;place-items:center}
body[data-page="home"] .cta-band .bgimg{background-position:center 46%;filter:saturate(.83)}
body[data-page="home"] .cta-band::after{background:linear-gradient(100deg,rgba(2,2,4,.9),rgba(2,2,4,.58) 50%,rgba(2,2,4,.78))}
body[data-page="home"] .cta-band h2{text-shadow:0 3px 32px rgba(0,0,0,.7)}
body[data-page="home"] .cta-band p{color:#dedee4;text-shadow:0 2px 18px #000}

@media(max-width:1100px){
  body[data-page="home"] .hero h1{font-size:clamp(3.15rem,8vw,6rem)}
  body[data-page="home"] .hero-ind{max-width:720px}
}
@media(max-width:880px){
  body[data-page="home"] .hero{height:auto;min-height:max(43rem,var(--viewport-h));max-height:none;padding-top:calc(var(--nav-h) + 2.3rem);padding-bottom:2.4rem}
  body[data-page="home"] .hero h1{font-size:clamp(3rem,12vw,5rem)}
  body[data-page="home"] .hero-sub{font-size:1rem;line-height:1.58}
  body[data-page="home"] .hero-ind{width:100%;flex-wrap:nowrap;overflow-x:auto;padding:.15rem 0 .45rem;scroll-snap-type:x proximity;scrollbar-width:none}
  body[data-page="home"] .hero-ind::-webkit-scrollbar{display:none}
  body[data-page="home"] .hchip{flex:0 0 min(46vw,190px);scroll-snap-align:start}
  body[data-page="home"] #about .frmap-wrap{margin-inline:auto}
  body[data-page="home"] .trh-card{flex-basis:min(76vw,310px);aspect-ratio:4/5.1}
}
@media(max-height:460px) and (orientation:landscape){
  body[data-page="home"] .hero{height:auto;min-height:100svh;max-height:none;padding-top:calc(var(--nav-h,4.6rem) + 1rem);padding-bottom:1.4rem;justify-content:flex-start}
  body[data-page="home"] .hero h1{font-size:clamp(2rem,7.5vh,3rem);max-width:20ch}
  body[data-page="home"] .hero-sub{margin-top:.8rem;max-width:70ch}
  body[data-page="home"] .hero-ind{margin-top:1rem}
}
/* P0.1 — écrans desktop courts (portables 720/768/800/900) : le centrage vertical
   faisait remonter la signature sous la barre de navigation fixe. On ancre le héro
   en haut avec une zone sûre garantie sous le nav (≥ 16 px) et on relie la
   typographie à la hauteur du viewport pour que signature → KPI tiennent sans
   déborder ni sous le nav ni sur le bandeau clients. Réservé au desktop
   (min-width:881px) pour ne rien changer sur iPhone / tablette portrait. */
@media(min-width:881px) and (max-height:1200px){
  /* Hauteur FIXE = viewport − réserve du bandeau : le bandeau clients reste
     exactement à sa place (préservé, visible sans scroll comme en V1.11.4).
     Ancrage flex-start sous le nav (zone sûre ≥ 16 px, plus de débordement vers
     le haut) ET typographie liée à la hauteur pour que signature → KPI tiennent
     dans la boîte sans recouvrir le bandeau. */
  body[data-page="home"] .hero{
    height:calc(var(--viewport-h) - var(--trust-reserve));
    min-height:0;
    max-height:none;
    justify-content:flex-start;
    padding-top:calc(var(--nav-h) + clamp(1.3rem,2.4vh,1.7rem));
    padding-bottom:clamp(.85rem,2vh,1.9rem)
  }
  body[data-page="home"] .hero h1{font-size:clamp(2.05rem,4.6vh,4.5rem);line-height:1;max-width:16ch}
  body[data-page="home"] .hero-sub{margin-top:clamp(.55rem,1.4vh,1.25rem);line-height:1.42}
  body[data-page="home"] .hero-cta{margin-top:clamp(.55rem,1.4vh,1.25rem)}
  body[data-page="home"] .hero-ind{margin-top:clamp(.65rem,1.5vh,1.35rem)}
  body[data-page="home"] .hero-signature-wrap{margin-bottom:clamp(.5rem,1.2vh,1.25rem)}
}
/* Écrans très courts (≤ 780 px) : on comprime davantage le sous-titre pour
   garantir que KPI et bandeau tiennent (portables 1280×720 / 1366×768). */
@media(min-width:881px) and (max-height:780px){
  body[data-page="home"] .hero h1{font-size:clamp(1.95rem,4.1vh,3rem)}
  body[data-page="home"] .hero-sub{font-size:.98rem;line-height:1.38;max-width:64ch}
}
@media(max-width:520px){
  body[data-page="home"] .hero{min-height:max(45rem,var(--viewport-h));padding-inline:1.25rem}
  body[data-page="home"] .hero .eyebrow{font-size:.66rem;letter-spacing:.22em;gap:.7rem}
  body[data-page="home"] .hero .eyebrow::before{width:25px}
  body[data-page="home"] .hero h1{font-size:clamp(2.75rem,13.7vw,4rem)}
  body[data-page="home"] .hero-cta{width:100%;justify-content:center}
  body[data-page="home"] .hchip{flex-basis:68vw}
  body[data-page="home"] #about{padding-inline:1.25rem}
  body[data-page="home"] .cta-band{margin-inline:1rem;border-radius:22px;padding-inline:1.3rem}
}

/* ============ V1.9.1 · bandeau clients compact et stable ============ */
/* Le sélecteur historique `.marquee-track span` appliquait aussi ses marges au
   span interne `.lgimg`, ce qui doublait artificiellement les espaces et
   allongeait le rail. Ces règles sont limitées à l'accueil. */
body[data-page="home"] .trust-band{
  padding:clamp(.78rem,1.35vw,1.15rem) 0;
  overflow:hidden
}
body[data-page="home"] .trust-band .ml{
  margin-bottom:clamp(.45rem,.7vw,.65rem);
  font-size:clamp(.6rem,.72vw,.7rem);
  letter-spacing:.3em;
  color:var(--grey-2)
}
body[data-page="home"] .trust-band .ml::before,
body[data-page="home"] .trust-band .ml::after{
  width:24px;
  margin:0 .65rem;
  opacity:.72
}
body[data-page="home"] .trust-band .marquee-mask{
  width:100%;
  max-width:100%;
  overflow:hidden;
  padding-block:4px;
  /* V1.11 — fondu latéral resserré (4 %) : les logos restent entiers et lisibles
     quasiment bord à bord au lieu d'être « coupés » sur 11 % de chaque côté. */
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)
}
body[data-page="home"] .trust-band .marquee-track{
  display:flex!important;
  align-items:center;
  width:max-content;
  max-width:none;
  animation:none!important
}
body[data-page="home"] .trust-band .marquee-line{
  display:flex;
  align-items:center;
  flex:0 0 auto;
  gap:clamp(1.05rem,2vw,2.1rem);
  padding-inline:clamp(.65rem,1.2vw,1.1rem)
}
body[data-page="home"] .trust-band .marquee-line>span{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  min-height:42px;
  margin:0!important;
  gap:clamp(.55rem,.9vw,.85rem)
}
body[data-page="home"] .trust-band .marquee-line>span>b{
  margin:0!important;
  font-size:.8rem;
  line-height:1
}
body[data-page="home"] .trust-band .marquee-track .lgimg{
  display:grid;
  place-items:center;
  position:relative;
  width:clamp(104px,9.5vw,146px);
  min-width:clamp(104px,9.5vw,146px);
  height:clamp(1.65rem,2vw,2rem);
  margin:0!important
}
body[data-page="home"] .trust-band .marquee-track .lgimg img,
body[data-page="home"] .trust-band .marquee-track .lgimg img.c{
  /* V1.11 — boîte absolue = case exacte, dessin contenu : les SVG sans dimensions
     intrinsèques (ex. ID Logistics) ne peuvent plus déborder ni être rognés,
     quel que soit le mode de dimensionnement de la grille. */
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  filter:none
}
@media(max-width:520px){
  body[data-page="home"] .trust-band{padding:.7rem 0 .78rem}
  body[data-page="home"] .trust-band .ml{margin-bottom:.4rem;font-size:.58rem;letter-spacing:.24em}
  body[data-page="home"] .trust-band .ml::before,
  body[data-page="home"] .trust-band .ml::after{display:none}
  body[data-page="home"] .trust-band .marquee-mask{
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)
  }
  body[data-page="home"] .trust-band .marquee-line{gap:.95rem;padding-inline:.55rem}
  body[data-page="home"] .trust-band .marquee-line>span{min-height:38px;gap:.5rem}
  body[data-page="home"] .trust-band .marquee-track .lgimg{
    width:100px;
    min-width:100px;
    height:1.55rem
  }
}


/* V1.14 — reconnaissance du marché (presse) */
#reconnaissance .press-grid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(min(20rem,100%),1fr));margin-top:1.4rem}
#reconnaissance .press-card{border:1px solid rgba(255,255,255,.09);border-radius:1.1rem;padding:1.35rem 1.4rem;background:linear-gradient(160deg,rgba(255,255,255,.045),rgba(255,255,255,.015));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;flex-direction:column;gap:.45rem;transition:border-color .3s ease,transform .3s ease}
#reconnaissance .press-card:hover{border-color:rgba(255,214,102,.35);transform:translateY(-2px)}
@media (prefers-reduced-motion:reduce){#reconnaissance .press-card,#reconnaissance .press-card:hover{transform:none;transition:none}}
#reconnaissance .press-tag{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold,#E8C468);margin:0}
#reconnaissance h3{margin:.1rem 0 0;font-size:1.08rem;line-height:1.35}
#reconnaissance .press-num{font-weight:600;font-size:.95rem;margin:0}
#reconnaissance .press-role{opacity:.8;font-size:.92rem;line-height:1.55;margin:0}
#reconnaissance .press-links{display:flex;gap:1.1rem;flex-wrap:wrap;margin:.55rem 0 0}
#reconnaissance .press-links a{font-size:.92rem;min-height:42px;display:inline-flex;align-items:center}
#reconnaissance .press-ext{opacity:.75}
#reconnaissance .press-ext:hover,#reconnaissance .press-ext:focus-visible{opacity:1}
#reconnaissance .press-all{margin-top:1.3rem}
#reconnaissance .press-all a{min-height:44px;display:inline-flex;align-items:center}

/* V1.16 — halo « vibrations » derrière le CTA final : anneaux du logo en
   fusion screen, nettement visibles, en rotation très lente (90 s) — ce que
   Core Group fait interagir et coordonner autour de l'engagement final. */
body[data-page="home"] .cta-band .bgimg.cta-vibes{
  inset:auto;
  left:50%;top:50%;
  width:min(860px,132%);
  aspect-ratio:1;
  transform:translate(-50%,-50%);
  background-size:contain!important;
  background-repeat:no-repeat;
  background-position:center;
  z-index:1;
  mix-blend-mode:screen;
  opacity:.62;
  filter:saturate(.95);
  animation:cgOrbit 90s linear infinite;
}
@keyframes cgOrbit{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@media(prefers-reduced-motion:reduce){body[data-page="home"] .cta-band .bgimg.cta-vibes{animation:none}}

/* ============ V1.17.1 · découvrabilité off-market depuis l'accueil ============ */
/* Héros : hiérarchie à deux actions — le CTA principal (pilule or existante)
   mène à la page off-market, le Track Record devient un lien secondaire
   discret. Mêmes révélations, aucune nouvelle hauteur de héros. */
body[data-page="home"] .hero-actions{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;align-self:flex-start;margin-top:1.45rem}
body[data-page="home"] .hero-actions .hero-cta{margin-top:0}
body[data-page="home"] .hero-link-secondary{display:inline-flex;align-items:center;min-height:44px;color:#cfd0d6;font-size:.95rem;text-decoration:none;border-bottom:1px solid rgba(255,213,98,.35);opacity:0;animation:up 1.1s 1.2s forwards;transition:color .3s ease,border-color .3s ease;text-shadow:0 1px 12px rgba(0,0,0,.6)}
body[data-page="home"] .hero-link-secondary:hover,
body[data-page="home"] .hero-link-secondary:focus-visible{color:#fff;border-color:rgba(255,213,98,.8)}
@media(max-width:880px){body[data-page="home"] .hero-actions{margin-top:clamp(.55rem,1.4vh,1.25rem);gap:.9rem}}
@media(max-width:520px){
  body[data-page="home"] .hero-actions{width:100%}
  body[data-page="home"] .hero-link-secondary{width:100%;justify-content:center}
}

/* V1.17.2 — Quand nous appeler : quatre portes éditoriales premium.
   Index 01/02/03 (la quatrième porte, vers Contact, est étiquetée), titre
   très lisible, phrase courte, filet fin doré, flèche discrète, beaucoup
   d'espace. Matière minimale translucide SANS backdrop-filter, aucune
   animation autonome, aucun bouton or : des portes, pas des tarifs. */
html body[data-page="home"] .who::before{content:none}
body[data-page="home"] .who-doors{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.2rem,2.6vw,2.4rem);margin-top:2.2rem}
body[data-page="home"] a.who-door{display:flex;flex-direction:column;gap:.55rem;min-height:44px;padding:1.6rem 1.1rem 1.3rem;color:inherit;text-decoration:none;border-top:1px solid rgba(255,213,98,.4);background:linear-gradient(175deg,rgba(255,255,255,.03),rgba(255,255,255,0) 62%);transition:border-color .3s ease;-webkit-tap-highlight-color:transparent}
body[data-page="home"] .who-idx{font-family:var(--display);font-weight:200;font-size:clamp(1.9rem,3vw,2.6rem);line-height:1;color:var(--gold-deep);letter-spacing:.02em}
body[data-page="home"] .who-tag{display:inline-flex;align-items:flex-end;align-self:flex-start;height:clamp(1.9rem,3vw,2.6rem);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep)}
body[data-page="home"] .who-door b{font-size:clamp(1.05rem,1.3vw,1.22rem);line-height:1.35;font-weight:700}
body[data-page="home"] .who-door p{margin:0;color:var(--grey);font-size:.92rem;line-height:1.6;font-weight:300}
body[data-page="home"] .who-door .who-go{display:inline-block;margin-top:auto;padding-top:.7rem;color:var(--gold);font-size:.95rem;opacity:.8;transition:transform .3s var(--ease),opacity .3s}
body[data-page="home"] .who-door:hover{border-top-color:rgba(255,213,98,.85)}
body[data-page="home"] .who-door:hover .who-go,
body[data-page="home"] a.who-door:focus-visible .who-go{opacity:1;transform:translateX(4px)}
body[data-page="home"] a.who-door:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:4px}
@media(max-width:1180px) and (min-width:761px){
  body[data-page="home"] .who-doors{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  body[data-page="home"] .who-doors{grid-template-columns:1fr;gap:1rem;margin-top:1.8rem}
  body[data-page="home"] a.who-door{padding:1.4rem .4rem 1.2rem}
}
@media (prefers-reduced-motion:reduce){
  body[data-page="home"] .who-door .who-go,
  body[data-page="home"] .who-door:hover .who-go{transform:none;transition:none}
}
@media(max-width:520px){
  body[data-page="home"] .hero-actions .hero-cta{text-align:center;font-size:.98rem}
}
body[data-page="home"] .hero-cta .nbr{white-space:nowrap}
/* RC3c — les liens pleine surface se comportent comme des objets au tap. */
body[data-page="home"] .hero-link-secondary{-webkit-tap-highlight-color:transparent}

/* V1.17.2 — passe performance iPhone : le halo orbital du CTA final cesse de
   tourner sur les appareils tactiles (une rotation de 90 s est imperceptible
   figée) et le signal territorial de Lyon devient ponctuel — trois pulsations
   après la révélation de la carte, puis repos définitif. */
@media(max-width:900px),(hover:none) and (pointer:coarse){
  body[data-page="home"] .cta-band .bgimg.cta-vibes{animation:none}
  html body[data-page="home"] #about .fr-pulse{animation-iteration-count:3}
  .js body[data-page="home"] #about .frmap-wrap:not(.in) .fr-pulse{animation:none}
}
