/* Main stylesheet (mutualisé) */
:root{
  /* Typography */
  --serif:'roca','Georgia',serif;
  --mono:'DM Mono',monospace;
  --sans:'Satoshi',sans-serif;

  /* Neutrals */
  --ink:#1A1714;
  --t:#1A1A18;
  --tm:#5C5C56;
  --tl:#9A9A94;

  /* Home accents */
  --acc:#FF6B1A;
  --acc2:#FF4500;
  --accbg:#FFF3EA;

  /* Surfaces */
  --bg:#F5F2E8;
  --card:#FFFFFF;
  --off:#FFFBEF;
  --hero:#FFFDED;
  --wh:#FFFFFF;
  --bl:#EBEBEB;
  --bm:#DADAD6;

  /* Brand / UI */
  --muted:#8A8076;
  --orange:#E84E1B;
  --blue:#2D5BE3;
  --blue-lt:#EBF0FF;
  --border:rgba(26,23,20,0.08);
  --radius:20px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body.home{font-family:var(--sans);font-size:16px;line-height:1.6;overflow-x:hidden;background:#FFFDED;color:var(--t)}
::-webkit-scrollbar{width:2px}
::-webkit-scrollbar-thumb{background:#A0F1BD}
body.home .reveal{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
body.home .reveal.visible{opacity:1;transform:translateY(0)}
body.home .d1{transition-delay:.08s}
body.home .d2{transition-delay:.16s}
body.home .d3{transition-delay:.24s}
body.home .page{display:none}
body.home .page.active{display:block}
body.home .ppage{display:none}
body.home .ppage.active{display:block}
body.home #page-home{display:block}
body.home nav#nav{position:fixed;top:0;left:0;right:0;z-index:200;height:64px;padding:0 48px;display:flex;align-items:center;justify-content:space-between;transition:background .3s,box-shadow .3s}
body.home nav#nav.scrolled{background:rgba(255,253,237,.92);backdrop-filter:blur(16px);box-shadow:0 1px 0 rgba(0,0,0,.06)}
body.home #nav-logo-btn{display:flex;align-items:center;cursor:pointer;background:none;border:none;padding:0;opacity:0;pointer-events:none;transition:opacity .35s,transform .35s;transform:translateY(-8px)}
body.home #nav-logo-btn.show{opacity:1;pointer-events:auto;transform:translateY(0)}
body.home #nav-logo-btn .logo-svg{height:32px;width:auto;color:var(--t)}
body.home .side-nav{position:fixed;right:32px;top:50%;transform:translateY(-50%);z-index:100;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
body.home .sni{display:flex;align-items:center;gap:10px;cursor:pointer;padding:4px 0;background:none;border:none;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,0.5);transition:color .2s}
body.home .side-nav.on-light .sni{color:rgba(26,23,20,0.35)}
body.home .sni:hover,body.home .sni.active{color:#fff}
body.home .side-nav.on-light .sni:hover,body.home .side-nav.on-light .sni.active{color:#1A1714}
body.home .sni span{opacity:0;transform:translateX(6px);transition:opacity .2s,transform .2s;white-space:nowrap;pointer-events:none}
body.home .sni:hover span,body.home .sni.active span{opacity:1;transform:translateX(0)}
body.home .sdot{width:6px;height:6px;border-radius:50%;border:1.5px solid currentColor;flex-shrink:0;transition:background .2s}
body.home .sni.active .sdot,body.home .sni:hover .sdot{background:currentColor}
body.home section{padding:96px 48px 96px 120px}
body.home #hero{padding:120px 120px 96px}
body.home .smax{max-width:1600px;margin:0 auto}
body.home .stag{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--acc);margin-bottom:12px;display:block}
body.home .stitle{font-family:'roca',sans-serif;font-size:32px;font-weight:700;letter-spacing:-.028em;line-height:1.2;color:var(--t);margin-bottom:48px}
body.home .stitle em{font-style:normal;background:linear-gradient(90deg,var(--acc),var(--acc2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
body.home .exp-layout{display:grid;grid-template-columns:3fr 2fr;gap:72px;align-items:start}
body.home .exp-text{font-family:var(--sans);font-size:16px;font-weight:400;line-height:1.85;color:var(--tm)}
body.home .exp-text p+p{margin-top:18px}
body.home .exp-text strong{color:var(--t);font-weight:600}
body.home .exp-side{position:sticky;top:80px}
body.home .pt{font-family:var(--mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--tl);margin-bottom:14px}
body.home .pills{display:flex;flex-wrap:wrap;gap:8px}
body.home .pill{font-family:var(--mono);font-size:11px;letter-spacing:.05em;color:var(--tm);border:1px solid var(--bm);border-radius:100px;padding:5px 14px;cursor:default}
body.home .pgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
body.home .pc{background:var(--wh);border:1px solid var(--bl);border-radius:20px;padding:36px;cursor:pointer;position:relative;overflow:hidden;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s,border-color .2s}
body.home .pc::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--acc),var(--acc2));transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.16,1,.3,1)}
body.home .pc:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.08);border-color:rgba(255,107,26,.2)}
body.home .pc:hover .pcat{ color: var(--acc); }
body.home .pc:hover .bm{ color: var(--acc); }
body.home .pc:hover .piv{ background: linear-gradient(90deg,var(--acc),var(--acc2)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
body.home .pc:hover::after{transform:scaleX(1)}
body.home .pc.feat{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
body.home .pi{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--tl);margin-bottom:20px}
body.home .pcat{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc);margin-bottom:10px}
body.home .pn{font-family:'roca',sans-serif;font-size:clamp(22px,3vw,36px);font-weight:700;letter-spacing:-.025em;line-height:1.1;color:var(--t);margin-bottom:14px}
body.home .pd{font-family:var(--sans);font-size:14px;font-weight:400;color:var(--tm);line-height:1.7;margin-bottom:28px;max-width:400px}
body.home .pir{display:flex;gap:24px;margin-bottom:28px}
body.home .piv{font-family:'roca',sans-serif;font-size:22px;font-weight:700;letter-spacing:-.02em;background:linear-gradient(90deg,var(--acc),var(--acc2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}
body.home .pik{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--tl)}
body.home .bm{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--acc);cursor:pointer;background:none;border:none;padding:0;transition:gap .2s}
body.home .bm::after{content:'→'}
body.home .bm:hover{gap:14px}
body.home .pvis{aspect-ratio:16/10;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative;background:var(--bl)}
body.home .vlb{font-size:56px;font-weight:700;opacity:.1;color:var(--t);user-select:none}
body.home #projects{background:var(--off)}
body.home hr{border:none;border-top:1px solid var(--bl);margin:0 120px;}
body.home .proc-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}
body.home .proc-i{padding:32px 26px;border:1px solid var(--bl);border-radius:16px;background:var(--off);position:relative;overflow:hidden;transition:border-color .2s}
body.home .proc-n{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--acc);margin-bottom:16px;opacity:.65}
body.home .proc-t{font-family:'roca',sans-serif;font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--t);margin-bottom:10px}
body.home .proc-d{font-family:var(--sans);font-size:14px;font-weight:400;color:var(--tm);line-height:1.65}
body.home #contact{background:#2D5BE3;padding:100px 48px 160px 120px}
body.home .ct{font-family:'roca',sans-serif;font-size:clamp(40px,7vw,90px);font-weight:700;letter-spacing:-.035em;line-height:1;color:#fff;margin-bottom:20px}
body.home .ct em{font-style:normal;color:rgba(255,255,255,0.65);background:none;-webkit-text-fill-color:unset}
body.home .csub{font-family:var(--sans);font-size:16px;font-weight:400;color:rgba(255,255,255,0.65);max-width:420px;margin-bottom:36px;line-height:1.7}
body.home .cls{display:flex;gap:24px;flex-wrap:wrap;margin-top:28px}
body.home .cls a{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--tm);text-decoration:none;border-bottom:1px solid var(--bl);padding-bottom:3px;transition:color .2s,border-color .2s}
body.home .cls a:hover{color:var(--acc);border-color:var(--acc)}
body.home footer{padding:20px 24px;display:flex;justify-content:space-between;align-items:center}
body.home footer p{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--tl)}
body.home .phero{min-height:50vh;background:var(--hero);display:flex;flex-direction:column;justify-content:flex-end;padding:120px 48px 68px;border-bottom:1px solid var(--bl);position:relative}
body.home .back-btn{position:absolute;top:90px;left:48px;display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--tl);cursor:pointer;border:none;background:none;transition:color .2s}
body.home .back-btn:hover{color:var(--acc)}
body.home .back-btn::before{content:'← '}
body.home .pptag{font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--acc);margin-bottom:14px}
body.home .pptitle{font-family:'roca',sans-serif;font-size:clamp(44px,8vw,100px);font-weight:700;letter-spacing:-.035em;line-height:.95;color:var(--t);margin-bottom:20px}
body.home .pptitle em{font-style:normal;background:linear-gradient(90deg,var(--acc),var(--acc2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
body.home .ppsub{font-family:var(--sans);font-size:18px;font-weight:400;color:var(--tm)}
body.home .pmeta{display:flex;gap:40px;flex-wrap:wrap;padding:30px 48px;border-bottom:1px solid var(--bl);background:var(--off)}
body.home .ml{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--tl);margin-bottom:5px}
body.home .mv{font-family:var(--sans);font-size:14px;font-weight:400;color:var(--t)}
body.home .cs2{padding:52px 48px;border-bottom:1px solid var(--bl)}
body.home .cs2:last-of-type{border-bottom:none}
body.home .cg{display:grid;grid-template-columns:190px 1fr;gap:52px}
body.home .clb{font-family:var(--mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--acc);opacity:.8}
body.home .cb{font-family:var(--sans);font-size:16px;font-weight:400;line-height:1.85;color:var(--tm)}
body.home .cb p+p{margin-top:18px}
body.home .cb strong{color:var(--acc)}
body.home .krow{display:flex;gap:28px;flex-wrap:wrap;padding:28px;background:var(--accbg);border:1px solid rgba(255,107,26,.15);border-radius:12px;margin-top:26px}
body.home .ki{flex:1;min-width:110px}
body.home .kv{font-family:'roca',sans-serif;font-size:22px;font-weight:700;letter-spacing:-.02em;background:linear-gradient(90deg,var(--acc),var(--acc2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;margin-bottom:4px}
body.home .kn{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--tl)}
body.home .bback{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--tl);cursor:pointer;border:1px solid var(--bl);background:none;padding:10px 20px;border-radius:100px;transition:all .2s}
body.home .bback::before{content:'← '}
body.home .bback:hover{color:var(--acc);border-color:var(--acc)}
body.home section{ scroll-margin-top: 80px; }
body.home #hero{ scroll-margin-top: 0; }
body.home #contact .btn-dark{ background: #fff; color: #2D5BE3; border-color: #fff; }
body.home #contact .btn-dark:hover{ background: #1A1714; border-color: #1A1714; color: #fff; }
body.home #contact .btn-outline{ color: rgba(255,255,255,0.7); border-color: rgba(255,255,255,0.3); }
body.home #contact .btn-outline:hover{ border-color: #fff; color: #fff; }
body.home .smax{ padding-right: 140px; }
body.home /* ════════════════════════════════
       BUTTON COMPONENT
       Usage:
         <a class="btn btn-dark"    href="…">Label</a>
         <a class="btn btn-outline" href="…">Label</a>
       ════════════════════════════════ */
    .btn{
      display: inline-flex; align-items: center; gap: 7px;
      padding: 0 22px; height: 42px; border-radius: 100px;
      font-family: var(--mono); font-size: 12px; font-weight: 400; letter-spacing: .04em;
      text-decoration: none; border: 1.5px solid transparent;
      cursor: pointer; transition: background .22s, border-color .22s, color .22s, transform .22s;
      }
body.home /* nowrap removed */

    /* Variant — Dark (filled) */
    .btn-dark{
      background: var(--t);
      color: var(--hero);
      border-color: var(--t);
    }
body.home .btn-dark:hover{
      background: #2E5BE3;
      border-color: #2E5BE3;
      color: #fff;
      transform: translateY(-2px);
    }
body.home /* Dark variant for light backgrounds */
    .btn-ink{ background: var(--t); color: var(--hero); border-color: var(--t); }
body.home .btn-ink:hover{ background: #2E5BE3; border-color: #2E5BE3; color: #fff; transform: translateY(-2px); }
body.home /* Variant — Outline (ghost) — default for light backgrounds */
    .btn-outline{
      background: transparent;
      color: var(--t);
      border-color: rgba(26,26,24,0.2);
    }
body.home .btn-outline:hover{
      background: transparent;
      border-color: #2E5BE3;
      color: #2E5BE3;
      transform: translateY(-2px);
    }
body.home /* Outline on dark backgrounds (hero + sticky header) */
    #hero .btn-outline,body.home #sticky-header .btn-outline{ color: rgba(255,255,255,0.7); border-color: rgba(255,255,255,0.25); }
body.home #sticky-header .btn-outline:hover{ border-color: rgba(255,255,255,0.8); color: #fff; transform: translateY(-2px); }
body.home #hero .btn-outline:hover{ border-color: #2E5BE3; color: #fff; background: transparent; transform: translateY(-2px); }
body.home .ico-btn{
      width: 42px; height: 42px; border-radius: 100px;
      border: 1.5px solid rgba(20,17,12,0.2); background: transparent; color: var(--t);
      display: inline-flex; align-items: center; justify-content: center;
      text-decoration: none; cursor: pointer; transition: all .22s;
    }
body.home .ico-btn:hover{ border-color: #2E5BE3; color: #2E5BE3; transform: translateY(-2px); }
body.home .ico-btn svg{ width: 17px; height: 17px; }
body.home /* ════════════════════════════════
       HERO
    ════════════════════════════════ */
    #hero{
      min-height: 100vh;
      background: #1A1714;
      display: flex; flex-direction: column; justify-content: flex-end;
      padding: 0;
      position: relative;
      overflow: hidden;
    }
body.home .hero-bg-num{
      position: absolute;
      right: -60px; top: 50%;
      transform: translateY(-50%);
      width: clamp(400px, 55vw, 700px);
      color: rgba(255,255,255,0.04);
      pointer-events: none; user-select: none;
    }
body.home .hero-logo-wrap{ margin-bottom: 0; }
body.home .hero-logo-wrap svg{ height: 72px; width: auto; color: rgba(255,255,255,0.9); }
body.home .hero-content{
      padding: 120px 120px 0;
      position: relative; z-index: 1;
      flex: 1;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding-bottom: 56px;
    }
body.home .hero-name{
      font-family: var(--mono);
      font-size: 10px; letter-spacing: .2em; text-transform: uppercase;
      color: var(--acc); margin-bottom: 28px; display: block;
    }
body.home .hero-title{
      font-family: 'roca', sans-serif;
      font-size: clamp(48px, 6.5vw, 96px);
      font-weight: 900; letter-spacing: -.03em; line-height: .97;
      color: #F5F1EB; max-width: none; margin-bottom: 56px;
    }
body.home .hero-title em{ font-style: normal; color: #FF6B1A; }
body.home .hero-cta-row { display: flex; gap: 12px; align-items: center; }
body.home .btn-dark{ background: #F5F1EB; color: #1A1714; border-color: #F5F1EB; }
body.home .btn-dark:hover{ background: #2E5BE3; border-color: #2E5BE3; color: #fff; transform: translateY(-2px); }

*, *::before, *::after{ box-sizing: border-box; margin: 0; padding: 0; }
html{ scroll-behavior: smooth; }
body.project{
      background: var(--bg);
      color: var(--ink);
      font-family: var(--sans);
      font-weight: 300;
      line-height: 1.6;
      overflow-x: hidden;
    }
body.project /* ─── NAV ─── */
    nav{
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 100;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 22px 56px;
      background: rgba(26,23,20,0.9);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      transition: box-shadow 0.3s;
    }
body.project nav.scrolled{ box-shadow: 0 1px 0 rgba(245,242,232,0.08); }
body.project .nav-back{
      display: flex;
      align-items: center;
      gap: 8px;
      text-decoration: none;
      color: rgba(245,242,232,0.45);
      font-family: var(--mono);
      font-size: 12px;
      letter-spacing: 0.06em;
      transition: color 0.2s;
    }
body.project .nav-back:hover{ color: var(--bg); }
body.project .nav-back svg{ transition: transform 0.2s; }
body.project .nav-back:hover svg{ transform: translateX(-3px); }
body.project .nav-center{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.1em;
      color: rgba(245,242,232,0.45);
      opacity: 0;
      transition: opacity 0.4s;
    }
body.project nav.scrolled .nav-center{ opacity: 1; }


/* project-agicap */
body.project-agicap /* ─── BACK BUTTON (text + icon,body.project-agicap no border) ─── */
    .btn-back{
      display: inline-flex;
      align-items: center;
      gap: 7px;
      font-family: var(--mono);
      font-size: 12px;
      font-weight: 400;
      text-decoration: none;
      background: transparent;
      border: none;
      cursor: pointer;
      transition: all .22s;
    }
body.project-agicap .btn-back svg{ transition: transform 0.22s; }
body.project-agicap .btn-back:hover svg{ transform: translateX(-3px); }
body.project-agicap .btn-back--dark{ color: rgba(255,255,255,0.7); }
body.project-agicap .btn-back--dark:hover{ color: #fff; }
body.project-agicap .btn-back--light{ color: var(--muted); }
body.project-agicap .btn-back--light:hover{ color: var(--ink); }
body.project-agicap /* ─── CTA BUTTON (bordered,body.project-agicap "BOOK A 30' SLOT") ─── */
    .btn-cta{
      display: inline-flex;
      align-items: center;
      gap: 7px;
      height: 42px;
      padding: 0 22px;
      border-radius: 100px;
      font-family: var(--mono);
      font-size: 12px;
      font-weight: 400;
      text-decoration: none;
      background: transparent;
      cursor: pointer;
      transition: all .22s;
      color: rgba(255,255,255,0.7);
      border: 1.5px solid rgba(255,255,255,0.25);
    }
body.project-agicap .btn-cta:hover{
      border-color: rgba(255,255,255,0.8);
      color: #fff;
      transform: translateY(-2px);
    }
body.project-agicap /* ─── HERO ─── */
    .hero{
      min-height: 100vh;
      background: #1A1714;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding: 0 56px 0;
      position: relative;
      overflow: hidden;
    }
body.project-agicap .hero-bg-num{
      position: absolute;
      top: 50%; right: 56px;
      transform: translateY(-55%);
      font-family: var(--serif);
      font-weight: 900;
      font-size: clamp(280px, 30vw, 480px);
      line-height: 1;
      color: rgba(245,242,232,0.04);
      pointer-events: none;
      z-index: 0;
      letter-spacing: -0.04em;
    }
body.project-agicap .hero-content{
      position: relative;
      z-index: 1;
      padding-top: 120px;
      display: flex;
      flex-direction: column;
      flex: 1;
      justify-content: flex-end;
      padding-bottom: 0;
    }
body.project-agicap .hero-tag{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.12em;
      color: var(--orange);
      margin-bottom: 28px;
      display: block;
      opacity: 0;
      transform: translateY(12px);
      animation: up 0.6s 0.1s forwards;
    }
body.project-agicap .hero-title{
      font-family: var(--serif);
      font-size: clamp(56px, 7.5vw, 120px);
      font-weight: 900;
      line-height: 0.95;
      letter-spacing: -0.03em;
      color: var(--bg);
      margin-bottom: 56px;
      opacity: 0;
      transform: translateY(16px);
      animation: up 0.7s 0.2s forwards;
    }
body.project-agicap .hero-title .italic{
      font-style: normal;
      font-weight: 300;
      color: var(--orange);
    }
body.project-agicap .hero-sub-tag{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.12em;
      color: rgba(245,242,232,0.5);
      display: block;
      margin-top: 20px;
      margin-bottom: 56px;
      opacity: 0;
      transform: translateY(12px);
      animation: up 0.6s 0.3s forwards;
    }
body.project-agicap /* ─── KPI STRIP ─── */
    .kpi-strip{
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 0;
      border-top: 1px solid rgba(245,242,232,0.1);
      margin: 0 -56px;
      padding: 0;
      opacity: 0;
      transform: translateY(16px);
      animation: up 0.7s 0.4s forwards;
    }
body.project-agicap .kpi-card{
      background: rgba(245,242,232,0.04);
      border-radius: 0;
      border: none;
      border-right: 1px solid rgba(245,242,232,0.1);
      padding: 36px 56px;
      position: relative;
      overflow: hidden;
      transition: background 0.2s;
    }
body.project-agicap .kpi-card:last-child{ border-right: none; }
body.project-agicap .kpi-card:hover{ background: rgba(245,242,232,0.07); }
body.project-agicap .kpi-card::after{
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 2px;
      background: var(--orange);
      opacity: 0;
      transition: opacity 0.2s;
    }
body.project-agicap .kpi-card:hover::after{ opacity: 1; }
body.project-agicap .kpi-num{
      font-family: var(--serif);
      font-size: clamp(36px, 4vw, 56px);
      font-weight: 900;
      color: var(--bg);
      line-height: 1;
      margin-bottom: 10px;
    }
body.project-agicap .kpi-desc{
      font-family: var(--mono);
      font-size: 10px;
      letter-spacing: 0.12em;
      color: rgba(245,242,232,0.35);
      line-height: 1.6;
      text-transform: uppercase;
    }
body.project-agicap /* ─── HERO IMAGE ─── */
    .hero-img-wrap{
      padding: 0 56px;
      margin-bottom: 96px;
    }
body.project-agicap .scroll-imgs{
      display: flex;
      gap: 20px;
      margin-top: 48px;
      overflow-x: auto;
      padding: 0 56px 12px;
      margin-left: -56px;
      margin-right: -56px;
      scrollbar-width: none;
    }
body.project-agicap .scroll-imgs::-webkit-scrollbar{ display: none; }
body.project-agicap .scroll-img-col{
      display: flex;
      flex-direction: column;
      gap: 12px;
      flex: 0 0 calc((100vw - 56px * 2 - 20px * 2) / 2.4);
    }
body.project-agicap .img-scroll{
      width: 100%;
      height: 280px;
    }
body.project-agicap .img-col{
      display: flex;
      flex-direction: column;
      gap: 12px;
    }
body.project-agicap .img-caption{
      font-family: 'Satoshi', sans-serif;
      font-size: 12px;
      color: var(--muted);
      line-height: 1.6;
      padding: 0 4px;
    }
body.project-agicap .img-placeholder{
      background: linear-gradient(135deg, #E8E3D6 0%, #D5CFC0 100%);
      border-radius: var(--radius);
      border: 1px solid var(--border);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 12px;
      position: relative;
      overflow: hidden;
    }
body.project-agicap .img-placeholder::before{
      content: '';
      position: absolute;
      inset: 0;
      background: repeating-linear-gradient(
        -45deg,
        transparent, transparent 24px,
        rgba(0,0,0,0.018) 24px, rgba(0,0,0,0.018) 25px
      );
    }
body.project-agicap .img-placeholder .ph-icon{
      position: relative;
      z-index: 1;
      width: 40px; height: 40px;
      opacity: 0.3;
    }
body.project-agicap .img-placeholder span{
      position: relative;
      z-index: 1;
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.1em;
      color: var(--muted);
    }
body.project-agicap .img-full{ width: 100%; height: 520px; }
body.project-agicap .img-half{ width: 100%; height: 360px; }
body.project-agicap /* ─── SECTIONS ─── */
    section{
      padding: 80px 56px;
    }
body.project-agicap .s-tag{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.12em;
      color: var(--muted);
      margin-bottom: 20px;
      display: block;
    }
body.project-agicap .s-title{
      font-family: var(--serif);
      font-size: clamp(36px, 4vw, 56px);
      font-weight: 900;
      line-height: 1.05;
      letter-spacing: -0.02em;
      margin-bottom: 32px;
    }
body.project-agicap .s-title .it{ font-style: normal; font-weight: 700; }
body.project-agicap .s-title .orange{ color: var(--orange); }
body.project-agicap .s-title .blue{ color: var(--blue); }
body.project-agicap .s-body{
      font-family: 'Satoshi', sans-serif;
      font-size: 14px;
      font-weight: 400;
      color: var(--muted);
      line-height: 1.75;
      max-width: 640px;
    }
body.project-agicap .s-body p + p{ margin-top: 20px; }
body.project-agicap /* layout avec label flottant à gauche */
    .s-layout{
      display: grid;
      grid-template-columns: 180px 1fr;
      gap: 64px;
      align-items: start;
    }
body.project-agicap .s-layout-label{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.12em;
      color: var(--muted);
      padding-top: 8px;
      text-transform: uppercase;
    }
body.project-agicap /* ─── SEPARATOR ─── */
    hr{
      border: none;
      border-top: 1px solid var(--border);
      margin: 0 56px;
    }
body.project-agicap /* ─── DOUBLE IMAGES ─── */
    .img-row{
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
      margin-top: 48px;
    }
body.project-agicap .learnings{
      display: flex;
      flex-direction: column;
      gap: 8px;
      margin: 4px 0 16px;
    }
body.project-agicap .learning{
      font-family: 'Satoshi', sans-serif;
      font-size: 14px;
      line-height: 1.7;
      color: var(--muted);
    }
body.project-agicap .learning strong{
      color: #1A1714;
      font-weight: 700;
    }
body.project-agicap /* ─── PROCESS CARDS ─── */
    .process-grid{
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 16px;
      margin-top: 48px;
    }
body.project-agicap .process-card{
      background: var(--card);
      border-radius: var(--radius);
      border: 1px solid var(--border);
      padding: 32px 28px 36px;
    }
body.project-agicap .pc-num{
      font-family: var(--mono);
      font-size: 11px;
      color: var(--muted);
      letter-spacing: 0.1em;
      margin-bottom: 20px;
      display: block;
    }
body.project-agicap .pc-title{
      font-family: var(--serif);
      font-size: 22px;
      font-weight: 700;
      margin-bottom: 14px;
      line-height: 1.2;
    }
body.project-agicap .pc-desc{
      font-size: 14px;
      color: var(--muted);
      line-height: 1.65;
    }
body.project-agicap /* ─── INSIGHT CARD ─── */
    .insight-wrap{
      padding: 0 56px;
      margin: 16px 0 40px;
    }
body.project-agicap .insight-card{
      background: #1A1714;
      color: var(--bg);
      border-radius: var(--radius);
      padding: 72px 80px;
      position: relative;
      overflow: hidden;
    }
body.project-agicap .insight-card:not(.insight-card--split)::before{
      content: '"';
      font-family: var(--serif);
      font-size: 280px;
      color: rgba(255,255,255,0.05);
      position: absolute;
      top: -40px; left: 52px;
      line-height: 1;
    }
body.project-agicap .insight-card blockquote{
      font-family: var(--serif);
      font-size: clamp(22px, 3vw, 36px);
      font-style: normal;
      font-weight: 700;
      line-height: 1.45;
      max-width: 720px;
      position: relative;
      z-index: 1;
      margin-bottom: 28px;
    }
body.project-agicap .insight-attr{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.1em;
      color: rgba(245,242,232,0.45);
      position: relative;
      z-index: 1;
    }
body.project-agicap .insight-card--split{
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0;
      padding: 0;
      overflow: hidden;
    }
body.project-agicap .insight-img{
      min-height: 360px;
      overflow: hidden;
    }
body.project-agicap .insight-img .img-placeholder{
      background: rgba(255,255,255,0.06);
      border: none;
      border-radius: 0;
      height: 100%;
    }
body.project-agicap .insight-img .img-placeholder::before{ opacity: 0.3; }
body.project-agicap .insight-body{
      padding: 64px 56px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 28px;
      position: relative;
      overflow: hidden;
    }
body.project-agicap .insight-body::before{
      content: '"';
      font-family: var(--serif);
      font-size: 280px;
      color: rgba(255,255,255,0.05);
      position: absolute;
      top: -40px;
      left: 36px;
      line-height: 1;
      pointer-events: none;
    }
body.project-agicap .insight-card--split blockquote{
      font-size: clamp(18px, 2vw, 28px);
    }
body.project-agicap /* ─── RESULTS ─── */
    .results-section{
      background: var(--blue);
      padding: 96px 56px;
    }
body.project-agicap .results-section .s-tag{ color: rgba(255,255,255,0.6); }
body.project-agicap .results-section .s-title{ color: #fff; }
body.project-agicap .results-section .s-title .it{ color: rgba(255,255,255,0.7); }
body.project-agicap .results-grid{
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 16px;
      margin-top: 56px;
    }
body.project-agicap .result-card{
      background: rgba(255,255,255,0.1);
      border-radius: var(--radius);
      border: 1px solid rgba(255,255,255,0.15);
      padding: 40px 36px;
      transition: background 0.2s;
    }
body.project-agicap .result-card:hover{ background: rgba(255,255,255,0.15); }
body.project-agicap .result-num{
      font-family: var(--serif);
      font-size: 68px;
      font-weight: 900;
      color: #fff;
      line-height: 1;
      margin-bottom: 12px;
    }
body.project-agicap .result-label{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.1em;
      color: rgba(255,255,255,0.55);
      line-height: 1.6;
    }
body.project-agicap /* ─── FOOTER NAV ─── */
    .project-footer{
      padding: 72px 56px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      border-top: 1px solid var(--border);
    }
body.project-agicap .next-wrap{ text-align: right; }
body.project-agicap .next-label{
      font-family: var(--mono);
      font-size: 10px;
      letter-spacing: 0.14em;
      color: var(--muted);
      margin-bottom: 8px;
    }
body.project-agicap .next-link{
      font-family: var(--serif);
      font-size: 28px;
      font-weight: 700;
      font-style: normal;
      text-decoration: none;
      color: var(--ink);
      display: inline-flex;
      align-items: center;
      gap: 10px;
      transition: gap 0.2s, color 0.2s;
    }
body.project-agicap .next-link:hover{ gap: 16px; color: var(--orange); }
body.project-agicap /* ─── REVEAL ─── */
    .reveal{
      opacity: 0;
      transform: translateY(28px);
      transition: opacity 0.75s cubic-bezier(0.16,1,0.3,1),
                  transform 0.75s cubic-bezier(0.16,1,0.3,1);
    }
body.project-agicap .reveal.visible{ opacity: 1; transform: none; }
body.project-agicap .reveal.d1{ transition-delay: 0.1s; }
body.project-agicap .reveal.d2{ transition-delay: 0.2s; }
body.project-agicap .reveal.d3{ transition-delay: 0.3s; }
@keyframes up {
      to { opacity: 1; transform: translateY(0); }
}
body.project-agicap /* ─── RESPONSIVE ─── */
    @media (max-width: 900px){
      nav { padding: 18px 24px; }
body.project-agicap .hero{ padding: 120px 24px 56px; }
body.project-agicap .hero-title{ font-size: 40px; white-space: normal; }
body.project-agicap .hero-meta{ flex-wrap: wrap; gap: 24px; }
body.project-agicap .meta-item{ border-right: none; padding-right: 0; margin-right: 0; }
body.project-agicap .kpi-strip{ grid-template-columns: 1fr; padding: 0 24px; }
body.project-agicap .hero-img-wrap{ padding: 0 24px; }
body.project-agicap .img-full{ height: 260px; }
body.project-agicap section{ padding: 64px 24px; }
body.project-agicap .s-layout{ grid-template-columns: 1fr; gap: 16px; }
body.project-agicap hr{ margin: 0 24px; }
body.project-agicap .img-row{ grid-template-columns: 1fr; }
body.project-agicap .img-half{ height: 240px; }
body.project-agicap .process-grid{ grid-template-columns: 1fr 1fr !important; }
body.project-agicap .insight-wrap{ padding: 0 24px; margin: 56px 0; }
body.project-agicap .insight-card{ padding: 48px 32px; }
body.project-agicap .results-section{ padding: 72px 24px; }
body.project-agicap .results-grid{ grid-template-columns: 1fr; }
body.project-agicap .project-footer{ padding: 56px 24px; flex-direction: column; gap: 40px; align-items: flex-start; }
body.project-agicap .next-wrap{ text-align: left; }
}

/* project-naturalisation */
body.project-naturalisation .nav-cta{
      display: inline-flex;
      align-items: center;
      gap: 7px;
      height: 42px;
      padding: 0 22px;
      border-radius: 100px;
      font-family: var(--mono);
      font-size: 12px;
      font-weight: 400;
      text-decoration: none;
      background: transparent;
      cursor: pointer;
      transition: all .22s;
      color: rgba(255,255,255,0.7);
      border: 1.5px solid rgba(255,255,255,0.25);
    }
body.project-naturalisation .nav-cta:hover{
      border-color: rgba(255,255,255,0.8);
      color: #fff;
      transform: translateY(-2px);
    }
body.project-naturalisation /* ─── HERO ─── */
    .hero{
      min-height: 100vh;
      background: #1A1714;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding: 0 56px 0;
      position: relative;
      overflow: hidden;
    }
body.project-naturalisation .hero-bg-num{
      position: absolute;
      top: 50%; right: 56px;
      transform: translateY(-55%);
      font-family: var(--serif);
      font-weight: 900;
      font-size: clamp(280px, 30vw, 480px);
      line-height: 1;
      color: rgba(245,242,232,0.04);
      pointer-events: none;
      z-index: 0;
      letter-spacing: -0.04em;
    }
body.project-naturalisation .hero-content{
      position: relative;
      z-index: 1;
      padding-top: 120px;
      display: flex;
      flex-direction: column;
      flex: 1;
      justify-content: flex-end;
      padding-bottom: 0;
    }
body.project-naturalisation .hero-tag{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.12em;
      color: var(--orange);
      margin-bottom: 28px;
      display: block;
      opacity: 0;
      transform: translateY(12px);
      animation: up 0.6s 0.1s forwards;
    }
body.project-naturalisation .hero-title{
      font-family: var(--serif);
      font-size: clamp(56px, 7.5vw, 120px);
      font-weight: 900;
      line-height: 0.95;
      letter-spacing: -0.03em;
      color: var(--bg);
      margin-bottom: 56px;
      opacity: 0;
      transform: translateY(16px);
      animation: up 0.7s 0.2s forwards;
    }
body.project-naturalisation .hero-title .italic{
      font-style: normal;
      font-weight: 300;
      color: var(--orange);
    }
body.project-naturalisation .hero-meta{
      display: flex;
      gap: 0;
      margin-bottom: 56px;
      opacity: 0;
      transform: translateY(14px);
      animation: up 0.7s 0.32s forwards;
    }
body.project-naturalisation .meta-item{
      display: flex;
      flex-direction: column;
      gap: 9px;
      padding-right: 48px;
      margin-right: 48px;
      border-right: 1px solid rgba(245,242,232,0.1);
    }
body.project-naturalisation .meta-item:last-child{
      border-right: none;
      padding-right: 0;
      margin-right: 0;
    }
body.project-naturalisation .meta-item strong{
      font-family: var(--mono);
      font-size: 10px;
      letter-spacing: 0.14em;
      color: rgba(245,242,232,0.4);
      font-weight: 400;
      text-transform: uppercase;
    }
body.project-naturalisation .meta-item span{
      font-family: var(--serif);
      font-size: 18px;
      font-weight: 700;
      color: var(--bg);
      line-height: 1.2;
    }
body.project-naturalisation /* ─── KPI STRIP ─── */
    .kpi-strip{
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 0;
      border-top: 1px solid rgba(245,242,232,0.1);
      margin: 0 -56px;
      padding: 0;
      opacity: 0;
      transform: translateY(16px);
      animation: up 0.7s 0.46s forwards;
    }
body.project-naturalisation .kpi-card{
      background: rgba(245,242,232,0.04);
      border-radius: 0;
      border: none;
      border-right: 1px solid rgba(245,242,232,0.1);
      padding: 36px 56px;
      position: relative;
      overflow: hidden;
      transition: background 0.2s;
    }
body.project-naturalisation .kpi-card:last-child{ border-right: none; }
body.project-naturalisation .kpi-card:hover{ background: rgba(245,242,232,0.07); }
body.project-naturalisation .kpi-card::after{
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 2px;
      background: var(--orange);
      opacity: 0;
      transition: opacity 0.2s;
    }
body.project-naturalisation .kpi-card:hover::after{ opacity: 1; }
body.project-naturalisation .kpi-num{
      font-family: var(--serif);
      font-size: clamp(36px, 4vw, 56px);
      font-weight: 900;
      color: var(--bg);
      line-height: 1;
      margin-bottom: 10px;
    }
body.project-naturalisation .kpi-desc{
      font-family: var(--mono);
      font-size: 10px;
      letter-spacing: 0.12em;
      color: rgba(245,242,232,0.35);
      line-height: 1.6;
      text-transform: uppercase;
    }
body.project-naturalisation /* ─── HERO YELLOW ─── */
    .hero-dark{
      background: #FFFBC3;
      padding-bottom: 80px;
    }
body.project-naturalisation .hero-dark .hero{
      padding-bottom: 56px;
    }
body.project-naturalisation .hero-dark .hero-title{
      color: #000000;
    }
body.project-naturalisation .hero-dark .meta-item span{
      color: #000000;
    }
body.project-naturalisation .hero-dark .meta-item{
      border-right-color: rgba(0,0,0,0.12);
    }
body.project-naturalisation .hero-dark .meta-item strong{
      color: #E84E1C;
    }
body.project-naturalisation .hero-dark .kpi-strip{
      padding-bottom: 80px;
    }
body.project-naturalisation .hero-dark nav{
      background: rgba(255,251,195,0.88);
    }
body.project-naturalisation .hero-dark nav.scrolled{
      box-shadow: 0 1px 0 rgba(0,0,0,0.08);
    }
body.project-naturalisation .hero-dark .nav-back{
      color: rgba(0,0,0,0.45);
    }
body.project-naturalisation .hero-dark .nav-back:hover{
      color: #000000;
    }
body.project-naturalisation .hero-dark .nav-cta{
      color: #000000;
      border-color: rgba(0,0,0,0.3);
    }
body.project-naturalisation .hero-dark .nav-cta:hover{
      background: #000000;
      color: #FFFBC3;
    }
body.project-naturalisation .hero-dark .nav-center{
      color: rgba(0,0,0,0.4);
    }
body.project-naturalisation .hero-img-wrap{
      padding: 0 56px;
      margin-bottom: 96px;
    }
body.project-naturalisation .scroll-imgs{
      display: flex;
      gap: 20px;
      margin-top: 48px;
      overflow-x: auto;
      padding: 0 56px 12px;
      margin-left: -56px;
      margin-right: -56px;
      scrollbar-width: none;
    }
body.project-naturalisation .scroll-imgs::-webkit-scrollbar{ display: none; }
body.project-naturalisation .scroll-img-col{
      display: flex;
      flex-direction: column;
      gap: 12px;
      flex: 0 0 calc((100vw - 56px * 2 - 20px * 2) / 2.4);
    }
body.project-naturalisation .img-scroll{
      width: 100%;
      height: 280px;
    }
body.project-naturalisation .img-col{
      display: flex;
      flex-direction: column;
      gap: 12px;
    }
body.project-naturalisation .img-caption{
      font-family: 'Satoshi', sans-serif;
      font-size: 12px;
      color: var(--muted);
      line-height: 1.6;
      padding: 0 4px;
    }
body.project-naturalisation .img-placeholder{
      background: linear-gradient(135deg, #E8E3D6 0%, #D5CFC0 100%);
      border-radius: var(--radius);
      border: 1px solid var(--border);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 12px;
      position: relative;
      overflow: hidden;
    }
body.project-naturalisation .img-placeholder::before{
      content: '';
      position: absolute;
      inset: 0;
      background: repeating-linear-gradient(
        -45deg,
        transparent, transparent 24px,
        rgba(0,0,0,0.018) 24px, rgba(0,0,0,0.018) 25px
      );
    }
body.project-naturalisation .img-placeholder .ph-icon{
      position: relative;
      z-index: 1;
      width: 40px; height: 40px;
      opacity: 0.3;
    }
body.project-naturalisation .img-placeholder span{
      position: relative;
      z-index: 1;
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.1em;
      color: var(--muted);
    }
body.project-naturalisation .img-full{ width: 100%; height: 520px; }
body.project-naturalisation .img-half{ width: 100%; height: 360px; }
body.project-naturalisation /* ─── SECTIONS ─── */
    section{
      padding: 80px 56px;
    }
body.project-naturalisation .s-tag{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.12em;
      color: var(--orange);
      margin-bottom: 20px;
      display: block;
    }
body.project-naturalisation .s-title{
      font-family: var(--serif);
      font-size: clamp(36px, 4vw, 56px);
      font-weight: 900;
      line-height: 1.05;
      letter-spacing: -0.02em;
      margin-bottom: 32px;
    }
body.project-naturalisation .s-title .it{ font-style: normal; font-weight: 700; }
body.project-naturalisation .s-title .italic{ font-style: normal; font-weight: 700; color: var(--orange); }
body.project-naturalisation .s-title .orange{ color: var(--orange); }
body.project-naturalisation .s-title .blue{ color: var(--blue); }
body.project-naturalisation .s-body{
      font-family: 'Satoshi', sans-serif;
      font-size: 14px;
      font-weight: 400;
      color: var(--muted);
      line-height: 1.75;
      max-width: 640px;
    }
body.project-naturalisation .s-body p + p{ margin-top: 20px; }
body.project-naturalisation /* layout avec label flottant à gauche */
    .s-layout{
      display: grid;
      grid-template-columns: 180px 1fr;
      gap: 64px;
      align-items: start;
    }
body.project-naturalisation .s-layout-label{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.12em;
      color: var(--muted);
      padding-top: 8px;
      text-transform: uppercase;
    }
body.project-naturalisation /* ─── SEPARATOR ─── */
    hr{
      border: none;
      border-top: 1px solid var(--border);
      margin: 0 56px;
    }
body.project-naturalisation /* ─── DOUBLE IMAGES ─── */
    .img-row{
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
      margin-top: 48px;
    }
body.project-naturalisation /* ─── PROCESS CARDS ─── */
    .process-grid{
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 16px;
      margin-top: 48px;
    }
body.project-naturalisation .process-card{
      background: var(--card);
      border-radius: var(--radius);
      border: 1px solid var(--border);
      padding: 32px 28px 36px;
    }
body.project-naturalisation .pc-num{
      font-family: var(--mono);
      font-size: 11px;
      color: var(--orange);
      letter-spacing: 0.1em;
      margin-bottom: 20px;
      display: block;
    }
body.project-naturalisation .pc-title{
      font-family: var(--serif);
      font-size: 22px;
      font-weight: 700;
      margin-bottom: 14px;
      line-height: 1.2;
    }
body.project-naturalisation .pc-desc{
      font-size: 14px;
      color: var(--muted);
      line-height: 1.65;
    }
body.project-naturalisation /* ─── INSIGHT CARD ─── */
    .insight-wrap{
      padding: 0 56px;
      margin: 16px 0 40px;
    }
body.project-naturalisation .insight-card{
      background: var(--ink);
      color: var(--bg);
      border-radius: var(--radius);
      padding: 72px 80px;
      position: relative;
      overflow: hidden;
    }
body.project-naturalisation .insight-card:not(.insight-card--split)::before{
      content: '"';
      font-family: var(--serif);
      font-size: 280px;
      color: rgba(255,255,255,0.05);
      position: absolute;
      top: -40px; left: 52px;
      line-height: 1;
    }
body.project-naturalisation .insight-card blockquote{
      font-family: var(--serif);
      font-size: clamp(22px, 3vw, 36px);
      font-style: normal;
      font-weight: 700;
      line-height: 1.45;
      position: relative;
      z-index: 1;
      margin-bottom: 28px;
    }
body.project-naturalisation .insight-attr{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.1em;
      color: rgba(245,242,232,0.45);
      position: relative;
      z-index: 1;
    }
body.project-naturalisation .insight-card--split{
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0;
      padding: 0;
      overflow: hidden;
    }
body.project-naturalisation .insight-img{
      min-height: 360px;
      overflow: hidden;
    }
body.project-naturalisation .insight-img .img-placeholder{
      background: rgba(255,255,255,0.06);
      border: none;
      border-radius: 0;
      height: 100%;
    }
body.project-naturalisation .insight-img .img-placeholder::before{ opacity: 0.3; }
body.project-naturalisation .insight-body{
      padding: 64px 56px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 28px;
      position: relative;
      overflow: hidden;
    }
body.project-naturalisation .insight-body::before{
      content: '"';
      font-family: var(--serif);
      font-size: 280px;
      color: rgba(255,255,255,0.05);
      position: absolute;
      top: -40px;
      left: 36px;
      line-height: 1;
      pointer-events: none;
    }
body.project-naturalisation .insight-card--split blockquote{
      font-size: clamp(18px, 2vw, 28px);
    }
body.project-naturalisation /* ─── RESULTS ─── */
    .results-section{
      background: var(--blue);
      padding: 96px 56px;
    }
body.project-naturalisation .results-section .s-tag{ color: rgba(255,255,255,0.6); }
body.project-naturalisation .results-section .s-title{ color: #fff; }
body.project-naturalisation .results-section .s-title .it{ color: rgba(255,255,255,0.7); }
body.project-naturalisation .results-grid{
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 16px;
      margin-top: 56px;
    }
body.project-naturalisation .result-card{
      background: rgba(255,255,255,0.1);
      border-radius: var(--radius);
      border: 1px solid rgba(255,255,255,0.15);
      padding: 40px 36px;
      transition: background 0.2s;
    }
body.project-naturalisation .result-card:hover{ background: rgba(255,255,255,0.15); }
body.project-naturalisation .result-num{
      font-family: var(--serif);
      font-size: 68px;
      font-weight: 900;
      color: #fff;
      line-height: 1;
      margin-bottom: 12px;
    }
body.project-naturalisation .result-label{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.1em;
      color: rgba(255,255,255,0.55);
      line-height: 1.6;
    }
body.project-naturalisation /* ─── FOOTER NAV ─── */
    .project-footer{
      padding: 72px 56px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      border-top: 1px solid var(--border);
    }
body.project-naturalisation .btn-back{
      display: inline-flex;
      align-items: center;
      gap: 10px;
      font-family: var(--mono);
      font-size: 12px;
      letter-spacing: 0.1em;
      color: var(--ink);
      text-decoration: none;
      transition: gap 0.2s;
    }
body.project-naturalisation .btn-back:hover{ gap: 16px; }
body.project-naturalisation .btn-back svg{ transition: transform 0.2s; }
body.project-naturalisation .btn-back:hover svg{ transform: translateX(-4px); }
body.project-naturalisation .next-wrap{ text-align: right; }
body.project-naturalisation .next-label{
      font-family: var(--mono);
      font-size: 10px;
      letter-spacing: 0.14em;
      color: var(--muted);
      margin-bottom: 8px;
    }
body.project-naturalisation .next-link{
      font-family: var(--serif);
      font-size: 28px;
      font-weight: 700;
      font-style: normal;
      text-decoration: none;
      color: var(--ink);
      display: inline-flex;
      align-items: center;
      gap: 10px;
      transition: gap 0.2s, color 0.2s;
    }
body.project-naturalisation .next-link:hover{ gap: 16px; color: var(--orange); }
body.project-naturalisation /* ─── ILLUSTRATION ROW ─── */
    .illu-row{
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 32px;
      margin-top: 48px;
    }
body.project-naturalisation .illu-col{
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 20px;
    }
body.project-naturalisation .illu-wrap{
      width: 100%;
    }
body.project-naturalisation .illu-label{
      font-family: var(--serif);
      font-size: 16px;
      font-weight: 700;
      color: var(--ink);
      text-align: center;
      line-height: 1.3;
    }
@media (max-width: 900px) {
      .illu-row { grid-template-columns: 1fr; }
}
body.project-naturalisation .mobile-scroll-wrap{
      padding: 0 56px;
      margin-bottom: 96px;
    }
body.project-naturalisation .mobile-scroll{
      display: flex;
      gap: 16px;
      overflow-x: auto;
      padding-bottom: 12px;
      scrollbar-width: none;
      margin-left: -56px;
      margin-right: -56px;
      padding-left: 56px;
      padding-right: 56px;
    }
body.project-naturalisation .mobile-scroll::-webkit-scrollbar{ display: none; }
body.project-naturalisation .mobile-screen-col{
      display: flex;
      flex-direction: column;
      gap: 12px;
      flex-shrink: 0;
    }
body.project-naturalisation .img-mobile{
      width: 220px;
      height: 390px;
      border-radius: var(--radius);
    }
@media (max-width: 900px) {
      .mobile-scroll-wrap { padding: 0 24px; }
body.project-naturalisation .mobile-scroll{ margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }
body.project-naturalisation .img-mobile{ width: 180px; height: 320px; }
}
body.project-naturalisation .reveal{
      opacity: 0;
      transform: translateY(28px);
      transition: opacity 0.75s cubic-bezier(0.16,1,0.3,1),
                  transform 0.75s cubic-bezier(0.16,1,0.3,1);
    }
body.project-naturalisation .reveal.visible{ opacity: 1; transform: none; }
body.project-naturalisation .reveal.d1{ transition-delay: 0.1s; }
body.project-naturalisation .reveal.d2{ transition-delay: 0.2s; }
body.project-naturalisation .reveal.d3{ transition-delay: 0.3s; }
@keyframes up {
      to { opacity: 1; transform: translateY(0); }
}
body.project-naturalisation /* ─── RESPONSIVE ─── */
    @media (max-width: 900px){
      nav { padding: 18px 24px; }
body.project-naturalisation .hero{ padding: 120px 24px 56px; }
body.project-naturalisation .hero-title{ font-size: 40px; white-space: normal; }
body.project-naturalisation .hero-meta{ flex-wrap: wrap; gap: 24px; }
body.project-naturalisation .meta-item{ border-right: none; padding-right: 0; margin-right: 0; }
body.project-naturalisation .kpi-strip{ grid-template-columns: 1fr; padding: 0 24px; }
body.project-naturalisation .hero-img-wrap{ padding: 0 24px; }
body.project-naturalisation .img-full{ height: 260px; }
body.project-naturalisation section{ padding: 64px 24px; }
body.project-naturalisation .s-layout{ grid-template-columns: 1fr; gap: 16px; }
body.project-naturalisation hr{ margin: 0 24px; }
body.project-naturalisation .img-row{ grid-template-columns: 1fr; }
body.project-naturalisation .img-half{ height: 240px; }
body.project-naturalisation .process-grid{ grid-template-columns: 1fr 1fr !important; }
body.project-naturalisation .insight-wrap{ padding: 0 24px; margin: 56px 0; }
body.project-naturalisation .insight-card{ padding: 48px 32px; }
body.project-naturalisation .results-section{ padding: 72px 24px; }
body.project-naturalisation .results-grid{ grid-template-columns: 1fr; }
body.project-naturalisation .project-footer{ padding: 56px 24px; flex-direction: column; gap: 40px; align-items: flex-start; }
body.project-naturalisation .next-wrap{ text-align: left; }
}
body.project-naturalisation /* ─── LIGHTBOX ─── */
    .lightbox-trigger{ cursor: zoom-in; }
body.project-naturalisation .lightbox-overlay{
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,0.92);
      z-index: 9999;
      align-items: center;
      justify-content: center;
      padding: 32px;
    }
body.project-naturalisation .lightbox-overlay.active{ display: flex; }
body.project-naturalisation .lightbox-overlay img{
      max-width: 100%;
      max-height: 100%;
      object-fit: contain;
      border-radius: 12px;
    }
body.project-naturalisation .lightbox-close{
      position: fixed;
      top: 24px;
      right: 24px;
      width: 40px;
      height: 40px;
      background: rgba(255,255,255,0.1);
      border: none;
      border-radius: 50%;
      color: #fff;
      font-size: 20px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      line-height: 1;
    }
body.project-naturalisation .lightbox-close:hover{ background: rgba(255,255,255,0.2); }

/* project-dxo-one */
body.project-dxo-one .nav-cta{
      display: inline-flex;
      align-items: center;
      gap: 7px;
      height: 42px;
      padding: 0 22px;
      border-radius: 100px;
      font-family: var(--mono);
      font-size: 12px;
      font-weight: 400;
      text-decoration: none;
      background: transparent;
      cursor: pointer;
      transition: all .22s;
      color: rgba(255,255,255,0.7);
      border: 1.5px solid rgba(255,255,255,0.25);
    }
body.project-dxo-one .nav-cta:hover{
      border-color: rgba(255,255,255,0.8);
      color: #fff;
      transform: translateY(-2px);
    }
body.project-dxo-one /* ─── HERO ─── */
    .hero{
      min-height: 100vh;
      background: #1A1714;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding: 0 56px 0;
      position: relative;
      overflow: hidden;
    }
body.project-dxo-one .hero-bg-num{
      position: absolute;
      top: 50%; right: 56px;
      transform: translateY(-55%);
      font-family: var(--serif);
      font-weight: 900;
      font-size: clamp(280px, 30vw, 480px);
      line-height: 1;
      color: rgba(245,242,232,0.04);
      pointer-events: none;
      z-index: 0;
      letter-spacing: -0.04em;
    }
body.project-dxo-one .hero-content{
      position: relative;
      z-index: 1;
      padding-top: 120px;
      display: flex;
      flex-direction: column;
      flex: 1;
      justify-content: flex-end;
      padding-bottom: 0;
    }
body.project-dxo-one .hero-tag{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.12em;
      color: var(--orange);
      margin-bottom: 28px;
      display: block;
      opacity: 0;
      transform: translateY(12px);
      animation: up 0.6s 0.1s forwards;
    }
body.project-dxo-one .hero-title{
      font-family: var(--serif);
      font-size: clamp(56px, 7.5vw, 120px);
      font-weight: 900;
      line-height: 0.95;
      letter-spacing: -0.03em;
      color: var(--bg);
      margin-bottom: 56px;
      opacity: 0;
      transform: translateY(16px);
      animation: up 0.7s 0.2s forwards;
    }
body.project-dxo-one .hero-title .italic{
      font-style: normal;
      font-weight: 300;
      color: var(--orange);
    }
body.project-dxo-one .hero-meta{
      display: flex;
      gap: 0;
      margin-bottom: 56px;
      opacity: 0;
      transform: translateY(14px);
      animation: up 0.7s 0.32s forwards;
    }
body.project-dxo-one .meta-item{
      display: flex;
      flex-direction: column;
      gap: 9px;
      padding-right: 48px;
      margin-right: 48px;
      border-right: 1px solid rgba(245,242,232,0.1);
    }
body.project-dxo-one .meta-item:last-child{
      border-right: none;
      padding-right: 0;
      margin-right: 0;
    }
body.project-dxo-one .meta-item strong{
      font-family: var(--mono);
      font-size: 10px;
      letter-spacing: 0.14em;
      color: rgba(245,242,232,0.4);
      font-weight: 400;
      text-transform: uppercase;
    }
body.project-dxo-one .meta-item span{
      font-family: var(--serif);
      font-size: 18px;
      font-weight: 700;
      color: var(--bg);
      line-height: 1.2;
    }
body.project-dxo-one /* ─── KPI STRIP ─── */
    .kpi-strip{
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 0;
      border-top: 1px solid rgba(245,242,232,0.1);
      margin: 0 -56px;
      padding: 0;
      opacity: 0;
      transform: translateY(16px);
      animation: up 0.7s 0.46s forwards;
    }
body.project-dxo-one .kpi-card{
      background: rgba(245,242,232,0.04);
      border-radius: 0;
      border: none;
      border-right: 1px solid rgba(245,242,232,0.1);
      padding: 36px 56px;
      position: relative;
      overflow: hidden;
      transition: background 0.2s;
    }
body.project-dxo-one .kpi-card:last-child{ border-right: none; }
body.project-dxo-one .kpi-card:hover{ background: rgba(245,242,232,0.07); }
body.project-dxo-one .kpi-card::after{
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 2px;
      background: var(--orange);
      opacity: 0;
      transition: opacity 0.2s;
    }
body.project-dxo-one .kpi-card:hover::after{ opacity: 1; }
body.project-dxo-one .kpi-num{
      font-family: var(--serif);
      font-size: clamp(36px, 4vw, 56px);
      font-weight: 900;
      color: var(--bg);
      line-height: 1;
      margin-bottom: 10px;
    }
body.project-dxo-one .kpi-desc{
      font-family: var(--mono);
      font-size: 10px;
      letter-spacing: 0.12em;
      color: rgba(245,242,232,0.35);
      line-height: 1.6;
      text-transform: uppercase;
    }
body.project-dxo-one .hero-img-wrap{
      padding: 0 56px;
      margin-bottom: 96px;
    }
body.project-dxo-one .img-caption{
      font-family: 'Satoshi', sans-serif;
      font-size: 12px;
      color: var(--muted);
      line-height: 1.6;
      padding: 0 4px;
    }
body.project-dxo-one .img-placeholder{
      background: linear-gradient(135deg, #E8E3D6 0%, #D5CFC0 100%);
      border-radius: var(--radius);
      border: 1px solid var(--border);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 12px;
      position: relative;
      overflow: hidden;
    }
body.project-dxo-one .img-placeholder::before{
      content: '';
      position: absolute;
      inset: 0;
      background: repeating-linear-gradient(
        -45deg,
        transparent, transparent 24px,
        rgba(0,0,0,0.018) 24px, rgba(0,0,0,0.018) 25px
      );
    }
body.project-dxo-one .img-placeholder .ph-icon{
      position: relative;
      z-index: 1;
      width: 40px; height: 40px;
      opacity: 0.3;
    }
body.project-dxo-one .img-placeholder span{
      position: relative;
      z-index: 1;
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.1em;
      color: var(--muted);
    }
body.project-dxo-one .img-full{ width: 100%; height: 520px; }
body.project-dxo-one .img-half{ width: 100%; height: 360px; }
body.project-dxo-one /* ─── SECTIONS ─── */
    section{
      padding: 80px 56px;
    }
body.project-dxo-one .s-tag{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.12em;
      color: var(--orange);
      margin-bottom: 20px;
      display: block;
    }
body.project-dxo-one .s-title{
      font-family: var(--serif);
      font-size: clamp(36px, 4vw, 56px);
      font-weight: 900;
      line-height: 1.05;
      letter-spacing: -0.02em;
      margin-bottom: 32px;
    }
body.project-dxo-one .s-title .it{ font-style: normal; font-weight: 700; }
body.project-dxo-one .s-title .orange{ color: var(--orange); }
body.project-dxo-one .s-title .blue{ color: var(--blue); }
body.project-dxo-one .s-body{
      font-family: 'Satoshi', sans-serif;
      font-size: 14px;
      font-weight: 400;
      color: var(--muted);
      line-height: 1.75;
      max-width: 640px;
    }
body.project-dxo-one .s-body p + p{ margin-top: 20px; }
body.project-dxo-one .s-layout{
      display: grid;
      grid-template-columns: 180px 1fr;
      gap: 64px;
      align-items: start;
    }
body.project-dxo-one .s-layout-label{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.12em;
      color: var(--muted);
      padding-top: 8px;
      text-transform: uppercase;
    }
body.project-dxo-one /* ─── SEPARATOR ─── */
    hr{
      border: none;
      border-top: 1px solid var(--border);
      margin: 0 56px;
    }
body.project-dxo-one /* ─── DOUBLE IMAGES ─── */
    .img-row{
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
      margin-top: 48px;
    }
body.project-dxo-one .img-col{
      display: flex;
      flex-direction: column;
      gap: 12px;
    }
body.project-dxo-one /* ─── PROCESS CARDS ─── */
    .process-grid{
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 16px;
      margin-top: 48px;
    }
body.project-dxo-one .process-card{
      background: var(--card);
      border-radius: var(--radius);
      border: 1px solid var(--border);
      padding: 32px 28px 36px;
    }
body.project-dxo-one .pc-num{
      font-family: var(--mono);
      font-size: 11px;
      color: var(--orange);
      letter-spacing: 0.1em;
      margin-bottom: 20px;
      display: block;
    }
body.project-dxo-one .pc-title{
      font-family: var(--serif);
      font-size: 22px;
      font-weight: 700;
      margin-bottom: 14px;
      line-height: 1.2;
    }
body.project-dxo-one .pc-desc{
      font-size: 14px;
      color: var(--muted);
      line-height: 1.65;
    }
body.project-dxo-one /* ─── INSIGHT CARD ─── */
    .insight-wrap{
      padding: 0 56px;
      margin: 16px 0 40px;
    }
body.project-dxo-one .insight-card{
      background: var(--ink);
      color: var(--bg);
      border-radius: var(--radius);
      padding: 72px 80px;
      position: relative;
      overflow: hidden;
    }
body.project-dxo-one .insight-card:not(.insight-card--split)::before{
      content: '"';
      font-family: var(--serif);
      font-size: 280px;
      color: rgba(255,255,255,0.05);
      position: absolute;
      top: -40px; left: 52px;
      line-height: 1;
    }
body.project-dxo-one .insight-card blockquote{
      font-family: var(--serif);
      font-size: clamp(22px, 3vw, 36px);
      font-style: normal;
      font-weight: 700;
      line-height: 1.45;
      position: relative;
      z-index: 1;
      margin-bottom: 28px;
    }
body.project-dxo-one .insight-attr{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.1em;
      color: rgba(245,242,232,0.45);
      position: relative;
      z-index: 1;
    }
body.project-dxo-one /* ─── ILLUSTRATION ROW ─── */
    .illu-row{
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 32px;
      margin-top: 48px;
    }
body.project-dxo-one .illu-col{
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 20px;
    }
body.project-dxo-one .illu-label{
      font-family: var(--serif);
      font-size: 16px;
      font-weight: 700;
      color: var(--ink);
      text-align: center;
      line-height: 1.3;
    }
body.project-dxo-one /* ─── MOBILE SCROLL ─── */
    .mobile-scroll-wrap{
      padding: 0 56px;
      margin-bottom: 96px;
    }
body.project-dxo-one .mobile-scroll{
      display: flex;
      gap: 16px;
      overflow-x: auto;
      padding-bottom: 12px;
      scrollbar-width: none;
      margin-left: -56px;
      margin-right: -56px;
      padding-left: 56px;
      padding-right: 56px;
    }
body.project-dxo-one .mobile-scroll::-webkit-scrollbar{ display: none; }
body.project-dxo-one .mobile-screen-col{
      display: flex;
      flex-direction: column;
      gap: 12px;
      flex-shrink: 0;
    }
body.project-dxo-one .img-mobile{
      width: 220px;
      height: 390px;
      border-radius: var(--radius);
    }
body.project-dxo-one /* ─── RESULTS ─── */
    .results-section{
      background: var(--blue);
      padding: 96px 56px;
    }
body.project-dxo-one .results-section .s-tag{ color: rgba(255,255,255,0.6); }
body.project-dxo-one .results-section .s-title{ color: #fff; }
body.project-dxo-one .results-section .s-title .it{ color: rgba(255,255,255,0.7); }
body.project-dxo-one .results-grid{
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 16px;
      margin-top: 56px;
    }
body.project-dxo-one .result-card{
      background: rgba(255,255,255,0.1);
      border-radius: var(--radius);
      border: 1px solid rgba(255,255,255,0.15);
      padding: 40px 36px;
      transition: background 0.2s;
    }
body.project-dxo-one .result-card:hover{ background: rgba(255,255,255,0.15); }
body.project-dxo-one .result-num{
      font-family: var(--serif);
      font-size: 68px;
      font-weight: 900;
      color: #fff;
      line-height: 1;
      margin-bottom: 12px;
    }
body.project-dxo-one .result-label{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.1em;
      color: rgba(255,255,255,0.55);
      line-height: 1.6;
    }
body.project-dxo-one /* ─── FOOTER NAV ─── */
    .project-footer{
      padding: 72px 56px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      border-top: 1px solid var(--border);
    }
body.project-dxo-one .btn-back{
      display: inline-flex;
      align-items: center;
      gap: 10px;
      font-family: var(--mono);
      font-size: 12px;
      letter-spacing: 0.1em;
      color: var(--ink);
      text-decoration: none;
      transition: gap 0.2s;
    }
body.project-dxo-one .btn-back:hover{ gap: 16px; }
body.project-dxo-one .btn-back svg{ transition: transform 0.2s; }
body.project-dxo-one .btn-back:hover svg{ transform: translateX(-4px); }
body.project-dxo-one .next-wrap{ text-align: right; }
body.project-dxo-one .next-label{
      font-family: var(--mono);
      font-size: 10px;
      letter-spacing: 0.14em;
      color: var(--muted);
      margin-bottom: 8px;
    }
body.project-dxo-one .next-link{
      font-family: var(--serif);
      font-size: 28px;
      font-weight: 700;
      font-style: normal;
      text-decoration: none;
      color: var(--ink);
      display: inline-flex;
      align-items: center;
      gap: 10px;
      transition: gap 0.2s, color 0.2s;
    }
body.project-dxo-one .next-link:hover{ gap: 16px; color: var(--orange); }
body.project-dxo-one /* ─── REVEAL ─── */
    .reveal{
      opacity: 0;
      transform: translateY(28px);
      transition: opacity 0.75s cubic-bezier(0.16,1,0.3,1),
                  transform 0.75s cubic-bezier(0.16,1,0.3,1);
    }
body.project-dxo-one .reveal.visible{ opacity: 1; transform: none; }
body.project-dxo-one .reveal.d1{ transition-delay: 0.1s; }
body.project-dxo-one .reveal.d2{ transition-delay: 0.2s; }
body.project-dxo-one .reveal.d3{ transition-delay: 0.3s; }
@keyframes up {
      to { opacity: 1; transform: translateY(0); }
}
body.project-dxo-one /* ─── LIGHTBOX ─── */
    .lightbox-trigger{ cursor: zoom-in; }
body.project-dxo-one .lightbox-overlay{
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,0.92);
      z-index: 9999;
      align-items: center;
      justify-content: center;
      padding: 32px;
    }
body.project-dxo-one .lightbox-overlay.active{ display: flex; }
body.project-dxo-one .lightbox-overlay img{
      max-width: 100%;
      max-height: 100%;
      object-fit: contain;
      border-radius: 12px;
    }
body.project-dxo-one .lightbox-close{
      position: fixed;
      top: 24px; right: 24px;
      width: 40px; height: 40px;
      background: rgba(255,255,255,0.1);
      border: none;
      border-radius: 50%;
      color: #fff;
      font-size: 20px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      line-height: 1;
    }
body.project-dxo-one .lightbox-close:hover{ background: rgba(255,255,255,0.2); }
body.project-dxo-one /* ─── RESPONSIVE ─── */
    @media (max-width: 900px){
      nav { padding: 18px 24px; }
body.project-dxo-one .hero{ padding: 120px 24px 56px; }
body.project-dxo-one .hero-title{ font-size: 40px; white-space: normal; }
body.project-dxo-one .hero-meta{ flex-wrap: wrap; gap: 24px; }
body.project-dxo-one .meta-item{ border-right: none; padding-right: 0; margin-right: 0; }
body.project-dxo-one .kpi-strip{ grid-template-columns: 1fr; padding: 0 24px; }
body.project-dxo-one .hero-img-wrap{ padding: 0 24px; }
body.project-dxo-one .img-full{ height: 260px; }
body.project-dxo-one section{ padding: 64px 24px; }
body.project-dxo-one .s-layout{ grid-template-columns: 1fr; gap: 16px; }
body.project-dxo-one hr{ margin: 0 24px; }
body.project-dxo-one .img-row{ grid-template-columns: 1fr; }
body.project-dxo-one .img-half{ height: 240px; }
body.project-dxo-one .process-grid{ grid-template-columns: 1fr 1fr !important; }
body.project-dxo-one .insight-wrap{ padding: 0 24px; margin: 56px 0; }
body.project-dxo-one .insight-card{ padding: 48px 32px; }
body.project-dxo-one .results-section{ padding: 72px 24px; }
body.project-dxo-one .results-grid{ grid-template-columns: 1fr; }
body.project-dxo-one .project-footer{ padding: 56px 24px; flex-direction: column; gap: 40px; align-items: flex-start; }
body.project-dxo-one .next-wrap{ text-align: left; }
body.project-dxo-one .illu-row{ grid-template-columns: 1fr; }
body.project-dxo-one .mobile-scroll-wrap{ padding: 0 24px; }
body.project-dxo-one .mobile-scroll{ margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }
body.project-dxo-one .img-mobile{ width: 180px; height: 320px; }
}
body.project-dxo-one .persona-col{ flex-shrink: 0; }
body.project-dxo-one .img-persona{ width: 560px; height: 360px; border-radius: var(--radius); }
@media (max-width: 900px) { .img-persona { width: 320px; height: 220px; }
}
body.project-dxo-one .landscape-col{ flex-shrink: 0; display: flex; flex-direction: column; gap: 12px; }
body.project-dxo-one .img-landscape{ width: 400px; height: 260px; border-radius: var(--radius); }
@media (max-width: 900px) { .img-landscape { width: 280px; height: 180px; }
}
body.project-dxo-one .quote-slider{ position: relative; overflow: hidden; }
body.project-dxo-one .quote-track{ position: relative; min-height: 160px; }
body.project-dxo-one .quote-slide{
    display: none;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.5s cubic-bezier(0.16,1,0.3,1), transform 0.5s cubic-bezier(0.16,1,0.3,1);
  }
body.project-dxo-one .quote-slide.active{ display: block; opacity: 1; transform: translateY(0); }
body.project-dxo-one .quote-slide.leaving{ display: block; opacity: 0; transform: translateY(-10px); }
body.project-dxo-one .quote-segments{
    display: flex;
    gap: 5px;
    margin-top: 40px;
    position: relative;
    z-index: 1;
    width: fit-content;
  }
body.project-dxo-one .quote-segment{
    width: 64px;
    height: 2px;
    background: rgba(245,242,232,0.15);
    border-radius: 1px;
    overflow: hidden;
    cursor: pointer;
  }
body.project-dxo-one .quote-segment-fill{
    height: 100%;
    width: 0%;
    background: var(--orange);
    border-radius: 1px;
    transition: width linear;
  }
body.project-dxo-one .quote-segment.done .quote-segment-fill{
    width: 100%;
    transition: none;
  }

/* project-photolab */
body.project-photolab .nav-cta{
      display: inline-flex;
      align-items: center;
      gap: 7px;
      height: 42px;
      padding: 0 22px;
      border-radius: 100px;
      font-family: var(--mono);
      font-size: 12px;
      font-weight: 400;
      text-decoration: none;
      background: transparent;
      cursor: pointer;
      transition: all .22s;
      color: rgba(255,255,255,0.7);
      border: 1.5px solid rgba(255,255,255,0.25);
    }
body.project-photolab .nav-cta:hover{
      border-color: rgba(255,255,255,0.8);
      color: #fff;
      transform: translateY(-2px);
    }
body.project-photolab /* ─── HERO ─── */
    .hero{
      min-height: 100vh;
      background: #1A1714;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding: 0 56px 0;
      position: relative;
      overflow: hidden;
    }
body.project-photolab .hero-bg-num{
      position: absolute;
      top: 50%; right: 56px;
      transform: translateY(-55%);
      font-family: var(--serif);
      font-weight: 900;
      font-size: clamp(280px, 30vw, 480px);
      line-height: 1;
      color: rgba(245,242,232,0.04);
      pointer-events: none;
      z-index: 0;
      letter-spacing: -0.04em;
    }
body.project-photolab .hero-content{
      position: relative;
      z-index: 1;
      padding-top: 120px;
      display: flex;
      flex-direction: column;
      flex: 1;
      justify-content: flex-end;
      padding-bottom: 0;
    }
body.project-photolab .hero-tag{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.12em;
      color: var(--orange);
      margin-bottom: 28px;
      display: block;
      opacity: 0;
      transform: translateY(12px);
      animation: up 0.6s 0.1s forwards;
    }
body.project-photolab .hero-title{
      font-family: var(--serif);
      font-size: clamp(56px, 7.5vw, 120px);
      font-weight: 900;
      line-height: 0.95;
      letter-spacing: -0.03em;
      color: var(--bg);
      margin-bottom: 56px;
      opacity: 0;
      transform: translateY(16px);
      animation: up 0.7s 0.2s forwards;
    }
body.project-photolab .hero-title .italic{
      font-style: normal;
      font-weight: 300;
      color: var(--orange);
    }
body.project-photolab .hero-meta{
      display: flex;
      gap: 0;
      margin-bottom: 56px;
      opacity: 0;
      transform: translateY(14px);
      animation: up 0.7s 0.32s forwards;
    }
body.project-photolab .meta-item{
      display: flex;
      flex-direction: column;
      gap: 9px;
      padding-right: 48px;
      margin-right: 48px;
      border-right: 1px solid rgba(245,242,232,0.1);
    }
body.project-photolab .meta-item:last-child{
      border-right: none;
      padding-right: 0;
      margin-right: 0;
    }
body.project-photolab .meta-item strong{
      font-family: var(--mono);
      font-size: 10px;
      letter-spacing: 0.14em;
      color: rgba(245,242,232,0.4);
      font-weight: 400;
      text-transform: uppercase;
    }
body.project-photolab .meta-item span{
      font-family: var(--serif);
      font-size: 18px;
      font-weight: 700;
      color: var(--bg);
      line-height: 1.2;
    }
body.project-photolab /* ─── KPI STRIP ─── */
    .kpi-strip{
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 0;
      border-top: 1px solid rgba(245,242,232,0.1);
      margin: 0 -56px;
      padding: 0;
      opacity: 0;
      transform: translateY(16px);
      animation: up 0.7s 0.46s forwards;
    }
body.project-photolab .kpi-card{
      background: rgba(245,242,232,0.04);
      border-radius: 0;
      border: none;
      border-right: 1px solid rgba(245,242,232,0.1);
      padding: 36px 56px;
      position: relative;
      overflow: hidden;
      transition: background 0.2s;
    }
body.project-photolab .kpi-card:last-child{ border-right: none; }
body.project-photolab .kpi-card:hover{ background: rgba(245,242,232,0.07); }
body.project-photolab .kpi-card::after{
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 2px;
      background: var(--orange);
      opacity: 0;
      transition: opacity 0.2s;
    }
body.project-photolab .kpi-card:hover::after{ opacity: 1; }
body.project-photolab .kpi-num{
      font-family: var(--serif);
      font-size: clamp(36px, 4vw, 56px);
      font-weight: 900;
      color: var(--bg);
      line-height: 1;
      margin-bottom: 10px;
    }
body.project-photolab .kpi-desc{
      font-family: var(--mono);
      font-size: 10px;
      letter-spacing: 0.12em;
      color: rgba(245,242,232,0.35);
      line-height: 1.6;
      text-transform: uppercase;
    }
body.project-photolab /* ─── SECTIONS ─── */
    section{
      padding: 80px 56px;
    }
body.project-photolab .s-tag{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.12em;
      color: var(--orange);
      margin-bottom: 20px;
      display: block;
    }
body.project-photolab .s-title{
      font-family: var(--serif);
      font-size: clamp(36px, 4vw, 56px);
      font-weight: 900;
      line-height: 1.05;
      letter-spacing: -0.02em;
      margin-bottom: 32px;
    }
body.project-photolab .s-title .it{ font-style: normal; font-weight: 700; }
body.project-photolab .s-title .orange{ color: var(--orange); }
body.project-photolab .s-title .blue{ color: var(--blue); }
body.project-photolab .s-body{
      font-family: 'Satoshi', sans-serif;
      font-size: 14px;
      font-weight: 400;
      color: var(--muted);
      line-height: 1.75;
      max-width: 640px;
    }
body.project-photolab .s-body p + p{ margin-top: 20px; }
body.project-photolab .s-layout{
      display: grid;
      grid-template-columns: 180px 1fr;
      gap: 64px;
      align-items: start;
    }
body.project-photolab .s-layout-label{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.12em;
      color: var(--muted);
      padding-top: 8px;
      text-transform: uppercase;
    }
body.project-photolab /* ─── SEPARATOR ─── */
    hr{
      border: none;
      border-top: 1px solid var(--border);
      margin: 0 56px;
    }
body.project-photolab /* ─── DOUBLE IMAGES ─── */
    .img-row{
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
      margin-top: 48px;
    }
body.project-photolab /* ─── PROCESS CARDS ─── */
    .process-grid{
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 16px;
      margin-top: 48px;
    }
body.project-photolab .process-card{
      background: var(--card);
      border-radius: var(--radius);
      border: 1px solid var(--border);
      padding: 32px 28px 36px;
    }
body.project-photolab .pc-num{
      font-family: var(--mono);
      font-size: 11px;
      color: var(--orange);
      letter-spacing: 0.1em;
      margin-bottom: 20px;
      display: block;
    }
body.project-photolab .pc-title{
      font-family: var(--serif);
      font-size: 22px;
      font-weight: 700;
      margin-bottom: 14px;
      line-height: 1.2;
    }
body.project-photolab .pc-desc{
      font-size: 14px;
      color: var(--muted);
      line-height: 1.65;
    }
body.project-photolab /* ─── INSIGHT CARD ─── */
    .insight-wrap{
      padding: 0 56px;
      margin: 16px 0 40px;
    }
body.project-photolab .insight-card{
      background: var(--ink);
      color: var(--bg);
      border-radius: var(--radius);
      padding: 72px 80px;
      position: relative;
      overflow: hidden;
    }
body.project-photolab .insight-card:not(.insight-card--split)::before{
      content: '"';
      font-family: var(--serif);
      font-size: 280px;
      color: rgba(255,255,255,0.05);
      position: absolute;
      top: -40px; left: 52px;
      line-height: 1;
    }
body.project-photolab .insight-card blockquote{
      font-family: var(--serif);
      font-size: clamp(22px, 3vw, 36px);
      font-style: normal;
      font-weight: 700;
      line-height: 1.45;
      position: relative;
      z-index: 1;
      margin-bottom: 28px;
    }
body.project-photolab .insight-attr{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.1em;
      color: rgba(245,242,232,0.45);
      position: relative;
      z-index: 1;
    }
body.project-photolab /* ─── RESULTS ─── */
    .results-section{
      background: var(--blue);
      padding: 96px 56px;
    }
body.project-photolab .results-section .s-tag{ color: rgba(255,255,255,0.6); }
body.project-photolab .results-section .s-title{ color: #fff; }
body.project-photolab .results-section .s-title .it{ color: rgba(255,255,255,0.7); }
body.project-photolab .results-grid{
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 16px;
      margin-top: 56px;
    }
body.project-photolab .result-card{
      background: rgba(255,255,255,0.1);
      border-radius: var(--radius);
      border: 1px solid rgba(255,255,255,0.15);
      padding: 40px 36px;
      transition: background 0.2s;
    }
body.project-photolab .result-card:hover{ background: rgba(255,255,255,0.15); }
body.project-photolab .result-num{
      font-family: var(--serif);
      font-size: 68px;
      font-weight: 900;
      color: #fff;
      line-height: 1;
      margin-bottom: 12px;
    }
body.project-photolab .result-label{
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.1em;
      color: rgba(255,255,255,0.55);
      line-height: 1.6;
    }
body.project-photolab /* ─── FOOTER NAV ─── */
    .project-footer{
      padding: 72px 56px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      border-top: 1px solid var(--border);
    }
body.project-photolab .btn-back{
      display: inline-flex;
      align-items: center;
      gap: 10px;
      font-family: var(--mono);
      font-size: 12px;
      letter-spacing: 0.1em;
      color: var(--ink);
      text-decoration: none;
      transition: gap 0.2s;
    }
body.project-photolab .btn-back:hover{ gap: 16px; }
body.project-photolab .btn-back svg{ transition: transform 0.2s; }
body.project-photolab .btn-back:hover svg{ transform: translateX(-4px); }
body.project-photolab .next-wrap{ text-align: right; }
body.project-photolab .next-label{
      font-family: var(--mono);
      font-size: 10px;
      letter-spacing: 0.14em;
      color: var(--muted);
      margin-bottom: 8px;
    }
body.project-photolab .next-link{
      font-family: var(--serif);
      font-size: 28px;
      font-weight: 700;
      font-style: normal;
      text-decoration: none;
      color: var(--ink);
      display: inline-flex;
      align-items: center;
      gap: 10px;
      transition: gap 0.2s, color 0.2s;
    }
body.project-photolab .next-link:hover{ gap: 16px; color: var(--orange); }
body.project-photolab /* ─── ILLUSTRATION ROW ─── */
    .illu-row{
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 32px;
      margin-top: 48px;
    }
body.project-photolab .illu-col{
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 20px;
    }
body.project-photolab .illu-wrap{
      width: 100%;
    }
body.project-photolab .illu-label{
      font-family: var(--serif);
      font-size: 16px;
      font-weight: 700;
      color: var(--ink);
      text-align: center;
      line-height: 1.3;
    }
body.project-photolab /* ─── IMAGE PLACEHOLDERS ─── */
    .hero-img-wrap{
      padding: 0 56px;
      margin-bottom: 96px;
    }
body.project-photolab .img-placeholder{
      background: linear-gradient(135deg, #E8E3D6 0%, #D5CFC0 100%);
      border-radius: var(--radius);
      border: 1px solid var(--border);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 12px;
      position: relative;
      overflow: hidden;
    }
body.project-photolab .img-placeholder::before{
      content: '';
      position: absolute;
      inset: 0;
      background: repeating-linear-gradient(
        -45deg,
        transparent, transparent 24px,
        rgba(0,0,0,0.018) 24px, rgba(0,0,0,0.018) 25px
      );
    }
body.project-photolab .img-placeholder .ph-icon{
      position: relative;
      z-index: 1;
      width: 40px; height: 40px;
      opacity: 0.3;
    }
body.project-photolab .img-placeholder span{
      position: relative;
      z-index: 1;
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: 0.1em;
      color: var(--muted);
    }
body.project-photolab .img-full{ width: 100%; height: 520px; }
body.project-photolab .img-half{ width: 100%; height: 360px; }
body.project-photolab .img-caption{
      font-family: 'Satoshi', sans-serif;
      font-size: 12px;
      color: var(--muted);
      line-height: 1.6;
      padding: 0 4px;
    }
body.project-photolab /* ─── DESKTOP SCREENS SCROLL ─── */
    .desktop-scroll-wrap{
      padding: 0 56px;
      margin-bottom: 96px;
    }
body.project-photolab .desktop-scroll{
      display: flex;
      gap: 20px;
      overflow-x: auto;
      padding-bottom: 12px;
      scrollbar-width: none;
      margin-left: -56px;
      margin-right: -56px;
      padding-left: 56px;
      padding-right: 56px;
    }
body.project-photolab .desktop-scroll::-webkit-scrollbar{ display: none; }
body.project-photolab .desktop-screen-col{
      display: flex;
      flex-direction: column;
      gap: 12px;
      flex-shrink: 0;
        flex: 0 0 calc((100vw - 56px * 2 - 20px * 2) / 2.4); /* ← ajouter ça */
    }
body.project-photolab .img-desktop{
      width: 100%;
      height: 420px;
      border-radius: var(--radius);
    }
body.project-photolab /* ─── REVEAL ANIMATIONS ─── */
    .reveal{
      opacity: 0;
      transform: translateY(28px);
      transition: opacity 0.75s cubic-bezier(0.16,1,0.3,1),
                  transform 0.75s cubic-bezier(0.16,1,0.3,1);
    }
body.project-photolab .reveal.visible{ opacity: 1; transform: none; }
body.project-photolab .reveal.d1{ transition-delay: 0.1s; }
body.project-photolab .reveal.d2{ transition-delay: 0.2s; }
body.project-photolab .reveal.d3{ transition-delay: 0.3s; }
@keyframes up {
      to { opacity: 1; transform: translateY(0); }
}
body.project-photolab /* ─── LIGHTBOX ─── */
    .lightbox-trigger{ cursor: zoom-in; }
body.project-photolab .lightbox-overlay{
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,0.92);
      z-index: 9999;
      align-items: center;
      justify-content: center;
      padding: 32px;
    }
body.project-photolab .lightbox-overlay.active{ display: flex; }
body.project-photolab .lightbox-overlay img{
      max-width: 100%;
      max-height: 100%;
      object-fit: contain;
      border-radius: 12px;
    }
body.project-photolab .lightbox-close{
      position: fixed;
      top: 24px;
      right: 24px;
      width: 40px;
      height: 40px;
      background: rgba(255,255,255,0.1);
      border: none;
      border-radius: 50%;
      color: #fff;
      font-size: 20px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      line-height: 1;
    }
body.project-photolab .lightbox-close:hover{ background: rgba(255,255,255,0.2); }
body.project-photolab /* ─── RESPONSIVE ─── */
    @media (max-width: 900px){
      nav { padding: 18px 24px; }
body.project-photolab .hero{ padding: 120px 24px 56px; }
body.project-photolab .hero-title{ font-size: 40px; white-space: normal; }
body.project-photolab .hero-meta{ flex-wrap: wrap; gap: 24px; }
body.project-photolab .meta-item{ border-right: none; padding-right: 0; margin-right: 0; }
body.project-photolab .kpi-strip{ grid-template-columns: 1fr; padding: 0 24px; }
body.project-photolab .hero-img-wrap{ padding: 0 24px; }
body.project-photolab .img-full{ height: 260px; }
body.project-photolab section{ padding: 64px 24px; }
body.project-photolab .s-layout{ grid-template-columns: 1fr; gap: 16px; }
body.project-photolab hr{ margin: 0 24px; }
body.project-photolab .img-row{ grid-template-columns: 1fr; }
body.project-photolab .img-half{ height: 240px; }
body.project-photolab .process-grid{ grid-template-columns: 1fr 1fr !important; }
body.project-photolab .insight-wrap{ padding: 0 24px; margin: 56px 0; }
body.project-photolab .insight-card{ padding: 48px 32px; }
body.project-photolab .results-section{ padding: 72px 24px; }
body.project-photolab .results-grid{ grid-template-columns: 1fr; }
body.project-photolab .project-footer{ padding: 56px 24px; flex-direction: column; gap: 40px; align-items: flex-start; }
body.project-photolab .next-wrap{ text-align: left; }
body.project-photolab .illu-row{ grid-template-columns: 1fr; }
body.project-photolab .desktop-scroll-wrap{ padding: 0 24px; }
body.project-photolab .desktop-scroll{ margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }
body.project-photolab .img-desktop{ width: 420px; height: 260px; }
}

.img-frame {
  background: #EDEAE0;
  border: 1px solid #DDD9CE;
  border-radius: 20px;
  padding: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.img-frame img {
  width: 100%;
  height: auto;
  border-radius: 12px;
  display: block;
}
.lightbox-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(26,23,20,0.92);
  z-index: 1000;
  align-items: center;
  justify-content: center;
  cursor: zoom-out;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.lightbox-overlay.active { display: flex; }
.lightbox-overlay img {
  max-width: 90vw;
  max-height: 90vh;
  object-fit: contain;
  border-radius: 12px;
  box-shadow: 0 40px 80px rgba(0,0,0,0.4);
}
.lightbox-close {
  position: fixed;
  top: 24px;
  right: 32px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: rgba(245,242,232,0.45);
  cursor: pointer;
  transition: color 0.2s;
  z-index: 1001;
}
.lightbox-close:hover { color: var(--bg); }
.img-frame img { cursor: zoom-in; }
.lightbox-arrow {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  color: rgba(245,242,232,0.5);
  cursor: pointer;
  transition: color 0.2s;
  padding: 24px;
  user-select: none;
}
.lightbox-arrow:hover { color: var(--bg); }
.lightbox-arrow--prev { left: 24px; }
.lightbox-arrow--next { right: 24px; }
.lightbox-counter {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: rgba(245,242,232,0.35);
}
/* ─── LIGHTBOX GLOBAL OVERRIDE ─── */
#lightbox-close {
  position: fixed;
  top: 24px;
  right: 32px;
  width: auto;
  height: auto;
  background: transparent;
  border: none;
  border-radius: 0;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: rgba(245,242,232,0.45);
  cursor: pointer;
  transition: color 0.2s;
  z-index: 1001;
  display: flex;
  align-items: center;
  justify-content: center;
}
#lightbox-close:hover { color: #F5F2E8; }

#lightbox-prev,
#lightbox-next {
  z-index: 1001;
}
.img-frame--persona {
  width: 560px;
  height: 360px;
  border-radius: 20px;
  overflow: hidden;
  flex-shrink: 0;
}
.img-frame--persona img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.img-frame--landscape {
  width: 400px;
  height: 260px;
  border-radius: 20px;
  overflow: hidden;
  flex-shrink: 0;
  padding: 24px;
  background: #EDEAE0;
  border: 1px solid #DDD9CE;
}
.img-frame--landscape img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 12px;
}
.img-frame--full {
  width: 100%;
  border-radius: 20px;
  overflow: hidden;
  padding: 24px;
  background: #EDEAE0;
  border: 1px solid #DDD9CE;
}
.img-frame--full img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
}
.scroll-imgs{
  cursor: grab;
}
@media (max-width: 768px) {
  /* GÉNÉRAL */
  body.home section { padding: 64px 24px; }
  body.home #hero { padding: 0; }
  body.home .smax { padding-right: 24px; }
  /* SIDE NAV */
  body.home .side-nav { display: none; }
  /* HERO */
  body.home .hero-content { padding: 80px 24px 48px; }
  body.home .hero-title { font-size: 40px; line-height: 1.05; margin-bottom: 36px; }
  body.home .hero-logo-wrap svg { height: 52px; }
  body.home .hero-cta-row { flex-direction: column; align-items: flex-start; gap: 10px; }
  body.home .hero-cta-row .btn { width: 100%; justify-content: center; }
  /* EXPERTISE */
  body.home .stitle { font-size: 24px; }
  body.home .exp-layout { grid-template-columns: 1fr; gap: 36px; }
  body.home .exp-side { position: static; }
  /* PROJECTS */
  body.home .pgrid { grid-template-columns: 1fr; }
  body.home .pc { grid-column: span 1 !important; }
  body.home .pc.feat { grid-template-columns: 1fr; }
  body.home .pc.feat .pvis { display: none; }
  /* PROCESS */
  body.home .proc-g { grid-template-columns: 1fr; }
  /* CONTACT */
  body.home #contact { padding: 64px 24px 80px; }
  body.home .ct { font-size: 40px; }
  body.home .hero-cta-row { flex-direction: column; align-items: flex-start; }
  /* HR */
  body.home hr { margin: 0 24px; }
  /* FOOTER */
  body.home footer { flex-direction: column; gap: 8px; text-align: center; }

  /* ─── AGICAP PROJECT ─── */
  /* NAV */
  body.project-agicap nav { padding: 18px 24px; }
  /* HERO */
  body.project-agicap .hero { padding: 0 24px 0; }
  body.project-agicap .hero-content { padding-top: 80px; }
  body.project-agicap .hero-title { font-size: 40px; line-height: 1.05; margin-bottom: 32px; }
  body.project-agicap .hero-bg-num { display: none; }
  body.project-agicap .kpi-strip { grid-template-columns: 1fr; margin: 0 -24px; }
  body.project-agicap .kpi-card { padding: 28px 24px; border-right: none; border-bottom: 1px solid rgba(245,242,232,0.1); }
  body.project-agicap .kpi-card:last-child { border-bottom: none; }
  /* SECTIONS */
  body.project-agicap section { padding: 56px 24px; }
  body.project-agicap .s-layout { grid-template-columns: 1fr; gap: 12px; }
  body.project-agicap .s-title { font-size: 28px; }
  body.project-agicap hr { margin: 0 24px; }
  /* IMAGES */
  body.project-agicap .hero-img-wrap { padding: 0 24px; margin-bottom: 48px; }
  body.project-agicap .img-row { grid-template-columns: 1fr; }
  body.project-agicap .img-full { height: 220px; }
  body.project-agicap .img-half { height: 200px; }
  body.project-agicap .scroll-imgs { padding: 0 24px 12px; margin-left: -24px; margin-right: -24px; }
  body.project-agicap .scroll-img-col { flex: 0 0 80vw; }
  /* PROCESS CARDS */
  body.project-agicap .process-grid { grid-template-columns: 1fr !important; }
  /* INSIGHT CARD */
  body.project-agicap .insight-wrap { padding: 0 24px; }
  body.project-agicap .insight-card { padding: 40px 28px; }
  body.project-agicap .insight-card--split { grid-template-columns: 1fr; }
  body.project-agicap .insight-img { min-height: 240px; }
  body.project-agicap .insight-body { padding: 40px 28px; }
  /* RESULTS */
  body.project-agicap .results-section { padding: 56px 24px; }
  body.project-agicap .results-grid { grid-template-columns: 1fr; }
  /* FOOTER */
  body.project-agicap .project-footer { padding: 48px 24px; flex-direction: column; gap: 32px; align-items: flex-start; }
  body.project-agicap .next-wrap { text-align: left; }

  /* ─── NATURALISATION PROJECT ─── */
  /* NAV */
  body.project-naturalisation nav { padding: 18px 24px; }
  /* HERO */
  body.project-naturalisation .hero { padding: 0 24px 0; }
  body.project-naturalisation .hero-content { padding-top: 80px; }
  body.project-naturalisation .hero-title { font-size: 40px; line-height: 1.05; margin-bottom: 32px; }
  body.project-naturalisation .hero-bg-num { display: none; }
  body.project-naturalisation .kpi-strip { grid-template-columns: 1fr; margin: 0 -24px; }
  body.project-naturalisation .kpi-card { padding: 28px 24px; border-right: none; border-bottom: 1px solid rgba(245,242,232,0.1); }
  body.project-naturalisation .kpi-card:last-child { border-bottom: none; }
  /* SECTIONS */
  body.project-naturalisation section { padding: 56px 24px; }
  body.project-naturalisation .s-layout { grid-template-columns: 1fr; gap: 12px; }
  body.project-naturalisation .s-title { font-size: 28px; }
  body.project-naturalisation hr { margin: 0 24px; }
  /* IMAGES */
  body.project-naturalisation .hero-img-wrap { padding: 0 24px; margin-bottom: 48px; }
  body.project-naturalisation .img-row { grid-template-columns: 1fr; }
  body.project-naturalisation .img-full { height: 220px; }
  body.project-naturalisation .img-half { height: 200px; }
  /* ILLUSTRATIONS */
  body.project-naturalisation .illu-row { grid-template-columns: 1fr 1fr; gap: 20px; }
  body.project-naturalisation .illu-col { align-items: flex-start; }
  /* PROCESS CARDS */
  body.project-naturalisation .process-grid { grid-template-columns: 1fr !important; }
  /* MOBILE SCREENS SCROLL */
  body.project-naturalisation .mobile-scroll-wrap { padding: 0 24px; margin-bottom: 48px; }
  body.project-naturalisation .mobile-scroll { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }
  body.project-naturalisation .mobile-screen-col { width: 160px !important; }
  /* INSIGHT CARD */
  body.project-naturalisation .insight-wrap { padding: 0 24px; }
  body.project-naturalisation .insight-card { padding: 40px 28px; }
  /* RESULTS */
  body.project-naturalisation .results-section { padding: 56px 24px; }
  body.project-naturalisation .results-grid { grid-template-columns: 1fr; }
  /* FOOTER */
  body.project-naturalisation .project-footer { padding: 48px 24px; flex-direction: column; gap: 32px; align-items: flex-start; }
  body.project-naturalisation .next-wrap { text-align: left; }

  /* ─── PHOTOLAB PROJECT ─── */
  /* NAV */
  body.project-photolab nav { padding: 18px 24px; }
  /* HERO */
  body.project-photolab .hero { padding: 0 24px 0; }
  body.project-photolab .hero-content { padding-top: 80px; }
  body.project-photolab .hero-title { font-size: 40px; line-height: 1.05; margin-bottom: 32px; }
  body.project-photolab .hero-bg-num { display: none; }
  body.project-photolab .kpi-strip { grid-template-columns: 1fr; margin: 0 -24px; }
  body.project-photolab .kpi-card { padding: 28px 24px; border-right: none; border-bottom: 1px solid rgba(245,242,232,0.1); }
  body.project-photolab .kpi-card:last-child { border-bottom: none; }
  /* SECTIONS */
  body.project-photolab section { padding: 56px 24px; }
  body.project-photolab .s-layout { grid-template-columns: 1fr; gap: 12px; }
  body.project-photolab .s-title { font-size: 28px; }
  body.project-photolab hr { margin: 0 24px; }
  /* IMAGES */
  body.project-photolab .hero-img-wrap { padding: 0 24px; margin-bottom: 48px; }
  body.project-photolab .img-full { height: 220px; }
  /* DESKTOP SCREENS SCROLL */
  body.project-photolab .desktop-scroll-wrap { padding: 0 24px; margin-bottom: 48px; }
  body.project-photolab .desktop-scroll { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }
  body.project-photolab .desktop-screen-col { flex: 0 0 80vw; }
  body.project-photolab .img-desktop { height: 240px; }
  /* PROCESS CARDS */
  body.project-photolab .process-grid { grid-template-columns: 1fr !important; }
  /* INSIGHT CARD */
  body.project-photolab .insight-wrap { padding: 0 24px; }
  body.project-photolab .insight-card { padding: 40px 28px; }
  /* RESULTS */
  body.project-photolab .results-section { padding: 56px 24px; }
  body.project-photolab .results-grid { grid-template-columns: 1fr; }
  /* FOOTER */
  body.project-photolab .project-footer { padding: 48px 24px; flex-direction: column; gap: 32px; align-items: flex-start; }
  body.project-photolab .next-wrap { text-align: left; }

  /* ─── DXO ONE PROJECT ─── */
  /* NAV */
  body.project-dxo-one nav { padding: 18px 24px; }
  body.project-dxo-one .nav-center { display: none; }
  /* HERO */
  body.project-dxo-one .hero { padding: 0 24px 0; }
  body.project-dxo-one .hero-content { padding-top: 80px; }
  body.project-dxo-one .hero-title { font-size: 40px; line-height: 1.05; margin-bottom: 32px; }
  body.project-dxo-one .hero-bg-num { display: none; }
  body.project-dxo-one .kpi-strip { grid-template-columns: 1fr 1fr; margin: 0 -24px; }
  body.project-dxo-one .kpi-card { padding: 28px 24px; border-right: none; border-bottom: 1px solid rgba(245,242,232,0.1); }
  body.project-dxo-one .kpi-card:nth-child(odd) { border-right: 1px solid rgba(245,242,232,0.1); }
  body.project-dxo-one .kpi-card:nth-last-child(-n+2) { border-bottom: none; }
  /* SECTIONS */
  body.project-dxo-one section { padding: 56px 24px; }
  body.project-dxo-one .s-layout { grid-template-columns: 1fr; gap: 12px; }
  body.project-dxo-one .s-title { font-size: 28px; }
  body.project-dxo-one hr { margin: 0 24px; }
  /* IMAGES */
  body.project-dxo-one .hero-img-wrap { padding: 0 24px; margin-bottom: 48px; }
  body.project-dxo-one .img-full { height: 220px; }
  body.project-dxo-one .img-frame--full { padding: 16px; }
  body.project-dxo-one .img-frame--landscape { width: 280px; height: 180px; padding: 12px; }
  body.project-dxo-one .img-frame--persona { width: 300px; height: 200px; }
  /* VIDEO */
  body.project-dxo-one .hero-img-wrap > div { width: 100% !important; padding-bottom: 56.22% !important; }
  /* SCROLL WRAPS */
  body.project-dxo-one .mobile-scroll-wrap { padding: 0 24px; margin-bottom: 48px; }
  body.project-dxo-one .mobile-scroll { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }
  /* QUOTE SLIDER */
  body.project-dxo-one .quote-segments { margin-top: 24px; }
  /* PROCESS CARDS */
  body.project-dxo-one .process-grid { grid-template-columns: 1fr !important; }
  /* INSIGHT CARD */
  body.project-dxo-one .insight-wrap { padding: 0 24px; }
  body.project-dxo-one .insight-card { padding: 40px 28px; }
  /* FRAMES - hauteur auto sur mobile */
body.project-dxo-one .img-frame { height: auto; padding: 16px; }
body.project-dxo-one .img-frame--full { height: auto; }
body.project-dxo-one .img-frame--landscape { height: auto; min-height: unset; }
body.project-dxo-one .img-frame--persona { height: auto; min-height: unset; }
body.project-dxo-one .img-frame img,
body.project-dxo-one .img-frame--full img,
body.project-dxo-one .img-frame--landscape img,
body.project-dxo-one .img-frame--persona img { height: auto; object-fit: contain; }

/* IMG ROW - empilé sur mobile */
body.project-dxo-one .img-row { grid-template-columns: 1fr; gap: 16px; }

/* HERO IMG WRAP - pas de hauteur fixe */
body.project-dxo-one .hero-img-wrap { padding: 0 24px; margin-bottom: 48px; }
  /* RESULTS */
  body.project-dxo-one .results-section { padding: 56px 24px; }
  body.project-dxo-one .results-grid { grid-template-columns: 1fr 1fr !important; gap: 12px; }
  /* FOOTER */
  body.project-dxo-one .project-footer { padding: 48px 24px; flex-direction: column; gap: 32px; align-items: flex-start; }
  body.project-dxo-one .next-wrap { text-align: left; }
}