:root{
    --ink:#0B1D33;
    --ink-2:#16304F;
    --ink-soft:#4C6076;
    --blue:#1B5FA8;
    --blue-deep:#0F3D71;
    --blue-bright:#2AACE2;
    --paper:#F6F8FA;
    --paper-2:#EBF0F5;
    --paper-3:#DDE6EE;
    --gold:#C6A24D;
    --gold-soft:#E9DCB8;
    --line:rgba(11,29,51,0.12);
    --white:#FFFFFF;
    --shadow: 0 20px 50px -20px rgba(11,29,51,0.35);
    --radius: 14px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html, body{
  width:100%;
  overflow-x:hidden;
  background-color:var(--ink); /* évite le flash blanc au rebond iOS (haut et bas de page) */
}
main{background:var(--paper);}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Inter', sans-serif;
    color:var(--ink);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}
  .display{font-family:'Fraunces', serif;}
  .mono{font-family:'IBM Plex Mono', monospace; letter-spacing:0.02em;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
  header .wrap{
  max-width:100%;
  padding-left:clamp(20px, 4vw, 64px);
  padding-right:clamp(20px, 4vw, 64px);
}
  section{position:relative;}
  .eyebrow{
    display:inline-flex; align-items:center; gap:10px;
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px; letter-spacing:0.12em; text-transform:uppercase;
    color:var(--blue-deep); font-weight:600;
    margin-bottom:18px;
  }
  /* Tiret doré retiré par défaut — réactivé uniquement pour "Références" */
  .eyebrow::before{
    content:none;
  }
  h1,h2,h3{font-family:'Fraunces', serif; font-weight:620; line-height:1.12; color:var(--ink);}
  h2{font-size:clamp(28px,3.6vw,44px); letter-spacing:-0.01em;}
  .section-head{max-width:660px; margin-bottom:52px;}
  .section-head p{color:var(--ink-soft); font-size:16.5px; margin-top:16px; max-width:560px;}
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:14px 26px; border-radius:999px;
    font-weight:600; font-size:14.5px;
    border:1px solid transparent; cursor:pointer;
    transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
    white-space:nowrap;
  }
  .btn-primary{background:var(--gold); color:var(--ink);}
  .btn-primary:hover{transform:translateY(-2px); box-shadow:0 14px 30px -12px rgba(198,162,77,0.55);}
  .btn-ghost{border-color:rgba(255,255,255,0.35); color:var(--white);}
  .btn-ghost:hover{background:rgba(255,255,255,0.1); transform:translateY(-2px);}
  .btn-outline{border-color:var(--line); color:var(--ink);}
  .btn-policy{
  display:inline-flex; align-items:center; gap:9px;
  margin-top:22px;
  padding:12px 22px; border-radius:999px;
  font-weight:600; font-size:14px; color:var(--white);
  background:transparent;
  border:1px solid rgba(255,255,255,0.3);
  cursor:pointer;
  transition:transform .25s ease, background .25s ease, border-color .25s ease;
}
.btn-policy svg{width:16px; height:16px; flex-shrink:0;}
.btn-policy:hover{
  background:rgba(255,255,255,0.08);
  border-color:rgba(255,255,255,0.5);
  transform:translateY(-2px);
}
  .btn-outline:hover{border-color:var(--blue); color:var(--blue-deep); transform:translateY(-2px);}
  .btn-header-cta{
    display:inline-flex; align-items:center; gap:9px;
    padding:12px 24px; border-radius:999px;
    font-weight:600; font-size:14px; color:var(--white);
    background:linear-gradient(135deg, var(--blue-bright), var(--blue) 65%, var(--blue-deep));
    border:none; cursor:pointer;
    box-shadow:0 10px 24px -10px rgba(27,95,168,0.6);
    transition:transform .25s ease, box-shadow .25s ease, filter .25s ease;
  }
  .btn-header-cta svg{width:14px; height:14px; transition:transform .25s ease;}
  .btn-header-cta:hover{
    transform:translateY(-2px);
    box-shadow:0 16px 30px -10px rgba(42,172,226,0.65);
    filter:brightness(1.06);
  }
  .btn-header-cta:hover svg{transform:translateX(3px);}

  /* ===== BOUTON ORGANIGRAMME ===== */
.positioning-actions{
  display:flex; gap:14px; flex-wrap:wrap; margin-top:22px;
}
.positioning-actions .btn-policy{ margin-top:0; }

/* ===== MODAL ORGANIGRAMME ===== */
.org-modal-overlay{
  position:fixed; inset:0; z-index:300;
  background:rgba(6,13,24,0.75);
  backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  opacity:0; visibility:hidden;
  transition:opacity .3s ease, visibility 0s linear .3s;
}
.org-modal-overlay.open{
  opacity:1; visibility:visible;
  transition:opacity .3s ease, visibility 0s linear 0s;
}
.org-modal-box{
  width:100%; max-width:1080px; max-height:88vh;
  overflow:auto;
  background:var(--white);
  border-radius:20px;
  box-shadow:0 40px 90px -20px rgba(0,0,0,0.55);
  transform:translateY(18px) scale(0.98);
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
  scrollbar-width:thin; scrollbar-color:var(--paper-3) var(--paper);
}
.org-modal-overlay.open .org-modal-box{transform:translateY(0) scale(1);}
.org-modal-box::-webkit-scrollbar{width:9px; height:9px;}
.org-modal-box::-webkit-scrollbar-track{background:var(--paper); border-radius:20px;}
.org-modal-box::-webkit-scrollbar-thumb{background:var(--paper-3); border-radius:20px; border:2px solid var(--paper); background-clip:padding-box;}

.org-modal-close{
  position:sticky; top:0; z-index:5; float:right; margin:16px 16px 0 0;
  width:38px; height:38px; border-radius:50%;
  background:var(--paper); border:1px solid var(--line); color:var(--ink);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .2s ease, color .2s ease, transform .2s ease;
}
.org-modal-close svg{width:16px; height:16px;}
.org-modal-close:hover{background:var(--ink); color:var(--white); transform:rotate(90deg);}

.org-modal-head{padding:8px 34px 22px; border-bottom:1px dashed var(--line);}
.org-modal-head h3{font-family:'Fraunces',serif; font-size:24px; font-weight:640; margin-bottom:10px; color:var(--ink);}
.org-modal-head p{font-size:14.5px; line-height:1.65; color:var(--ink-soft); max-width:640px;}

.org-chart-scroll{
  padding:44px 24px 48px;
  overflow-x:auto;
  scroll-behavior:smooth;
}

/* --- arbre CSS pur --- */
.org-tree, .org-tree ul{
  display:flex; justify-content:center;
  list-style:none; margin:0; padding:0; position:relative;
  min-width:max-content;
}
.org-tree li{
  display:flex; flex-direction:column; align-items:center;
  padding:32px 14px 0; position:relative;
}
.org-tree li::before, .org-tree li::after{
  content:''; position:absolute; top:0; right:50%;
  border-top:1.5px solid var(--line);
  width:50%; height:32px;
}
.org-tree li::after{ right:auto; left:50%; border-left:1.5px solid var(--line); }
.org-tree li:only-child{ padding-top:0; }
.org-tree li:only-child::before, .org-tree li:only-child::after{ display:none; }
.org-tree li:first-child::before{ border:none; }
.org-tree li:last-child::after{ border:none; }
.org-tree li:first-child::after{ border-radius:6px 0 0 0; }
.org-tree li:last-child::before{ border-right:1.5px solid var(--line); border-radius:0 6px 0 0; }
.org-tree > li{ padding-top:0; }
.org-tree > li::before, .org-tree > li::after{ display:none; }
.org-tree ul::before{
  content:''; position:absolute; top:0; left:50%;
  border-left:1.5px solid var(--line); width:0; height:32px;
}

.org-node{
  display:inline-flex; flex-direction:column; align-items:center; gap:3px;
  background:var(--white); border:1px solid var(--line); border-radius:12px;
  padding:14px 18px; min-width:170px;
  box-shadow:0 10px 22px -14px rgba(11,29,51,0.3);
}
.org-node-role{
  font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--blue-deep); text-align:center;
}
.org-node-name{ font-family:'Fraunces',serif; font-size:14.5px; font-weight:620; color:var(--ink); text-align:center; }
.org-node-contact, .org-node-sub{
  font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--ink-soft); text-align:center;
}
.org-node-dg{
  border-color:var(--gold); background:linear-gradient(160deg, var(--ink) 0%, var(--blue-deep) 100%);
  min-width:220px; padding:18px 26px;
}
.org-node-dg .org-node-role{ color:var(--gold); }
.org-node-dg .org-node-name{ color:var(--white); font-size:17px; }
.org-node-dg .org-node-contact{ color:rgba(255,255,255,0.65); }
.org-node-sm{ min-width:150px; padding:11px 14px; }
.org-node-sm .org-node-role{ font-size:9.5px; }
.org-node-sm .org-node-name{ font-size:13px; }
.org-node-generic{ border-style:dashed; background:var(--paper-2); }

@media (max-width:640px){
  .org-modal-head{padding:8px 22px 20px;}
  .org-chart-scroll{padding:32px 18px 36px;}
}

/* ===== ÉCRAN DE CHARGEMENT ===== */
#pageLoader{
  position:fixed; inset:0; z-index:500;
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  gap:22px;
  background:radial-gradient(ellipse at center, var(--ink-2) 0%, var(--ink) 75%);
  transition:opacity .6s ease, visibility 0s linear .6s;
}
#pageLoader.loader-hidden{ opacity:0; visibility:hidden; }

.loader-ring-wrap{ position:relative; width:132px; height:132px; display:flex; align-items:center; justify-content:center; }
.loader-ring-wrap svg{ width:100%; height:100%; position:absolute; inset:0; }
.loader-ring-bg{ fill:none; stroke:rgba(255,255,255,0.08); stroke-width:2; }
.loader-ring-arc{
  fill:none; stroke:url(#loaderGrad); stroke-width:2.6; stroke-linecap:round;
  stroke-dasharray:70 400;
  transform-origin:50% 50%;
  animation:loaderSpin 1.6s cubic-bezier(.5,0,.5,1) infinite;
}
@keyframes loaderSpin{ to{ transform:rotate(360deg); } }

.loader-logo{
  width:76px; height:76px; border-radius:50%; position:relative; z-index:1;
  box-shadow:0 0 22px rgba(42,172,226,0.28);
}

.loader-text{
  font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:0.12em;
  text-transform:uppercase; color:rgba(255,255,255,0.55);
  display:flex; align-items:center; gap:8px;
}
.loader-text .dots span{ animation:loaderDots 1.4s infinite; opacity:0; }
.loader-text .dots span:nth-child(2){ animation-delay:.2s; }
.loader-text .dots span:nth-child(3){ animation-delay:.4s; }
@keyframes loaderDots{ 0%,100%{opacity:0;} 50%{opacity:1;} }

@media (prefers-reduced-motion: reduce){
  .loader-ring-arc{ animation:none; }
}

  /* ===== NAV ===== */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:18px 0;
    transition:background .35s ease, padding .35s ease, box-shadow .35s ease;
  }
  header.scrolled{
    background:rgba(11,29,51,0.92);
    backdrop-filter:blur(10px);
    padding:12px 0;
    box-shadow:0 10px 30px -18px rgba(0,0,0,0.5);
  }
  header.menu-open{
  backdrop-filter:none !important;
  background:rgba(11,29,51,0.98);
}
  nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(12px, 2vw, 24px);
  flex-wrap:nowrap;
}
  .brand{display:flex; align-items:center; gap:12px; flex-shrink:0;}
  .brand img{width:42px; height:42px; border-radius:50%;}
  .brand-text{display:flex; flex-direction:column; line-height:1.15;}
  .brand-text strong{color:var(--white); font-family:'Fraunces',serif; font-size:16.5px; letter-spacing:0.01em;}
  .brand-text span{color:var(--paper-3); font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.12em; text-transform:uppercase;}
  .nav-links{
  display:flex;
  align-items:center;
  gap:clamp(14px, 1.8vw, 30px);
}
  .nav-links a{
  color:var(--paper-2);
  font-size:clamp(12.5px, 1vw, 14px);
  font-weight:500;
  opacity:0.88;
  transition:opacity .2s;
  white-space:nowrap;
}
  .nav-links a:hover{opacity:1;}
  .nav-cta{display:flex; align-items:center; gap:16px; flex-shrink:0;}
  .burger{display:none; width:26px; height:20px; position:relative; cursor:pointer; background:none; border:none;}
  .burger span{position:absolute; left:0; right:0; height:2px; background:var(--white); transition:.3s;}
  .burger span{ transition: transform .25s ease, opacity .2s ease; }
.burger.open span:nth-child(1){ transform: translateY(9px) rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ transform: translateY(-9px) rotate(-45deg); }

.nav-links.mobile-open{
  display:flex;
  position:fixed;
  top:64px; left:0; right:0; bottom:0;
  background:rgba(11,29,51,0.98);
  backdrop-filter:blur(10px);
  flex-direction:column;
  align-items:flex-start;
  padding:28px;
  gap:20px;
  overflow-y:auto;
  z-index:99;
}
.nav-links.mobile-open a{ font-size:16px; opacity:1; }
.nav-links.mobile-open a{ font-size:16px; opacity:1; }
.nav-links.mobile-open .nav-mobile-cta{ display:inline-flex; }
.nav-mobile-cta{
    display:none;
    margin-top:10px;
    padding:14px 26px; border-radius:999px;
    font-weight:600; font-size:15px !important; color:var(--white) !important;
    background:linear-gradient(135deg, var(--blue-bright), var(--blue) 65%, var(--blue-deep));
    box-shadow:0 10px 24px -10px rgba(27,95,168,0.6);
    opacity:1 !important;
  }
  .burger span:nth-child(1){top:0;} .burger span:nth-child(2){top:9px;} .burger span:nth-child(3){top:18px;}

 /* ===== HERO ===== */
  .hero{
    position:relative;
    min-height:100vh;
    min-height:100svh;
    display:flex;
    align-items:center;
    color:var(--white);
    overflow:hidden;
    padding:150px 0 70px;
    background:var(--ink);
  }
  .hero-video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:0;}
  .hero-overlay{
    position:absolute; inset:0; z-index:1;
    background:linear-gradient(90deg, rgba(6,13,24,0.92) 0%, rgba(6,13,24,0.72) 32%, rgba(6,13,24,0.35) 60%, rgba(6,13,24,0.55) 100%);
  }
  .hero .wrap{
    max-width:100%;
    margin:0;
    padding-left:clamp(24px, 6vw, 80px);
    padding-right:clamp(24px, 6vw, 80px);
    position:relative; z-index:2; width:100%;
  }
  .hero-grid{display:grid; grid-template-columns:minmax(0, 680px) 1fr; gap:40px; align-items:center;}
  .hero-eyebrow{
    display:flex; align-items:center; gap:10px;
    font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.14em; text-transform:uppercase;
    color:rgba(255,255,255,0.8); margin-bottom:22px;
    opacity:1; animation:heroReveal .75s cubic-bezier(.2,.8,.2,1) .08s both;
  }

  .hero h1{font-size:clamp(30px, 2.6vw, 42px); line-height:1.18; font-weight:680; letter-spacing:-0.015em; color:var(--white); min-height:2.5em; opacity:1; animation:heroReveal .85s cubic-bezier(.2,.8,.2,1) .2s both;}
  .hero h1 .accent{color:var(--blue-bright);}
  .typewrite{border-right:3px solid var(--blue-bright); padding-right:4px; white-space:pre-wrap; animation:caret-blink 0.9s steps(1) infinite;}
  @media (min-width: 1181px){
    .typewrite{ white-space: nowrap; }
  }
  @keyframes caret-blink{50%{border-color:transparent;}}
  @keyframes heroReveal{
  from{ opacity:0; transform:translateY(22px); }
  to{ opacity:1; transform:translateY(0); }
}
  .hero-sub{margin-top:22px; font-size:17.5px; line-height:1.6; color:rgba(255,255,255,0.8); max-width:500px;  opacity:1; animation:heroReveal .85s cubic-bezier(.2,.8,.2,1) .36s both;}
  .hero-actions{display:flex; gap:14px; margin-top:36px; flex-wrap:wrap; opacity:1; animation:heroReveal .85s cubic-bezier(.2,.8,.2,1) .52s both;}
  .btn-hero-primary{
    display:inline-flex; align-items:center; gap:10px; padding:15px 28px; border-radius:999px;
    font-weight:600; font-size:14.5px; border:none; cursor:pointer; color:var(--white);
    background:var(--blue);
    transition:transform .25s ease, background .25s ease;
  }
  .btn-hero-primary:hover{transform:translateY(-2px); background:var(--blue-bright);}
  .btn-hero-ghost{
    display:inline-flex; align-items:center; gap:10px; padding:15px 26px; border-radius:999px;
    font-weight:600; font-size:14.5px; color:var(--white);
    border:1px solid rgba(255,255,255,0.35); background:transparent;
    transition:transform .25s ease, background .25s ease;
  }
  .btn-hero-ghost:hover{background:rgba(255,255,255,0.1); transform:translateY(-2px);}
  .hero-stats-grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(0,1fr));
  gap:10px;
  margin-top:52px;
  max-width:680px;
  opacity:1;
  animation:heroReveal .85s cubic-bezier(.2,.8,.2,1) .68s both;
}
.hstat-card{
  padding:14px 10px;
  border-radius:12px;
  background:rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.12);
  transition:transform .25s ease, background .25s ease;
  min-width:0;
}
.hstat-card:hover{transform:translateY(-3px); background:rgba(255,255,255,0.09);}
.hstat-card b{
  display:block;
  font-family:'Fraunces',serif;
  font-size:19px;
  color:var(--white);
  font-weight:640;
  white-space:nowrap;
}
.hstat-card span{
  font-size:9.5px;
  color:rgba(255,255,255,0.6);
  font-family:'IBM Plex Mono',monospace;
  letter-spacing:0.02em;
  text-transform:uppercase;
  display:block;
  margin-top:4px;
  line-height:1.3;
}

  /* Emblem / badge column */
  .hero-badge-wrap{position:relative; display:flex; align-items:center; justify-content:flex-end; height:400px; padding-right:clamp(0px, 4vw, 40px); opacity:1; animation:heroReveal 1.05s cubic-bezier(.2,.8,.2,1) .3s both;}
  .hero-emblem{position:relative; z-index:2; width:280px; height:280px; animation:badgeFloat 6s ease-in-out infinite; filter:drop-shadow(0 26px 46px rgba(6,13,24,0.5));}
  @keyframes badgeFloat{0%,100%{transform:translateY(0);} 50%{transform:translateY(-12px);}}
  /* ===== CADRAN DE VIGILANCE (signature hero) ===== */
  .dial-ticks{ stroke:rgba(255,255,255,0.32); opacity:0.9; }
  .dial-arc{ opacity:0.95; }
  .dial-day{ stroke:var(--gold); }
  .dial-night{ stroke:#0B3A66; }
  .dial-label{
    font-family:'IBM Plex Mono',monospace;
    font-size:9.5px;
    letter-spacing:0.08em;
    fill:rgba(255,255,255,0.55);
  }
  .vigil-blip{
    fill:var(--blue-bright);
    animation:blipPulse 3.4s ease-in-out infinite;
  }
  @keyframes blipPulse{
    0%,100%{ opacity:.4; }
    50%{ opacity:1; }
  }
  .vigil-sweep{
    transform-origin:150px 150px;
    animation:sweepRotate 26s linear infinite;
  }
  @keyframes sweepRotate{ to{ transform:rotate(360deg); } }
  .sweep-line{ stroke:rgba(255,255,255,0.85); }
  .sweep-tip{ fill:var(--blue-bright); }

  @media (max-width: 620px){
    .dial-label{ display:none; }
  }
  .badge-ring-static{position:absolute; z-index:1; border-radius:50%; border:1px dashed rgba(255,255,255,0.14);}
  .badge-ring-static.r1{width:320px; height:320px;}
  .badge-ring-static.r2{width:352px; height:352px; border-color:rgba(255,255,255,0.07);}

  .scroll-cue{position:absolute; z-index:2; bottom:20px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:8px; color:rgba(255,255,255,0.5);}
  .scroll-cue span{font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase;}
  .scroll-cue svg{animation:chevronBounce 1.8s ease-in-out infinite;}
  
  @keyframes chevronBounce{0%,100%{transform:translateY(0); opacity:.4;} 50%{transform:translateY(6px); opacity:1;}}

  @media (max-width: 1180px){
    .hero-grid{grid-template-columns:1fr; text-align:left;}
    .hero-badge-wrap{height:260px; margin-top:10px; justify-content:center; padding-right:0;}
    .hero-emblem{width:210px; height:210px;}
    .badge-ring-static.r1{width:240px;height:240px;}
    .badge-ring-static.r2{width:268px;height:268px;}
    .hero-stats-grid{grid-template-columns:repeat(2,1fr); max-width:100%;}
  }
  @media (max-width: 620px){
    .hero{padding:140px 0 80px;}
    .hero-actions{flex-direction:column; align-items:stretch;}
    .btn-hero-primary, .btn-hero-ghost{justify-content:center;}
    .hero-video{object-position:center center;}
  }
  @media (max-width: 560px){
  .hero-stats-grid{grid-template-columns:repeat(2,1fr);}
  .hstat-card:last-child{
    grid-column:1 / -1;
    max-width:160px;
    margin:0 auto;
    text-align:center;
  }
}

  /* ===== TRUST MARQUEE / BANDEAU LEGAL ===== */
.trust{
  background:var(--paper-2);
  padding:16px 0;
  overflow:hidden;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.trust-label{display:none;}
.marquee{display:flex; width:max-content; animation:scroll 34s linear infinite;}
.marquee:hover{animation-play-state:paused;}
.marquee span{
  color:var(--ink); font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:600;
  letter-spacing:0.06em; text-transform:uppercase; padding:0 28px;
  white-space:nowrap; display:flex; align-items:center; gap:28px;
}
.marquee span::after{content:'•'; color:var(--gold); font-size:12px; font-weight:400;}
.marquee span.legal{
  font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:600;
  letter-spacing:0.06em; color:var(--ink); text-transform:uppercase;
}
.marquee span.legal b{
  color:var(--ink); font-weight:600;
}
  @keyframes scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

  /* ===== POSITIONNEMENT ===== */
  .positioning{
    background:var(--paper);
    padding:90px 0 80px;
  }
  .pillars-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
    margin-top:48px;
    border-top:1px solid var(--line);
    padding-top:44px;
  }
  .pillar-item{
    padding-right:20px;
  }
  .pillar-num{
    display:block;
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:0.1em;
    color:var(--gold);
    margin-bottom:14px;
  }
  .pillar-item h4{
    font-family:'Fraunces',serif;
    font-size:18px;
    font-weight:620;
    color:var(--ink);
    margin-bottom:8px;
  }
  .pillar-item p{
    font-size:14px;
    line-height:1.6;
    color:var(--ink-soft);
  }
  @media (max-width: 780px){
    .pillars-grid{grid-template-columns:1fr; gap:32px;}
  }
  .agrement .pillars-grid{border-top-color:rgba(255,255,255,0.16);}
  .agrement .pillar-item h4{color:var(--white);}
  .agrement .pillar-item p{color:rgba(255,255,255,0.65);}
  @media (max-width: 780px){
  .pillars-grid{
    grid-template-columns:1fr;
    gap:32px;
    border-top-width:1.5px;
    padding-top:36px;
    margin-top:36px;
  }
  .agrement .pillars-grid{
    border-top-color:rgba(255,255,255,0.30);
  }
}
/* ===== AGREMENT / POSITIONNEMENT ===== */
.agrement{
  background:linear-gradient(160deg, var(--ink) 0%, var(--blue-deep) 70%, var(--ink-2) 100%);
  color:var(--white);
  padding:90px 0 240px;
  position:relative;
  overflow:hidden;
}
.agrement::before{
  content:''; position:absolute; inset:0; opacity:0.1;
  background-image:linear-gradient(rgba(255,255,255,0.5) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.5) 1px, transparent 1px);
  background-size:56px 56px;
}
.positioning-watermark{
  position:absolute;
  top:8px;
  left:0; right:0;
  max-width:1180px;
  margin:0 auto;
  padding:0 28px;
  text-align:right;
  font-family:'Fraunces',serif;
  font-weight:680;
  font-size:clamp(36px, 5.5vw, 84px);
  line-height:1;
  letter-spacing:-0.01em;
  color:transparent;
  -webkit-text-stroke:1px rgba(255,255,255,0.07);
  white-space:nowrap;
  z-index:0;
  pointer-events:none;
  user-select:none;
  overflow:hidden;
}
@media (max-width: 900px){
  .positioning-watermark{
    font-size:clamp(30px, 10vw, 44px);
    top:16px;
    color:rgba(255,255,255,0.07);
    -webkit-text-stroke:0;
  }
}
@media (max-width: 560px){
  .positioning-watermark{
    display:block;
    z-index:2;
    font-size:clamp(24px, 11vw, 32px);
    top:10px;
    color:rgba(255,255,255,0.09);
  }
}
.agrement-inner{position:relative; z-index:1;}
.agrement .section-head{max-width:640px; margin-bottom:0;}
.agrement .eyebrow{color:var(--blue-bright);}
.agrement .section-head h2{color:var(--white); font-size:clamp(26px,3vw,36px);}
.agrement .section-head p{color:rgba(255,255,255,0.68); font-size:15.5px; max-width:600px;}

/* ===== MOT DE LA DIRECTION GENERALE ===== */
/* La carte remonte (margin-top négatif) dans le fond sombre allongé de .agrement,
   et sa photo déborde en bas sur le fond clair de .services. */
.dg-word{
  position:relative;
  z-index:2;
  margin-top:-180px;
  padding:0 0 0;
}
.dg-word .wrap{max-width:1180px; margin:0 auto;}

.dg-word-card{
  position:relative;
  background:linear-gradient(160deg, var(--ink) 0%, var(--blue-deep) 70%, var(--ink-2) 100%);
  border:1px solid rgba(198,162,77,0.3);
  border-radius:22px;
  padding:54px 60px;
  box-shadow:0 40px 90px -24px rgba(11,29,51,0.55);
  overflow:visible;
}

.dg-word-quote-icon{
  width:48px;
  height:auto;
  color:var(--gold);
  margin-bottom:18px;
  display:block;
}

.dg-word-content{max-width:560px;}
.dg-word .eyebrow{color:var(--blue-bright); margin-bottom:14px;}

.dg-word-quote{
  margin:0 0 24px;
  font-family:'Fraunces',serif;
  font-weight:500;
  font-style:italic;
  font-size:clamp(19px, 2vw, 25px);
  line-height:1.55;
  color:var(--white);
}

.dg-word-lead{
  font-size:15px;
  line-height:1.7;
  color:rgba(255,255,255,0.68);
  max-width:520px;
  margin-bottom:26px;
}

.dg-word-cta{
  display:inline-flex; align-items:center; gap:9px;
  padding:12px 22px; border-radius:999px;
  font-weight:600; font-size:14px; color:var(--ink);
  background:var(--gold); border:none; cursor:pointer;
  transition:transform .25s ease, box-shadow .25s ease;
}
.dg-word-cta svg{width:15px; height:15px; transition:transform .25s ease;}
.dg-word-cta:hover{transform:translateY(-2px); box-shadow:0 14px 30px -12px rgba(198,162,77,0.5);}
.dg-word-cta:hover svg{transform:translateX(3px);}

.dg-word-readtime{
  display:block;
  margin-top:10px;
  margin-bottom:28px;
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.06em;
  color:rgba(255,255,255,0.45);
}

.dg-word-author{
  font-family:'Inter',sans-serif;
  font-size:14px;
  color:rgba(255,255,255,0.7);
}
.dg-word-author b{color:var(--white); font-weight:600;}
.dg-word-sep{margin:0 10px; color:var(--gold);}

.dg-word-photo{
  position:absolute;
  right:56px;
  top:24px;
  bottom:24px;
  width:300px;
  object-fit:cover;
  object-position:center center;
  border-radius:18px;
  border:4px solid var(--paper);
  background:linear-gradient(160deg, var(--blue-deep), var(--ink));
  box-shadow:0 26px 44px -16px rgba(11,29,51,0.45);
}

.dg-word-author-row{display:flex; align-items:center; gap:14px;}
.dg-word-avatar-mobile{display:none;}

@media (max-width: 860px){
   .dg-word{margin-top:-170px; padding-bottom:30px;}

  .dg-word-card{padding:44px 30px 40px;}
  .dg-word-content{max-width:none;}

  .dg-word-photo{display:none;}

  .dg-word-avatar-mobile{
    display:block;
    width:56px;
    height:56px;
    flex-shrink:0;
    border-radius:50%;
    object-fit:cover;
    object-position:center center;
    border:3px solid var(--gold);
  }
}
@media (max-width: 560px){
  .dg-word{margin-top:-110px;}
}

/* ===== MODAL LETTRE DU DG ===== */
.dg-modal-overlay{
  position:fixed; inset:0; z-index:300;
  background:rgba(6,13,24,0.8);
  backdrop-filter:blur(5px);
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  opacity:0; visibility:hidden;
  transition:opacity .3s ease, visibility 0s linear .3s;
}
.dg-modal-overlay.open{
  opacity:1; visibility:visible;
  transition:opacity .3s ease, visibility 0s linear 0s;
}
.dg-modal-box{
  position:relative;
  width:100%; max-width:680px; max-height:88vh;
  overflow-y:auto;
  background:var(--paper);
  border-radius:20px;
  box-shadow:0 50px 100px -24px rgba(0,0,0,0.6);
  transform:translateY(18px) scale(0.98);
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
  scrollbar-width:thin; scrollbar-color:var(--paper-3) var(--paper);
}
.dg-modal-overlay.open .dg-modal-box{transform:translateY(0) scale(1);}
.dg-modal-box::-webkit-scrollbar{width:9px;}
.dg-modal-box::-webkit-scrollbar-track{background:var(--paper); border-radius:20px;}
.dg-modal-box::-webkit-scrollbar-thumb{background:var(--paper-3); border-radius:20px; border:2px solid var(--paper); background-clip:padding-box;}

.dg-modal-close{
  position:absolute; top:20px; right:20px; z-index:6;
  width:38px; height:38px; border-radius:50%;
  background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.25); color:var(--white);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  backdrop-filter:blur(3px);
  transition:background .2s ease, transform .2s ease;
}
.dg-modal-close svg{width:16px; height:16px;}
.dg-modal-close:hover{background:rgba(255,255,255,0.22); transform:rotate(90deg);}

/* --- en-tête lettre --- */
.dg-letter-head{
  position:relative;
  overflow:hidden;
  background:linear-gradient(160deg, var(--ink) 0%, var(--blue-deep) 70%, var(--ink-2) 100%);
  padding:34px 44px 46px;
}
.dg-letter-head-grid{
  position:absolute; inset:0; opacity:0.1;
  background-image:linear-gradient(rgba(255,255,255,0.5) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.5) 1px, transparent 1px);
  background-size:34px 34px;
}
.dg-letter-meta{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:12px;
  margin-bottom:22px;
}
.dg-letter-logo{width:34px; height:34px; border-radius:50%; flex-shrink:0;}
.dg-letter-meta-text{display:flex; flex-direction:column; gap:3px;}
.dg-letter-meta-text b{font-family:'Fraunces',serif; font-size:14.5px; font-weight:620; color:var(--white);}
.dg-letter-meta-text span{font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:0.06em; text-transform:uppercase; color:var(--blue-bright);}

.dg-letter-head h3{
  position:relative; z-index:1;
  font-family:'Fraunces',serif; font-weight:560; font-style:italic;
  font-size:clamp(22px, 3vw, 30px); line-height:1.32;
  color:var(--white);
  max-width:520px;
}

/* --- corps lettre --- */
.dg-letter-body{
  position:relative;
  padding:0 44px 40px;
}
.dg-letter-quote{
  width:44px; height:auto;
  color:var(--gold);
  margin-top:-24px;
  margin-bottom:14px;
  position:relative; z-index:2;
  filter:drop-shadow(0 4px 10px rgba(198,162,77,0.35));
}
.dg-letter-body p{
  font-size:15.5px; line-height:1.85; color:var(--ink-soft);
  margin-bottom:20px;
}
.dg-letter-drop::first-letter{
  font-family:'Fraunces',serif;
  font-weight:640;
  font-size:56px;
  line-height:0.8;
  float:left;
  padding:4px 10px 0 0;
  color:var(--gold);
}
.dg-letter-pullquote{
  margin:8px 0 26px;
  padding:6px 0 6px 24px;
  border-left:2.5px solid var(--gold);
  font-family:'Fraunces',serif; font-style:italic; font-weight:500;
  font-size:19px; line-height:1.55; color:var(--ink);
}
.dg-letter-thanks{
  font-family:'Fraunces',serif; font-style:italic; font-size:16.5px; color:var(--ink);
  margin-top:4px; margin-bottom:0;
}

.dg-letter-sign{
  display:flex; align-items:center; gap:18px;
  margin-top:30px; padding-top:26px;
  border-top:1px dashed var(--line);
}
.dg-letter-stamp{
  flex-shrink:0;
  width:64px; height:64px; border-radius:50%;
  border:1.5px solid var(--gold);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px;
  transform:rotate(-6deg);
  color:var(--gold);
}
.dg-letter-stamp span{font-family:'IBM Plex Mono',monospace; font-size:9px; letter-spacing:0.08em;}
.dg-letter-stamp b{font-family:'Fraunces',serif; font-size:12px; font-weight:640;}
.dg-letter-sign-text b{
  display:block; font-family:'Fraunces',serif; font-size:16.5px; font-weight:640; color:var(--ink);
}
.dg-letter-sign-text span{
  display:block; font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-soft);
  letter-spacing:0.03em; margin-top:4px;
}

@media (max-width:640px){
  .dg-letter-head{padding:28px 26px 40px;}
  .dg-letter-body{padding:0 26px 32px;}
  .dg-letter-drop::first-letter{font-size:44px;}
  .dg-letter-pullquote{font-size:17px; padding-left:18px;}
}

.positioning-top{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:56px;
  align-items:center;
  margin-bottom:52px;
}
.positioning-text .section-head{margin-bottom:0; max-width:640px;}
.positioning-text p + p{margin-top:16px;}

.positioning-photo{
  position:relative;
  border-radius:16px;
  overflow:hidden;
  aspect-ratio:4/5;
  box-shadow:0 30px 60px -20px rgba(0,0,0,0.5);
}
.positioning-photo img{
  width:100%; height:100%; object-fit:cover; object-position:center top;
}
.positioning-photo::after{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(6,13,24,0.55) 0%, transparent 45%);
}

@media (max-width: 900px){
  .positioning-top{grid-template-columns:1fr; gap:36px;}
  .positioning-photo{aspect-ratio:16/10;}
}
@media (max-width: 560px){
  .agrement{
    padding:70px 0 130px;
  }
  .positioning-watermark{
    display:block;
    z-index:2;
    top:12px;
    font-size:clamp(38px, 9vw, 26px);
  }
}

.svc-card-wide .svc-card-media{
  position:relative;
  background:var(--ink);
}
.svc-card-wide .svc-card-media::before{
  content:'';
  position:absolute; inset:-20px; z-index:0;
  background-image:var(--bg-img);
  background-size:cover;
  background-position:center;
  filter:blur(24px) brightness(0.55) saturate(1.15);
  transform:scale(1.15);
}
.svc-card-wide .svc-card-media img{
  position:relative; z-index:1;
  object-fit:contain;
}
/* ===== PRESTATIONS — BENTO GRID (pleine largeur) ===== */
  .services{padding:110px 0 100px;}
  .services .wrap{
    max-width:100%;
    padding-left:clamp(20px, 4vw, 64px);
    padding-right:clamp(20px, 4vw, 64px);
  }
  .services-watermark{
  position:absolute;
  top:100px;
  left:0; right:0;
  padding:0 clamp(20px, 4vw, 64px);
  text-align:right;
  font-family:'Fraunces', serif;
  font-weight:680;
  font-size:clamp(60px, 8.5vw, 145px);
  line-height:0.95;
  letter-spacing:-0.02em;
  color:rgba(27,95,168,0.08);
  white-space:nowrap;
  z-index:0;
  pointer-events:none;
  user-select:none;
}
@media (max-width: 1180px){
  .services-watermark{top:80px; font-size:clamp(48px, 10vw, 100px);}
}
@media (max-width: 900px){
  .services-watermark{top:60px; font-size:clamp(40px, 12vw, 80px);}
}
@media (max-width: 560px){
  .services-watermark{
    display:block;
    top:16px;
    font-size:clamp(32px, 13vw, 56px);
    opacity:0.7;
  }
}
@media (max-width: 620px){
  .services{padding:56px 0 48px;}
  .services .section-head{margin-bottom:28px;}
}

  .svc-grid{
    display:grid;
    grid-template-columns: minmax(320px, 1fr) minmax(0, 2.5fr);
    gap:24px;
    align-items:stretch;
  }
  .svc-side{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:24px;
  }
  .svc-card-sm{grid-column:span 2;}
  .svc-card-wide{grid-column:span 3;}

  /* motif de points décoratif */
  .svc-dots{
    position:absolute; top:18px; right:18px; z-index:2;
    display:grid; grid-template-columns:repeat(4,1fr); gap:5px;
  }
  .svc-dots span{width:3px; height:3px; border-radius:50%; background:rgba(255,255,255,0.6); display:block;}

  /* pastille numéro carrée (cartes 02-04) */
  .svc-num{
    position:absolute; top:18px; left:18px; z-index:2;
    width:40px; height:40px; border-radius:10px;
    background:linear-gradient(135deg, var(--blue-bright), var(--blue-deep));
    color:var(--white); font-family:'Fraunces',serif; font-weight:640; font-size:16px;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 18px -6px rgba(15,61,113,0.55);
  }

  /* ruban diagonal (cartes larges 05-06) */
  .svc-ribbon{
    position:absolute; top:0; left:20px; z-index:2;
    width:44px; padding:10px 0 15px;
    text-align:center;
    font-family:'Fraunces',serif; font-weight:640; font-size:16px; color:var(--white);
    background:linear-gradient(135deg, var(--blue-bright), var(--blue-deep));
    clip-path:polygon(0 0, 100% 0, 100% 100%, 50% 80%, 0 100%);
    box-shadow:0 10px 20px -8px rgba(15,61,113,0.55);
  }

  /* ===== CARTE FEATURE 01 — GARDIENNAGE ===== */
  .svc-feature{
    position:relative; border-radius:20px; overflow:hidden;
    background:var(--ink) url('svc-gardiennage.webp') center/cover no-repeat;
    min-height:660px;
    display:flex; flex-direction:column; justify-content:space-between;
    padding:30px; color:var(--white);
  }
  .svc-feature::before{
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(6,13,24,0.72) 0%, rgba(6,13,24,0.15) 42%, rgba(6,13,24,0.3) 66%, rgba(6,13,24,0.85) 100%);
}
  .svc-feature > *{position:relative; z-index:2;}
  .svc-feature-top{display:flex; align-items:flex-start; justify-content:space-between;}
  .svc-feature-topnum{font-family:'Fraunces',serif; font-size:54px; font-weight:640; line-height:1; color:var(--white);}
  .svc-feature-top .svc-dots{position:static;}

  .svc-feature-mid{margin-top:auto; padding-top:40px;}
  .svc-feature-mid .eyebrow{color:var(--blue-bright); margin-bottom:10px;}
  .svc-feature-mid h3{font-family:'Fraunces',serif; font-size:32px; font-weight:640; color:var(--white); margin-bottom:14px;}
  .svc-feature-rule{width:34px; height:3px; background:var(--blue-bright); border-radius:2px; margin-bottom:16px;}
  .svc-feature-mid p{color:rgba(255,255,255,0.72); font-size:14.5px; line-height:1.65; max-width:380px;}

  .svc-feature-stats{
    margin-top:26px; display:grid; grid-template-columns:repeat(3,1fr); gap:14px;
    background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.14);
    border-radius:14px; padding:20px 14px; backdrop-filter:blur(6px);
  }
  .svc-fstat{display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px;}
  .svc-fstat .icon-ring{
    width:42px; height:42px; border-radius:50%; border:1.4px solid rgba(255,255,255,0.35);
    display:flex; align-items:center; justify-content:center; color:var(--blue-bright);
  }
  .svc-fstat .icon-ring svg{width:19px; height:19px;}
  .svc-fstat span{font-size:12px; color:rgba(255,255,255,0.75); line-height:1.4;}

  /* ===== CARTES 02-06 (base) ===== */
  .svc-card{
    position:relative; background:var(--white); border:1px solid var(--line);
    border-radius:18px; overflow:hidden;
    transition:transform .3s ease, box-shadow .3s ease;
  }
  .svc-card:hover{transform:translateY(-4px); box-shadow:var(--shadow);}

  .svc-card-media{position:relative; height:172px; overflow:hidden; background:var(--ink);}
  .svc-card-media img{width:100%; height:100%; object-fit:cover;}
  .svc-card-media::after{
    content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(6,13,24,0.25), rgba(6,13,24,0.05));
  }

  .svc-card-icon{
    width:52px; height:52px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    color:var(--blue-deep); flex-shrink:0;
  }
  .svc-card-icon svg{width:22px; height:22px;}

  .svc-card h4{font-family:'Fraunces',serif; font-size:17.5px; font-weight:620; margin-bottom:8px; color:var(--ink);}
  .svc-card p{font-size:13.5px; color:var(--ink-soft); line-height:1.55;}

  .svc-card-arrow{
    position:absolute; bottom:18px; right:18px; z-index:2;
    width:36px; height:36px; border-radius:9px; border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center; color:var(--ink);
    transition:background .25s ease, border-color .25s ease, color .25s ease;
  }
  .svc-card-arrow svg{width:15px; height:15px;}
  .svc-card:hover .svc-card-arrow{background:var(--ink); border-color:var(--ink); color:var(--white);}
  /* Flèche "Contrôle d'accès" active par défaut */
.svc-card[data-service="acces"] .svc-card-arrow{
  background:var(--ink);
  border-color:var(--ink);
  color:var(--white);
}

  /* --- cartes carrées 02-04 : icône médaillon flottant sur la jointure --- */
  .svc-card-sm .svc-card-body{
  position:relative;
  padding:38px 22px 56px;
}
  .svc-card-sm .svc-card-icon{
    position:absolute; top:0; left:24px; transform:translateY(-50%);
    background:var(--white); border:1px solid var(--line);
    box-shadow:0 10px 22px -8px rgba(11,29,51,0.25);
    z-index:3;
  }

  /* --- cartes larges 05-06 : image à droite, icône en anneau outline --- */
  .svc-card-wide{display:flex; flex-direction:row-reverse; align-items:stretch;}
  .svc-card-wide .svc-card-media{flex:0 0 42%; height:auto;}
  .svc-card-wide .svc-card-body{
  position:relative;
  padding:38px 22px 56px;
}
  .svc-card-wide .svc-card-icon{
    border:1.4px solid var(--line); background:transparent; margin-bottom:16px;
  }
  .svc-card-wide .svc-card-arrow{position:static; align-self:flex-start; margin-top:14px;}

  @media (max-width: 1180px){
    .svc-grid{grid-template-columns:1fr;}
    .svc-feature{min-height:420px;}
    .svc-side{grid-template-columns:repeat(2,1fr);}
    .svc-card-sm{grid-column:span 1;}
    .svc-card-wide{grid-column:span 2; flex-direction:column;}
    .svc-card-wide .svc-card-media{flex:none; height:170px;}
    .svc-card-wide .svc-card-arrow{align-self:flex-start;}
  }
  @media (max-width: 620px){
    .svc-side{grid-template-columns:1fr;}
    .svc-card-wide{grid-column:span 1;}
    .svc-feature-stats{grid-template-columns:1fr; gap:16px;}
    .svc-feature-mid h3{font-size:27px;}
      .svc-grid{gap:16px;}
  .svc-feature{min-height:auto; padding:22px;}
  .svc-feature-mid{padding-top:24px;}
    /* Cards 05-06 : même traitement icône/flèche que les cards 02-04 en mobile */
  .svc-card-wide .svc-card-body{
    position:relative;
    padding:38px 22px 56px;
  }
  .svc-card-wide .svc-card-icon{
    position:absolute;
    top:0; left:24px;
    transform:translateY(-50%);
    background:var(--white);
    border:1px solid var(--line);
    box-shadow:0 10px 22px -8px rgba(11,29,51,0.25);
    z-index:3;
    margin-bottom:0;
  }
  .svc-card-wide .svc-card-arrow{
    position:absolute;
    top:auto; left:auto;
    bottom:18px; right:18px;
    align-self:auto;
    margin-top:0;
  }
  }

  
/* ===== COVERAGE ===== */
.coverage{
  background:var(--ink-2); padding:110px 0; color:var(--white); position:relative; overflow:hidden;
  --hair:rgba(255,255,255,0.10); --hair-soft:rgba(255,255,255,0.07);
  --text-dim:rgba(255,255,255,0.5); --text-mid:rgba(255,255,255,0.68);
}
.coverage::before{
  content:''; position:absolute; inset:0; z-index:0;
  background-image:radial-gradient(rgba(255,255,255,0.09) 1px, transparent 1px);
  background-size:26px 26px;
  opacity:0.5;
}
.coverage .wrap{
  position:relative; z-index:1;
  max-width:100%;
  padding-left:clamp(20px, 4vw, 64px);
  padding-right:clamp(20px, 4vw, 64px);
}
.coverage .eyebrow{color:var(--blue-bright);}

.zones-watermark{
  position:absolute; top:64px; right:0; z-index:0;
  max-width:1180px; width:100%; margin:0 auto; padding:0 clamp(20px,4vw,64px);
  text-align:right; font-family:'Fraunces',serif; font-weight:620;
  font-size:clamp(48px, 8vw, 128px); line-height:1; letter-spacing:-0.01em;
  color:transparent; -webkit-text-stroke:1px rgba(255,255,255,0.06);
  pointer-events:none; user-select:none; white-space:nowrap;
}
@media (max-width: 900px){
  .zones-watermark{
    display:block;
    top:16px;
    font-size:clamp(28px, 12vw, 42px);
    color:rgba(255,255,255,0.07);
    -webkit-text-stroke:0;
  }

  .coverage{
    padding:60px 0 0;
  }

  .zones-main{
    gap:16px;
    padding-bottom:32px;
  }
}

.zones-hud{
  position:absolute;
  top:110px;
  right:0; left:0;
  z-index:1;
  max-width:1180px; width:100%; margin:0 auto;
  padding:0 clamp(20px,4vw,64px);
  display:flex;
  justify-content:flex-end;
  gap:40px;
  pointer-events:none;
}
.hud-stat{
  display:flex; flex-direction:column; gap:8px;
  text-align:right;
}
.hud-stat b{
  font-family:'Fraunces',serif;
  font-size:44px;
  font-weight:640;
  color:var(--white);
  line-height:1;
}
.hud-stat > span{
  font-family:'IBM Plex Mono',monospace;
  font-size:11.5px;
  letter-spacing:0.09em;
  text-transform:uppercase;
  color:var(--text-dim);
}

@media (max-width: 1180px){
  .zones-hud{top:90px;}
}
@media (max-width: 900px){
  .coverage .zones-head{margin-bottom:0;}
  .zones-hud{
    position:static;
    justify-content:center;
    padding:24px 0 0;
    margin:24px 0 32px;
    gap:32px;
    border-top:1px solid var(--hair);
  }
  .hud-stat{text-align:center;}
}
@media (max-width: 640px){
  .zones-hud{
    flex-direction:row;
    justify-content:center;
    gap:28px;
  }
  .hud-stat b{font-size:30px;}
  .hud-stat > span{font-size:10px;}
}

.zones-head{max-width:600px; margin-bottom:56px;}
.zones-head h2{color:var(--white);}
.zones-head p{color:var(--text-mid); font-size:16px; line-height:1.65; margin-top:16px;}

.eyebrow-dial{width:16px; height:16px; flex-shrink:0;}
.eyebrow-dial circle.ring{fill:none; stroke:rgba(42,172,226,0.55); stroke-width:1.4; stroke-dasharray:1.6 2.3;}
.eyebrow-dial .needle{transform-origin:8px 8px; animation:dialSweep 10s linear infinite;}
.eyebrow-dial .needle line{stroke:var(--gold); stroke-width:1.4; stroke-linecap:round;}
@keyframes dialSweep{to{transform:rotate(360deg);}}

.zones-main{display:grid; grid-template-columns:1.2fr 1fr; gap:32px; align-items:stretch; min-width:0;}

.zones-map-wrap{
  position:relative; display:flex; flex-direction:column; height:100%;
  background:rgba(255,255,255,0.025);
  border:1px solid var(--hair); border-radius:16px; padding:20px;
  min-width:0;
}
.zones-map-head{display:flex; align-items:baseline; gap:9px; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.07em; text-transform:uppercase; color:var(--text-dim); padding:2px 4px 16px;}
.zones-map-head b{font-family:'Fraunces',serif; font-size:15px; color:var(--white); font-weight:580; margin-left:auto; text-transform:none; letter-spacing:0;}
.map-style-toggle{
  display:flex; align-items:center; gap:2px;
  background:rgba(255,255,255,0.06); border:1px solid var(--hair);
  border-radius:20px; padding:3px;
}
.map-style-btn{
  all:unset; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:50%;
  color:var(--text-dim);
  transition:background .2s ease, color .2s ease;
}
.map-style-btn svg{width:13px; height:13px;}
.map-style-btn.active{
  background:var(--blue); color:var(--white);
}
.map-style-btn:hover:not(.active){
  background:rgba(255,255,255,0.08);
}
@media (max-width:640px){
  .zones-map-head{ flex-wrap:wrap; row-gap:10px; }
}

.zones-map{width:100%; flex:1 1 auto; min-height:400px; border-radius:10px; overflow:hidden; background:var(--ink);}
.coverage .leaflet-container{background:var(--ink) !important; font-family:'Inter',sans-serif;}
/* Rendu sombre bleu marine simulé par filtre CSS sur des tuiles OpenStreetMap standard (gratuites, sans clé API) */
.zones-map-wrap:not(.map-light) .leaflet-tile-pane{
  filter:invert(1) hue-rotate(200deg) brightness(0.85) contrast(0.9) saturate(0.85);
  transition:filter .3s ease;
}
.zones-map-wrap.map-light .leaflet-tile-pane{
  transition:filter .3s ease;
}
.coverage .leaflet-control-zoom{border:none !important; box-shadow:none !important; margin:14px !important;}
.coverage .leaflet-control-zoom a{background:rgba(11,29,51,0.85) !important; color:var(--white) !important; border:1px solid rgba(255,255,255,0.14) !important; width:28px !important; height:28px !important; line-height:28px !important; border-radius:7px !important; margin-bottom:4px !important; font-weight:400 !important;}
.coverage .leaflet-control-zoom a:hover{background:var(--blue) !important;}
.coverage .leaflet-popup-content-wrapper{background:var(--ink-2); color:var(--white); border-radius:8px; border:1px solid var(--hair); box-shadow:0 16px 36px -16px rgba(0,0,0,0.55);}
.coverage .leaflet-popup-tip{background:var(--ink-2) !important;}
.coverage .leaflet-popup-content{font-family:'Inter',sans-serif; font-size:13px; margin:12px 14px;}
.coverage .leaflet-popup-content b{font-family:'Fraunces',serif; font-size:14.5px; display:block; margin-bottom:4px; color:var(--white); font-weight:580;}
.coverage .leaflet-popup-content span{color:var(--text-mid);}
.coverage .leaflet-popup-close-button{color:rgba(255,255,255,0.5) !important;}
.coverage .leaflet-control-attribution{background:rgba(11,29,51,0.7) !important; color:rgba(255,255,255,0.35) !important; font-size:9px !important;}
.coverage .leaflet-control-attribution a{color:rgba(255,255,255,0.5) !important;}

.gsp-pin{position:relative; width:14px; height:14px;}
.gsp-pin .halo{position:absolute; inset:0; border-radius:50%; background:var(--blue-bright); opacity:0.3; animation:pinPulse 2.8s ease-out infinite; pointer-events:none;}
.gsp-pin .dot{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:8px; height:8px; border-radius:50%; background:var(--blue-bright); border:1.5px solid var(--ink);}
.gsp-pin.hq .halo, .gsp-pin.hq .dot{background:var(--gold);}
.gsp-pin.active .dot{transform:translate(-50%,-50%) scale(1.5);}
@keyframes pinPulse{0%{transform:scale(1); opacity:.35;} 100%{transform:scale(1.9); opacity:0;}}

.map-legend{display:flex; gap:24px; margin-top:16px; padding-top:16px; border-top:1px solid var(--hair); flex-wrap:wrap;}
.map-legend span{display:flex; align-items:center; gap:8px; font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:0.04em; text-transform:uppercase; color:var(--text-dim);}
.map-legend .dot{width:7px; height:7px; border-radius:50%; display:inline-block;}
.map-legend .dot-hq{background:var(--gold);}
.map-legend .dot-region{background:var(--blue-bright);}

.region-bento{
  display:grid; grid-template-columns:repeat(2, 1fr); gap:1px;
  align-content:start; height:100%;
  background:var(--hair); border:1px solid var(--hair); border-radius:16px;
  overflow:hidden;
  min-width:0;
}

.region-tile{
  background:var(--ink-2); padding:22px 22px 20px; cursor:pointer;
  transition:background .2s ease;
  min-width:0;
}
.region-tile:hover{background:rgba(255,255,255,0.035);}
.region-tile.active{background:rgba(42,172,226,0.07);}
.region-tile[data-region="niamey"].active{background:rgba(198,162,77,0.08);}

.rt-top{display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:16px;}
.rt-num{font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:0.07em; color:var(--text-dim);}
.rt-tag{font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:0.05em; text-transform:uppercase; color:var(--text-mid);}
.region-tile[data-region="niamey"] .rt-tag{color:var(--gold);}

.rt-mid{
  display:flex; align-items:flex-end; justify-content:space-between; gap:10px; margin-bottom:14px;
  min-width:0;
}
.rt-stat{display:flex; align-items:baseline; gap:8px; min-width:0;}
.rt-stat b{
  font-family:'Fraunces',serif;
  font-size:44px;
  font-weight:620;
  color:var(--white);
  line-height:1;
}
.rt-stat small{font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.05em; color:var(--text-dim);}
.rt-name{
  font-family:'Fraunces',serif; font-size:16px; font-weight:580; color:rgba(255,255,255,0.9);
  text-align:right;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.rt-preview{display:flex; flex-wrap:wrap; gap:6px; align-items:center; min-width:0;}
.rt-chip, .rt-more{
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--text-mid); font-weight:400;
  border:1px solid var(--hair); padding:4px 9px; border-radius:20px; white-space:nowrap;
}
.rt-more{color:var(--blue-bright); border-color:rgba(42,172,226,0.3); display:flex; align-items:center; gap:4px;}
.rt-more svg{width:8px; height:8px; transition:transform .3s ease;}
.region-tile.expanded .rt-more svg{transform:rotate(180deg);}
.region-tile.no-expand .rt-more{display:none;}

.rt-detail{max-height:0; overflow:hidden; opacity:0; transition:max-height .38s cubic-bezier(.2,.8,.2,1), opacity .3s ease, margin-top .3s ease;}
.region-tile.expanded .rt-detail{max-height:220px; opacity:1; margin-top:8px;}
.rt-chips-extra{display:flex; flex-wrap:wrap; gap:6px;}

@media (max-width: 1180px){
  .zones-main{grid-template-columns:1fr; gap:32px;}
  .zones-map{height:420px; min-height:0;}
  .zones-map-wrap{height:auto;}
}
@media (max-width: 640px){
  .region-bento{grid-template-columns:1fr;}
}

@media (max-width: 1180px){
  .zones-main{grid-template-columns:1fr; gap:32px;}
  .zones-map{height:420px; min-height:0;}
  .zones-map-wrap{height:auto;}
}
@media (max-width: 640px){
  .region-bento{grid-template-columns:1fr;}
}

/* ===== TOGGLE RÉGIONS (mobile) ===== */
.zones-toggle-regions{
  display:none;
}

@media (max-width: 900px){
  .zones-toggle-regions{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    width:100%;
    margin-top:4px;
    padding:14px 20px;
    border-radius:12px;
    border:1px solid var(--hair);
    background:rgba(255,255,255,0.03);
    color:var(--white);
    font-family:'IBM Plex Mono',monospace;
    font-size:13px;
    font-weight:600;
    letter-spacing:0.04em;
    cursor:pointer;
    transition:background .2s ease, border-color .2s ease;
  }
  .zones-toggle-regions svg{
    width:14px; height:14px;
    transition:transform .3s ease;
  }
  .zones-toggle-regions.open svg{
    transform:rotate(180deg);
  }
  .zones-toggle-regions:hover{
    background:rgba(255,255,255,0.07);
    border-color:rgba(255,255,255,0.25);
  }

  .region-bento{
    max-height:0;
    transition:max-height .4s ease;
  }
}

 /* ===== CROISSANCE ===== */
  .growth{padding:60px 0 40px;  background:var(--paper);}
  @media (max-width: 900px){
  .growth{
    padding:20px 0 40px;
  }
}
  @media (min-width: 1600px){
    .growth .wrap{max-width:1360px;}
  }
  @media (min-width: 2000px){
    .growth .wrap{max-width:1520px;}
  }
  .growth-inner{display:grid; grid-template-columns:0.9fr 1.1fr; gap:60px; align-items:start;}
  .growth-text p{color:var(--ink-soft); font-size:16px; margin-bottom:22px;}
  .growth-note{display:flex; gap:14px; align-items:flex-start; background:var(--paper-2); border-radius:12px; padding:18px 20px; margin-top:8px;}
  .growth-note svg{width:20px; height:20px; color:var(--blue-deep); flex-shrink:0; margin-top:2px;}
  .growth-note span{font-size:13.5px; color:var(--ink-soft);}

  .growth-chart{position:relative;}

  .zigzag-svg{width:100%; height:auto; display:block; overflow:visible;}

  .zigzag-grid{stroke:var(--line); stroke-width:1;}

  .zigzag-area{opacity:0; transition:opacity 1s ease .8s;}
  .growth-chart.in-view .zigzag-area{opacity:1;}

  .zigzag-line{
    fill:none; stroke:var(--blue); stroke-width:3;
    stroke-linecap:round; stroke-linejoin:round;
    stroke-dasharray:900; stroke-dashoffset:900;
    transition:stroke-dashoffset 1.5s cubic-bezier(.2,.8,.2,1) .1s;
  }
  .growth-chart.in-view .zigzag-line{stroke-dashoffset:0;}

  .zigzag-pt{
  fill:var(--white); stroke:var(--blue); stroke-width:2.4;
  r:3.5;
  opacity:0;
  transform:scale(0);
  transform-box:fill-box;
  transform-origin:center;
  transition:opacity .35s ease, transform .35s ease;
}
.zigzag-pt-end{ stroke:var(--blue-bright); r:4.5; }
.growth-chart.in-view .zigzag-pt{ opacity:1; transform:scale(1); }

  /* comète bleue qui parcourt le zigzag en boucle continue */
  #cometDot{fill:var(--blue-bright); opacity:0;}
  .zigzag-comet{offset-path:path('M20,122 L153,113 L287,45 L400,14');}
  .growth-chart.in-view .zigzag-comet{
    animation:cometRun 3.4s linear infinite 1.4s;
  }
  @keyframes cometRun{
    0%{ offset-distance:0%; }
    100%{ offset-distance:100%; }
  }
  .growth-chart.in-view #cometDot{
    animation:cometFade 3.4s ease-in-out infinite 1.4s;
  }
  @keyframes cometFade{
    0%{ opacity:0; }
    8%{ opacity:1; }
    92%{ opacity:1; }
    100%{ opacity:0; }
  }

  .zigzag-labels{position:relative; margin-top:10px; height:0;}
  .zigzag-label{
    position:absolute; top:0; transform:translateX(-50%);
    display:flex; flex-direction:column; align-items:center; gap:4px;
    opacity:0; transition:opacity .5s ease .4s;
  }
  .zigzag-label:first-child{transform:translateX(0); align-items:flex-start;}
  .zigzag-label-end{transform:translateX(-100%); align-items:flex-end;}
  .growth-chart.in-view .zigzag-label{opacity:1;}

  .zigzag-val{font-family:'IBM Plex Mono',monospace; font-size:13px; font-weight:600; color:var(--blue-deep); white-space:nowrap;}
  .zigzag-year{font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--ink-soft); margin-top:2px;}

  @media (max-width: 900px){
    .growth-inner{grid-template-columns:1fr; gap:44px;}
  }
  @media (max-width: 620px){
    .zigzag-val{font-size:11px;}
    .zigzag-year{
  font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--ink-soft); margin-top:0;
}
  }

  /* ===== REFERENCES ===== */
.refs{padding:110px 0; background:var(--paper-2);}
.refs .wrap{
  max-width:100%;
  padding-left:clamp(20px, 4vw, 64px);
  padding-right:clamp(20px, 4vw, 64px);
}

.refs .section-head{
  text-align:center;
  max-width:640px;
  margin:0 auto 52px;
}
.refs .section-head .eyebrow{justify-content:center;}
/* Tiret doré réactivé uniquement ici, section "Références" */

.refs-underline{
  width:56px; height:3px; background:var(--gold); border-radius:2px;
  margin:20px auto 0;
}
.refs .section-head p{margin:22px auto 0; max-width:520px;}

.refs-marquee-shell{
  margin-top:0;
  border:none;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}

.refs-marquee-head{
  display:flex; align-items:center; justify-content:center; gap:20px; flex-wrap:wrap;
  padding:0 0 30px;
  border-bottom:none;
}
.refs-marquee-head .refs-count{
  font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--ink-soft);
  letter-spacing:0.04em;
}
.refs-marquee-head .refs-count b{color:var(--gold); font-weight:600; font-size:15px;}

.refs-marquee-viewport{
  position:relative;
  padding:0;
  overflow:hidden;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:8px 0;
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 64px, #000 calc(100% - 64px), transparent 100%);
  mask-image:linear-gradient(90deg, transparent 0, #000 64px, #000 calc(100% - 64px), transparent 100%);
}
.refs-marquee-track{
  display:flex; align-items:stretch; gap:0; width:max-content;
  animation:refsScroll 46s linear infinite;
}
/* Remplacer la règle existante */
@media (hover: hover) and (pointer: fine){
  .refs-marquee-viewport:hover .refs-marquee-track{
    animation-play-state:paused;
  }
}
@keyframes refsScroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

.refs-logo{
  flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  width:170px;
  height:100px; padding:0 24px;
  background:transparent;
  transition:transform .3s ease;
}

/* décalage de l'animation pour que chaque logo "respire" à son propre rythme */
.refs-logo:nth-child(2n){ animation-delay:.6s; }
.refs-logo:nth-child(3n){ animation-delay:1.2s; }
.refs-logo:nth-child(4n){ animation-delay:1.8s; }
.refs-logo:nth-child(5n){ animation-delay:2.4s; }
@keyframes refFloat{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-4px); }
}

.refs-logo img{
  max-height:38px;
  max-width:130px;
  width:auto; height:auto;
  object-fit:contain;
  flex-shrink:0;
}
.refs-logo small{
  display:block;
  font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:9px;
  letter-spacing:0.09em; text-transform:uppercase; color:var(--gold);
  white-space:nowrap;
}
.refs-logo:hover{
  transform:translateY(-5px) scale(1.04);
}

.refs-marquee-foot{
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
  padding:28px 0 0;
  border-top:none;
  background:transparent;
}
.refs-marquee-foot p{font-size:13.5px; color:var(--ink-soft); max-width:460px;}
.btn-refs-detail{
  display:inline-flex; align-items:center; gap:10px; flex-shrink:0;
  padding:13px 24px; border-radius:999px;
  font-weight:600; font-size:14px; color:var(--white);
  background:var(--ink); border:none; cursor:pointer;
  transition:transform .25s ease, background .25s ease, box-shadow .25s ease;
}
.btn-refs-detail svg{width:15px; height:15px;}
.btn-refs-detail:hover{background:var(--blue-deep); transform:translateY(-2px); box-shadow:0 14px 26px -12px rgba(11,29,51,0.5);}

@media (max-width: 620px){
  .refs{
    padding:50px 0 50px;
  }

  .refs-marquee-head{padding:0 0 22px;}
  .refs-marquee-head .refs-count:last-child{
    display:none;
  }

  .refs-marquee-foot{padding:22px 0 0; flex-direction:column; align-items:flex-start;}
  .refs-logo{height:74px; padding:0 22px; font-size:14px;}
  .btn-refs-detail{width:100%; justify-content:center;}
}

 /* ===== MODAL DOSSIER REFERENCES ===== */
  .refs-modal-overlay{
    position:fixed; inset:0; z-index:300;
    background:rgba(6,13,24,0.72);
    backdrop-filter:blur(4px);
    display:flex; align-items:center; justify-content:center;
    padding:24px;
    opacity:0; visibility:hidden;
    transition:opacity .3s ease, visibility 0s linear .3s;
  }
  .refs-modal-overlay.open{
    opacity:1; visibility:visible;
    transition:opacity .3s ease, visibility 0s linear 0s;
  }
  .refs-modal-box{
    width:100%; max-width:920px; max-height:86vh;
    overflow-y:auto;
    background:var(--white);
    border-radius:20px;
    box-shadow:0 40px 90px -20px rgba(0,0,0,0.55);
    transform:translateY(18px) scale(0.98);
    transition:transform .35s cubic-bezier(.2,.8,.2,1);
  }
  .refs-modal-overlay.open .refs-modal-box{transform:translateY(0) scale(1);}
  .refs-modal-close{
    position:sticky; top:0; z-index:5; float:right; margin:16px 16px 0 0;
    width:38px; height:38px; border-radius:50%;
    background:var(--paper); border:1px solid var(--line); color:var(--ink);
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition:background .2s ease, color .2s ease, transform .2s ease;
  }
  .refs-modal-close svg{width:16px; height:16px;}
  .refs-modal-close:hover{background:var(--ink); color:var(--white); transform:rotate(90deg);}

  .refs-modal-box::-webkit-scrollbar{
    width:9px;
  }
  .refs-modal-box::-webkit-scrollbar-track{
    background:var(--paper);
    border-radius:20px;
  }
  .refs-modal-box::-webkit-scrollbar-thumb{
    background:var(--paper-3);
    border-radius:20px;
    border:2px solid var(--paper);
    background-clip:padding-box;
    transition:background .2s ease;
  }
  .refs-modal-box::-webkit-scrollbar-thumb:hover{
    background:var(--blue);
    background-clip:padding-box;
  }
  .refs-modal-box{
    scrollbar-width:thin;
    scrollbar-color:var(--paper-3) var(--paper);
  }

  @media (max-width: 640px){
  .refs-modal-box{
    overflow-x:hidden; /* empêche le micro-scroll horizontal */
  }

  .ref-list{
    grid-template-columns:1fr; /* une seule colonne */
  }

  .ref-item{
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    gap:10px;
  }
  .ref-item:nth-child(odd){
    border-right:none;
  }

  .ref-item-main{
    flex-direction:column;
    align-items:center;
    text-align:center;
    min-width:0;
  }
  .ref-item-text{
    min-width:0;
  }
  .ref-item-text b,
  .ref-item-text p{
    overflow-wrap:break-word;
  }
}

  /* ===== DOSSIER (contenu du modal) ===== */
  .dossier{border-radius:0; box-shadow:none; border:none;}
  .dossier-head{
    display:flex; align-items:center; justify-content:space-between;
    padding:8px 32px 26px; border-bottom:1px dashed var(--line); background:var(--white);
  }
  .dossier-head .stamp{
    border:1.5px solid var(--gold); color:var(--gold); font-family:'IBM Plex Mono',monospace;
    font-size:11px; letter-spacing:0.12em; text-transform:uppercase; padding:6px 14px; border-radius:6px; transform:rotate(-3deg);
  }
  .dossier-head span{font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--ink-soft);}
  .ref-list{display:grid; grid-template-columns:1fr 1fr; }
  .ref-item{padding:22px 32px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; gap:16px; align-items:flex-start;}
  .ref-item:nth-child(odd){border-right:1px solid var(--line);}
  .ref-item-main{display:flex; gap:14px; align-items:flex-start; min-width:0;}
  .ref-item-logo{
    width:40px; height:40px; border-radius:10px;
    border:1px solid var(--line); background:var(--white);
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0; padding:6px; overflow:hidden;
  }
  .ref-item-logo img{max-width:100%; max-height:100%; object-fit:contain;}
  .ref-item-text{min-width:0;}
  .ref-item b{font-family:'Fraunces',serif; font-size:16px; display:block; margin-bottom:6px;}
  .ref-item p{font-size:13px; color:var(--ink-soft);}
  .ref-item .tag{font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--blue-deep); background:var(--paper-2); padding:4px 9px; border-radius:20px; white-space:nowrap; flex-shrink:0; margin-top:2px;}
  .dossier-foot{padding:20px 32px 32px; text-align:center; font-size:13.5px; color:var(--ink-soft); background:var(--white);}
  /* ===== CARTES PRESTATIONS CLIQUABLES ===== */
.svc-clickable{cursor:pointer;}



/* ===== CARTES PRESTATIONS CLIQUABLES ===== */
.svc-clickable{cursor:pointer;}

/* ===== MODAL DETAIL PRESTATION ===== */
.service-modal-overlay{
  position:fixed; inset:0; z-index:300;
  background:rgba(6,13,24,0.75);
  backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  opacity:0; visibility:hidden;
  transition:opacity .3s ease, visibility 0s linear .3s;
}
.service-modal-overlay.open{
  opacity:1; visibility:visible;
  transition:opacity .3s ease, visibility 0s linear 0s;
}
.service-modal-box{
  position:relative;
  width:100%; max-width:960px; max-height:86vh;
  overflow-y:auto; overflow-x:hidden;
  background:var(--white);
  border-radius:22px;
  box-shadow:0 50px 100px -24px rgba(0,0,0,0.6);
  transform:translateY(18px) scale(0.98);
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
  scrollbar-width:thin; scrollbar-color:var(--paper-3) var(--paper);
}
.service-modal-overlay.open .service-modal-box{transform:translateY(0) scale(1);}
.service-modal-box::-webkit-scrollbar{width:9px;}
.service-modal-box::-webkit-scrollbar-track{background:var(--paper); border-radius:20px;}
.service-modal-box::-webkit-scrollbar-thumb{background:var(--paper-3); border-radius:20px; border:2px solid var(--paper); background-clip:padding-box;}

.service-modal-close{
  position:absolute; top:18px; right:18px; z-index:6;
  width:38px; height:38px; border-radius:50%;
  background:rgba(255,255,255,0.92); border:1px solid var(--line); color:var(--ink);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .2s ease, color .2s ease, transform .2s ease;
}
.service-modal-close svg{width:16px; height:16px;}
.service-modal-close:hover{background:var(--ink); color:var(--white); transform:rotate(90deg);}

.service-modal-grid{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  min-height:520px;
}

/* --- panneau image --- */
.service-modal-media{
  position:relative;
  background:var(--ink);
  overflow:hidden;
  min-height:280px;
}
.service-modal-media::before{
  content:'';
  position:absolute; inset:-24px; z-index:0;
  background-image:var(--bg-img);
  background-size:cover;
  background-position:center;
  filter:blur(28px) brightness(0.5) saturate(1.15);
  transform:scale(1.15);
}
.service-modal-media img{
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%; object-fit:contain;
}
.service-modal-media-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(0deg, rgba(6,13,24,0.92) 0%, rgba(6,13,24,0.4) 45%, rgba(6,13,24,0.15) 100%);
}
.service-modal-ghost{
  position:absolute; top:20px; left:26px; z-index:2;
  font-family:'Fraunces',serif; font-weight:640; font-size:70px; line-height:1;
  color:transparent; -webkit-text-stroke:1.4px rgba(255,255,255,0.28);
  user-select:none; pointer-events:none;
}
.service-modal-media-content{
  position:absolute; left:26px; right:26px; bottom:28px; z-index:2;
}
.service-modal-tag{
  display:inline-block;
  font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600;
  letter-spacing:0.09em; text-transform:uppercase; color:var(--gold);
  border:1px solid rgba(198,162,77,0.5); padding:5px 12px; border-radius:20px;
  margin-bottom:14px; backdrop-filter:blur(3px);
}
.service-modal-media-content h3{
  font-family:'Fraunces',serif; font-size:30px; font-weight:640; color:var(--white); line-height:1.15;
}

/* --- panneau contenu --- */
.service-modal-content{
  padding:38px 38px 32px;
  display:flex; flex-direction:column;
}
.service-modal-desc{
  font-size:15.5px; line-height:1.7; color:var(--ink-soft);
  margin-bottom:22px;
}
.service-modal-chips{
  display:flex; flex-wrap:wrap; gap:8px;
  margin-bottom:24px;
}
.service-modal-chips span{
  font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600;
  letter-spacing:0.04em; color:var(--blue-deep);
  background:var(--paper-2); border:1px solid var(--line);
  padding:6px 12px; border-radius:20px; white-space:nowrap;
}
.service-modal-divider{width:100%; height:1px; background:var(--line); margin-bottom:24px;}

.service-modal-subhead{
  display:block; font-family:'IBM Plex Mono',monospace; font-size:11px;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:16px;
}
.service-modal-list{display:flex; flex-direction:column; gap:14px; margin-bottom:8px;}
.service-modal-list li{
  display:flex; align-items:flex-start; gap:13px;
  font-size:14.5px; line-height:1.55; color:var(--ink);
}
.service-modal-list li .num-dot{
  flex-shrink:0; margin-top:1px;
  width:22px; height:22px; border-radius:50%;
  border:1.4px solid var(--blue); color:var(--blue-deep);
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; font-weight:600;
  display:flex; align-items:center; justify-content:center;
}

.service-modal-foot{
  margin-top:auto;
  padding-top:26px;
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
}
.service-modal-foot .btn-primary{flex:1 1 auto; justify-content:center; min-width:200px;}
.service-modal-call{
  display:inline-flex; align-items:center; gap:9px;
  font-family:'IBM Plex Mono',monospace; font-size:13px; font-weight:600; color:var(--ink);
  white-space:nowrap;
}
.service-modal-call svg{width:16px; height:16px; color:var(--blue-deep);}

@media (max-width:860px){
  .service-modal-grid{grid-template-columns:1fr;}
  .service-modal-media{min-height:220px;}
  .service-modal-ghost{font-size:52px;}
  .service-modal-content{padding:30px 26px 26px;}
}
@media (max-width:480px){
  .service-modal-foot{flex-direction:column; align-items:stretch;}
  .service-modal-call{justify-content:center;}
}

/* ===== COMMERCIALISATION — CATALOGUE ÉQUIPEMENTS ===== */
.catalog{padding:110px 0 0; background:var(--paper); position:relative; overflow:hidden;}
.catalog .wrap{
  max-width:100%;
  padding-left:clamp(20px, 4vw, 64px);
  padding-right:clamp(20px, 4vw, 64px);
  position:relative; z-index:1;
}
.catalog-watermark{
  position:absolute; top:80px; left:0; right:0; z-index:0;
  padding:0 clamp(20px, 4vw, 64px);
  text-align:left;
  font-family:'Fraunces', serif; font-weight:680;
  font-size:clamp(52px, 8vw, 130px); line-height:0.95; letter-spacing:-0.02em;
  color:rgba(198,162,77,0.08);
  white-space:nowrap; pointer-events:none; user-select:none;
}
@media (max-width: 900px){ .catalog-watermark{display:none;} }

/* ===== SHOWCASE — 3 OFFRES PHARES ===== */
.catalog-showcase{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:22px;
  margin-bottom:64px;
}
.showcase-card{
  position:relative;
  aspect-ratio:3/4;
  border-radius:20px;
  overflow:hidden;
  cursor:pointer;
  background:var(--ink);
  box-shadow:0 20px 50px -24px rgba(11,29,51,0.4);
  transition:box-shadow .3s ease;
}
.showcase-card:hover{box-shadow:0 30px 64px -20px rgba(11,29,51,0.5);}
.showcase-media{position:absolute; inset:0; overflow:hidden;}
.showcase-slides{
  display:flex; height:100%; overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; -ms-overflow-style:none;
}
.showcase-slides::-webkit-scrollbar{display:none;}
.showcase-slide{
  flex:0 0 100%; scroll-snap-align:start; height:100%;
  position:relative; overflow:hidden; background:var(--ink);
}
.showcase-slide::before{
  content:'';
  position:absolute; inset:-20px; z-index:0;
  background-image:var(--bg-img);
  background-size:cover;
  background-position:center;
  filter:blur(28px) brightness(0.55) saturate(1.15);
  transform:scale(1.15);
}
.showcase-slide img{
  position:relative; z-index:1;
  width:100%; height:100%; object-fit:contain;
  transition:transform .7s cubic-bezier(.2,.8,.2,1);
}
.showcase-card:hover .showcase-slide img{transform:scale(1.06);}

.showcase-nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:30px; height:30px; border-radius:50%;
  background:rgba(11,29,51,0.55); border:1px solid rgba(255,255,255,0.25); color:var(--white);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  opacity:0; transition:opacity .25s ease, background .2s ease;
  backdrop-filter:blur(3px);
}
.showcase-card:hover .showcase-nav{opacity:1;}
.showcase-nav svg{width:13px; height:13px;}
.showcase-nav.prev{left:10px;}
.showcase-nav.next{right:10px;}
@media (hover: hover) and (pointer: fine){
  .showcase-nav:hover{background:var(--blue);}
}
@media (hover:none){ .showcase-nav{opacity:1; background:rgba(11,29,51,0.4);} }

.showcase-dots{
  position:absolute; top:20px; left:22px; z-index:3;
  display:flex; gap:6px;
}
.showcase-dot{
  width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.4);
  border:none; padding:0; cursor:pointer; transition:background .2s ease, width .25s ease;
}
.showcase-dot.active{background:var(--white); width:16px; border-radius:4px;}
.showcase-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(6,13,24,0.05) 0%, rgba(6,13,24,0.1) 40%, rgba(6,13,24,0.88) 100%);
   pointer-events:none;
}

/* S'assurer que les éléments interactifs au-dessus restent cliquables/tapables */
.showcase-nav,
.showcase-dots,
.showcase-num,
.showcase-content{
  pointer-events:auto;
}

/* Permet le swipe horizontal des slides tout en laissant le scroll
   vertical de la page fonctionner normalement au doigt */
.showcase-slides{
  touch-action:pan-x pan-y;
}

.showcase-num{
  position:absolute; top:18px; right:18px; z-index:2;
  font-family:'Fraunces',serif; font-size:14px; font-weight:640; color:rgba(255,255,255,0.8);
  border:1px solid rgba(255,255,255,0.35); border-radius:50%;
  width:34px; height:34px; display:flex; align-items:center; justify-content:center;
  backdrop-filter:blur(3px);
}
.showcase-content{position:absolute; left:22px; right:22px; bottom:24px; z-index:2;}
.showcase-tag{
  display:inline-block;
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; font-weight:600;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--gold);
  margin-bottom:10px;
}
.showcase-content h3{font-family:'Fraunces',serif; font-size:22px; font-weight:640; color:var(--white); margin-bottom:8px; line-height:1.2;}
.showcase-content p{font-size:13.5px; line-height:1.55; color:rgba(255,255,255,0.72); max-width:250px; margin-bottom:16px;}
.showcase-cta{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:600; color:var(--white);
}
.showcase-cta svg{width:14px; height:14px; transition:transform .25s ease;}
.showcase-card:hover .showcase-cta svg{transform:translateX(4px);}

@media (max-width:1100px){
  .catalog-showcase{grid-template-columns:1fr 1fr;}
  .showcase-card:first-child{grid-column:span 2; aspect-ratio:16/9;}
}
@media (max-width:680px){
  .catalog-showcase{grid-template-columns:1fr; gap:16px;}
  .showcase-card, 
  .showcase-card:first-child{
    grid-column:span 1;
    aspect-ratio:3/4;
  }
  .showcase-overlay{
    background:linear-gradient(180deg, rgba(6,13,24,0.05) 0%, rgba(6,13,24,0.15) 30%, rgba(6,13,24,0.55) 60%, rgba(6,13,24,0.95) 100%);
  }
  .showcase-content{
    left:18px; right:18px; bottom:18px;
  }
  .showcase-content p{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  
}
@media (max-width: 620px){
  .catalog{padding:0;}
  .catalog-showcase{margin-bottom:36px;}
  .section-head{margin-bottom:28px;}
}


/* ===== ACCESSOIRES — GRILLE ===== */
.catalog-accessories-head{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  margin-bottom:18px; flex-wrap:wrap;
}
.accessories-label{
  font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.06em;
  text-transform:uppercase; color:var(--ink-soft); font-weight:600;
}
.accessories-hint{display:none;}
.catalog-accessories{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px, 340px));
  gap:18px;
  margin-bottom:40px;
}
.accessory-card{
  background:var(--white); border:1px solid var(--line); border-radius:16px;
  overflow:hidden; cursor:pointer;
  transition:transform .3s ease, box-shadow .3s ease;
}
.accessory-card:hover{transform:translateY(-3px); box-shadow:var(--shadow);}
.accessory-media{height:150px; overflow:hidden; background:var(--ink); position:relative;}
.accessory-media::before{
  content:'';
  position:absolute; inset:-20px; z-index:0;
  background-image:var(--bg-img);
  background-size:cover;
  background-position:center;
  filter:blur(24px) brightness(0.55) saturate(1.15);
  transform:scale(1.15);
}
.accessory-media img{
  position:relative; z-index:1;
  width:100%; height:100%; object-fit:contain;
  transition:transform .5s ease;
}
.accessory-card:hover .accessory-media img{transform:scale(1.05);}
.accessory-body{padding:18px 20px 20px;}
.accessory-num{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--gold); letter-spacing:0.07em;}
.accessory-body h4{font-family:'Fraunces',serif; font-size:16.5px; font-weight:620; color:var(--ink); margin:6px 0 8px;}
.accessory-body p{font-size:13px; line-height:1.5; color:var(--ink-soft); margin-bottom:14px;}
.accessory-cta{font-family:'IBM Plex Mono',monospace; font-size:11.5px; font-weight:600; color:var(--blue-deep);}
.accessory-cta{font-family:'IBM Plex Mono',monospace; font-size:11.5px; font-weight:600; color:var(--blue-deep);}

@media (max-width:680px){
  .catalog-accessories{
    display:flex;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    gap:14px;
    margin-bottom:0px;
    padding-bottom:6px;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  .catalog-accessories::-webkit-scrollbar{display:none;}
  .accessory-card{
    flex:0 0 78vw;
    max-width:300px;
    scroll-snap-align:start;
  }
  .accessories-hint{
    display:inline-block;
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    color:var(--ink-soft);
  }
}


/* ===== BLOC FDS — PLEINE LARGEUR, TRAITEMENT INSTITUTIONNEL ===== */
.catalog-fds-block{
  position:relative; overflow:hidden;
  background:linear-gradient(160deg, var(--ink) 0%, var(--blue-deep) 75%, var(--ink-2) 100%);
  padding:80px 0; margin-top:10px;
}
.catalog-fds-block::before{
  content:''; position:absolute; inset:0; opacity:0.08;
  background-image:linear-gradient(rgba(255,255,255,0.5) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.5) 1px, transparent 1px);
  background-size:52px 52px;
}
.catalog-fds-inner{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:center;
}
.fds-text .catalog-badge{color:var(--gold); border-color:rgba(198,162,77,0.5); margin-bottom:18px;}
.fds-text h3{font-family:'Fraunces',serif; font-size:clamp(24px,2.6vw,32px); font-weight:640; color:var(--white); margin-bottom:14px;}
.fds-text > p{font-size:15px; line-height:1.7; color:rgba(255,255,255,0.68); max-width:460px; margin-bottom:22px;}
.fds-conditions{display:flex; flex-direction:column; gap:10px; margin-bottom:24px;}
.fds-conditions li{display:flex; align-items:flex-start; gap:10px; font-size:13.5px; line-height:1.5; color:rgba(255,255,255,0.75);}
.fds-conditions li svg{width:15px; height:15px; color:var(--blue-bright); flex-shrink:0; margin-top:2px;}
.fds-cta{display:inline-flex; align-items:center; gap:8px; font-family:'IBM Plex Mono',monospace; font-size:12.5px; font-weight:600; color:var(--white);}
.fds-cta svg{width:14px; height:14px; transition:transform .25s ease;}
.catalog-fds-block:hover .fds-cta svg{transform:translateX(4px);}

.fds-photo{
  position:relative; border-radius:18px; overflow:hidden;
  aspect-ratio:4/3; box-shadow:0 30px 60px -20px rgba(0,0,0,0.5);
  cursor:pointer;
}
.fds-slides{
  display:flex; height:100%; overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; -ms-overflow-style:none;
}
.fds-slides::-webkit-scrollbar{display:none;}
.fds-slide{flex:0 0 100%; scroll-snap-align:start; height:100%;}
.fds-slide img{
  width:100%; height:100%; object-fit:cover;
  filter:grayscale(0.15) contrast(1.05);
}
.fds-photo::after{
  content:''; position:absolute; inset:0; z-index:2; pointer-events:none;
  background:linear-gradient(0deg, rgba(6,13,24,0.6) 0%, transparent 40%);
}
.fds-stamp{
  position:absolute; top:18px; right:18px; z-index:3;
  border:1.5px solid var(--gold); color:var(--gold);
  font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.08em; text-transform:uppercase;
  padding:6px 12px; border-radius:6px; transform:rotate(-3deg);
  background:rgba(11,29,51,0.5); backdrop-filter:blur(3px);
}
.fds-photo .showcase-nav{
  opacity:0;
  transition:opacity .25s ease, background .2s ease;
}
.fds-photo:hover .showcase-nav{
  opacity:1;
}
@media (hover:none){
  .fds-photo .showcase-nav{ opacity:1; background:rgba(11,29,51,0.4); }
}
.fds-photo .showcase-dots{
  background:rgba(11,29,51,0.55);
  padding:6px 9px;
  border-radius:20px;
  backdrop-filter:blur(3px);
}
@media (max-width:900px){
  .catalog-fds-inner{grid-template-columns:1fr; gap:32px;}
  .fds-photo{aspect-ratio:16/9;}
}

.catalog-foot{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:15px;
}
.catalog-foot-wrap{padding-top:28px;}

@media (max-width: 620px){
  .catalog-foot-wrap{padding-top:14px;}

  .catalog-foot{
    align-items:center;
    text-align:center;
  }

  .catalog-fds-block{
    padding:32px 0 52px;
    margin-top:15px; /* réduit le blanc entre le bouton et la bande FDS */
  }
}

/* --- Modal catalogue (détail) --- */
.catalog-modal-overlay{
  position:fixed; inset:0; z-index:300;
  background:rgba(6,13,24,0.75); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center; padding:24px;
  opacity:0; visibility:hidden; transition:opacity .3s ease, visibility 0s linear .3s;
}
.catalog-modal-overlay.open{opacity:1; visibility:visible; transition:opacity .3s ease, visibility 0s linear 0s;}
.catalog-modal-box{
  position:relative; width:100%; max-width:640px; max-height:86vh; overflow-y:auto;
  background:var(--white); border-radius:20px;
  box-shadow:0 40px 90px -20px rgba(0,0,0,0.55);
  transform:translateY(18px) scale(0.98);
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
  scrollbar-width:thin; scrollbar-color:var(--paper-3) var(--paper);
}
.catalog-modal-overlay.open .catalog-modal-box{transform:translateY(0) scale(1);}
.catalog-modal-close{
  position:sticky; top:0; z-index:5; float:right; margin:16px 16px 0 0;
  width:38px; height:38px; border-radius:50%;
  background:var(--paper); border:1px solid var(--line); color:var(--ink);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .2s ease, color .2s ease, transform .2s ease;
}
.catalog-modal-close svg{width:16px; height:16px;}
.catalog-modal-close:hover{background:var(--ink); color:var(--white); transform:rotate(90deg);}

.catalog-modal-head{padding:8px 34px 22px; border-bottom:1px dashed var(--line);}
.catalog-modal-head .catalog-badge{margin-bottom:14px;}
.catalog-modal-head h3{font-family:'Fraunces',serif; font-size:24px; font-weight:640; margin-bottom:10px; color:var(--ink);}
.catalog-modal-head p{font-size:14.5px; line-height:1.65; color:var(--ink-soft); max-width:520px;}

.catalog-modal-body{padding:26px 34px 34px;}
.catalog-modal-subhead{
  display:block; font-family:'IBM Plex Mono',monospace; font-size:11px;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:16px;
}
.catalog-modal-list{display:flex; flex-direction:column; gap:13px; margin-bottom:24px;}
.catalog-modal-list li{
  display:flex; align-items:flex-start; gap:12px;
  font-size:14px; line-height:1.55; color:var(--ink);
}
.catalog-modal-list li svg{
  flex-shrink:0; margin-top:2px; width:17px; height:17px; color:var(--blue);
}
.catalog-modal-note{
  display:flex; gap:12px; align-items:flex-start;
  background:var(--paper-2); border-radius:12px; padding:16px 18px;
  font-size:13px; line-height:1.55; color:var(--ink-soft); margin-bottom:22px;
}
.catalog-modal-note svg{width:18px; height:18px; color:var(--gold); flex-shrink:0; margin-top:1px;}
.catalog-modal-foot{display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
.catalog-modal-foot .btn-primary{flex:1 1 auto; justify-content:center; min-width:200px;}
.catalog-modal-call{
  display:inline-flex; align-items:center; gap:9px;
  font-family:'IBM Plex Mono',monospace; font-size:13px; font-weight:600; color:var(--ink);
  white-space:nowrap;
}
.catalog-modal-call svg{width:16px; height:16px; color:var(--blue-deep);}

@media (max-width:640px){
  .catalog-modal-head{padding:8px 22px 20px;}
  .catalog-modal-body{padding:22px 22px 26px;}
  .catalog-modal-foot{flex-direction:column; align-items:stretch;}
  .catalog-modal-call{justify-content:center;}
}

/* ===== AVIS CLIENTS ===== */
.testimonials{padding:120px 0; background:var(--paper);}
.testimonials .wrap{max-width:1180px;}

.testi-top{
  display:flex; align-items:flex-end; justify-content:space-between; gap:24px;
  margin-bottom:40px; flex-wrap:wrap;
}
.testi-top .section-head{margin-bottom:0; max-width:540px;}
.testi-top h2 .accent{color:var(--blue);}

.testi-meta{
  display:flex; align-items:center; gap:18px;
  font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--ink-soft);
}
.testi-meta-score{display:flex; align-items:center; gap:7px;}
.testi-meta-score .stars{display:flex; gap:2px;}
.testi-meta-score .stars svg{width:12px; height:12px; fill:var(--gold);}
.testi-meta-score b{color:var(--ink); font-weight:600;}
.testi-meta-sep{width:1px; height:16px; background:var(--line);}

.testi-feature{
  position:relative;
  border-radius:22px;
  overflow:hidden;
  min-height:400px;
  display:flex; flex-direction:column; justify-content:flex-end;
  background:var(--ink);
  box-shadow:var(--shadow);
}
.testi-feature-bg{
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%; object-fit:cover; object-position:center 20%;
}
.testi-feature::before{
  content:'';
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(6,13,24,0.94) 0%, rgba(6,13,24,0.82) 38%, rgba(6,13,24,0.35) 68%, rgba(6,13,24,0.15) 100%),
             linear-gradient(0deg, rgba(6,13,24,0.5) 0%, transparent 30%);
}
.testi-feature-corner{position:absolute; z-index:2; width:20px; height:20px; border-color:rgba(255,255,255,0.4);}
.testi-feature-corner.tl{top:24px; left:24px; border-top:1.5px solid; border-left:1.5px solid;}
.testi-feature-corner.tr{top:24px; right:24px; border-top:1.5px solid; border-right:1.5px solid;}

.testi-feature-inner{
  position:relative; z-index:2;
  padding:38px 50px 30px 42px;
  display:flex; flex-direction:column;
  max-width:100%;
}

.testi-feature-stars{display:flex; gap:4px; margin-bottom:14px;}
.testi-feature-stars svg{width:15px; height:15px; fill:var(--gold);}

.testi-slides{position:relative; min-height:100px; margin-bottom:22px;}
.testi-slide{
  position:absolute; inset:0;
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .45s ease, transform .45s ease, visibility 0s linear .45s;
}
.testi-slide.active{
  position:relative; opacity:1; visibility:visible; transform:translateY(0);
  transition:opacity .45s ease .05s, transform .45s ease .05s;
}
.testi-slide p{
  font-family:'Fraunces',serif; font-weight:500; font-style:italic;
  font-size:clamp(17px, 1.7vw, 22px); line-height:1.45;
  color:var(--white);
  max-width:520px;
}

.testi-feature-foot{
  display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.testi-person{display:flex; align-items:center; gap:14px;}
.testi-person-avatar{
  width:40px; height:40px; border-radius:50%; flex-shrink:0;
  background:rgba(255,255,255,0.1); border:1.4px solid rgba(255,255,255,0.35);
  overflow:hidden;
}
.testi-person-avatar img{width:100%; height:100%; object-fit:cover; display:block;}
.testi-person-id b{display:block; font-size:15px; font-weight:620; color:var(--white); font-family:'Fraunces',serif;}
.testi-person-id span{display:block; font-size:12.5px; color:rgba(255,255,255,0.6); margin-top:3px;}

.testi-switcher{
  align-self:flex-end;
  display:flex;
  gap:0;
  flex-wrap:nowrap;
}
.testi-pill{
  display:flex; align-items:center;
  flex-shrink:0;
  padding:0;
  background:transparent;
  border:none;
  margin-left:-12px;
  cursor:pointer;
  transition:transform .2s ease, z-index 0s;
  position:relative;
}
.testi-pill:first-child{margin-left:0;}
.testi-pill:hover{transform:translateY(-3px); z-index:5;}
.testi-pill.active{z-index:4;}
.testi-pill-avatar{
  width:36px; height:36px; border-radius:50%; flex-shrink:0;
  background:rgba(255,255,255,0.12); overflow:hidden;
  border:2px solid var(--ink);
  box-shadow:none;
  transition:box-shadow .25s ease, transform .2s ease;
}
.testi-pill-avatar img{width:100%; height:100%; object-fit:cover; display:block;}
.testi-pill.active .testi-pill-avatar{box-shadow:0 0 0 2px var(--blue-bright);}
.testi-pill > span:not(.testi-pill-avatar){display:none;}

.testi-progress{
  position:absolute; bottom:0; left:0; z-index:3;
  height:2.5px; background:var(--blue-bright);
  width:0%;
  transition:width linear;
}

@media (max-width: 780px){
  .testi-feature{min-height:auto;}
  .testi-feature-inner{padding:44px 26px 32px;}
  .testi-feature-foot{flex-direction:column; align-items:flex-start; gap:22px;}
  .testi-switcher{align-self:flex-end;}
}

@media (max-width: 680px){
  .testi-top{flex-direction:column; align-items:flex-start; gap:20px;}
  .testi-feature{
    display:block;
    min-height:auto;
    border-radius:18px;
  }
  .testi-feature-bg{
    position:relative;
    height:220px;
    object-position:center 25%;
  }
  .testi-feature::before{
    background:none;
  }
  .testi-feature-corner{display:none;}
  .testi-progress{z-index:3;}
  .testi-feature-inner{
    position:relative;
    padding:26px 22px 26px;
    background:var(--ink);
  }
  .testi-feature-stars{margin-bottom:16px;}
  .testi-slides{
  display:grid;
  margin-bottom:24px;
}
.testi-slide{
  grid-area:1/1;
  position:static; /* on annule le position:absolute du desktop */
}
  .testi-slide p{
    max-width:100%;
    font-size:17px;
    line-height:1.55;
  }
  .testi-feature-foot{
    flex-direction:column;
    align-items:stretch;
    gap:18px;
  }
  .testi-person{gap:11px;}
  .testi-person-avatar{width:40px; height:40px;}
  .testi-person-id b{font-size:14px;}
  .testi-person-id span{font-size:11.5px;}
  .testi-switcher{
    align-self:flex-end;
  }
  .testi-pill-avatar{
    width:38px; height:38px;
  }
  .testi-pill.active .testi-pill-avatar{
    transform:translateY(-3px);
  }
}

@media (max-width: 400px){
  .testi-feature-bg{height:180px;}
  .testi-slide p{font-size:16px;}
}

@media (max-width: 620px){
  .testimonials{
    padding:35px 0 50px;
  }
}

  /* ===== DISPOSITIF & REALISATIONS ===== */
  .process{padding:110px 0; background:var(--paper);}
  .process .wrap{
    max-width:100%;
    padding-left:clamp(20px, 4vw, 64px);
    padding-right:clamp(20px, 4vw, 64px);
  }
  .process-top{max-width:660px; margin-bottom:52px;}

  .process-layout{display:grid; grid-template-columns:0.55fr 1.45fr; gap:56px; align-items:stretch;}

  .p-steps{border-left:1px solid var(--line); padding-left:38px; display:flex; flex-direction:column; gap:32px;}
  .p-step{position:relative;}
  .p-step::before{
    content:attr(data-num);
    position:absolute; left:-56px; top:-3px;
    width:32px; height:32px; border-radius:50%;
    background:var(--white); border:1.5px solid var(--blue);
    color:var(--blue-deep); font-family:'IBM Plex Mono',monospace; font-size:11.5px; font-weight:600;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 6px 14px -6px rgba(11,29,51,0.18);
  }
  .p-step h4{font-family:'Fraunces',serif; font-size:17.5px; font-weight:620; margin-bottom:6px; color:var(--ink);}
  .p-step p{font-size:14px; line-height:1.6; color:var(--ink-soft);}

  .process-gallery{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  grid-template-rows:repeat(2, minmax(220px, 1fr));
  gap:16px;
  flex:1 1 auto;
}
  .process-gallery-wrap{
  display:flex;
  flex-direction:column;
  height:100%;
}
  .gallery-tile{
    all:unset;
    position:relative; display:block; cursor:pointer;
    border-radius:16px; overflow:hidden; background:var(--ink);
    box-shadow:0 16px 34px -18px rgba(11,29,51,0.35);
  }
  .gallery-tile img{
    width:100%; height:100%; object-fit:cover; display:block;
    transition:transform .6s cubic-bezier(.2,.8,.2,1);
  }
  .gallery-tile:hover img{transform:scale(1.08);}
  .gallery-tile::after{
    content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, transparent 40%, rgba(6,13,24,0.9) 100%);
  }
  .gallery-cap{position:absolute; left:16px; right:16px; bottom:14px; z-index:2;}
  .gallery-tag{
    display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:0.08em; text-transform:uppercase;
    color:var(--gold); background:rgba(11,29,51,0.55); border:1px solid rgba(255,255,255,0.22);
    padding:4px 10px; border-radius:20px; margin-bottom:8px; backdrop-filter:blur(3px);
  }
  .gallery-cap b{display:block; font-family:'Fraunces',serif; font-weight:600; font-size:14.5px; color:var(--white); line-height:1.32;}
  .gallery-count{
    position:absolute; top:14px; right:14px; z-index:2;
    display:flex; align-items:center; gap:5px;
    font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--white);
    background:rgba(11,29,51,0.55); border:1px solid rgba(255,255,255,0.25);
    padding:4px 9px; border-radius:20px; backdrop-filter:blur(3px);
  }
  .gallery-count svg{width:11px; height:11px;}

  .process-gallery-foot{
    display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
    padding-top:6px;
  }
  .process-gallery-foot p{font-size:13.5px; color:var(--ink-soft); max-width:480px;}

  @media (max-width:1100px){
    .process-layout{grid-template-columns:1fr; gap:44px;}
  }
  @media (max-width:680px){
    .process-gallery{grid-template-columns:repeat(2, 1fr); grid-auto-rows:180px;}
  }
  @media (max-width: 900px){
  .process-gallery-head,
  .process-gallery{
    display:none;
  }

  .process-gallery-foot p{
    display:none;
  }
  .process-gallery-foot{
    justify-content:center;
  }

  .process{
    padding:60px 0 40px;
  }
   .process-layout{
    gap:16px;
  }
}

 /* ===== FOND — MÉTHODOLOGIE & RÉALISATIONS ===== */
.process{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:linear-gradient(180deg, var(--paper-2) 0%, var(--paper) 160px, var(--paper) 100%);
  padding:110px 0;
}
.process .wrap{
  position:relative; z-index:2;
  max-width:100%;
  padding-left:clamp(20px, 4vw, 64px);
  padding-right:clamp(20px, 4vw, 64px);
}
.process-top{max-width:660px; margin-bottom:52px;}

.process::before{
  content:'';
  position:absolute; top:0; left:0; right:0; z-index:1;
  height:3px;
  background:linear-gradient(90deg, transparent, var(--blue) 20%, var(--blue-bright) 50%, var(--blue) 80%, transparent);
  opacity:0.55;
}

.process-eagle-main{
  position:absolute; z-index:0; top:70px; right:clamp(20px, 5vw, 90px);
  width:min(380px, 34vw);
  color:var(--blue);
  opacity:0.15;
  pointer-events:none;
}
.process-eagle-main svg{ width:100%; height:auto; display:block; }

.process-eagle-sub{
  position:absolute; z-index:0; bottom:40px; left:clamp(10px, 3vw, 40px);
  width:180px;
  color:var(--blue-bright);
  opacity:0.08;
  transform:rotate(-6deg);
  pointer-events:none;
}
.process-eagle-sub svg{ width:100%; height:auto; display:block; }

@media (max-width:900px){
  .process-eagle-main{ width:min(260px, 46vw); top:40px; opacity:0.13; }
  .process-eagle-sub{
    display:block;
    width:130px;
    bottom:24px;
    opacity:0.1;
  }
  .process{
    padding:60px 0 40px;
  }
}
@media (max-width:620px){
  .process-eagle-main{ width:180px; top:26px; opacity:0.11; }
}

/* ===== ÉTAPES DU DISPOSITIF ===== */
.process-layout{display:block;}

.p-steps{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:40px 32px;
}
.p-step{
  position:relative;
  padding-top:2px;
}
.p-step::before{
  content:attr(data-num);
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:50%;
  background:var(--white); border:1.5px solid var(--blue);
  color:var(--blue-deep); font-family:'IBM Plex Mono',monospace; font-size:12.5px; font-weight:600;
  box-shadow:0 6px 14px -6px rgba(11,29,51,0.18);
  margin-bottom:18px;
}
.p-step h4{font-family:'Fraunces',serif; font-size:16.5px; font-weight:620; margin-bottom:8px; color:var(--ink);}
.p-step p{font-size:13.5px; line-height:1.6; color:var(--ink-soft);}

@media (max-width:1100px){
  .p-steps{grid-template-columns:repeat(3, 1fr); gap:36px 28px;}
}
@media (max-width:720px){
  .p-steps{grid-template-columns:repeat(2, 1fr); gap:32px 24px;}
}
@media (max-width:480px){
  .p-steps{grid-template-columns:1fr; gap:28px;}
}

  /* ===== ENGAGEMENTS ===== */
  .engagements{background:var(--blue-deep); padding:56px 0; color:var(--white);}
  .engagements .wrap{
  max-width:100%;
  padding-left:clamp(20px, 4vw, 64px);
  padding-right:clamp(20px, 4vw, 64px);
}
  .eng-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:0;}
  .eng-item{display:flex; flex-direction:column; gap:14px;}
  .eng-item svg{width:26px; height:26px; color:var(--gold);}
  .eng-item h4{font-family:'Fraunces',serif; font-size:16.5px; font-weight:600;}
  .eng-item p{font-size:13px; color:rgba(255,255,255,0.65);}
  .engagements .section-head h2{color:var(--white); max-width:600px;}
  .engagements .section-head p{color:rgba(255,255,255,0.65);}

  /* ===== FAQ ===== */
.faq{padding:110px 0; background:var(--paper-2);}
.faq .wrap{max-width:900px;}
.faq .section-head{text-align:center; max-width:640px; margin:0 auto 52px;}
.faq .section-head .eyebrow{justify-content:center;}
.faq-underline{width:56px; height:3px; background:var(--gold); border-radius:2px; margin:20px auto 0;}
.faq .section-head p{margin:22px auto 0; max-width:520px;}

.faq-list{display:flex; flex-direction:column; gap:12px;}

.faq-item{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.faq-item.open{border-color:rgba(27,95,168,0.35); box-shadow:0 16px 34px -20px rgba(11,29,51,0.25);}

.faq-q{
  all:unset;
  display:flex; align-items:center; gap:18px;
  width:100%; box-sizing:border-box;
  padding:22px 26px;
  cursor:pointer;
}
.faq-q-num{
  font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.08em;
  color:var(--gold); flex-shrink:0; width:26px;
}
.faq-q-text{
  font-family:'Fraunces',serif; font-size:16.5px; font-weight:600; color:var(--ink);
  flex:1; line-height:1.4;
}
.faq-q-icon{
  width:30px; height:30px; border-radius:50%; flex-shrink:0;
  border:1.4px solid var(--line);
  display:flex; align-items:center; justify-content:center; color:var(--ink);
  transition:transform .3s ease, background .25s ease, border-color .25s ease, color .25s ease;
}
.faq-q-icon svg{width:13px; height:13px;}
.faq-item.open .faq-q-icon{
  transform:rotate(45deg);
  background:var(--ink); border-color:var(--ink); color:var(--white);
}

.faq-a{max-height:0; overflow:hidden; transition:max-height .38s cubic-bezier(.2,.8,.2,1);}
.faq-a-inner{
  padding:0 26px 24px 70px;
  font-size:14.5px; line-height:1.7; color:var(--ink-soft);
  max-width:600px;
}

.faq-foot{
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
  margin-top:36px; padding-top:28px; border-top:1px dashed var(--line);
}
.faq-foot p{font-size:13.5px; color:var(--ink-soft); max-width:420px;}
.faq-foot .btn-outline{flex-shrink:0;}

@media (max-width:620px){
  .faq{padding:80px 0;}
  .faq-q{padding:18px 18px; gap:12px;}
  .faq-q-text{font-size:15px;}
  .faq-a-inner{padding:0 18px 20px 56px;}
  .faq-foot{flex-direction:column; align-items:flex-start;}
  .faq-foot .btn-outline{width:100%; justify-content:center;}
}

 /* ===== CONTACT ===== */
.contact{
  position:relative;
  overflow:hidden;
  padding:50px 0;
  background:linear-gradient(160deg, var(--ink) 0%, var(--blue-deep) 65%, var(--ink-2) 100%);
  color:var(--white);
}
.contact .wrap{
  max-width:100%;
  padding-left:clamp(20px, 4vw, 64px);
  padding-right:clamp(20px, 4vw, 64px);
}

.contact-hexgrid{
  position:absolute; inset:0; z-index:0; opacity:0.5;
  background-image:
    linear-gradient(30deg, rgba(255,255,255,0.045) 1px, transparent 1px),
    linear-gradient(150deg, rgba(255,255,255,0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.045) 1px, transparent 1px);
  background-size:64px 110px;
  -webkit-mask-image:radial-gradient(ellipse 85% 75% at 30% 45%, #000 20%, transparent 75%);
  mask-image:radial-gradient(ellipse 85% 75% at 30% 45%, #000 20%, transparent 75%);
}

.contact-orbits{
  position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none;
}
.contact-orbits svg{
  position:absolute; top:50%; left:50%;
  width:1400px; height:1400px;
  transform:translate(-50%,-50%);
}
.orbit-ring{
  fill:none; stroke:rgba(255,255,255,0.11); stroke-width:1;
}
.orbit-group{
  transform-origin:700px 700px;
  animation:orbitSpin 90s linear infinite;
}
.orbit-group.reverse{
  animation-direction:reverse;
  animation-duration:130s;
}
@keyframes orbitSpin{ to{ transform:rotate(360deg); } }
.contact-orbits::after{
  content:'';
  position:absolute; top:50%; left:38%;
  width:640px; height:640px;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(42,172,226,0.10) 0%, transparent 65%);
}

.orbit-comet{
  fill:var(--blue-bright);
  filter:drop-shadow(0 0 6px rgba(42,172,226,0.9)) drop-shadow(0 0 14px rgba(42,172,226,0.5));
  animation:cometGlow 3s ease-in-out infinite;
}
.orbit-comet.gold{
  fill:var(--gold);
  filter:drop-shadow(0 0 6px rgba(198,162,77,0.9)) drop-shadow(0 0 14px rgba(198,162,77,0.5));
  animation-delay:1.4s;
}
@keyframes cometGlow{
  0%,100%{ opacity:0.55; }
  50%{ opacity:1; }
}

.contact-stars{
  position:absolute; inset:0; z-index:0; pointer-events:none;
}
.star-dot{
  fill:var(--gold);
  animation:starTwinkle 4s ease-in-out infinite;
}
.star-dot.blue{ fill:var(--blue-bright); }
@keyframes starTwinkle{
  0%,100%{ opacity:0.25; }
  50%{ opacity:0.9; }
}

@media (prefers-reduced-motion: reduce){
  .orbit-group, .star-dot, .orbit-comet{ animation:none !important; }
}

.contact-grid{
  position:relative; z-index:1;
  display:grid;
  grid-template-columns:0.95fr 1.05fr;
  gap:44px;
  align-items:center;
}

.contact-text .eyebrow{ color:var(--white); }

.contact-text h2{
  font-size:clamp(30px, 3.4vw, 44px);
  font-weight:680;
  line-height:1.1;
  color:var(--white);
  margin-bottom:16px;
}
.contact-text h2 .accent{
  display:block;
  color:var(--blue-bright);
}

.contact-text > p{
  color:rgba(255,255,255,0.68);
  font-size:16px;
  line-height:1.7;
  max-width:440px;
  margin-bottom:22px;
}

.contact-cards{display:flex; flex-direction:column; gap:10px;}
.contact-card{
  display:flex; align-items:center; gap:16px;
  border:1px solid rgba(255,255,255,0.14);
  border-radius:14px;
  padding:13px 18px;
  transition:border-color .2s ease, background .2s ease, transform .2s ease;
}
.contact-card:hover{
  border-color:rgba(255,255,255,0.3);
  background:rgba(255,255,255,0.04);
  transform:translateY(-2px);
}
.contact-card-icon{
  width:38px; height:38px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  color:var(--gold);
}
.contact-card-icon svg{width:22px; height:22px;}
.contact-card-text{display:flex; flex-direction:column; gap:4px;}
.contact-card-label{font-size:13px; color:rgba(255,255,255,0.6);}
.contact-card-value{font-size:16.5px; font-weight:650; color:var(--white); font-family:'Fraunces',serif;}

.contact-form-panel{
  position:relative; z-index:1;
  background:var(--white);
  border-radius:20px;
  padding:30px 34px;
  box-shadow:0 40px 90px -24px rgba(0,0,0,0.55);
}
.form-row{margin-bottom:12px;}
.form-row label{display:block; font-size:12.5px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink-soft); margin-bottom:8px;}
.form-row input, .form-row textarea, .form-row select{
  width:100%; border:1px solid var(--line); border-radius:10px; padding:13px 14px; font-family:'Inter',sans-serif;
  font-size:14.5px; color:var(--ink); background:var(--paper); transition:border-color .2s;
}
.form-row textarea{ min-height:70px; }
.form-row input:focus, .form-row textarea:focus, .form-row select:focus{outline:none; border-color:var(--blue);}
.form-two{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.contact-form-panel .btn-primary{width:100%; justify-content:center; margin-top:6px;}

.form-status{
  font-size:13.5px;
  padding:10px 14px;
  border-radius:10px;
  margin-top:4px;
  display:none;
}
.form-status.show{ display:block; }
.form-status.success{
  background:rgba(27,150,90,0.1);
  color:#1B965A;
  border:1px solid rgba(27,150,90,0.25);
}
.form-status.error{
  background:rgba(200,60,60,0.08);
  color:#C43C3C;
  border:1px solid rgba(200,60,60,0.25);
}
.contact-form-panel .btn-primary[disabled]{
  opacity:0.6; cursor:not-allowed; transform:none !important;
}

@media (max-width:980px){
  .contact-grid{grid-template-columns:1fr; gap:40px;}
  .contact-form-panel{padding:28px 24px;}
}
@media (max-width:620px){
  .contact{padding:40px 0;}
  .form-two{grid-template-columns:1fr;}
}

  /* ===== FOOTER ===== */
  footer{background:var(--ink); color:rgba(255,255,255,0.6); padding:60px 0 30px;}
  footer .wrap{
  max-width:100%;
  padding-left:clamp(20px, 4vw, 64px);
  padding-right:clamp(20px, 4vw, 64px);
}
  .foot-top{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,0.1);}
  .foot-brand{display:flex; gap:12px; align-items:center; margin-bottom:16px;}
  .foot-brand img{width:36px; height:36px; border-radius:50%;}
  .foot-brand b{color:var(--white); font-family:'Fraunces',serif; font-size:16px;}
  .foot-top p{font-size:13.5px; line-height:1.7; max-width:280px;}
  footer h5{color:var(--white); font-size:13px; text-transform:uppercase; letter-spacing:0.08em; font-family:'IBM Plex Mono',monospace; margin-bottom:18px;}
  footer ul li{margin-bottom:11px; font-size:14px;}
  footer ul li a:hover{color:var(--white);}
  .foot-legal{font-family:'IBM Plex Mono',monospace; font-size:11.5px; line-height:2; color:rgba(255,255,255,0.4);}
  .foot-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:26px; font-size:12.5px; flex-wrap:wrap; gap:10px;}

  [data-reveal]{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
  [data-reveal].visible{opacity:1; transform:translateY(0);}

  @media (max-width: 1180px){
  .nav-links{display:none;}
  .burger{display:block;}
   .btn-header-cta{display:none;}
  .hero-inner{grid-template-columns:1fr;}
    .hero-stats{flex-wrap:wrap; gap:20px;}
    .hstat{flex:1 1 40%;}
    .region-grid{grid-template-columns:repeat(2,1fr);}
    .growth-inner{grid-template-columns:1fr; gap:40px;}
    .ref-list{grid-template-columns:1fr;}
    .ref-item:nth-child(odd){border-right:none;}
    .process-inner{grid-template-columns:1fr; gap:40px;}
    .eng-grid{grid-template-columns:repeat(2,1fr);}
    .contact-inner{grid-template-columns:1fr;}
    .foot-top{grid-template-columns:1fr 1fr; row-gap:30px;}
  }
  @media (max-width: 620px){
    .svc-grid, .region-grid, .eng-grid{grid-template-columns:1fr;}
    .form-two{grid-template-columns:1fr;}
    h2{font-size:30px;}
    .hero{padding:140px 0 80px;}
    .foot-top{grid-template-columns:1fr;}
    .foot-top > div:nth-child(2),
    .foot-top > div:nth-child(3),
    .foot-top > div:nth-child(4){display:none;}
    .brand-text span{display:none;}
    .nav-cta{gap:10px;}
  }
  @media (max-width: 400px){
    .brand-text strong{
  font-size:clamp(14px, 1.2vw, 16.5px);
  white-space:nowrap;
}
    .brand img{width:34px; height:34px;}
  }
  @media (prefers-reduced-motion: reduce){
    *{animation:none !important; transition:none !important;}
  }

    /* ===== RÉSEAUX SOCIAUX (FOOTER) ===== */
  .foot-social{
    display:flex;
    gap:10px;
    margin-top:22px;
  }
  .foot-social a{
    width:38px; height:38px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,0.16);
    display:flex; align-items:center; justify-content:center;
    color:rgba(255,255,255,0.65);
    transition:transform .25s ease, background .25s ease, border-color .25s ease, color .25s ease;
  }
  .foot-social a svg{width:16px; height:16px;}
  .foot-social a:hover{
    background:var(--gold);
    border-color:var(--gold);
    color:var(--ink);
    transform:translateY(-3px);
  }
  @media (max-width:620px){
    .foot-social{margin-top:18px;}
  }

  /* ===== WHATSAPP FLOTTANT ===== */
  .whatsapp-float{
    position:fixed;
    bottom:26px;
    right:26px;
    z-index:200;
    width:60px; height:60px;
    border-radius:50%;
    background:#25D366;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 12px 28px -8px rgba(37,211,102,0.55), 0 4px 12px rgba(0,0,0,0.25);
    transition:transform .25s ease, box-shadow .25s ease;
  }
  .whatsapp-float:hover{
    transform:translateY(-4px) scale(1.05);
    box-shadow:0 18px 34px -8px rgba(37,211,102,0.65), 0 6px 16px rgba(0,0,0,0.3);
  }
  .whatsapp-float svg{width:30px; height:30px; fill:#FFFFFF;}
  .whatsapp-float::before{
    content:'';
    position:absolute; inset:0;
    border-radius:50%;
    background:#25D366;
    opacity:0.55;
    animation:waPulse 2.4s ease-out infinite;
    z-index:-1;
  }
  @keyframes waPulse{
    0%{transform:scale(1); opacity:0.5;}
    100%{transform:scale(1.7); opacity:0;}
  }
  @media (max-width: 620px){
    .whatsapp-float{width:52px; height:52px; bottom:18px; right:18px;}
    .whatsapp-float svg{width:26px; height:26px;}
  }
  @media (prefers-reduced-motion: reduce){
    .whatsapp-float::before{animation:none; display:none;}
  }

/* ===== SLOGAN ===== */
.catalog-slogan{
  background:var(--paper);
  padding:32px 0;
  text-align:center;
  border-top:1px solid var(--line);
  position:relative;
  z-index:1;
}
.catalog-slogan p{
  font-family:'Fraunces', serif;
  font-style:italic;
  font-weight:560;
  font-size:clamp(16px, 1.4vw, 18px);
  color:var(--ink-2);
  letter-spacing:0.01em;
  display:inline-flex;
  align-items:center;
  gap:18px;
  margin:0;
}
.catalog-slogan p::before,
.catalog-slogan p::after{
  content:'';
  width:30px;
  height:1px;
  background:var(--gold);
  flex-shrink:0;
}
@media (max-width:560px){
  .catalog-slogan{ padding:22px 0; }
  .catalog-slogan p::before,
  .catalog-slogan p::after{
    width:18px;
  }
}

  
/* ===== MÉDIATHÈQUE ===== */
.media{padding:110px 0; background:var(--paper); position:relative; overflow:hidden;}
@media (max-width: 900px){
  .media{
    padding:40px 0 60px;
  }

  .media-head-row{
    flex-direction:row;
    align-items:flex-end;
    justify-content:space-between;
  }

  .media .media-head-row .media-count{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:2px;
    padding-bottom:2px;
    white-space:nowrap;
    font-family:inherit; /* neutralise l'ancien font-family mono hérité */
  }
  .media .media-head-row .media-count b{
    font-family:'Fraunces', serif;
    font-size:28px;
    font-weight:640;
    color:var(--ink);
    line-height:1;
  }
  .media .media-head-row .media-count::after{
    content:'Photos';
    display:block;
    font-family:'IBM Plex Mono', monospace;
    font-size:10px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }
}
.media .wrap{
  max-width:100%;
  padding-left:clamp(20px, 4vw, 64px);
  padding-right:clamp(20px, 4vw, 64px);
  position:relative; z-index:1;
}
.media-watermark{
  position:absolute; top:60px; left:0; right:0; z-index:0;
  padding:0 clamp(20px, 4vw, 64px);
  text-align:right;
  font-family:'Fraunces', serif; font-weight:680;
  font-size:clamp(52px, 8vw, 130px); line-height:0.95; letter-spacing:-0.02em;
  color:rgba(11,29,51,0.045);
  white-space:nowrap; pointer-events:none; user-select:none;
}
@media (max-width: 900px){ .media-watermark{display:none;} }

.media-head-row{
  display:flex; align-items:flex-end; justify-content:space-between; gap:24px;
  margin-bottom:6px; flex-wrap:wrap;
}
.media-head-row .section-head{margin-bottom:0; max-width:600px;}
.media-count{
  font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--ink-soft);
  letter-spacing:0.05em; white-space:nowrap; padding-bottom:4px;
}
.media-count b{color:var(--gold); font-weight:600; font-size:15px;}
.media-count::after{
  content:' photos';
  text-transform:lowercase;
}

/* ===== PLANCHES — ouverture en essai photo ===== */
.media-essay{margin-top:48px; margin-bottom:64px;}
.media-essay-head{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  margin-bottom:18px;
}
.media-essay-label{
  display:flex; align-items:center; gap:10px;
  font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--ink-soft);
}
.media-essay-label b{color:var(--gold); font-weight:600;}
.media-essay-nav{display:flex; gap:8px;}
.media-essay-arrow{
  width:36px; height:36px; border-radius:50%; border:1px solid var(--line);
  background:var(--white); color:var(--ink); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.media-essay-arrow svg{width:14px; height:14px;}
@media (hover: hover) and (pointer: fine){
  .media-essay-arrow:hover{background:var(--ink); border-color:var(--ink); color:var(--white);}
  .media-essay-arrow:disabled:hover{background:var(--white); color:var(--ink); border-color:var(--line);}
}
.media-essay-arrow:disabled:hover{background:var(--white); color:var(--ink); border-color:var(--line);}

.media-essay-track{
  display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; -ms-overflow-style:none;
  padding-bottom:4px;
}
.media-essay-track::-webkit-scrollbar{display:none;}

.media-essay-slide{
  all:unset; position:relative; cursor:pointer;
  flex:0 0 min(560px, 82vw);
  aspect-ratio:4/5;
  border-radius:18px; overflow:hidden; background:var(--ink);
  scroll-snap-align:start;
  box-shadow:0 24px 50px -24px rgba(11,29,51,0.4);
}
.media-essay-slide img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .7s cubic-bezier(.2,.8,.2,1);
}
.media-essay-slide:hover img{transform:scale(1.05);}
.media-essay-slide::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(6,13,24,0.88) 0%, rgba(6,13,24,0.1) 45%, transparent 65%);
}
.media-essay-num{
  position:absolute; top:22px; left:24px; z-index:2;
  font-family:'Fraunces',serif; font-weight:640; font-size:44px; line-height:1;
  color:transparent; -webkit-text-stroke:1.3px rgba(255,255,255,0.55);
}
.media-essay-cap{position:absolute; left:24px; right:24px; bottom:24px; z-index:2;}
.media-essay-tag{
  display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:10.5px; font-weight:600;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--gold); margin-bottom:9px;
}
.media-essay-cap h4{font-family:'Fraunces',serif; font-size:21px; font-weight:640; color:var(--white); line-height:1.25;}

@media (max-width:620px){
  .media-essay-slide{flex-basis:78vw; aspect-ratio:3/4;}
}

@media (max-width: 900px){
  .media-essay{
    margin-top:0; /* au lieu de 48px hérité du desktop */
  }
}

@media (max-width:640px){
  .media-justified.media-justified-mobile{
    display:grid !important;
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .media-justified.media-justified-mobile .media-jtile{
    width:100%;
    height:auto;
    aspect-ratio:1/1;
  }
  .media-justified.media-justified-mobile .media-jtile-wide{
    grid-column:1 / -1;
    aspect-ratio:16/9;
  }
}

/* --- filtres --- */
.media-filters{
  display:flex; gap:10px; flex-wrap:wrap;
  margin-bottom:28px; padding-bottom:26px; border-bottom:1px solid var(--line);
}
.media-filter{
  all:unset; cursor:pointer;
  display:inline-flex; align-items:center; gap:7px;
  font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:600;
  letter-spacing:0.03em; color:var(--ink-soft);
  background:var(--paper-2); border:1px solid var(--line);
  padding:9px 16px; border-radius:999px;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.media-filter span{font-size:10.5px; color:var(--ink-soft); opacity:0.65;}
.media-filter:hover{border-color:var(--blue);}
.media-filter.active{background:var(--ink); border-color:var(--ink); color:var(--white);}
.media-filter.active span{color:var(--gold); opacity:1;}

/* ===== GRILLE JUSTIFIÉE ===== */
.media-justified{display:flex; flex-direction:column; gap:10px;}
.media-jrow{display:flex; gap:10px;}
.media-jtile{
  all:unset; position:relative; display:block; cursor:pointer;
  border-radius:10px; overflow:hidden; background:var(--ink);
  flex-shrink:0;
  opacity:0; transform:translateY(8px);
  animation:mediaTileIn .5s cubic-bezier(.2,.8,.2,1) forwards;
}
@keyframes mediaTileIn{ to{ opacity:1; transform:translateY(0); } }
.media-jtile img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .6s cubic-bezier(.2,.8,.2,1);
}
.media-jtile:hover img{transform:scale(1.06);}
.media-jtile::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 45%, rgba(6,13,24,0.9) 100%);
  opacity:0.4; transition:opacity .3s ease;
}
.media-jtile:hover::after{opacity:0.82;}
.media-jtile-tag{
  position:absolute; top:10px; left:10px; z-index:2;
  font-family:'IBM Plex Mono',monospace; font-size:9px; font-weight:600; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--gold); background:rgba(11,29,51,0.55); border:1px solid rgba(255,255,255,0.2);
  padding:3px 8px; border-radius:20px; backdrop-filter:blur(3px);
  opacity:0; transition:opacity .25s ease;
}
.media-jtile:hover .media-jtile-tag{opacity:1;}
.media-jtile-cap{
  position:absolute; left:12px; right:12px; bottom:10px; z-index:2;
  transform:translateY(6px); opacity:0; transition:transform .3s ease, opacity .3s ease;
}
.media-jtile:hover .media-jtile-cap{transform:translateY(0); opacity:1;}
.media-jtile-cap b{
  display:block; font-family:'Fraunces',serif; font-weight:600; font-size:12.5px; color:var(--white); line-height:1.3;
}
.media-jtile-expand{
  position:absolute; top:8px; right:8px; z-index:2;
  width:26px; height:26px; border-radius:7px;
  background:rgba(11,29,51,0.5); border:1px solid rgba(255,255,255,0.2);
  display:flex; align-items:center; justify-content:center; color:var(--white);
  opacity:0; transition:opacity .25s ease;
}
.media-jtile-expand svg{width:11px; height:11px;}
.media-jtile:hover .media-jtile-expand{opacity:1;}

.media-empty{
  text-align:center; padding:60px 20px;
  font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--ink-soft);
}
.media-skeleton{
  text-align:center; padding:40px 20px;
  font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--ink-soft); opacity:0.6;
}

.media-foot{display:flex; justify-content:center; margin-top:36px;}
.media-loadmore{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 30px; border-radius:999px;
  font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:13px; color:var(--ink);
  background:var(--white); border:1px solid var(--line); cursor:pointer;
  transition:transform .25s ease, border-color .25s ease;
}
.media-loadmore:hover{border-color:var(--blue); transform:translateY(-2px);}
.media-loadmore svg{width:14px; height:14px;}
.media-loadmore[hidden]{display:none;}

@media (max-width:620px){
  .media-jrow{flex-wrap:wrap;}
}

/* ===== LIGHTBOX MÉDIATHÈQUE ===== */
.media-lightbox-overlay{
  position:fixed; inset:0; z-index:320;
  background:rgba(6,13,24,0.9); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; padding:24px;
  opacity:0; visibility:hidden; transition:opacity .3s ease, visibility 0s linear .3s;
}
.media-lightbox-overlay.open{opacity:1; visibility:visible; transition:opacity .3s ease, visibility 0s linear 0s;}
.media-lightbox-box{
  position:relative; width:100%; max-width:980px;
  transform:translateY(18px) scale(0.98);
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.media-lightbox-overlay.open .media-lightbox-box{transform:translateY(0) scale(1);}

.media-lightbox-frame{
  position:relative; border-radius:18px; overflow:hidden;
  background:var(--ink); box-shadow:0 50px 100px -24px rgba(0,0,0,0.65);
  max-height:78vh; display:flex; align-items:center; justify-content:center;
  touch-action:none;
}
.media-lightbox-frame::before{
  content:'';
  position:absolute; inset:-30px; z-index:0;
  background-image:var(--bg-img);
  background-size:cover;
  background-position:center;
  filter:blur(32px) brightness(0.45) saturate(1.15);
  transform:scale(1.15);
}
.media-lightbox-frame img{
  position:relative; z-index:1;
  width:100%; height:100%; max-height:78vh; object-fit:contain; display:block;
  -webkit-user-drag:none;
  user-select:none;
  touch-action:pan-y;
  transition:transform .3s cubic-bezier(.2,.8,.2,1);
}
.media-lightbox-grad{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(0deg, rgba(6,13,24,0.85) 0%, transparent 30%);
}
.media-lightbox-cap{position:absolute; left:28px; right:28px; bottom:24px; z-index:2;}
.media-lightbox-tag{
  display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--gold); margin-bottom:8px;
}
.media-lightbox-cap h4{font-family:'Fraunces',serif; font-size:22px; font-weight:640; color:var(--white);}

.media-lightbox-close{
  position:absolute; top:-16px; right:-16px; z-index:5;
  width:40px; height:40px; border-radius:50%;
  background:var(--white); border:1px solid var(--line); color:var(--ink);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  box-shadow:0 10px 24px -10px rgba(0,0,0,0.4);
  transition:background .2s ease, color .2s ease, transform .2s ease;
}
.media-lightbox-close svg{width:16px; height:16px;}
.media-lightbox-close:hover{background:var(--ink); color:var(--white); transform:rotate(90deg);}

.media-lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:4;
  width:44px; height:44px; border-radius:50%;
  background:rgba(11,29,51,0.55); border:1px solid rgba(255,255,255,0.25); color:var(--white);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  backdrop-filter:blur(3px); transition:background .2s ease;
}
.media-lightbox-nav svg{width:16px; height:16px;}
.media-lightbox-nav.prev{left:-16px;}
.media-lightbox-nav.next{right:-16px;}
@media (hover: hover) and (pointer: fine){
  .media-lightbox-nav:hover{background:var(--blue);}
}

.media-lightbox-counter{
  position:absolute; top:-16px; left:0; z-index:3;
  font-family:'IBM Plex Mono',monospace; font-size:12px; color:rgba(255,255,255,0.7);
  letter-spacing:0.05em;
}
.media-lightbox-counter b{color:var(--white);}

.media-lightbox-strip{
  display:flex; gap:8px; margin-top:14px; overflow-x:auto;
  scrollbar-width:none;
}
.media-lightbox-strip::-webkit-scrollbar{display:none;}
.media-lightbox-thumb{
  all:unset; flex:0 0 64px; width:64px; height:48px; border-radius:8px; overflow:hidden;
  cursor:pointer; opacity:0.45; transition:opacity .2s ease, outline .2s ease;
  outline:2px solid transparent; outline-offset:1px;
}
.media-lightbox-thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.media-lightbox-thumb:hover{opacity:0.8;}
.media-lightbox-thumb.active{opacity:1; outline-color:var(--blue-bright);}

#mediaLightboxImg, #catalogLightboxImg{
  touch-action:none;
  will-change:transform;
}

@media (max-width:640px){
  .media-lightbox-close{top:-46px; right:0;}
  .media-lightbox-counter{top:-46px;}
  .media-lightbox-nav{width:38px; height:38px;}
  .media-lightbox-nav.prev{left:6px;}
  .media-lightbox-nav.next{right:6px;}
  .media-lightbox-strip{display:none;}

  /* La légende ne doit plus recouvrir l'image sur mobile : on la sort du cadre */
  .media-lightbox-frame{
    flex-direction:column;
    align-items:stretch;
    max-height:none;
    background:var(--ink);
  }
  .media-lightbox-frame img{
    position:relative;
    width:100%;
    height:auto;
    max-height:60vh;
    object-fit:contain;
  }
  .media-lightbox-grad{ display:none; }
  .media-lightbox-cap{
    position:static;
    left:auto; right:auto; bottom:auto;
    padding:16px 20px 20px;
    background:var(--ink-2);
  }
   /* Flèches plus discrètes, elles ne doivent pas masquer le produit */
  .media-lightbox-nav{
    background:rgba(11,29,51,0.22);
    border-color:rgba(255,255,255,0.15);
    backdrop-filter:none;
    color:rgba(255,255,255,0.7);
    box-shadow:none;
  }
  .media-lightbox-nav:active{
    background:rgba(11,29,51,0.4);
  }
}

/* ===== Anti-flash iOS (rebond de scroll) — n'affecte aucune section existante ===== */
body::before{
  content:'';
  position:fixed;
  top:-50vh; bottom:-50vh; left:-10vw; right:-10vw;
  z-index:-1;
  background:var(--ink);
  pointer-events:none;
}

/* ===== MODAL NOTRE ÉQUIPE ===== */
.team-modal-overlay{
  position:fixed; inset:0; z-index:300;
  background:rgba(6,13,24,0.78); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center; padding:24px;
  opacity:0; visibility:hidden;
  transition:opacity .3s ease, visibility 0s linear .3s;
}
.team-modal-overlay.open{
  opacity:1; visibility:visible;
  transition:opacity .3s ease, visibility 0s linear 0s;
}
.team-modal-box{
  position:relative;
  width:100%; max-width:960px; max-height:88vh; overflow-y:auto; overflow-x:hidden;
  background:var(--paper);
  border-radius:22px;
  box-shadow:0 50px 100px -24px rgba(0,0,0,0.6);
  transform:translateY(18px) scale(0.98);
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
  scrollbar-width:thin; scrollbar-color:var(--paper-3) var(--paper);
}
.team-modal-overlay.open .team-modal-box{transform:translateY(0) scale(1);}
.team-modal-box::-webkit-scrollbar{width:9px;}
.team-modal-box::-webkit-scrollbar-track{background:var(--paper); border-radius:20px;}
.team-modal-box::-webkit-scrollbar-thumb{background:var(--paper-3); border-radius:20px; border:2px solid var(--paper); background-clip:padding-box;}

.team-modal-close{
  position:sticky; top:16px; float:right; margin:0 16px 0 0; z-index:5;
  width:38px; height:38px; border-radius:50%;
  background:var(--white); border:1px solid var(--line); color:var(--ink);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .2s ease, color .2s ease, transform .2s ease;
}
.team-modal-close svg{width:16px; height:16px;}
.team-modal-close:hover{background:var(--ink); color:var(--white); transform:rotate(90deg);}

.team-modal-head{padding:36px 34px 0; text-align:center;}
.team-modal-head .eyebrow{justify-content:center;}
.team-modal-head h3{font-family:'Fraunces',serif; font-size:26px; font-weight:640; color:var(--ink);}

.team-stage{position:relative; display:flex; align-items:center; justify-content:center; height:440px; perspective:1400px; margin-top:20px;}
.team-track{position:relative; width:100%; height:100%; display:flex; align-items:center; justify-content:center;}
.team-card{
  position:absolute;
  top:50%; left:50%;
  margin-top:-145px;   /* -moitié de la hauteur (290px) */
  margin-left:-105px;  /* -moitié de la largeur (210px) */
  width:210px; height:290px; border-radius:16px; overflow:hidden;
  cursor:grab; background:var(--ink);
  box-shadow:0 30px 60px -24px rgba(11,29,51,0.5);
  transition:transform .5s cubic-bezier(.2,.8,.2,1), opacity .5s ease, box-shadow .5s ease;
  will-change:transform;
}
.team-card.active{
  width:250px; height:346px;
  margin-top:-173px;   /* -moitié de 346px */
  margin-left:-125px;  /* -moitié de 250px */
  box-shadow:0 40px 80px -20px rgba(11,29,51,0.55);
}
.team-card:active{cursor:grabbing;}
.team-card img{width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(1) contrast(1.05) brightness(0.92); transition:filter .5s ease;}
.team-card.active{width:250px; height:346px; box-shadow:0 40px 80px -20px rgba(11,29,51,0.55);}
.team-card.active img{filter:none;}
.team-card-cap{
  position:absolute; left:0; right:0; bottom:0; z-index:2; padding:18px 20px 20px;
  background:linear-gradient(0deg, rgba(6,13,24,0.92) 0%, transparent 100%);
  opacity:0; transform:translateY(6px); transition:opacity .4s ease, transform .4s ease;
}
.team-card.active .team-card-cap{opacity:1; transform:translateY(0);}
.team-card-cap b{display:block; font-family:'Fraunces',serif; font-size:16.5px; font-weight:620; color:var(--white); margin-bottom:3px;}
.team-card-cap span{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--gold); letter-spacing:0.04em;}

.team-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:5;
  width:42px; height:42px; border-radius:50%;
  background:var(--white); border:1px solid var(--line); color:var(--ink);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.team-arrow svg{width:15px; height:15px;}
.team-arrow.prev{left:10px;} .team-arrow.next{right:10px;}
.team-arrow:hover{background:var(--ink); color:var(--white);}

.team-foot{display:flex; align-items:center; justify-content:center; gap:20px; padding:24px 34px 34px; flex-wrap:wrap;}
.team-counter{font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--ink-soft);}
.team-counter b{color:var(--gold); font-weight:600;}
.team-dots{display:flex; gap:6px;}
.team-dot{width:20px; height:2px; border-radius:2px; background:var(--line); border:none; padding:0; cursor:pointer; transition:background .25s ease, width .25s ease;}
.team-dot.active{background:var(--gold); width:32px;}

@media (max-width:640px){
  .team-modal-head{padding:60px 20px 0;}
  .team-stage{height:380px; margin-top:12px;}
  .team-card{width:160px; height:220px;}
  .team-card.active{width:190px; height:262px;}
  .team-foot{padding:20px 20px 26px;}
   .team-card{ width:160px; height:220px; margin-top:-110px; margin-left:-80px; }
  .team-card.active{ width:190px; height:262px; margin-top:-131px; margin-left:-95px; }
}