/* ============================================================
   SARL TRANS MDR AKHAM — V5 « CLAIR » (révision +effort)
   Light · minimaliste · moderne · éditorial.
   Hero plein écran · cards services · plaques ADR · partenaires designés.
   ============================================================ */

:root{
  --paper:#F1EDE4; --white:#FBF9F4;
  --ink:#16181C; --ink-soft:#3C4047; --muted:#878C94;
  --line:#E9E8E2; --line-strong:#DAD9D2;
  --accent:#F39200; --accent-2:#FF7A1A; --accent-ink:#B45309;
  --shadow:0 18px 44px -26px rgba(20,22,28,.28);
  --shadow-lg:0 32px 60px -28px rgba(20,22,28,.34);
  --fd:'Sora', system-ui, sans-serif;
  --fb:'Inter', system-ui, sans-serif;
}
*{box-sizing:border-box; -webkit-font-smoothing:antialiased;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--white); color:var(--ink); font-family:var(--fb); font-size:16px; line-height:1.65; overflow-x:hidden;}
body.overflow-hidden{overflow:hidden;}
h1,h2,h3,h4{font-family:var(--fd); font-weight:600; margin:0; line-height:1.06; letter-spacing:-.02em;}
a{color:inherit; text-decoration:none;} img{display:block; max-width:100%;}
::selection{background:var(--accent); color:#fff;}
::-webkit-scrollbar{width:9px;} ::-webkit-scrollbar-track{background:var(--paper);} ::-webkit-scrollbar-thumb{background:#cfcec6;}
.wrap{max-width:1240px; margin:0 auto; padding:0 32px;}
@media(max-width:640px){.wrap{padding:0 22px;}}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent); outline-offset:3px;}

.eyebrow{display:inline-flex; align-items:center; gap:12px; font-size:12px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--muted);}
.eyebrow .n{color:var(--accent-ink);}

.btn{display:inline-flex; align-items:center; gap:10px; font-family:var(--fb); font-weight:600; font-size:14.5px; padding:15px 26px; cursor:pointer; border:1px solid transparent; transition:background .3s, color .3s, transform .3s, border-color .3s, box-shadow .3s;}
.btn svg{transition:transform .3s;}
.btn:hover svg{transform:translateX(4px);}
.btn-primary{background:var(--ink); color:#fff;}
.btn-primary:hover{background:var(--accent); transform:translateY(-2px); box-shadow:0 14px 30px -14px rgba(243,146,0,.6);}
.btn-line{background:rgba(255,255,255,.7); color:var(--ink); border-color:var(--line-strong); backdrop-filter:blur(4px);}
.btn-line:hover{border-color:var(--ink); transform:translateY(-2px);}
.btn-light{background:#fff; color:var(--ink);}
.btn-light:hover{background:var(--accent); color:#fff; transform:translateY(-2px);}

.arrow-link{display:inline-flex; align-items:center; gap:9px; font-weight:600; color:var(--ink); position:relative; padding-bottom:3px;}
.arrow-link::after{content:''; position:absolute; left:0; bottom:0; height:1.5px; width:100%; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .35s cubic-bezier(.16,1,.3,1);}
.arrow-link:hover::after{transform:scaleX(1);}
.arrow-link svg{transition:transform .3s;} .arrow-link:hover svg{transform:translateX(4px);}

/* ============ NAVBAR ============ */
#navbar{position:fixed; top:0; left:0; right:0; z-index:60; padding:22px 0; transition:background .35s, box-shadow .35s, padding .35s;}
#navbar.scrolled{background:rgba(255,255,255,.86); backdrop-filter:saturate(180%) blur(14px); -webkit-backdrop-filter:saturate(180%) blur(14px); box-shadow:0 1px 0 var(--line), 0 12px 30px -22px rgba(0,0,0,.2); padding:14px 0;}
.nav-in{display:flex; align-items:center; justify-content:space-between;}
.brand{display:flex; align-items:center; gap:12px;}
.brand .lg{background:#fff; border:1px solid var(--line); padding:5px; display:grid; place-items:center;}
.brand .lg img{height:32px; width:auto;}
.brand .nm{font-family:var(--fd); font-weight:700; font-size:13.5px; letter-spacing:-.01em; color:var(--ink); white-space:nowrap;}
.brand .sb{font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); white-space:nowrap;}
.menu{display:flex; align-items:center; gap:21px; list-style:none; margin:0; padding:0;}
.menu a{font-size:13px; font-weight:500; color:var(--ink-soft); position:relative; padding:4px 0; transition:color .25s; white-space:nowrap;}
.menu a:hover,.menu a.active{color:var(--ink);}
.menu a::after{content:''; position:absolute; left:0; bottom:-4px; height:1.5px; width:100%; background:var(--accent); transform:scaleX(0); transform-origin:right; transition:transform .3s cubic-bezier(.16,1,.3,1);}
.menu a:hover::after,.menu a.active::after{transform:scaleX(1); transform-origin:left;}
.nav-cta{font-size:13px; font-weight:600; color:var(--ink); display:inline-flex; align-items:center; gap:8px; padding:9px 14px; border:1px solid var(--line-strong); transition:.3s; white-space:nowrap;}
.nav-cta:hover{background:var(--ink); color:#fff; border-color:var(--ink);}
#burger{display:none; width:28px; height:16px; position:relative; background:none; border:0; cursor:pointer;}
#burger span{position:absolute; left:0; height:2px; width:100%; background:var(--ink); transition:.35s;}
#burger span:nth-child(1){top:0;} #burger span:nth-child(2){top:7px;} #burger span:nth-child(3){top:14px;}
#burger.is-open span:nth-child(1){top:7px; transform:rotate(45deg);}
#burger.is-open span:nth-child(2){opacity:0;}
#burger.is-open span:nth-child(3){top:7px; transform:rotate(-45deg);}
/* justify-content:center + aucun overflow coupait la liste EN HAUT ET EN BAS
   dès qu'elle dépassait l'écran : « Accueil » et « Contact » devenaient
   inatteignables. On aligne en haut et on rend la zone défilable. */
#mobile-menu{position:fixed; inset:0; z-index:55; background:var(--white); transform:translateX(0); transition:transform .5s cubic-bezier(.16,1,.3,1); display:flex; flex-direction:column; justify-content:flex-start; gap:0; padding:92px 26px 40px; overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain;}
#mobile-menu.translate-x-full{transform:translateX(100%);}
#mobile-menu a{font-family:var(--fd); font-size:19px; font-weight:600; padding:13px 0; border-bottom:1px solid var(--line); display:flex; align-items:baseline; gap:12px;}
#mobile-menu a .n{font-size:11px; color:var(--accent-ink); font-family:var(--fb); flex:0 0 auto;}

/* sous-menus repliables : les rubriques Entreprise et Services n'étaient
   pas dépliables sur mobile, leurs pages filles restaient inaccessibles. */
.mgroup{border-bottom:1px solid var(--line);}
.mtrig{width:100%; background:none; border:0; cursor:pointer; font-family:var(--fd); font-size:19px; font-weight:600; color:var(--ink); padding:13px 0; display:flex; align-items:center; gap:12px; text-align:left;}
.mtrig .n{font-size:11px; color:var(--accent-ink); font-family:var(--fb); flex:0 0 auto;}
.mtrig .mcaret{margin-left:auto; transition:transform .3s; color:var(--muted); flex:0 0 auto;}
.mtrig[aria-expanded="true"] .mcaret{transform:rotate(180deg);}
.msub{max-height:0; overflow:hidden; transition:max-height .35s ease; display:flex; flex-direction:column;}
.mgroup.open .msub{max-height:460px;}
/* sélecteur avec l'ID : sinon #mobile-menu a (19px, display:flex) l'emporte,
   les libellés restent gros et débordent au lieu de passer à la ligne. */
#mobile-menu .msub a{display:block; font-size:15px; font-weight:500; line-height:1.4; color:var(--ink-soft); padding:11px 0 11px 20px; border-bottom:0; border-left:2px solid var(--line-strong); margin-left:4px;}
#mobile-menu .msub a:first-child{margin-top:2px;}
#mobile-menu .msub a:last-child{margin-bottom:12px;}
.menu{gap:19px;}
@media(max-width:1160px){ .menu,.nav-cta{display:none;} #burger{display:block; z-index:60;} }

/* ---- navbar au-dessus d'un hero photo -------------------------------
   Tant qu'on n'a pas scrollé, la navbar est transparente et son texte est
   sombre : illisible sur une photo. Sur ces pages (<body class="hero-dark">)
   on passe le texte en blanc et on pose un voile dégradé derrière, jusqu'à
   ce que .scrolled reprenne la main avec son fond clair. */
body.hero-dark #navbar::before{content:''; position:absolute; left:0; right:0; top:0; bottom:-38px; background:linear-gradient(180deg, rgba(12,13,17,.62), rgba(12,13,17,0)); pointer-events:none; transition:opacity .35s; z-index:0;}
body.hero-dark #navbar.scrolled::before{opacity:0;}
body.hero-dark .nav-in{position:relative; z-index:1;}
/* « > li > a » et non « a » : sinon les liens du menu déroulant, qui ont un
   fond blanc, passent en blanc et deviennent invisibles. */
body.hero-dark #navbar:not(.scrolled) .menu > li > a,
body.hero-dark #navbar:not(.scrolled) .brand .nm{color:#fff;}
body.hero-dark #navbar:not(.scrolled) .menu > li > a:hover,
body.hero-dark #navbar:not(.scrolled) .menu > li > a.active{color:#fff;}
body.hero-dark #navbar:not(.scrolled) .brand .sb{color:rgba(255,255,255,.72);}
body.hero-dark #navbar:not(.scrolled) #burger span{background:#fff;}
body.hero-dark #navbar:not(.scrolled) .nav-cta{color:#fff; border-color:rgba(255,255,255,.55);}
body.hero-dark #navbar:not(.scrolled) .nav-cta:hover{background:#fff; color:var(--ink); border-color:#fff;}
/* le logo est un PNG transparent : le carré blanc vient de .brand .lg et
   fait tache sur la photo. */
body.hero-dark #navbar:not(.scrolled) .brand .lg{background:transparent; border-color:rgba(255,255,255,.35);}

/* ============ HERO PLEIN ÉCRAN ============ */
.hero{position:relative; height:100vh; min-height:660px; overflow:hidden; background:var(--paper);}
.slide{position:absolute; inset:0; opacity:0; transition:opacity 1.2s ease-in-out; z-index:1;}
.slide.active{opacity:1; z-index:2;}
.slide .bg{position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.05);}
.slide.active .bg{animation:kb 9s ease-out forwards;}
@keyframes kb{from{transform:scale(1.05);}to{transform:scale(1.14);}}
.slide .scrim{position:absolute; inset:0;
  background:
    linear-gradient(96deg, rgba(247,247,244,.97) 0%, rgba(247,247,244,.9) 24%, rgba(247,247,244,.55) 48%, rgba(247,247,244,.12) 70%, rgba(247,247,244,0) 100%),
    linear-gradient(0deg, rgba(247,247,244,.5), transparent 26%);}
.slide .hero-content{position:absolute; inset:0; display:flex; align-items:center;}
.hero-copy{max-width:600px;}
.hero-h{font-size:clamp(40px,5.6vw,76px); font-weight:600; line-height:1.0; letter-spacing:-.03em; margin-top:24px; max-width:14ch;}
.hero-h .ac{color:var(--accent);}
.hero-sub{color:var(--ink-soft); font-size:clamp(16px,1.35vw,19px); margin-top:24px; max-width:46ch;}
.hero-actions{display:flex; flex-wrap:wrap; gap:14px; margin-top:36px;}
.hero-ctrl{position:absolute; z-index:5; left:0; right:0; bottom:42px;}
.hero-ctrl .wrap{display:flex; align-items:center; gap:20px;}
.hero-ctrl .ix{font-family:var(--fd); font-weight:600; font-size:14px; color:var(--ink);}
.hero-ctrl .ix b{color:var(--accent-ink);}
.dots{display:flex; gap:8px;}
.slider-dot{width:38px; height:3px; background:var(--line-strong); position:relative; overflow:hidden; border:0; padding:0; cursor:pointer;}
.slider-dot .dot-fill{position:absolute; inset:0; background:var(--accent); transform:scaleX(0); transform-origin:left;}
.slider-dot.active .dot-fill{animation:dot 6s linear forwards;}
@keyframes dot{to{transform:scaleX(1);}}
.hero-arrows{display:flex; gap:8px; margin-left:auto;}
.hero-arrows button{width:46px; height:46px; border:1px solid var(--line-strong); background:rgba(255,255,255,.7); cursor:pointer; display:grid; place-items:center; color:var(--ink); transition:.25s; backdrop-filter:blur(4px);}
.hero-arrows button:hover{background:var(--ink); color:#fff; border-color:var(--ink);}
@media(max-width:680px){ .slide .scrim{background:linear-gradient(0deg, rgba(247,247,244,.97) 8%, rgba(247,247,244,.7) 45%, rgba(247,247,244,.35) 100%);} .slide .hero-content{align-items:flex-end; padding-bottom:120px;} }

/* ============ BANDE CRÉDIBILITÉ ============ */
.trust{border-bottom:1px solid var(--line); background:var(--white);}
.trust .row{display:grid; grid-template-columns:repeat(4,1fr);}
@media(max-width:760px){.trust .row{grid-template-columns:repeat(2,1fr);}}
.trust .it{padding:34px 28px; border-left:1px solid var(--line);}
.trust .it:first-child{border-left:0;}
.trust .it .v{font-family:var(--fd); font-weight:600; font-size:clamp(26px,2.6vw,34px); letter-spacing:-.02em;}
.trust .it .v .u{color:var(--accent);}
.trust .it .k{font-size:13px; color:var(--muted); margin-top:6px;}

/* ============ SECTIONS ============ */
.sec{padding:120px 0;}
@media(max-width:640px){.sec{padding:78px 0;}}
.sec.paper{background:var(--paper);}
.sec-head{max-width:760px; margin-bottom:60px;}
.sec-head.between{max-width:none; display:flex; align-items:flex-end; justify-content:space-between; gap:40px; flex-wrap:wrap;}
.sec-title{font-size:clamp(30px,3.8vw,50px); font-weight:600; letter-spacing:-.025em; margin-top:20px; line-height:1.05;}
.sec-lead{color:var(--ink-soft); font-size:19px; margin-top:22px; max-width:56ch;}

/* À propos / carte */
.about{display:grid; grid-template-columns:1.05fr .95fr; gap:72px; align-items:center;}
@media(max-width:900px){.about{grid-template-columns:1fr; gap:48px;}}
.about p.big{font-family:var(--fd); font-weight:400; font-size:clamp(22px,2.3vw,30px); line-height:1.32; letter-spacing:-.01em;}
.about p.big .mut{color:var(--muted);}
.points{margin:34px 0 0; padding:0; list-style:none;}
.points li{display:flex; gap:16px; padding:18px 0; border-top:1px solid var(--line); align-items:flex-start;}
.points li:last-child{border-bottom:1px solid var(--line);}
.points .ic{color:var(--accent); flex-shrink:0; margin-top:3px;}
.points h4{font-size:16px; font-weight:600;}
.points p{margin:3px 0 0; color:var(--muted); font-size:14.5px;}
.map-art{position:relative; aspect-ratio:1/1; width:100%; max-width:520px; margin:0 auto;}
.map-art svg{width:100%; height:100%; overflow:visible;}
.map-shape{fill:var(--paper); stroke:var(--line-strong); stroke-width:14;}
.sec.paper .map-shape{fill:#fff;}
.map-route{stroke:var(--accent); stroke-width:2; opacity:.5; fill:none; stroke-dasharray:4 6;}
.map-node{fill:var(--ink);}
.map-node.key{fill:var(--accent);}
.map-pulse{fill:none; stroke:var(--accent); stroke-width:2; transform-box:fill-box; transform-origin:center; animation:mp 3s ease-out infinite;}
@keyframes mp{0%{transform:scale(.5); opacity:.7;}80%{transform:scale(2.4); opacity:0;}100%{opacity:0;}}
.map-label{font-family:var(--fb); font-size:17px; font-weight:600; fill:var(--ink);}
.map-label .c{fill:var(--accent-ink); font-weight:500;}

/* ============ SERVICES — CARDS CÔTE À CÔTE ============ */
.s-grid{display:flex; flex-wrap:wrap; gap:24px; justify-content:center;}
.s-card{flex:1 1 360px; max-width:430px; background:var(--white); border:1px solid var(--line); position:relative; overflow:hidden; transition:transform .4s cubic-bezier(.16,1,.3,1), box-shadow .4s, border-color .4s; display:flex; flex-direction:column;}
.s-card::before{content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--accent),var(--accent-2)); transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.16,1,.3,1); z-index:3;}
.s-card:hover{transform:translateY(-10px); box-shadow:0 32px 60px -26px rgba(243,146,0,.55); border-color:var(--accent);}
.s-card:hover::before{transform:scaleX(1);}
/* tag masqué : les affiches portent déjà leur propre badge/titre */
.s-card .top .stag{display:none;}
.s-card .top{aspect-ratio:1/1; position:relative; overflow:hidden; background:#0e1014; border-bottom:1px solid var(--line);}
.s-card .top img{width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.16,1,.3,1);}
.s-card:hover .top img{transform:scale(1.05);}
.s-card .top .no{position:absolute; top:10px; right:14px; z-index:2; font-family:var(--fd); font-weight:700; font-size:28px; line-height:1; color:rgba(255,255,255,.95); text-shadow:0 2px 12px rgba(0,0,0,.6);}
.s-card .bd{padding:22px 22px 26px; flex:1; display:flex; flex-direction:column;}
.s-card h3{font-size:17px; font-weight:600; letter-spacing:-.01em;}
.s-card p{color:var(--muted); font-size:13.5px; margin:9px 0 0; line-height:1.55;}
.s-card .more{margin-top:16px; font-size:12.5px; font-weight:600; color:var(--accent-ink); letter-spacing:.04em; text-transform:uppercase; display:inline-flex; align-items:center; gap:6px; opacity:0; transform:translateY(6px); transition:.4s;}
.s-card:hover .more{opacity:1; transform:none;}

/* ============ CLASSES ADR (enrichi) ============ */
.adr-wrap{display:grid; grid-template-columns:minmax(300px,.85fr) 1.3fr; gap:26px; align-items:stretch;}
@media(max-width:920px){.adr-wrap{grid-template-columns:1fr;}}
.c7card{position:relative; overflow:hidden; background:linear-gradient(160deg,#1b1d22,#0e0f13); color:#fff; padding:40px; display:flex; flex-direction:column; justify-content:space-between;}
.c7card .glow{position:absolute; width:340px; height:340px; right:-120px; top:-120px; background:radial-gradient(circle,rgba(243,146,0,.45),transparent 62%); filter:blur(10px);}
.c7card .badge{position:relative; display:inline-flex; align-items:center; gap:8px; align-self:flex-start; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:#0e0f13; background:var(--accent); padding:6px 12px;}
.c7-dia{position:relative; width:120px; height:120px; margin:30px 0; transform:rotate(45deg); border:3px solid #111; background:linear-gradient(180deg,#FFD500 0 50%, #fff 50% 100%); display:grid; place-items:center; box-shadow:0 20px 50px -16px rgba(243,146,0,.6);}
.c7-dia .in{transform:rotate(-45deg); text-align:center;}
.c7-dia .in .num{font-family:var(--fd); font-weight:700; font-size:30px; color:#111; line-height:1;}
.c7card h3{position:relative; font-size:26px; color:#fff;}
.c7card p{position:relative; color:rgba(255,255,255,.62); font-size:14.5px; margin-top:10px; max-width:34ch;}
.adr-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
@media(max-width:560px){.adr-grid{grid-template-columns:repeat(2,1fr);}}
.adr{background:var(--white); border:1px solid var(--line); padding:22px 14px 16px; text-align:center; transition:transform .35s, box-shadow .35s, border-color .35s;}
.adr:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--line-strong);}
.adr .dia{width:46px; height:46px; margin:0 auto 14px; transform:rotate(45deg); border:2.5px solid; display:grid; place-items:center;}
.adr .dia span{transform:rotate(-45deg); font-family:var(--fd); font-weight:700; font-size:16px;}
.adr .lb{font-size:12px; color:var(--muted); line-height:1.35;}
.adr .cl{font-family:var(--fb); font-size:10.5px; color:var(--line-strong); letter-spacing:.1em; text-transform:uppercase; margin-top:4px;}

/* ============ PARTENAIRES (enrichi) ============ */
.p-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
@media(max-width:880px){.p-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:460px){.p-grid{grid-template-columns:1fr;}}
.p-card{background:var(--white); border:1px solid var(--line); padding:30px 26px; transition:transform .4s cubic-bezier(.16,1,.3,1), box-shadow .4s, border-color .4s; position:relative;}
.p-card:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--line-strong);}
.p-card .ic{width:50px; height:50px; display:grid; place-items:center; background:#FFF3E2; color:var(--accent-ink); margin-bottom:20px; transition:.4s;}
.p-card:hover .ic{background:var(--accent); color:#fff;}
.p-card h3{font-size:18px; font-weight:600;}
.p-card p{color:var(--muted); font-size:13.5px; margin-top:6px;}
.trustband{margin-top:24px; background:var(--ink); color:#fff; padding:40px 44px; display:grid; grid-template-columns:1fr auto; gap:30px; align-items:center; position:relative; overflow:hidden;}
@media(max-width:760px){.trustband{grid-template-columns:1fr; text-align:left;}}
.trustband .glow{position:absolute; width:300px; height:300px; left:-100px; bottom:-160px; background:radial-gradient(circle,rgba(243,146,0,.3),transparent 60%); filter:blur(10px);}
.trustband .eyebrow{color:rgba(255,255,255,.55);} .trustband .eyebrow .n{color:var(--accent);}
.trustband h3{position:relative; font-size:clamp(22px,2.4vw,30px); color:#fff; margin-top:10px; max-width:20ch;}
.lockup{position:relative; display:flex; align-items:center; gap:14px; justify-self:end;}
.lockup .sl{font-family:var(--fd); font-weight:700; font-size:clamp(26px,3vw,38px); letter-spacing:-.01em; color:#fff;}
.lockup .ico{width:42px; height:42px; color:var(--accent);}
.chips{display:flex; flex-wrap:wrap; gap:12px; margin-top:30px;}
.chip{display:inline-flex; align-items:center; gap:9px; border:1px solid var(--line-strong); background:var(--white); padding:11px 18px; font-size:13.5px; font-weight:500; color:var(--ink-soft);}
.chip .d{width:8px; height:8px; border-radius:50%; background:var(--accent);}

/* ============ CTA (réparée) ============ */
.cta-band{background:var(--ink); color:#fff; position:relative; overflow:hidden; border-top:3px solid var(--accent);}
.cta-band .glow{position:absolute; width:520px; height:520px; right:-160px; top:-220px; background:radial-gradient(circle,rgba(243,146,0,.22),transparent 62%); filter:blur(20px);}
.cta-band .cta-row{position:relative; display:flex; align-items:center; justify-content:space-between; gap:48px; padding:84px 0; flex-wrap:wrap;}
.cta-left{max-width:60ch;}
.cta-band h2{font-size:clamp(28px,3.8vw,50px); font-weight:600; letter-spacing:-.025em; color:#fff; max-width:18ch;}
.cta-band p{color:rgba(255,255,255,.6); margin-top:14px; font-size:16px;}
.cta-band .btn{align-self:center; flex-shrink:0;}

/* ============ CONTACT ============ */
.contact{display:grid; grid-template-columns:.85fr 1.15fr; gap:72px;}
@media(max-width:900px){.contact{grid-template-columns:1fr; gap:48px;}}
.cinfo .row{display:flex; gap:16px; padding:20px 0; border-top:1px solid var(--line);}
.cinfo .row:first-of-type{border-top:0;}
.cinfo .ic{color:var(--accent); flex-shrink:0; margin-top:2px;}
.cinfo h4{font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); font-weight:600;}
.cinfo p{margin:5px 0 0; font-size:15.5px; color:var(--ink);}
.form .fr{display:grid; grid-template-columns:1fr 1fr; gap:30px;}
@media(max-width:560px){.form .fr{grid-template-columns:1fr;}}
.fld{margin-top:26px;}
.fld label{display:block; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; font-weight:600;}
.fld input,.fld select,.fld textarea{width:100%; border:0; border-bottom:1.5px solid var(--line-strong); background:transparent; color:var(--ink); padding:10px 2px; font-family:var(--fb); font-size:16px; transition:border-color .25s; outline:none;}
.fld input::placeholder,.fld textarea::placeholder{color:#b9bcc2;}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-bottom-color:var(--accent);}
.fld textarea{resize:vertical;}

/* ============ FOOTER ============ */
footer{background:var(--paper); border-top:1px solid var(--line);}
.foot{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:40px; padding:72px 0 40px;}
@media(max-width:760px){.foot{grid-template-columns:1fr 1fr;}}
.foot h5{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin:0 0 18px; font-weight:600;}
.foot ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px;}
.foot a,.foot li{color:var(--ink-soft); font-size:14.5px; transition:color .25s;}
.foot a:hover{color:var(--accent-ink);}
.foot-bottom{display:flex; justify-content:space-between; gap:16px; padding:22px 0; border-top:1px solid var(--line); font-size:13px; color:var(--muted);}

/* ============ REVEAL ============ */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1);}
.reveal.in{opacity:1; transform:none;}
.reveal.delay-1{transition-delay:.09s;} .reveal.delay-2{transition-delay:.18s;} .reveal.delay-3{transition-delay:.27s;} .reveal.delay-4{transition-delay:.36s;}
.trefoil{animation:spin 30s linear infinite; transform-origin:center;}
@keyframes spin{to{transform:rotate(360deg);}}
@media(prefers-reduced-motion:reduce){ *{animation:none !important; transition:none !important;} .reveal{opacity:1; transform:none;} .slide{opacity:1 !important;} }

/* ============================================================
   RÉVISION 2 — secteurs image · slider logos · CTA claire · maps
   ============================================================ */

/* bouton accent orange */
.btn-accent{background:var(--accent); color:#fff;}
.btn-accent:hover{background:#E07B00; color:#fff; transform:translateY(-2px); box-shadow:0 14px 30px -14px rgba(243,146,0,.6);}

/* ---- SECTEURS : cartes image ---- */
.sectors-img{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
@media(max-width:900px){.sectors-img{grid-template-columns:repeat(2,1fr);}}
@media(max-width:460px){.sectors-img{grid-template-columns:1fr;}}
/* duotone marque : images homogénéisées en orange/anthracite (cohérence avec le dossier) */
.sec-card{position:relative; aspect-ratio:1/1; overflow:hidden; display:block; background:#14161c; box-shadow:var(--shadow); transition:transform .4s cubic-bezier(.16,1,.3,1), box-shadow .4s;}
.sec-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-lg);}
.sec-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.16,1,.3,1);}
.sec-card:hover img{transform:scale(1.05);}
.sec-card .ov,.sec-card .no,.sec-card .cap{display:none;}
.sec-card .ov{position:absolute; inset:0; background:linear-gradient(to top, rgba(12,9,5,.82) 0%, rgba(12,9,5,.22) 56%, rgba(12,9,5,0) 100%); transition:background .45s;}
.sec-card:hover .ov{background:linear-gradient(to top, rgba(180,83,9,.7) 0%, rgba(12,9,5,.3) 60%, rgba(12,9,5,0) 100%);}
.sec-card .no{position:absolute; top:16px; left:18px; font-family:var(--fd); font-weight:700; font-size:14px; color:rgba(255,255,255,.85); letter-spacing:.04em;}
.sec-card .cap{position:absolute; left:0; right:0; bottom:0; padding:22px; color:#fff;}
.sec-card .cap .k{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.72);}
.sec-card .cap h3{font-size:20px; color:#fff; margin-top:5px; letter-spacing:-.01em;}
.sec-card .cap .ar{margin-top:14px; width:38px; height:38px; border:1px solid rgba(255,255,255,.45); display:grid; place-items:center; color:#fff; opacity:0; transform:translateY(8px); transition:.4s;}
.sec-card:hover .cap .ar{opacity:1; transform:none; background:#fff; color:#16181C;}

/* ---- SLIDER LOGOS CLIENTS ---- */
.logos{margin-top:64px;}
.logos .lh{display:flex; align-items:center; gap:20px; margin-bottom:30px;}
.logos .lh span{font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); white-space:nowrap;}
.logos .lh .ln{height:1px; flex:1; background:var(--line);}
.marq{position:relative; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent); mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent); padding:8px 0;}
.marq-track{display:flex; width:max-content; animation:logoscroll 30s linear infinite;}
.marq:hover .marq-track{animation-play-state:paused;}
.marq-track .lg{flex:0 0 auto; padding:0 44px; font-family:var(--fd); font-weight:700; font-size:clamp(20px,2vw,28px); letter-spacing:-.01em; color:#A7ABB2; transition:color .3s, transform .3s; white-space:nowrap; display:inline-flex; align-items:center; gap:11px;}
.marq-track .lg svg{opacity:.7; transition:opacity .3s;}
.marq-track .lg:hover{color:var(--ink); transform:translateY(-2px);}
.marq-track .lg:hover svg{opacity:1; color:var(--accent);}
@keyframes logoscroll{to{transform:translateX(-50%);}}
.logos .cap-note{text-align:center; font-size:12px; color:var(--muted); margin-top:24px;}

/* ---- CTA CLAIRE (override : plus de noir) ---- */
.cta-band{background:linear-gradient(170deg,#FFFFFF 0%, #FBF5EC 100%); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.cta-band .glow{background:radial-gradient(circle, rgba(243,146,0,.18), transparent 60%); width:560px; height:560px; right:-180px; top:-240px; filter:blur(16px);}
.cta-band h2{color:var(--ink);}
.cta-band p{color:var(--muted);}
.cta-kick{display:inline-flex; align-items:center; gap:12px; font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--accent-ink); margin-bottom:18px;}
.cta-kick::before{content:''; width:34px; height:2px; background:var(--accent);}
/* fix bouton étiré : on remplace le flex par une grille (colonne auto = taille du contenu) */
.cta-band .cta-row{display:grid; grid-template-columns:1fr auto; align-items:center; gap:48px;}
.cta-band .btn{justify-self:end; align-self:center;}
@media(max-width:760px){.cta-band .cta-row{grid-template-columns:1fr; justify-items:start; gap:26px;} .cta-band .btn{justify-self:start;}}

/* ---- CONTACT MODERNE + MAPS ---- */
.contact{align-items:stretch;}
.cinfo{display:flex; flex-direction:column;}
.cmap{margin-top:26px; border:1px solid var(--line); overflow:hidden; flex:1; min-height:260px; position:relative;}
.cmap iframe{width:100%; height:100%; min-height:260px; border:0; display:block; filter:grayscale(.25) contrast(1.02);}
.cmap .pin{position:absolute; top:14px; left:14px; z-index:2; background:#fff; border:1px solid var(--line); padding:8px 13px; font-size:12px; font-weight:600; display:inline-flex; align-items:center; gap:8px; box-shadow:var(--shadow);}
.cmap .pin .d{width:8px; height:8px; border-radius:50%; background:var(--accent);}
.form{background:#fff; border:1px solid var(--line); padding:40px; box-shadow:var(--shadow);}
@media(max-width:560px){.form{padding:28px;}}

/* fix hero : texte calé à gauche (le .wrap en flex se rétrécissait + se centrait) */
.hero .hero-content > .wrap{width:100%;}

/* Badge ISO 9001 (hero) */
.iso-seal{position:absolute; z-index:6; top:112px; right:clamp(20px,5vw,68px); width:132px; height:132px; border-radius:50%; overflow:hidden; background:#fff; box-shadow:0 18px 38px rgba(20,22,28,.34), 0 0 0 1px rgba(0,0,0,.04); animation:isoIn .8s cubic-bezier(.16,1,.3,1) .4s both;}
.iso-seal img{width:108%; height:108%; object-fit:cover; object-position:center; display:block; margin:-4%;}
@keyframes isoIn{from{opacity:0; transform:scale(.82) rotate(-10deg);}to{opacity:1; transform:none;}}
@media(max-width:860px){.iso-seal{top:92px; right:16px; width:104px; height:104px;}}

/* Bande certification ISO 9001 (bas de page) */
.iso-band{background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.iso-band .iso-band-inner{display:flex; align-items:center; gap:42px; padding:58px 0;}
@media(max-width:640px){.iso-band .iso-band-inner{flex-direction:column; text-align:center; gap:26px;}}
.iso-band-logo{width:132px; height:132px; border-radius:50%; object-fit:cover; flex-shrink:0; background:#fff; box-shadow:var(--shadow);}
.iso-band-txt h2{font-size:clamp(22px,2.6vw,32px); color:var(--ink); margin-top:8px; letter-spacing:-.02em;}
.iso-band-txt p{color:var(--ink-soft); margin-top:12px; max-width:62ch; font-size:16px;}

/* partenaire unique (Schlumberger réel) */
.partner-single{display:flex; align-items:center; justify-content:center; padding:40px 30px; border:1px solid var(--line); background:#fff;}
.partner-single img{height:42px; width:auto; filter:grayscale(1) opacity(.68); transition:filter .35s;}
.partner-single:hover img{filter:grayscale(0) opacity(1);}

/* ============================================================
   V6 — SITE MULTI-PAGES (entreprise, services, classes,
   partenaires, politique qualité, organigramme, contact)
   ============================================================ */

/* ---- NAV : menu déroulant « L'entreprise » ---- */
.has-dd{position:relative;}
.has-dd > a{display:inline-flex; align-items:center; gap:5px;}
.has-dd > a .caret{transition:transform .3s;}
.has-dd:hover > a .caret{transform:rotate(180deg);}
.dd{position:absolute; top:100%; left:-16px; padding-top:16px; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .25s, transform .25s, visibility .25s; z-index:70;}
.has-dd:hover .dd, .has-dd:focus-within .dd{opacity:1; visibility:visible; transform:none;}
.dd-box{background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-lg); min-width:230px; padding:8px;}
.dd-box a{display:block; padding:11px 15px; font-size:13px; color:var(--ink-soft); white-space:nowrap; transition:.2s;}
.dd-box a::after{display:none;}
.dd-box a:hover{background:var(--paper); color:var(--ink);}
.dd-box a .s{display:block; font-size:11px; color:var(--muted); margin-top:2px;}
.dd-box .dd-parent{min-width:250px; font-weight:600; color:var(--ink); font-family:var(--fd);}
.dd-box .dd-parent:first-of-type{margin-top:2px;}
.dd-box .dd-sub{padding-left:30px; font-size:12.5px; position:relative;}
.dd-box .dd-sub::before{content:''; position:absolute; left:16px; top:50%; width:7px; height:1px; background:var(--line-strong);}
.dd-box .dd-iso{margin-top:6px; padding-top:15px; border-top:1px solid var(--line); font-weight:600; color:var(--ink); font-family:var(--fd);}
.dd-box .dd-v2{margin-top:6px; background:#0e0f13; color:#fff; border-radius:2px;}
.dd-box .dd-v2:hover{background:#1a1c22; color:#fff;}
.dd-box .dd-v2 .s{color:var(--accent);}

/* ---- EN-TÊTE DE PAGE INTERNE ---- */
.page-hero{position:relative; padding:180px 0 74px; background:var(--paper); border-bottom:1px solid var(--line); overflow:hidden;}
@media(max-width:640px){.page-hero{padding:140px 0 56px;}}
.page-hero .glow{position:absolute; width:520px; height:520px; right:-160px; top:-200px; background:radial-gradient(circle,rgba(243,146,0,.16),transparent 62%); filter:blur(18px); z-index:0;}
.page-hero .wrap{position:relative; z-index:2;}
.crumb{font-size:12.5px; color:var(--muted); letter-spacing:.02em;}
.crumb a{color:var(--muted);} .crumb a:hover{color:var(--accent-ink);}
.crumb .sep{margin:0 8px; color:var(--line-strong);}
.page-hero h1{font-size:clamp(34px,5vw,58px); font-weight:600; letter-spacing:-.03em; margin-top:20px; max-width:20ch; line-height:1.03;}
.page-hero .lead{margin-top:22px; max-width:62ch; color:var(--ink-soft); font-size:clamp(16px,1.4vw,19px);}
/* variante image */
.page-hero.img{border-bottom:0; color:#fff; padding-top:190px;}
.page-hero.img .ph-bg{position:absolute; inset:0; background-size:cover; background-position:center; z-index:0; transform:scale(1.03);}
.page-hero.img .ph-scrim{position:absolute; inset:0; z-index:1; background:linear-gradient(92deg, rgba(12,13,17,.92) 0%, rgba(12,13,17,.72) 42%, rgba(12,13,17,.35) 72%, rgba(12,13,17,.18) 100%), linear-gradient(0deg, rgba(12,13,17,.6), transparent 40%);}
.page-hero.img h1{color:#fff;}
.page-hero.img .lead{color:rgba(255,255,255,.82);}
.page-hero.img .crumb, .page-hero.img .crumb a{color:rgba(255,255,255,.6);}
.page-hero.img .crumb a:hover{color:#fff;}

/* mention provisoire (contenu à valider par le client) */
.provisoire{display:inline-flex; align-items:center; gap:9px; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-ink); background:#FFF3E2; border:1px solid #F6D9A8; padding:7px 13px;}
.provisoire::before{content:''; width:8px; height:8px; border-radius:50%; background:var(--accent); flex-shrink:0;}
.provisoire-note{display:flex; gap:12px; align-items:flex-start; background:#FFF9F0; border:1px solid #F3E2C6; border-left:3px solid var(--accent); padding:16px 20px; font-size:13.5px; color:var(--ink-soft); margin-top:30px;}
.provisoire-note strong{color:var(--ink);}

/* ---- GALERIE FLOTTE ---- */
.fleet{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
@media(max-width:760px){.fleet{grid-template-columns:1fr;}}
.fleet figure{margin:0; position:relative; overflow:hidden; border:1px solid var(--line); background:#0e1014; aspect-ratio:16/10; box-shadow:var(--shadow);}
.fleet img{width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.16,1,.3,1);}
.fleet figure:hover img{transform:scale(1.05);}
.fleet figcaption{position:absolute; left:0; right:0; bottom:0; padding:22px 20px 18px; color:#fff; background:linear-gradient(to top, rgba(10,8,4,.85), rgba(10,8,4,.1) 80%, transparent); font-size:14px; font-weight:500;}
.fleet figcaption .k{display:block; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); margin-bottom:4px;}

/* ---- GRILLE LOGOS PARTENAIRES (réels) ---- */
.plogo-block{margin-top:52px;}
.plogo-block:first-of-type{margin-top:0;}
.plogo-head{display:flex; align-items:center; gap:16px; margin-bottom:24px;}
.plogo-head h3{font-size:16px; font-weight:600; white-space:nowrap;}
.plogo-head .tag{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-ink);}
.plogo-head .ln{height:1px; flex:1; background:var(--line);}
.plogos{display:grid; grid-template-columns:repeat(5,1fr); gap:16px;}
@media(max-width:900px){.plogos{grid-template-columns:repeat(3,1fr);}}
@media(max-width:520px){.plogos{grid-template-columns:repeat(2,1fr);}}
.plogo{background:#fff; border:1px solid var(--line); aspect-ratio:3/2; display:grid; place-items:center; padding:22px; transition:transform .35s, box-shadow .35s, border-color .35s;}
.plogo:hover{border-color:var(--line-strong); box-shadow:var(--shadow); transform:translateY(-4px);}
.plogo img{max-height:58px; max-width:100%; width:auto; object-fit:contain; filter:none; opacity:1; transition:transform .4s;}
.plogo:hover img{transform:scale(1.04);}

/* ---- ORGANIGRAMME (arbre CSS) ---- */
.org-scroll{overflow-x:auto; padding:10px 4px 20px;}
.tree{display:flex; justify-content:center; min-width:min-content;}
.tree ul{padding-top:28px; position:relative; display:flex; justify-content:center; margin:0; list-style:none;}
.tree li{display:flex; flex-direction:column; align-items:center; position:relative; padding:28px 14px 0; list-style:none;}
.tree li::before, .tree li::after{content:''; position:absolute; top:0; right:50%; border-top:2px solid var(--line-strong); width:50%; height:28px;}
.tree li::after{right:auto; left:50%; border-left:2px solid var(--line-strong);}
.tree li:only-child::after, .tree li:only-child::before{display:none;}
.tree li:only-child{padding-top:0;}
.tree li:first-child::before, .tree li:last-child::after{border:0 none;}
.tree li:last-child::before{border-right:2px solid var(--line-strong);}
.tree ul ul::before{content:''; position:absolute; top:0; left:50%; border-left:2px solid var(--line-strong); width:0; height:28px;}
.tree > ul{padding-top:0;}

/* ---- ORGANIGRAMME v2 : colonnes de départements (responsive, sans débordement) ---- */
/* Gérant principal + Co-gérant */
/* Grille 5 colonnes (responsables) */

/* ---- POLITIQUE QUALITÉ : piliers ---- */
.pillars{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media(max-width:860px){.pillars{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.pillars{grid-template-columns:1fr;}}
.pillar{background:var(--white); border:1px solid var(--line); padding:30px 26px; position:relative; transition:transform .4s cubic-bezier(.16,1,.3,1), box-shadow .4s, border-color .4s;}
.pillar:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--line-strong);}
.pillar .no{font-family:var(--fd); font-weight:700; font-size:15px; color:var(--accent); letter-spacing:.06em;}
.pillar h3{font-size:18px; font-weight:600; margin-top:14px;}
.pillar p{color:var(--muted); font-size:14px; margin-top:9px; line-height:1.6;}

/* liste d'engagements */
.commit{display:grid; grid-template-columns:repeat(2,1fr); gap:0 44px;}
@media(max-width:760px){.commit{grid-template-columns:1fr;}}
.commit li{display:flex; gap:14px; padding:18px 0; border-top:1px solid var(--line); align-items:flex-start; list-style:none;}
.commit .ic{color:var(--accent); flex-shrink:0; margin-top:2px;}
.commit h4{font-size:15.5px; font-weight:600;}
.commit p{margin:3px 0 0; color:var(--muted); font-size:14px;}
.commit{margin:0; padding:0;}

/* bloc citation / mot du gérant */
.quote{background:var(--paper); border:1px solid var(--line); border-left:3px solid var(--accent); padding:38px 42px;}
@media(max-width:560px){.quote{padding:28px 24px;}}
.quote p{font-family:var(--fd); font-weight:400; font-size:clamp(19px,2.1vw,26px); line-height:1.4; letter-spacing:-.01em; color:var(--ink);}
.quote .sig{margin-top:20px; font-size:13px; color:var(--muted); letter-spacing:.04em;}
.quote .sig b{color:var(--ink); font-weight:600;}

/* deux colonnes texte + média générique */
.split{display:grid; grid-template-columns:1.05fr .95fr; gap:64px; align-items:center;}
@media(max-width:900px){.split{grid-template-columns:1fr; gap:44px;}}
.split.rev .media{order:-1;}
@media(max-width:900px){.split.rev .media{order:0;}}
.split .media{position:relative; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); aspect-ratio:4/3; background:#0e1014;}
.split .media img{width:100%; height:100%; object-fit:cover;}
.split p.para{color:var(--ink-soft); font-size:16px; margin-top:16px; line-height:1.7;}
.split p.para:first-of-type{margin-top:0;}

/* bandeau slogan compact */
.slogan-band{background:var(--ink); color:#fff; padding:26px 0;}
.slogan-band .row{display:flex; flex-wrap:wrap; gap:16px 44px; align-items:center; justify-content:center; text-align:center;}
.slogan-band .it{display:inline-flex; align-items:center; gap:12px; font-family:var(--fd); font-weight:600; font-size:clamp(16px,1.8vw,22px);}
.slogan-band .it .d{width:9px; height:9px; background:var(--accent); border-radius:50%; flex-shrink:0;}

/* ---- PAGES SERVICE : spécifications & prestations liées ---- */
.spec{display:grid; grid-template-columns:repeat(2,1fr); gap:0 44px; margin:0; padding:0;}
@media(max-width:640px){.spec{grid-template-columns:1fr;}}
.spec li{display:flex; justify-content:space-between; gap:18px; padding:16px 0; border-top:1px solid var(--line); list-style:none; align-items:baseline;}
.spec .lb{font-size:13px; color:var(--muted); letter-spacing:.04em; text-transform:uppercase;}
.spec .vl{font-family:var(--fd); font-weight:500; font-size:15px; color:var(--ink); text-align:right;}
.rel-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
@media(max-width:820px){.rel-cards{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.rel-cards{grid-template-columns:1fr;}}
.rel-card{display:block; background:var(--white); border:1px solid var(--line); padding:24px; transition:transform .35s, box-shadow .35s, border-color .35s;}
.rel-card:hover{transform:translateY(-5px); box-shadow:var(--shadow); border-color:var(--accent);}
.rel-card .k{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-ink);}
.rel-card h3{font-size:16px; font-weight:600; margin-top:10px;}
.rel-card .ar{margin-top:16px; font-size:12.5px; font-weight:600; color:var(--ink); display:inline-flex; align-items:center; gap:7px;}
.rel-card:hover .ar{color:var(--accent-ink);}

/* ---- BLOG ---- */
.post-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
@media(max-width:900px){.post-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.post-grid{grid-template-columns:1fr;}}
.post-card{display:flex; flex-direction:column; background:var(--white); border:1px solid var(--line); overflow:hidden; transition:transform .4s cubic-bezier(.16,1,.3,1), box-shadow .4s, border-color .4s;}
.post-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:var(--line-strong);}
.post-card .thumb{aspect-ratio:16/10; overflow:hidden; background:#0e1014; position:relative;}
.post-card .thumb img{width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.16,1,.3,1);}
.post-card:hover .thumb img{transform:scale(1.06);}
.post-card .thumb .cat{position:absolute; top:12px; left:12px; background:var(--accent); color:#0e0f13; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:5px 11px; z-index:2;}
.post-card .bd{padding:24px; flex:1; display:flex; flex-direction:column;}
.post-card .meta{font-size:12px; color:var(--muted); letter-spacing:.03em;}
.post-card h3{font-size:18px; font-weight:600; margin-top:10px; line-height:1.28; letter-spacing:-.01em;}
.post-card p{color:var(--muted); font-size:14px; margin-top:10px; flex:1;}
.post-card .more{margin-top:16px; font-size:12.5px; font-weight:600; color:var(--accent-ink); letter-spacing:.03em; text-transform:uppercase; display:inline-flex; align-items:center; gap:7px;}

/* ---- ARTICLE (prose) ---- */
.article{max-width:760px; margin:0 auto;}
.prose{font-size:16.5px; line-height:1.8; color:var(--ink-soft);}
.prose > *:first-child{margin-top:0;}
.prose h2{font-family:var(--fd); font-size:clamp(24px,2.6vw,32px); color:var(--ink); margin:52px 0 18px; letter-spacing:-.02em; line-height:1.15;}
.prose h3{font-family:var(--fd); font-size:20px; color:var(--ink); margin:36px 0 12px;}
.prose p{margin:18px 0;}
.prose a{color:var(--accent-ink); font-weight:600; text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(180,83,9,.35); transition:text-decoration-color .25s;}
.prose a:hover{text-decoration-color:var(--accent-ink);}
.prose ul,.prose ol{margin:18px 0; padding-left:24px;}
.prose li{margin:9px 0;}
.prose blockquote{margin:28px 0; padding:18px 26px; border-left:3px solid var(--accent); background:var(--paper); font-family:var(--fd); font-size:19px; color:var(--ink); line-height:1.5;}
.prose figure{margin:32px 0;}
.prose figure img{width:100%; border:1px solid var(--line);}
.prose figcaption{font-size:12.5px; color:var(--muted); margin-top:10px; text-align:center;}
.callout{background:var(--ink); color:#fff; padding:30px 34px; margin:36px 0;}
.callout h4{font-family:var(--fd); font-size:18px; color:#fff; margin-bottom:8px;}
.callout p{color:rgba(255,255,255,.72); font-size:15px; margin:0;}
.callout a{color:var(--accent); font-weight:600;}
.article-foot{max-width:760px; margin:56px auto 0; padding-top:30px; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; align-items:center;}
.tagrow{display:flex; flex-wrap:wrap; gap:9px;}
.tagrow .t{font-size:12px; color:var(--ink-soft); border:1px solid var(--line-strong); padding:6px 12px;}

/* ---- GALERIE ---- */
.gtabs{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px;}
.gtab{font-size:13px; font-weight:600; padding:9px 18px; border:1px solid var(--line-strong); background:#fff; color:var(--ink-soft); cursor:pointer; transition:.25s;}
.gtab:hover{border-color:var(--ink);}
.gtab.active{background:var(--ink); color:#fff; border-color:var(--ink);}
.gallery{columns:3; column-gap:18px;}
@media(max-width:900px){.gallery{columns:2;}}
@media(max-width:560px){.gallery{columns:1;}}
.gitem{break-inside:avoid; margin:0 0 18px; position:relative; overflow:hidden; border:1px solid var(--line); background:#0e1014; display:block;}
.gitem img{width:100%; display:block; transition:transform .7s cubic-bezier(.16,1,.3,1);}
.gitem:hover img{transform:scale(1.05);}
.gitem .gcap{position:absolute; left:0; right:0; bottom:0; padding:18px 16px 14px; color:#fff; font-size:13px; font-weight:500; background:linear-gradient(to top,rgba(10,8,4,.82),transparent); opacity:0; transition:opacity .35s;}
.gitem:hover .gcap{opacity:1;}
.gitem .play{position:absolute; inset:0; display:grid; place-items:center; z-index:2;}
.gitem .play span{width:64px; height:64px; border-radius:50%; background:rgba(243,146,0,.92); display:grid; place-items:center; box-shadow:0 10px 30px rgba(0,0,0,.4); transition:transform .3s;}
.gitem:hover .play span{transform:scale(1.08);}
.gitem.hide{display:none;}
.gph{position:relative; aspect-ratio:4/3; background:linear-gradient(150deg,#1b1d22,#0e0f13); display:grid; place-items:center; color:rgba(255,255,255,.5); text-align:center; padding:24px; font-size:13px;}

/* CTA compacte en bas de page interne (réutilise cta-band) */
.mini-cta .cta-row{padding:64px 0;}

/* ---- LOGOS EN PASTILLES RONDES (accueil « Ils nous font confiance ») ---- */
.logos .logos-intro{max-width:64ch; margin:-8px 0 30px; color:var(--ink-soft); font-size:15.5px; line-height:1.65;}
.logos.circles .marq{-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); padding:20px 0;}
.logos.circles .marq-track{align-items:center;}
.logos.circles .marq-track .lg{padding:0 15px;}
.logos.circles .badge-c{width:118px; height:118px; border-radius:50%; background:#fff; box-shadow:0 16px 34px -20px rgba(20,22,28,.4), 0 0 0 1px var(--line); display:grid; place-items:center; padding:24px; transition:transform .4s cubic-bezier(.16,1,.3,1), box-shadow .4s;}
.logos.circles .badge-c:hover{transform:translateY(-6px); box-shadow:0 26px 48px -22px rgba(20,22,28,.5), 0 0 0 1px var(--line-strong);}
.logos.circles .badge-c img{max-width:100%; max-height:60px; width:auto; height:auto; object-fit:contain; filter:none; opacity:1;}
@media(max-width:640px){.logos.circles .badge-c{width:100px; height:100px; padding:20px;} .logos.circles .badge-c img{max-height:52px;}}

/* ============ SERVICES V2 ============ */
[id].svc-anchor{scroll-margin-top:96px;}
/* Bandeau bascule V1/V2 */
.ver-switch{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px 16px; background:#0e0f13; color:#fff; padding:13px 20px; font-size:13.5px; text-align:center;}
.ver-switch b{font-family:var(--fd); font-weight:600;}
.ver-switch a{color:var(--accent); font-weight:600; display:inline-flex; align-items:center; gap:6px; border-bottom:1px solid transparent; transition:.2s;}
.ver-switch a:hover{border-bottom-color:var(--accent);}
.ver-switch .tag{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55);}
/* En-tête de classe */
.class-lead{display:flex; align-items:flex-start; gap:22px; margin-bottom:34px;}
.class-lead .dia{flex:0 0 auto; width:76px; height:76px; transform:rotate(45deg); display:grid; place-items:center; border:2px solid var(--accent); background:linear-gradient(135deg,#fff,#fff7ec); box-shadow:var(--shadow);}
.class-lead .dia span{transform:rotate(-45deg); font-family:var(--fd); font-weight:700; font-size:26px; color:var(--accent-ink);}
.class-lead .tx h2{font-size:clamp(24px,3vw,34px); font-weight:600; letter-spacing:-.02em; line-height:1.08;}
.class-lead .tx .k{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent-ink); display:block; margin-bottom:8px;}
.class-lead .tx p{color:var(--ink-soft); font-size:16px; margin-top:12px; line-height:1.7; max-width:70ch;}
/* Listes d'applications dans les splits secteurs */
.svc-list{margin:20px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:11px;}
.svc-list li{position:relative; padding-left:28px; font-size:14.5px; color:var(--ink-soft); line-height:1.55;}
.svc-list li::before{content:''; position:absolute; left:2px; top:7px; width:11px; height:11px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px rgba(243,146,0,.14);}
.svc-list li b{color:var(--ink); font-weight:600;}
.svc-block{margin-top:44px;}
.svc-block:first-of-type{margin-top:0;}
.svc-eyebrow{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent-ink); font-weight:600;}
.svc-block h3{font-size:clamp(20px,2.4vw,26px); font-weight:600; letter-spacing:-.01em; margin-top:8px;}
/* Galerie matériel transporté (photos produit fond blanc) */
.matgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
@media(max-width:820px){.matgrid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.matgrid{grid-template-columns:1fr;}}
.matcard{background:#fff; border:1px solid var(--line); display:flex; flex-direction:column; transition:transform .35s, box-shadow .35s, border-color .35s;}
.matcard:hover{transform:translateY(-5px); box-shadow:var(--shadow); border-color:var(--accent);}
.matcard .ph{aspect-ratio:4/3; display:grid; place-items:center; padding:24px; background:#fafafa; border-bottom:1px solid var(--line);}
.matcard .ph img{max-width:100%; max-height:100%; object-fit:contain;}
.matcard .cap{padding:16px 18px 20px;}
.matcard .cap .k{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-ink);}
.matcard .cap h4{font-size:15px; font-weight:600; margin-top:7px;}
.matcard .cap p{font-size:13px; color:var(--muted); margin-top:6px; line-height:1.5;}


/* min-height : les intitulés font 1 ou 2 lignes selon les postes ; sans ça
   les cinq cartes n'ont pas la même hauteur et le bas de la rangée est
   irrégulier. */

/* --- géométrie des liens ---------------------------------------------
   Le gérant est centré par la grille de .lead-row, donc le tronc vertical
   tombe pile sur son axe. La barre horizontale relie les CENTRES des
   colonnes extrêmes : avec 5 colonnes égales ils sont à 10% et 90%, d'où
   left/right:10% — une largeur fixe laisserait les traits des colonnes du
   bord pointer dans le vide. */
/* sans bornes, la carte du gérant s'étire à la longueur de sa description
   et écrase le co-gérant contre le bord du panneau. */
/* centre de la 1re/dernière colonne = demi-colonne, gouttières déduites :
   (100% - 4*18px)/10 = 10% - 7.2px. */

@media(max-width:920px){
}
@media(max-width:640px){
}



/* ---- fiches de fonction (organigramme) ------------------------------ */
.fnx{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
@media(max-width:940px){.fnx{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.fnx{grid-template-columns:1fr;}}
.fn{background:#fff; border:1px solid var(--line-strong); border-top:3px solid var(--accent); padding:24px 22px 22px; box-shadow:var(--shadow); transition:transform .3s, box-shadow .3s;}
.fn:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg);}
.fn .ic{width:42px; height:42px; border-radius:50%; display:grid; place-items:center; background:#FFF3E2; color:var(--accent-ink); border:1px solid #F6D9A8; margin-bottom:14px;}
.fn h4{font-family:var(--fd); font-size:16px; font-weight:600; letter-spacing:-.01em;}
.fn p{font-size:13.5px; color:var(--ink-soft); line-height:1.6; margin-top:8px;}
.fn ul{list-style:none; margin-top:14px; padding-top:14px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:7px;}
.fn li{position:relative; padding-left:16px; font-size:12.5px; color:var(--muted); line-height:1.45;}
.fn li::before{content:''; position:absolute; left:0; top:7px; width:5px; height:5px; border-radius:50%; background:var(--accent);}

/* ---- organigramme v2 : colonne vertébrale -----------------------------
   Remplace le schéma en arbre : plus aucun trait horizontal à aligner sur
   des centres de colonnes, et les cartes s'empilent naturellement sur
   mobile où l'arbre à 5 colonnes était illisible. */
.orgv{position:relative; padding-left:34px;}
.orgv::before{content:''; position:absolute; left:6px; top:8px; bottom:8px; width:2px; background:linear-gradient(180deg, var(--accent) 0%, var(--line-strong) 55%, var(--line-strong) 100%);}
@media(max-width:600px){.orgv{padding-left:22px;} .orgv::before{left:3px;}}

.lvl{position:relative;}
.lvl + .lvl{margin-top:34px;}
.lvl-tag{display:inline-flex; align-items:center; gap:10px; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:16px;}
.lvl-tag .dot{position:absolute; left:-34px; width:14px; height:14px; border-radius:50%; background:#fff; border:2px solid var(--accent); box-shadow:0 0 0 4px var(--white);}
@media(max-width:600px){.lvl-tag .dot{left:-22px; width:11px; height:11px;}}

.lvl-cards{display:grid; gap:14px;}
.lvl-cards.two{grid-template-columns:repeat(2,1fr);}
.lvl-cards.five{grid-template-columns:repeat(5,1fr);}
@media(max-width:980px){.lvl-cards.five{grid-template-columns:repeat(3,1fr);}}
@media(max-width:680px){.lvl-cards.two,.lvl-cards.five{grid-template-columns:1fr 1fr;}}
@media(max-width:460px){.lvl-cards.two,.lvl-cards.five{grid-template-columns:1fr;}}

.ocard{background:#fff; border:1px solid var(--line-strong); padding:18px 18px; display:flex; gap:13px; align-items:flex-start; transition:transform .3s, box-shadow .3s, border-color .3s;}
.ocard:hover{transform:translateY(-2px); box-shadow:var(--shadow); border-color:var(--accent);}
.ocard .ic{width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:#FFF3E2; color:var(--accent-ink); border:1px solid #F6D9A8; flex:0 0 auto;}
.ocard h4{font-family:var(--fd); font-size:15px; font-weight:600; letter-spacing:-.01em; line-height:1.25;}
.ocard .role{display:block; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-top:5px; line-height:1.35;}
.ocard p{font-size:12.5px; color:var(--ink-soft); line-height:1.55; margin-top:9px;}
.ocard .att{display:inline-block; font-size:11px; color:var(--accent-ink); background:#FFF3E2; border:1px solid #F6D9A8; padding:3px 9px; margin-top:10px; line-height:1.3;}

.ocard.head{background:var(--ink); border-color:var(--ink);}
.ocard.head h4{color:#fff; font-size:17px;}
.ocard.head .role{color:var(--accent);}
.ocard.head p{color:rgba(255,255,255,.7);}
.ocard.head .ic{background:rgba(243,146,0,.16); color:var(--accent); border-color:rgba(243,146,0,.4);}
.ocard.fn2{border-top:3px solid var(--accent); flex-direction:column; gap:11px; text-align:left;}
.ocard.team{border-left:3px solid var(--line-strong);}

/* ---- candidature (recrutement) --------------------------------------- */
.cand-wrap{display:grid; grid-template-columns:1.55fr .85fr; gap:26px; align-items:start;}
@media(max-width:900px){.cand-wrap{grid-template-columns:1fr;}}

/* piège à robots : masqué sans display:none, que certains scripts détectent */
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}

.fld .hint{text-transform:none; letter-spacing:0; font-weight:400; color:var(--muted); font-size:11.5px; margin-left:6px;}
.drop{display:flex; align-items:center; justify-content:center; gap:11px; border:1.5px dashed var(--line-strong); background:#fff; padding:20px; cursor:pointer; color:var(--muted); font-size:13.5px; transition:border-color .25s, color .25s, background .25s;}
.drop:hover{border-color:var(--accent); color:var(--accent-ink); background:#FFFCF7;}
.drop.filled{border-style:solid; border-color:var(--accent); color:var(--ink); background:#FFF9F0;}
#cv-file{position:absolute; left:-9999px; opacity:0;}

.cand-legal{text-align:center; color:var(--muted); font-size:12px; margin-top:14px; line-height:1.5;}
.cand-msg{display:none; align-items:flex-start; gap:11px; background:#F0FAF2; border:1px solid #BFE3C8; border-left:3px solid #2EA84F; padding:15px 18px; font-size:13.5px; color:#1E5B2E; margin-bottom:22px;}
.cand-msg.on{display:flex;}

.cand-side{background:#fff; border:1px solid var(--line); border-top:3px solid var(--accent); padding:28px 24px; box-shadow:var(--shadow);}
.cand-side h4{font-family:var(--fd); font-size:15px; font-weight:600;}
.cand-side ul{list-style:none; margin-top:16px; display:flex; flex-direction:column; gap:11px;}
.cand-side li{position:relative; padding-left:17px; font-size:13px; color:var(--ink-soft); line-height:1.55;}
.cand-side li::before{content:''; position:absolute; left:0; top:7px; width:5px; height:5px; border-radius:50%; background:var(--accent);}
.cand-contact{margin-top:22px; padding-top:18px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:6px;}
.cand-contact .k{font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:4px;}
.cand-contact a{font-size:13.5px; color:var(--ink); font-weight:500;}
.cand-contact a:hover{color:var(--accent-ink);}
