:root{
  --midnight:#081C34;
  --ivory:#F8F6F2;
  --gold:#C79A3B;
  --gold-soft:rgba(199,154,59,.85);
  --forest:#314B42;
  --charcoal:#1D1D1D;
  --white:#FFFFFF;
  --ink:#2A2E33;
  --body-grey:#565B62;
  --mist:rgba(248,246,242,.72);
  --serif:'Cormorant Garamond',serif;
  --sans:'Inter',sans-serif;

  /* Échelle d'espacement — rythme vertical */
  --s-1:.5rem; --s0:1rem; --s1:1.75rem; --s2:2.75rem; --s3:4.5rem; --s4:7rem;
  --section:clamp(9rem,20vh,15rem);
  --measure:64ch;      /* largeur de lecture ~60–70 caractères */
  --measure-lede:50ch;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-weight:300;color:var(--ink);background:var(--ivory);line-height:1.9;font-size:16px;letter-spacing:.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:var(--gold);color:var(--midnight)}
.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(24px,5vw,72px)}

/* ============ Système typographique ============ */
h1,h2,h3{font-family:var(--serif);font-weight:300;color:var(--midnight);line-height:1.16;text-wrap:balance}
p{max-width:var(--measure)}

/* Sourcil de section — discret, il introduit sans rivaliser */
.label{display:block;font-family:var(--sans);font-weight:400;font-size:.6rem;letter-spacing:.55em;text-transform:uppercase;color:var(--gold-soft);text-indent:.55em}

/* Titre de section */
.h-section{font-size:clamp(2.1rem,4vw,3.4rem);line-height:1.18;letter-spacing:.005em;margin:var(--s1) 0 0}

/* Paragraphe d'appui (lede) — entre le titre et le corps */
.lede{font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(1.15rem,1.7vw,1.4rem);line-height:1.7;color:#4A5158;max-width:var(--measure-lede)}

/* Corps de texte */
.body-copy{font-size:.98rem;line-height:2;color:var(--body-grey);max-width:var(--measure)}
.body-copy + .body-copy{margin-top:1.7em}

/* ============ Navigation ============ */
header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .5s ease,box-shadow .5s ease,padding .5s ease;padding:34px 0}
header.solid{background:rgba(8,28,52,.93);backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(255,255,255,.06);padding:18px 0}
.nav{display:flex;align-items:center;justify-content:space-between}
.brand{text-decoration:none;color:var(--white);display:inline-flex;align-items:center;gap:14px}
.brand-logo{width:68px;height:68px;border-radius:50%;object-fit:cover;background:#fff;flex-shrink:0;box-shadow:0 2px 10px rgba(0,0,0,.28)}
.f-brand{display:flex;align-items:center;gap:14px}
.f-brand .brand-logo{width:58px;height:58px}
.brand .b1{font-family:var(--serif);font-weight:400;font-size:1.32rem;letter-spacing:.22em}
.brand .b2{display:block;font-size:.5rem;letter-spacing:.48em;text-transform:uppercase;color:rgba(248,246,242,.55);margin-top:6px;text-indent:.48em}
.nav ul{display:flex;gap:52px;list-style:none;align-items:center}
.nav ul a{font-size:.66rem;letter-spacing:.32em;text-transform:uppercase;color:rgba(248,246,242,.78);text-decoration:none;transition:color .35s;padding:8px 0}
.nav ul a:hover,.nav ul a:focus-visible{color:var(--gold)}
.nav a:focus-visible,.btn:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.burger{display:none;background:none;border:0;cursor:pointer;width:44px;height:44px;position:relative;z-index:101}
.burger span{display:block;width:26px;height:1.5px;background:var(--white);margin:4px auto;transition:transform .45s cubic-bezier(.22,.61,.36,1),opacity .3s,background .3s}
.burger.active span:first-child{transform:translateY(3px) rotate(45deg)}
.burger.active span:last-child{transform:translateY(-2.5px) rotate(-45deg)}
.burger:hover span{background:var(--gold)}
body.no-scroll{overflow:hidden}
@media(max-width:900px){
  .nav ul{display:none}
  .burger{display:block}
  .m-menu{position:fixed;top:74px;right:18px;left:auto;bottom:auto;z-index:99;width:min(300px,calc(100vw - 36px));background:linear-gradient(165deg,#0B2444 0%,var(--midnight) 100%);border:1px solid rgba(199,154,59,.28);border-radius:14px;box-shadow:0 24px 60px rgba(4,12,24,.5);overflow:hidden;opacity:0;visibility:hidden;transform:translateY(-8px) scale(.97);transform-origin:top right;transition:opacity .35s ease,visibility .35s ease,transform .35s cubic-bezier(.22,.61,.36,1)}
  .m-menu.open{opacity:1;visibility:visible;transform:none}
  .mm-inner{display:flex;flex-direction:column;padding:22px 24px 18px}
  .mm-eyebrow{font-family:var(--sans);font-weight:400;font-size:.52rem;letter-spacing:.5em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:6px}
  .mm-eyebrow::after{content:"";display:block;width:22px;height:1px;background:var(--gold-soft);margin-top:10px}
  .mm-links{display:flex;flex-direction:column;margin-top:8px}
  .mm-links a{display:flex;align-items:baseline;gap:14px;font-family:var(--serif);font-weight:400;font-size:1.14rem;letter-spacing:.03em;color:var(--ivory);text-decoration:none;padding:13px 2px;border-bottom:1px solid rgba(248,246,242,.08);opacity:0;transform:translateY(10px);transition:opacity .4s ease,transform .4s ease,color .3s,padding-left .3s}
  .mm-links a:last-child{border-bottom:0}
  .mm-links a i{font-family:var(--sans);font-style:normal;font-weight:400;font-size:.52rem;letter-spacing:.26em;color:var(--gold-soft);transform:translateY(-3px)}
  .mm-links a:hover,.mm-links a:active{color:var(--gold);padding-left:6px}
  .m-menu.open .mm-links a{opacity:1;transform:none}
  .m-menu.open .mm-links a:nth-child(1){transition-delay:.06s}
  .m-menu.open .mm-links a:nth-child(2){transition-delay:.11s}
  .m-menu.open .mm-links a:nth-child(3){transition-delay:.16s}
  .m-menu.open .mm-links a:nth-child(4){transition-delay:.21s}
  .m-menu.open .mm-links a:nth-child(5){transition-delay:.26s}
  .mm-foot{margin-top:14px;padding-top:14px;border-top:1px solid rgba(248,246,242,.1);display:flex;flex-direction:column;gap:4px;font-family:var(--sans);font-weight:300;font-size:.68rem;letter-spacing:.06em;color:rgba(248,246,242,.45);opacity:0;transition:opacity .4s ease .3s}
  .mm-foot a{color:var(--gold-soft);text-decoration:none}
  .m-menu.open .mm-foot{opacity:1}
}
@media(min-width:901px){.m-menu{display:none!important}}
@media(prefers-reduced-motion:reduce){
  .mm-links a,.mm-foot{transition:none;opacity:1;transform:none}
  .m-menu{transition:none}
}

/* ============ Boutons ============ */
.btn{display:inline-block;font-family:var(--sans);font-weight:400;font-size:.64rem;letter-spacing:.38em;text-indent:.38em;text-transform:uppercase;text-decoration:none;padding:20px 46px;transition:background .45s,color .45s,border-color .45s;cursor:pointer}
.btn-line{border:1px solid rgba(248,246,242,.45);color:var(--ivory)}
.btn-line:hover{border-color:var(--gold);color:var(--gold)}
.btn-gold{border:1px solid var(--gold);color:var(--midnight);background:var(--gold)}
.btn-gold:hover{background:transparent;color:var(--gold)}
.btn-dark{border:1px solid var(--midnight);color:var(--midnight);background:transparent}
.btn-dark:hover{background:var(--midnight);color:var(--ivory)}

/* ============ Héros ============ */
.hero{min-height:100vh;min-height:100svh;position:relative;display:flex;align-items:flex-end;color:var(--ivory);overflow:hidden;padding-top:150px}
.hero-bg{position:absolute;inset:-6%;background:
  linear-gradient(180deg,rgba(8,28,52,.68) 0%,rgba(8,28,52,.28) 42%,rgba(8,28,52,.78) 100%),
  url('../images/hero.jpg') center/cover no-repeat,var(--midnight);
  animation:kenburns 36s ease-out forwards}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.09)}}
.hero .wrap{position:relative;z-index:2;padding-bottom:7vh;width:100%}
.hero .label{color:var(--gold-soft);margin-bottom:clamp(1.4rem,3vh,2.4rem);animation:rise 1.3s .3s ease both}
.hero h1{color:var(--ivory);font-weight:300;text-transform:uppercase;font-size:clamp(2.1rem,min(6.4vw,8.2vh),5.4rem);line-height:1.08;letter-spacing:.085em;word-spacing:.06em;animation:rise 1.3s .55s ease both}
.hero .sig{font-family:var(--sans);font-weight:400;font-size:clamp(.72rem,1.3vw,.86rem);letter-spacing:.62em;text-indent:.62em;text-transform:uppercase;color:var(--gold);margin-top:clamp(1.6rem,3vh,2.4rem);animation:rise 1.3s .8s ease both}
.hero .tag{max-width:42ch;color:var(--mist);font-size:.94rem;line-height:2.05;margin-top:clamp(1.2rem,2.2vh,1.8rem);animation:rise 1.3s 1s ease both}
.hero-cta{display:flex;gap:22px;flex-wrap:wrap;margin-top:clamp(2rem,4vh,3rem);animation:rise 1.3s 1.15s ease both}
@keyframes rise{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:none}}
.hero .scroll{position:absolute;right:clamp(24px,5vw,72px);bottom:10vh;z-index:2;writing-mode:vertical-rl;font-size:.56rem;letter-spacing:.55em;text-transform:uppercase;color:rgba(248,246,242,.5);display:flex;align-items:center;gap:18px}
.hero .scroll::after{content:"";width:1px;height:72px;background:linear-gradient(var(--gold),transparent)}
@media(max-width:700px){.hero .scroll{display:none}}

/* ============ Révélations ============ */
.reveal{opacity:0;transform:translateY(44px);transition:opacity 1.2s cubic-bezier(.22,.61,.36,1),transform 1.2s cubic-bezier(.22,.61,.36,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.14s}.reveal.d2{transition-delay:.28s}.reveal.d3{transition-delay:.42s}

/* ============ À propos ============ */
.about{padding:var(--section) 0;background:#F8F6F2}
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(56px,8vw,130px);align-items:center}
@media(max-width:900px){.about-grid{grid-template-columns:1fr}}
.about-img{position:relative;aspect-ratio:3.4/4.2;overflow:hidden}
.about-img .ph{position:absolute;inset:0;background:url('../images/about.jpg') center/cover no-repeat,var(--forest);transition:transform 9s ease}
.about-img:hover .ph{transform:scale(1.04)}
@media(max-width:900px){.about-img{aspect-ratio:4/3}}
.about-txt h2{max-width:16ch;margin-bottom:var(--s2)}
.about-txt .body-copy{max-width:54ch}

/* ============ Citation — un moment visuel ============ */
.quote{margin-top:var(--s3);max-width:30ch}
.quote::before{content:"";display:block;width:44px;height:1px;background:var(--gold);margin-bottom:var(--s1)}
.quote p{font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(1.6rem,2.6vw,2.1rem);line-height:1.55;color:var(--midnight);max-width:none}

/* ============ Chapitres services ============ */
.chapter{min-height:100vh;display:flex;align-items:center;position:relative;color:var(--ivory);padding:clamp(9rem,20vh,14rem) 0;background-attachment:fixed;background-size:cover;background-position:center}
@media(max-width:900px),(prefers-reduced-motion:reduce){.chapter{background-attachment:scroll}}
.ch-transport{background-image:linear-gradient(100deg,rgba(8,28,52,.9) 0%,rgba(8,28,52,.56) 55%,rgba(8,28,52,.3) 100%);background-color:var(--midnight)}
.ch-transport{background-image:linear-gradient(100deg,rgba(8,28,52,.9) 0%,rgba(8,28,52,.56) 55%,rgba(8,28,52,.3) 100%),url('../images/transport.jpg')}
.ch-energie{background-image:linear-gradient(100deg,rgba(29,29,29,.9) 0%,rgba(49,75,66,.6) 55%,rgba(29,29,29,.34) 100%),url('../images/energie.jpg');background-color:var(--charcoal)}
.ch-commerce{background-image:linear-gradient(100deg,rgba(8,28,52,.92) 0%,rgba(8,28,52,.6) 55%,rgba(8,28,52,.32) 100%),url('../images/commerce.jpg');background-color:var(--midnight)}
.ch-inner{max-width:840px;margin:0 auto;text-align:center}
.ch-num{font-family:var(--sans);font-weight:400;font-size:.6rem;letter-spacing:.55em;text-indent:.55em;text-transform:uppercase;color:var(--gold-soft);display:block}
.ch-orn{width:34px;height:1px;background:var(--gold-soft);margin:20px auto 0;position:relative}
.ch-orn::after{content:"";position:absolute;left:50%;top:-2px;transform:translateX(-50%) rotate(45deg);width:5px;height:5px;background:var(--gold-soft)}
.chapter h2{color:var(--ivory);font-size:clamp(2.5rem,5.2vw,4.2rem);line-height:1.1;margin:var(--s2) auto var(--s1)}
.chapter .lede{color:var(--mist);max-width:38ch;margin:0 auto var(--s3)}
/* Cartes de services — verre sombre, icônes colorées */
.svc-stack{max-width:640px;margin:0 auto;text-align:left}
.svc{display:flex;align-items:center;gap:22px;background:linear-gradient(120deg,rgba(10,16,26,.62),rgba(10,16,26,.48));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:20px 26px;margin-bottom:16px;transition:transform .4s ease,border-color .4s ease,background .4s ease}
.svc:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.2);background:linear-gradient(120deg,rgba(12,20,32,.72),rgba(12,20,32,.55))}
.svc-icon{flex:none;width:52px;height:52px;border-radius:50%;border:1.6px solid var(--c,#C79A3B);color:var(--c,#C79A3B);display:grid;place-items:center;box-shadow:0 0 18px -6px var(--c,#C79A3B)}
.svc-icon svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.svc-txt{border-left:1px solid rgba(255,255,255,.12);padding-left:22px}
.svc-txt h3{font-family:var(--sans);font-weight:500;font-size:.95rem;letter-spacing:.01em;color:var(--white);margin-bottom:5px;line-height:1.5}
.svc-txt p{font-size:.82rem;line-height:1.75;color:rgba(248,246,242,.68);max-width:52ch;margin:0}
@media(max-width:560px){.svc{flex-direction:column;align-items:flex-start;gap:14px}.svc-txt{border-left:0;padding-left:0}}

/* ============ Moments de transition ============ */
.moment{position:relative;min-height:70vh;display:grid;place-items:center;text-align:center;color:var(--ivory);padding:clamp(9rem,20vh,14rem) 24px;background-size:cover;background-position:center;background-attachment:fixed}
@media(max-width:900px),(prefers-reduced-motion:reduce){.moment{background-attachment:scroll}}
.moment-road{background-image:linear-gradient(rgba(8,28,52,.64),rgba(8,28,52,.64)),url('../images/moment-road.jpg');background-color:var(--midnight)}
.moment p{font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(1.7rem,3.6vw,2.9rem);line-height:1.5;max-width:26ch;color:var(--ivory);margin:0 auto}
.moment .m-label{margin-top:var(--s2)}

/* ============ Mission éditoriale ============ */
.mission{position:relative;color:var(--ivory);text-align:center;padding:clamp(11rem,26vh,18rem) 24px;background:
  linear-gradient(rgba(8,28,52,.91),rgba(8,28,52,.84)),
  url('../images/mission.jpg') center/cover no-repeat fixed,var(--midnight)}
@media(max-width:900px),(prefers-reduced-motion:reduce){.mission{background-attachment:scroll}}
.mission .label{margin-bottom:var(--s2)}
.mission h2{color:var(--ivory);font-size:clamp(1.9rem,4.2vw,3.4rem);line-height:1.3;max-width:24ch;margin:0 auto var(--s2)}
.mission .sub{color:var(--mist);font-size:.94rem;line-height:2.05;max-width:56ch;margin:0 auto}
.keywords{display:flex;justify-content:center;gap:clamp(40px,8vw,130px);margin-top:clamp(4rem,10vh,7rem);flex-wrap:wrap}
.kw{font-family:var(--serif);font-weight:300;font-size:clamp(1.4rem,2.4vw,1.9rem);letter-spacing:.14em;color:var(--ivory);position:relative;padding-top:30px}
.kw::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:36px;height:1px;background:var(--gold)}

/* ============ Partenaires ============ */
.partners{background:#0B0B0D;color:var(--ivory);padding:var(--section) 0;text-align:center}
.partners .label{margin-bottom:var(--s0)}
.partners .p-orn-top{width:30px;height:1px;background:var(--gold-soft);margin:0 auto var(--s2)}
.partners h2{color:var(--ivory);font-size:clamp(2rem,3.6vw,3rem);margin-bottom:clamp(4rem,9vh,6rem)}
.p-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:1020px){.p-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.p-grid{grid-template-columns:1fr}}
.p-cell{position:relative;background:#0D0D10;border:1px solid rgba(199,154,59,.26);border-radius:6px;padding:64px 28px 52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;overflow:hidden;transition:border-color .5s,transform .5s}
.p-cell:hover{border-color:rgba(199,154,59,.55);transform:translateY(-4px)}
.p-cell::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 30%,var(--glow,rgba(199,154,59,.22)),transparent 62%);pointer-events:none;transition:opacity .5s;opacity:.85}
.p-cell:hover::before{opacity:1}
.p-ico{position:relative;color:var(--gold);margin-bottom:30px}
.p-ico svg{width:52px;height:52px;stroke:currentColor;fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.p-cell .p-name{position:relative;font-family:var(--serif);font-weight:400;font-size:1.32rem;letter-spacing:.02em;line-height:1.45;color:var(--ivory);max-width:14ch}
.p-cell .p-rule{position:relative;width:26px;height:1px;background:var(--gold-soft);margin-top:26px}
/* Carte de synthèse */
.p-feature{align-items:flex-start;text-align:left;justify-content:center;padding:48px 34px}
.p-feature .pf-label{position:relative;font-family:var(--sans);font-weight:500;font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);line-height:2}
.p-feature .pf-rule{position:relative;width:30px;height:1px;background:var(--gold-soft);margin:20px 0 26px}
.p-feature .pf-num{position:relative;font-family:var(--serif);font-weight:400;font-size:3.4rem;line-height:1;color:var(--gold)}
.p-feature .pf-txt{position:relative;font-family:var(--serif);font-size:1.08rem;line-height:1.65;color:rgba(248,246,242,.88);margin-top:16px;max-width:18ch}
.p-feature .pf-map{position:absolute;right:-14px;bottom:-10px;width:56%;opacity:.5;pointer-events:none}
/* Intro partenaires + modèles de collaboration */
.partners .p-intro{max-width:66ch;margin:calc(-1 * clamp(2rem,5vh,3.5rem)) auto clamp(3.5rem,8vh,5.5rem);color:rgba(248,246,242,.72);font-size:.98rem;line-height:2}
.pmodels-wrap{margin-top:clamp(4rem,9vh,6rem)}
.pmodels-wrap .label{margin-bottom:var(--s1)}
.pmodels{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:14px;max-width:940px;margin:0 auto}
.pmodels li{border:1px solid rgba(199,154,59,.32);border-radius:999px;padding:12px 24px;font-family:var(--sans);font-weight:300;font-size:.82rem;letter-spacing:.03em;color:var(--ivory);background:#0D0D10;transition:border-color .4s,transform .4s}
.pmodels li:hover{border-color:rgba(199,154,59,.6);transform:translateY(-2px)}
.p-close-orn{margin:clamp(4rem,9vh,6rem) auto 0;width:min(280px,60%);height:9px;position:relative}
.p-close-orn::before{content:"";position:absolute;top:4px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-soft),transparent)}
.p-close-orn::after{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%) rotate(45deg);width:9px;height:9px;border:1px solid var(--gold);background:#0B0B0D}

/* ============ Contact ============ */
.contact{padding:var(--section) 0;background:#F6F2EA}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(56px,9vw,150px);position:relative}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
.c-divider{position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,#DDD5C4 18%,#DDD5C4 82%,transparent);transform:translateX(-50%)}
.c-divider::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(45deg);width:10px;height:10px;border:1px solid var(--gold);background:#F6F2EA}
@media(max-width:900px){.c-divider{display:none}}
.contact .label::after{content:"";display:block;width:26px;height:1px;background:var(--gold-soft);margin-top:14px}
.contact h2{font-size:clamp(2.6rem,4.8vw,4rem);line-height:1.12;margin:var(--s1) 0 0;max-width:12ch}
.contact h2 em{font-style:italic;font-weight:300;color:var(--gold)}
.contact h2 + .h-rule{width:30px;height:1px;background:var(--gold-soft);margin:26px 0 30px}
.c-intro{font-family:var(--serif);font-size:1.15rem;line-height:1.8;color:#4A5158;max-width:40ch;margin-bottom:var(--s2)}
/* Coordonnées — pastilles et lignes */
.c-lines{margin:0 0 var(--s2)}
.c-line{display:grid;grid-template-columns:56px 128px 1fr;gap:22px;align-items:center;padding:15px 0;border-bottom:1px solid #E6DFD0}
.c-line:last-child{border-bottom:0}
@media(max-width:520px){.c-line{grid-template-columns:44px 1fr;grid-template-rows:auto auto}.c-line b{grid-column:2}.c-line .c-val{grid-column:2}}
.c-chip{width:48px;height:48px;border-radius:12px;background:#FFFFFF;border:1px solid #EAE2D2;box-shadow:0 4px 14px rgba(31,41,55,.05);display:grid;place-items:center;color:var(--gold)}
.c-chip svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.c-line b{font-weight:500;font-size:.64rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold)}
.c-line .c-val{font-size:.95rem;color:var(--midnight)}
.c-line .c-val a{text-decoration:none;color:var(--midnight);transition:color .3s}
.c-line .c-val a:hover{color:var(--gold)}
.c-info .note{font-size:.74rem;letter-spacing:.02em;color:#A6ABB2}
/* Carte */
.c-map{position:relative;border-radius:14px;overflow:hidden;border:1px solid #E6DFD0;box-shadow:0 14px 34px rgba(31,41,55,.08);height:290px}
.c-map iframe{width:100%;height:100%;border:0;display:block;filter:saturate(.75)}
.c-map .map-btn{position:absolute;top:16px;left:16px;z-index:2;background:#FFFFFF;border:1px solid #EAE2D2;border-radius:999px;padding:10px 20px;font-family:var(--sans);font-weight:500;font-size:.8rem;color:var(--midnight);text-decoration:none;box-shadow:0 6px 16px rgba(31,41,55,.12);display:inline-flex;align-items:center;gap:8px;transition:transform .3s,box-shadow .3s}
.c-map .map-btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(31,41,55,.16)}
.c-map .map-btn svg{width:14px;height:14px;stroke:var(--midnight);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* Formulaire — champs encadrés */
.f-field{margin-bottom:30px}
.f-field label{display:block;font-family:var(--sans);font-weight:600;font-size:.94rem;color:var(--midnight);margin-bottom:12px}
.in-wrap{position:relative}
.in-wrap .f-ico{position:absolute;left:18px;top:18px;color:var(--gold);pointer-events:none}
.in-wrap .f-ico svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.in-wrap input,.in-wrap textarea{width:100%;border:1px solid #D9C9A3;border-radius:10px;background:#FDFCF9;padding:17px 18px 17px 52px;font-family:var(--sans);font-weight:300;font-size:.95rem;color:var(--ink);transition:border-color .3s,box-shadow .3s}
.in-wrap textarea{min-height:170px;resize:vertical}
.in-wrap input::placeholder,.in-wrap textarea::placeholder{color:#B4B9C0}
.in-wrap input:focus,.in-wrap textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(199,154,59,.14)}
.f-privacy{display:flex;gap:12px;align-items:center;font-size:.84rem;color:#565B62;margin:6px 0 30px}
.f-privacy svg{flex:none;width:18px;height:18px;stroke:var(--gold);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.btn-send{display:inline-flex;align-items:center;justify-content:center;gap:14px;width:100%;background:var(--midnight);color:var(--gold);border:1px solid var(--midnight);border-radius:4px;padding:20px 40px;font-family:var(--sans);font-weight:500;font-size:.8rem;letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;cursor:pointer;box-shadow:4px 4px 0 rgba(199,154,59,.55);transition:transform .3s,box-shadow .3s,background .3s}
.btn-send svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}
.btn-send:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 rgba(199,154,59,.55);background:#0C2440}
.btn-send:hover svg{transform:translateX(4px)}
.form-ok{display:none;margin-top:24px;font-family:var(--serif);font-style:italic;font-size:1.12rem;line-height:1.7;color:var(--forest)}
.form-ok.show{display:block}
.form-ok.is-error{color:#9B2C2C}
.btn-send[disabled]{opacity:.6;cursor:progress}

/* ============ Finale / Footer ============ */
.finale{position:relative;min-height:82vh;display:grid;place-items:center;text-align:center;color:var(--ivory);padding:clamp(10rem,22vh,16rem) 24px;background:
  linear-gradient(rgba(8,28,52,.52),rgba(8,28,52,.9)),
  url('../images/hero.jpg') center 70%/cover no-repeat,var(--midnight)}
.finale h2{color:var(--ivory);font-size:clamp(2.3rem,5vw,4.2rem);line-height:1.22;max-width:20ch;margin:0 auto var(--s3)}
footer{background:var(--midnight);color:rgba(248,246,242,.55);padding:72px 0 48px;font-size:.78rem}
.f-grid{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;flex-wrap:wrap;padding-bottom:44px;border-bottom:1px solid rgba(248,246,242,.08)}
.f-brand .b1{font-family:var(--serif);font-weight:400;font-size:1.2rem;letter-spacing:.22em;color:var(--ivory)}
.f-brand .b2{display:block;font-size:.5rem;letter-spacing:.48em;text-transform:uppercase;color:rgba(248,246,242,.45);margin-top:6px;text-indent:.48em}
.f-nav{display:flex;gap:36px;flex-wrap:wrap;list-style:none}
.f-nav a{font-size:.6rem;letter-spacing:.32em;text-transform:uppercase;text-decoration:none;color:rgba(248,246,242,.55);transition:color .35s}
.f-nav a:hover{color:var(--gold)}
.f-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:30px;font-size:.68rem;letter-spacing:.1em;color:rgba(248,246,242,.35)}

@media(prefers-reduced-motion:reduce){
  .hero-bg{animation:none}
  .hero .label,.hero h1,.hero .sig,.hero .tag,.hero-cta{animation:none}
  .reveal{opacity:1;transform:none;transition:none}
  .about-img:hover .ph{transform:none}
  html{scroll-behavior:auto}
}

/* ============ Sécurité & accessibilité ============ */
/* Champ leurre anti-spam : hors écran, invisible pour les humains */
.hp{position:absolute!important;left:-9999px!important;top:auto!important;width:1px;height:1px;overflow:hidden}
/* États de focus clavier visibles sur tous les éléments interactifs */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}

/* ============ WebP (repli JPEG automatique) ============ */
/* N'est appliqué que si le navigateur comprend image-set() ; sinon les
   déclarations JPEG d'origine ci-dessus restent utilisées telles quelles. */
@supports (background-image: image-set(url("i.webp") type("image/webp"))){
  .hero-bg{background-image:
    linear-gradient(180deg,rgba(8,28,52,.68) 0%,rgba(8,28,52,.28) 42%,rgba(8,28,52,.78) 100%),
    image-set(url('../images/hero.webp') type('image/webp'),url('../images/hero.jpg') type('image/jpeg'))}
  .about-img .ph{background-image:
    image-set(url('../images/about.webp') type('image/webp'),url('../images/about.jpg') type('image/jpeg'))}
  .ch-transport{background-image:
    linear-gradient(100deg,rgba(8,28,52,.9) 0%,rgba(8,28,52,.56) 55%,rgba(8,28,52,.3) 100%),
    image-set(url('../images/transport.webp') type('image/webp'),url('../images/transport.jpg') type('image/jpeg'))}
  .ch-energie{background-image:
    linear-gradient(100deg,rgba(29,29,29,.9) 0%,rgba(49,75,66,.6) 55%,rgba(29,29,29,.34) 100%),
    image-set(url('../images/energie.webp') type('image/webp'),url('../images/energie.jpg') type('image/jpeg'))}
  .ch-commerce{background-image:
    linear-gradient(100deg,rgba(8,28,52,.92) 0%,rgba(8,28,52,.6) 55%,rgba(8,28,52,.32) 100%),
    image-set(url('../images/commerce.webp') type('image/webp'),url('../images/commerce.jpg') type('image/jpeg'))}
  .moment-road{background-image:
    linear-gradient(rgba(8,28,52,.64),rgba(8,28,52,.64)),
    image-set(url('../images/moment-road.webp') type('image/webp'),url('../images/moment-road.jpg') type('image/jpeg'))}
  .mission{background-image:
    linear-gradient(rgba(8,28,52,.91),rgba(8,28,52,.84)),
    image-set(url('../images/mission.webp') type('image/webp'),url('../images/mission.jpg') type('image/jpeg'))}
  .finale{background-image:
    linear-gradient(rgba(8,28,52,.52),rgba(8,28,52,.9)),
    image-set(url('../images/hero.webp') type('image/webp'),url('../images/hero.jpg') type('image/jpeg'))}
}
