/* LE FILS — accueil : couche d'animations des sections (présentation en diaporama, 3 cartes services, cartes-carrousels des
   derniers projets, « Pourquoi nous choisir », bandeau d'appel, avis, FAQ, actualités, zones desservies en radar).
   Moule V3 du parc (16/10) : rouge #BE0F10 sur fond clair, rouge éclairci #ff5a5a sur les
   bandes noires. Chargé APRÈS /assets/eco/css/site.css, uniquement sur l'accueil. Préfixe : la-.
   Tout ce qui est caché ici l'est par une classe posée par accueil.js : sans JS le site reste identique.
   Transform / opacity / filter uniquement. Le hero (intro, vidéo, titre) n'est PAS ici : intro.css / intro.js.
   Pas de reflet ni de ligne lumineuse qui balaie les photos (seule la brillance des boutons reste).
   CONTRASTES (WCAG, calculés le 16/10/2026) :
     texte d'accent #BE0F10 sur fond #fff 6,43:1 / fond doux #faf8f5 6,07:1 : aucune surcharge nécessaire (pas de .la-sec).
     bandes noires (#000, bandeau d'appel #0b0b0b) : --la-clair #ff5a5a = 6,86:1 sur #000 / 6,43:1 sur #0b0b0b ; --la-clair-2 #ff9a9a = 9,69:1 ;
     blanc 86 % = 15,17:1 ; blanc 88 % = 15,91:1. Pastille pleine (#0b0b0b sur #ff5a5a : pastilles d'icône, commune principale) = 6,43:1. Étoiles des avis #d97706 sur blanc 3,19:1 (élément graphique, 3:1 requis ;
     le sens est aussi dans aria-label « 5 étoiles sur 5 »). */

:root{--la-ease:cubic-bezier(.2,.8,.2,1);--la-spring:cubic-bezier(.34,1.56,.64,1);
  --la-clair:#ff5a5a;--la-clair-2:#ff9a9a;--la-acc:190,15,16;--la-vert:255,90,90;--la-nuit:#0b0b0b}


/* ---------- 1. Apparitions au scroll : plus amples que celles du thème ([data-reveal] + .is-hidden) ---------- */
[data-reveal]{transition:opacity .85s var(--la-ease),transform .95s var(--la-ease),filter .85s ease}
[data-reveal].is-hidden{filter:blur(8px)}
[data-reveal].is-hidden[data-reveal="1"]{transform:translateY(46px) scale(.985)}
[data-reveal].is-hidden[data-reveal="left"]{transform:translateX(-70px) scale(.97)}
[data-reveal].is-hidden[data-reveal="right"]{transform:translateX(70px) scale(.97)}
[data-reveal].is-hidden[data-reveal="zoom"]{transform:scale(.9)}

/* entrée pivotante des cartes (services, projets, pourquoi) */
.la-scene{perspective:1100px}
.la-in{opacity:0;transform:perspective(1000px) rotateY(-26deg) rotateX(9deg) translateY(50px) scale(.94)}
.la-in.la-vu{opacity:1;transform:none;transition:opacity .8s ease,transform 1s var(--la-ease)}

/* suite d'éléments qui arrivent l'un après l'autre (bandeau d'appel) */
.la-seq.la-pre>*{opacity:0;transform:translateX(-24px)}
.la-seq.la-pre.la-vu>*{opacity:1;transform:none;transition:opacity .7s ease calc(var(--i,0)*95ms),transform .85s var(--la-ease) calc(var(--i,0)*95ms)}
.la-seq--haut.la-pre>*{transform:translateY(22px)}

/* ---------- 2. Titres de section : filet qui se trace + trait avant le sur-titre ---------- */
.la-tt>span:first-child::before{content:'';display:inline-block;vertical-align:middle;width:30px;height:2px;margin:-3px 12px 0 0;border-radius:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .8s var(--la-ease) .25s}
.la-tt:not(.is-hidden)>span:first-child::before{transform:scaleX(1)}
.la-tt h2::after{content:'';display:block;height:3px;width:0;margin-top:16px;border-radius:3px;background:linear-gradient(90deg,var(--accent),var(--la-clair));transition:width .9s var(--la-ease) .45s}
.la-tt:not(.is-hidden) h2::after{width:72px}
.la-tt--centre h2::after{margin-inline:auto}
@media (max-width:480px){.la-tt>span:first-child::before{display:none}}

/* ---------- 3. Cartes en relief : légère inclinaison qui suit la souris (sans reflet) ---------- */
.la-tilt{position:relative;transform-style:preserve-3d;will-change:transform}
.la-tilt.la-on{transition:transform .08s linear,box-shadow .3s,background .3s,border-color .3s!important}

/* ---------- 4. Boutons (hors hero) : brillance + ressort ---------- */
section ~ section .hv04,section ~ section .hv20,section ~ section .hv10{position:relative;overflow:hidden;isolation:isolate}
section ~ section .hv04::after,section ~ section .hv20::after,section ~ section .hv10::after{content:'';position:absolute;top:0;bottom:0;left:0;width:55%;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:translateX(-140%) skewX(-20deg);transition:transform .75s var(--la-ease)}
section ~ section .hv04:hover::after,section ~ section .hv20:hover::after,section ~ section .hv10:hover::after{transform:translateX(260%) skewX(-20deg)}
html section ~ section .hv04,html section ~ section .hv20{transition:transform .5s var(--la-spring),background .2s,box-shadow .25s,color .2s,border-color .2s!important}
html section ~ section .hv04:hover,html section ~ section .hv20:hover{transform:translateY(-3px) scale(1.045)}
html section ~ section .hv04:active,html section ~ section .hv20:active{transform:scale(.97)}

/* ---------- 5. Présentation : cadre décalé + diaporama de vraies photos ---------- */
.la-about-img::before{content:'';position:absolute;inset:16px -14px -16px 14px;border:2px solid var(--accent);border-radius:30px;opacity:.35;z-index:0;transition:transform .9s var(--la-ease) .3s,opacity .9s ease .3s}
.la-about-img.is-hidden::before{opacity:0;transform:translate(-20px,-20px)}
.la-about-img>div{position:relative;z-index:1}
@media (max-width:640px){.la-about-img::before{inset:10px -8px -10px 8px}}

/* fondu enchaîné entre les photos (accueil.js : diapo()). Sans JS : seule la 1re photo (.is-on) est visible. */
[data-la-diapo]>img{opacity:0;transform:scale(1.1);transition:transform 6.5s cubic-bezier(.2,.6,.2,1),opacity 1.3s ease}
[data-la-diapo]>img.is-on{opacity:1;transform:scale(1)}
.la-diapo-dots{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:3;display:flex;align-items:center;padding:2px 6px;border-radius:30px;
  background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 14px -6px rgba(0,0,0,.5)}
.la-diapo-dots button{position:relative;flex:none;width:20px;height:22px;padding:0;border:0;background:none;cursor:pointer;transition:width .45s var(--la-ease)}
.la-diapo-dots button::before,.la-diapo-dots button::after{content:'';position:absolute;left:6px;right:6px;top:7px;bottom:7px;border-radius:8px}
.la-diapo-dots button::before{background:rgba(255,255,255,.55)}
.la-diapo-dots button.on{width:38px}
.la-diapo-dots button.on::before{background:rgba(255,255,255,.35)}
.la-diapo-dots button.on::after{background:var(--la-clair);transform-origin:left;animation:laDiapoFill var(--la-dd,4.6s) linear forwards}
.la-diapo.la-hold .la-diapo-dots button.on::after{animation-play-state:paused}
.la-diapo-dots button:focus-visible{outline:2px solid #fff;outline-offset:-2px;border-radius:8px}
@keyframes laDiapoFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ---------- 6. Cartes services : 3 cartes (V1), grille 3 colonnes dès 700 px, 1 colonne en dessous, survol vivant ----------
   Le thème passe cette grille en rail horizontal sous 768 px : on l'empile à la place (jamais de rail de cartes sur mobile). */
html .grille-services-accueil.grille-cartes[data-cols]{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:767px){
  html .grille-services-accueil.grille-cartes{display:grid!important;overflow:visible!important;padding:0!important;margin:22px 0!important;gap:14px!important;scroll-snap-type:none;grid-template-columns:repeat(3,minmax(0,1fr))!important}
  html .grille-services-accueil.grille-cartes>div{flex:none;min-width:0}
}
@media (max-width:699px){html .grille-services-accueil.grille-cartes{grid-template-columns:1fr!important;gap:18px!important}}
.grille-services-accueil .hv23{transition:transform .35s var(--la-ease),box-shadow .35s,border-color .35s!important}
.grille-services-accueil .hv23:hover{border-color:rgba(var(--la-acc),.55)!important;box-shadow:0 28px 50px -26px rgba(0,0,0,.5),0 0 0 1px rgba(var(--la-acc),.2)}
.grille-services-accueil .hv23 .la-go{align-self:flex-start;margin-top:8px;width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--sur-accent);display:flex;align-items:center;justify-content:center;transition:transform .45s var(--la-spring),box-shadow .3s}
.grille-services-accueil .hv23 .la-go svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.grille-services-accueil .hv23:hover .la-go{transform:translateX(7px);box-shadow:0 0 0 6px rgba(var(--la-acc),.16)}
.grille-services-accueil .hv23>div:first-child img{transition:transform .9s var(--la-ease)!important}
@media (hover:none){.grille-services-accueil .hv23:hover{transform:none;box-shadow:none}}

/* ---------- 7. Derniers projets : 6 chantiers, chacun sa carte-carrousel de photos seules ----------
   Pas de titre, de légende ni de compteur ; AUCUN défilement automatique. Glissement au doigt natif (scroll-snap),
   flèches et points ajoutés par accueil.js. Sur mobile les cartes s'empilent à la verticale. */
.la-realis-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:8px}
.la-realis{position:relative;border-radius:24px;overflow:hidden;background:var(--carte);border:1px solid var(--bord);
  box-shadow:0 18px 40px -30px rgba(0,0,0,.45);transition:box-shadow .4s,border-color .4s}
.la-realis:hover{border-color:rgba(var(--la-acc),.5);box-shadow:0 30px 54px -28px rgba(0,0,0,.55),0 0 0 1px rgba(var(--la-acc),.18)}
.la-car{position:relative;aspect-ratio:1/1}
.la-track{display:flex;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain;scroll-behavior:auto}
.la-track::-webkit-scrollbar{display:none}
.la-track img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;display:block;scroll-snap-align:start;scroll-snap-stop:always;cursor:zoom-in}
.la-track:focus-visible{outline:3px solid var(--accent);outline-offset:-3px;border-radius:24px}
.la-prev,.la-next{position:absolute;top:50%;z-index:2;width:40px;height:40px;margin-top:-20px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.58);color:#fff;
  display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  transition:background .25s,border-color .25s,transform .35s var(--la-spring),opacity .25s}
.la-prev{left:10px}.la-next{right:10px}
.la-prev svg,.la-next svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.la-prev:hover,.la-next:hover,.la-prev:focus-visible,.la-next:focus-visible{background:var(--accent);border-color:var(--accent);transform:scale(1.1)}
.la-prev:focus-visible,.la-next:focus-visible{outline:2px solid #fff;outline-offset:2px}
.la-dots{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:2;display:flex;align-items:center;padding:1px 5px;border-radius:30px;
  background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.la-dots button{position:relative;flex:none;width:18px;height:22px;padding:0;border:0;background:none;cursor:pointer}
.la-dots button::before{content:'';position:absolute;left:6px;right:6px;top:8px;bottom:8px;border-radius:8px;background:rgba(255,255,255,.55);transition:left .35s var(--la-ease),right .35s var(--la-ease),background .3s}
.la-dots button.on::before{left:1px;right:1px;background:#fff}
.la-dots button:focus-visible{outline:2px solid #fff;outline-offset:-2px;border-radius:8px}
@media (hover:none){.la-prev,.la-next{width:36px;height:36px;margin-top:-18px;opacity:.9}}
@media (max-width:999px){.la-realis-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}
@media (max-width:599px){.la-realis-grid{grid-template-columns:1fr;gap:20px}.la-car{aspect-ratio:4/3}}

/* ---------- 8. « Pourquoi nous choisir ? » : bande sombre vivante ---------- */
.la-pourquoi{position:relative;overflow:hidden;isolation:isolate;
  /* accent éclairci pour la bande sombre : #ff5a5a sur #000 = 6,86:1 (le rouge #BE0F10 d'origine n'y ferait que 3,27:1) */
  --accent-texte:var(--la-clair);--accent-texte-fonce:var(--la-clair-2)}
/* trame : fin quadrillage qui s'efface vers les bords */
.la-pourquoi::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse 70% 80% at 50% 45%,#000 15%,transparent 78%);mask-image:radial-gradient(ellipse 70% 80% at 50% 45%,#000 15%,transparent 78%)}
/* halos rouge et bleu marine (couleurs du logo) qui dérivent lentement */
.la-pourquoi::after{content:'';position:absolute;inset:-20%;z-index:-1;pointer-events:none;
  background:radial-gradient(520px circle at 12% 18%,rgba(var(--la-vert),.3),transparent 70%),radial-gradient(620px circle at 88% 85%,rgba(70,90,200,.28),transparent 70%);
  animation:laDrift 20s ease-in-out infinite alternate}
@keyframes laDrift{from{transform:translate3d(-2%,-1%,0) scale(1)}to{transform:translate3d(3%,2%,0) scale(1.08)}}
.la-pourquoi.la-pause::after{animation-play-state:paused}

.la-pourquoi .grille-cartes{gap:20px}
/* cartes en verre */
.la-pourquoi .hv09{position:relative;overflow:hidden;
  background:linear-gradient(160deg,rgba(255,255,255,.12),rgba(255,255,255,.04))!important;
  border:1px solid rgba(255,255,255,.2)!important;
  box-shadow:0 22px 44px -26px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.14);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:transform .5s var(--la-ease),background .3s,border-color .3s,box-shadow .3s!important}
.la-pourquoi .hv09:hover{background:linear-gradient(160deg,rgba(var(--la-vert),.26),rgba(255,255,255,.05))!important;border-color:rgba(255,90,90,.6)!important}
/* filet qui se charge en haut de chaque carte */
.la-pourquoi .hv09>i.la-fil{position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--la-clair),transparent);transform:scaleX(0);transform-origin:left;transition:transform 1.1s var(--la-ease) .5s}
.la-pourquoi .la-in.la-vu .hv09>i.la-fil{transform:scaleX(1)}
/* pastille d'icône : pleine, lisible (#0b0b0b sur #ff5a5a = 6,43:1), avec onde */
.la-pourquoi .hv09>span:first-of-type{position:relative;width:52px!important;height:52px!important;
  background:var(--la-clair)!important;color:var(--la-nuit)!important;
  box-shadow:0 0 0 6px rgba(255,90,90,.16),0 10px 24px -8px rgba(var(--la-vert),.55);
  transition:transform .5s var(--la-spring)}
.la-pourquoi .hv09>span:first-of-type::after{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid var(--la-clair);pointer-events:none;animation:laRing 2.8s ease-out infinite}
.la-pourquoi .la-in:nth-child(2) .hv09>span:first-of-type::after{animation-delay:.7s}
.la-pourquoi .la-in:nth-child(3) .hv09>span:first-of-type::after{animation-delay:1.4s}
.la-pourquoi .la-in:nth-child(4) .hv09>span:first-of-type::after{animation-delay:2.1s}
.la-pourquoi .la-in.la-vu .hv09>span:first-of-type{animation:laPop .8s var(--la-spring) .45s both}
.la-pourquoi .hv09:hover>span:first-of-type{transform:scale(1.12) rotate(-8deg)}
@keyframes laRing{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.7);opacity:0}}
@keyframes laPop{0%{transform:scale(.2);opacity:0}100%{transform:scale(1);opacity:1}}
.la-pourquoi .hv09 h3{letter-spacing:-.01em}
.la-pourquoi .hv09 p{color:rgba(255,255,255,.86)!important}
/* 2 x 2 en mobile : moins de scroll vertical */
@media (max-width:480px){
  .la-pourquoi .grille-cartes{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px}
  .la-pourquoi .hv09{padding:18px 12px!important;gap:10px!important;border-radius:20px!important}
  .la-pourquoi .hv09>span:first-of-type{width:44px!important;height:44px!important}
  .la-pourquoi .hv09 h3{font-size:15.5px!important;overflow-wrap:anywhere}
  .la-pourquoi .hv09 p{font-size:13.5px!important;line-height:1.5!important}
}

/* icônes SVG des cartes « Pourquoi nous choisir » (les icônes de la V1) */
.la-pourquoi .hv09>span:first-of-type svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:480px){.la-pourquoi .hv09>span:first-of-type svg{width:21px;height:21px}}

/* ---------- 8b. Listes à coches (présentation) : coche dessinée en CSS, aucun caractère ajouté ---------- */
.la-checks{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:11px}
.la-checks li{position:relative;padding-left:34px;font-size:15.5px;line-height:1.55;color:var(--titre)}
.la-checks li::before{content:'';position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:50%;background:color-mix(in srgb,var(--accent) 12%,transparent)}
.la-checks li::after{content:'';position:absolute;left:7px;top:6px;width:6px;height:10px;border:solid var(--accent);border-width:0 2.4px 2.4px 0;transform:rotate(42deg) scale(.9);transform-origin:70% 70%}
.la-checks.la-pre li{opacity:0;transform:translateX(-18px)}
.la-checks.la-pre.la-vu li{opacity:1;transform:none;transition:opacity .6s ease calc(var(--i,0)*90ms),transform .75s var(--la-ease) calc(var(--i,0)*90ms)}

/* ---------- 8c. Mobile : bandes un peu moins hautes ---------- */
@media (max-width:640px){
  .la-sec,.la-pourquoi,.la-zone{padding-top:72px!important;padding-bottom:72px!important;padding-left:20px!important;padding-right:20px!important}
  .la-pres-grid{padding:0!important;gap:36px!important}
}

/* ---------- 9. Bandeau d'appel : photo dans sa colonne (vraie photo en <img>), texte sur aplat uni ---------- */
.la-cta{position:relative;border-radius:32px;overflow:hidden;background:var(--la-nuit);min-height:340px;margin:26px 0;
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:stretch;box-shadow:0 30px 60px -36px rgba(0,0,0,.7)}
.la-cta-photo{position:relative;overflow:hidden;min-height:340px}
.la-cta-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:30% 45%;display:block;transform-origin:30% 50%;animation:laKen 22s ease-in-out infinite alternate}
/* fondu très court du bord droit de la photo vers l'aplat : le sujet, à gauche, reste entier */
.la-cta-photo::after{content:'';position:absolute;top:0;bottom:0;right:0;width:18%;pointer-events:none;background:linear-gradient(90deg,transparent,var(--la-nuit))}
.la-cta[data-reveal]>.la-cta-txt{position:relative;display:flex;flex-direction:column;justify-content:center;gap:16px;padding:48px 44px 48px 20px;color:#fff;background:transparent!important}
.la-cta-txt>span:first-child{font-size:13px;font-weight:700;color:var(--la-clair);text-transform:uppercase;letter-spacing:.12em}
@keyframes laKen{from{transform:scale(1)}to{transform:scale(1.07)}}
@media (max-width:767px){
  .la-cta{grid-template-columns:1fr;border-radius:26px}
  .la-cta-photo{min-height:0;aspect-ratio:16/10}
  .la-cta-photo::after{top:auto;left:0;width:auto;height:30%;background:linear-gradient(180deg,transparent,var(--la-nuit))}
  .la-cta[data-reveal]>.la-cta-txt{padding:12px 24px 34px}
}

/* ---------- 10. Zones desservies : bande sombre, radar à gauche, communes en pastilles (SANS lien : ce site n'a pas de pages ville) ----------
   Disposition de la « Zone d'intervention » du moule V3 du parc. La classe .la-zh (cachée)
   n'est posée que par accueil.js, juste avant d'observer : sans JS tout est visible. */
.la-zone{position:relative;overflow:hidden;isolation:isolate;--accent-texte:var(--la-clair);--accent-texte-fonce:var(--la-clair-2);box-shadow:inset 0 -1px 0 rgba(255,255,255,.1)}
.la-zone::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(640px circle at 16% 62%,rgba(var(--la-vert),.3),transparent 70%),radial-gradient(520px circle at 92% 8%,rgba(70,90,200,.22),transparent 70%)}
.la-zone-intro{font-size:16px;line-height:1.65;color:rgba(255,255,255,.88)}
.la-zone-grid{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:56px;align-items:center}
.la-radar{position:relative;width:100%;max-width:420px;aspect-ratio:1;margin:0 auto}
.la-radar svg{display:block;width:100%;height:100%;overflow:visible}
.la-radar circle{fill:none;stroke:var(--la-clair);stroke-width:1.6}
.la-radar circle.r{stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset 1.6s var(--la-ease)}
.la-radar circle.r1{transition-delay:.2s}
.la-radar circle.r2{transition-delay:.5s;opacity:.7}
.la-radar circle.r3{transition-delay:.8s;opacity:.45}
.la-radar circle.rp{stroke-width:1.4;transform-box:fill-box;transform-origin:center;opacity:0;animation:laRadar 4.8s ease-out 1.6s infinite}
@keyframes laRadar{0%{transform:scale(1);opacity:.55}100%{transform:scale(2.24);opacity:0}}
.la-zh .la-radar circle.r{stroke-dashoffset:1}
.la-ctr{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:#fff;font-weight:800;font-size:16px;text-align:center;
  transition:opacity .6s ease 1.1s,transform .8s var(--la-spring) 1.1s}
.la-zh .la-ctr{opacity:0;transform:translate(-50%,-50%) scale(.5)}
.la-ctr b{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--la-clair);color:var(--la-nuit);box-shadow:0 0 0 10px rgba(255,90,90,.22)}
.la-ctr svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.la-pills{display:flex;flex-wrap:wrap;gap:12px;list-style:none;margin:0;padding:0}
.la-pills>li{display:block}
.la-city{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:40px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);color:#fff;font-size:15px;font-weight:600;line-height:1.2;
  transition:background .3s,color .3s,transform .45s var(--la-spring),border-color .3s,opacity .5s ease,box-shadow .3s}
.la-city svg{display:block;width:15px;height:15px;flex:none;fill:none;stroke:var(--la-clair);stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;transition:stroke .3s}
.la-city.la-main{background:var(--la-clair);border-color:var(--la-clair);color:var(--la-nuit);font-weight:800;box-shadow:0 10px 26px -12px rgba(255,90,90,.85)}
.la-city.la-main svg{stroke:var(--la-nuit)}
.la-zh .la-city{opacity:0;transform:translateY(14px) scale(.9)}
.la-zone.la-zgo .la-city{transition-delay:0s,0s,calc(var(--i,0)*70ms + 1.2s),0s,calc(var(--i,0)*70ms + 1.2s),0s}
@media (max-width:900px){
  .la-zone-grid{grid-template-columns:1fr;gap:34px}
  .la-radar{max-width:300px}
}
@media (max-width:640px){
  .la-radar{max-width:230px}
  .la-ctr{font-size:14px}
  .la-ctr b{width:46px;height:46px;box-shadow:0 0 0 8px rgba(255,90,90,.22)}
  .la-ctr svg{width:22px;height:22px}
  .la-pills{gap:10px}
  .la-city{padding:10px 15px;font-size:14px}
}

/* ---------- 10b. Avis clients : les 6 avis de la V1, sans logo, 5 étoiles SVG, défilement automatique doux ----------
   Moule V3 du parc (bug du point actif corrigé : la jauge est rejouée à chaque page). La piste, les flèches et les points sont ceux du thème
   (site.js : 3 avis par page en bureau, 2 en tablette, 1 en mobile). */
.la-avis-sec{position:relative;overflow:hidden}
.la-avis-sec>div{position:relative}
[data-testi-track]{touch-action:pan-y}
.la-avis{position:relative;overflow:hidden;transition:transform .5s var(--la-ease),box-shadow .35s,border-color .3s!important}
/* texte court : centré entre les étoiles et le nom, la carte (même hauteur sur toute la rangée) ne sonne pas vide */
.la-avis>div[style*="flex:1"]{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.la-avis:hover{border-color:var(--accent)!important;box-shadow:0 30px 50px -24px rgba(17,17,17,.3)!important}
.la-avis::before{content:'';position:absolute;top:22px;right:22px;width:40px;height:40px;opacity:.16;pointer-events:none;transition:transform .6s var(--la-spring),opacity .3s;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23BE0F10' d='M9.6 4C5.4 5.2 3 8.6 3 13v7h8v-8H7.2c0-2.4 1.1-3.9 3.4-4.8L9.6 4zm10 0c-4.2 1.2-6.6 4.6-6.6 9v7h8v-8h-3.8c0-2.4 1.1-3.9 3.4-4.8L19.6 4z'/%3E%3C/svg%3E") center/contain no-repeat}
.la-avis:hover::before{opacity:.32;transform:rotate(-10deg) scale(1.15)}
/* 5 étoiles SVG sur chaque carte : elles s'allument de gauche à droite quand la carte arrive */
.la-stars{display:flex;gap:3px;color:#d97706;width:max-content}
.la-stars svg{display:block;width:21px;height:20px;fill:currentColor}
.la-in .la-stars{clip-path:inset(0 100% 0 0);transition:clip-path 1s linear .6s}
.la-in.la-vu .la-stars{clip-path:inset(0 0 0 0)}
/* défilement automatique : jauge dans le point actif (pause au survol / au focus / au doigt / hors écran) */
.testi-dot{position:relative;overflow:hidden}
.la-auto .testi-dot.active{background:color-mix(in srgb,var(--accent) 24%,var(--bord))}
.la-auto .testi-dot.active::after{content:'';position:absolute;inset:0;background:var(--accent);transform-origin:left;animation:laDotFill var(--la-d,7s) linear forwards}
.la-auto.la-hold .testi-dot.active::after{animation-play-state:paused}
@keyframes laDotFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (max-width:640px){.la-avis{padding:26px 22px!important}}

/* ---------- 11. FAQ : apparition en cascade, ouverture soignée ---------- */
.la-faq.la-pre{opacity:0;transform:translateY(24px)}
.la-faq.la-go{animation:laFaqIn .6s var(--la-ease) backwards;animation-delay:var(--la-d,0ms)}
@keyframes laFaqIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
[data-faq-item]{transition:border-color .35s,box-shadow .45s,background .35s,transform .35s var(--la-ease)!important}
[data-faq-item]:not(.open):hover{border-color:rgba(var(--la-acc),.5)!important;transform:translateX(4px)}
[data-faq-item] [data-faq-toggle]{transition:color .3s}
[data-faq-item].open [data-faq-toggle]{color:var(--accent-texte)!important}
[data-faq-item] [data-faq-a-wrap]{transition:grid-template-rows .5s var(--la-ease)}
/* la réponse se déplie en glissant et en s'éclaircissant, l'icône + tourne en × avec un léger ressort */
[data-faq-item] [data-faq-a-wrap]>div>div{opacity:0;transform:translateY(-10px);transition:opacity .25s ease,transform .3s var(--la-ease)}
[data-faq-item].open [data-faq-a-wrap]>div>div{opacity:1;transform:none;transition:opacity .5s ease .12s,transform .6s var(--la-ease) .12s}
[data-faq-item] [data-faq-icon]{transition:transform .5s var(--la-spring),background .3s,color .3s,box-shadow .4s!important}
[data-faq-item].open [data-faq-icon]{box-shadow:0 0 0 6px rgba(var(--la-acc),.14)}
[data-faq-item].open{box-shadow:0 18px 40px -24px rgba(var(--la-acc),.5)!important}

/* ---------- 12. Actualités : cartes au niveau des services (apparition, survol vivant) ---------- */
.la-actus .blog-card{position:relative;transition:transform .35s var(--la-ease),box-shadow .35s,border-color .35s!important}
.la-actus .blog-card:hover{border-color:rgba(var(--la-acc),.5)!important;box-shadow:0 28px 50px -26px rgba(0,0,0,.5),0 0 0 1px rgba(var(--la-acc),.2)}
.la-actus .blog-card>div:first-child{overflow:hidden}
.la-actus .blog-card>div:first-child img{transition:transform .9s var(--la-ease)}
.la-actus .blog-card:hover>div:first-child img{transform:scale(1.06)}
.la-actus .blog-card>div:last-child>span:first-child{transition:color .3s,letter-spacing .35s var(--la-ease)}
.la-actus .blog-card:hover>div:last-child>span:first-child{letter-spacing:.12em}
.la-actus .blog-card>div:last-child>span:last-child{display:inline-block;align-self:flex-start;transition:transform .4s var(--la-spring)}
.la-actus .blog-card:hover>div:last-child>span:last-child{transform:translateX(6px)}
.la-actus .blog-card::before{content:'';position:absolute;left:0;top:0;right:0;height:3px;z-index:2;background:linear-gradient(90deg,var(--accent),var(--la-clair),transparent);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--la-ease)}
.la-actus .blog-card:hover::before{transform:scaleX(1)}
.la-card.la-pre{opacity:0;transform:translateY(34px) scale(.97)}
.la-card.la-go{animation:laCardIn .85s var(--la-ease) backwards;animation-delay:var(--la-d,0ms)}
@keyframes laCardIn{from{opacity:0;transform:translateY(34px) scale(.97)}to{opacity:1;transform:none}}
@media (hover:none){.la-actus .blog-card:hover{transform:none;box-shadow:none}}

/* ---------- Mouvement réduit : tout est coupé ---------- */
@media (prefers-reduced-motion:reduce){
  [data-reveal]{transition:none!important;filter:none!important}
  .la-in,.la-seq.la-pre>*{opacity:1!important;transform:none!important;transition:none!important}
  section ~ section .hv04::after,section ~ section .hv20::after,section ~ section .hv10::after{display:none!important}
  html section ~ section .hv04:hover,html section ~ section .hv20:hover{transform:none}
  .la-pourquoi::after,.la-pourquoi .hv09>span:first-of-type::after,.la-cta-photo img{animation:none!important}
  .la-pourquoi .hv09>i.la-fil{transform:scaleX(1)!important;transition:none!important}
  .la-tt>span:first-child::before{transform:scaleX(1)!important;transition:none!important}
  .la-tt h2::after{width:72px!important;transition:none!important}
  [data-la-diapo]>img{transform:none!important;transition:none!important}
  .la-diapo-dots{display:none!important}
  .la-radar circle,.la-ctr,.la-city{transition:none!important}
  .la-radar circle.rp{animation:none!important;opacity:0}
  .la-zh .la-radar circle.r{stroke-dashoffset:0!important}
  .la-zh .la-ctr{opacity:1!important;transform:translate(-50%,-50%)!important}
  .la-zh .la-city{opacity:1!important;transform:none!important}
  .la-about-img::before{opacity:.35!important;transform:none!important;transition:none!important}
  .la-faq.la-pre,.la-card.la-pre{opacity:1!important;transform:none!important}
  .la-faq.la-go,.la-card.la-go{animation:none!important}
  [data-faq-item],[data-faq-item] [data-faq-a-wrap],[data-faq-item] [data-faq-a-wrap]>div>div,[data-faq-item] [data-faq-icon]{transition:none!important}
  .la-checks.la-pre li{opacity:1!important;transform:none!important;transition:none!important}
  .la-part,.grille-services-accueil .hv23 .la-go{transition:none!important}
  .la-avis,.la-avis::before{transition:none!important}
  .la-auto .testi-dot.active::after{animation:none!important}
  .la-in .la-stars{clip-path:none!important;transition:none!important}
  .la-realis,.la-prev,.la-next,.la-dots button::before,.la-actus .blog-card,.la-actus .blog-card>div:first-child img{transition:none!important}
}

/* ---------- Photos de l'équipe (envoyées par Le Fils le 23/10/2026, posées le 24/10) ---------- */
/* « Pourquoi nous choisir » : photo de chantier de nuit en fond, très assombrie, sous la trame et les halos */
.la-pourquoi-photo{position:absolute;inset:0;z-index:-2;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.78),rgba(0,0,0,.86)),url(/assets/img/equipe/equipe-06.webp) center 35%/cover no-repeat}
/* « Notre équipe » : mosaïque fixe (pas de défilement automatique, règle du 12/10), une grande photo + quatre ;
   apparition par le mécanisme du thème (site.js retire is-hidden), photos visibles sans JS */
.la-eq-grille{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(200px,22vw,290px);gap:16px}
.la-eq-grille figure{position:relative;margin:0;overflow:hidden;border-radius:24px;background:var(--carte);
  transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
.la-eq-grille.is-hidden{opacity:1!important}
.la-eq-grille.is-hidden figure{opacity:0;transform:translateY(24px) scale(.97)}
.la-eq-grille figure:nth-child(2){transition-delay:.1s}.la-eq-grille figure:nth-child(3){transition-delay:.2s}
.la-eq-grille figure:nth-child(4){transition-delay:.3s}.la-eq-grille figure:nth-child(5){transition-delay:.4s}
.la-eq-grille figure.la-eq-grand{grid-column:span 2;grid-row:span 2}
.la-eq-grille figure.la-eq-grand img{object-position:35% 45%}
.la-eq-grille img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;display:block;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.la-eq-grille figure:hover img{transform:scale(1.06)}
.la-eq-grille figure::after{content:"";position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(0deg,rgba(0,0,0,.35),transparent);pointer-events:none}
.la-eq-grille figcaption{position:absolute;z-index:1;left:14px;bottom:14px;background:var(--accent);color:#fff;font-size:12.5px;font-weight:700;letter-spacing:.04em;padding:7px 13px;border-radius:30px}
@media (max-width:767px){
  .la-eq-grille{grid-template-columns:repeat(2,1fr);grid-auto-rows:clamp(180px,52vw,260px);gap:12px}
  .la-eq-grille figure.la-eq-grand{grid-row:span 1}
  .la-eq-grille figure{border-radius:18px}
}
/* « Parlons de votre toiture » : photo portrait de l'équipe, visages gardés dans le cadre */
.la-cta-photo img.la-cta-equipe{object-position:62% 66%;transform-origin:62% 66%}
@media (prefers-reduced-motion:reduce){
  .la-eq-grille figure,.la-eq-grille img{transition:none}
  .la-eq-grille.is-hidden figure{opacity:1;transform:none}
}
