/* Présentation des sections au défilement — piloté par adm-scroll.js.
   Rythme « Scroll Reveal Standard » (UI/UX Pro Max) : montée de 28 px, 600–800 ms, décalage de 80 ms,
   déclenchement quand l'élément atteint 85 % de la hauteur de l'écran. */
:root{--reveal-y:28px;--reveal-step:80ms;--reveal-delay:calc(var(--i,0) * var(--reveal-step))}

/* Entrée par défaut : fondu + montée */
.js-scroll [data-reveal]:not(.is-in){opacity:0;transform:translate3d(0,var(--reveal-y),0)}
.js-scroll [data-reveal].is-in:not(.is-done){transition:opacity .6s var(--ease) var(--reveal-delay),transform .8s var(--ease) var(--reveal-delay),clip-path 1.1s var(--ease) var(--reveal-delay)}

/* Images : rideau qui se lève, la photo se pose en dézoomant */
.material-photo{overflow:hidden;border-radius:var(--r-lg);box-shadow:0 30px 60px -30px rgba(42,27,16,.5)}
.material-photo img{border-radius:0;box-shadow:none}
.js-scroll [data-reveal=image]:not(.is-in){opacity:1;transform:none;clip-path:inset(100% 0 0 0 round var(--r-lg))}
.js-scroll [data-reveal=image].is-in:not(.is-done){clip-path:inset(0 0 0 0 round var(--r-lg))}
.js-scroll [data-reveal=image]:not(.is-in) img{transform:scale(1.15)}
.js-scroll [data-reveal=image].is-in:not(.is-done) img{transition:transform 1.4s var(--ease) var(--reveal-delay)}

/* Grands blocs sombres : léger zoom arrière */
.js-scroll [data-reveal=scale]:not(.is-in){opacity:0;transform:scale(.95)}
.js-scroll [data-reveal=scale].is-in:not(.is-done){transition:opacity .8s var(--ease),transform 1.2s var(--ease)}

/* Filet de chapitre devant les sur-titres */
.section-heading .eyebrow:before,.intro>.eyebrow:before,.material-copy>.eyebrow:before,.showroom .eyebrow:before,.devis-intro>.eyebrow:before{content:'';display:inline-block;width:40px;height:1px;margin-right:14px;vertical-align:middle;background:currentColor;transform-origin:left}
.js-scroll .eyebrow[data-reveal]:not(.is-in):before{transform:scaleX(0)}
.js-scroll .eyebrow[data-reveal].is-in:not(.is-done):before{transition:transform .9s var(--ease) calc(var(--reveal-delay) + 200ms)}

/* Défilement lié (navigateurs compatibles) : parallaxe douce des photos, sortie du hero */
@supports (animation-timeline:view()){
  @media(prefers-reduced-motion:no-preference){
    .card-image>img,.material-photo>img,.editorial>img{scale:1.12;animation:adm-drift linear both;animation-timeline:view();animation-range:cover}
    .hero-copy{animation:adm-hero-out linear both;animation-timeline:view();animation-range:exit 5% exit 95%}
  }
}
@keyframes adm-drift{from{translate:0 -5%}to{translate:0 5%}}
@keyframes adm-hero-out{to{opacity:0;translate:0 -80px;scale:.97}}

/* Rail de chapitres */
.chapters{position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:90;padding:8px 6px;border-radius:var(--r-pill);background:var(--glass);-webkit-backdrop-filter:var(--blur-soft);backdrop-filter:var(--blur-soft);border:1px solid var(--glass-edge);box-shadow:var(--shadow-1)}
.chapters ol{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.chapters a{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;font:600 11px var(--font-body);font-variant-numeric:tabular-nums;color:var(--muted);transition:background var(--t-fast),color var(--t-fast)}
.chapters a:hover{background:rgba(74,37,16,.08);color:var(--choco)}
.chapters a[aria-current=location]{background:var(--choco);color:var(--cream)}
.chapter-label{position:absolute;right:calc(100% + 14px);top:50%;white-space:nowrap;padding:8px 16px;border-radius:var(--r-pill);background:var(--glass-strong);-webkit-backdrop-filter:var(--blur-soft);backdrop-filter:var(--blur-soft);border:1px solid var(--glass-edge);box-shadow:var(--shadow-1);color:var(--choco);font:600 12px var(--font-body);opacity:0;transform:translate(8px,-50%);pointer-events:none;transition:opacity var(--t) var(--ease),transform var(--t) var(--ease)}
.chapters a:hover .chapter-label,.chapters a:focus-visible .chapter-label,.chapters a.announce .chapter-label{opacity:1;transform:translate(0,-50%)}
@media(max-width:1359px){.chapters{display:none}}

/* Mode calme : tout visible, rien ne bouge */
@media(prefers-reduced-motion:reduce){
  .js-scroll [data-reveal]{opacity:1!important;transform:none!important;clip-path:none!important}
  .js-scroll [data-reveal] img,.eyebrow:before{transform:none!important}
}
.reduce-motion [data-reveal]{opacity:1!important;transform:none!important;clip-path:none!important}
.reduce-motion [data-reveal] img,.reduce-motion .eyebrow:before{transform:none!important}
.reduce-motion .card-image>img,.reduce-motion .material-photo>img,.reduce-motion .editorial>img{scale:none}
.reduce-motion .hero-copy{opacity:1;translate:none;scale:none}
