/* ---- Metropolis (police officielle de la charte, embarquée en woff2) ---- */
  @font-face{font-family:'Metropolis';font-style:normal;font-weight:400;font-display:swap;src:url("fonts/metropolis-400.woff2") format('woff2');}
  @font-face{font-family:'Metropolis';font-style:normal;font-weight:500;font-display:swap;src:url("fonts/metropolis-500.woff2") format('woff2');}
  @font-face{font-family:'Metropolis';font-style:normal;font-weight:600;font-display:swap;src:url("fonts/metropolis-600.woff2") format('woff2');}
  @font-face{font-family:'Metropolis';font-style:normal;font-weight:700;font-display:swap;src:url("fonts/metropolis-700.woff2") format('woff2');}

  :root{
    /* papier / encre (thème clair par défaut) */
    --paper:#F4ECDA;
    --paper-2:#ECE0C9;
    --ink:#06303A;
    --ink-2:#4B646A;
    --line:rgba(6,48,58,.14);
    --line-2:rgba(6,48,58,.24);
    /* constantes de marque (identiques dans les 2 thèmes) */
    --petrol:#003A48;
    --petrol-2:#006378;
    --petrol-3:#158AA6;
    --petrol-deep:#012A33;
    --cream:#F2E7D2;
    --cream-dim:#DDCBB0;
    --accent:#ED7658;
    --font:'Metropolis','Helvetica Neue',Arial,sans-serif;
  }
  @media (prefers-color-scheme:dark){
    :root{
      --paper:#06272F;
      --paper-2:#0A333C;
      --ink:#F2E7D2;
      --ink-2:#A7BABB;
      --line:rgba(242,231,210,.13);
      --line-2:rgba(242,231,210,.22);
    }
  }
  :root[data-theme="dark"]{
    --paper:#06272F;--paper-2:#0A333C;--ink:#F2E7D2;--ink-2:#A7BABB;
    --line:rgba(242,231,210,.13);--line-2:rgba(242,231,210,.22);
  }
  :root[data-theme="light"]{
    --paper:#F4ECDA;--paper-2:#ECE0C9;--ink:#06303A;--ink-2:#4B646A;
    --line:rgba(6,48,58,.14);--line-2:rgba(6,48,58,.24);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;background:var(--paper);color:var(--ink);
    font-family:var(--font);font-weight:450;font-size:17px;line-height:1.65;
    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  ::selection{background:var(--accent);color:#fff;}
  .wrap{max-width:1220px;margin:0 auto;padding:0 40px;}
  @media (max-width:640px){ .wrap{padding:0 22px;} }

  h1,h2,h3,h4{margin:0;font-weight:700;line-height:1.05;letter-spacing:-.018em;text-wrap:balance;}
  p{margin:0;}
  .lede{font-size:19px;line-height:1.6;color:var(--ink-2);font-weight:450;}

  .eyebrow{
    display:inline-flex;align-items:center;gap:10px;
    font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.2em;
    color:var(--petrol-2);
  }
  .eyebrow::before{content:"";width:22px;height:1px;background:var(--accent);}
  .eyebrow.pale{color:var(--cream-dim);}
  .eyebrow.pale::before{background:var(--accent);}

  .num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;}

  /* boutons */
  .btn{display:inline-flex;align-items:center;gap:11px;font-size:14.5px;font-weight:600;
    padding:15px 26px;border:1px solid transparent;cursor:pointer;transition:.2s ease;letter-spacing:.005em;}
  .btn .ar{transition:transform .2s ease;}
  .btn:hover .ar{transform:translateX(4px);}
  .btn-solid{background:var(--petrol);color:var(--cream);}
  .btn-solid:hover{background:var(--petrol-deep);}
  .btn-line{border-color:var(--line-2);color:var(--ink);}
  .btn-line:hover{border-color:var(--ink);}
  .btn-cream{background:var(--cream);color:var(--petrol-deep);}
  .btn-cream:hover{background:#fff;}
  .btn-onDark{border:1px solid rgba(242,231,210,.34);color:var(--cream);}
  .btn-onDark:hover{border-color:var(--cream);background:rgba(242,231,210,.06);}

  /* reveal */
  .reveal{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease;}
  .reveal.in{opacity:1;transform:none;}
  @media (prefers-reduced-motion:reduce){ .reveal{opacity:1;transform:none;transition:none;} }

  /* ---------- header ---------- */
  header{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--paper) 86%,transparent);
    backdrop-filter:blur(12px);border-bottom:1px solid var(--line);}
  .nav{display:flex;align-items:center;justify-content:space-between;height:74px;}
  .brand img{height:30px;width:auto;}
  .brand .on-dark{display:none;}
  @media (prefers-color-scheme:dark){ .brand .on-light{display:none;} .brand .on-dark{display:block;} }
  :root[data-theme="dark"] .brand .on-light{display:none;} :root[data-theme="dark"] .brand .on-dark{display:block;}
  :root[data-theme="light"] .brand .on-light{display:block;} :root[data-theme="light"] .brand .on-dark{display:none;}
  .navlinks{display:flex;gap:34px;list-style:none;margin:0;padding:0;}
  .navlinks a{font-size:14.5px;font-weight:500;color:var(--ink-2);position:relative;padding:4px 0;}
  .navlinks a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--accent);transition:width .22s ease;}
  .navlinks a:hover{color:var(--ink);}
  .navlinks a:hover::after{width:100%;}
  .nav-right{display:flex;align-items:center;gap:22px;}
  @media (max-width:920px){ .navlinks{display:none;} }

  /* ---------- hero (statement sombre) ---------- */
  .hero{position:relative;background:var(--petrol-deep);color:var(--cream);overflow:hidden;}
  .hero-inner{position:relative;z-index:2;padding:100px 0 100px;}
  .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:62px;align-items:center;}
  @media (max-width:940px){ .hero-grid{grid-template-columns:1fr;gap:46px;} }
  .hero .kicker{color:var(--cream-dim);}
  .hero h1{font-size:clamp(38px,4.9vw,66px);letter-spacing:-.028em;line-height:1.02;margin:26px 0 0;color:#fff;}
  .hero h1 em{font-style:normal;color:var(--accent);}
  .hero .lede{color:rgba(242,231,210,.82);max-width:50ch;margin-top:26px;}
  .hero-cta{margin-top:38px;display:flex;gap:16px;flex-wrap:wrap;}

  /* mini-dataviz "observatoire" — motif hero renforcé */
  .hero-viz{background:rgba(242,231,210,.04);border:1px solid rgba(242,231,210,.17);padding:26px 26px 22px;}
  .hviz-head{display:flex;justify-content:space-between;align-items:center;gap:12px;}
  .hviz-head .lab{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--cream-dim);}
  .hviz-head .chip{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:rgba(242,231,210,.62);
    border:1px solid rgba(242,231,210,.26);padding:3px 9px;border-radius:20px;white-space:nowrap;}
  .hviz-title{font-size:14.5px;font-weight:600;color:#fff;margin:15px 0 16px;letter-spacing:-.005em;}
  .hviz-chart svg{width:100%;height:auto;display:block;}
  .hviz-chart text{font-family:var(--font);font-variant-numeric:tabular-nums;}
  .hviz-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;
    margin-top:16px;padding-top:15px;border-top:1px solid rgba(242,231,210,.14);}
  .hviz-foot .big{font-size:30px;font-weight:700;color:#fff;letter-spacing:-.02em;line-height:1;}
  .hviz-foot .big .delta{display:block;font-size:12px;color:var(--accent);font-weight:600;margin-top:7px;letter-spacing:.01em;}
  .hviz-foot .cap{font-size:10.5px;color:rgba(242,231,210,.52);max-width:22ch;text-align:right;line-height:1.45;}

  .hero-meta{position:relative;z-index:2;display:flex;gap:38px;flex-wrap:wrap;margin-top:58px;
    padding-top:26px;border-top:1px solid rgba(242,231,210,.16);}
  .hero-meta .mi{display:flex;flex-direction:column;gap:3px;}
  .hero-meta .mi b{font-size:15px;color:#fff;font-weight:600;}
  .hero-meta .mi span{font-size:12.5px;color:rgba(242,231,210,.6);letter-spacing:.02em;}

  /* ---------- key figures (papier, filets — pas un bloc coloré) ---------- */
  .figures{border-bottom:1px solid var(--line);}
  .fig-grid{display:grid;grid-template-columns:repeat(4,1fr);}
  @media (max-width:820px){ .fig-grid{grid-template-columns:1fr 1fr;} }
  .fig{padding:44px 30px 40px 0;border-right:1px solid var(--line);}
  .fig:last-child{border-right:none;}
  @media (max-width:820px){
    .fig{padding:32px 24px 30px 0;}
    .fig:nth-child(2n){border-right:none;}
    .fig:nth-child(-n+2){border-bottom:1px solid var(--line);}
  }
  .fig b{display:block;font-size:clamp(42px,5.4vw,64px);font-weight:700;letter-spacing:-.03em;color:var(--ink);line-height:1;}
  .fig b i{font-style:normal;color:var(--accent);font-size:.5em;vertical-align:.35em;margin-left:2px;}
  .fig span{display:block;margin-top:14px;font-size:14px;line-height:1.5;color:var(--ink-2);max-width:24ch;}
  .fig-note{padding:18px 0 46px;font-size:12px;color:var(--ink-2);opacity:.7;font-style:italic;}

  /* ---------- roster (anciens cabinets, en filet) ---------- */
  .roster{padding:40px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:40px;flex-wrap:wrap;}
  .roster .lab{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:var(--ink-2);white-space:nowrap;}
  .roster .names{display:flex;flex-wrap:wrap;gap:10px 30px;flex:1;}
  .roster .names span{font-size:15px;font-weight:600;color:var(--ink);letter-spacing:.01em;opacity:.85;}

  /* section shell */
  section.band{padding:104px 0;}
  .sec-head{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:end;margin-bottom:20px;}
  @media (max-width:820px){ .sec-head{grid-template-columns:1fr;gap:16px;} }
  .sec-head h2{font-size:clamp(28px,3.5vw,46px);letter-spacing:-.02em;}
  .sec-head .kick{margin-bottom:18px;}
  .sec-head p{color:var(--ink-2);font-size:16px;}

  /* ---------- expertises : index éditorial ---------- */
  .idx{margin-top:34px;border-top:1px solid var(--line-2);}
  .idx-row{display:grid;grid-template-columns:64px 300px 1fr auto;gap:30px;align-items:baseline;
    padding:30px 8px;border-bottom:1px solid var(--line);transition:background .25s ease,padding .25s ease;position:relative;}
  .idx-row::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:var(--accent);transition:width .3s ease;}
  .idx-row:hover{background:var(--paper-2);}
  .idx-row:hover::before{width:100%;}
  .idx-num{font-size:14px;font-weight:600;color:var(--accent);letter-spacing:.05em;}
  .idx-row h3{font-size:22px;font-weight:600;letter-spacing:-.01em;color:var(--ink);}
  .idx-row .desc{color:var(--ink-2);font-size:15px;line-height:1.55;}
  .idx-tags{display:flex;flex-direction:column;gap:6px;text-align:right;}
  .idx-tags span{font-size:12.5px;color:var(--ink-2);letter-spacing:.02em;white-space:nowrap;}
  @media (max-width:920px){
    .idx-row{grid-template-columns:44px 1fr;gap:8px 18px;padding:26px 6px;}
    .idx-row h3{grid-column:2;}
    .idx-row .desc{grid-column:2;margin-top:8px;}
    .idx-tags{grid-column:2;flex-direction:row;flex-wrap:wrap;gap:6px 16px;text-align:left;margin-top:12px;}
    .idx-num{grid-row:1;}
  }

  /* ---------- équipe ---------- */
  .team{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:38px;}
  @media (max-width:900px){ .team-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:520px){ .team-grid{grid-template-columns:1fr;} }
  .member{display:flex;flex-direction:column;}
  .member .ph{position:relative;aspect-ratio:5/6;overflow:hidden;background:var(--paper);border:1px solid var(--line);}
  .member .ph img{width:100%;height:100%;object-fit:cover;object-position:top center;
    filter:saturate(1.02) contrast(1.02);transition:transform .8s ease;}
  .member:hover .ph img{transform:scale(1.035);}
  .member .ph::after{content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(180deg,transparent 68%,rgba(1,42,51,.14));}
  .ph.placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--petrol),var(--petrol-deep));}
  .ph.placeholder .ini{font-size:60px;font-weight:700;color:var(--cream);opacity:.9;letter-spacing:.02em;}
  .ph.placeholder .soon{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:10px;
    text-transform:uppercase;letter-spacing:.14em;color:rgba(242,231,210,.6);}
  .member h3{font-size:19px;font-weight:600;margin-top:18px;color:var(--ink);letter-spacing:-.01em;}
  .member .role{display:block;margin-top:5px;font-size:11.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--petrol-2);font-weight:600;}
  .member .bio{margin-top:11px;font-size:13.5px;line-height:1.55;color:var(--ink-2);}
  .member .li{display:inline-flex;align-items:center;gap:7px;margin-top:14px;font-size:12.5px;font-weight:600;color:var(--ink);opacity:.8;}
  .member .li svg{width:14px;height:14px;}
  .member .li:hover{opacity:1;color:var(--petrol-2);}

  /* ---------- références (fiches d'étude) ---------- */
  .cases{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:38px;}
  @media (max-width:900px){ .cases{grid-template-columns:1fr;} }
  .case{border:1px solid var(--line-2);padding:30px 28px 26px;display:flex;flex-direction:column;min-height:280px;background:var(--paper);
    transition:transform .25s ease,box-shadow .25s ease;}
  .case:hover{transform:translateY(-4px);box-shadow:0 18px 40px -28px rgba(1,42,51,.5);}
  .case .top{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:16px;border-bottom:1px solid var(--line);}
  .case .tag{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--petrol-2);}
  .case .ref{font-size:11px;color:var(--ink-2);opacity:.6;letter-spacing:.05em;}
  .case h4{font-size:20px;font-weight:600;line-height:1.2;letter-spacing:-.01em;margin-top:22px;color:var(--ink);}
  .case p{font-size:14px;line-height:1.6;color:var(--ink-2);margin-top:12px;}
  .case .metric{margin-top:auto;padding-top:20px;display:flex;gap:26px;}
  .case .metric .m b{display:block;font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--ink);}
  .case .metric .m span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2);}

  .pull{margin-top:34px;border-top:1px solid var(--line-2);padding-top:44px;
    display:grid;grid-template-columns:auto 1fr;gap:30px;align-items:start;}
  @media (max-width:640px){ .pull{grid-template-columns:1fr;gap:14px;} }
  .pull .mk{font-size:76px;line-height:.7;color:var(--accent);font-weight:700;}
  .pull q{font-size:clamp(21px,2.6vw,29px);font-weight:600;line-height:1.4;letter-spacing:-.01em;color:var(--ink);quotes:none;}
  .pull .attr{margin-top:18px;font-size:13px;color:var(--ink-2);letter-spacing:.04em;}
  .pull .ex{display:inline-block;margin-top:12px;font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;
    color:var(--ink-2);opacity:.65;border:1px dashed var(--line-2);padding:4px 10px;}

  /* tombstones (transactions récentes) */
  .tsb-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--petrol-2);margin-bottom:22px;}
  .tsb-eyebrow::before{content:"";width:22px;height:1px;background:var(--accent);}
  .tombstones{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
  @media (max-width:860px){ .tombstones{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .tombstones{grid-template-columns:1fr;} }
  .tomb{border:1px solid var(--line-2);background:var(--paper);padding:22px 22px 20px;display:flex;flex-direction:column;min-height:176px;
    transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;}
  .tomb:hover{transform:translateY(-3px);box-shadow:0 16px 34px -26px rgba(1,42,51,.5);border-color:var(--petrol-2);}
  .tomb-head{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;}
  .tt{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;padding:4px 9px;}
  .tt.sector{background:var(--petrol);color:var(--cream);}
  .tt.type{border:1px solid var(--line-2);color:var(--ink-2);}
  .tomb h4{font-size:19px;font-weight:700;letter-spacing:-.01em;color:var(--ink);}
  .tomb p{font-size:13px;line-height:1.5;color:var(--ink-2);margin-top:8px;}
  .tomb-amt{margin-top:auto;padding-top:14px;font-size:15px;font-weight:700;color:var(--petrol-2);letter-spacing:-.01em;}
  .tomb-amt.empty{color:var(--ink-2);opacity:.6;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.06em;}

  /* références par expertise */
  .refcols{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:54px;padding-top:44px;border-top:1px solid var(--line);}
  @media (max-width:860px){ .refcols{grid-template-columns:1fr 1fr;gap:34px 26px;} }
  @media (max-width:520px){ .refcols{grid-template-columns:1fr;} }
  .refcol h5{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink);margin:0 0 16px;
    padding-bottom:11px;border-bottom:2px solid var(--accent);display:inline-block;}
  .refcol ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
  .refcol li{font-size:14px;color:var(--ink-2);font-weight:500;}
  .ref-note{margin-top:38px;font-size:12px;color:var(--ink-2);opacity:.72;font-style:italic;line-height:1.6;max-width:82ch;}

  /* publications & associations */
  .pubassoc{border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .pa-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:60px;align-items:start;}
  @media (max-width:820px){ .pa-grid{grid-template-columns:1fr;gap:44px;} }
  .pub{display:grid;grid-template-columns:170px 1fr;gap:18px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line);}
  .pub:first-of-type{border-top:1px solid var(--line);}
  @media (max-width:520px){ .pub{grid-template-columns:1fr;gap:5px;} }
  .pub .src{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--petrol-2);}
  .pub .ttl{font-size:15px;color:var(--ink);font-weight:500;line-height:1.4;}
  .assoc-list{display:flex;flex-wrap:wrap;gap:10px;}
  .assoc-list span{font-size:13px;font-weight:600;color:var(--ink);border:1px solid var(--line-2);padding:8px 15px;border-radius:30px;}

  /* plateforme intégrée — cycle d'investissement */
  .cycle{border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .cycle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px;}
  @media (max-width:860px){ .cycle-grid{grid-template-columns:1fr;} }
  .phase{background:var(--paper-2);border:1px solid var(--line);padding:28px 26px;display:flex;flex-direction:column;}
  .phase-head{display:flex;align-items:baseline;gap:12px;padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid var(--line-2);}
  .phase-num{font-size:13px;font-weight:700;color:var(--accent);letter-spacing:.04em;}
  .phase-head h3{font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink);line-height:1.2;}
  .svc-block{margin-bottom:18px;}
  .svc-block:last-child{margin-bottom:0;}
  .svc-block h4{font-size:14px;font-weight:700;color:var(--petrol-2);margin-bottom:7px;letter-spacing:-.005em;text-transform:none;}
  .svc-block ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;}
  .svc-block li{position:relative;padding-left:14px;font-size:13px;color:var(--ink-2);line-height:1.45;}
  .svc-block li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:1px;background:var(--petrol-2);}

  /* secteurs d'activité */
  .secteurs{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .sectors{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:34px;}
  @media (max-width:900px){ .sectors{grid-template-columns:1fr 1fr;} }
  @media (max-width:520px){ .sectors{grid-template-columns:1fr;} }
  .sector-cell{background:var(--paper);padding:24px 22px;}
  .sector-cell h4{font-size:14px;font-weight:700;color:var(--ink);letter-spacing:-.005em;margin-bottom:11px;line-height:1.25;text-transform:none;}
  .sector-cell .names{font-size:12.5px;color:var(--ink-2);line-height:1.65;}

  /* ---------- audiences (statement sombre) ---------- */
  .aud{background:var(--petrol-deep);color:var(--cream);position:relative;overflow:hidden;}
  .aud .kick,.aud h2{color:#fff;}
  .aud .sec-head p{color:rgba(242,231,210,.72);}
  .aud-grid{margin-top:14px;border-top:1px solid rgba(242,231,210,.18);}
  .aud-row{display:grid;grid-template-columns:56px 1fr 1.4fr;gap:34px;align-items:start;
    padding:34px 6px;border-bottom:1px solid rgba(242,231,210,.14);}
  @media (max-width:760px){ .aud-row{grid-template-columns:1fr;gap:12px;padding:28px 4px;} }
  .aud-row .rn{font-size:13px;font-weight:600;color:var(--accent);letter-spacing:.05em;}
  .aud-row h3{font-size:23px;font-weight:600;color:#fff;letter-spacing:-.01em;}
  .aud-row ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px;}
  .aud-row li{position:relative;padding-left:20px;font-size:14.5px;color:rgba(242,231,210,.8);line-height:1.5;}
  .aud-row li::before{content:"";position:absolute;left:0;top:9px;width:9px;height:1px;background:var(--accent);}

  /* ---------- contact ---------- */
  .contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;margin-top:14px;}
  @media (max-width:860px){ .contact-grid{grid-template-columns:1fr;gap:44px;} }
  .cinfo h2{font-size:clamp(28px,3.4vw,44px);}
  .cinfo .lede{margin-top:18px;}
  .cinfo .row{display:flex;gap:15px;align-items:flex-start;padding:22px 0;border-bottom:1px solid var(--line);}
  .cinfo .row:first-of-type{margin-top:26px;border-top:1px solid var(--line);}
  .cinfo .row svg{width:19px;height:19px;color:var(--petrol-2);flex-shrink:0;margin-top:3px;}
  .cinfo .row .lb{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-2);}
  .cinfo .row .vl{font-size:16px;color:var(--ink);margin-top:3px;font-weight:500;}
  .cinfo .row .vl:hover{color:var(--petrol-2);}

  .form{background:var(--paper-2);border:1px solid var(--line);padding:40px;}
  .form h3{font-size:18px;font-weight:600;margin-bottom:6px;}
  .form .sub{font-size:13.5px;color:var(--ink-2);margin-bottom:24px;}
  .frow{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
  @media (max-width:520px){ .frow{grid-template-columns:1fr;} }
  .field{margin-bottom:22px;display:flex;flex-direction:column;}
  .field label{font-size:11.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2);margin-bottom:9px;}
  .field input,.field select,.field textarea{
    border:none;border-bottom:1px solid var(--line-2);background:transparent;
    padding:8px 2px;font-family:var(--font);font-size:15px;color:var(--ink);font-weight:500;}
  .field textarea{resize:vertical;min-height:70px;}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);}
  .field select{appearance:none;}
  .form .btn{width:100%;justify-content:center;margin-top:6px;}
  .consent{font-size:11.5px;color:var(--ink-2);line-height:1.55;margin-top:16px;}

  /* ---------- footer (statement sombre) ---------- */
  footer{background:var(--petrol-deep);color:var(--cream);padding:74px 0 30px;}
  .foot-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;padding-bottom:48px;border-bottom:1px solid rgba(242,231,210,.14);}
  @media (max-width:820px){ .foot-top{grid-template-columns:1fr 1fr;gap:34px;} }
  @media (max-width:520px){ .foot-top{grid-template-columns:1fr;} }
  .foot-brand img{height:30px;margin-bottom:18px;}
  .foot-brand p{font-size:13.5px;color:rgba(242,231,210,.66);max-width:30ch;line-height:1.6;}
  .foot-brand .soc{display:flex;gap:11px;margin-top:22px;}
  .foot-brand .soc a{width:36px;height:36px;border:1px solid rgba(242,231,210,.28);display:flex;align-items:center;justify-content:center;transition:.2s;}
  .foot-brand .soc a:hover{background:var(--cream);}
  .foot-brand .soc a:hover svg{color:var(--petrol-deep);}
  .foot-brand .soc svg{width:15px;height:15px;color:var(--cream);}
  .fcol h4{font-size:11.5px;text-transform:uppercase;letter-spacing:.14em;color:rgba(242,231,210,.55);margin:0 0 16px;font-weight:600;}
  .fcol ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
  .fcol a{font-size:14px;color:rgba(242,231,210,.82);}
  .fcol a:hover{color:#fff;}
  .foot-bot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:24px;}
  .foot-bot p{font-size:12px;color:rgba(242,231,210,.5);line-height:1.6;}
  .foot-bot .legal{max-width:62ch;}

  .flag{position:fixed;bottom:16px;right:16px;z-index:80;background:var(--ink);color:var(--paper);
    font-size:11px;letter-spacing:.04em;padding:8px 14px;border-radius:40px;opacity:.7;}
  @media (prefers-color-scheme:dark){ .flag{background:var(--cream);color:var(--petrol-deep);} }
