/* ============================================================
   CRAD — Charte & styles du site
   Identité de marque : INDIGO #262261 (principale) + ORANGE #F7941D (accent rare)
   Neutres gris perle / blanc / encre. Vert sobre en soutien des secteurs durables.
   ============================================================ */
:root{
  /* ----- Marque officielle ----- */
  --indigo:#262261;          /* principale */
  --indigo-700:#1B1848;      /* hover / pressed, sombre profond */
  --indigo-900:#11102E;      /* fonds hero / footer les plus profonds */
  --indigo-500:#3A357F;      /* surfaces sombres secondaires, dégradés */
  --indigo-300:#6E69A6;      /* texte tertiaire, bordures actives */
  --indigo-tint:#EEEEF6;     /* puces d'icône, fonds de tag */
  --orange:#F7941D;          /* accent, usage RARE */
  --orange-600:#E07E08;      /* hover de l'orange */
  --orange-tint:#FEF3E2;     /* fond d'accent très léger */
  --support-green:#1E8E5A;   /* vert de soutien (climat/agriculture seulement) */

  /* ----- Neutres ----- */
  --ink:#231F20;             /* texte fort (officiel marque) */
  --text:#2A2740;            /* corps, teinté indigo */
  --muted:#6B6880;           /* texte secondaire */
  --line:#E7E6EE;            /* filets / bordures (unifié) */
  --grey-bg:#F6F6FA;         /* fond de section teinté indigo */
  --white:#ffffff;

  /* ----- Typographie ----- */
  --font:"Inter","Segoe UI",Helvetica,Arial,sans-serif;
  --display:"Fraunces","Georgia","Times New Roman",serif;

  /* ----- Forme ----- */
  --radius:18px; --radius-sm:12px;
  --maxw:1200px; --maxw-text:760px;
  --nav-h:76px;
  --ease:cubic-bezier(.2,.7,.2,1);
  /* échelle d'espacement 4-pt */
  --sp-1:8px; --sp-2:12px; --sp-3:16px; --sp-4:24px; --sp-5:32px;
  --sp-6:48px; --sp-7:64px; --sp-8:96px;
  /* ombres re-teintées indigo, larges et diffuses */
  --shadow:0 24px 48px -24px rgba(38,34,97,.30);
  --shadow-sm:0 8px 22px -12px rgba(38,34,97,.20);

  /* ----- Alias de migration (réutilisent les anciens noms du CSS) ----- */
  --green:var(--indigo);
  --green-bright:var(--indigo-500);
  --dark:var(--indigo-900);
  --dark-2:var(--indigo-500);
  --gold:var(--orange);
  --light:var(--indigo-tint);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--text);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.section{padding:var(--sp-8) 0}
.section--tint{background:var(--grey-bg)}
.eyebrow{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--green);margin-bottom:14px}
h1,h2{font-family:var(--display);line-height:1.12;color:var(--indigo);font-weight:600;letter-spacing:-.018em}
h3{line-height:1.2;color:var(--indigo);font-weight:700;letter-spacing:-.01em}
h2.section-title,h3.section-title{font-family:var(--display);font-weight:600}
h2.section-title{font-size:clamp(1.8rem,3.4vw,2.6rem);margin-bottom:16px;letter-spacing:-.02em}
.section-intro{color:var(--muted);max-width:62ch;font-size:1.06rem;line-height:1.7;margin-bottom:48px}
/* Serif d'affichage pour citations & énoncés forts */
.pos__quote,blockquote,.pullquote,.manifesto h2,.director__body blockquote{font-family:var(--display);font-weight:600;letter-spacing:-.01em}
.btn{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:.96rem;padding:14px 26px;border-radius:999px;border:2px solid transparent;cursor:pointer;transition:transform .15s var(--ease),background .15s var(--ease),color .15s var(--ease),border-color .15s var(--ease)}
.btn--primary{background:var(--indigo);color:#fff}
.btn--primary:hover{background:var(--indigo-700);transform:translateY(-2px)}
.btn--accent{background:var(--orange);color:var(--ink)}
.btn--accent:hover{background:var(--orange-600);color:var(--ink);transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--indigo);border-color:rgba(38,34,97,.20)}
.btn--ghost:hover{border-color:var(--indigo);color:var(--indigo)}
.btn--light{background:#fff;color:var(--indigo)}
.btn--light:hover{background:var(--orange);color:var(--ink)}
.btn--outline-light{border-color:rgba(255,255,255,.55);color:#fff}
.btn--outline-light:hover{background:#fff;color:var(--indigo)}

/* ---------- HEADER ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px}
.nav__logo img{height:46px;width:auto}
.nav__links{display:flex;align-items:center;gap:28px;list-style:none}
.nav__links a{font-weight:600;font-size:.95rem;color:var(--dark);transition:.18s}
.nav__links a:hover{color:var(--green)}
.nav__right{display:flex;align-items:center;gap:16px}
.lang{display:flex;gap:4px;font-size:.82rem;font-weight:700;color:var(--muted)}
.lang span{cursor:pointer;padding:3px 6px;border-radius:6px}
.lang .active{background:var(--light);color:var(--green)}
.nav__toggle{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px;padding:8px}
.nav__toggle span{width:24px;height:2.4px;background:var(--dark);border-radius:2px;transition:.2s}

/* ---------- HERO (deux colonnes + visuel data) ---------- */
.hero{position:relative;color:#fff;overflow:hidden;background:linear-gradient(135deg,#11102E 0%,#262261 55%,#3A357F 100%)}
.hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:32px 32px;opacity:.4}
.hero__inner{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center;padding:84px 0 92px}
.hero__badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);padding:8px 16px;border-radius:999px;font-size:.8rem;font-weight:600;margin-bottom:24px}
.hero__badge i{width:8px;height:8px;border-radius:50%;background:var(--gold);display:inline-block}
.hero h1{color:#fff;font-size:clamp(2rem,4.6vw,3.35rem);margin-bottom:20px}
.hero h1 .hl{color:var(--gold)}
.hero__sub{font-size:1.12rem;color:rgba(255,255,255,.9);max-width:560px;margin-bottom:30px}
.hero__cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px}
.hero__trust{font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.7);font-weight:600;line-height:1.7}
.hero__trust strong{color:#fff}
.hero__visual{position:relative}
.hero__visual img{width:100%;height:auto;filter:saturate(.5) contrast(1.05) brightness(.92) sepia(.35) hue-rotate(205deg) drop-shadow(0 30px 50px rgba(0,0,0,.35))}

/* ---------- STATS ---------- */
.stats{position:relative;z-index:3;margin-top:-46px}
.stats__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:34px 28px}
.stat{text-align:center;border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat__num{font-size:2.1rem;font-weight:800;color:var(--green);line-height:1}
.stat__label{font-size:.84rem;color:var(--muted);margin-top:8px;font-weight:500}

/* ---------- POSITIONNEMENT ---------- */
.pos{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.pos__quote{font-size:clamp(1.4rem,2.6vw,2rem);font-weight:800;color:var(--dark);line-height:1.32}
.pos__quote em{color:var(--green);font-style:normal}
.pos p{color:var(--muted);font-size:1.05rem;margin-top:20px}
.pos__pillars{display:grid;gap:16px}
.pillar{display:flex;gap:16px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:20px 22px;box-shadow:var(--shadow-sm)}
.pillar__ic{flex:none;width:46px;height:46px;border-radius:12px;background:var(--light);display:grid;place-items:center;color:var(--green)}
.pillar h4{font-size:1.02rem;color:var(--dark);margin-bottom:3px}
.pillar p{font-size:.92rem;color:var(--muted);margin:0}

/* ---------- MOT DU DIRECTEUR ---------- */
.director{display:grid;grid-template-columns:300px 1fr;gap:50px;align-items:center}
.director__photo{position:relative}
.director__photo img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow);position:relative;z-index:2}
.director__photo::after{content:"";position:absolute;left:-16px;bottom:-16px;width:130px;height:130px;border-radius:16px;background:var(--light);z-index:1}
.director__photo .quote-badge{position:absolute;z-index:3;right:-14px;top:-14px;width:54px;height:54px;border-radius:50%;background:var(--orange);color:var(--ink);display:grid;place-items:center;font-size:1.8rem;font-weight:800;box-shadow:var(--shadow-sm)}
.director__body .eyebrow{margin-bottom:18px}
.director__body blockquote{font-size:clamp(1.15rem,2vw,1.5rem);font-weight:700;color:var(--dark);line-height:1.45;margin-bottom:18px}
.director__body p{color:var(--muted);font-size:1.02rem;margin-bottom:14px}
.director__sign{display:flex;align-items:center;gap:14px;margin-top:22px}
.director__sign .line{width:40px;height:3px;background:var(--gold);border-radius:2px}
.director__sign strong{color:var(--dark);display:block;font-size:1rem}
.director__sign span{color:var(--muted);font-size:.88rem}

/* ---------- SECTEURS (illustration + corps) ---------- */
.sectors{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.sector{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:.25s}
.sector:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.sector__art{aspect-ratio:16/9;width:100%;overflow:hidden;background:var(--dark)}
.sector__art img{width:100%;height:100%;object-fit:cover}
.sector__body{padding:24px;display:flex;flex-direction:column;flex:1}
.sector__num{font-size:.74rem;font-weight:800;letter-spacing:.12em;color:var(--gold)}
.sector h3{color:var(--dark);font-size:1.22rem;margin:6px 0 8px}
.sector p{font-size:.92rem;color:var(--muted);flex:1}
.sector__tag{display:inline-block;margin-top:16px;font-size:.82rem;font-weight:700;color:var(--green)}
.sector--cta{background:linear-gradient(160deg,#11102E,#3A357F);color:#fff;justify-content:center;align-items:flex-start}
.sector--cta h3{color:#fff}
.sector--cta p{color:rgba(255,255,255,.85)}

/* ---------- APPROCHE DATA ---------- */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:step}
.flow__step{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:28px 22px;box-shadow:var(--shadow-sm)}
.flow__step::before{counter-increment:step;content:"0" counter(step);font-size:1.4rem;font-weight:800;color:var(--gold)}
.flow__step h4{margin:10px 0 8px;color:var(--dark);font-size:1.06rem}
.flow__step p{font-size:.9rem;color:var(--muted)}

/* ---------- REFERENCES + PARTENAIRES ---------- */
.refs{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}
.logos{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.logo-chip{background:#fff;border:1px solid var(--line);border-radius:12px;height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-weight:800;color:var(--dark-2);font-size:.8rem;padding:8px;letter-spacing:.02em;box-shadow:var(--shadow-sm);transition:.2s}
.logo-chip:hover{transform:translateY(-3px);border-color:var(--green);color:var(--green);box-shadow:var(--shadow)}
.logo-chip small{display:block;font-weight:600;color:var(--muted);font-size:.62rem;letter-spacing:0;margin-top:2px}
.logo-chip:hover small{color:var(--green)}
.case{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);min-height:360px;color:#fff;display:flex;flex-direction:column;justify-content:flex-end}
.case img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.case__grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,16,46,.05),rgba(17,16,46,.92));z-index:1}
.case__body{position:relative;z-index:2;padding:30px}
.case__body span{font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.case__body h3{color:#fff;font-size:1.45rem;margin:10px 0 8px}
.case__body p{color:rgba(255,255,255,.9);font-size:.95rem}

/* ---------- PUBLICATIONS ---------- */
.pubs{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pub{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-sm);transition:.2s;display:flex;flex-direction:column}
.pub:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.pub__top{height:8px}
.pub__body{padding:24px}
.pub__cat{font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green)}
.pub h4{color:var(--dark);font-size:1.06rem;margin:10px 0 10px;line-height:1.35}
.pub p{font-size:.9rem;color:var(--muted)}
.pub__link{margin-top:16px;font-weight:700;font-size:.86rem;color:var(--green)}

/* ---------- CTA BAND ---------- */
.cta-band{background:linear-gradient(120deg,var(--dark),var(--dark-2));color:#fff;border-radius:var(--radius);padding:56px;display:flex;align-items:center;justify-content:space-between;gap:30px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(247,148,29,.32),transparent 70%)}
.cta-band h2{color:#fff;font-size:1.9rem;max-width:560px;position:relative;z-index:2}
.cta-band p{color:rgba(255,255,255,.82);margin-top:10px;position:relative;z-index:2}
.cta-band .btn{position:relative;z-index:2}

/* ---------- FOOTER ---------- */
.footer{background:var(--dark);color:rgba(255,255,255,.75);padding:64px 0 28px;font-size:.92rem}
.footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.12)}
.footer h5{color:#fff;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:18px}
.footer ul{list-style:none;display:grid;gap:10px}
.footer a:hover{color:var(--gold)}
.footer__brand img{height:46px;margin-bottom:16px}
.footer__brand p{max-width:300px}
.footer__news{display:flex;margin-top:14px;background:rgba(255,255,255,.08);border-radius:999px;padding:5px;max-width:300px}
.footer__news input{flex:1;background:none;border:0;color:#fff;padding:8px 14px;outline:none;font-size:.88rem}
.footer__news button{border:0;background:var(--green);color:#fff;border-radius:999px;padding:9px 16px;font-weight:700;cursor:pointer}
.footer__bottom{padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.82rem;color:rgba(255,255,255,.55)}

/* ============================================================
   RESPONSIVE — tablette & smartphone
   ============================================================ */
@media(max-width:1024px){
  .container{padding:0 22px}
  .section{padding:var(--sp-7) 0}
  .hero__inner{gap:38px}
  .sectors,.pubs{grid-template-columns:repeat(2,1fr)}
  .flow{grid-template-columns:repeat(2,1fr)}
  .footer__grid{grid-template-columns:1.4fr 1fr 1fr}
  .footer__brand{grid-column:1/-1}
}
@media(max-width:880px){
  .hero__inner{grid-template-columns:1fr;gap:30px;padding:64px 0 76px}
  .hero__visual{max-width:520px;margin:0 auto}
  .hero__sub{max-width:none}
  .pos,.refs,.director{grid-template-columns:1fr;gap:34px}
  .director__photo{max-width:280px}
  .stats__grid{grid-template-columns:repeat(3,1fr);gap:26px 18px}
  .stat:nth-child(3){border-right:0}
  .footer__grid{grid-template-columns:1fr 1fr}
  .footer__brand{grid-column:auto}
}
@media(max-width:640px){
  .nav__links,.nav__right .btn{display:none}
  .nav__toggle{display:flex}
  .nav.open .nav__links{display:flex;position:absolute;top:76px;left:0;right:0;flex-direction:column;background:#fff;padding:18px 24px;gap:16px;border-bottom:1px solid #eee;box-shadow:var(--shadow-sm)}
  .section{padding:var(--sp-6) 0}
  .sectors,.pubs,.flow{grid-template-columns:1fr}
  .stats{margin-top:-32px}
  .stats__grid{grid-template-columns:repeat(2,1fr);padding:26px 18px}
  .stat{border-right:0;padding:6px 0}
  .stat__num{font-size:1.8rem}
  .logos{grid-template-columns:repeat(2,1fr)}
  .cta-band{flex-direction:column;align-items:flex-start;padding:34px 26px}
  .cta-band h2{font-size:1.5rem}
  .footer__grid{grid-template-columns:1fr}
  .director__photo{margin:0 auto}
}
@media(max-width:380px){
  .hero h1{font-size:1.8rem}
  .logos{grid-template-columns:1fr}
}

/* ============================================================
   CORRECTIFS AUDIT QUALITÉ
   ============================================================ */
/* C1 — cible tactile burger >=44px */
.nav__toggle{width:44px;height:44px;padding:0;justify-content:center}
/* I1 — focus clavier visible */
a:focus-visible,.btn:focus-visible,button:focus-visible,.logo-chip:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--indigo);outline-offset:2px;border-radius:6px}
.hero a:focus-visible,.footer a:focus-visible{outline-color:#fff}
/* I2 — contrastes */
.hero__trust{color:rgba(255,255,255,.85)}
.cta-band p{color:rgba(255,255,255,.92)}
/* C3 — liens d'action réels */
.sector__tag,.pub__link{cursor:pointer;text-decoration:none;align-self:flex-start}
.sector__tag:hover,.pub__link:hover{color:var(--green-bright)}
/* C2 — menu burger dès la tablette portrait (880px) */
@media(max-width:880px){
  .nav__links,.nav__right .btn{display:none}
  .nav__toggle{display:flex}
  .nav.open .nav__links{display:flex;position:absolute;top:76px;left:0;right:0;flex-direction:column;background:#fff;padding:18px 24px;gap:16px;border-bottom:1px solid #eee;box-shadow:var(--shadow-sm)}
}
/* I4 — 5e stat centrée en mobile */
@media(max-width:640px){ .stats__grid .stat:last-child{grid-column:1/-1} }

/* ============================================================
   SOUS-PAGES (Le Cabinet, Références, Contact, Secteurs)
   ============================================================ */
.page-hero{position:relative;color:#fff;background:linear-gradient(135deg,#11102E,#262261 55%,#3A357F);overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:32px 32px;opacity:.4}
.page-hero__inner{position:relative;z-index:2;padding:66px 0 64px;max-width:760px}
.breadcrumb{font-size:.82rem;color:rgba(255,255,255,.7);margin-bottom:16px;font-weight:600}
.breadcrumb a:hover{color:var(--gold)}
.breadcrumb span{margin:0 8px;opacity:.5}
.page-hero h1{color:#fff;font-size:clamp(1.9rem,4vw,3rem);margin-bottom:16px}
.page-hero p{color:rgba(255,255,255,.9);font-size:1.12rem;max-width:620px}

/* prose & blocs deux colonnes */
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:54px;align-items:center}
.split--rev .split__media{order:-1}
.prose p{color:var(--muted);font-size:1.05rem;margin-bottom:16px}
.prose h3{color:var(--dark);font-size:1.3rem;margin:22px 0 10px}
.media-card{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:var(--dark)}
.media-card img{width:100%;display:block}
.fact-box{background:var(--light);border-radius:var(--radius);padding:30px;display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.fact-box .f__num{font-size:2rem;font-weight:800;color:var(--green);line-height:1}
.fact-box .f__lbl{font-size:.86rem;color:var(--muted);margin-top:4px}

/* valeurs */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.value{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:26px;box-shadow:var(--shadow-sm)}
.value__ic{width:48px;height:48px;border-radius:12px;background:var(--light);display:grid;place-items:center;color:var(--green);margin-bottom:14px}
.value h4{color:var(--dark);font-size:1.08rem;margin-bottom:6px}
.value p{color:var(--muted);font-size:.92rem}

/* gouvernance */
.gov{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.gov__node{background:#fff;border:1px solid var(--line);border-top:4px solid var(--green);border-radius:var(--radius-sm);padding:22px;box-shadow:var(--shadow-sm)}
.gov__node h4{color:var(--dark);font-size:1rem;margin-bottom:6px}
.gov__node p{color:var(--muted);font-size:.86rem}
.gov__node--lead{border-top-color:var(--gold)}

/* équipe */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.member{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:.2s}
.member:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.member__top{display:flex;align-items:center;gap:16px;padding:22px;background:linear-gradient(120deg,#11102E,#3A357F)}
.member__avatar{width:60px;height:60px;border-radius:50%;background:var(--indigo);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.3rem;flex:none}
.member__avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.member__top h4{color:#fff;font-size:1.05rem;line-height:1.25}
.member__top span{color:var(--gold);font-size:.82rem;font-weight:600}
.member__body{padding:20px 22px}
.member__body p{color:var(--muted);font-size:.9rem}
.member__tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.tag{font-size:.72rem;font-weight:600;color:var(--green);background:var(--light);padding:4px 10px;border-radius:999px}

/* références */
.ref-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}
.ref-filter{font-size:.86rem;font-weight:700;color:var(--muted);background:#fff;border:1px solid var(--line);padding:9px 18px;border-radius:999px;cursor:pointer;transition:.18s}
.ref-filter:hover{border-color:var(--green);color:var(--green)}
.ref-filter.active{background:var(--green);border-color:var(--green);color:#fff}
.ref-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.ref{background:#fff;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:var(--radius-sm);padding:22px;box-shadow:var(--shadow-sm);transition:.2s}
.ref:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.ref__meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.ref__year{font-weight:800;color:var(--dark);font-size:.9rem}
.ref__cat{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#fff;background:var(--green);padding:3px 10px;border-radius:999px}
.ref h4{color:var(--dark);font-size:1rem;line-height:1.35;margin-bottom:8px}
.ref__client{color:var(--muted);font-size:.86rem}
.ref__client strong{color:var(--green)}
.cat-climat{background:#1E8E5A}.cat-agri{background:#3F8F3A}.cat-sante{background:#9E2F57}.cat-educ{background:#3A357F}.cat-data{background:#262261}.cat-gouv{background:#E07E08}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.info-list{list-style:none;display:grid;gap:22px}
.info-list li{display:flex;gap:16px}
.info-list .i__ic{width:46px;height:46px;border-radius:12px;background:var(--light);display:grid;place-items:center;color:var(--green);flex:none}
.info-list h4{color:var(--dark);font-size:1rem;margin-bottom:2px}
.info-list p,.info-list a{color:var(--muted);font-size:.95rem}
.info-list a:hover{color:var(--green)}
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow-sm)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{margin-bottom:16px}
.field label{display:block;font-size:.85rem;font-weight:600;color:var(--dark);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font-family:inherit;font-size:1rem;color:var(--text);background:#fcfcfe}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--indigo);box-shadow:0 0 0 3px rgba(38,34,97,.15)}

@media(max-width:880px){
  .split,.contact-grid{grid-template-columns:1fr;gap:34px}
  .split--rev .split__media{order:0}
  .values,.gov,.team,.ref-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .values,.gov,.team,.ref-grid,.form-row{grid-template-columns:1fr}
  .fact-box{grid-template-columns:1fr 1fr}
}

/* hero image (Canva Afrique-data) arrondie */
.hero__visual img{border-radius:18px}

/* ============================================================
   PREMIUM — dropdown, manifeste, expertises, empreinte, etc.
   ============================================================ */
/* ----- Mega dropdown nav ----- */
.nav__item--dd{position:relative}
.nav__dd-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.nav__dd-toggle svg{width:11px;height:11px;transition:.2s}
.nav__item--dd:hover .nav__dd-toggle svg{transform:rotate(180deg)}
.nav__item--dd:hover .nav__dd-toggle{color:var(--green)}
.nav__dd{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(10px);background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:14px;width:360px;opacity:0;visibility:hidden;transition:.18s;z-index:60}
.nav__item--dd::after{content:"";position:absolute;top:100%;left:0;right:0;height:18px}
.nav__item--dd:hover .nav__dd{opacity:1;visibility:visible;transform:translateX(-50%) translateY(8px)}
.nav__dd a{display:flex;gap:13px;align-items:center;padding:11px 12px;border-radius:11px;transition:.15s}
.nav__dd a:hover{background:var(--light)}
.dd__ic{width:40px;height:40px;border-radius:11px;background:linear-gradient(135deg,var(--green),var(--green-bright));color:#fff;display:grid;place-items:center;flex:none}
.dd__ic svg{width:20px;height:20px}
.dd__t{font-weight:700;color:var(--dark);font-size:.93rem;line-height:1.15}
.dd__d{font-size:.76rem;color:var(--muted);margin-top:1px}
.nav__dd .dd__all{margin-top:6px;justify-content:center;font-weight:700;color:var(--green);font-size:.85rem;background:var(--light)}

/* ----- Hero refinements ----- */
.hero__visual{position:relative}
.hero__kpi{position:absolute;left:-22px;bottom:26px;background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:14px 18px;display:flex;align-items:center;gap:14px;max-width:240px}
.hero__kpi .k__n{font-size:1.6rem;font-weight:800;color:var(--green);line-height:1}
.hero__kpi .k__l{font-size:.74rem;color:var(--muted);font-weight:600}
.hero__kpi .k__ic{width:42px;height:42px;border-radius:11px;background:var(--light);color:var(--green);display:grid;place-items:center;flex:none}

/* ----- Trust marquee ----- */
.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;padding:22px 0}
.marquee__label{text-align:center;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:16px}
.marquee__track{display:flex;gap:46px;align-items:center;justify-content:center;flex-wrap:wrap;padding:0 24px}
.marquee__track span{font-weight:800;color:var(--dark-2);font-size:1rem;letter-spacing:.02em;opacity:.78;white-space:nowrap;transition:.2s}
.marquee__track span:hover{opacity:1;color:var(--green)}

/* ----- Manifesto ----- */
.manifesto{background:linear-gradient(135deg,#11102E,#262261 55%,#3A357F);color:#fff;text-align:center;position:relative;overflow:hidden}
.manifesto::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:28px 28px}
.manifesto__in{position:relative;z-index:2;max-width:980px;margin:0 auto}
.manifesto .eyebrow{color:var(--gold)}
.manifesto h2{color:#fff;font-size:clamp(1.7rem,3.6vw,2.9rem);line-height:1.28;font-weight:800;letter-spacing:-.01em}
.manifesto h2 em{color:var(--gold);font-style:normal}

/* ----- Expertises ----- */
.exp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.exp{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px;box-shadow:var(--shadow-sm);transition:.22s;overflow:hidden}
.exp::after{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:linear-gradient(90deg,var(--green),var(--gold));transform:scaleX(0);transform-origin:left;transition:.3s}
.exp:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.exp:hover::after{transform:scaleX(1)}
.exp__num{position:absolute;top:20px;right:24px;font-weight:800;font-size:1.5rem;color:var(--line)}
.exp__ic{width:54px;height:54px;border-radius:15px;background:linear-gradient(135deg,var(--green),var(--green-bright));display:grid;place-items:center;color:#fff;margin-bottom:18px}
.exp__ic svg{width:26px;height:26px}
.exp h3{font-size:1.14rem;color:var(--dark);margin-bottom:9px}
.exp p{color:var(--muted);font-size:.93rem}

/* ----- Empreinte régionale ----- */
.region{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center}
.region__map img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow)}
.region__stats{display:flex;gap:34px;margin:22px 0 6px;flex-wrap:wrap}
.rs__n{font-size:2rem;font-weight:800;color:var(--green);line-height:1}
.rs__l{font-size:.82rem;color:var(--muted);margin-top:3px}
.countries{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.countries span{font-size:.82rem;font-weight:600;background:var(--light);color:var(--dark);padding:6px 14px;border-radius:999px}

/* ----- Director premium stats ----- */
.director__stats{display:flex;gap:36px;margin:20px 0 4px;flex-wrap:wrap}
.ds__n{font-size:1.7rem;font-weight:800;color:var(--green);line-height:1}
.ds__l{font-size:.78rem;color:var(--muted);margin-top:3px}
.director__photo--xl img{aspect-ratio:4/5;object-fit:cover}

/* ----- Section heading centered variant ----- */
.center{text-align:center}
.center .section-intro{margin-left:auto;margin-right:auto}

/* ----- Responsive premium ----- */
@media(max-width:1024px){ .exp-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:880px){
  .region{grid-template-columns:1fr;gap:32px}
  .hero__kpi{left:12px;bottom:12px}
  /* dropdown -> liste statique dans le menu burger */
  .nav.open .nav__dd{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:6px 0 0;width:auto}
  .nav.open .nav__dd .dd__d{display:none}
  .nav.open .nav__dd a{padding:8px 0}
  .nav.open .dd__ic{width:30px;height:30px;border-radius:8px}
  .nav__dd-toggle svg{display:none}
}
@media(max-width:640px){
  .exp-grid{grid-template-columns:1fr}
  .hero__kpi{display:none}
  .manifesto h2{font-size:1.5rem}
}

/* ----- Correctifs audit premium ----- */
.nav__item--dd:focus-within .nav__dd{opacity:1;visibility:visible;transform:translateX(-50%) translateY(8px)}
.nav__item--dd:focus-within .nav__dd-toggle svg{transform:rotate(180deg)}
.nav__dd{width:min(360px,calc(100vw - 32px))}
.eyebrow.center{display:block;text-align:center}
h3.section-title{font-size:clamp(1.5rem,2.8vw,2rem);margin-bottom:16px}
/* (Ancien patch dropdown 881-1000px retiré : la nav passe en burger dès 1024px, cf. bloc consolidé en fin de fichier.) */
@media(max-width:880px){
  .nav.open .nav__dd a{min-height:44px;align-items:center}
  .nav.open .nav__links > li > a{min-height:44px;display:flex;align-items:center}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *{transition:none !important;animation:none !important}
}

/* ============================================================
   BLOG / PUBLICATIONS
   ============================================================ */
.featured{display:grid;grid-template-columns:1.1fr .9fr;gap:0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#fff;border:1px solid var(--line);margin-bottom:46px}
.featured__media{position:relative;min-height:360px;background:var(--dark)}
.featured__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.featured__flag{position:absolute;top:18px;left:18px;z-index:2;background:var(--orange);color:var(--ink);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:6px 13px;border-radius:999px}
.featured__body{padding:42px}
.featured__body h2{font-size:clamp(1.4rem,2.6vw,2.05rem);margin:12px 0 14px;line-height:1.2}
.featured__body p{color:var(--muted);font-size:1rem;margin-bottom:20px}
.post-cat{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--green)}
.post-meta{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:.8rem;font-weight:600;flex-wrap:wrap}
.post-meta span.dot{width:3px;height:3px;border-radius:50%;background:#c2ccd1}

.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.post{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:.22s}
.post:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.post__art{aspect-ratio:16/9;background:var(--dark);overflow:hidden}
.post__art img{width:100%;height:100%;object-fit:cover}
.post__body{padding:22px;display:flex;flex-direction:column;flex:1}
.post h3{font-size:1.08rem;margin:8px 0 8px;color:var(--dark);line-height:1.35}
.post p{font-size:.9rem;color:var(--muted);flex:1}
.post .post-meta{margin-top:16px;font-size:.76rem}

/* Article reading */
.article{max-width:768px;margin:0 auto}
.article__kicker{display:flex;gap:10px;align-items:center;justify-content:center;margin-bottom:14px}
.article-hero{text-align:center}
.article-hero h1{font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.18;margin-bottom:16px}
.article-hero .post-meta{justify-content:center}
.article__cover{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);margin:34px 0 10px;background:var(--dark)}
.article__cover img{width:100%;display:block}
.article__lead{font-size:1.2rem;line-height:1.7;color:var(--dark);font-weight:500;margin:26px 0}
.article p{font-size:1.06rem;color:#33424b;margin-bottom:18px;line-height:1.78}
.article h2{font-size:1.5rem;margin:34px 0 12px;color:var(--dark)}
.article h3{font-size:1.18rem;margin:24px 0 10px;color:var(--dark)}
.article ul{margin:0 0 20px 4px;list-style:none}
.article ul li{position:relative;padding-left:26px;margin-bottom:10px;color:#33424b;font-size:1.04rem}
.article ul li::before{content:"";position:absolute;left:4px;top:10px;width:8px;height:8px;border-radius:50%;background:var(--green)}
.pullquote{border-left:4px solid var(--green);background:var(--light);padding:22px 28px;border-radius:0 14px 14px 0;font-size:1.25rem;font-weight:700;color:var(--dark);margin:30px 0;line-height:1.45}
.takeaways{background:linear-gradient(135deg,#11102E,#3A357F);color:#fff;border-radius:var(--radius);padding:32px;margin:34px 0}
.takeaways h4{color:var(--orange);font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px}
.takeaways ul{list-style:none;margin:0}
.takeaways li{position:relative;padding-left:30px;margin-bottom:12px;color:#fff;font-size:1.02rem}
.takeaways li strong,.takeaways li b{color:#fff}
.takeaways li::before{content:"✓";position:absolute;left:0;color:var(--orange);font-weight:800}
.article__author{display:flex;gap:16px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin:34px 0}
.article__author .aa__av{width:54px;height:54px;border-radius:50%;background:var(--gold);color:#fff;display:grid;place-items:center;font-weight:800;flex:none}
.article__author h4{color:var(--dark);font-size:1rem}
.article__author p{color:var(--muted);font-size:.88rem;margin:0}
.related-head{text-align:center;margin-bottom:30px}
@media(max-width:1024px){ .post-grid{grid-template-columns:repeat(2,1fr)} .featured{grid-template-columns:1fr} .featured__media{min-height:240px} }
@media(max-width:640px){ .post-grid{grid-template-columns:1fr} .featured__body{padding:28px} }

/* Correctif : séparer titre et sous-titre du dropdown */
.dd__t,.dd__d{display:block}
.dd__t{margin-bottom:2px}

/* ============================================================
   EXPERTISES (page dédiée) + ÉQUIPE / CARRIÈRES
   ============================================================ */
.xp{display:grid;grid-template-columns:280px 1fr;gap:46px;align-items:start;padding:48px 0;border-top:1px solid var(--line)}
.xp:first-of-type{border-top:0;padding-top:8px}
.xp__badge{position:sticky;top:100px;border-radius:var(--radius);background:linear-gradient(150deg,#11102E,#3A357F);color:#fff;padding:30px;box-shadow:var(--shadow-sm);overflow:hidden}
.xp__badge .xp__n{font-size:2.4rem;font-weight:800;color:var(--gold);line-height:1}
.xp__badge .xp__ic{width:56px;height:56px;border-radius:15px;background:rgba(255,255,255,.1);display:grid;place-items:center;color:#fff;margin:16px 0}
.xp__badge .xp__ic svg{width:28px;height:28px}
.xp__badge h3{color:#fff;font-size:1.2rem;line-height:1.25}
.xp__body h2{font-size:1.5rem;margin-bottom:12px}
.xp__lead{color:var(--muted);font-size:1.08rem;margin-bottom:22px}
.xp__cols{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.xp__col h4{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--green);margin-bottom:12px}
.xp__col ul{list-style:none}
.xp__col li{position:relative;padding-left:26px;margin-bottom:10px;color:#33424b;font-size:.96rem}
.xp__col li::before{content:"";position:absolute;left:4px;top:9px;width:7px;height:7px;border-radius:50%;background:var(--green)}
.xp__col--deliv li::before{border-radius:2px;background:var(--gold)}

/* Process bar */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:s;margin-top:10px}
.steps__i{position:relative;padding:0 18px}
.steps__i::before{counter-increment:s;content:counter(s);width:42px;height:42px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:800;margin-bottom:14px}
.steps__i::after{content:"";position:absolute;top:21px;left:50%;width:100%;height:2px;background:var(--line);z-index:-1}
.steps__i:last-child::after{display:none}
.steps__i h4{font-size:1rem;margin-bottom:6px;color:var(--dark)}
.steps__i p{font-size:.88rem;color:var(--muted)}

/* Équipe / Carrières */
.values--why{margin-top:10px}
.jobs{display:grid;gap:16px;margin-top:10px}
.job{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:var(--radius-sm);padding:22px 24px;box-shadow:var(--shadow-sm);transition:.2s}
.job:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.job h4{color:var(--dark);font-size:1.08rem;margin-bottom:4px}
.job p{color:var(--muted);font-size:.9rem}
.job__tags{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.job .tag{font-size:.72rem}
.spont{background:linear-gradient(135deg,#11102E,#3A357F);color:#fff;border-radius:var(--radius);padding:40px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-top:30px}
.spont h3{color:#fff;font-size:1.4rem;max-width:560px}
.spont p{color:rgba(255,255,255,.85);margin-top:6px}

@media(max-width:880px){
  .xp{grid-template-columns:1fr;gap:24px}
  .xp__badge{position:static}
  .xp__cols{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr;gap:30px 18px}
  .steps__i::after{display:none}
}
@media(max-width:640px){ .steps{grid-template-columns:1fr} .job{grid-template-columns:1fr} }

/* Sélecteur de langue cliquable */
.lang a{cursor:pointer;padding:3px 6px;border-radius:6px;color:var(--muted);font-weight:700;text-decoration:none}
.lang a:hover{color:var(--green)}
.lang a.active{background:var(--light);color:var(--green)}

/* ============================================================
   CORRECTIFS RESPONSIVE CONSOLIDÉS (paliers 1024 / 880 / 640 / 380)
   Placés en fin de fichier pour primer sur les règles antérieures.
   ============================================================ */
/* --- 1024px : tablette paysage. Nav -> burger + accordéon tactile, KPI hero neutralisé. --- */
@media(max-width:1024px){
  .nav__links,.nav__right .btn{display:none}
  .nav__toggle{display:flex}
  .nav.open .nav__links{display:flex;position:absolute;top:var(--nav-h);left:0;right:0;flex-direction:column;background:#fff;padding:18px 24px;gap:14px;border-bottom:1px solid var(--line);box-shadow:var(--shadow-sm);max-height:calc(100vh - var(--nav-h));overflow-y:auto}
  .nav.open .nav__links > li > a{min-height:44px;display:flex;align-items:center}
  /* mega-dropdown -> accordéon statique, ouvrable au doigt */
  .nav.open .nav__dd{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:6px 0 0;width:auto}
  .nav.open .nav__dd .dd__d{display:none}
  .nav.open .nav__dd a{padding:8px 0;min-height:44px;align-items:center}
  .nav.open .dd__ic{width:30px;height:30px;border-radius:8px}
  .nav__dd-toggle svg{display:none}
  /* KPI hero : supprimer le décalage négatif (anti-overflow) */
  .hero__kpi{left:0;bottom:16px}
  /* étapes process : 2 colonnes, sans connecteurs */
  .steps{grid-template-columns:1fr 1fr;gap:30px 18px}
  .steps__i::after{display:none}
}
/* --- 880px : tablette portrait. --- */
@media(max-width:880px){
  /* stats : 2 colonnes propres, 5e centrée */
  .stats__grid{grid-template-columns:repeat(2,1fr)}
  .stat{border-right:0}
  .stat:nth-child(odd){border-right:1px solid var(--line)}
  .stats__grid .stat:last-child{grid-column:1/-1;border-right:0}
  /* CTA band en colonne */
  .cta-band{flex-direction:column;align-items:flex-start;padding:40px}
  /* carte région : plafonner la hauteur */
  .region__map img{max-height:380px;object-fit:contain}
  /* éviter le débord du décor du portrait DG */
  .director{overflow:hidden}
}
/* --- 640px : grand mobile. Textes >=16px, cibles tactiles, marquee. --- */
@media(max-width:640px){
  .sector p,.pub p,.post p,.exp p,.value p,.member__body p,.section-intro{font-size:1rem}
  .marquee__track{gap:14px 22px;padding:0 16px}
  .lang a,.lang span{padding:9px 10px}
  .ref-filter{padding:11px 16px}
  .spont{padding:26px}
  .cta-band h2{font-size:1.5rem}
}
/* --- 380px : petit mobile. --- */
@media(max-width:380px){
  .fact-box .f__num{font-size:1.6rem}
  .director__photo::after{display:none}
}

/* ============================================================
   ACCESSIBILITÉ : skip-link, label masqué, dropdown clavier, micro-réfs
   ============================================================ */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--indigo);color:#fff;padding:10px 16px;z-index:100;border-radius:0 0 8px 0;font-weight:700}
.skip-link:focus{left:0}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* toggle Secteurs piloté au clavier (bouton stylé comme un lien de nav) */
.nav__dd-toggle{background:none;border:0;font:inherit}
.nav__item--dd.is-open .nav__dd{opacity:1;visibility:visible;transform:translateX(-50%) translateY(8px)}
/* micro-références au pied des expertises */
.xp__ref{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted)}
.xp__ref strong{color:var(--indigo)}
/* graphiques & blocs d'article data */
.article__chart{margin:30px 0;padding:22px 22px 16px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.article__chart-cap{margin-top:12px;font-size:.86rem;color:var(--muted);line-height:1.5}
.article__sources{margin:30px 0;padding:20px 24px;background:var(--grey-bg);border-radius:var(--radius-sm)}
.article__sources h4{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.article__sources ul{list-style:none;display:grid;gap:6px}
.article__sources li{font-size:.9rem;color:var(--text);position:relative;padding-left:0}
.article__sources a{color:var(--indigo);text-decoration:underline;text-underline-offset:2px;word-break:break-word}
.article__reco{margin:30px 0;padding:26px 28px;border:1px solid var(--line);border-left:4px solid var(--orange);border-radius:0 14px 14px 0;background:var(--orange-tint)}
.article__reco h4{font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:var(--orange-600);margin-bottom:14px}
.article__reco ol{margin:0;padding-left:20px;display:grid;gap:10px}
.article__reco li{font-size:1.02rem;color:var(--ink);line-height:1.55}
.article__reco li::marker{color:var(--orange-600);font-weight:800}

/* héros de page avec photo de fond (voile indigo pour lisibilité du texte) */
.page-hero--photo{background-size:cover;background-position:center;background-repeat:no-repeat}
.page-hero--photo::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(17,16,46,.93),rgba(38,34,97,.72));z-index:1}
.page-hero--photo .page-hero__inner{position:relative;z-index:2}

/* réseaux sociaux (footer) */
.footer__social{display:flex;gap:12px;align-items:center;padding:6px 0 22px}
.footer__social a{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.09);color:#fff;transition:background .18s var(--ease),color .18s var(--ease),transform .18s var(--ease)}
.footer__social a:hover{background:var(--orange);color:var(--ink);transform:translateY(-2px)}
.footer__social svg{width:18px;height:18px}

/* ============================================================
   REFONTE VISUELLE 2026-06 — diaporamas atmosphériques, fond
   expertises stylé, cartes secteurs premium, photos secteurs.
   (Placé en fin de fichier pour primer sur les règles antérieures.)
   ============================================================ */

/* ---- Diaporama d'arrière-plan réutilisable (fondu enchaîné + léger zoom) ---- */
.bg-slides{position:absolute;inset:0;z-index:0;overflow:hidden}
.bg-slides span{position:absolute;inset:-2%;background-size:cover;background-position:center;
  opacity:0;will-change:opacity,transform;transform:scale(1.06);
  animation:bgFade 36s linear infinite}
.bg-slides span:nth-child(1){animation-delay:0s}
.bg-slides span:nth-child(2){animation-delay:9s}
.bg-slides span:nth-child(3){animation-delay:18s}
.bg-slides span:nth-child(4){animation-delay:27s}
@keyframes bgFade{
  0%{opacity:0;transform:scale(1.04)}
  4%{opacity:1}
  22%{opacity:1}
  27%{opacity:0;transform:scale(1.1)}
  100%{opacity:0;transform:scale(1.1)}
}

/* ---- HERO accueil cinématique : diaporama plein cadre + voile indigo translucide ---- */
.hero{background:#11102E}
.hero .bg-slides span{filter:saturate(1.02) brightness(.92)}
/* voile : dense à gauche (lisibilité du titre) -> translucide à droite (on admire les images) */
.hero::after{content:"";position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(103deg,
      rgba(15,14,40,.92) 0%,
      rgba(20,18,54,.80) 34%,
      rgba(38,34,97,.50) 66%,
      rgba(58,53,127,.30) 100%),
    linear-gradient(0deg, rgba(15,14,40,.55) 0%, transparent 32%)}
.hero::before{z-index:1;opacity:.22}
.hero__inner{z-index:2}
/* mise en page cinématique : une colonne, texte superposé, hauteur généreuse */
.hero--cinema .hero__inner{grid-template-columns:1fr;max-width:730px;padding:120px 0 132px}

/* ---- MANIFESTE : diaporama atmosphérique + voile (texte centré lisible) ---- */
.manifesto{background:#11102E}
.manifesto .bg-slides span{filter:saturate(.96) brightness(.92) blur(1.4px)}
.manifesto::after{content:"";position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(135deg,
      rgba(17,16,46,.85) 0%,
      rgba(27,24,72,.79) 50%,
      rgba(38,34,97,.75) 100%),
    radial-gradient(70% 80% at 50% 50%, transparent 35%, rgba(15,14,40,.45) 100%)}
.manifesto::before{z-index:1}
.manifesto__in{position:relative;z-index:2}

/* ---- NOS EXPERTISES : fond blanc stylé, pleine largeur ---- */
#expertises{position:relative;overflow:hidden;
  background:linear-gradient(180deg,#FCFCFE 0%,#F3F3FB 100%)}
/* halos de couleur très doux (indigo + une touche d'orange) */
#expertises::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(48% 44% at 6% 2%, rgba(38,34,97,.13), transparent 62%),
    radial-gradient(42% 40% at 98% 14%, rgba(247,148,29,.11), transparent 60%),
    radial-gradient(54% 50% at 80% 106%, rgba(38,34,97,.10), transparent 58%)}
/* fine grille pointillée pour la texture */
#expertises::after{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(38,34,97,.07) 1px,transparent 1px);
  background-size:28px 28px;mask-image:linear-gradient(180deg,transparent,#000 16%,#000 84%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent,#000 16%,#000 84%,transparent)}
#expertises > .container{position:relative;z-index:1}
/* cartes expertises affinées : verre subtil + icône plus présente au survol */
.exp{background:rgba(255,255,255,.78);backdrop-filter:blur(6px);
  border-color:rgba(38,34,97,.10)}
.exp__ic{transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.exp:hover .exp__ic{transform:translateY(-2px) rotate(-3deg);box-shadow:0 12px 22px -10px rgba(38,34,97,.55)}

/* ---- NOS DOMAINES D'INTERVENTION : cartes secteurs premium ---- */
.sectors .sector:nth-child(1){--sx:#1E8E5A}
.sectors .sector:nth-child(2){--sx:#3F8F3A}
.sectors .sector:nth-child(3){--sx:#9E2F57}
.sectors .sector:nth-child(4){--sx:#3A357F}
.sectors .sector:nth-child(5){--sx:#262261}
.sector{position:relative}
/* barre d'accent colorée en haut, qui se déploie au survol */
.sector::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;z-index:3;
  background:var(--sx,var(--orange));transform:scaleX(0);transform-origin:left;
  transition:transform .35s var(--ease)}
.sector:hover::before{transform:scaleX(1)}
.sector__art{aspect-ratio:4/3;position:relative}
.sector__art img{transition:transform .6s var(--ease)}
.sector:hover .sector__art img{transform:scale(1.07)}
/* dégradé de profondeur + pastille numéro sur l'image */
.sector__art::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(17,16,46,.28) 0%,transparent 34%,transparent 62%,rgba(17,16,46,.34) 100%)}
.sector__art .sector__num{position:absolute;top:14px;left:14px;z-index:2;margin:0;
  display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 9px;
  border-radius:999px;background:rgba(255,255,255,.92);color:var(--sx,var(--indigo));
  font-size:.82rem;font-weight:800;letter-spacing:0;box-shadow:var(--shadow-sm)}
.sector__body{gap:0}
.sector__body .sector__num{display:none} /* l'ancien numéro inline est masqué (déplacé sur l'image) */
.sector h3{font-family:var(--display);font-weight:600;font-size:1.26rem;letter-spacing:-.01em}
.sector__tag{display:inline-flex;align-items:center;gap:6px;color:var(--sx,var(--green))}
.sector__tag span[aria-hidden]{transition:transform .25s var(--ease)}
.sector:hover .sector__tag span[aria-hidden]{transform:translateX(4px)}

/* ---- PHOTOS « Le secteur » (pages secteurs) : ratio cohérent ---- */
.split .media-card img{aspect-ratio:4/3;object-fit:cover}

/* ---- Responsive de la refonte ---- */
@media(max-width:880px){
  /* voile hero plus uniforme une fois en une colonne (texte par-dessus l'image) */
  .hero::after{background:linear-gradient(170deg,rgba(17,16,46,.92) 0%,rgba(27,24,72,.86) 55%,rgba(38,34,97,.78) 100%)}
  .sector__art{aspect-ratio:16/9}
}
@media(max-width:640px){
  .bg-slides span{background-position:center}
  .split .media-card img{aspect-ratio:16/10}
}
/* Accessibilité : pas d'animation -> on fige la 1re image de chaque diaporama */
.bg-slides span:first-child{opacity:1}
@media (prefers-reduced-motion: reduce){
  .bg-slides span{animation:none}
  .bg-slides span:not(:first-child){opacity:0}
}

/* ---- Correctif « À retenir » (.takeaways) ----
   Le texte de la liste héritait de .article ul li (encre sombre #33424b, prévue pour le
   corps clair) qui, par spécificité supérieure, écrasait le blanc et remplaçait la coche
   orange par la pastille verte, d'où l'illisibilité sur le fond indigo. On rétablit en
   priant sur la spécificité (.article .takeaways …). S'applique à TOUS les articles. */
.article .takeaways li{color:#fff;padding-left:30px;font-size:1.04rem;line-height:1.6}
.article .takeaways li::before{content:"✓";background:none;width:auto;height:auto;
  border-radius:0;left:0;top:0;color:var(--orange);font-weight:800}

/* ---- Bande « Sur le même thème » (articles liés en fin d'article) ---- */
.related-wrap{border-top:1px solid var(--line)}
.related-wrap .related-head{margin-bottom:26px}
.related-wrap .related-head .eyebrow{margin-bottom:10px}

/* ============================================================
   CORRECTIFS UX 2026-06
   1) Menu burger : sous-menu « Secteurs » replié par défaut, déplié au tap.
   2) Barre de filtres collante (Publications + Références).
   ============================================================ */
/* --- 1) Mobile + tablette (<=1024px) : à l'ouverture du burger on ne voit que
   les entrées de 1er niveau ; les 5 secteurs n'apparaissent qu'au tap sur
   « Secteurs » (classe .is-open posée par le JS déjà présent). --- */
@media(max-width:1024px){
  .nav.open .nav__dd{display:none}
  .nav.open .nav__item--dd.is-open .nav__dd{display:block;position:static;transform:none;
    opacity:1;visibility:visible;padding:6px 0 2px}
  /* chevron visible comme indice, qui pivote à l'ouverture */
  .nav.open .nav__dd-toggle svg{display:inline-block;width:13px;height:13px;
    transition:transform .2s var(--ease)}
  .nav.open .nav__item--dd.is-open .nav__dd-toggle svg{transform:rotate(180deg)}
}
/* --- 2) Filtres collants : ils restent visibles sous l'en-tête pendant le
   défilement des articles, donc on change de filtre sans remonter. Tous écrans. --- */
.ref-filters{position:sticky;top:var(--nav-h);z-index:30;background:#fff;
  padding:12px 0;border-bottom:1px solid var(--line)}
@media(max-width:880px){
  /* tablette + mobile : TOUS les filtres visibles (retour à la ligne, centrés) */
  .ref-filters{flex-wrap:wrap;justify-content:center;gap:8px;padding:10px 0}
}
@media(max-width:640px){
  /* boutons un peu plus compacts pour que les 6 tiennent sur 2 lignes max */
  .ref-filter{padding:9px 13px;font-size:.8rem}
}
