/* LCTP V4 INDUSTRIAL PERFORMANCE - lctp-v4.0.0.css - compile depuis src/ (manifest fige) */
/* ============================================================
   LCTP V4 INDUSTRIAL PERFORMANCE — tokens
   Source unique des valeurs. Aucune valeur magique en aval.
   ============================================================ */
:root{
  /* couleurs */
  --noir:#100F0C;
  --charbon:#161511;
  --anthracite:#1E1C17;
  --ivoire:#F1EEE5;
  --blanc:#FAF8F2;
  --or:#C49A3C;
  --or-vif:#D9AE4B;
  --encre:#17150F;
  --gris:#655F52;          /* texte secondaire sur clair (5.5:1 sur ivoire) */
  --gris-inv:#B9B3A4;      /* texte secondaire sur sombre (7:1 sur noir) */
  --hl:rgba(23,21,15,.14); /* hairline sur clair */
  --hl-inv:rgba(250,248,242,.14);

  /* typo */
  --f-cond:"Barlow Condensed",system-ui,sans-serif;  /* GRANDS titres uniquement */
  --f-corps:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;

  /* echelles */
  --fs-h1:clamp(3rem,4.8vw,4.9rem);
  --fs-h1-geo:clamp(2.2rem,3.9vw,3.6rem);
  --fs-h2:clamp(2.2rem,3.8vw,3.5rem);
  --fs-h2-s:clamp(2rem,3.4vw,3rem);
  --fs-lbl:.72rem;
  --ls-lbl:.22em;

  /* layout */
  --wrap:1220px;
  --wrap-large:1560px;
  --gutter:clamp(1.25rem,3vw,3rem);
  --sec-y:clamp(4rem,9vw,8rem);
  --sec-y-s:clamp(2.6rem,5vw,4.5rem);
  --gap-grid:14px;
  --header-h:70px;
  --header-h-m:64px;

  /* divers */
  --tr:.22s ease;
  --z-header:50;
  --z-cookie:90;
  --ratio-card:3/2;
  --ratio-hero-img:4/3;
}

/* ============================================================
   LCTP V4 — reset minimal
   ============================================================ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--f-corps);background:var(--ivoire);color:var(--encre);line-height:1.6;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
button{font:inherit}
ul[class],ol[class]{list-style:none}
:focus-visible{outline:2px solid var(--or);outline-offset:2px}
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--or);color:var(--noir);padding:.7rem 1.2rem;font-weight:700}
.skip-link:focus{left:0}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ============================================================
   LCTP V4 — typographie
   Barlow Condensed 600 : locale, OFL, subset latin 14,8 Ko.
   Condense = grands titres UNIQUEMENT. Corps = system.
   ============================================================ */
@font-face{
  font-family:"Barlow Condensed";
  src:url("fonts/barlow-condensed-600.woff2") format("woff2");
  font-weight:600;font-style:normal;font-display:swap;
}
.h-big{font-family:var(--f-cond);font-weight:600;text-transform:uppercase;line-height:.97;letter-spacing:.008em}
.kick{font-size:var(--fs-lbl);font-weight:700;letter-spacing:var(--ls-lbl);text-transform:uppercase;color:var(--or)}
.lbl{font-size:var(--fs-lbl);font-weight:700;letter-spacing:.2em;text-transform:uppercase}

/* ============================================================
   LCTP V4 — layout
   ============================================================ */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.wrap--large{max-width:var(--wrap-large)}
.sec{padding:var(--sec-y) 0}
.sec--s{padding:var(--sec-y-s) 0}
.surf-n{background:var(--noir);color:var(--blanc)}
.surf-c{background:var(--charbon);color:var(--blanc)}
.surf-i{background:var(--ivoire);color:var(--encre)}
.surf-b{background:var(--blanc);color:var(--encre)}
.pic{width:46px;height:46px;flex:0 0 46px;border:1px solid var(--hl);display:flex;align-items:center;justify-content:center}
.pic svg{width:24px;height:24px;stroke:var(--or);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pic--inv{border-color:var(--hl-inv)}

/* ============================================================
   LCTP V4 — header
   Structure attendue :
   <header class="hd"><div class="hd__in">
     <a class="hd__logo"><img></a>
     <nav class="hd__nav" aria-label="Navigation principale">
       <div class="hd__item"><button class="hd__mega-btn" aria-expanded="false" aria-controls="mega-engins">Engins</button> ...mega...</div>
       <a>Levage</a> <a>Transport</a> <a>Contact</a>
     </nav>
     <a class="hd__cta">Demander un devis</a>
     <button class="hd__burger" aria-expanded="false" aria-controls="mnav" aria-label="Menu"><i></i><i></i><i></i></button>
   </div></header>
   ============================================================ */
.hd{background:var(--noir);height:var(--header-h);display:flex;align-items:center;position:sticky;top:0;z-index:var(--z-header);border-bottom:1px solid var(--hl-inv)}
.hd__in{width:100%;max-width:var(--wrap-large);margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:2rem}
.hd__logo img{height:40px;width:auto}
.hd__nav{display:flex;gap:2rem;align-items:center}
.hd__nav>a,.hd__mega-btn{font-size:.76rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(250,248,242,.82);text-decoration:none;background:none;border:none;cursor:pointer;padding:.35rem 0;border-bottom:2px solid transparent;transition:color var(--tr),border-color var(--tr)}
.hd__nav>a:hover,.hd__mega-btn:hover{color:var(--blanc)}
.hd__nav>a.on,.hd__item.open .hd__mega-btn{color:var(--or-vif);border-bottom-color:var(--or)}
.hd__cta{background:var(--or);color:var(--noir);font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding:.8rem 1.5rem;border:1px solid var(--or);transition:background var(--tr),color var(--tr)}
.hd__cta:hover{background:transparent;color:var(--or-vif)}
.hd__burger{display:none;width:42px;height:42px;background:none;border:1px solid var(--hl-inv);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.hd__burger i{display:block;width:18px;height:2px;background:var(--blanc)}
/* panneau mobile */
.mnav{display:none;position:fixed;inset:var(--header-h-m) 0 0 0;background:var(--noir);z-index:calc(var(--z-header) - 1);padding:1.5rem var(--gutter);overflow:auto}
.mnav.open{display:block}
.mnav a{display:block;color:var(--blanc);text-decoration:none;font-family:var(--f-cond);font-weight:600;font-size:1.6rem;text-transform:uppercase;padding:.8rem 0;border-bottom:1px solid var(--hl-inv)}
.mnav a:hover{color:var(--or-vif)}
.mnav .mnav__sub{font-family:var(--f-corps);font-size:.9rem;text-transform:none;font-weight:500;padding:.55rem 0 .55rem 1rem;color:var(--gris-inv)}

/* ============================================================
   LCTP V4 — mega menu (clic + clavier + Escape + clic exterieur, JS lctp-v4.js)
   <div class="hd__item">
     <button class="hd__mega-btn" aria-expanded="false" aria-controls="mega-engins">Engins</button>
     <div class="mega" id="mega-engins" hidden><div class="mega__in">
       <div class="mega__col"><h3>...</h3><a>...</a></div> x3
     </div></div>
   </div>
   ============================================================ */
.hd__item{position:static}
.mega{position:absolute;left:0;right:0;top:100%;background:var(--charbon);border-bottom:1px solid var(--hl-inv);box-shadow:none}
.mega[hidden]{display:none}
.mega__in{max-width:var(--wrap);margin:0 auto;padding:2rem var(--gutter);display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem}
.mega__col h3{color:var(--or-vif);font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin-bottom:.9rem}
.mega__col a{display:block;color:rgba(250,248,242,.85);font-size:.9rem;text-decoration:none;padding:.35rem 0}
.mega__col a:hover{color:var(--blanc)}
@media(max-width:960px){.mega{display:none!important}} /* mobile : navigation via panneau .mnav */

/* ============================================================
   LCTP V4 — boutons (ADN or/noir, hover inverse)
   ============================================================ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;background:var(--or);color:var(--noir);font-weight:700;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding:1.05rem 2.1rem;border:1px solid var(--or);cursor:pointer;transition:background var(--tr),color var(--tr),border-color var(--tr)}
.btn .fl{transition:transform var(--tr)}
.btn:hover{background:transparent;color:var(--blanc);border-color:var(--blanc)}
.btn:hover .fl{transform:translateX(5px)}
.btn--dark:hover{background:var(--noir);color:var(--blanc);border-color:var(--noir)}
.btn--ghost{background:transparent;color:var(--encre);border-color:var(--encre)}
.btn--ghost:hover{background:var(--noir);color:var(--blanc);border-color:var(--noir)}

/* ============================================================
   LCTP V4 — formulaires "dossier chantier"
   .fm = section noire 2 zones (defaut) ; .fm--clair = variante ivoire
   Champs metier par famille (tonnage, rotations...) : simples inputs
   dans .fm__row, l'endpoint et le service sont fixes par page.
   ============================================================ */
.fm{background:var(--noir);color:var(--blanc)}
.fm__in{max-width:var(--wrap);margin:0 auto;padding:var(--sec-y) var(--gutter);display:grid;grid-template-columns:2fr 3fr;gap:clamp(2.5rem,6vw,6rem)}
.fm__l .kick{display:block;margin-bottom:1rem}
.fm__l h2{font-size:clamp(2.3rem,4vw,3.7rem);color:var(--blanc);margin-bottom:1.2rem}
.fm__l p{color:var(--gris-inv);max-width:34ch}
.fm__chips{display:flex;flex-wrap:wrap;gap:.5rem .55rem;margin-bottom:1.5rem}
.fm__chips span{font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gris-inv);border:1px solid var(--hl-inv);padding:.42rem .7rem}
.fm label{display:block;color:var(--blanc);font-size:var(--fs-lbl);font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin:0 0 .5rem}
.fm textarea,.fm input{width:100%;font-family:var(--f-corps);font-size:1rem;color:var(--encre);background:var(--blanc);border:1px solid transparent;padding:1rem 1.1rem;outline:none;transition:border-color var(--tr)}
.fm textarea{min-height:150px;resize:vertical}
.fm textarea:focus,.fm input:focus{border-color:var(--or)}
.fm__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-grid);margin-top:var(--gap-grid)}
.fm .btn{margin-top:1.6rem;padding:1.15rem 2.5rem}
.fm__err{color:var(--or-vif);font-size:.85rem;margin-top:.4rem;display:none}
.fm .invalid{border-color:#C0392B}
.fm .invalid+.fm__err{display:block}
/* variante claire (configurateur) */
.fm--clair{background:var(--ivoire);color:var(--encre)}
.fm--clair .fm__l h2{color:var(--encre)}
.fm--clair .fm__l p{color:var(--gris)}
.fm--clair label{color:var(--encre)}
.fm--clair .fm__chips span{color:var(--gris);border-color:var(--hl)}
.fm--clair textarea,.fm--clair input{border:1px solid var(--hl)}

/* ============================================================
   LCTP V4 — footer (4 colonnes : marque / familles / entreprise / zone)
   Architecture cible apres restauration : ENGINS / TRANSPORT / SERVICES / ENTREPRISE.
   ============================================================ */
.ft{background:var(--noir);color:var(--blanc);border-top:1px solid var(--hl-inv)}
.ft__in{max-width:var(--wrap);margin:0 auto;padding:clamp(2.8rem,5vw,4rem) var(--gutter);display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:clamp(1.6rem,4vw,3.5rem)}
.ft__brand img{height:38px;width:auto;margin-bottom:1rem}
.ft__brand p{color:var(--gris-inv);font-size:.86rem;max-width:30ch}
.ft h4{color:var(--or-vif);font-size:var(--fs-lbl);font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin-bottom:1rem}
.ft ul a{display:block;color:rgba(250,248,242,.75);font-size:.88rem;text-decoration:none;padding:.28rem 0}
.ft ul a:hover{color:var(--blanc)}
.ft__zone p{color:rgba(250,248,242,.75);font-size:.88rem;margin-bottom:.9rem}
.ft__dep{display:flex;gap:.5rem;flex-wrap:wrap}
.ft__dep i{font-style:normal;display:inline-flex;align-items:center;justify-content:center;width:42px;height:34px;border:1px solid var(--hl-inv);color:var(--gris-inv);font-size:.8rem;font-weight:600}
.ft__base{border-top:1px solid var(--hl-inv)}
.ft__base p{max-width:var(--wrap);margin:0 auto;padding:1.1rem var(--gutter);color:rgba(250,248,242,.45);font-size:.78rem}

/* ============================================================
   LCTP V4 — hero SERVICE (levage, mise a disposition...)
   Photo full-bleed + panneau noir degrade a gauche. Vend le resultat chantier.
   ============================================================ */
.hero{position:relative;background:var(--noir);color:var(--blanc);overflow:hidden}
.hero__ph{position:absolute;inset:0}
.hero__ph img{width:100%;height:100%;object-fit:cover;object-position:60% 26%}
.hero__panel{position:relative;z-index:2;width:min(46%,640px);min-height:min(calc(100vh - var(--header-h)),820px);background:linear-gradient(100deg,var(--noir) 0%,rgba(16,15,12,.96) 78%,rgba(16,15,12,0) 100%);display:flex;flex-direction:column;justify-content:center;padding:4rem clamp(4rem,8vw,8rem) 4.5rem var(--gutter)}
.hero__kick{position:relative;padding-left:50px;margin-bottom:1.5rem}
.hero__kick::before{content:"";position:absolute;left:0;top:50%;width:36px;height:2px;background:var(--or);animation:v4trait .8s ease .15s backwards}
@keyframes v4trait{from{width:0}}
.hero__h1{font-size:var(--fs-h1);color:var(--blanc);margin-bottom:1.4rem}
.hero__lead{color:var(--gris-inv);max-width:38ch;margin-bottom:2.1rem}
.hero__cta{align-self:flex-start}

/* ============================================================
   LCTP V4 — hero MACHINE (pelle, aspiratrice, finisseur...)
   = hero service + panneau elargi + barre de donnees machine (specbar).
   Chiffres metier VERIFIES uniquement (tonnages reels, largeurs reelles).
   ============================================================ */
.heroM .hero__panel{width:min(50%,700px)}
.specbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.6rem}
.specbar span{font-size:var(--fs-lbl);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ivoire);border:1px solid var(--hl-inv);padding:.5rem .8rem}
.specbar span.gold{border-color:var(--or);color:var(--or-vif)}

/* ============================================================
   LCTP V4 — hero TRANSPORT (camion benne, semi, ampliroll...)
   Composition MIROIR : photo a gauche, panneau a droite.
   ============================================================ */
.heroT{position:relative;background:var(--noir);color:var(--blanc);overflow:hidden}
.heroT .hero__ph{position:absolute;inset:0}
.heroT .hero__ph img{object-position:36% 50%}
.heroT__panel{position:relative;z-index:2;margin-left:auto;width:min(46%,640px);min-height:min(calc(88vh - var(--header-h)),700px);background:linear-gradient(260deg,var(--noir) 0%,rgba(16,15,12,.96) 78%,rgba(16,15,12,0) 100%);display:flex;flex-direction:column;justify-content:center;padding:3.5rem var(--gutter) 3.5rem clamp(4rem,8vw,8rem)}

/* ============================================================
   LCTP V4 — hero HUB (engins, transport)
   Compact : titre + intro, la grille photographique prend le relais.
   ============================================================ */
.heroH{background:var(--noir);color:var(--blanc);border-bottom:1px solid var(--hl-inv)}
.heroH__in{max-width:var(--wrap);margin:0 auto;padding:var(--sec-y-s) var(--gutter);display:grid;grid-template-columns:3fr 2fr;gap:2rem;align-items:end}
.heroH h1{font-family:var(--f-cond);font-weight:600;font-size:clamp(2.4rem,4.4vw,4rem);line-height:.97;text-transform:uppercase;color:var(--blanc)}
.heroH p{color:var(--gris-inv);max-width:44ch}
.heroH .kick{display:block;margin-bottom:1rem}

/* ============================================================
   LCTP V4 — hero GEO (ville, departement, region)
   Clair, compact, H1 SOURCE INTEGRAL (code postal compris, regle ju).
   Badge geo = information REELLE uniquement (jamais de depot/distance non valides).
   ============================================================ */
.heroG{background:var(--ivoire);border-bottom:1px solid var(--hl)}
.heroG__in{max-width:var(--wrap);margin:0 auto;padding:clamp(2.6rem,5vw,4.2rem) var(--gutter);display:grid;grid-template-columns:3fr 2fr;gap:clamp(1.6rem,4vw,4rem);align-items:center}
.heroG h1{font-family:var(--f-cond);font-weight:600;font-size:var(--fs-h1-geo);line-height:.98;text-transform:uppercase}
.heroG .kick{display:block;margin-bottom:.9rem}
.heroG p{color:var(--gris);max-width:52ch;margin-top:1rem}
.heroG__ph{height:clamp(240px,30vw,360px);overflow:hidden}
.heroG__ph img{width:100%;height:100%;object-fit:cover}
.heroG__cta{margin-top:1.6rem;display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
.geo-badge{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--fs-lbl);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--encre);border:1px solid var(--encre);padding:.5rem .85rem}
.geo-badge i{font-style:normal;color:var(--or)}

/* ============================================================
   LCTP V4 — hero EDITORIAL (home, institutionnel)
   Home : grande scene (composition dediee au lot 3).
   Institutionnel : bandeau sobre titre + fil, pas de spectaculaire inutile.
   ============================================================ */
.heroE{background:var(--noir);color:var(--blanc)}
.heroE__in{max-width:var(--wrap);margin:0 auto;padding:clamp(2.2rem,4vw,3.4rem) var(--gutter)}
.heroE h1{font-family:var(--f-cond);font-weight:600;font-size:clamp(2rem,3.4vw,3rem);line-height:1;text-transform:uppercase}
.heroE .kick{display:block;margin-bottom:.8rem}
.heroE p{color:var(--gris-inv);max-width:60ch;margin-top:.8rem}

/* ============================================================
   LCTP V4 — bande de preuves (pictos + labels)
   ============================================================ */
/* preuves — bande noire sous le hero */
.pv{background:var(--noir);border-top:1px solid var(--hl-inv)}
.pv__grid{max-width:1560px;margin:0 auto;padding:1.6rem clamp(1.25rem,3vw,3rem);display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.pv__it{display:flex;align-items:center;gap:.95rem;padding-right:1rem}
.pv__it+.pv__it{border-left:1px solid var(--hl-inv);padding-left:1.6rem}
.pv__it b{display:block;color:var(--blanc);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;line-height:1.5}
.pv__it span{display:block;color:var(--gris-inv);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700}

/* ============================================================
   LCTP V4 — bloc usages CENTRE (kicker+h2+intro centres, grille 2x3 pictos, phrase forte + CTA)
   ============================================================ */
/* ============================================================
   BLOC 2 — CE QU'ON LEVE — ENTIEREMENT CENTRE
   ============================================================ */
.us{background:var(--ivoire);padding:clamp(4rem,9vw,8rem) 0 clamp(3.5rem,7vw,6.5rem)}
.us__head{text-align:center;max-width:780px;margin:0 auto clamp(2.6rem,5vw,4.2rem);padding:0 1.25rem}
.us__head .kick{display:block;margin-bottom:1rem}
.us__head h2{font-size:clamp(2.2rem,3.8vw,3.5rem);margin-bottom:1.15rem}
.us__head p{color:var(--gris);max-width:720px;margin:0 auto}
.us__grid{display:grid;grid-template-columns:1fr 1fr}
.us__it{display:flex;gap:1.35rem;padding:clamp(1.6rem,2.6vw,2.4rem) clamp(1.4rem,2.4vw,2.6rem);border-bottom:1px solid var(--hl)}
.us__it:nth-child(odd){border-right:1px solid var(--hl)}
.us__it:nth-last-child(-n+2){border-bottom:none}
.us__it h3{font-size:.86rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.45rem}
.us__it p{color:var(--gris);font-size:.94rem;max-width:44ch}
.us__more{text-align:center;max-width:640px;margin:clamp(2.4rem,4.5vw,3.6rem) auto 0;padding:0 1.25rem}
.us__more p{font-family:var(--f-cond);font-weight:600;text-transform:uppercase;font-size:clamp(1.25rem,2vw,1.6rem);line-height:1.25;margin-bottom:.7rem}
.us__more small{display:block;color:var(--gris);font-size:.95rem;margin-bottom:1.6rem}

/* ============================================================
   LCTP V4 — rupture photographique pleine largeur, overlay noir LOCALISE
   ============================================================ */
/* ============================================================
   RUPTURE PHOTOGRAPHIQUE — overlay localise
   ============================================================ */
.big{position:relative;background:var(--anthracite)}
.big__fig{height:clamp(440px,76vh,800px)}
.big__fig img{width:100%;height:100%;object-fit:cover}
.big__box{position:absolute;left:0;bottom:clamp(1.6rem,4.5vw,4rem);background:rgba(16,15,12,.88);padding:clamp(1.6rem,3vw,2.6rem) clamp(1.8rem,3.6vw,3.4rem) clamp(1.6rem,3vw,2.6rem) clamp(1.25rem,4vw,4.5rem);max-width:min(620px,88%)}
.big__box h2{font-size:clamp(2.2rem,4vw,3.7rem);color:var(--blanc)}
.big__box .lbl{display:block;margin:.9rem 0 .8rem;color:var(--or-vif);font-size:.74rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.big__box p{color:var(--gris-inv);font-size:.95rem;max-width:52ch}

/* ============================================================
   LCTP V4 — parc machines : vraies photos + legendes tonnage/usage
   ============================================================ */
/* ---------- PARC / SHOWCASE (tonnages, vraies photos) ---------- */
.parc{background:var(--blanc);border-top:1px solid var(--hl)}
.parc__in{max-width:1220px;margin:0 auto;padding:clamp(3.5rem,7vw,6.5rem) clamp(1.25rem,3vw,3rem)}
.parc__head{max-width:760px;margin-bottom:2.4rem}
.parc__head h2{font-family:var(--f-cond);font-weight:600;font-size:clamp(2rem,3.4vw,3.1rem);line-height:1;text-transform:uppercase;margin-bottom:.9rem}
.parc__head p{color:var(--gris)}
.parc__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.parc__it{position:relative;overflow:hidden;background:var(--noir)}
.parc__it img{width:100%;height:230px;object-fit:cover;transition:transform .45s ease}
.parc__it:hover img{transform:scale(1.02)}
.parc__cap{position:absolute;inset:auto 0 0 0;padding:2.2rem 1.1rem .9rem;background:linear-gradient(rgba(16,15,12,0),rgba(16,15,12,.78))}
.parc__cap b{display:block;color:var(--blanc);font-size:.82rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.parc__cap span{display:block;color:var(--gris-inv);font-size:.78rem;margin-top:.15rem}

/* ============================================================
   LCTP V4 — grille photographique hub + liens secondaires
   ============================================================ */
/* ---------- GRILLE SERVICES HUB (photo + nav) ---------- */
.svc{background:var(--ivoire)}
.svc__in{max-width:1560px;margin:0 auto;padding:clamp(2.6rem,5vw,4.5rem) clamp(1.25rem,3vw,3rem)}
.svc__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.svc__card{position:relative;overflow:hidden;display:block;text-decoration:none;background:var(--noir)}
.svc__card img{width:100%;height:clamp(220px,24vw,320px);object-fit:cover;transition:transform .45s ease;opacity:.92}
.svc__card:hover img{transform:scale(1.02)}
.svc__cap{position:absolute;inset:auto 0 0 0;padding:2.4rem 1.3rem 1.1rem;background:linear-gradient(rgba(16,15,12,0),rgba(16,15,12,.82))}
.svc__cap b{display:block;color:var(--blanc);font-family:var(--f-cond);font-weight:600;font-size:1.35rem;letter-spacing:.02em;text-transform:uppercase}
.svc__cap span{display:block;color:var(--gris-inv);font-size:.85rem;margin-top:.2rem}
.svc__cap::before{content:"";display:block;width:26px;height:2px;background:var(--or);margin-bottom:.6rem}
.svc__more{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 26px;margin-top:2rem}
.svc__more a{display:flex;justify-content:space-between;gap:1rem;text-decoration:none;color:var(--encre);font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.75rem 0;border-bottom:1px solid var(--hl)}
.svc__more a:hover{color:var(--or)}
.svc__more a i{font-style:normal;color:var(--or)}

/* ============================================================
   LCTP V4 — etude technique 01..05 + aside charbon points verifies
   ============================================================ */
/* ============================================================
   ETUDE TECHNIQUE — liste 01..05 + bloc charbon
   ============================================================ */
.et{background:var(--ivoire)}
.et__in{max-width:1220px;margin:0 auto;padding:clamp(4rem,9vw,8rem) clamp(1.25rem,3vw,3rem)}
.et__head{max-width:820px;margin-bottom:clamp(2.4rem,4.5vw,3.8rem)}
.et__head .kick{display:block;margin-bottom:1rem}
.et__head h2{font-size:clamp(2.2rem,3.8vw,3.5rem);margin-bottom:1.1rem}
.et__head p{color:var(--gris);max-width:62ch}
.et__grid{display:grid;grid-template-columns:3fr 2fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.et__list{list-style:none}
.et__list li{display:flex;gap:1.5rem;padding:1.45rem 0;border-bottom:1px solid var(--hl)}
.et__list li:first-child{border-top:1px solid var(--hl)}
.et__num{font-weight:700;font-size:.78rem;letter-spacing:.12em;color:var(--or);min-width:2rem;padding-top:.2rem}
.et__list h3{font-size:.9rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.35rem}
.et__list p{color:var(--gris);font-size:.94rem;max-width:56ch}
.et__check{background:var(--charbon);padding:clamp(1.8rem,3vw,2.6rem);position:sticky;top:96px}
.et__check .lbl{display:block;color:var(--or-vif);font-size:.74rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin-bottom:1.4rem}
.et__check ul{list-style:none}
.et__check li{position:relative;color:var(--gris-inv);font-size:.93rem;padding:.5rem 0 .5rem 1.7rem}
.et__check li::before{content:"";position:absolute;left:0;top:.95rem;width:9px;height:5px;border-left:2px solid var(--or);border-bottom:2px solid var(--or);transform:rotate(-45deg)}

/* ============================================================
   LCTP V4 — sections editoriales 60/40 et 2 colonnes pro
   ============================================================ */
/* ============================================================
   CONTENU PROFESSIONNEL — 2 colonnes claires
   ============================================================ */
.pro{background:var(--blanc);border-top:1px solid var(--hl)}
.pro__in{max-width:1220px;margin:0 auto;padding:clamp(3.5rem,7vw,6rem) clamp(1.25rem,3vw,3rem);display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem)}
.pro h3{font-size:.95rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:1rem;position:relative;padding-top:1.1rem}
.pro h3::before{content:"";position:absolute;top:0;left:0;width:34px;height:2px;background:var(--or)}
.pro p{color:var(--gris);font-size:.96rem;margin-bottom:.9rem;max-width:58ch}
/* ---------- SECTION EDITO 60/40 ---------- */
.ed{background:var(--ivoire)}
.ed__in{max-width:1220px;margin:0 auto;padding:clamp(3rem,6vw,5.5rem) clamp(1.25rem,3vw,3rem);display:grid;grid-template-columns:3fr 2fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.ed__in.inv{grid-template-columns:2fr 3fr}
.ed h2{font-family:var(--f-cond);font-weight:600;font-size:clamp(1.9rem,3.2vw,2.8rem);line-height:1;text-transform:uppercase;margin-bottom:1.1rem}
.ed p{color:var(--gris);margin-bottom:.9rem;max-width:60ch}
.ed ul{list-style:none;margin-top:.4rem}
.ed li{position:relative;color:var(--gris);font-size:.94rem;padding:.42rem 0 .42rem 1.5rem}
.ed li::before{content:"";position:absolute;left:0;top:.95rem;width:8px;height:2px;background:var(--or)}
.ed__ph{overflow:hidden}
.ed__ph img{width:100%;height:100%;min-height:280px;object-fit:cover}

/* ============================================================
   LCTP V4 — etapes numerotees
   ============================================================ */
/* ---------- ETAPES 3 (geo) ---------- */
.steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,3vw,2.6rem)}
.steps3 .pic{margin-bottom:.9rem}
.steps3 h3{font-size:.86rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;margin-bottom:.4rem}
.steps3 p{color:var(--gris);font-size:.92rem}
.steps3 .n{font-weight:700;font-size:.75rem;letter-spacing:.12em;color:var(--or);display:block;margin-bottom:.5rem}

/* ============================================================
   LCTP V4 — cas reels anonymises
   ============================================================ */
/* ---------- CAS REELS ---------- */
.cas{background:var(--charbon)}
.cas__in{max-width:1220px;margin:0 auto;padding:clamp(3.5rem,7vw,6rem) clamp(1.25rem,3vw,3rem)}
.cas__in>.kick{display:block;margin-bottom:.8rem}
.cas__in h2{font-family:var(--f-cond);font-weight:600;font-size:clamp(2rem,3.4vw,3rem);text-transform:uppercase;color:var(--blanc);margin-bottom:2rem}
.cas__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.6vw,2.4rem)}
.cas__it{border-left:2px solid var(--or);padding-left:1.2rem}
.cas__it b{display:block;color:var(--blanc);font-size:.84rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.5rem}
.cas__it p{color:var(--gris-inv);font-size:.9rem}
.cas__note{color:rgba(250,248,242,.45);font-size:.78rem;margin-top:1.6rem}

/* ============================================================
   LCTP V4 — maillage geo (chips villes/departements)
   ============================================================ */
/* ---------- MAILLAGE VILLES / DEPARTEMENTS ---------- */
.net{background:var(--blanc);border-top:1px solid var(--hl)}
.net__in{max-width:1220px;margin:0 auto;padding:clamp(2.6rem,5vw,4rem) clamp(1.25rem,3vw,3rem)}
.net__in h2{font-family:var(--f-cond);font-weight:600;font-size:clamp(1.6rem,2.6vw,2.2rem);text-transform:uppercase;margin-bottom:1.4rem}
.net__links{display:flex;flex-wrap:wrap;gap:.5rem}
.net__links a{text-decoration:none;color:var(--encre);font-size:.82rem;font-weight:600;border:1px solid var(--hl);padding:.5rem .85rem;transition:border-color .2s,color .2s}
.net__links a:hover{border-color:var(--or);color:var(--or)}

/* ============================================================
   LCTP V4 — voir aussi / continuer le chantier
   ============================================================ */
/* ============================================================
   VOIR AUSSI — bande claire compacte
   ============================================================ */
.va{background:var(--blanc);border-top:1px solid var(--hl)}
.va__in{max-width:1220px;margin:0 auto;padding:clamp(2.6rem,5vw,4rem) clamp(1.25rem,3vw,3rem)}
.va__in .kick{display:block;margin-bottom:1.4rem}
.va__grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}
.va__it{display:flex;gap:1rem;align-items:flex-start;padding-right:1rem;text-decoration:none}
.va__it+.va__it{border-left:1px solid var(--hl);padding-left:1.6rem}
.va__it b{display:block;font-size:.8rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;margin-bottom:.3rem}
.va__it span{color:var(--gris);font-size:.86rem}
.va__it:hover b{color:var(--or)}

/* ============================================================
   LCTP V4 — FAQ accordeons natifs details/summary
   ============================================================ */
/* ============================================================
   FAQ — noire, 2 colonnes
   ============================================================ */
.faq{background:var(--noir)}
.faq__in{max-width:1220px;margin:0 auto;padding:clamp(3.5rem,7vw,6.5rem) clamp(1.25rem,3vw,3rem)}
.faq__head{margin-bottom:2.2rem}
.faq__head .kick{display:block;margin-bottom:.8rem}
.faq__head h2{font-size:clamp(2rem,3.4vw,3rem);color:var(--blanc)}
.faq__cols{columns:2;column-gap:clamp(2rem,4vw,4rem)}
.faq details{break-inside:avoid;border-bottom:1px solid var(--hl-inv)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:1.05rem 0;color:var(--blanc);font-size:.86rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--or);font-size:1.25rem;line-height:1;flex:0 0 auto}
.faq details[open] summary::after{content:"–"}
.faq details p{color:var(--gris-inv);font-size:.93rem;padding:0 0 1.1rem;max-width:58ch}

/* ============================================================
   LCTP V4 — bandeau consentement COMPACT (PROPOSITION, a valider avant branchement)
   Contrat : ce composant est une COQUILLE VISUELLE. Le consentement reel
   (localStorage + activation GA/GTM) reste porte par le script LCTP-CONSENT
   existant : au branchement (lot dedie), ses fonctions accept/refuse sont
   cablees via data-consent (voir lctp-v4.js). Conserve : Refuser / Accepter /
   information / lien politique. Jamais supprime, jamais bloque le contenu.
   <div class="ckv4" role="region" aria-label="Consentement cookies">
     <p>Mesure d'audience anonyme. <a href="/confidentialite.html">En savoir plus</a></p>
     <button data-consent="refuse">Refuser</button>
     <button data-consent="accept" class="ok">Accepter</button>
   </div>
   ============================================================ */
.ckv4{position:fixed;left:50%;transform:translateX(-50%);bottom:12px;z-index:var(--z-cookie);background:var(--charbon);color:rgba(250,248,242,.92);display:flex;align-items:center;gap:1rem;padding:.6rem .7rem .6rem 1.1rem;max-width:min(660px,calc(100vw - 20px));border:1px solid var(--hl-inv)}
.ckv4 p{font-size:.78rem;white-space:nowrap}
.ckv4 a{color:var(--or-vif)}
.ckv4 button{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:.48rem .85rem;background:none;border:1px solid rgba(250,248,242,.35);color:var(--blanc)}
.ckv4 button.ok{background:var(--or);border-color:var(--or);color:var(--noir)}
@media(max-width:760px){
  .ckv4{flex-wrap:wrap;gap:.55rem;bottom:8px;padding:.55rem .65rem}
  .ckv4 p{white-space:normal;flex:1 1 100%;font-size:.72rem}
}

/* ============================================================
   LCTP V4 — responsive (mobile <=760px : compositions dediees)
   header 64px, photo avant texte, 1 colonne aeree, gutters 20px min
   ============================================================ */
/* ============================================================
   MOBILE — concu separement
   ============================================================ */
@media(max-width:760px){
  .hd{height:64px}
  .hd__logo img{height:33px}
  .hd__nav,.hd__cta{display:none}
  .hd__burger{display:flex}

  /* hero mobile : photo d'abord, panneau ensuite */
  .hero{display:flex;flex-direction:column}
  .hero__ph{position:relative;height:min(50vh,470px)}
  .hero__ph img{object-position:60% 30%}
  .hero__panel{width:100%;min-height:0;max-height:none;background:var(--noir);clip-path:none;padding:1.9rem 1.25rem 2.3rem}
  .hero__h1{font-size:2.5rem}
  .hero__lead{margin-bottom:1.7rem}
  .hero__cta{align-self:stretch}

  .pv__grid{grid-template-columns:1fr 1fr;gap:.9rem;padding:1.2rem 1.25rem}
  .pv__it{padding:0}
  .pv__it+.pv__it{border-left:none;padding-left:0}
  .pv__it .pic{width:38px;height:38px;flex-basis:38px}

  .us{padding:3.6rem 0 3rem}
  .us__grid{grid-template-columns:1fr}
  .us__it{border-right:none!important;padding:1.35rem 1.25rem}
  .us__it:nth-last-child(-n+2){border-bottom:1px solid var(--hl)}
  .us__it:last-child{border-bottom:none}

  .big__fig{height:min(56vh,520px)}
  .big__box{position:relative;bottom:auto;max-width:100%;padding:1.5rem 1.25rem 1.8rem}

  .et__in{padding:3.6rem 1.25rem}
  .et__grid{grid-template-columns:1fr;gap:2rem}
  .et__check{position:static}

  .fm__in{grid-template-columns:1fr;gap:2rem;padding:3.6rem 1.25rem}
  .fm__row{grid-template-columns:1fr}

  .pro__in{grid-template-columns:1fr;gap:2rem;padding:3rem 1.25rem}
  .faq__cols{columns:1}
  .va__grid{grid-template-columns:1fr;gap:1.2rem}
  .va__it+.va__it{border-left:none;padding-left:0;border-top:1px solid var(--hl);padding-top:1.2rem}

  .ft__in{grid-template-columns:1fr;gap:1.8rem}
}
@media(max-width:760px){
  .heroM .hero__panel,.heroT__panel{width:100%;min-height:0;background:var(--noir);padding:1.9rem 1.25rem 2.3rem}
  .heroT{display:flex;flex-direction:column}
  .heroT .hero__ph{position:relative;height:min(50vh,470px)}
  .heroH__in,.heroG__in{grid-template-columns:1fr;gap:1.4rem}
  .heroG__ph{order:-1;height:min(38vh,300px)}
  .parc__grid{grid-template-columns:1fr 1fr}
  .parc__it img{height:170px}
  .svc__grid{grid-template-columns:1fr}
  .svc__more{grid-template-columns:1fr}
  .steps3,.cas__grid{grid-template-columns:1fr}
  .ed__in,.ed__in.inv{grid-template-columns:1fr;gap:1.6rem}
}

/* == v4.0.1 : utilitaires lot 1 (levage) == */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
.kick--block{display:block;margin-bottom:1rem}
.big__t{color:var(--blanc);font-family:var(--f-cond);font-weight:600;font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.15;text-transform:uppercase;max-width:26ch}
.big__box .lbl{color:var(--or-vif);display:block;margin-bottom:.6rem}
.faq summary h3{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;margin:0;text-align:left;display:inline}
.steps4{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.2rem,3vw,2.4rem)}
.steps4 .num{font-weight:700;font-size:.78rem;letter-spacing:.12em;color:var(--or);display:block;margin-bottom:.5rem}
.steps4 h3{color:var(--blanc);font-size:.9rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.35rem}
.steps4 p{color:var(--gris-inv);font-size:.9rem}
.va h2{font-family:var(--f-cond);font-weight:600;font-size:1.5rem;text-transform:uppercase;margin:.3rem 0 .4rem}
.va__in>p{color:var(--gris);font-size:.92rem;max-width:56ch;margin-bottom:1.2rem}
.pro .kick{display:block;margin-bottom:.4rem}
@media(max-width:760px){.steps4{grid-template-columns:1fr 1fr;gap:1.2rem}}
.mega__col .mega__t{display:block;color:var(--or-vif);font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin-bottom:.9rem}

/* == v4.1.0 : continue-block (zone de rebond fin de page, extensible 4->6) == */
.go{background:var(--ivoire);border-top:1px solid var(--hl)}
.go__in{max-width:var(--wrap);margin:0 auto;padding:clamp(3rem,6vw,5rem) var(--gutter)}
.go__h2{font-size:clamp(1.7rem,2.8vw,2.4rem);margin-bottom:.8rem}
.go__intro{color:var(--gris);max-width:64ch;margin-bottom:2rem}
.go__main{display:grid;grid-template-columns:3fr 2fr;align-items:stretch;text-decoration:none;background:var(--noir);color:var(--blanc);margin-bottom:var(--gap-grid)}
.go__main-txt{padding:clamp(1.6rem,3vw,2.6rem);display:flex;flex-direction:column;gap:.6rem;justify-content:center}
.go__main b{font-family:var(--f-cond);font-weight:600;font-size:clamp(1.7rem,3vw,2.6rem);text-transform:uppercase;line-height:1}
.go__main-txt>span{color:var(--gris-inv);max-width:44ch}
.go__main img{width:100%;height:100%;min-height:210px;object-fit:cover}
.go__arr{font-style:normal;color:var(--or-vif);font-size:1.4rem;transition:transform var(--tr)}
.go__main:hover .go__arr,.go__sec:hover .go__arr{transform:translateX(6px)}
.go__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-grid)}
.go__sec{display:flex;flex-direction:column;gap:.5rem;text-decoration:none;color:var(--encre);border:1px solid var(--hl);padding:clamp(1.3rem,2.4vw,1.9rem)}
.go__sec b{font-family:var(--f-cond);font-weight:600;font-size:1.35rem;text-transform:uppercase}
.go__sec span{color:var(--gris);font-size:.93rem}
.go__sec:hover{border-color:var(--encre)}
.go__band{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;border-top:1px solid var(--hl);margin-top:clamp(1.6rem,3vw,2.4rem);padding-top:clamp(1.4rem,2.6vw,2rem)}
.go__band p{font-family:var(--f-cond);font-weight:600;font-size:clamp(1.3rem,2.2vw,1.8rem);text-transform:uppercase}
.go__more{display:flex;gap:1.4rem;flex-wrap:wrap;align-items:center;margin-top:1.6rem}
.go__more .lbl{color:var(--gris)}
.go__more a{color:var(--gris);font-size:.85rem;text-decoration:none;border-bottom:1px solid var(--hl)}
.go__more a:hover{color:var(--encre);border-color:var(--encre)}
@media(max-width:760px){
.go__main{grid-template-columns:1fr}
.go__main img{order:-1;min-height:160px;max-height:210px}
.go__row{grid-template-columns:1fr}
.go__band{flex-direction:column;align-items:stretch;text-align:center}
}
