/* DEMINETEC — couche de mouvement (transitions de page, défilement, interactions) */
:root{ --m-out:cubic-bezier(.19,1,.22,1); --m-io:cubic-bezier(.77,0,.175,1); --m-night:#12140e; --m-terra:#cc6633; --m-olive:#b4ba2a; }

/* Les transitions natives du lot précédent sont remplacées par le rideau */
@view-transition{ navigation:none; }

/* ---------- Rideau d'arrivée (CSS seul : se retire même sans JavaScript) ---------- */
html.t-arrive::before{
  content:''; position:fixed; inset:0; z-index:2147483000; pointer-events:none;
  background:var(--m-night) url(../images/dm-reticle.svg) center/min(34vmin,220px) no-repeat;
  animation:t-cur-out .75s var(--m-io) .12s forwards;
}
html.t-arrive::after{
  content:''; position:fixed; left:0; right:0; top:0; height:3px; z-index:2147483001; pointer-events:none;
  background:linear-gradient(90deg,var(--m-olive),var(--m-terra)); transform-origin:0 50%;
  animation:t-bar-out .75s var(--m-io) .12s forwards;
}
@keyframes t-cur-out{ to{ clip-path:inset(0 0 100% 0); } }
@keyframes t-bar-out{ to{ transform:translateY(100vh) scaleX(1); opacity:0; } }

/* ---------- Rideau de départ ---------- */
.t-curtain{
  position:fixed; inset:0; z-index:2147483000; pointer-events:none; display:grid; place-items:center; align-content:center; gap:22px;
  background:var(--m-night); color:#f3f1e6; clip-path:inset(100% 0 0 0); transition:clip-path .5s var(--m-io);
}
.t-curtain::before{ content:''; position:absolute; inset:0; background:url(../images/dm-topo.svg) center/cover; opacity:.18; }
.t-curtain::after{ content:''; position:absolute; left:0; right:0; top:0; height:3px; background:linear-gradient(90deg,var(--m-olive),var(--m-terra)); }
.t-curtain__ret{ position:relative; width:min(34vmin,220px); aspect-ratio:1; background:url(../images/dm-reticle.svg) center/contain no-repeat; opacity:0; transform:scale(.8) rotate(-30deg); transition:opacity .35s ease .18s, transform .6s var(--m-out) .18s; }
.t-curtain__lbl{ position:relative; font:500 .78rem/1 "IBM Plex Mono",ui-monospace,monospace; letter-spacing:.22em; text-transform:uppercase; color:var(--m-olive); opacity:0; transform:translateY(10px); transition:opacity .3s ease .25s, transform .5s var(--m-out) .25s; }
.t-curtain__lbl:not(:empty)::before{ content:'→ '; color:var(--m-terra); }
[dir="rtl"] .t-curtain__lbl:not(:empty)::before{ content:'← '; }
html.t-leave .t-curtain{ clip-path:inset(0 0 0 0); }
html.t-leave .t-curtain__ret{ opacity:1; transform:none; }
html.t-leave .t-curtain__lbl{ opacity:1; transform:none; }

/* Titres d'en-tête masqués jusqu'au découpage (évite le double affichage) ; filet de sécurité à 2,5 s */
html.t-pre:not(.t-ready):not(.t-still) :is(#slider .heading-block h1, #slider .heading-block h2, #page-title h1, .swiper-slide .slider-caption h2){ opacity:0; animation:t-failsafe 0s linear 2.5s forwards; }
@keyframes t-failsafe{ to{ opacity:1; } }

/* ---------- Titres : montée mot à mot ---------- */
body.dm-terrain #wrapper .t-split span.t-w, body.dm-terrain #wrapper .t-split span.t-wi{ color:inherit !important; background:none !important; font:inherit !important; letter-spacing:inherit !important; text-transform:inherit !important; text-shadow:inherit; -webkit-text-fill-color:inherit; border:0 !important; box-shadow:none !important; display:inline-block !important; width:auto !important; max-width:none !important; position:relative !important; float:none !important; }
body.dm-terrain #wrapper .t-split span.t-w::before, body.dm-terrain #wrapper .t-split span.t-w::after, body.dm-terrain #wrapper .t-split span.t-wi::before, body.dm-terrain #wrapper .t-split span.t-wi::after{ content:none !important; }
body.dm-terrain #wrapper .t-split span.t-w{ overflow:hidden !important; vertical-align:bottom !important; padding:.08em .04em .14em !important; margin:-.08em -.04em -.14em !important; }
.t-split .t-w{ display:inline-block; overflow:hidden; vertical-align:bottom; padding:.08em .04em .14em; margin:-.08em -.04em -.14em; }
.t-split .t-wi{ display:inline-block; transform:translate3d(0,112%,0) rotate(5deg); transform-origin:0 100%; transition:transform 1.05s var(--m-out); transition-delay:calc(var(--w,0) * 55ms + 60ms); }
[dir="rtl"] .t-split .t-wi{ transform-origin:100% 100%; transform:translate3d(0,112%,0) rotate(-5deg); }
.t-split.t-on .t-wi{ transform:none; }
html.t-ready .t-hero .t-wi{ transform:none; transition-delay:calc(var(--w,0) * 70ms + 220ms); }
html.t-arrive.t-ready .t-hero .t-wi{ transition-delay:calc(var(--w,0) * 70ms + 650ms); }
/* Diaporama de l'accueil : les mots remontent à chaque changement de diapositive */
.swiper-slide:not(.swiper-slide-active) .t-hero .t-wi{ transform:translate3d(0,112%,0) rotate(5deg) !important; transition-duration:0s !important; transition-delay:0s !important; }
.swiper-slide .slider-caption > p{ transition:opacity .9s ease .5s, transform 1s var(--m-out) .5s; }
.swiper-slide:not(.swiper-slide-active) .slider-caption > p{ opacity:0; translate:0 18px; transition:none; }
.swiper-slide-active .slider-caption > p{ translate:0 0; transition:opacity .9s ease .55s, translate 1s var(--m-out) .55s; }
/* L'animation d'entrée générique des en-têtes est remplacée par la montée des mots */
body.dm-page #slider .heading-block > .t-split, body.dm-page #page-title .container > .t-split{ animation:none !important; }

/* ---------- Blocs de contenu ---------- */
.t-rise{ opacity:0; transform:translate3d(0,46px,0); transition:opacity 1s var(--m-out), transform 1.1s var(--m-out); transition-delay:calc(var(--k,0) * 90ms); }
.t-rise.t-on{ opacity:1; transform:none; }
/* Renforcement des apparitions existantes */
body.dm-terrain .t-up{ transform:translate3d(0,60px,0) scale(.97); transition-duration:1.1s; }
body.dm-terrain #content .dm-clip{ transform:scale(1.12); transition:clip-path 1.3s var(--m-io), transform 1.6s var(--m-out); }
body.dm-terrain #content .dm-clip.t-in{ transform:none; }

/* ---------- Héros : parallaxe et zoom lent ---------- */
.swiper-slide .swiper-slide-bg{ transform-origin:50% 30%; }
.dm-hud__ret{ transition:rotate .2s linear; }

/* ---------- En-tête escamotable ---------- */
body.dm-terrain #header-wrap{ transition:transform .55s var(--m-out), background-color .3s ease !important; }
html.t-hdr-hide body.dm-terrain #header.sticky-header #header-wrap{ transform:translate3d(0,calc(-100% - 28px),0); }

/* ---------- Bandeau défilant ---------- */
.t-marquee{ position:relative; overflow:hidden; background:var(--m-night); border-top:1px solid rgba(180,186,42,.16); padding:clamp(26px,4vw,48px) 0; user-select:none; }
.t-marquee::before{ content:''; position:absolute; inset:0; background:url(../images/dm-topo.svg) center/cover; opacity:.12; pointer-events:none; }
.t-marquee__track{ display:flex; width:max-content; will-change:transform; }
.t-marquee__row{ display:flex; align-items:center; flex-shrink:0; }
.t-marquee span{ font:700 clamp(2.2rem,1.4rem + 4vw,5.6rem)/1 "Chakra Petch","IBM Plex Sans",sans-serif; letter-spacing:-.01em; text-transform:uppercase; white-space:nowrap; color:transparent; -webkit-text-stroke:1.2px rgba(243,241,230,.55); padding:0 .35em; transition:color .4s ease, -webkit-text-stroke-color .4s ease; }
.t-marquee span:nth-of-type(3n+1){ color:#f3f1e6; -webkit-text-stroke-color:transparent; }
.t-marquee span:nth-of-type(3n+2){ -webkit-text-stroke-color:rgba(204,102,51,.85); }
.t-marquee i{ flex-shrink:0; width:clamp(26px,3vw,46px); aspect-ratio:1; background:url(../images/dm-reticle.svg) center/contain no-repeat; opacity:.9; }
[dir="rtl"] .t-marquee__track{ flex-direction:row-reverse; }

/* ---------- Pied de page : lettrage qui remonte ---------- */
body.dm-terrain #footer::after{ transform:translate(-50%, calc((1 - var(--t-fp,1)) * 70%)); -webkit-text-stroke-color:rgba(180,186,42,calc(.08 + var(--t-fp,1) * .14)); }
[dir="rtl"] body.dm-terrain #footer::after{ transform:translate(50%, calc((1 - var(--t-fp,1)) * 70%)); }

/* ---------- Curseur réticule (souris uniquement) ---------- */
.t-cursor{ position:fixed; left:0; top:0; z-index:2147482000; width:0; height:0; pointer-events:none; opacity:0; transition:opacity .25s ease; }
.t-cursor span{ position:absolute; left:-17px; top:-17px; width:34px; height:34px; border-radius:50%; border:1.5px solid rgba(204,102,51,.9); transition:transform .35s var(--m-out), background-color .25s ease, border-color .25s ease; }
.t-cursor span::before, .t-cursor span::after{ content:''; position:absolute; background:rgba(204,102,51,.9); }
.t-cursor span::before{ left:50%; top:-6px; bottom:-6px; width:1px; transform:translateX(-50%); clip-path:polygon(0 0,100% 0,100% 30%,0 30%,0 70%,100% 70%,100% 100%,0 100%); }
.t-cursor span::after{ top:50%; left:-6px; right:-6px; height:1px; transform:translateY(-50%); clip-path:polygon(0 0,30% 0,30% 100%,0 100%,0 0,70% 0,100% 0,100% 100%,70% 100%,70% 0); }
html.t-cur-on .t-cursor{ opacity:1; }
html.t-cur-link .t-cursor span{ transform:scale(1.7); background:rgba(204,102,51,.12); border-color:rgba(204,102,51,.6); }
html.t-cur-down .t-cursor span{ transform:scale(.8); }
html.t-leave .t-cursor{ opacity:0; }

/* ---------- Boutons magnétiques et cartes inclinables ---------- */
.t-mag{ transition:translate .5s var(--m-out), transform .16s ease-out, background-color .25s ease, box-shadow .25s ease !important; }
.t-tilt{ transition:transform .6s var(--m-out) !important; transform-style:preserve-3d; }
.t-tilt:hover{ transition:transform .12s linear !important; }

/* ---------- Accessibilité et robustesse ---------- */
@media (prefers-reduced-motion:reduce){
  html.t-arrive::before, html.t-arrive::after{ animation:none !important; display:none; }
  .t-curtain, .t-cursor, .t-marquee__track{ display:none !important; }
  .t-split .t-wi, .t-rise{ transform:none !important; opacity:1 !important; transition:none !important; }
}
html.t-still .t-rise, html.t-still .t-split .t-wi{ transform:none !important; opacity:1 !important; }
@media print{ .t-curtain, .t-cursor, .t-marquee{ display:none !important; } .t-rise, .t-split .t-wi{ opacity:1 !important; transform:none !important; } }

/* Écrans tactiles : allègement mémoire (iOS / WebKit) */
@media (hover:none), (pointer:coarse){
  body.dm-terrain .t-up{ filter:none !important; }
  .t-tilt{ transform-style:flat; }
  .t-marquee span{ -webkit-text-stroke-width:1px; }
}

/* Lot 8 — diaporama d'en-tête : plus d'interception des clics après défilement */
.slider-parallax .slider-inner.dm-si-off,.slider-parallax .slider-inner.dm-si-off *{pointer-events:none!important}
.slider-parallax .slider-inner.dm-si-gone{visibility:hidden}

/* Lot 8 — tuiles et boutons d'appel à l'action : survol, pression, zone cliquable complète */
body.dm-terrain .dm-cta .button,body.dm-terrain .dm-cta .dm-tel{position:relative;z-index:1;transition:transform .22s var(--t-ease,cubic-bezier(.23,1,.32,1)),box-shadow .22s var(--t-ease,ease-out),background-color .2s ease,color .2s ease,border-color .2s ease!important;will-change:auto}
body.dm-terrain .dm-cta .button:active,body.dm-terrain .dm-cta .dm-tel:active{transform:scale(.97)!important}
body.dm-terrain .dm-steps li{position:relative;transition:transform .25s var(--t-ease,cubic-bezier(.23,1,.32,1)),background-color .25s ease,box-shadow .25s ease}
body.dm-terrain .dm-steps li a{position:static}
body.dm-terrain .dm-steps li a::after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit}
body.dm-terrain .dm-steps li a{transition:color .2s ease}
body.dm-terrain .dm-steps li:active{transform:scale(.98)}
@media (hover:hover) and (pointer:fine){
 body.dm-terrain .dm-cta .button.dm-btn-primary:hover{transform:translateY(-2px);background:#d97a45!important;box-shadow:0 14px 26px -14px rgba(153,51,0,.7)!important}
 body.dm-terrain #content .dm-cta .button.dm-btn-secondary:hover,body.dm-terrain .dm-cta .button.dm-btn-secondary:hover{transform:translateY(-2px);background:var(--t-ink,#1d1d1b)!important;color:#f1f1ea!important;border-color:var(--t-ink,#1d1d1b)!important;box-shadow:0 14px 26px -16px rgba(18,20,14,.6)!important}
 body.dm-terrain .dm-cta .dm-tel:hover{transform:translateY(-1px);color:var(--t-terra,#cc6633)!important}
 body.dm-terrain .dm-steps li:hover{transform:translateY(-4px);background:#fff;box-shadow:0 18px 34px -22px rgba(57,61,0,.55),inset 0 0 0 1px rgba(139,144,0,.35);cursor:pointer}
 body.dm-terrain #content .dm-steps li:hover a,body.dm-terrain .dm-steps li:hover a{color:var(--t-terra-d,#993300)!important}
 body.dm-terrain .dm-steps li:hover::before{background:var(--t-terra,#cc6633)!important;color:#fff!important;border-color:var(--t-terra,#cc6633)!important}
}
body.dm-terrain .dm-steps li::before{transition:background-color .25s ease,color .25s ease,border-color .25s ease}
@media (prefers-reduced-motion:reduce){body.dm-terrain .dm-cta .button,body.dm-terrain .dm-steps li{transition:none!important}body.dm-terrain .dm-cta .button:hover,body.dm-terrain .dm-steps li:hover{transform:none!important}}

/* Lot 8 — contrastes : boutons pleins (texte encre sur terracotta clair) */
body.dm-terrain .button:not(.button-border):not(.button-light):not(.button-dark):not(.button-white):not(.dm-btn-secondary){background-color:var(--t-terra,#cc6633)!important;color:var(--t-ink,#1d1d1b)!important}
@media (hover:hover) and (pointer:fine){body.dm-terrain .button:not(.button-border):not(.button-light):not(.button-dark):not(.button-white):not(.dm-btn-secondary):hover{background-color:#d97a45!important}}
/* encart clair à liseré rouge (Recrutement) */
body .alert[style*="border-left:4px solid #FF0000"]{background-color:#fff8e7!important;color:#333!important}
/* Diagnostic : contenu éditorial placé dans le bandeau sombre « Un doute, une question ? » */
body.dm-page .section.footer-stick:has(.dm-longform){background-color:var(--t-paper,#f8f8f3)!important;background-image:none!important}
body.dm-page .section.footer-stick:has(.dm-longform) .heading-block h2{color:var(--t-ink,#1d1d1b)!important}
body.dm-page .section.footer-stick:has(.dm-longform) .heading-block span{color:var(--t-muted,#62655a)!important}
body.dm-terrain .col-padding[style*="background"] .before-heading{color:var(--t-olive-l,#b4ba2a)!important}

@media (min-width:768px){body.dm-terrain .dm-steps li{padding:14px 10px 16px;margin:-14px -10px -16px}}
@media (hover:hover) and (pointer:fine){body.dm-terrain .dm-cta .button.dm-btn-secondary:hover::after{filter:invert(1)!important;background-color:rgba(29,29,27,.25)!important}}

/* Lot 8 — titres et liens sur fonds sombres (bandeaux « Un doute, une question ? », équipe, vignettes) */
body.dm-page #wrapper #content .section.footer-stick:not(:has(.dm-longform)) .heading-block :is(h2,h3,h4),
body.dm-page #wrapper #content .section.footer-stick:not(:has(.dm-longform)) .heading-block :is(h2,h3,h4) *,
body.dm-page #wrapper .dm-teamcta :is(h2,h3,h4),body.dm-page #wrapper .dm-teamcta :is(h2,h3,h4) *{color:#f1f1ea!important}
body.dm-page .section.footer-stick:not(:has(.dm-longform)) .heading-block > span,body.dm-page .dm-teamcta p{color:rgba(241,241,234,.78)!important}
body.dm-terrain #wrapper #content .portfolio .portfolio-desc h3 a{color:#f1f1ea!important;text-decoration:none!important}
body.dm-terrain #wrapper #content .portfolio .portfolio-desc span a{color:#c9ccb0!important;text-decoration:none!important}
@media (hover:hover) and (pointer:fine){body.dm-terrain #wrapper #content .portfolio .portfolio-desc a:hover{color:var(--t-olive-l,#b4ba2a)!important}}
body.dm-terrain #content small.d-block,body.dm-terrain #content small.d-block *{color:var(--t-muted,#62655a)!important}
/* vignettes : toute l'image est cliquable, les pictos du calque de survol restent actifs */
.portfolio-item .bg-overlay,.portfolio-item .bg-overlay-content,.portfolio-item .bg-overlay-bg{pointer-events:none!important}
.portfolio-item .bg-overlay a{pointer-events:auto!important}
.portfolio-item .portfolio-image > a{cursor:pointer}
i.bgicon{pointer-events:none}
