:root{
  --bg:#ffffff;
  --surface:#ffffff;
  --card:#ffffff;

  --text:#0B1220;
  --muted:#4B5565;
  --line:rgba(15,23,42,.12);

  --brand:#0EA5E9;   /* bleu premium */
  --brand2:#22C55E;  /* vert accent */
  --brand3:#F59E0B;  /* orange/gold accent */

  --radius:18px;
  --shadow:0 18px 60px rgba(2,6,23,.10);
  --shadow2:0 12px 30px rgba(2,6,23,.08);

  --glass:rgba(255,255,255,.72);
  --max:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  color:var(--text);
  background:
    radial-gradient(900px 600px at 12% 6%, rgba(14,165,233,.14), transparent 55%),
    radial-gradient(900px 600px at 88% 8%, rgba(34,197,94,.12), transparent 55%),
    radial-gradient(1100px 700px at 50% 115%, rgba(245,158,11,.10), transparent 60%),
    #ffffff;
}

a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
p{color:rgba(11,18,32,.86); line-height:1.75; margin:0 0 12px}
.container{max-width:var(--max); margin:0 auto; padding:0 18px}

.skip-link{position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden}
.skip-link:focus{
  left:18px; top:12px; width:auto; height:auto; padding:10px 12px;
  background:#fff; border:1px solid var(--line); border-radius:12px; z-index:9999;
}

/* progress */
.nav-progress{
  position:fixed; top:0; left:0; height:3px; width:0%;
  background:linear-gradient(90deg, rgba(14,165,233,.95), rgba(34,197,94,.85), rgba(245,158,11,.85));
  z-index:9999; opacity:0; transition:opacity .2s ease;
}

/* Loader */
.site-loader{
  position:fixed; inset:0; z-index:9998;
  background:rgba(255,255,255,.82);
  backdrop-filter: blur(10px);
  display:grid; place-items:center;
  transition:opacity .35s ease, visibility .35s ease;
}
.site-loader.is-hidden{opacity:0; visibility:hidden}
.site-loader__box{
  width:min(380px, 90vw);
  padding:18px 16px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow: var(--shadow);
  text-align:center;
}
.spinner{
  width:46px; height:46px; margin:0 auto 10px;
  border-radius:50%;
  border:3px solid rgba(2,6,23,.12);
  border-top-color: rgba(14,165,233,.95);
  animation: spin 1s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
.site-loader__text{margin:0; color:var(--muted); font-weight:800}

/* Topbar */
.topbar{
  background:rgba(255,255,255,.65);
  border-bottom:1px solid var(--line);
}
.topbar__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:14px;
  padding:10px 0;
  flex-wrap:wrap;
}
.topbar__item{color:rgba(11,18,32,.78); font-weight:800; font-size:.92rem}
.topbar__right{display:flex; gap:12px; flex-wrap:wrap}
.topbar__link{
  color:rgba(11,18,32,.78);
  font-weight:900;
  font-size:.92rem;
}
.topbar__link:hover{color:#000}

/* Header glass */
.header{position:sticky; top:0; z-index:1000; border-bottom:1px solid var(--line)}
.glass{
  background:var(--glass);
  backdrop-filter: blur(16px);
}
.header__inner{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0}

.brand{display:flex; align-items:center; gap:12px}
.brand__logo{
  width:46px; height:46px; border-radius:16px; padding:7px;
  border:1px solid var(--line);
  background:#fff;
  box-shadow: 0 10px 24px rgba(2,6,23,.08);
  transition: transform .28s ease, filter .28s ease;
  animation: logoMorph 3s ease-in-out infinite alternate;
}
@keyframes logoMorph{
  0%{border-radius:16px; transform: translateX(0) rotate(0deg)}
  100%{border-radius:26px; transform: translateX(8px) rotate(1.2deg)}
}
.brand:hover .brand__logo{transform: translateY(-1px) scale(1.03); filter:saturate(1.05); animation-play-state: paused}
.brand__text{display:flex; flex-direction:column; line-height:1.12}
.brand__name{font-weight:950; letter-spacing:.3px}
.brand__tag{font-size:.88rem; color:var(--muted)}

.nav{display:block}
.nav__list{list-style:none; margin:0; padding:0; display:flex; gap:14px; align-items:center}
.nav__link{
  color:rgba(11,18,32,.78);
  font-weight:900;
  font-size:.96rem;
  padding:10px 10px;
  border-radius:12px;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.nav__link:hover{color:#0B1220; background:rgba(2,6,23,.05); transform: translateY(-1px)}
.nav__link--cta{
  color:#0B1220;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(14,165,233,.10), rgba(255,255,255,.7));
}

/* Hamburger (ton modèle) */
.hamburger{
  display:none;
  width:42px; height:42px;
  border-radius:10px;
  border:1px solid rgba(0,0,0,.10);
  background:#ffffff;
  box-shadow: 0 10px 22px rgba(2,6,23,.12);
  cursor:pointer;
  padding:10px;
  transition: transform .18s ease, box-shadow .18s ease;
}
.hamburger:hover{transform: translateY(-1px); box-shadow: 0 14px 26px rgba(2,6,23,.14)}
.hamburger__bar{
  display:block;
  height:2px;
  width:100%;
  background:#111827;
  border-radius:99px;
  margin:6px 0;
  transition: transform .25s ease, opacity .25s ease;
}
.hamburger.is-open .hamburger__bar:nth-child(1){transform: translateY(8px) rotate(45deg)}
.hamburger.is-open .hamburger__bar:nth-child(2){opacity:0}
.hamburger.is-open .hamburger__bar:nth-child(3){transform: translateY(-8px) rotate(-45deg)}

/* Mobile menu */
.mobile-menu{
  display:none;
  position:fixed; inset:0; z-index:1300;
  background:rgba(2,6,23,.35);
  backdrop-filter: blur(8px);
}
.mobile-menu.is-open{display:block}
.mobile-menu__panel{
  position:absolute; right:14px; top:74px;
  width:min(360px, 92vw);
  border-radius:18px;
  background:#ffffff;
  color:#0B1220;
  box-shadow: 0 20px 60px rgba(2,6,23,.18);
  padding:10px;
  transform: translateY(-6px);
  border:1px solid rgba(2,6,23,.08);
}
.mobile-menu__head{
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 10px 6px;
}
.mobile-menu__title{font-weight:950; letter-spacing:.2px}
.mobile-menu__close{
  width:34px; height:34px; border-radius:10px;
  border:1px solid rgba(2,6,23,.10);
  background:#fff;
  cursor:pointer;
}
.mobile-menu__link{
  display:block;
  padding:12px 12px;
  border-radius:14px;
  color:#111827;
  font-weight:900;
  transition: background .18s ease, transform .18s ease;
}
.mobile-menu__link:hover{background:rgba(17,24,39,.06); transform: translateX(2px)}
.mobile-menu__link--cta{
  margin-top:6px;
  border:1px solid rgba(17,24,39,.10);
  background: linear-gradient(180deg, rgba(14,165,233,.12), rgba(255,255,255,1));
}
.mobile-menu__foot{display:flex; gap:8px; flex-wrap:wrap; padding:10px}
.mini-chip{
  display:inline-flex; align-items:center;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(2,6,23,.10);
  background:#fff;
  font-weight:900;
  font-size:.86rem;
}

/* Ticker */
.ticker{border-bottom:1px solid var(--line); background:rgba(255,255,255,.75); overflow:hidden}
.ticker__track{display:flex; gap:48px; width:max-content; padding:10px 0; animation: marquee 26s linear infinite}
.ticker__text{white-space:nowrap; margin:0; color:rgba(11,18,32,.78); font-weight:900; letter-spacing:.15px; padding-left:18px}
@keyframes marquee{from{transform:translateX(0)} to{transform:translateX(-50%)}}

/* Badge / buttons */
.badge{
  display:inline-flex; align-items:center;
  padding:8px 10px;
  border:1px solid rgba(2,6,23,.12);
  border-radius:999px;
  background:rgba(255,255,255,.85);
  color:rgba(11,18,32,.86);
  font-weight:900;
  font-size:.88rem;
  box-shadow: 0 10px 26px rgba(2,6,23,.06);
}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:10px; padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(2,6,23,.12);
  font-weight:950;
  cursor:pointer;
  transition: transform .2s ease, filter .2s ease, background .2s ease, box-shadow .2s ease;
}
.btn:hover{transform: translateY(-2px); filter:saturate(1.05); box-shadow: 0 16px 36px rgba(2,6,23,.10)}
.btn--primary{
  background: linear-gradient(180deg, rgba(14,165,233,.22), rgba(34,197,94,.10));
  color:#0B1220;
}
.btn--ghost{
  background: rgba(255,255,255,.85);
  color:#0B1220;
}

/* Intro hero */
.hero-intro{padding:22px 0 10px}
.hero-intro__inner{
  display:grid;
  grid-template-columns: 1.3fr .7fr;
  gap:16px;
  align-items:stretch;
}
.hero-intro__copy{
  border:1px solid rgba(2,6,23,.10);
  border-radius:22px;
  background:rgba(255,255,255,.78);
  box-shadow: var(--shadow2);
  padding:18px;
}
.hero-intro__copy h1{margin:10px 0 10px; font-size: clamp(26px, 3.4vw, 44px)}
.hero-intro__copy p{margin:0; color:rgba(11,18,32,.82)}
.hero-intro__actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:12px}

.hero-intro__card{
  border:1px solid rgba(2,6,23,.10);
  border-radius:22px;
  background: linear-gradient(180deg, rgba(14,165,233,.12), rgba(255,255,255,.88));
  box-shadow: var(--shadow2);
  padding:16px;
  position:relative;
  overflow:hidden;
}
.hero-intro__cardTop{
  display:flex; align-items:center; gap:12px;
}
.hero-intro__cardTop img{
  width:62px; height:62px;
  border-radius:18px;
  padding:10px;
  background:#fff;
  border:1px solid rgba(2,6,23,.10);
}
.hero-intro__kpi{font-weight:950; font-size: 2rem}
.hero-intro__kpiText{color:rgba(11,18,32,.72); font-weight:900}
.hero-intro__cardBottom{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
  margin-top:14px;
}
.mini-metric{
  border:1px solid rgba(2,6,23,.10);
  background:rgba(255,255,255,.9);
  border-radius:16px;
  padding:12px;
}
.mini-metric__num{display:block; font-weight:950; font-size:1.2rem}
.mini-metric__label{display:block; color:rgba(11,18,32,.70); font-weight:900; margin-top:4px}

/* Carousel */
.hero{padding:14px 0 10px}
.carousel{
  position:relative;
  border:1px solid rgba(2,6,23,.10);
  border-radius:26px;
  overflow:hidden;
  box-shadow: var(--shadow);
  background:#fff;
}
.carousel__slides{
  position:relative;
  width:100%;
  aspect-ratio: 16/9;
  min-height: 320px;
  max-height: 680px;
}
.carousel__slide{
  position:absolute; inset:0;
  opacity:0; transform:scale(1.02);
  transition: opacity .65s ease, transform .9s ease;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.carousel__slide.is-active{opacity:1; transform:scale(1)}
.carousel__overlay{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(2,6,23,.0) 15%, rgba(2,6,23,.55) 100%);
}
.carousel__content{
  position:absolute;
  left:16px; right:16px; bottom:16px;
  padding:14px 14px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.20);
  background: rgba(255,255,255,.10);
  backdrop-filter: blur(10px);
  color:#fff;
}
.carousel__title{margin:0 0 6px; font-size: clamp(18px, 2.2vw, 28px); font-weight:950}
.carousel__desc{margin:0; color:rgba(255,255,255,.92); font-weight:800}

.carousel__btn{
  position:absolute; top:50%; transform:translateY(-50%);
  width:46px; height:46px;
  border-radius:16px;
  border:1px solid rgba(2,6,23,.10);
  background:rgba(255,255,255,.75);
  color:#0B1220;
  font-size:28px;
  cursor:pointer;
  backdrop-filter: blur(12px);
  transition: background .2s ease, transform .2s ease;
}
.carousel__btn:hover{background:rgba(255,255,255,.92); transform:translateY(-50%) scale(1.02)}
.carousel__btn--prev{left:14px}
.carousel__btn--next{right:14px}

.carousel__dots{position:absolute; left:0; right:0; bottom:14px; display:flex; gap:8px; justify-content:center}
.dot{
  width:10px; height:10px; border-radius:999px;
  border:1px solid rgba(255,255,255,.70);
  background:rgba(255,255,255,.40);
  cursor:pointer;
  transition: transform .2s ease, background .2s ease;
}
.dot:hover{transform:scale(1.15)}
.dot.is-active{background:rgba(34,197,94,.95)}

/* Sections */
.section{padding:56px 0}
.section__head{margin-bottom:18px}
.section__title{margin:0 0 10px; font-size: clamp(20px, 2.3vw, 32px)}
.section__lead{margin:0; color:rgba(11,18,32,.70); line-height:1.7}
.section__ctaRow{margin-top:14px; display:flex; justify-content:flex-start}

/* Projects */
.projects{
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  gap:14px;
}
.project-card{
  border:1px solid rgba(2,6,23,.10);
  border-radius:22px;
  background:#fff;
  box-shadow: var(--shadow2);
  overflow:hidden;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  min-height: 260px;
  display:flex;
  flex-direction:column;
}
.project-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 22px 60px rgba(2,6,23,.14);
  border-color: rgba(14,165,233,.25);
}
.project-card__media{
  height: 150px;
  background-image: var(--bg);
  background-size: cover;
  background-position:center;
  position:relative;
}
.project-card__media:after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(2,6,23,0) 30%, rgba(2,6,23,.20) 100%);
}
.project-card__body{padding:14px}
.project-card__body h3{margin:0 0 8px; font-size:1.02rem}
.project-card__body p{margin:0 0 10px; color:rgba(11,18,32,.74); font-weight:700}
.project-card__more{font-weight:950; color:rgba(14,165,233,.92)}

/* Domains */
.domains{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:14px;
}
.domain-card{
  border:1px solid rgba(2,6,23,.10);
  border-radius:22px;
  background:rgba(255,255,255,.82);
  box-shadow: var(--shadow2);
  padding:16px;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.domain-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 20px 55px rgba(2,6,23,.12);
  border-color: rgba(34,197,94,.22);
}
.domain-card h3{margin:0 0 8px}
.domain-card p{margin:0; color:rgba(11,18,32,.74); font-weight:700}

/* Cards */
.card{
  border:1px solid rgba(2,6,23,.10);
  border-radius: var(--radius);
  padding:18px;
  background:rgba(255,255,255,.82);
  box-shadow: var(--shadow2);
}
.card--soft{background:rgba(255,255,255,.78)}
.prose__note{
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid rgba(2,6,23,.10);
  color:rgba(11,18,32,.70);
  font-weight:900;
}

/* Institution */
.institution{
  display:grid;
  grid-template-columns: .55fr .45fr;
  gap:16px;
  align-items:stretch;
}
.institution__media{
  position:relative;
  border-radius:22px;
  border:1px solid rgba(2,6,23,.10);
  background: linear-gradient(180deg, rgba(14,165,233,.12), rgba(255,255,255,.92));
  overflow:hidden;
  box-shadow: var(--shadow2);

  /* IMPORTANT : on enlève le centrage logo */
  padding:0;
  min-height: 420px; /* ajuste si tu veux plus grand */
}

.institution__media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;  /* REMPLIT SANS DÉFORMER */
  z-index:1;
  filter:none;
}

.institution__mediaGlow{
  position:absolute; inset:-40px;
  background: radial-gradient(circle at 25% 25%, rgba(245,158,11,.16), transparent 60%),
              radial-gradient(circle at 80% 15%, rgba(34,197,94,.14), transparent 55%),
              radial-gradient(circle at 50% 80%, rgba(14,165,233,.12), transparent 60%);
}
.institution__mediaTag{
  position:absolute;
  bottom:14px; left:14px;
  padding:10px 12px;
  border-radius:999px;
  border:1px solid rgba(2,6,23,.10);
  background:rgba(255,255,255,.86);
  font-weight:950;
  color:rgba(11,18,32,.90);
}
.institution__mediaNote{
  position:absolute;
  top:14px; left:14px; right:14px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(2,6,23,.10);
  background:rgba(255,255,255,.86);
  font-weight:850;
  color:rgba(11,18,32,.78);
}

/* Partners */
.partners{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:14px;
}
.partner{
  border:1px solid rgba(2,6,23,.10);
  border-radius:20px;
  background:rgba(255,255,255,.82);
  padding:16px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  box-shadow: var(--shadow2);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.partner:hover{
  transform: translateY(-3px);
  border-color: rgba(245,158,11,.22);
  box-shadow: 0 20px 55px rgba(2,6,23,.12);
}
.partner img{
  height:54px;
  width:auto;
  object-fit:contain;
}
.partner span{color:rgba(11,18,32,.72); font-weight:900; text-align:center}

/* Stats */
.stats{
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  gap:12px;
}
.stat{
  border:1px solid rgba(2,6,23,.10);
  border-radius: 18px;
  padding:14px;
  background:rgba(255,255,255,.82);
  box-shadow: var(--shadow2);
  text-align:center;
}
.stat__num{display:block; font-weight:950; font-size: 1.65rem; margin-bottom:6px}
.stat__label{display:block; color:rgba(11,18,32,.70); font-weight:850; font-size:.92rem}

/* Footer */
.footer{
  border-top:1px solid rgba(2,6,23,.10);
  background:rgba(255,255,255,.78);
  padding:40px 0 18px;
}
.footer__grid{
  display:grid;
  grid-template-columns: 1.35fr 1fr 1fr;
  gap:18px;
}
.footer__title{margin:0 0 10px; font-size:1.1rem}
.footer__text{margin:0 0 12px; color:rgba(11,18,32,.72); line-height:1.7}
.footer__links{list-style:none; margin:0; padding:0; display:grid; gap:10px}
.footer__links a{color:rgba(11,18,32,.72); font-weight:850}
.footer__links a:hover{color:#0B1220}

.social{display:grid; gap:10px}
.social__item{
  display:flex; align-items:center; gap:10px;
  padding:10px 12px;
  border:1px solid rgba(2,6,23,.10);
  border-radius: 16px;
  background:rgba(255,255,255,.86);
  transition: transform .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.social__item:hover{
  transform: translateY(-2px);
  background:#fff;
  border-color: rgba(14,165,233,.18);
  box-shadow: 0 18px 45px rgba(2,6,23,.10);
}
.social__item img{width:20px; height:20px}
.social__item span{color:rgba(11,18,32,.70); font-weight:950}

.footer__bottom{
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid rgba(2,6,23,.10);
  color:rgba(11,18,32,.62);
  font-weight:850;
}
.hr{
  height:1px;
  background:rgba(2,6,23,.10);
  margin:16px 0;
}
/* =========================
   CADRE LEGAL — PAGE STYLES
   ========================= */

.legal-hero{
  position:relative;
  padding: 34px 0 18px;
  background:
    radial-gradient(circle at 20% 20%, rgba(14,165,233,.18), transparent 55%),
    radial-gradient(circle at 80% 15%, rgba(245,158,11,.14), transparent 55%),
    radial-gradient(circle at 40% 85%, rgba(34,197,94,.12), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,1), rgba(255,255,255,1));
}

.legal-hero__inner{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 22px;
  align-items: stretch;
}

.legal-hero__copy{ padding: 12px 0; }
.legal-hero__title{ margin: 10px 0 10px; line-height: 1.05; }
.legal-hero__lead{ max-width: 64ch; color: rgba(11,18,32,.82); }

.legal-hero__actions{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 14px;
}

.legal-hero__meta{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 16px;
}

.mini-stat{
  border:1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  border-radius: 14px;
  padding: 10px 12px;
  box-shadow: var(--shadow1);
}
.mini-stat__k{ display:block; font-weight: 900; font-size: 12px; color: rgba(11,18,32,.72); }
.mini-stat__v{ display:block; font-weight: 950; color: rgba(11,18,32,.92); }

.legal-hero__visual{ display:flex; align-items: stretch; }
.legal-hero__card{
  position:relative;
  width:100%;
  border-radius: 22px;
  border:1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.92);
  overflow:hidden;
  box-shadow: var(--shadow2);
  padding: 16px;
}

.legal-hero__glow{
  position:absolute; inset:-40px;
  background:
    radial-gradient(circle at 25% 25%, rgba(245,158,11,.16), transparent 60%),
    radial-gradient(circle at 80% 15%, rgba(34,197,94,.14), transparent 55%),
    radial-gradient(circle at 50% 80%, rgba(14,165,233,.12), transparent 60%);
  pointer-events:none;
}

.legal-hero__cardTop{
  position:relative;
  display:flex;
  gap: 12px;
  align-items:center;
  z-index:2;
}
.legal-hero__logo{
  width: 54px;
  height: 54px;
  object-fit: contain;
  border-radius: 14px;
  border:1px solid rgba(2,6,23,.10);
  background: #fff;
  padding: 6px;
}
.legal-hero__cardTitle{ font-weight: 950; }
.legal-hero__cardSub{ color: rgba(11,18,32,.72); font-weight: 850; }

.legal-hero__cardBody{ position:relative; z-index:2; margin-top: 12px; display:grid; gap: 10px; }

.doc-chip{
  border:1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  border-radius: 16px;
  padding: 12px;
}
.doc-chip__k{ display:block; font-weight: 950; }
.doc-chip__v{ display:block; color: rgba(11,18,32,.72); font-weight: 850; margin-top: 2px; }

.legal-hero__note{
  border:1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  border-radius: 16px;
  padding: 12px;
  color: rgba(11,18,32,.82);
}

.legal-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 14px;
}

.legal-card__badge{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  border:1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  font-weight: 950;
  color: rgba(11,18,32,.88);
}

.legal-card__title{ margin: 10px 0 4px; }
.legal-card__meta{ margin: 0; color: rgba(11,18,32,.70); font-weight: 850; }

.legal-points{ margin: 10px 0 0; padding-left: 18px; color: rgba(11,18,32,.82); }
.legal-points li{ margin: 6px 0; }

.legal-card__foot{ margin-top: 14px; display:flex; justify-content:flex-start; }
.is-disabled{ opacity:.55; pointer-events:none; filter: grayscale(.15); }

.legal-callout{
  margin-top: 16px;
  display:flex;
  gap: 12px;
  align-items:flex-start;
}
.legal-callout__icon{
  width: 44px; height: 44px;
  display:grid; place-items:center;
  border-radius: 14px;
  border:1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  font-size: 20px;
}
.legal-callout__title{ margin: 0; }
.legal-callout__text{ margin: 6px 0 0; color: rgba(11,18,32,.82); }

.flow{
  display:grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  gap: 12px;
  align-items: stretch;
  margin-top: 14px;
}
.flow__arrow{
  display:grid;
  place-items:center;
  font-size: 20px;
  font-weight: 950;
  color: rgba(11,18,32,.50);
}
.flow__top{
  display:flex;
  gap: 10px;
  align-items:center;
  margin-bottom: 8px;
}
.flow__logo{
  width: 44px;
  height: 44px;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid rgba(2,6,23,.10);
  background:#fff;
}
.flow__icon{
  width: 44px; height: 44px;
  display:grid; place-items:center;
  border-radius: 12px;
  border: 1px solid rgba(2,6,23,.10);
  background:#fff;
}
.flow__title{ font-weight: 950; }
.flow__text{ color: rgba(11,18,32,.82); margin: 0; }

.logos-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-top: 14px;
}

.logo-card{
  text-align:center;
}
.logo-card img{
  width: 100%;
  height: 120px;
  object-fit: contain;
  border-radius: 18px;
  background:#fff;
  border: 1px solid rgba(2,6,23,.10);
  padding: 10px;
}
.logo-card__name{
  margin-top: 10px;
  font-weight: 950;
}
.logo-card__desc{
  margin-top: 4px;
  color: rgba(11,18,32,.70);
  font-weight: 850;
  font-size: 14px;
}

.eng-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-top: 14px;
}
.eng__icon{
  width: 44px; height: 44px;
  display:grid; place-items:center;
  border-radius: 14px;
  border:1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  font-size: 20px;
}
.eng__title{ margin: 10px 0 6px; }
.eng__text{ margin: 0; color: rgba(11,18,32,.78); }

.faq{ margin-top: 16px; }
.faq__title{ margin-top: 0; }
.faq__item{
  border: 1px solid rgba(2,6,23,.10);
  border-radius: 16px;
  padding: 12px 14px;
  background: rgba(255,255,255,.86);
  margin-top: 10px;
}
.faq__item summary{
  cursor:pointer;
  font-weight: 950;
  color: rgba(11,18,32,.92);
}
.faq__item p{
  margin: 10px 0 0;
  color: rgba(11,18,32,.80);
}

.legal-cta{
  display:flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
}
.legal-cta__title{ margin: 0; }
.legal-cta__text{ margin: 8px 0 0; color: rgba(11,18,32,.78); max-width: 70ch; }
.legal-cta__actions{ display:flex; gap: 10px; flex-wrap: wrap; }
/* =========================
   GOUVERNANCE — PAGE STYLES
   ========================= */

.gov-hero{
  position:relative;
  padding: 34px 0 18px;
  background:
    radial-gradient(circle at 18% 18%, rgba(14,165,233,.16), transparent 55%),
    radial-gradient(circle at 82% 18%, rgba(245,158,11,.12), transparent 55%),
    radial-gradient(circle at 40% 92%, rgba(34,197,94,.10), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,1), rgba(255,255,255,1));
}

.gov-hero__inner{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 18px;
  align-items: stretch;
}

.gov-hero__title{ margin: 10px 0 10px; line-height: 1.05; }
.gov-hero__lead{ max-width: 70ch; color: rgba(11,18,32,.82); }

.gov-hero__badges{
  display:flex; gap: 8px; flex-wrap: wrap;
  margin-top: 12px;
}

.badge{
  border:1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  padding: 8px 10px;
  border-radius: 999px;
  font-weight: 950;
  color: rgba(11,18,32,.86);
  box-shadow: var(--shadow1);
}

.gov-hero__actions{
  display:flex; gap: 10px; flex-wrap: wrap;
  margin-top: 14px;
}

.gov-hero__panelTitle{
  margin-top:0;
}

.gov-hero__panelGrid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 10px;
}

.gov-chip{
  border:1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  border-radius: 14px;
  padding: 10px 12px;
}
.gov-chip__k{ display:block; font-weight: 900; font-size: 12px; color: rgba(11,18,32,.70); }
.gov-chip__v{ display:block; font-weight: 950; color: rgba(11,18,32,.92); margin-top:2px; }

.gov-hero__panelLogos{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-top: 12px;
}

.gov-logo{
  display:flex;
  align-items:center;
  gap: 8px;
  border:1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  border-radius: 14px;
  padding: 10px;
}
.gov-logo img{
  width: 32px; height: 32px;
  object-fit: cover;
  border-radius: 10px;
  border:1px solid rgba(2,6,23,.10);
  background:#fff;
}
.gov-logo span{ font-weight: 950; color: rgba(11,18,32,.85); font-size: 12px; }

/* Org chart */
.org{ margin-top: 14px; }
.org__row{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  align-items: stretch;
}
.org__row--center{ grid-template-columns: 1fr; }
.org__card--primary{
  border: 1px solid rgba(14,165,233,.25);
  background: linear-gradient(180deg, rgba(14,165,233,.08), rgba(255,255,255,.92));
}
.org__title{ font-weight: 950; margin-bottom: 8px; }
.org__list{ margin: 0; padding-left: 18px; color: rgba(11,18,32,.82); }
.org__list li{ margin: 6px 0; }
.org__text{ margin: 0; color: rgba(11,18,32,.82); }

.org__divider{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  margin: 14px 0;
}
.org__line{
  height:1px;
  width: 35%;
  background: rgba(2,6,23,.10);
}
.org__dot{
  width: 10px; height: 10px;
  border-radius: 999px;
  background: rgba(14,165,233,.35);
  border: 1px solid rgba(2,6,23,.10);
}

/* Leader */
.leader{
  display:grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 14px;
  align-items: stretch;
}

.leader__media{
  position:relative;
  border-radius: 22px;
  overflow:hidden;
  border:1px solid rgba(2,6,23,.10);
  background: linear-gradient(180deg, rgba(14,165,233,.10), rgba(255,255,255,.92));
  min-height: 360px;
}

.leader__media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit: cover;
  z-index:1;
}

.leader__badge{
  position:absolute;
  bottom: 14px; left: 14px;
  z-index:2;
  padding: 10px 12px;
  border-radius: 999px;
  border:1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  font-weight: 950;
  color: rgba(11,18,32,.88);
}

.leader__name{ margin: 0; }
.leader__role{
  margin: 8px 0 10px;
  font-weight: 950;
  color: rgba(11,18,32,.72);
}
.leader__text{ margin: 0; color: rgba(11,18,32,.82); max-width: 78ch; }

.leader__highlights{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.hl{
  border:1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  border-radius: 14px;
  padding: 10px 12px;
  box-shadow: var(--shadow1);
}
.hl__k{ display:block; font-weight: 900; font-size: 12px; color: rgba(11,18,32,.70); }
.hl__v{ display:block; font-weight: 950; color: rgba(11,18,32,.92); margin-top:2px; }

/* Team */
.team{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 14px;
}

.person{
  display:grid;
  grid-template-columns: .45fr .55fr;
  gap: 12px;
  align-items: stretch;
}

.person__media{
  position:relative;
  border-radius: 20px;
  overflow:hidden;
  border:1px solid rgba(2,6,23,.10);
  background: linear-gradient(180deg, rgba(245,158,11,.10), rgba(255,255,255,.92));
  min-height: 220px;
}
.person__media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit: cover;
  z-index:1;
}

.person__name{ margin: 0; }
.person__role{ margin: 8px 0 10px; font-weight: 950; color: rgba(11,18,32,.72); }
.person__text{ margin: 0; color: rgba(11,18,32,.80); }

.gov-note{
  margin-top: 14px;
  display:flex;
  gap: 12px;
  align-items:flex-start;
}
.gov-note__icon{
  width: 44px; height: 44px;
  display:grid; place-items:center;
  border-radius: 14px;
  border:1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  font-size: 20px;
}
.gov-note__title{ margin: 0; }
.gov-note__text{ margin: 6px 0 0; color: rgba(11,18,32,.82); }

/* Pillars */
.gov-pillars{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-top: 14px;
}
.pillar__icon{
  width: 44px; height: 44px;
  display:grid; place-items:center;
  border-radius: 14px;
  border:1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  font-size: 20px;
}
.pillar__title{ margin: 10px 0 6px; }
.pillar__text{ margin: 0; color: rgba(11,18,32,.78); }

/* Timeline */
.timeline{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 14px;
}
.step{
  display:flex;
  gap: 12px;
  align-items:flex-start;
}
.step__n{
  width: 44px; height: 44px;
  display:grid; place-items:center;
  border-radius: 14px;
  border:1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  font-weight: 950;
}
.step__t{ margin: 0; }
.step__p{ margin: 6px 0 0; color: rgba(11,18,32,.80); }

.gov-cta{
  margin-top: 16px;
  display:flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
}
.gov-cta__title{ margin: 0; }
.gov-cta__text{ margin: 8px 0 0; color: rgba(11,18,32,.78); max-width: 70ch; }
.gov-cta__actions{ display:flex; gap: 10px; flex-wrap: wrap; }

/* =========================
   PROJETS — PAGE STYLES
   ========================= */

.p-hero{
  padding: 34px 0 18px;
  background:
    radial-gradient(circle at 18% 18%, rgba(14,165,233,.15), transparent 55%),
    radial-gradient(circle at 82% 18%, rgba(245,158,11,.12), transparent 55%),
    radial-gradient(circle at 40% 92%, rgba(34,197,94,.10), transparent 60%),
    linear-gradient(180deg, #fff, #fff);
}

.p-hero__inner{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 18px;
  align-items: stretch;
}

.p-hero__title{ margin: 10px 0 10px; line-height: 1.05; }
.p-hero__lead{ max-width: 75ch; color: rgba(11,18,32,.82); }

.p-hero__chips{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 14px;
}

.tab{
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.92);
  border-radius: 999px;
  padding: 10px 12px;
  font-weight: 950;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.tab:hover{ transform: translateY(-1px); box-shadow: var(--shadow2); }
.tab.is-active{
  border-color: rgba(14,165,233,.35);
  background: rgba(14,165,233,.08);
}

/* Stats */
.p-hero__statsTitle{ margin-top: 0; }
.stats-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 10px;
}
.stat{
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  border-radius: 16px;
  padding: 12px;
}
.stat__n{
  font-size: 28px;
  font-weight: 1000;
  letter-spacing: -0.02em;
}
.stat__l{
  margin-top: 4px;
  color: rgba(11,18,32,.75);
  font-weight: 900;
}
.p-hero__statsNote{
  margin: 12px 0 0;
  color: rgba(11,18,32,.78);
}

/* Grid projets */
.p-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 14px;
}

.p-card{
  overflow: hidden;
  transition: transform .16s ease, box-shadow .16s ease;
}
.p-card:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadow3);
}

.p-card__media{
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(2,6,23,.10);
  background: linear-gradient(180deg, rgba(14,165,233,.08), rgba(255,255,255,.92));
  height: 180px;
}

.p-card__media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display:block;
}

.p-tag{
  position:absolute;
  top: 12px;
  left: 12px;
  padding: 8px 10px;
  border-radius: 999px;
  font-weight: 950;
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.88);
  color: rgba(11,18,32,.86);
}
.p-tag--done{ background: rgba(34,197,94,.12); border-color: rgba(34,197,94,.30); }
.p-tag--progress{ background: rgba(245,158,11,.14); border-color: rgba(245,158,11,.34); }
.p-tag--future{ background: rgba(14,165,233,.12); border-color: rgba(14,165,233,.32); }

.p-card__body{ padding-top: 10px; }
.p-card__title{ margin: 6px 0 8px; }
.p-card__desc{
  margin: 0;
  color: rgba(11,18,32,.80);
  line-height: 1.55;
  min-height: 92px;
}

.p-kpis{
  display:flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.kpi{
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  border-radius: 999px;
  padding: 8px 10px;
  font-weight: 950;
  color: rgba(11,18,32,.84);
}

.p-card__link{
  display:inline-block;
  margin-top: 10px;
  font-weight: 1000;
  text-decoration: none;
  color: rgba(14,165,233,1);
}
.p-card__link:hover{ text-decoration: underline; }

/* CTA */
.p-cta{
  display:flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
}
.p-cta__title{ margin: 0; }
.p-cta__text{ margin: 8px 0 0; color: rgba(11,18,32,.78); max-width: 70ch; }
.p-cta__actions{ display:flex; gap: 10px; flex-wrap: wrap; }

/* Filtre (hide) */
.p-card.is-hidden{ display:none; }
/* =========================
   ARTICLE PROJET — STYLES
   ========================= */

.article-hero{
  padding: 34px 0 18px;
  background:
    radial-gradient(circle at 18% 18%, rgba(14,165,233,.14), transparent 55%),
    radial-gradient(circle at 84% 18%, rgba(245,158,11,.10), transparent 55%),
    radial-gradient(circle at 50% 92%, rgba(34,197,94,.10), transparent 60%),
    linear-gradient(180deg, #fff, #fff);
}

.article-hero__inner{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 18px;
  align-items: stretch;
}

.article-hero__title{ margin: 10px 0 10px; line-height: 1.05; }
.article-hero__lead{ color: rgba(11,18,32,.82); max-width: 80ch; }

.article-hero__meta{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}

.badge{
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.92);
  border-radius: 999px;
  padding: 10px 12px;
  font-weight: 950;
  color: rgba(11,18,32,.86);
}

.badge--done{ background: rgba(34,197,94,.12); border-color: rgba(34,197,94,.30); }
.badge--progress{ background: rgba(245,158,11,.14); border-color: rgba(245,158,11,.34); }
.badge--future{ background: rgba(14,165,233,.12); border-color: rgba(14,165,233,.32); }

.article-hero__media{
  border-radius: 22px;
  border: 1px solid rgba(2,6,23,.10);
  background: linear-gradient(180deg, rgba(14,165,233,.08), rgba(255,255,255,.92));
  overflow: hidden;
  box-shadow: var(--shadow2);
  min-height: 320px;
}

.article-hero__media img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

.article-grid{
  display:grid;
  grid-template-columns: .70fr .30fr;
  gap: 16px;
  align-items: start;
}

.article-card{
  padding: 16px;
  border-radius: 20px;
}

.article-card h2{ margin-top: 0; }
.article-card p{ color: rgba(11,18,32,.80); line-height: 1.65; }

.bullets{
  margin: 10px 0 0;
  padding-left: 18px;
}
.bullets li{ margin: 6px 0; color: rgba(11,18,32,.82); }

.kpi-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.kpi-box{
  border:1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  border-radius: 16px;
  padding: 12px;
}

.kpi-box__t{ font-weight: 1000; margin:0 0 6px; }
.kpi-box__d{ margin:0; color: rgba(11,18,32,.78); line-height: 1.5; }

.gallery{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 12px;
}

.gallery__item{
  border-radius: 18px;
  overflow:hidden;
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.88);
  min-height: 160px;
}

.gallery__item img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

.article-cta{
  display:flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
}

.article-cta__title{ margin:0; }
.article-cta__text{ margin:8px 0 0; color: rgba(11,18,32,.78); max-width: 75ch; }
.article-cta__actions{ display:flex; gap: 10px; flex-wrap: wrap; }

@media (max-width: 980px){
  .article-hero__inner{ grid-template-columns: 1fr; }
  .article-grid{ grid-template-columns: 1fr; }
  .gallery{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px){
  .gallery{ grid-template-columns: 1fr; }
  .article-cta{ flex-direction: column; align-items: flex-start; }
}
/* Désactivation visuelle des liens projection */
a.is-disabled {
  pointer-events: none;
  opacity: 0.55;
  cursor: not-allowed;
  text-decoration: none;
}
/* FIX global — désactivation propre */
a.is-disabled{
  pointer-events: none !important;
  opacity: .55 !important;
  cursor: not-allowed !important;
  text-decoration: none !important;
}
/* Lien "Voir le projet" doit rester au-dessus (si la carte a un overlay) */
.p-card__link,
.project-card__link,
a[href*="projets/"]{
  position: relative;
  z-index: 5;
}

/* Désactivation propre */
a.is-disabled{
  pointer-events: none !important;
  opacity: .55 !important;
  cursor: not-allowed !important;
  text-decoration: none !important;
}
/* =========================
   TRANSPARENCE — STYLES
   ========================= */

.t-hero{
  padding: 34px 0 18px;
  background:
    radial-gradient(circle at 18% 18%, rgba(14,165,233,.14), transparent 55%),
    radial-gradient(circle at 84% 18%, rgba(245,158,11,.10), transparent 55%),
    radial-gradient(circle at 50% 92%, rgba(34,197,94,.10), transparent 60%),
    linear-gradient(180deg, #fff, #fff);
}

.t-hero__inner{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 18px;
  align-items: stretch;
}

.t-hero__title{ margin: 10px 0; line-height: 1.05; }
.t-hero__lead{ color: rgba(11,18,32,.82); max-width: 80ch; }

.t-hero__badges{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}

.t-hero__actions{ display:flex; gap: 10px; flex-wrap:wrap; margin-top: 14px; }
.t-hero__statsTitle{ margin-top: 0; }
.t-hero__statsNote{ margin: 12px 0 0; color: rgba(11,18,32,.78); }

.t-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.t-card h3{ margin-top: 0; }
.t-card p{ margin: 8px 0 0; color: rgba(11,18,32,.80); line-height: 1.6; }

.docs{ display:grid; gap: 12px; }
.doc{
  display:flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  border-radius: 16px;
  padding: 14px;
}
.doc__title{ margin:0; font-weight: 1000; }
.doc__desc{ margin:6px 0 0; color: rgba(11,18,32,.78); line-height: 1.5; }
.doc--note{ background: rgba(14,165,233,.06); border-color: rgba(14,165,233,.18); }

.timeline{
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}
.step{ position: relative; padding: 14px; }
.step__n{
  display:inline-flex;
  width: 34px; height: 34px;
  border-radius: 999px;
  align-items:center; justify-content:center;
  font-weight: 1000;
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.92);
  margin-bottom: 10px;
}
.step h3{ margin: 0 0 6px; }
.step p{ margin: 0; color: rgba(11,18,32,.78); line-height: 1.55; }

.t-split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.t-block h2{ margin-top: 0; }
.bullets{ margin: 10px 0 0; padding-left: 18px; }
.bullets li{ margin: 6px 0; color: rgba(11,18,32,.82); }

.logos{
  display:flex;
  gap: 14px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
}
.logos img{
  height: 48px;
  width: auto;
  object-fit: contain;
  filter: drop-shadow(0 10px 24px rgba(2,6,23,.10));
  opacity: .92;
}

.faq{ padding: 12px; }
.faq__q{
  width: 100%;
  text-align: left;
  padding: 14px 14px;
  border-radius: 14px;
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.90);
  font-weight: 1000;
  cursor: pointer;
  margin: 10px 0 0;
}
.faq__q[aria-expanded="true"]{
  border-color: rgba(14,165,233,.30);
  background: rgba(14,165,233,.06);
}
.faq__a{
  padding: 10px 14px 14px;
  color: rgba(11,18,32,.80);
  line-height: 1.6;
}

.t-cta{
  display:flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
}
.t-cta__title{ margin:0; }
.t-cta__text{ margin: 8px 0 0; color: rgba(11,18,32,.78); max-width: 75ch; }
.t-cta__actions{ display:flex; gap: 10px; flex-wrap: wrap; }

/* Responsive */
@media (max-width: 980px){
  .t-hero__inner{ grid-template-columns: 1fr; }
  .t-grid{ grid-template-columns: 1fr 1fr; }
  .timeline{ grid-template-columns: 1fr 1fr; }
  .t-split{ grid-template-columns: 1fr; }
}
@media (max-width: 600px){
  .t-grid{ grid-template-columns: 1fr; }
  .timeline{ grid-template-columns: 1fr; }
  .doc{ flex-direction: column; align-items: flex-start; }
  .t-cta{ flex-direction: column; align-items: flex-start; }
}
/* =========================
   MEDIAS + ARTICLES
   ========================= */

.m-hero{
  padding: 34px 0 18px;
  background:
    radial-gradient(circle at 18% 18%, rgba(14,165,233,.14), transparent 55%),
    radial-gradient(circle at 84% 18%, rgba(245,158,11,.10), transparent 55%),
    radial-gradient(circle at 50% 92%, rgba(34,197,94,.10), transparent 60%),
    linear-gradient(180deg, #fff, #fff);
}
.m-hero__inner{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 16px;
  align-items: stretch;
}
.m-hero__title{ margin: 10px 0; line-height: 1.05; }
.m-hero__lead{ color: rgba(11,18,32,.82); max-width: 80ch; }
.m-hero__actions{ display:flex; gap: 10px; flex-wrap:wrap; margin-top: 14px; }

.m-spot__top{ display:flex; gap: 8px; flex-wrap:wrap; margin-bottom: 10px; }
.m-spot__title{ margin: 0 0 6px; }
.m-spot__text{ margin: 0 0 12px; color: rgba(11,18,32,.80); line-height: 1.6; }

.m-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.m-card{ overflow:hidden; display:flex; flex-direction:column; }
.m-card__media{
  border-radius: 16px;
  overflow:hidden;
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.9);
}
.m-card__media img{
  width:100%;
  height: 200px;
  object-fit: cover;
  display:block;
}
.m-card__body{ padding-top: 12px; display:flex; flex-direction:column; gap: 10px; }
.m-card__meta{ display:flex; gap: 10px; flex-wrap:wrap; align-items:center; }
.m-date{ color: rgba(11,18,32,.68); font-weight: 900; }
.m-card__title{ margin:0; }
.m-card__text{ margin:0; color: rgba(11,18,32,.82); line-height:1.6; }

.m-docs{ display:grid; gap: 12px; }
.m-doc{
  display:flex;
  justify-content: space-between;
  align-items:center;
  gap: 14px;
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(255,255,255,.86);
  border-radius: 16px;
  padding: 14px;
}
.m-doc__title{ margin:0; font-weight: 1000; }
.m-doc__desc{ margin:6px 0 0; color: rgba(11,18,32,.78); line-height:1.5; }

.m-cta{
  display:flex;
  justify-content: space-between;
  align-items:center;
  gap: 14px;
}
.m-cta__title{ margin:0; }
.m-cta__text{ margin: 8px 0 0; color: rgba(11,18,32,.78); max-width: 75ch; }
.m-cta__actions{ display:flex; gap: 10px; flex-wrap:wrap; }

/* Articles */
.a-hero{ padding: 28px 0 12px; background: #fff; }
.a-hero__title{ margin: 10px 0; line-height:1.05; }
.a-meta{ display:flex; gap: 10px; flex-wrap:wrap; margin-top: 10px; }
.a-hero__media{
  margin-top: 14px;
  border-radius: 22px;
  overflow:hidden;
  border: 1px solid rgba(2,6,23,.10);
  box-shadow: var(--shadow2);
}
.a-hero__media img{
  width:100%;
  height: min(420px, 56vw);
  object-fit: cover;
  display:block;
}
.a-body{
  max-width: 920px;
  margin: 0 auto;
}
.a-body h2{ margin-top: 18px; }
.a-body p{ color: rgba(11,18,32,.84); line-height: 1.75; }
.a-sep{ border:0; height:1px; background: rgba(2,6,23,.10); margin: 18px 0; }
.a-author{ margin:0; font-weight: 950; }
.a-actions{ display:flex; gap: 10px; flex-wrap:wrap; margin-top: 12px; }

/* Disabled buttons */
a.is-disabled{
  pointer-events: none !important;
  opacity: .55 !important;
  cursor: not-allowed !important;
  text-decoration: none !important;
}

@media (max-width: 980px){
  .m-hero__inner{ grid-template-columns: 1fr; }
  .m-grid{ grid-template-columns: 1fr; }
  .m-card__media img{ height: 220px; }
  .m-cta{ flex-direction: column; align-items:flex-start; }
}
@media (max-width: 600px){
  .m-doc{ flex-direction: column; align-items:flex-start; }
}

/* Premium YouTube Lazy Embed */

.video-section {
  margin-top: 30px;
}

.youtube-lazy {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 20px;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 25px 60px rgba(0,0,0,0.15);
}

.youtube-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.youtube-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: rgba(255, 0, 0, 0.9);
  border: none;
  cursor: pointer;
  transition: 0.3s ease;
}

.youtube-play::before {
  content: "";
  position: absolute;
  left: 32px;
  top: 26px;
  border-style: solid;
  border-width: 14px 0 14px 22px;
  border-color: transparent transparent transparent white;
}

.youtube-lazy:hover .youtube-play {
  transform: translate(-50%, -50%) scale(1.1);
  background: red;
}
/* Correction affichage hamburger */

.hamburger{
  width: 46px;
  height: 46px;
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;
  border: 1px solid rgba(2,6,23,.12);
  border-radius: 12px;
  background: rgba(255,255,255,.92);
  cursor: pointer;
  padding: 0;
}

.hamburger__bar{
  display: block;
  width: 22px;
  height: 2.5px;
  border-radius: 999px;
  background: #0b1220;
  margin: 0;
  flex: 0 0 auto;
}

@media (max-width: 980px){
  .nav{
    display: none;
  }

  .hamburger{
    display: inline-flex;
  }
}

/* Fix animation reveal mobile */
.fade-up{
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .6s ease, transform .6s ease;
  will-change: opacity, transform;
}

.fade-up.is-visible{
  opacity: 1;
  transform: translateY(0);
}

/* Sécurité mobile : éviter écran blanc persistant */
@media (max-width: 980px){
  .fade-up{
    transition-duration: .45s;
  }
}

.hero-intro__card {
  position: relative;
  overflow: hidden;
}

.hero-intro__cardTop {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 18px;
}

.hero-intro__topVisuals {
  position: relative;
  width: 150px;
  min-width: 150px;
  height: 90px;
}

.hero-intro__symbol {
  position: absolute;
  object-fit: contain;
  filter: drop-shadow(0 10px 18px rgba(15, 23, 42, 0.12));
  will-change: transform;
}

.hero-intro__symbol--logo {
  top: 0;
  left: 0;
  width: 56px;
  height: 56px;
  padding: 8px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(15, 23, 42, 0.08);
  animation: heroFloat 4.6s ease-in-out infinite;
}

.hero-intro__symbol--flag {
  top: -2px;
  right: 0;
  width: 68px;
  height: auto;
  animation: heroWave 4.6s ease-in-out infinite;
  transform-origin: left center;
}

.hero-intro__kpiWrap {
  position: relative;
  z-index: 2;
  padding-top: 2px;
}

@keyframes heroFloat {
  0%,
  100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-6px);
  }
}

@keyframes heroWave {
  0%,
  100% {
    transform: translateY(0px) rotate(0deg);
  }
  25% {
    transform: translateY(-3px) rotate(-2deg);
  }
  50% {
    transform: translateY(-6px) rotate(1.5deg);
  }
  75% {
    transform: translateY(-3px) rotate(-1deg);
  }
}

@media (max-width: 768px) {
  .hero-intro__cardTop {
    gap: 14px;
  }

  .hero-intro__topVisuals {
    width: 120px;
    min-width: 120px;
    height: 76px;
  }

  .hero-intro__symbol--logo {
    width: 50px;
    height: 50px;
    padding: 7px;
    border-radius: 16px;
  }

  .hero-intro__symbol--flag {
    width: 54px;
  }
}


@media (max-width: 768px) {
  :root {
    color-scheme: light;
  }

  html,
  body {
    background-color: #ffffff !important;
    color: #111111 !important;
  }

  section,
  div,
  header,
  nav,
  footer,
  main,
  article,
  aside {
    background-color: transparent;
    color: inherit;
  }
}

@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: light;
  }

  html,
  body {
    background-color: #ffffff !important;
    color: #111111 !important;
  }
}

.documents-page {
  background: #f7fafc;
}

.documents-hero {
  padding: 110px 20px 70px;
  background: linear-gradient(180deg, #f7fbff 0%, #ffffff 100%);
}

.documents-kicker,
.documents-year__badge,
.quarter-chip {
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(11, 77, 145, 0.08);
  color: #0b4d91;
  font-size: 0.85rem;
  font-weight: 700;
}

.documents-hero h1 {
  margin: 18px 0 16px;
  max-width: 900px;
  font-size: clamp(2.1rem, 4vw, 3.8rem);
  line-height: 1.1;
  color: #0b1c39;
}

.documents-hero p,
.documents-intro__text p,
.documents-year__head p,
.quarter-block__head p,
.doc-item p {
  color: #5b6777;
  line-height: 1.8;
}

.documents-intro,
.documents-nav,
.documents-year {
  padding: 80px 20px;
}

.documents-intro__grid {
  display: grid;
  grid-template-columns: 1.4fr 0.9fr;
  gap: 28px;
}

.documents-intro__text,
.documents-intro__card,
.quarter-block,
.doc-item,
.quarter-categories div {
  background: #ffffff;
  border: 1px solid rgba(11, 28, 57, 0.08);
  border-radius: 24px;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.06);
}

.documents-intro__text,
.documents-intro__card {
  padding: 30px;
}

.documents-intro__text h2,
.documents-year__head h2 {
  margin-bottom: 16px;
  color: #0b1c39;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
}

.documents-intro__card h3 {
  margin-bottom: 14px;
  color: #0b1c39;
}

.documents-intro__card ul {
  margin: 0;
  padding-left: 18px;
}

.documents-intro__card li {
  margin-bottom: 10px;
  color: #495568;
}

.documents-nav__list {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.documents-nav__list a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 18px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid rgba(11, 28, 57, 0.1);
  color: #0b1c39;
  text-decoration: none;
  font-weight: 600;
  transition: 0.25s ease;
}

.documents-nav__list a:hover {
  transform: translateY(-2px);
  color: #0b4d91;
}

.documents-year__head {
  max-width: 850px;
  margin-bottom: 34px;
}

.documents-year__head h2 {
  margin-top: 16px;
}

.quarter-block {
  padding: 30px;
  margin-bottom: 28px;
}

.quarter-block__head {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
  margin-bottom: 26px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(11, 28, 57, 0.08);
}

.quarter-block__head h3 {
  margin: 14px 0 8px;
  font-size: 1.8rem;
  color: #0b1c39;
}

.quarter-chip--soft {
  background: rgba(16, 185, 129, 0.08);
  color: #0f766e;
}

.category-block {
  margin-top: 34px;
}

.category-block h4 {
  margin-bottom: 18px;
  padding-left: 14px;
  border-left: 4px solid #0b4d91;
  color: #0b1c39;
  font-size: 1.1rem;
}

.doc-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.doc-item {
  padding: 24px;
  transition: 0.25s ease;
}

.doc-item:hover {
  transform: translateY(-4px);
}

.doc-type {
  display: inline-block;
  margin-bottom: 10px;
  color: #0b4d91;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
}

.doc-item h5 {
  margin: 0 0 10px;
  color: #0b1c39;
  font-size: 1.05rem;
  line-height: 1.45;
}

.doc-item a {
  display: inline-flex;
  margin-top: 16px;
  color: #0b4d91;
  font-weight: 700;
  text-decoration: none;
}

.doc-item a:hover {
  text-decoration: underline;
}

.quarter-categories {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.quarter-categories div {
  min-height: 110px;
  padding: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #425164;
  font-weight: 700;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

@media (max-width: 1100px) {
  .documents-intro__grid,
  .doc-grid,
  .quarter-categories {
    grid-template-columns: repeat(2, 1fr);
  }

  .documents-intro__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .documents-hero {
    padding: 90px 20px 50px;
  }

  .quarter-block {
    padding: 22px;
  }

  .quarter-block__head {
    flex-direction: column;
  }

  .doc-grid,
  .quarter-categories {
    grid-template-columns: 1fr;
  }
}



.topbar-icon {
  width: 16px;
  height: 16px;
  object-fit: contain;
  vertical-align: middle;
  margin-right: 8px;
  display: inline-block;
}