/* ==========================================================
   MCF-PME · Maquette statique
   Feuille de style principale
   ========================================================== */

/* ---------- 1. Tokens ---------- */
:root {
  --or: #FF7B05;
  --or-dk: #E06A00;
  --or-lt: #FFF2E6;
  --gr: #207D47;
  --gr-dk: #17613A;
  --gr-lt: #E9F4EE;
  --nav: #0F3F24;
  --nav-dk: #0A2C19;
  --text: #1B211D;
  --text-mid: #4A524C;
  --muted: #6E766F;
  --line: #E4E9E5;
  --bg: #FFFFFF;
  --bg-alt: #F4F7F5;
  --ff: 'Poppins', 'Segoe UI', Arial, sans-serif;
  --fb: 'Inter', 'Segoe UI', Arial, sans-serif;
  --r-sm: 6px;
  --r: 10px;
  --r-lg: 18px;
  --shadow: 0 8px 28px rgba(10,44,25, .08);
  --shadow-lg: 0 18px 48px rgba(10,44,25, .14);
  --wrap: 1200px;
  --gutter: 48px;
}

/* ---------- 2. Base ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body {
  font-family: var(--fb);
  font-size: 15px;
  line-height: 1.65;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: 0; background: none; color: inherit; }
input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4 { font-family: var(--ff); line-height: 1.15; color: var(--text); }
h2 em, h1 em, h3 em { font-style: normal; color: var(--or); }
strong { font-weight: 600; }
:focus-visible { outline: 3px solid var(--or); outline-offset: 2px; border-radius: 4px; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Sur-titre de section */
.ey, .ey-w {
  display: block;
  font-family: var(--ff); font-size: 14px; font-weight: 600;
  color: var(--gr); margin-bottom: 10px;
}
.ey-w { color: var(--or); }

.sec-hd { max-width: 640px; margin-bottom: 40px; }
.sec-hd.center { margin-left: auto; margin-right: auto; text-align: center; }
.sec-hd h2 { font-size: clamp(26px, 3vw, 38px); font-weight: 800; letter-spacing: -.5px; margin-bottom: 12px; }
.sec-hd p { color: var(--text-mid); font-size: 16px; }

/* ---------- 3. Boutons ---------- */
.btn-hp, .btn-hg, .btn-cp, .btn-co, .btn-quote, .btn-line {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--ff); font-weight: 600; font-size: 14px;
  padding: 13px 24px; border-radius: 999px; transition: background .2s, color .2s, border-color .2s, transform .2s;
  white-space: nowrap;
}
.btn-hp, .btn-cp { background: var(--or); color: #fff; }
.btn-hp:hover, .btn-cp:hover { background: var(--or-dk); transform: translateY(-1px); }
.btn-hg { border: 2px solid rgba(255,255,255,.55); color: #fff; padding: 11px 22px; }
.btn-hg:hover { background: #fff; color: var(--nav); border-color: #fff; }
.btn-co { border: 2px solid rgba(255,255,255,.35); color: #fff; padding: 11px 22px; }
.btn-co:hover { border-color: #fff; }
.btn-line { border: 2px solid var(--nav); color: var(--nav); padding: 11px 22px; }
.btn-line:hover { background: var(--nav); color: #fff; }
.btn-quote { background: var(--gr); color: #fff; padding: 11px 20px; }
.btn-quote:hover { background: var(--gr-dk); }

/* ---------- 4. Topbar ---------- */
.topbar { background: var(--nav); color: rgba(255,255,255,.82); font-size: 12.5px; }
.tb-inner { max-width: 1320px; margin: 0 auto; padding: 8px 32px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.tb-center { display: flex; align-items: center; gap: 14px; }
.tb-center a, .tb-right a { display: inline-flex; align-items: center; gap: 6px; transition: color .2s; }
.tb-center a:hover, .tb-right a:hover { color: var(--or); }
.tb-center svg { width: 13px; height: 13px; }
.tb-sep { opacity: .35; }
.tb-right { display: flex; gap: 12px; }
.tb-right svg { width: 14px; height: 14px; }

/* ---------- 5. Header ---------- */
.header-wrap {
  position: sticky; top: 0; z-index: 100; background: #fff;
  display: flex; align-items: center; gap: 28px;
  max-width: 100%; padding: 0 32px; height: 80px;
  border-bottom: 1px solid var(--line); transition: box-shadow .25s;
}
.header-wrap.scrolled { box-shadow: 0 4px 22px rgba(10,44,25,.09); }
.header-logo { flex-shrink: 0; }
.logo-img { height: 58px; width: auto; }
.header-nav { flex: 1; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.main-nav { list-style: none; display: flex; align-items: center; gap: 2px; margin: 0 auto; }
.main-nav > li { position: relative; }
.main-nav > li > a {
  display: flex; align-items: center; gap: 5px; height: 80px; padding: 0 13px;
  font-family: var(--ff); font-size: 14px; font-weight: 500; color: var(--text);
  position: relative; transition: color .2s;
}
.main-nav > li:hover > a, .main-nav > li.active > a { color: var(--or); }
.nav-chev { width: 10px; height: 10px; transition: transform .2s; }
.main-nav > li:hover .nav-chev { transform: rotate(180deg); }
.dropdown {
  position: absolute; top: 100%; left: 0; min-width: 240px; background: #fff;
  border-radius: 0 0 var(--r) var(--r); border-top: 3px solid var(--or);
  box-shadow: var(--shadow-lg); padding: 8px 0;
  opacity: 0; visibility: hidden; transform: translateY(8px); transition: all .22s;
}
.main-nav > li:hover .dropdown, .main-nav > li:focus-within .dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.dropdown a { display: flex; align-items: center; gap: 9px; padding: 10px 18px; font-size: 14px; color: var(--text-mid); transition: background .15s, color .15s; }
.dropdown a:hover { background: var(--or-lt); color: var(--or-dk); }
.dropdown svg { width: 14px; height: 14px; color: var(--or); flex-shrink: 0; }
.header-right { display: flex; align-items: center; gap: 18px; }
.h-phone { display: flex; align-items: center; gap: 10px; }
.h-phone-icon { width: 38px; height: 38px; border-radius: 50%; background: var(--or); display: grid; place-items: center; }
.h-phone-label { font-size: 11.5px; color: var(--muted); line-height: 1.2; }
.h-phone-num { font-family: var(--ff); font-weight: 700; font-size: 14px; color: var(--nav); }
.mob-btn { display: none; flex-direction: column; gap: 5px; padding: 8px; }
.mob-btn span { width: 24px; height: 2px; background: var(--nav); border-radius: 2px; transition: transform .25s, opacity .25s; }
.mob-btn.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mob-btn.open span:nth-child(2) { opacity: 0; }
.mob-btn.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- 6. Hero accueil ---------- */
.hero { position: relative; height: min(720px, 88vh); min-height: 560px; overflow: hidden; background: var(--nav-dk); }
.slides, .slide { position: absolute; inset: 0; }
.slide { opacity: 0; visibility: hidden; transition: opacity 1s ease, visibility 1s; }
.slide.active { opacity: 1; visibility: visible; }
.slide-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transform: scale(1.06); transition: transform 7s ease; }
.slide.active .slide-bg { transform: scale(1); }
.slide-ov { position: absolute; inset: 0; background: linear-gradient(95deg, rgba(10,44,25,.92) 0%, rgba(10,44,25,.72) 45%, rgba(10,44,25,.15) 100%); }
.slide-content { position: relative; z-index: 2; max-width: var(--wrap); height: 100%; margin: 0 auto; padding: 0 var(--gutter); display: flex; flex-direction: column; justify-content: center; }
.slide-tag { display: block; color: var(--or); font-size: 14px; font-weight: 500; margin-bottom: 20px; }
.slide-title { font-size: clamp(38px, 5.6vw, 72px); font-weight: 800; color: #fff; letter-spacing: -1.5px; line-height: 1.04; max-width: 760px; margin-bottom: 22px; }
.slide-title .or { color: var(--or); }
.slide-sub { color: rgba(255,255,255,.8); font-size: 17px; max-width: 540px; margin-bottom: 32px; }
.slide-ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.slide.active .slide-tag, .slide.active .slide-title, .slide.active .slide-sub, .slide.active .slide-ctas { animation: heroIn .9s cubic-bezier(.2,.7,.2,1) both; }
.slide.active .slide-title { animation-delay: .1s; }
.slide.active .slide-sub { animation-delay: .2s; }
.slide.active .slide-ctas { animation-delay: .3s; }
@keyframes heroIn { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

.hero-geo-1, .hero-geo-2 { position: absolute; z-index: 1; pointer-events: none; }
.hero-geo-1 { right: -120px; top: -140px; width: 460px; height: 460px; border: 70px solid rgba(255,123,5,.12); border-radius: 50%; }
.hero-geo-2 { right: 12%; bottom: -60px; width: 0; height: 0; border-left: 140px solid transparent; border-right: 140px solid transparent; border-bottom: 220px solid rgba(32,125,71,.18); }
.hero-socials { position: absolute; left: 22px; top: 50%; z-index: 3; transform: translateY(-50%) rotate(180deg); writing-mode: vertical-rl; display: flex; gap: 22px; font-size: 12px; letter-spacing: 1px; }
.hero-socials a { color: rgba(255,255,255,.55); transition: color .2s; }
.hero-socials a:hover { color: var(--or); }
.arr-btns { position: absolute; right: 40px; bottom: 44px; z-index: 3; display: flex; flex-direction: row-reverse; gap: 10px; }
.arr-btn { width: 48px; height: 48px; border-radius: 50%; border: 2px solid rgba(255,255,255,.4); color: #fff; display: grid; place-items: center; transition: all .2s; }
.arr-btn svg { width: 20px; height: 20px; }
.arr-btn:hover { background: var(--or); border-color: var(--or); }
.sl-dots { position: absolute; left: 50%; bottom: 52px; z-index: 3; transform: translateX(-50%); display: flex; gap: 8px; }
.sdot { width: 11px; height: 11px; border-radius: 50%; background: rgba(255,255,255,.4); transition: background .3s, transform .3s; }
.sdot.active { background: var(--or); transform: scale(1.25); }
.sl-ctr { position: absolute; right: 170px; bottom: 54px; z-index: 3; display: flex; align-items: baseline; gap: 6px; color: rgba(255,255,255,.55); font-family: var(--ff); font-size: 13px; }
.sl-cur { color: #fff; font-size: 22px; font-weight: 700; }

/* Flash info */
.flash-info { position: absolute; top: 0; left: 0; right: 0; z-index: 5; background: rgba(10,44,25,.82); backdrop-filter: blur(6px); border-bottom: 1px solid rgba(255,255,255,.08); }
.fi-track { max-width: var(--wrap); margin: 0 auto; padding: 9px var(--gutter); display: flex; align-items: center; gap: 16px; }
.fi-badge { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; background: var(--or); color: #fff; font-family: var(--ff); font-size: 12px; font-weight: 600; padding: 4px 12px; border-radius: 999px; }
.fi-badge svg { width: 13px; height: 13px; }
.fi-items { position: relative; flex: 1; height: 22px; overflow: hidden; }
.fi-item { position: absolute; inset: 0; color: rgba(255,255,255,.9); font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: 0; transform: translateY(100%); transition: all .5s; }
.fi-item.active { opacity: 1; transform: translateY(0); }
.fi-item.exit { opacity: 0; transform: translateY(-100%); }
.fi-close { color: rgba(255,255,255,.6); font-size: 14px; padding: 2px 6px; }
.fi-close:hover { color: #fff; }

/* ---------- 7. Services (accueil) ---------- */
.services-strip { padding: 90px 0 70px; }
.svc-photo-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.svc-photo-card { position: relative; display: flex; flex-direction: column; border-radius: var(--r-lg); overflow: hidden; background: #fff; box-shadow: var(--shadow); transition: transform .3s, box-shadow .3s; }
.svc-photo-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.spc-img { position: relative; aspect-ratio: 4/3.3; background-size: cover; background-position: center; }
.spc-ov { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(10,44,25,.55)); }
.spc-num { position: absolute; top: 14px; left: 14px; width: 38px; height: 38px; border-radius: 50%; background: #fff; color: var(--or); display: grid; place-items: center; font-family: var(--ff); font-weight: 700; font-size: 13px; }
.spc-band { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 18px 20px 6px; font-family: var(--ff); font-weight: 700; font-size: 17px; color: var(--nav); }
.spc-band svg { color: var(--or); flex-shrink: 0; transition: transform .25s; }
.svc-photo-card:hover .spc-band svg { transform: translateX(4px); }
.spc-desc { padding: 0 20px 22px; color: var(--text-mid); font-size: 14px; }

/* ---------- 8. À propos + simulateur ---------- */
.about-sim { padding: 70px 0 0; background: var(--bg-alt); }
.about-hd { display: grid; grid-template-columns: 1.2fr 1fr; gap: 48px; align-items: end; margin-bottom: 48px; }
.about-hd h2 { font-size: clamp(26px, 2.8vw, 38px); font-weight: 800; letter-spacing: -.5px; }
.about-hd h2 em { color: var(--gr); }
.about-hd p { color: var(--text-mid); font-size: 16px; }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.about-imgs { position: relative; padding: 0 60px 60px 0; }
.ai-main { width: 100%; aspect-ratio: 5/4; object-fit: cover; border-radius: var(--r-lg); }
.ai-sm { position: absolute; right: 0; bottom: 0; width: 46%; aspect-ratio: 1; object-fit: cover; border-radius: var(--r-lg); border: 6px solid var(--bg-alt); }
.ai-badge { position: absolute; left: -18px; bottom: 90px; background: var(--or); color: #fff; padding: 18px 22px; border-radius: var(--r); display: flex; align-items: center; gap: 12px; box-shadow: var(--shadow-lg); }
.ai-num { font-family: var(--ff); font-size: 36px; font-weight: 800; line-height: 1; }
.ai-lbl { font-size: 13px; line-height: 1.3; }
.about-right > p { font-size: 17px; color: var(--text-mid); margin-bottom: 28px; }
.achecks { display: flex; flex-direction: column; gap: 18px; }
.ach { display: flex; gap: 14px; }
.ach-ic { width: 32px; height: 32px; flex-shrink: 0; border-radius: 50%; background: var(--gr); color: #fff; display: grid; place-items: center; }
.ach-ic svg { width: 16px; height: 16px; }
.ach-t { font-family: var(--ff); font-weight: 600; font-size: 16px; color: var(--nav); }
.ach-d { color: var(--muted); font-size: 14px; }

.sim-wrap { padding: 64px 0 72px; }
.sim-right { display: grid; grid-template-columns: 1fr 1.1fr; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-lg); background: #fff; }
.sim-left-panel { background: var(--gr-dk); color: #fff; padding: 44px; display: flex; flex-direction: column; gap: 30px; position: relative; overflow: hidden; }
.sim-left-panel::after { content: ""; position: absolute; right: -90px; bottom: -90px; width: 260px; height: 260px; border-radius: 50%; border: 50px solid rgba(255,123,5,.18); }
.slp-eyebrow { display: inline-block; background: rgba(255,255,255,.12); color: #fff; font-size: 13px; font-weight: 600; padding: 5px 14px; border-radius: 999px; margin-bottom: 16px; }
.slp-title { color: #fff; font-size: clamp(28px, 3vw, 38px); font-weight: 800; letter-spacing: -.5px; margin-bottom: 12px; }
.slp-title em { color: var(--or); font-style: normal; }
.slp-sub { color: rgba(255,255,255,.78); }
.slp-perks { display: flex; flex-direction: column; gap: 18px; }
.slp-perk { display: flex; gap: 14px; }
.slp-perk-ic { width: 36px; height: 36px; flex-shrink: 0; border-radius: var(--r-sm); background: rgba(255,255,255,.1); display: grid; place-items: center; color: var(--or); }
.slp-perk-ic svg { width: 17px; height: 17px; }
.slp-perk-t { font-family: var(--ff); font-weight: 600; }
.slp-perk-d { font-size: 13.5px; color: rgba(255,255,255,.7); }
.slp-trust { display: flex; align-items: center; gap: 10px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.14); font-size: 14px; color: rgba(255,255,255,.85); margin-top: auto; }
.slp-trust svg { width: 18px; height: 18px; color: var(--or); }
.sim-form-panel { padding: 44px; }
.sfp-hd h3 { font-size: 22px; font-weight: 700; color: var(--nav); }
.sfp-hd p { color: var(--muted); font-size: 14px; margin-bottom: 22px; }
.sim-tabs { display: flex; gap: 6px; background: var(--bg-alt); padding: 5px; border-radius: 999px; margin-bottom: 24px; }
.stab { flex: 1; padding: 9px 12px; border-radius: 999px; font-family: var(--ff); font-weight: 600; font-size: 13.5px; color: var(--text-mid); transition: all .2s; }
.stab.active { background: #fff; color: var(--or); box-shadow: 0 2px 8px rgba(10,44,25,.1); }
.sim-fields { display: flex; flex-direction: column; gap: 16px; }
.sfield label { display: block; font-size: 13px; font-weight: 600; color: var(--text); margin-bottom: 6px; }
.sfield input, .sfield select, .cf-input {
  width: 100%; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: var(--r-sm);
  background: #fff; font-size: 14.5px; transition: border-color .2s, box-shadow .2s;
}
.sfield input:focus, .sfield select:focus, .cf-input:focus { outline: none; border-color: var(--or); box-shadow: 0 0 0 3px rgba(255,123,5,.15); }
.sim-result { background: var(--or-lt); border-radius: var(--r); padding: 18px 20px; }
.srl { font-size: 13px; color: var(--or-dk); font-weight: 600; }
.srv { font-family: var(--ff); font-size: 28px; font-weight: 800; color: var(--nav); }
.sim-btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 14px; border-radius: 999px; background: var(--or); color: #fff; font-family: var(--ff); font-weight: 600; transition: background .2s; }
.sim-btn:hover { background: var(--or-dk); }
.sim-note { text-align: center; font-size: 12.5px; color: var(--muted); }

/* ---------- 9. Chiffres clés ---------- */
.stats-wrap { background: var(--bg-alt); padding: 0 0 80px; }
.stats-box { background: var(--nav); border-radius: var(--r-lg); padding: 44px 36px; position: relative; overflow: hidden; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.stat-item { text-align: center; padding: 0 16px; }
.stat-item + .stat-item { border-left: 1px solid rgba(255,255,255,.12); }
.stat-icon { width: 48px; height: 48px; margin: 0 auto 14px; border-radius: 50%; background: rgba(255,255,255,.08); color: var(--or); display: grid; place-items: center; }
.stat-icon svg { width: 22px; height: 22px; }
.stat-num { font-family: var(--ff); font-size: 42px; font-weight: 800; color: #fff; line-height: 1; margin-bottom: 8px; }
.stat-num em { font-style: normal; color: var(--or); }
.stat-lbl { color: rgba(255,255,255,.7); font-size: 14px; }

/* ---------- 10. Actualités (cartes) ---------- */
.blog { padding: 90px 0; }
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.bc { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .25s, transform .25s; }
.bc:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.bc-img { position: relative; aspect-ratio: 16/10; overflow: hidden; }
.bc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.bc:hover .bc-img img { transform: scale(1.05); }
.bc-tag, .actu-tag { position: absolute; top: 14px; left: 14px; background: var(--or); color: #fff; font-family: var(--ff); font-size: 12px; font-weight: 600; padding: 4px 12px; border-radius: 999px; }
.bc-tag.gr, .actu-tag.gr { background: var(--gr); }
.bc-body { padding: 22px; display: flex; flex-direction: column; flex: 1; }
.bc-date { font-size: 13px; color: var(--muted); margin-bottom: 8px; }
.bc-body h3 { font-size: 18px; font-weight: 700; color: var(--nav); margin-bottom: 10px; }
.bc-body p { font-size: 14px; color: var(--text-mid); margin-bottom: 18px; flex: 1; }
.bc-lnk { display: inline-flex; align-items: center; gap: 6px; font-family: var(--ff); font-weight: 600; font-size: 14px; color: var(--or); }
.blog-more { text-align: center; margin-top: 44px; }

/* ---------- 11. Processus ---------- */
.process { position: relative; background: var(--nav); color: #fff; padding: 96px 0; overflow: hidden; }
.process-glow-r, .process-glow-l { position: absolute; border-radius: 50%; filter: blur(80px); pointer-events: none; }
.process-glow-r { right: -120px; top: -80px; width: 380px; height: 380px; background: rgba(255,123,5,.22); }
.process-glow-l { left: -140px; bottom: -120px; width: 420px; height: 420px; background: rgba(32,125,71,.3); }
.process-inner { position: relative; }
.process-hd { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: end; margin-bottom: 56px; }
.process-hd h2 { color: #fff; font-size: clamp(28px, 3.2vw, 42px); font-weight: 800; letter-spacing: -.5px; }
.process-hd p { color: rgba(255,255,255,.72); font-size: 16px; }
.process-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.ps { position: relative; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.09); border-radius: var(--r-lg); padding: 30px 24px 26px; overflow: hidden; transition: background .3s, border-color .3s; }
.ps:hover { background: rgba(255,255,255,.08); border-color: rgba(255,123,5,.4); }
.ps-num-val { position: absolute; right: 16px; top: 6px; font-family: var(--ff); font-size: 64px; font-weight: 800; color: rgba(255,255,255,.06); line-height: 1; }
.ps-icon { width: 52px; height: 52px; border-radius: var(--r); background: var(--or); color: #fff; display: grid; place-items: center; margin-bottom: 20px; }
.ps-icon svg { width: 24px; height: 24px; }
.ps-title { font-family: var(--ff); font-weight: 700; font-size: 18px; margin-bottom: 10px; }
.ps-desc { color: rgba(255,255,255,.7); font-size: 14px; margin-bottom: 20px; }
.ps-tag { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; color: var(--or); background: rgba(255,123,5,.12); padding: 5px 12px; border-radius: 999px; }
.ps-tag svg { width: 13px; height: 13px; }
.ps-bar { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: rgba(255,255,255,.06); }
.ps-bar-fill { height: 100%; width: 0; background: var(--or); transition: width 1.2s ease; }
.ps.ps-vis .ps-bar-fill { width: 100%; }
.ps:nth-child(2) .ps-bar-fill { transition-delay: .25s; }
.ps:nth-child(3) .ps-bar-fill { transition-delay: .5s; }
.ps:nth-child(4) .ps-bar-fill { transition-delay: .75s; }
.process-cta { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; margin-top: 48px; }

/* ---------- 12. Témoignages ---------- */
.testi-band { padding: 90px 0; background: var(--bg-alt); overflow: hidden; }
.testi-band-hd { text-align: center; margin-bottom: 44px; }
.testi-band-hd .ey-w { color: var(--gr); }
.testi-band-hd h3 { font-size: clamp(26px, 3vw, 36px); font-weight: 800; }
.ticker-viewport { overflow: hidden; padding: 12px 0 20px; }
.ticker-track { display: flex; gap: 22px; transition: transform .7s cubic-bezier(.3,.7,.2,1); padding-left: var(--gutter); }
.tk-card { flex: 0 0 380px; background: #fff; border-radius: var(--r-lg); padding: 28px; box-shadow: var(--shadow); transition: opacity .5s, transform .5s; display: flex; flex-direction: column; gap: 20px; }
.tk-quote { font-size: 15.5px; color: var(--text); line-height: 1.7; flex: 1; }
.tk-quote::before { content: "\201C"; display: block; font-family: Georgia, serif; font-size: 52px; line-height: .6; color: var(--or); margin-bottom: 12px; }
.tk-author { display: flex; align-items: center; gap: 12px; }
.tk-av { width: 44px; height: 44px; border-radius: 50%; color: #fff; display: grid; place-items: center; font-family: var(--ff); font-weight: 700; font-size: 14px; }
.tk-name { font-family: var(--ff); font-weight: 600; color: var(--nav); }
.tk-role { font-size: 13px; color: var(--muted); }
.tk-stars { color: var(--or); letter-spacing: 3px; font-size: 14px; }

/* ---------- 13. Contact + carte (accueil) ---------- */
.contact-map { padding: 90px 0; }
.cm-inner { display: grid; grid-template-columns: 1.1fr 1fr; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-lg); }
.cm-left { position: relative; background: var(--nav); color: #fff; padding: 48px 44px; overflow: hidden; }
.cm-dots { position: absolute; right: 26px; top: 26px; display: grid; grid-template-columns: repeat(4, 8px); gap: 10px; opacity: .25; }
.cm-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--or); }
.cm-contact-cols { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
.cc-block h3 { color: #fff; font-size: 19px; margin-bottom: 22px; }
.cc-item { margin-bottom: 18px; }
.cc-label { font-size: 12.5px; color: rgba(255,255,255,.55); margin-bottom: 2px; }
.cc-val { font-family: var(--ff); font-weight: 600; font-size: 15px; }
.cc-val.light { font-family: var(--fb); font-weight: 400; color: rgba(255,255,255,.85); }
.cm-right { min-height: 380px; }
.cm-right iframe, .map-box iframe { width: 100%; height: 100%; min-height: 380px; border: 0; display: block; filter: saturate(.85); }

/* ---------- 14. Footer ---------- */
footer { background: var(--nav-dk); color: rgba(255,255,255,.72); font-size: 14px; }
.footer-in { max-width: 1280px; margin: 0 auto; padding: 72px 32px 48px; display: grid; grid-template-columns: 1.6fr repeat(4, 1fr); gap: 36px; }
.f-logo-img { width: 150px; margin-bottom: 18px; }
.f-brand p { margin-bottom: 18px; max-width: 320px; }
.f-brand address { font-style: normal; display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }
.f-brand address span { display: flex; gap: 8px; align-items: flex-start; }
.f-brand address svg { width: 15px; height: 15px; color: var(--or); flex-shrink: 0; margin-top: 3px; }
.f-brand-socials, .fb-socs { display: flex; gap: 10px; }
.f-soc-btn, .fb-soc { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.08); display: grid; place-items: center; transition: background .2s; }
.f-soc-btn:hover, .fb-soc:hover { background: var(--or); color: #fff; }
.f-soc-btn svg, .fb-soc svg { width: 15px; height: 15px; }
.f-col-t { font-family: var(--ff); font-weight: 700; color: #fff; font-size: 15px; margin-bottom: 18px; }
.f-col ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.f-col a { transition: color .2s; }
.f-col a:hover { color: var(--or); }
.footer-bt { border-top: 1px solid rgba(255,255,255,.08); }
.fb-in { max-width: 1280px; margin: 0 auto; padding: 20px 32px; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; font-size: 13px; }
.fb-links { display: flex; gap: 20px; }
.fb-links a:hover { color: var(--or); }
.footer-accent { height: 5px; background: linear-gradient(90deg, var(--or) 0 50%, var(--gr) 50% 100%); }

/* ---------- 15. En-tête des pages intérieures ---------- */
.page-hero { position: relative; background: var(--nav); color: #fff; padding: 80px 0 72px; overflow: hidden; }
.page-hero::before { content: ""; position: absolute; right: -100px; top: -120px; width: 380px; height: 380px; border-radius: 50%; border: 60px solid rgba(255,123,5,.13); }
.page-hero::after { content: ""; position: absolute; right: 18%; bottom: -50px; border-left: 110px solid transparent; border-right: 110px solid transparent; border-bottom: 170px solid rgba(32,125,71,.22); }
.page-hero--photo { background: linear-gradient(95deg, rgba(10,44,25,.94), rgba(10,44,25,.7)), var(--hero-img) center/cover; }
.page-hero-inner { position: relative; z-index: 1; max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.page-breadcrumb { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px; color: rgba(255,255,255,.6); margin-bottom: 18px; }
.page-breadcrumb a:hover { color: var(--or); }
.page-breadcrumb .sep { opacity: .5; }
.page-hero h1 { color: #fff; font-size: clamp(34px, 4.4vw, 54px); font-weight: 800; letter-spacing: -1px; margin-bottom: 14px; }
.page-hero p { color: rgba(255,255,255,.78); font-size: 17px; max-width: 620px; }
.ph-anchors { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.ph-anchors a { padding: 8px 18px; border-radius: 999px; border: 1.5px solid rgba(255,255,255,.28); font-size: 13.5px; font-weight: 500; transition: all .2s; }
.ph-anchors a:hover { background: var(--or); border-color: var(--or); }
.mm-stats { display: flex; gap: 10px; margin-top: 20px; font-family: var(--ff); font-weight: 600; font-size: 14px; }
.mm-stats span { background: rgba(255,255,255,.1); padding: 6px 14px; border-radius: 999px; }

.page-section { padding: 84px 0; }
.page-section--alt { background: var(--bg-alt); }
.page-section h2.ap-h2 { font-size: clamp(26px, 3vw, 38px); font-weight: 800; letter-spacing: -.5px; margin-bottom: 14px; }
.ap-intro { color: var(--text-mid); font-size: 16px; max-width: 620px; margin-bottom: 44px; }

/* ---------- 16. À propos ---------- */
.ap-grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: 56px; align-items: start; }
.ap-text p { color: var(--text-mid); font-size: 15.5px; margin-bottom: 16px; }
.ap-text strong { color: var(--nav); }
.ap-values { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 28px; }
.ap-val-item { display: flex; gap: 12px; padding: 18px; border: 1px solid var(--line); border-radius: var(--r); }
.ap-val-icon { width: 36px; height: 36px; flex-shrink: 0; border-radius: var(--r-sm); background: var(--or-lt); color: var(--or); display: grid; place-items: center; }
.ap-val-item strong { display: block; font-family: var(--ff); color: var(--nav); margin-bottom: 2px; }
.ap-val-item p { font-size: 13.5px; color: var(--muted); margin: 0; }
.ap-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 16px; }
.ap-kpi { background: var(--bg-alt); border-radius: var(--r); padding: 22px; }
.ap-kpi--wide { grid-column: span 2; background: var(--nav); color: #fff; }
.ap-kpi-val { font-family: var(--ff); font-size: 34px; font-weight: 800; color: var(--nav); line-height: 1.1; }
.ap-kpi-val em { font-style: normal; color: var(--or); }
.ap-kpi--wide .ap-kpi-val { color: #fff; }
.ap-kpi-val--sm { font-size: 21px; }
.ap-kpi-lbl { font-size: 13px; color: var(--muted); margin-top: 4px; }
.ap-kpi--wide .ap-kpi-lbl { color: rgba(255,255,255,.7); }
.ap-mission-cards { display: grid; gap: 12px; }
.ap-mc { border-left: 4px solid var(--gr); background: var(--gr-lt); padding: 18px 20px; border-radius: 0 var(--r) var(--r) 0; }
.ap-mc:nth-child(2) { border-color: var(--or); background: var(--or-lt); }
.ap-mc-hd { display: flex; align-items: center; gap: 8px; font-family: var(--ff); font-weight: 700; color: var(--nav); margin-bottom: 6px; }
.ap-mc p { font-size: 14px; color: var(--text-mid); }

/* Frise chronologique */
.ap-timeline { position: relative; max-width: 900px; margin: 0 auto; }
.apt-track { position: absolute; left: 180px; top: 8px; bottom: 8px; width: 2px; background: var(--line); }
.apt-item { display: grid; grid-template-columns: 160px 40px 1fr; align-items: start; margin-bottom: 26px; }
.apt-year { font-family: var(--ff); font-weight: 700; color: var(--nav); text-align: right; padding-top: 16px; font-size: 15px; }
.apt-year--or { color: var(--or); }
.apt-year--gr { color: var(--gr); }
.apt-dot { width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 3px solid var(--nav); margin: 20px auto 0; position: relative; z-index: 1; }
.apt-dot--or { border-color: var(--or); background: var(--or); }
.apt-dot--gr { border-color: var(--gr); background: var(--gr); }
.apt-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 20px 22px; }
.apt-card--or { border-left: 4px solid var(--or); }
.apt-card--gold { background: var(--or-lt); border-color: #F6D2AC; }
.apt-card--gr { border-left: 4px solid var(--gr); background: var(--gr-lt); }
.apt-card h4 { font-size: 16.5px; color: var(--nav); margin-bottom: 6px; display: flex; align-items: center; gap: 6px; }
.apt-card p { font-size: 14px; color: var(--text-mid); }

/* Organigramme */
.org-chart { max-width: 820px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; }
.org-node { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 24px 26px; text-align: center; box-shadow: var(--shadow); width: 100%; max-width: 360px; opacity: 0; transform: translateY(14px); transition: opacity .6s, transform .6s; }
.org-vis .org-node { opacity: 1; transform: none; }
.org-vis .org-level--2 .org-node { transition-delay: .25s; }
.org-vis .org-level--3 .org-node { transition-delay: .5s; }
.org-node--top { background: var(--nav); color: #fff; border: 0; }
.org-node--top .org-node-title { color: #fff; }
.org-node--top .org-node-sub { color: rgba(255,255,255,.7); }
.org-node--bottom { border-top: 4px solid var(--or); }
.org-node-icon { width: 48px; height: 48px; margin: 0 auto 12px; border-radius: 50%; background: var(--or-lt); color: var(--or); display: grid; place-items: center; }
.org-node--top .org-node-icon { background: rgba(255,255,255,.1); }
.org-node-icon svg { width: 22px; height: 22px; }
.org-node-title { font-family: var(--ff); font-weight: 700; font-size: 17px; color: var(--nav); }
.org-node-sub { font-size: 13.5px; color: var(--muted); }
.org-node-chips { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; margin-top: 12px; }
.org-node-chips span { font-size: 12px; padding: 3px 10px; border-radius: 999px; background: rgba(255,123,5,.14); color: var(--or-dk); font-weight: 600; }
.org-node--top .org-node-chips span { background: rgba(255,255,255,.12); color: #fff; }
.org-connector { width: 2px; height: 36px; background: var(--or); }
.org-level { width: 100%; display: flex; justify-content: center; }
.org-branch { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; width: 100%; padding-top: 24px; }
.org-branch-line { position: absolute; top: 0; left: 25%; right: 25%; height: 2px; background: var(--or); }
.org-branch-line::before, .org-branch-line::after { content: ""; position: absolute; top: 0; width: 2px; height: 24px; background: var(--or); }
.org-branch-line::before { left: 0; }
.org-branch-line::after { right: 0; }
.org-branch .org-node { max-width: none; }
.gouv-cadre { margin-top: 56px; background: var(--bg-alt); border-radius: var(--r-lg); padding: 32px; }
.gouv-cadre h4 { font-size: 18px; color: var(--nav); margin-bottom: 20px; }
.gouv-cadre-items { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.gc-item { display: flex; gap: 12px; background: #fff; padding: 16px; border-radius: var(--r); }
.gc-item svg { color: var(--gr); flex-shrink: 0; margin-top: 3px; }
.gc-item strong { display: block; font-family: var(--ff); color: var(--nav); }
.gc-item span { font-size: 13.5px; color: var(--muted); }

/* Distinctions */
.dist-list { display: flex; flex-direction: column; gap: 18px; }
.dist-card { display: grid; grid-template-columns: 130px 1fr; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.dist-card--gold { border: 2px solid var(--or); }
.dist-card-side { background: var(--bg-alt); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 24px; }
.dist-card--gold .dist-card-side { background: var(--or-lt); }
.dist-medal { width: 64px; height: 64px; border-radius: 50%; background: #fff; display: grid; place-items: center; box-shadow: var(--shadow); }
.dist-medal--nav { color: var(--nav); }
.dist-year { font-family: var(--ff); font-weight: 800; font-size: 20px; color: var(--or); }
.dist-body { padding: 26px 28px; }
.dist-label { font-size: 13px; color: var(--gr); font-weight: 600; margin-bottom: 6px; }
.dist-body h3 { font-size: 19px; color: var(--nav); margin-bottom: 10px; }
.dist-body p { font-size: 14.5px; color: var(--text-mid); }
.dist-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 14px; }
.dist-tags span { font-size: 12px; padding: 4px 11px; border-radius: 999px; background: var(--bg-alt); color: var(--text-mid); font-weight: 600; }

/* Partenaires */
.partners-section { position: relative; padding: 96px 0; color: #fff; overflow: hidden; }
.partners-bg { position: absolute; inset: 0; background: url('https://images.unsplash.com/photo-1497366216548-37526070297c?w=1600&q=80') center/cover; }
.partners-ov { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(10,44,25,.95), rgba(23,97,58,.88)); }
.partners-inner { position: relative; }
.partners-hd { text-align: center; max-width: 620px; margin: 0 auto 48px; }
.partners-hd h2 { color: #fff; font-size: clamp(28px, 3.2vw, 40px); font-weight: 800; margin-bottom: 10px; }
.partners-hd p { color: rgba(255,255,255,.75); }
.partners-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.partner-card { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); border-radius: var(--r-lg); padding: 26px; transition: background .25s, border-color .25s; }
.partner-card:hover { background: rgba(255,255,255,.12); border-color: var(--or); }
.partner-card-icon { width: 46px; height: 46px; border-radius: var(--r); background: var(--or); display: grid; place-items: center; margin-bottom: 16px; }
.partner-card-icon svg { width: 22px; height: 22px; }
.partner-card h4 { color: #fff; font-size: 18px; margin-bottom: 4px; }
.partner-card p { color: rgba(255,255,255,.7); font-size: 14px; }
.partners-cta { margin-top: 44px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding: 28px 32px; border-radius: var(--r-lg); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); }
.partners-cta-text strong { display: block; font-family: var(--ff); font-size: 20px; }
.partners-cta-text span { color: rgba(255,255,255,.75); font-size: 14.5px; }
.partners-cta-btns { display: flex; gap: 10px; flex-wrap: wrap; }

/* ---------- 17. Espace membre ---------- */
.adh-steps { display: flex; flex-direction: column; gap: 14px; margin-top: 26px; }
.adh-step { display: flex; gap: 16px; align-items: flex-start; }
.adh-step > span { width: 42px; height: 42px; flex-shrink: 0; border-radius: 50%; background: var(--nav); color: #fff; display: grid; place-items: center; font-family: var(--ff); font-weight: 700; font-size: 14px; }
.adh-step strong { font-family: var(--ff); color: var(--nav); display: block; }
.adh-step p { margin: 0; font-size: 14px; color: var(--muted); }
.sb-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 28px; box-shadow: var(--shadow); position: sticky; top: 110px; }
.sb-card h4 { font-size: 17px; color: var(--nav); margin-bottom: 14px; display: flex; align-items: center; gap: 8px; }
.sb-card h4 svg { color: var(--or); }
.adh-docs { list-style: none; display: flex; flex-direction: column; gap: 10px; margin-bottom: 22px; }
.adh-docs li { display: flex; gap: 10px; font-size: 14.5px; color: var(--text-mid); }
.adh-docs li::before { content: ""; width: 18px; height: 18px; flex-shrink: 0; margin-top: 2px; border-radius: 50%; background: var(--gr-lt) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23207D47' stroke-width='3.5' stroke-linecap='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/11px no-repeat; }
.sb-card .btn-hp, .sb-card .btn-line { width: 100%; margin-top: 10px; }
.feat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.feat-card { background: #fff; border-radius: var(--r-lg); padding: 26px; border: 1px solid var(--line); transition: border-color .25s; }
.feat-card:hover { border-color: var(--or); }
.fc-icon { width: 46px; height: 46px; border-radius: var(--r); background: var(--or-lt); color: var(--or); display: grid; place-items: center; margin-bottom: 16px; }
.fc-icon svg { width: 22px; height: 22px; }
.feat-card h4 { font-size: 17px; color: var(--nav); margin-bottom: 6px; }
.feat-card p { font-size: 14px; color: var(--muted); }
.req-list { list-style: none; display: flex; flex-direction: column; gap: 8px; margin: 14px 0 4px; }
.req-list li { display: flex; gap: 10px; font-size: 14px; color: var(--text-mid); }
.req-list li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--gr); flex-shrink: 0; margin-top: 8px; }

/* ---------- 18. Téléchargements ---------- */
.dl-section { margin-bottom: 56px; }
.dl-section:last-child { margin-bottom: 0; }
.dl-section-hd { display: flex; align-items: center; gap: 16px; margin-bottom: 24px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.dl-section-icon { width: 50px; height: 50px; border-radius: var(--r); background: var(--nav); color: #fff; display: grid; place-items: center; }
.dl-section-hd h2 { font-size: 22px; color: var(--nav); }
.dl-section-hd span { font-size: 13.5px; color: var(--muted); }
.dl-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.dl-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 22px; display: flex; flex-direction: column; transition: box-shadow .25s, border-color .25s; }
.dl-card:hover { box-shadow: var(--shadow); border-color: transparent; }
.dl-card-top { display: flex; gap: 14px; flex: 1; }
.dl-icon { width: 44px; height: 44px; flex-shrink: 0; border-radius: var(--r-sm); background: var(--or-lt); color: var(--or); display: grid; place-items: center; font-size: 20px; }
.dl-info h3 { font-size: 16px; color: var(--nav); margin-bottom: 4px; }
.dl-info p { font-size: 13.5px; color: var(--muted); }
.dl-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 18px; padding-top: 16px; border-top: 1px dashed var(--line); }
.dl-size { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--muted); font-weight: 600; }
.dl-btn { display: inline-flex; align-items: center; gap: 6px; background: var(--gr); color: #fff; font-family: var(--ff); font-weight: 600; font-size: 13px; padding: 8px 16px; border-radius: 999px; transition: background .2s; }
.dl-btn:hover { background: var(--gr-dk); }
.dl-btn--disabled { background: var(--line); color: var(--muted); cursor: not-allowed; }
.dl-btn--disabled:hover { background: var(--line); }

/* ---------- 19. Multimédia ---------- */
.mm-tabs { display: inline-flex; gap: 6px; background: var(--bg-alt); padding: 6px; border-radius: 999px; margin-bottom: 36px; }
.mm-tab { display: inline-flex; align-items: center; gap: 8px; padding: 10px 22px; border-radius: 999px; font-family: var(--ff); font-weight: 600; font-size: 14px; color: var(--text-mid); transition: all .2s; }
.mm-tab span { background: rgba(10,44,25,.08); padding: 1px 9px; border-radius: 999px; font-size: 12px; }
.mm-tab.active { background: var(--nav); color: #fff; }
.mm-tab.active span { background: rgba(255,255,255,.18); }
.mm-panel[hidden] { display: none; }
.photos-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.photo-item { position: relative; aspect-ratio: 4/3; border-radius: var(--r-lg); overflow: hidden; cursor: zoom-in; }
.photo-item:nth-child(6n+1) { grid-row: span 2; aspect-ratio: auto; }
.photo-img { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .5s; }
.photo-item:hover .photo-img { transform: scale(1.06); }
.photo-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 18px; background: linear-gradient(180deg, transparent 45%, rgba(10,44,25,.85)); opacity: 0; transition: opacity .3s; }
.photo-item:hover .photo-overlay, .photo-item:focus-visible .photo-overlay { opacity: 1; }
.po-icon { position: absolute; top: 14px; right: 14px; width: 38px; height: 38px; border-radius: 50%; background: var(--or); display: grid; place-items: center; }
.photo-title { color: #fff; font-family: var(--ff); font-weight: 600; }
.videos-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.video-item { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; cursor: pointer; transition: box-shadow .25s; }
.video-item:hover { box-shadow: var(--shadow-lg); }
.video-thumb { position: relative; aspect-ratio: 16/9; background-size: cover; background-position: center; }
.video-thumb::before { content: ""; position: absolute; inset: 0; background: rgba(10,44,25,.35); }
.video-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 64px; height: 64px; border-radius: 50%; background: var(--or); display: grid; place-items: center; transition: transform .25s; }
.video-item:hover .video-play { transform: translate(-50%, -50%) scale(1.1); }
.video-duration { position: absolute; right: 12px; bottom: 12px; background: rgba(0,0,0,.72); color: #fff; font-size: 12px; font-weight: 600; padding: 3px 9px; border-radius: 4px; }
.video-body { padding: 20px 22px; }
.video-body h3 { font-size: 17px; color: var(--nav); margin-bottom: 6px; }
.video-body p { font-size: 14px; color: var(--muted); }

/* Lightbox + modale vidéo (communes) */
.lb, .vmodal { position: fixed; inset: 0; z-index: 1000; background: rgba(6,16,27,.94); display: none; align-items: center; justify-content: center; padding: 40px; }
.lb.on, .vmodal.on { display: flex; }
.lb-wrap { max-width: min(1100px, 90vw); text-align: center; }
.lb-wrap img { max-height: 78vh; margin: 0 auto; border-radius: var(--r); }
.lb-title { color: #fff; font-family: var(--ff); font-weight: 600; margin-top: 14px; }
.lb-count { color: rgba(255,255,255,.55); font-size: 13px; margin-top: 2px; }
.lb-x, .lb-p, .lb-n, .vm-close { position: absolute; color: #fff; width: 48px; height: 48px; border-radius: 50%; background: rgba(255,255,255,.1); display: grid; place-items: center; font-size: 22px; transition: background .2s; }
.lb-x:hover, .lb-p:hover, .lb-n:hover, .vm-close:hover { background: var(--or); }
.lb-x, .vm-close { top: 20px; right: 20px; font-size: 18px; }
.lb-p { left: 20px; top: 50%; transform: translateY(-50%); }
.lb-n { right: 20px; top: 50%; transform: translateY(-50%); }
.vm-wrap { width: min(960px, 92vw); }
.vm-title { color: #fff; font-family: var(--ff); font-weight: 600; margin-bottom: 12px; }
.vm-frame { position: relative; aspect-ratio: 16/9; background: #000; border-radius: var(--r); overflow: hidden; }
.vm-frame iframe, .vm-frame video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.vm-empty { position: absolute; inset: 0; display: grid; place-items: center; color: rgba(255,255,255,.7); text-align: center; padding: 20px; }

/* ---------- 20. Page contact ---------- */
.contact-page-inner { display: grid; grid-template-columns: 1fr 1.1fr; gap: 48px; align-items: start; }
.ci-intro h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 800; margin-bottom: 10px; }
.ci-intro p { color: var(--text-mid); margin-bottom: 28px; }
.ci-items { display: flex; flex-direction: column; gap: 14px; margin-bottom: 26px; }
.ci-item { display: flex; gap: 14px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--r); }
.ci-icon { width: 42px; height: 42px; flex-shrink: 0; border-radius: var(--r-sm); background: var(--or-lt); color: var(--or); display: grid; place-items: center; }
.ci-label { font-size: 12.5px; color: var(--muted); }
.ci-val { font-family: var(--ff); font-weight: 600; color: var(--nav); }
.ci-val a:hover { color: var(--or); }
.ci-sub { font-size: 13px; color: var(--muted); }
.map-box { border-radius: var(--r-lg); overflow: hidden; height: 260px; }
.map-box iframe { min-height: 260px; }
.contact-form-card { background: #fff; border-radius: var(--r-lg); box-shadow: var(--shadow-lg); padding: 40px; border-top: 5px solid var(--or); }
.cf-header h3 { font-size: 22px; color: var(--nav); }
.cf-header p { color: var(--muted); font-size: 14px; margin-bottom: 24px; }
.cform { display: flex; flex-direction: column; gap: 16px; }
.cf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.cf-group { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.cf-textarea { resize: vertical; min-height: 130px; }
.cf-check { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; color: var(--text-mid); }
.cf-check input { margin-top: 4px; accent-color: var(--or); }
.cf-submit { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 26px; border-radius: 999px; background: var(--or); color: #fff; font-family: var(--ff); font-weight: 600; transition: background .2s; }
.cf-submit:hover { background: var(--or-dk); }
.cf-success { text-align: center; padding: 40px 10px; color: var(--gr); }
.cf-success svg { margin: 0 auto 16px; }
.cf-success h3 { color: var(--nav); font-size: 22px; margin-bottom: 6px; }
.cf-success p { color: var(--text-mid); }
.cf-errors { background: #FDECEC; color: #A32222; border-radius: var(--r-sm); padding: 12px 16px; font-size: 14px; margin-bottom: 14px; }

/* ---------- 21. Actualités (liste) ---------- */
.actu-grid { display: grid; grid-template-columns: 1fr 300px; gap: 40px; align-items: start; }
.actu-list { display: flex; flex-direction: column; gap: 20px; }
.actu-card { display: grid; grid-template-columns: 280px 1fr; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; transition: box-shadow .25s; }
.actu-card:hover { box-shadow: var(--shadow-lg); }
.actu-card[hidden] { display: none; }
.actu-img { position: relative; min-height: 200px; }
.actu-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.actu-body { padding: 24px 26px; display: flex; flex-direction: column; }
.actu-date { font-size: 13px; color: var(--muted); margin-bottom: 6px; }
.actu-body h3 { font-size: 19px; color: var(--nav); margin-bottom: 8px; }
.actu-body p { font-size: 14.5px; color: var(--text-mid); flex: 1; margin-bottom: 14px; }
.actu-lnk { display: inline-flex; align-items: center; gap: 6px; font-family: var(--ff); font-weight: 600; font-size: 14px; color: var(--or); }
.actu-empty { text-align: center; padding: 50px 20px; border: 1px dashed var(--line); border-radius: var(--r-lg); color: var(--muted); }
.actu-empty[hidden] { display: none; }
.actu-sidebar { display: flex; flex-direction: column; gap: 18px; position: sticky; top: 110px; }
.sidebar-card { background: var(--bg-alt); border-radius: var(--r-lg); padding: 24px; }
.sidebar-card h4 { font-size: 16px; color: var(--nav); margin-bottom: 14px; }
.sidebar-cats { display: flex; flex-direction: column; gap: 4px; }
.sidebar-cats button { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px; border-radius: var(--r-sm); font-size: 14px; color: var(--text-mid); text-align: left; transition: background .15s, color .15s; }
.sidebar-cats button:hover { background: #fff; }
.sidebar-cats button.active { background: var(--nav); color: #fff; }
.cat-count { font-size: 12px; font-weight: 600; background: rgba(10,44,25,.08); padding: 1px 9px; border-radius: 999px; }
.sidebar-cats button.active .cat-count { background: rgba(255,255,255,.2); }
.actu-socials { display: flex; gap: 10px; }
.actu-soc { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; color: #fff; transition: transform .2s; }
.actu-soc:hover { transform: translateY(-2px); }
.actu-soc--fb { background: var(--or); }
.actu-soc--li { background: var(--gr); }
.actu-soc--wa { background: var(--nav); }

/* ---------- 22. Article ---------- */
.read-progress-bar { position: fixed; top: 0; left: 0; height: 3px; width: 0; background: var(--or); z-index: 200; }
.as-hero { position: relative; padding: 96px 0 80px; background: var(--nav); color: #fff; overflow: hidden; }
.as-hero.has-img { background: var(--hero-bg) center/cover; }
.as-hero-ov { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,44,25,.7), rgba(10,44,25,.93)); }
.as-hero-inner { position: relative; max-width: 900px; margin: 0 auto; padding: 0 var(--gutter); }
.as-breadcrumb { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px; color: rgba(255,255,255,.6); margin-bottom: 22px; }
.as-breadcrumb a:hover { color: var(--or); }
.as-hero .bc-tag { position: static; display: inline-block; margin-bottom: 16px; }
.as-title { color: #fff; font-size: clamp(30px, 4vw, 48px); font-weight: 800; letter-spacing: -.8px; margin-bottom: 20px; }
.as-meta { display: flex; flex-wrap: wrap; gap: 18px; font-size: 14px; color: rgba(255,255,255,.75); }
.as-meta-item { display: inline-flex; align-items: center; gap: 6px; }
.as-body { padding: 64px 0 80px; }
.as-body-inner { display: grid; grid-template-columns: 1fr 360px; gap: 56px; align-items: start; }
.as-excerpt { font-size: 19px; line-height: 1.6; color: var(--nav); font-weight: 500; padding-left: 20px; border-left: 4px solid var(--or); margin-bottom: 30px; }
.as-content p { font-size: 16.5px; line-height: 1.8; color: var(--text-mid); margin-bottom: 20px; max-width: 68ch; }
.as-content h2 { font-size: 24px; color: var(--nav); margin: 34px 0 14px; }
.as-content ul { margin: 0 0 22px 20px; color: var(--text-mid); }
.as-content li { margin-bottom: 8px; }
.as-postnav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--line); }
.as-postnav-item { padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--r); transition: border-color .2s; }
.as-postnav-item:hover { border-color: var(--or); }
.as-postnav-next { text-align: right; }
.as-postnav-dir { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--or); font-weight: 600; margin-bottom: 4px; }
.as-postnav-ttl { display: block; font-family: var(--ff); font-weight: 600; color: var(--nav); font-size: 15px; }
.as-col-media { display: flex; flex-direction: column; gap: 20px; position: sticky; top: 110px; }
.as-cover-img { border-radius: var(--r-lg); width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.as-gallery-box { background: var(--bg-alt); border-radius: var(--r-lg); padding: 20px; }
.as-gallery-hd { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--nav); margin-bottom: 14px; }
.as-gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.as-gi { position: relative; aspect-ratio: 1; border-radius: var(--r-sm); background-size: cover; background-position: center; overflow: hidden; }
.as-gi-ov { position: absolute; inset: 0; background: rgba(10,44,25,.5); display: grid; place-items: center; opacity: 0; transition: opacity .2s; }
.as-gi:hover .as-gi-ov, .as-gi:focus-visible .as-gi-ov { opacity: 1; }
.as-sidebar-cta { display: flex; flex-direction: column; gap: 16px; padding: 20px; border: 1px solid var(--line); border-radius: var(--r-lg); }
.as-back-link { display: inline-flex; align-items: center; gap: 8px; font-family: var(--ff); font-weight: 600; color: var(--nav); }
.as-back-link:hover { color: var(--or); }
.as-share { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--muted); }
.as-share a { width: 36px; height: 36px; border-radius: 50%; background: var(--bg-alt); color: var(--nav); display: grid; place-items: center; transition: all .2s; }
.as-share a:hover { background: var(--or); color: #fff; }
.as-autres { background: var(--bg-alt); padding: 72px 0; }
.as-autres-title { font-size: 28px; font-weight: 800; margin-bottom: 30px; }

/* ---------- 23. Fiche service ---------- */
.svc-hero { position: relative; padding: 110px 0 96px; background-size: cover; background-position: center; color: #fff; overflow: hidden; }
.svc-hero-ov { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(10,44,25,.95) 0%, rgba(10,44,25,.78) 55%, rgba(10,44,25,.45) 100%); }
.svc-geo { position: absolute; pointer-events: none; }
.svc-geo-1 { right: -110px; top: -110px; width: 360px; height: 360px; border-radius: 50%; border: 58px solid rgba(255,123,5,.14); }
.svc-geo-2 { left: 40%; bottom: -60px; border-left: 120px solid transparent; border-right: 120px solid transparent; border-bottom: 180px solid rgba(32,125,71,.2); }
.svc-hero-inner { position: relative; max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: center; }
.svc-breadcrumb { display: flex; gap: 8px; flex-wrap: wrap; font-size: 13px; color: rgba(255,255,255,.6); margin-bottom: 20px; }
.svc-breadcrumb a:hover { color: var(--or); }
.svc-hero-title { color: #fff; font-size: clamp(34px, 4.6vw, 58px); font-weight: 800; letter-spacing: -1px; }
.svc-hero-title span { display: block; margin-top: 14px; font-family: var(--fb); font-size: 18px; font-weight: 400; letter-spacing: 0; line-height: 1.55; color: rgba(255,255,255,.8); max-width: 540px; }
.svc-stat-card { background: #fff; color: var(--text); border-radius: var(--r-lg); padding: 32px; border-top: 5px solid var(--or); box-shadow: var(--shadow-lg); }
.svc-stat-val { font-family: var(--ff); font-size: 60px; font-weight: 800; color: var(--or); line-height: 1; }
.svc-stat-lbl { font-size: 16px; color: var(--nav); font-weight: 500; margin: 6px 0 20px; }
.svc-stat-meta { display: flex; flex-direction: column; gap: 6px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 13.5px; color: var(--muted); }
.svc-detail-grid { padding: 84px 0; }
.svc-detail-inner { display: grid; grid-template-columns: 1.2fr 1fr; gap: 56px; }
.svc-col-hd h2 { font-size: clamp(24px, 2.6vw, 32px); font-weight: 800; margin-bottom: 12px; }
.svc-col-hd p { color: var(--text-mid); margin-bottom: 26px; }
.svc-steps-list { display: flex; flex-direction: column; gap: 14px; }
.svc-step-item { display: flex; gap: 18px; padding: 20px; border: 1px solid var(--line); border-radius: var(--r-lg); }
.svc-step-num { width: 46px; height: 46px; flex-shrink: 0; border-radius: 50%; background: var(--or); color: #fff; display: grid; place-items: center; font-family: var(--ff); font-weight: 700; }
.svc-step-txt h3 { font-size: 17px; color: var(--nav); margin-bottom: 4px; }
.svc-step-txt p { font-size: 14px; color: var(--muted); }
.svc-cond-box { background: var(--bg-alt); border-radius: var(--r-lg); padding: 30px; }
.svc-cond-list { list-style: none; display: flex; flex-direction: column; gap: 12px; margin-top: 20px; }
.svc-cond-item { display: flex; gap: 12px; font-size: 15px; color: var(--text); background: #fff; padding: 14px 16px; border-radius: var(--r); }
.svc-cond-item::before { content: ""; width: 20px; height: 20px; flex-shrink: 0; border-radius: 50%; background: var(--gr) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/11px no-repeat; margin-top: 1px; }
.svc-cta { background: var(--or); color: #fff; padding: 64px 0; text-align: center; position: relative; overflow: hidden; }
.svc-cta::before { content: ""; position: absolute; left: -80px; top: -80px; width: 260px; height: 260px; border-radius: 50%; border: 44px solid rgba(255,255,255,.1); }
.svc-cta-inner { position: relative; }
.svc-cta h2 { color: #fff; font-size: clamp(26px, 3vw, 36px); font-weight: 800; margin-bottom: 8px; }
.svc-cta p { color: rgba(255,255,255,.88); margin-bottom: 26px; }
.svc-cta-btns { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
.svc-cta .btn-hp { background: var(--nav); }
.svc-cta .btn-hp:hover { background: var(--nav-dk); }
.svc-autres { padding: 72px 0; }
.svc-autres h2 { font-size: 26px; font-weight: 800; margin-bottom: 26px; }
.svc-autres-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.svc-autre-card { display: flex; align-items: center; gap: 14px; padding: 14px; border: 1px solid var(--line); border-radius: var(--r-lg); font-family: var(--ff); font-weight: 600; color: var(--nav); transition: border-color .2s, box-shadow .2s; }
.svc-autre-card:hover { border-color: var(--or); box-shadow: var(--shadow); }
.svc-autre-card span { flex: 1; }
.svc-autre-card svg { color: var(--or); }
.svc-autre-img { width: 64px; height: 64px; flex-shrink: 0; border-radius: var(--r); background-size: cover; background-position: center; }

/* ---------- 24. Chat ---------- */
.chat-btn { position: fixed; right: 24px; bottom: 24px; z-index: 300; width: 60px; height: 60px; border-radius: 50%; background: var(--or); color: #fff; display: grid; place-items: center; box-shadow: 0 10px 28px rgba(255,123,5,.45); transition: transform .25s, background .2s; }
.chat-btn:hover { transform: scale(1.06); }
.chat-btn .ic-close { display: none; }
.chat-btn.open { background: var(--nav); }
.chat-btn.open .ic-open { display: none; }
.chat-btn.open .ic-close { display: block; }
.chat-badge { position: absolute; top: -2px; right: -2px; width: 20px; height: 20px; border-radius: 50%; background: var(--gr); color: #fff; font-size: 11px; font-weight: 700; display: grid; place-items: center; border: 2px solid #fff; }
.chatbox { position: fixed; right: 24px; bottom: 96px; z-index: 300; width: 360px; max-width: calc(100vw - 32px); height: 500px; max-height: calc(100vh - 130px); background: #fff; border-radius: var(--r-lg); box-shadow: 0 20px 60px rgba(10,44,25,.25); display: flex; flex-direction: column; overflow: hidden; opacity: 0; visibility: hidden; transform: translateY(16px); transition: all .25s; }
.chatbox.visible { opacity: 1; visibility: visible; transform: none; }
.chat-hd { display: flex; align-items: center; gap: 12px; padding: 16px 18px; background: var(--nav); color: #fff; }
.chat-hd-av { width: 40px; height: 40px; border-radius: 50%; background: #fff; display: grid; place-items: center; overflow: hidden; }
.chat-hd-av img { width: 34px; }
.chat-hd strong { display: block; font-family: var(--ff); font-size: 15px; }
.chat-hd small { font-size: 12px; color: rgba(255,255,255,.7); display: flex; align-items: center; gap: 6px; }
.chat-hd small::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #3FD17A; }
.chat-msgs { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; background: var(--bg-alt); }
.msg { display: flex; flex-direction: column; max-width: 84%; }
.msg-bot { align-self: flex-start; }
.msg-user { align-self: flex-end; align-items: flex-end; }
.msg-bubble { padding: 10px 14px; border-radius: 14px; font-size: 14px; line-height: 1.5; }
.msg-bot .msg-bubble { background: #fff; border-bottom-left-radius: 4px; }
.msg-user .msg-bubble { background: var(--or); color: #fff; border-bottom-right-radius: 4px; }
.msg-time { font-size: 11px; color: var(--muted); margin-top: 3px; }
.chat-typing { display: flex; gap: 4px; }
.chat-typing span { width: 7px; height: 7px; border-radius: 50%; background: var(--muted); animation: typing 1.2s infinite; }
.chat-typing span:nth-child(2) { animation-delay: .15s; }
.chat-typing span:nth-child(3) { animation-delay: .3s; }
@keyframes typing { 0%, 60%, 100% { opacity: .3; transform: none; } 30% { opacity: 1; transform: translateY(-3px); } }
.chat-sugs { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 16px; background: var(--bg-alt); }
.chat-sugs button { font-size: 12.5px; padding: 6px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--line); color: var(--nav); }
.chat-sugs button:hover { border-color: var(--or); color: var(--or); }
.chat-in { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--line); }
.chat-in input { flex: 1; padding: 10px 14px; border: 1.5px solid var(--line); border-radius: 999px; font-size: 14px; }
.chat-in input:focus { outline: none; border-color: var(--or); }
.chat-in button { width: 42px; height: 42px; border-radius: 50%; background: var(--or); color: #fff; display: grid; place-items: center; }

/* ---------- 25. Responsive ---------- */
@media (max-width: 1180px) {
  .h-phone { display: none; }
  .main-nav > li > a { padding: 0 10px; font-size: 13.5px; }
  .footer-in { grid-template-columns: 1fr 1fr 1fr; }
  .f-brand { grid-column: span 3; }
}
@media (max-width: 1024px) {
  :root { --gutter: 28px; }
  .tb-left { display: none; }
  .header-wrap { height: 70px; padding: 0 20px; }
  .logo-img { height: 48px; }
  .mob-btn { display: flex; }
  .header-nav { justify-content: flex-end; }
  .main-nav {
    position: fixed; top: 70px; left: 0; right: 0; bottom: 0; margin: 0;
    flex-direction: column; align-items: stretch; gap: 0; background: #fff;
    padding: 12px 20px 40px; overflow-y: auto;
    transform: translateX(100%); transition: transform .3s;
  }
  .main-nav.open { transform: none; }
  .main-nav > li > a { height: auto; padding: 14px 4px; border-bottom: 1px solid var(--line); justify-content: space-between; font-size: 15px; }
    .dropdown { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 6px 10px; display: none; }
  .main-nav > li.sub-open .dropdown { display: block; }
  .main-nav > li:hover .dropdown { opacity: 1; }
  .svc-photo-grid { grid-template-columns: repeat(2, 1fr); }
  .about-hd, .about-grid, .process-hd, .ap-grid, .contact-page-inner, .svc-hero-inner, .svc-detail-inner, .as-body-inner { grid-template-columns: 1fr; gap: 36px; }
  .sim-right { grid-template-columns: 1fr; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); row-gap: 32px; }
  .stat-item:nth-child(3) { border-left: 0; }
  .blog-grid, .dl-grid, .feat-grid, .partners-grid, .svc-autres-grid { grid-template-columns: repeat(2, 1fr); }
  .process-steps { grid-template-columns: repeat(2, 1fr); }
  .cm-inner { grid-template-columns: 1fr; }
  .actu-grid { grid-template-columns: 1fr; }
  .actu-sidebar, .as-col-media, .sb-card { position: static; }
  .arr-btns { right: 20px; bottom: 28px; }
  .sl-ctr { display: none; }
  .hero-socials { display: none; }
}
@media (max-width: 700px) {
  :root { --gutter: 20px; }
  body { font-size: 14.5px; }
  .topbar { display: none; }
  .btn-quote { display: none; }
  .hero { min-height: 600px; }
  .slide-title { letter-spacing: -.8px; }
  .slide-sub { font-size: 15.5px; }
  .sl-dots { left: var(--gutter); transform: none; bottom: 40px; }
  .fi-item { font-size: 12.5px; }
  .svc-photo-grid, .blog-grid, .dl-grid, .feat-grid, .partners-grid, .svc-autres-grid, .process-steps, .videos-grid, .ap-values, .gouv-cadre-items, .cm-contact-cols, .cf-row { grid-template-columns: 1fr; }
  .photos-grid { grid-template-columns: 1fr 1fr; }
  .photo-item:nth-child(6n+1) { grid-row: auto; aspect-ratio: 4/3; }
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .stat-item { padding: 0 8px; }
  .stat-num { font-size: 32px; }
  .sim-left-panel, .sim-form-panel, .contact-form-card, .cm-left { padding: 28px 22px; }
  .about-imgs { padding: 0 30px 40px 0; }
  .ai-badge { left: 0; bottom: 50px; padding: 12px 16px; }
  .ai-num { font-size: 26px; }
  .actu-card { grid-template-columns: 1fr; }
  .actu-img { min-height: 200px; }
  .apt-track { left: 10px; }
  .apt-item { grid-template-columns: 22px 1fr; column-gap: 10px; }
  .apt-left { grid-column: 2; }
  .apt-year { text-align: left; padding-top: 0; margin-bottom: 6px; }
  .apt-dot { grid-row: 1 / span 2; grid-column: 1; margin: 2px 0 0; }
  .apt-right { grid-column: 2; }
  .org-branch { grid-template-columns: 1fr; gap: 16px; padding-top: 0; }
  .org-branch-line { display: none; }
  .dist-card { grid-template-columns: 1fr; }
  .dist-card-side { flex-direction: row; justify-content: flex-start; padding: 18px 24px; }
  .as-postnav { grid-template-columns: 1fr; }
  .footer-in { grid-template-columns: 1fr 1fr; padding: 56px 20px 36px; }
  .f-brand { grid-column: span 2; }
  .fb-in { flex-direction: column; text-align: center; }
  .tk-card { flex-basis: 300px; }
  .page-hero { padding: 60px 0 56px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
