/* ============================================================
   DURAN GROUPE — Feuille de style
   Thème sombre luxe · accent champagne · responsive PC + mobile
   ============================================================ */

/* ---------- Fonts (auto-hébergées — zéro dépendance externe) ---------- */
@font-face{font-family:'Cabinet Grotesk';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/cabinet-grotesk-300.woff2') format('woff2');}
@font-face{font-family:'Cabinet Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/cabinet-grotesk-400.woff2') format('woff2');}
@font-face{font-family:'Cabinet Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/cabinet-grotesk-500.woff2') format('woff2');}
@font-face{font-family:'Cabinet Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/cabinet-grotesk-700.woff2') format('woff2');}
@font-face{font-family:'Cabinet Grotesk';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/cabinet-grotesk-800.woff2') format('woff2');}
@font-face{font-family:'Satoshi';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/satoshi-300.woff2') format('woff2');}
@font-face{font-family:'Satoshi';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/satoshi-400.woff2') format('woff2');}
@font-face{font-family:'Satoshi';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/satoshi-500.woff2') format('woff2');}
@font-face{font-family:'Satoshi';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/satoshi-700.woff2') format('woff2');}

/* ---------- Design tokens ---------- */
:root {
  --bg:        #050608;
  --bg-alt:    #0C0F12;
  --bg-card:   #0f1317;
  --ink:       #F8FAFC;
  --muted:     #94A3B8;
  --dim:       #7D8DA1;
  --line:      rgba(255,255,255,.06);
  --line-2:    rgba(255,255,255,.12);
  --gold:      #C5A880;
  --gold-soft: rgba(197,168,128,.6);
  --gold-dim:  rgba(197,168,128,.14);
  --display: "Cabinet Grotesk", "Satoshi", system-ui, sans-serif;
  --body: "Satoshi", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --wrap: 1280px;
  --gut: clamp(20px, 5vw, 72px);
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-padding-top:84px; scroll-behavior:smooth; -webkit-text-size-adjust:100%; overflow-x:clip; }
body {
  background:var(--bg); color:var(--ink);
  font-family:var(--body); font-weight:400;
  line-height:1.6; letter-spacing:.01em;
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
}
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
button { font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
ul { list-style:none; }
::selection { background:var(--gold); color:#000; }

/* ---------- Layout helpers ---------- */
.wrap { max-width:var(--wrap); margin:0 auto; padding-inline:var(--gut); }
.section { position:relative; padding-block:clamp(64px,10vw,140px); border-top:1px solid var(--line); }
.section--alt { background:var(--bg-alt); }
.eyebrow {
  font-size:.72rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold); font-weight:500; margin-bottom:1.4rem;
  display:inline-flex; align-items:center; gap:.7rem;
}
.eyebrow::before { content:""; width:26px; height:1px; background:var(--gold-soft); }
h1,h2,h3 { font-family:var(--display); font-weight:300; line-height:1.05; letter-spacing:-.02em; }
.h-sec { font-size:clamp(1.9rem,4.6vw,3.4rem); max-width:20ch; }
.lead { color:var(--muted); font-size:clamp(1rem,1.6vw,1.18rem); max-width:60ch; margin-top:1.4rem; font-weight:300; }

/* ---------- Buttons ---------- */
.btn {
  display:inline-flex; align-items:center; gap:.6rem;
  padding:.95rem 1.6rem; font-size:.82rem; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase;
  border-radius:2px; transition:.35s var(--ease);
  border:1px solid transparent; white-space:nowrap;
}
.btn--gold { background:var(--gold); color:#0a0a0a; }
.btn--gold:hover { background:#d8bd97; transform:translateY(-2px); }
.btn--ghost { border-color:var(--line-2); color:var(--ink); }
.btn--ghost:hover { border-color:var(--gold); color:var(--gold); }
.btn__arrow { transition:transform .35s var(--ease); }
.btn:hover .btn__arrow { transform:translateX(4px); }

/* ---------- Header ---------- */
.hd {
  position:fixed; inset:0 0 auto 0; z-index:100;
  transition:.4s var(--ease);
  border-bottom:1px solid transparent;
}
.hd.scrolled { background:rgba(5,6,8,.82); backdrop-filter:blur(18px); border-bottom-color:var(--line); }
.hd__in { display:flex; align-items:center; justify-content:space-between; height:74px; }
.brand { display:flex; align-items:baseline; gap:.15rem; font-family:var(--display); font-size:1.35rem; font-weight:500; letter-spacing:.02em; }
.brand span { color:var(--gold); font-weight:300; }
.nav { display:flex; align-items:center; gap:clamp(1rem,2.4vw,2.2rem); }
.nav a { font-size:.82rem; letter-spacing:.04em; color:var(--muted); transition:color .25s; position:relative; }
.nav a:hover { color:var(--ink); }
.nav a::after { content:""; position:absolute; left:0; bottom:-6px; width:0; height:1px; background:var(--gold); transition:width .3s var(--ease); }
.nav a:hover::after { width:100%; }
.hd__actions { display:flex; align-items:center; gap:1.1rem; }
.hd .btn { padding:.7rem 1.15rem; font-size:.72rem; }
.burger { display:none; width:48px; height:48px; position:relative; }
.burger span { position:absolute; left:9px; height:1.5px; width:30px; background:var(--ink); transition:.35s var(--ease); }
.burger span:nth-child(1){top:16px;} .burger span:nth-child(2){top:23px;} .burger span:nth-child(3){top:30px;}
.burger.open span:nth-child(1){top:23px; transform:rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){top:23px; transform:rotate(-45deg);}

/* ---------- Mobile nav ---------- */
.mnav { position:fixed; inset:0; z-index:99; background:rgba(5,6,8,.98); backdrop-filter:blur(10px);
  transform:translateY(-100%); transition:transform .5s var(--ease); display:flex; flex-direction:column;
  padding:var(--gut); overflow-y:auto; }
.mnav > a:first-child { margin-top:auto; }
.mnav .btn { margin-bottom:auto; }
.mnav.open { transform:translateY(0); }
.mnav a { font-family:var(--display); font-size:clamp(1.8rem,7vw,2.6rem); font-weight:300; padding:.35rem 0; color:var(--muted); transition:color .2s; }
.mnav a:hover { color:var(--gold); }
.mnav .btn { margin-top:1.6rem; align-self:flex-start; }

/* ---------- Hero ---------- */
.hero { position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; border:none; }
.hero__bg { position:absolute; inset:0; z-index:0; }
.hero__bg img { width:100%; height:100%; object-fit:cover; opacity:.34; filter:grayscale(.3) contrast(1.05); }
.hero__bg::after { content:""; position:absolute; inset:0;
  background:linear-gradient(90deg,rgba(5,6,8,.96) 0%,rgba(5,6,8,.75) 45%,rgba(5,6,8,.5) 100%),
             linear-gradient(0deg,var(--bg) 2%,transparent 45%); }
.hero__grid { position:absolute; inset:0; z-index:1; opacity:.05;
  background-image:linear-gradient(var(--gold) 1px,transparent 1px),linear-gradient(90deg,var(--gold) 1px,transparent 1px);
  background-size:64px 64px; mask-image:radial-gradient(circle at 30% 40%,#000,transparent 75%); }
.hero__in { position:relative; z-index:2; width:100%; padding-block:120px 60px; }
.hero h1 { font-size:clamp(2.8rem,8.5vw,6.4rem); font-weight:300; letter-spacing:-.03em; margin:1.6rem 0; }
.hero h1 b { font-weight:500; color:var(--gold); }
.hero__lead { color:var(--muted); font-size:clamp(1rem,1.7vw,1.28rem); max-width:56ch; font-weight:300; }
.hero__cta { display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.4rem; }
.hero__bar { margin-top:3rem; font-size:.74rem; letter-spacing:.18em; color:var(--dim); text-transform:uppercase; display:flex; flex-wrap:wrap; gap:.4rem 1.2rem; }
.hero__bar b { color:var(--gold); font-weight:500; }
.hero__stats { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:3.4rem; background:var(--line); border:1px solid var(--line); }
.hero__stats > div { background:var(--bg); padding:1.4rem 1.2rem; }
.hero__stats .v { font-variant-numeric:tabular-nums; font-family:var(--display); font-size:clamp(1.7rem,3.2vw,2.6rem); font-weight:300; color:var(--ink); }
.hero__stats .l { font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--dim); margin-top:.35rem; }
.scroll-ind { position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:3; font-size:.7rem; letter-spacing:.3em; color:var(--dim); text-transform:uppercase; display:flex; flex-direction:column; align-items:center; gap:.6rem; }
.scroll-ind::after { content:""; width:1px; height:38px; background:linear-gradient(var(--gold),transparent); animation:sdown 2s var(--ease) infinite; }
@keyframes sdown { 0%{transform:scaleY(0);transform-origin:top;} 50%{transform:scaleY(1);transform-origin:top;} 51%{transform-origin:bottom;} 100%{transform:scaleY(0);transform-origin:bottom;} }

/* ---------- Section head ---------- */
.shead { max-width:64ch; margin-bottom:clamp(2.4rem,5vw,4rem); }

/* ---------- Filiales ---------- */
.filiales { display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.2rem,3vw,2rem); }
.fil { position:relative; overflow:hidden; border:1px solid var(--line); min-height:clamp(420px,52vw,560px); display:flex; flex-direction:column; justify-content:flex-end; padding:clamp(1.6rem,3vw,2.6rem); isolation:isolate; }
.fil__bg { position:absolute; inset:0; z-index:-2; }
.fil__bg img { width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); filter:grayscale(.5) brightness(.6); }
.fil:hover .fil__bg img { transform:scale(1.06); }
.fil::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,rgba(5,6,8,.95) 8%,rgba(5,6,8,.35) 60%,rgba(5,6,8,.55) 100%); }
.fil__no { position:absolute; top:clamp(1.4rem,3vw,2.2rem); left:clamp(1.6rem,3vw,2.6rem); font-family:var(--display); font-size:.9rem; color:var(--gold-soft); }
.fil__flag { position:absolute; top:clamp(1.4rem,3vw,2.2rem); right:clamp(1.6rem,3vw,2.6rem); font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); }
.fil__logo { height:38px; width:auto; object-fit:contain; object-position:left; margin-bottom:1.1rem; filter:brightness(0) invert(1); opacity:.95; }
.fil h3 { font-size:clamp(1.6rem,3vw,2.2rem); font-weight:400; }
.fil p { color:var(--muted); margin-top:.8rem; font-weight:300; max-width:44ch; font-size:.98rem; }
.fil__meta { display:flex; flex-wrap:wrap; gap:.5rem 1.4rem; margin-top:1.4rem; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); }
.fil__meta b { color:var(--gold); }
.fil__link { margin-top:1.6rem; display:inline-flex; align-items:center; gap:.6rem; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); }
.fil__link .btn__arrow { transition:transform .35s var(--ease); }
.fil:hover .fil__link .btn__arrow { transform:translateX(5px); }

/* ---------- Two-column narrative ---------- */
.two { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:start; }
.two p { color:var(--muted); font-weight:300; margin-top:1.2rem; }
.statgrid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); }
.statgrid > div { background:var(--bg); padding:1.6rem 1.4rem; }
.section--alt .statgrid > div { background:var(--bg-alt); }
.statgrid .v { font-variant-numeric:tabular-nums; font-family:var(--display); font-size:clamp(1.9rem,3.4vw,2.8rem); font-weight:300; }
.statgrid .l { font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--dim); margin-top:.4rem; }

/* ---------- Timeline ---------- */
.tl { display:grid; gap:0; border-top:1px solid var(--line); }
.tl__row { display:grid; grid-template-columns:120px 1fr; gap:clamp(1rem,4vw,3rem); padding:clamp(1.4rem,3vw,2rem) 0; border-bottom:1px solid var(--line); transition:background .3s; }
.tl__row:hover { background:rgba(197,168,128,.03); }
.tl__yr { font-family:var(--display); font-size:clamp(1.4rem,2.6vw,2rem); font-weight:300; color:var(--gold); }
.tl__c h3 { font-size:1.1rem; font-weight:500; font-family:var(--body); }
.tl__c p { color:var(--muted); font-weight:300; margin-top:.5rem; max-width:70ch; font-size:.96rem; }

/* ---------- Cards grid (values, method, expertise) ---------- */
.grid3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.grid4 { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.gcard { background:var(--bg); padding:clamp(1.6rem,3vw,2.4rem); min-height:220px; transition:background .35s; position:relative; }
.section--alt .gcard { background:var(--bg-alt); }
.gcard:hover { background:var(--bg-card); }
.gcard__no { font-family:var(--display); font-size:.9rem; color:var(--gold-soft); }
.gcard h3 { font-size:1.15rem; font-weight:500; font-family:var(--body); margin:1rem 0 .7rem; }
.gcard p { color:var(--muted); font-weight:300; font-size:.94rem; }
.gcard .tag { position:absolute; bottom:1.4rem; left:clamp(1.6rem,3vw,2.4rem); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
.gcard.has-tag { padding-bottom:3.4rem; }

/* ---------- Team ---------- */
.team { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1rem,2.5vw,1.6rem); }
.person__ph { aspect-ratio:3/4; overflow:hidden; border:1px solid var(--line); position:relative; }
.person__ph img { width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05); transition:filter .5s,transform .8s var(--ease); }
.person:hover .person__ph img { filter:grayscale(0); transform:scale(1.04); }
.person__no { position:absolute; top:.9rem; left:.9rem; font-family:var(--display); font-size:.8rem; color:var(--gold); z-index:2; }
.person h3 { font-family:var(--display); font-size:1.25rem; font-weight:400; margin-top:1rem; }
.person .role { font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); margin-top:.4rem; }
.person p { color:var(--muted); font-weight:300; font-size:.86rem; margin-top:.7rem; }

/* ---------- Big number counters ---------- */
.figs { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.fig { background:var(--bg); padding:clamp(1.6rem,3vw,2.4rem) clamp(1.2rem,2.5vw,1.8rem); }
.section--alt .fig { background:var(--bg-alt); }
.fig__no { font-size:.72rem; color:var(--gold-soft); font-family:var(--display); }
.fig .v { font-variant-numeric:tabular-nums; font-family:var(--display); font-size:clamp(2.2rem,4.6vw,3.6rem); font-weight:300; line-height:1; margin:.6rem 0 .5rem; }
.fig .l { font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--dim); }

/* ---------- Réalisations ---------- */
.filters { display:flex; flex-wrap:wrap; gap:1.4rem 2.4rem; margin-bottom:2.4rem; }
.fset { display:flex; align-items:center; gap:.8rem; }
.fset__lbl { font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--dim); }
.chip { font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); padding:.7rem .5rem; min-height:44px; display:inline-flex; align-items:center; border-bottom:1px solid transparent; transition:.25s; }
.chip:hover { color:var(--ink); }
.chip.on { color:var(--gold); border-bottom-color:var(--gold); }
.projects { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.proj { background:var(--bg); position:relative; overflow:hidden; aspect-ratio:4/3; isolation:isolate; }
.section--alt .proj { background:var(--bg-alt); }
.proj img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; filter:grayscale(.6) brightness(.7); transition:transform .9s var(--ease),filter .5s; }
.proj:hover img { transform:scale(1.06); filter:grayscale(0) brightness(.8); }
.proj::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,rgba(5,6,8,.92),transparent 65%); }
.proj__c { position:absolute; inset:auto 0 0 0; padding:1.4rem; }
.proj__tag { font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
.proj h3 { font-family:var(--body); font-size:1.05rem; font-weight:500; margin-top:.4rem; }
.proj .meta { font-size:.72rem; color:var(--muted); margin-top:.3rem; }
.proj.hide { display:none; }

/* ---------- Before / After ---------- */
.ba { display:grid; grid-template-columns:1fr; gap:1.6rem; }
.ba__stage { position:relative; aspect-ratio:16/10; overflow:hidden; border:1px solid var(--line); user-select:none; touch-action:pan-y; }
.ba__img { position:absolute; inset:0; width:100%; height:100%; }
.ba__img img { width:100%; height:100%; object-fit:cover; }
.ba__after { z-index:1; }
.ba__before { z-index:2; clip-path:inset(0 50% 0 0); }
.ba__handle { position:absolute; top:0; bottom:0; left:50%; width:2px; background:var(--gold); z-index:3; transform:translateX(-1px); }
.ba__grip { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:44px; height:44px; border-radius:50%; background:var(--gold); color:#000; display:flex; align-items:center; justify-content:center; font-size:.9rem; box-shadow:0 6px 24px rgba(0,0,0,.5); }
.ba__lbl { position:absolute; top:1rem; font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; padding:.35rem .7rem; background:rgba(5,6,8,.7); color:var(--ink); z-index:4; }
.ba__lbl--b { left:1rem; } .ba__lbl--a { right:1rem; color:var(--gold); }
.ba__tabs { display:flex; flex-wrap:wrap; gap:.6rem; }
.ba__tab { font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); padding:.85rem 1.1rem; min-height:44px; border:1px solid var(--line); transition:.25s; }
.ba__tab.on { border-color:var(--gold); color:var(--gold); }
.ba__cap h3 { font-family:var(--body); font-weight:500; font-size:1.15rem; }
.ba__cap p { color:var(--muted); font-weight:300; margin-top:.6rem; max-width:64ch; }
.ba__cap .kv { display:flex; gap:2.4rem; margin-top:1.2rem; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dim); }
.ba__cap .kv b { display:block; color:var(--gold); margin-top:.2rem; font-weight:500; }

/* ---------- Testimonials ---------- */
.tst { max-width:56ch; }
.tst__q { font-family:var(--display); font-weight:300; font-size:clamp(1.4rem,3vw,2.1rem); line-height:1.35; }
.tst__q::before { content:"“"; color:var(--gold); }
.tst__q::after { content:"”"; color:var(--gold); }
.tst__who { margin-top:1.6rem; font-size:.8rem; letter-spacing:.06em; }
.tst__who b { color:var(--gold); font-weight:500; }
.tst__who span { color:var(--dim); text-transform:uppercase; letter-spacing:.14em; font-size:.68rem; display:block; margin-top:.2rem; }
.tst__nav { display:flex; align-items:center; gap:1.2rem; margin-top:2.4rem; }
.tst__nav button { width:48px; height:48px; border:1px solid var(--line-2); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:.25s; }
.tst__nav button:hover { border-color:var(--gold); color:var(--gold); }
.tst__count { font-size:.74rem; color:var(--dim); font-variant-numeric:tabular-nums; }
.tst__item { display:none; } .tst__item.on { display:block; animation:fade .5s var(--ease); }
@keyframes fade { from{opacity:0;transform:translateY(8px);} to{opacity:1;transform:none;} }

/* ---------- Press ---------- */
.press { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.press a, .press .press__item { background:var(--bg); padding:1.8rem 1.6rem; display:block; transition:background .3s; }
.section--alt .press a, .section--alt .press .press__item { background:var(--bg-alt); }
.press a:hover { background:var(--bg-card); }
.press .src { font-family:var(--display); font-size:1.05rem; color:var(--gold); }
.press h3 { font-family:var(--body); font-weight:400; font-size:.98rem; margin:.7rem 0; color:var(--ink); }
.press .date { font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); }

/* ---------- Cert / badges ---------- */
.badges { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.badge { background:var(--bg); padding:1.6rem 1.2rem; text-align:center; transition:background .3s; }
.section--alt .badge { background:var(--bg-alt); }
.badge:hover { background:var(--bg-card); }
.badge .n { font-family:var(--display); font-size:1.2rem; color:var(--ink); }
.badge .d { font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); margin-top:.5rem; }

/* ---------- Marquee ---------- */
.marquee { overflow:hidden; border-block:1px solid var(--line); padding-block:1.6rem; -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); }
.marquee__t { display:flex; gap:3.4rem; width:max-content; animation:scrollx 34s linear infinite; }
.marquee span { font-family:var(--display); font-size:clamp(1.1rem,2.4vw,1.7rem); color:var(--dim); white-space:nowrap; font-weight:300; }
@keyframes scrollx { to { transform:translateX(-50%); } }

/* ---------- Awards ---------- */
.awards { display:grid; gap:0; border-top:1px solid var(--line); }
.award { display:grid; grid-template-columns:90px 1fr auto; gap:clamp(1rem,3vw,2.4rem); align-items:center; padding:1.6rem 0; border-bottom:1px solid var(--line); transition:background .3s; }
.award:hover { background:rgba(197,168,128,.03); }
.award .yr { font-family:var(--display); font-size:1.5rem; color:var(--gold); }
.award h3 { font-family:var(--body); font-weight:500; font-size:1.05rem; }
.award p { color:var(--muted); font-size:.86rem; font-weight:300; margin-top:.2rem; }
.award .by { font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); text-align:right; }

/* ---------- Présence ---------- */
.cities { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.city { background:var(--bg); padding:clamp(1.8rem,3vw,2.6rem); }
.section--alt .city { background:var(--bg-alt); }
.city .co { font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
.city h3 { font-size:clamp(1.6rem,3vw,2.2rem); font-weight:300; margin:.6rem 0 .8rem; }
.city p { color:var(--muted); font-weight:300; font-size:.92rem; }

/* ---------- FAQ ---------- */
.faq { border-top:1px solid var(--line); }
.faq__item { border-bottom:1px solid var(--line); }
.faq__q { width:100%; text-align:left; display:flex; gap:1.4rem; align-items:baseline; padding:1.5rem 0; font-family:var(--body); }
.faq__q .qn { font-family:var(--display); color:var(--gold); font-size:.9rem; min-width:2.4rem; }
.faq__q .qt { flex:1; font-size:clamp(1rem,1.9vw,1.2rem); font-weight:500; color:var(--ink); }
.faq__q .qi { color:var(--gold); font-size:1.4rem; transition:transform .3s; line-height:1; }
.faq__item.open .qi { transform:rotate(45deg); }
.faq__a { overflow:hidden; max-height:0; transition:max-height .45s var(--ease); }
.faq__a p { color:var(--muted); font-weight:300; padding:0 0 1.6rem 3.8rem; max-width:80ch; }

/* ---------- Actualités ---------- */
.posts { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2.5vw,1.6rem); }
.post { border:1px solid var(--line); overflow:hidden; transition:border-color .3s; display:flex; flex-direction:column; }
.post:hover { border-color:var(--line-2); }
.post__ph { aspect-ratio:16/10; overflow:hidden; }
.post__ph img { width:100%; height:100%; object-fit:cover; filter:grayscale(.4) brightness(.8); transition:transform .8s var(--ease),filter .5s; }
.post:hover .post__ph img { transform:scale(1.05); filter:grayscale(0) brightness(.9); }
.post__c { padding:1.6rem; flex:1; display:flex; flex-direction:column; }
.post__cat { font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
.post h3 { font-family:var(--body); font-weight:500; font-size:1.08rem; margin:.8rem 0; line-height:1.35; }
.post p { color:var(--muted); font-weight:300; font-size:.9rem; flex:1; }
.post__foot { margin-top:1.2rem; display:flex; justify-content:space-between; align-items:center; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--dim); }
.post__foot .rd { color:var(--gold); }

/* ---------- Careers ---------- */
.jobs { border-top:1px solid var(--line); }
.job { display:grid; grid-template-columns:1fr auto auto; gap:1.4rem; align-items:center; padding:1.5rem 0; border-bottom:1px solid var(--line); transition:padding-left .3s,background .3s; }
.job:hover { background:rgba(197,168,128,.03); padding-left:1rem; }
.job h3 { font-family:var(--display); font-weight:400; font-size:clamp(1.1rem,2.2vw,1.5rem); }
.job .loc { font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.job .go { color:var(--gold); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; display:flex; gap:.5rem; align-items:center; }
.job:hover .go .btn__arrow { transform:translateX(5px); }

/* ---------- Contact ---------- */
.contact { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,5vw,4.5rem); align-items:start; }
.contact__info .row { padding:1.2rem 0; border-bottom:1px solid var(--line); }
.contact__info .k { font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--dim); }
.contact__info .v { font-size:1.05rem; margin-top:.35rem; color:var(--ink); }
.contact__info .v a:hover { color:var(--gold); }
form .fg { margin-bottom:1.3rem; }
form label { display:block; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:.55rem; }
form input, form select, form textarea {
  width:100%; background:transparent; border:1px solid var(--line-2); color:var(--ink);
  padding:.85rem 1rem; font-family:inherit; font-size:.95rem; border-radius:2px; transition:border-color .25s;
}
form input:focus, form select:focus, form textarea:focus { outline:none; border-color:var(--gold); }
form select { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23C5A880' fill='none' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; }
form option { background:var(--bg-alt); }
form textarea { min-height:130px; resize:vertical; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1.3rem; }
.form-note { font-size:.78rem; color:var(--dim); margin-top:1rem; }
.calendly-box { margin-top:2.4rem; border:1px solid var(--line); padding:1.8rem; background:var(--bg-card); }
.calendly-box h3 { font-family:var(--display); font-weight:400; font-size:1.3rem; }
.calendly-box p { color:var(--muted); font-weight:300; margin:.6rem 0 1.2rem; font-size:.92rem; }

/* ---------- Footer ---------- */
.foot { background:var(--bg); border-top:1px solid var(--line); }
.foot__bar { display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; justify-content:center; padding:1.4rem 0; border-bottom:1px solid var(--line); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--dim); }
.foot__bar b { color:var(--gold); }
.foot__main { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:2rem; padding-block:clamp(2.6rem,5vw,4rem); }
.foot__brand .brand { font-size:1.6rem; }
.foot__brand p { color:var(--muted); font-weight:300; margin-top:1rem; max-width:34ch; font-size:.92rem; }
.foot__col a, .foot__col p:not(.foot__title) { display:block; color:var(--muted); font-size:.9rem; padding:.25rem 0; font-weight:300; }
.foot__col a:hover { color:var(--gold); }
.foot__legal { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; padding:1.5rem 0; border-top:1px solid var(--line); font-size:.72rem; color:var(--dim); }
.foot__legal a { padding:.6rem .8rem; display:inline-block; } .foot__legal a:hover { color:var(--gold); }

/* ---------- Reveal on scroll ---------- */
html.js .rv { opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease),transform .8s var(--ease); }
html.js .rv.in { opacity:1; transform:none; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  .team,.grid4,.figs,.badges { grid-template-columns:repeat(2,1fr); }
  .foot__main { grid-template-columns:1fr 1fr; }
}
@media (max-width:860px){
  .nav, .hd__actions .btn { display:none; }
  .burger { display:block; }
  .filiales,.two,.projects,.posts,.cities,.grid3,.contact { grid-template-columns:1fr; }
  .hero__stats { grid-template-columns:repeat(2,1fr); }
  .tl__row { grid-template-columns:70px 1fr; }
  .award { grid-template-columns:60px 1fr; } .award .by { grid-column:2; text-align:left; }
  .job { grid-template-columns:1fr auto; } .job .loc { grid-column:1; grid-row:2; }
  .form-row { grid-template-columns:1fr; }
}
@media (max-width:560px){
  .team,.grid4,.figs,.badges,.statgrid,.hero__stats { grid-template-columns:1fr 1fr; }
  .foot__main { grid-template-columns:1fr; }
  .foot__legal { flex-direction:column; align-items:center; text-align:center; }
  .faq__a p { padding-left:0; }
}
@media (prefers-reduced-motion:reduce){
  * { animation:none !important; transition:none !important; }
  html.js .rv { opacity:1; transform:none; }
}


/* ---------- Slogan hero ---------- */
.hero__slogan { font-style:normal; color:var(--gold); font-weight:500; display:block; margin-bottom:.5rem; }

/* ---------- Zones d'intervention (SEO local) ---------- */
.zones { color:var(--muted); font-weight:300; margin-top:2.4rem; max-width:78ch; font-size:.95rem; }
.zones strong { color:var(--ink); font-weight:500; }

/* ---------- Titres de cartes (h3 sémantiques, style conservé) ---------- */
.tl__c h3,.gcard h3,.proj h3,.press h3,.award h3,.post h3,.ba__cap h3 { line-height:1.35; letter-spacing:.01em; }
.foot__title { font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--dim); margin-bottom:1.1rem; font-weight:500; padding:0; }

/* ---------- Barre d'action mobile ---------- */
.mcta { display:none; }
@media (max-width:860px){
  .mcta {
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:98;
    background:rgba(5,6,8,.92); backdrop-filter:blur(12px);
    border-top:1px solid var(--line-2);
    padding:.55rem var(--gut) calc(.55rem + env(safe-area-inset-bottom));
    gap:.6rem;
  }
  .mcta__btn {
    flex:1; display:flex; align-items:center; justify-content:center;
    min-height:48px; font-size:.76rem; letter-spacing:.1em;
    text-transform:uppercase; font-weight:500; border-radius:2px;
  }
  .mcta__btn--call { background:var(--gold); color:#0a0a0a; }
  .mcta__btn--wa { border:1px solid var(--line-2); color:var(--ink); }
  .mcta__btn--devis { border:1px solid var(--gold); color:var(--gold); }
  body { padding-bottom:72px; }
  .scroll-ind { display:none; }
  .mnav.open ~ .mcta { display:none; }
  form input, form select, form textarea { font-size:16px; }
}


/* ---------- Classes issues de la passe de finition ---------- */
.statgrid--mt { margin-top:2rem; }
.grid1 { display:grid; grid-template-columns:1fr; gap:1px; background:var(--line); border:1px solid var(--line); }
.gcard--row { min-height:auto; }
.gcard--row h3 { margin-bottom:0; }
.section--compact { padding-block:clamp(48px,7vw,90px); }
.section--compact .shead { margin-bottom:2.4rem; }


/* ---------- Sélecteur de langue ---------- */
.lang { display:flex; align-items:center; gap:.15rem; font-size:.72rem; letter-spacing:.1em; }
.lang a { color:var(--dim); padding:.5rem .45rem; transition:color .2s; }
.lang a:hover { color:var(--ink); }
.lang a.on { color:var(--gold); }
