*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

/* ══════════════════════════════
   BRAND COLORS — palette élargie V3
   Chartes AQM (navy / teal / mustard / bordeaux) + extensions
══════════════════════════════ */
:root {
  /* Chaudes */
  --bordeaux:   #8B1A34;
  --magenta:    #D62B66;
  --mauve:      #86555F;
  --coral:      #E8825D;
  --mustard:    #F2C440;
  --cream:      #FFF6BB;
  /* Froides */
  --navy:       #1F2A4D;
  --royal:      #3151A0;
  --teal:       #1E6566;
  --teal-bright:#1FBCBC;
  --turquoise:  #28DCC8;
  --mint:       #CFF0E6;

  --olive:      #3D5C38;
  --radius:     14px;
  --radius-lg:  28px;
  --max:        1100px;
}

/* ══════════════════════════════
   LIGHT — fond crème chaud
══════════════════════════════ */
[data-theme="light"] {
  --bg:         #FBF4E2;
  --bg-alt:     #F6E9CB;
  --bg-surf:    #FFF6E0;
  --ink:        #2A1A12;
  --ink-2:      #4D2F25;
  --ink-3:      #8E6A5A;
  --border:     #EAD9B6;
  --border-2:   #D6BF92;
  --nav-bg:     rgba(251,244,226,0.88);
  --hero-wm:    #F0E1B8;
  --ticker-bg:  #FBF4E2;
  --pill-bg:    #FFF6E0;
  --tog-thumb:  var(--bordeaux);
  --accent:     var(--bordeaux);
  --accent-2:   var(--coral);
  --accent-3:   var(--teal);
}

/* ══════════════════════════════
   DARK — navy profond
══════════════════════════════ */
[data-theme="dark"] {
  --bg:         #131D38;
  --bg-alt:     #182549;
  --bg-surf:    #1F2D58;
  --ink:        #FFF6E0;
  --ink-2:      #E8D5A8;
  --ink-3:      #A89B7A;
  --border:     #2A3A6B;
  --border-2:   #3D5089;
  --nav-bg:     rgba(19,29,56,0.92);
  --hero-wm:    #1A2543;
  --ticker-bg:  #131D38;
  --pill-bg:    #1F2D58;
  --tog-thumb:  var(--mustard);
  --accent:     var(--turquoise);
  --accent-2:   var(--mustard);
  --accent-3:   var(--mint);
}

/* ══════════════════════════════
   BASE
══════════════════════════════ */
body {
  font-family: 'Inter', system-ui, sans-serif;
  background: var(--bg);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  transition: background .4s, color .4s;
}
h1, h2, h3 {
  font-family: 'Fraunces', Georgia, serif;
  font-variation-settings: "opsz" 144, "SOFT" 50;
  letter-spacing: -.015em;
}
h4 {
  font-family: 'Inter', system-ui, sans-serif;
  font-variation-settings: "opsz" 144, "SOFT" 50;
  letter-spacing: -.015em;
}
.container { max-width: var(--max); margin: 0 auto; padding: 0 2rem; }

/* texture sous-jacente très douce (light only) */
[data-theme="light"] body {
  background-image:
    radial-gradient(circle at 80% 20%, rgba(232,130,93,.10), transparent 45%),
    radial-gradient(circle at 12% 78%, rgba(30,101,102,.09), transparent 50%),
    radial-gradient(circle at 50% 50%, rgba(214,43,102,.05), transparent 60%);
  background-attachment: fixed;
}
[data-theme="dark"] body {
  background-image:
    radial-gradient(circle at 78% 18%, rgba(31,188,188,.12), transparent 45%),
    radial-gradient(circle at 18% 82%, rgba(242,196,64,.08), transparent 50%);
  background-attachment: fixed;
}

/* ══════════════════════════════
   THEME TOGGLE
══════════════════════════════ */
.tog-wrap { display: flex; align-items: center; gap: .55rem; }
.tog-label {
  font-size: .62rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--ink-3);
  transition: color .3s; user-select: none;
}
.tog {
  position: relative; width: 42px; height: 24px;
  border-radius: 12px;
  border: 1.5px solid var(--border-2);
  background: var(--bg-alt);
  cursor: pointer;
  transition: background .35s, border-color .35s;
  flex-shrink: 0;
}
.tog::after {
  content: '';
  position: absolute; top: 3px; left: 3px;
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--tog-thumb);
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), background .3s;
}
[data-theme="dark"] .tog::after { transform: translateX(18px); }

/* ══════════════════════════════
   LANG SWITCHER
══════════════════════════════ */
.lang-wrap {
  display: inline-flex; align-items: center;
  border: 1.5px solid var(--border-2);
  border-radius: 999px; overflow: hidden;
  background: var(--bg-alt);
}
.lang-btn {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: .7rem; font-weight: 700; letter-spacing: .08em;
  padding: .3rem .65rem; line-height: 1;
  color: var(--ink-3); text-decoration: none;
  transition: background .25s, color .25s;
}
.lang-btn:hover { color: var(--ink); }
.lang-btn.active {
  background: var(--accent); color: #fff;
}

/* ══════════════════════════════
   NAV
══════════════════════════════ */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  background: var(--nav-bg);
  backdrop-filter: blur(18px) saturate(160%);
  border-bottom: 1px solid var(--border);
  transition: background .4s, border-color .4s;
}
.nav-inner {
  max-width: var(--max); margin: 0 auto; padding: 0 2rem;
  height: 64px; display: flex; align-items: center; gap: 1.5rem;
}
.logo {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 900; font-size: 1.35rem; letter-spacing: -.03em;
  color: var(--ink); text-decoration: none;
  display: flex; align-items: center; gap: 6px; flex-shrink: 0;
  transition: color .3s;
}
.logo-dots { display: flex; gap: 3px; }
.logo-dot  { width: 6px; height: 6px; border-radius: 50%; }
.logo-img { display: block; height: 55px; width: auto; }
.footer-logo { display: inline-flex; align-self: flex-start; }
.footer-logo .logo-img { height: 106px; }
/* Disque clair derrière le logo en mode sombre — appliqué au wrapper .logo
   (l'<img> n'est PAS clippé car aucun overflow: hidden, donc taille et
   position de l'image sont strictement identiques entre dark et light). */




.nav-links { display: flex; align-items: center; gap: 2.5rem; flex: 1; justify-content: center; }
.nav-links > a,
.nav-links .nav-dropdown-toggle {
  font-size: .78rem; font-weight: 600; letter-spacing: .06em;
  text-transform: uppercase; color: var(--ink-2);
  text-decoration: none; transition: color .2s;
  white-space: nowrap;
}
.nav-links > a:hover,
.nav-links .nav-dropdown-toggle:hover { color: var(--ink); }

/* dropdown desktop */
.nav-dropdown { position: relative; display: inline-flex; align-items: center; }
.nav-dropdown-toggle { display: inline-flex; align-items: center; gap: .35rem; cursor: pointer; }
.nav-caret { font-size: .65rem; line-height: 1; transition: transform .2s; }
.nav-dropdown:hover .nav-caret,
.nav-dropdown:focus-within .nav-caret { transform: rotate(180deg); }

.nav-dropdown-menu {
  position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(6px);
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  min-width: 240px;
  padding: .4rem 0;
  display: flex; flex-direction: column;
  box-shadow: 0 14px 38px rgba(0,0,0,.12);
  opacity: 0; visibility: hidden;
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
  z-index: 110;
}
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu {
  opacity: 1; visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.nav-dropdown-menu a {
  font-size: .82rem; font-weight: 500; letter-spacing: 0;
  text-transform: none; color: var(--ink-2);
  padding: .65rem 1.2rem; text-decoration: none;
  transition: background .15s, color .15s;
}
.nav-dropdown-menu a:hover { background: var(--bg-alt); color: var(--ink); }

.nav-right { display: flex; align-items: center; gap: 1rem; margin-left: auto; padding-left: 2.5rem; }

.nav-cta {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 700; font-size: .78rem; letter-spacing: .06em;
  text-transform: uppercase; text-decoration: none;
  padding: .45rem 1.1rem;
  border: 1.5px solid var(--border-2); color: var(--ink);
  border-radius: var(--radius);
  transition: background .2s, color .2s, border-color .2s;
  white-space: nowrap;
}
.nav-cta:hover { background: var(--ink); color: var(--bg); border-color: var(--ink); }

/* burger */
.burger { display: none; flex-direction: column; gap: 5px; cursor: pointer; background: none; border: none; padding: 4px; }
.burger span { display: block; width: 22px; height: 1.5px; background: var(--ink); transition: transform .25s, opacity .25s, background .3s; }
.mobile-menu {
  display: none; flex-direction: column;
  border-top: 1px solid var(--border); background: var(--bg);
  padding: 1rem 2rem 1.5rem; transition: background .4s;
}
.mobile-menu.open { display: flex; }
.mobile-menu a {
  padding: .75rem 0; font-weight: 600; font-size: .9rem;
  color: var(--ink); text-decoration: none;
  border-bottom: 1px solid var(--border); transition: color .2s;
}
.mobile-menu a:last-of-type { border-bottom: none; }
.mobile-menu a.mob-parent { font-weight: 700; }
.mobile-menu a.mob-child {
  padding-left: 1rem; font-size: .82rem; font-weight: 500; color: var(--ink-2);
}
.mob-tog-row { padding: .75rem 0; display: flex; align-items: center; gap: .75rem; border-bottom: 1px solid var(--border); }

/* ══════════════════════════════
   PAGES SECTION (pôles & sous-pages)
══════════════════════════════ */
.aqm-page-hero {
  padding: 10rem 0 5rem;
  background: var(--bg-alt);
  text-align: center;
  position: relative; overflow: hidden;
}
.aqm-page-hero::before,
.aqm-page-hero::after {
  content: ''; position: absolute; border-radius: 50%;
  filter: blur(60px); opacity: .55; pointer-events: none;
}
.aqm-page-hero::before { width: 320px; height: 320px; left: -8%; top: -10%; background: var(--coral); }
.aqm-page-hero::after  { width: 280px; height: 280px; right: -6%; bottom: -12%; background: var(--teal-bright); }
[data-theme="dark"] .aqm-page-hero::before { background: var(--royal); opacity: .4; }
[data-theme="dark"] .aqm-page-hero::after  { background: var(--mustard); opacity: .25; }
.aqm-page-hero > * { position: relative; z-index: 2; }
.aqm-page-hero .section-label {
  display: inline-block; margin-bottom: .75rem;
  font-size: .72rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--accent);
}
.aqm-page-hero .section-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 900; font-size: clamp(2rem, 4.5vw, 3.4rem);
  letter-spacing: -.02em; line-height: 1.05; color: var(--ink);
  margin: 0 auto; max-width: 22ch;
}
.aqm-page-hero .section-sub {
  margin: 1rem auto 0; max-width: 60ch;
  color: var(--ink-2); font-size: 1rem; line-height: 1.55;
}
.aqm-page-body { padding: 4rem 0 6rem; color: var(--ink); }
.aqm-page-body p,
.aqm-page-body li { font-size: 1rem; line-height: 1.7; color: var(--ink-2); margin-bottom: 1rem; }
.aqm-page-body h2 {
  font-family: 'Fraunces', Georgia, serif; font-weight: 900;
  font-size: 1.6rem; letter-spacing: -.01em; color: var(--ink);
  margin: 2.2rem 0 1rem;
}
.aqm-page-body h3 {
  font-weight: 700; font-size: 1.2rem; color: var(--ink);
  margin: 1.5rem 0 .75rem;
}
.aqm-page-body a { color: var(--teal); text-decoration: underline; }

/* ══════════════════════════════
   HERO — CITYSCAPE
══════════════════════════════ */
#hero {
  min-height: 100vh;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 0 0 0; position: relative; overflow: hidden;
  background: var(--bg); transition: background .4s;
}

/* Sky gradient */
.hero-sky {
  position: absolute; inset: 0; pointer-events: none;
  transition: opacity .4s;
}
[data-theme="light"] .hero-sky {
  background:
    radial-gradient(circle at 78% 20%, rgba(232,130,93,.45), transparent 35%),
    radial-gradient(circle at 22% 70%, rgba(31,188,188,.30), transparent 40%),
    radial-gradient(circle at 60% 90%, rgba(214,43,102,.18), transparent 45%),
    linear-gradient(180deg, #FFE0B8 0%, #FBE7C8 35%, var(--bg) 80%);
}
[data-theme="dark"] .hero-sky {
  background:
    radial-gradient(circle at 78% 20%, rgba(31,188,188,.35), transparent 40%),
    radial-gradient(circle at 22% 75%, rgba(242,196,64,.22), transparent 45%),
    linear-gradient(180deg, #0E1530 0%, #131D38 50%, var(--bg) 100%);
}

/* Blobs organiques flottants — remplace l'esprit "cityscape" */
.hero-blob {
  position: absolute; border-radius: 50%; pointer-events: none;
  filter: blur(60px); opacity: .55;
  animation: blob-drift 22s ease-in-out infinite alternate;
}
.hero-blob.b1 { width: 420px; height: 420px; left: -8%;  top: 10%; background: var(--coral);     animation-delay: 0s; }
.hero-blob.b2 { width: 360px; height: 360px; right: -5%; top: 35%; background: var(--teal-bright); animation-delay: -8s; }
.hero-blob.b3 { width: 300px; height: 300px; left: 30%;  bottom: -10%; background: var(--magenta); animation-delay: -16s; opacity: .35; }
[data-theme="dark"] .hero-blob.b1 { background: var(--royal); opacity: .45; }
[data-theme="dark"] .hero-blob.b2 { background: var(--turquoise); opacity: .40; }
[data-theme="dark"] .hero-blob.b3 { background: var(--mustard); opacity: .25; }
@keyframes blob-drift {
  0%   { transform: translate(0, 0)        scale(1); }
  50%  { transform: translate(40px, -30px) scale(1.08); }
  100% { transform: translate(-30px, 20px) scale(.94); }
}

/* Stars (dark only) */
.hero-stars {
  position: absolute; inset: 0; pointer-events: none;
  opacity: 0; transition: opacity .6s;
}
[data-theme="dark"] .hero-stars { opacity: 1; }
.star {
  position: absolute; border-radius: 50%;
  background: #fff; animation: twinkle var(--d,3s) ease-in-out infinite var(--delay,0s);
}
@keyframes twinkle { 0%,100%{opacity:.15} 50%{opacity:.9} }

/* Sun / Moon */
.hero-sun {
  position: absolute; top: 12%; right: 15%;
  width: 60px; height: 60px; border-radius: 50%;
  transition: background .6s, box-shadow .6s, transform .6s;
}
[data-theme="light"] .hero-sun {
  background: #FFD96A;
  box-shadow: 0 0 0 12px rgba(255,217,106,.18), 0 0 60px rgba(255,200,50,.35);
}
[data-theme="dark"] .hero-sun {
  background: #E8E0CC;
  box-shadow: 0 0 0 8px rgba(232,224,204,.1), 0 0 40px rgba(232,224,204,.15);
  /* crescent via pseudo */
}

/* Clouds (light only) */
.hero-cloud {
  position: absolute; pointer-events: none;
  border-radius: 50px;
  background: rgba(255,255,255,.75);
  filter: blur(6px);
  transition: opacity .6s;
  animation: cloud-drift var(--cd,60s) linear infinite;
}
[data-theme="dark"] .hero-cloud { opacity: 0; }
@keyframes cloud-drift { from{transform:translateX(0)} to{transform:translateX(120px)} }

/* SVG cityscape canvas */
#cityscape {
  position: absolute; bottom: 0; left: 0; right: 0;
  width: 100%; pointer-events: none;
  transition: opacity .4s;
}

/* Hero content overlay */
.hero-content {
  position: relative; z-index: 10;
  padding: 6rem 2rem 3.5rem;
  max-width: var(--max); margin: 0 auto; width: 100%;
}

.hero-org-name {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 800;
  font-size: clamp(2rem, 4vw, 3rem);
  letter-spacing: -.015em;
  line-height: 1.1;
  color: var(--accent);
  margin: 0 0 1.2rem;
  animation: fade-up .7s both;
  text-wrap: balance;
}
.hero-badge {
  display: inline-flex; align-items: center; gap: .6rem;
  font-size: .85rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  color: var(--accent-2, var(--accent));
  margin-bottom: 1.8rem;
  padding: 6px 14px;
  background: color-mix(in srgb, var(--accent) 10%, transparent);
  border-radius: 4px;
  animation: fade-up .7s .2s both; transition: color .3s, background .3s;
}
.hero-badge-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); flex-shrink: 0; animation: pulse-dot 2s ease-in-out infinite; }
@keyframes pulse-dot { 0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(1.5);opacity:.6} }

.hero-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 900; font-size: clamp(2.6rem,6vw,5.2rem);
  line-height: 1.0; letter-spacing: -.03em; color: var(--ink);
  max-width: 720px;
  animation: fade-up .9s .35s both; transition: color .3s;
}
.hero-title em {
  font-style: italic; color: var(--accent); transition: color .3s;
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
[data-theme="dark"] .hero-title em { color: var(--mustard); }

.hero-sub {
  margin-top: 1.5rem; max-width: 480px;
  font-size: .9rem; line-height: 1.8; color: var(--ink-2);
  animation: fade-up .9s .5s both; transition: color .3s;
}

.hero-actions {
  margin-top: 2rem; display: flex; flex-wrap: wrap; gap: .75rem;
  animation: fade-up .9s .65s both;
}

/* colour stripe below content, above skyline */
.hero-stripe {
  position: relative; z-index: 5;
  display: flex; height: 4px; width: 100%;
  animation: fade-up .5s .8s both;
}
.hero-stripe span { flex: 1; }

@keyframes fade-up { from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:none} }

/* building entrance animations */
@keyframes bld-rise {
  from { transform: translateY(100%); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}
.bld { animation: bld-rise .9s cubic-bezier(.16,1,.3,1) both; }
.bld-d1 { animation-delay: .5s; }
.bld-d2 { animation-delay: .65s; }
.bld-d3 { animation-delay: .55s; }
.bld-d4 { animation-delay: .7s; }
.bld-d5 { animation-delay: .6s; }
.bld-d6 { animation-delay: .75s; }

/* window flicker */
@keyframes win-flicker { 0%,100%{opacity:var(--wo,.7)} 50%{opacity:.2} }
.win-flicker { animation: win-flicker var(--wfd,4s) ease-in-out infinite var(--wfdl,0s); }

/* scroll cue */
.scroll-cue {
  position: absolute; bottom: calc(1.5rem + 4px); left: 50%; transform: translateX(-50%);
  z-index: 11; display: flex; flex-direction: column; align-items: center; gap: .3rem;
  color: var(--ink-3); font-size: .6rem; letter-spacing: .12em; text-transform: uppercase;
  animation: fade-up .7s 1.4s both; transition: color .3s;
}
.scroll-bar { width: 1px; height: 32px; background: var(--border); position: relative; overflow: hidden; }
.scroll-bar::after {
  content: ''; position: absolute; top: -100%; left: 0; width: 100%; height: 100%;
  background: var(--teal);
  animation: scroll-drop 2s ease-in-out infinite;
}
@keyframes scroll-drop { 0%{top:-100%} 100%{top:100%} }

/* ══════════════════════════════
   BUTTONS
══════════════════════════════ */
.btn {
  font-family: 'Inter', system-ui, sans-serif;
  font-weight: 600; font-size: .82rem; letter-spacing: .02em;
  text-transform: none; text-decoration: none;
  padding: .85rem 2rem; border-radius: 999px;
  display: inline-flex; align-items: center; gap: .5rem;
  cursor: pointer; border: none;
  transition: transform .2s, background .2s, color .2s, border-color .2s, box-shadow .25s;
}
.btn:hover { transform: translateY(-2px); }
.btn-solid { background: var(--accent); color: #fff; box-shadow: 0 6px 22px -8px var(--accent); }
.btn-solid:hover { box-shadow: 0 10px 28px -8px var(--accent); }
.btn-ghost { background: transparent; color: var(--ink); border: 1.5px solid var(--border-2); }
.btn-ghost:hover { border-color: var(--accent); color: var(--accent); }

/* Vague organique en bas du hero */
.hero-wave { position: absolute; bottom: -1px; left: 0; right: 0; width: 100%; height: 140px; pointer-events: none; z-index: 4; }

/* ══════════════════════════════
   SECTIONS SHARED
══════════════════════════════ */
section { padding: 7rem 0; transition: background .4s; }
.section-label {
  font-size: .72rem; font-weight: 700; letter-spacing: .18em;
  text-transform: uppercase; color: var(--accent);
  display: block; margin-bottom: 1rem; transition: color .3s;
}
.section-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 900; font-size: clamp(1.8rem,3.5vw,2.6rem);
  letter-spacing: -.02em; line-height: 1.1; color: var(--ink); transition: color .3s;
}
.section-sub {
  margin: .85rem auto 0;
  font-size: .95rem;
  line-height: 1.65;
  color: var(--ink-2);
  max-width: 580px;
  text-align: center;
  text-wrap: balance;
  transition: color .3s;
}
/* En contexte aligné à gauche (about, certaines sections), respecte l'alignement */
.about-grid .section-sub,
.about .section-sub {
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}

/* ══════════════════════════════
   STATS
══════════════════════════════ */
#stats { padding: 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); transition: border-color .4s; }
.stats-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.stat-cell {
  padding: 2.5rem 2rem; border-right: 1px solid var(--border);
  text-align: center; background: var(--bg-surf); transition: background .4s, border-color .4s;
}
.stat-cell:last-child { border-right: none; }
.stat-n { font-family: 'Fraunces', Georgia, serif; font-weight: 900; font-size: 2.8rem; letter-spacing: -.03em; line-height: 1; }
.stat-l { font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); margin-top: .4rem; transition: color .3s; }

/* ══════════════════════════════
   ACTIONS
══════════════════════════════ */
#actions { background: var(--bg-alt); }
.actions-header {
  margin: 0 auto 3.5rem;
  max-width: 720px;
  text-align: center;
}
.actions-grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem; background: transparent;
  border: none; border-radius: 0; overflow: visible;
  transition: background .4s;
}
.action-cell {
  background: var(--bg-surf); padding: 2.25rem 1.75rem;
  display: flex; flex-direction: column; transition: background .25s, transform .3s, box-shadow .3s;
  border-radius: var(--radius-lg);
  box-shadow: 0 6px 24px -16px rgba(43,26,18,.25);
  min-width: 0;                     /* empêche le grid item de dépasser sa colonne */
  overflow: hidden;
  word-wrap: break-word;
  overflow-wrap: anywhere;          /* coupe les mots trop longs proprement */
  hyphens: auto;
}
.action-cell h3,
.action-cell p {
  word-wrap: break-word;
  overflow-wrap: anywhere;
  min-width: 0;
}
[data-theme="dark"] .action-cell { box-shadow: 0 6px 24px -16px rgba(0,0,0,.55); }
.action-cell:hover { background: var(--bg); box-shadow: 0 14px 36px -18px rgba(43,26,18,.35); }
.action-accent { width: 28px; height: 3px; border-radius: 2px; margin-bottom: 1.5rem; }
.action-cell h3 { font-family: 'Fraunces', Georgia, serif; font-weight: 800; font-size: 1.05rem; letter-spacing: -.01em; color: var(--ink); margin-bottom: .6rem; transition: color .3s; }
.action-cell p  { font-size: .82rem; line-height: 1.75; color: var(--ink-2); flex: 1; transition: color .3s; }
.action-tag {
  margin-top: 1.5rem; display: inline-block;
  font-size: .63rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; padding: .25rem .6rem; border-radius: 2px;
}

/* ══════════════════════════════
   TICKER
══════════════════════════════ */
#partners {
  padding: 2.5rem 0;
  border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
  overflow: hidden; background: var(--bg); transition: background .4s, border-color .4s;
}
.ticker-label {
  text-align: center; font-size: .72rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 1.5rem; transition: color .3s;
}
.ticker-outer { position: relative; overflow: hidden; }
.ticker-fade-l,.ticker-fade-r {
  position: absolute; top: 0; bottom: 0; width: 100px; z-index: 2; pointer-events: none;
}
.ticker-fade-l { left: 0;  background: linear-gradient(to right, var(--ticker-bg), transparent); }
.ticker-fade-r { right: 0; background: linear-gradient(to left,  var(--ticker-bg), transparent); }
.ticker-track { display: flex; gap: 1rem; width: max-content; animation: ticker 90s linear infinite; }
.ticker-track:hover { animation-play-state: paused; }
@keyframes ticker { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.t-pill {
  display: inline-flex; align-items: center; gap: .6rem;
  border: 1px solid var(--border); border-radius: var(--radius);
  padding: .75rem 1.25rem; white-space: nowrap; flex-shrink: 0;
  background: var(--pill-bg); transition: background .4s, border-color .25s, transform .25s, box-shadow .25s;
  height: 110px;
}
.t-pill:hover { border-color: var(--accent); transform: translateY(-2px); box-shadow: 0 10px 26px -16px rgba(43,26,18,.35); }
.t-pill img {
  display: block; height: 80px; width: auto; max-width: 200px;
  object-fit: contain;
}
.t-ico  { font-size: 1rem; line-height: 1; }
.t-name { font-size: .75rem; font-weight: 600; color: var(--ink); transition: color .3s; }

/* ══════════════════════════════
   ABOUT
══════════════════════════════ */
#about { background: var(--bg); }
/* En-tête centré "Notre identité / Deux volets…" — uniquement le reveal qui précède la grille */
#about > .container > .reveal:first-child {
  max-width: 720px;
  margin: 0 auto 2rem;
  text-align: center;
}
#about > .container > .reveal:first-child .section-sub {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.about-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem;
  background: transparent; border: none;
  border-radius: 0; overflow: visible; margin-top: 4rem;
  transition: background .4s;
}
.volet {
  background: var(--bg-surf); padding: 3rem; transition: background .4s, transform .3s, box-shadow .3s;
  border-radius: var(--radius-lg);
  box-shadow: 0 8px 28px -18px rgba(43,26,18,.25);
}
[data-theme="dark"] .volet { box-shadow: 0 8px 28px -18px rgba(0,0,0,.55); }
.volet:first-child { border-right: none; }
.volet-tag { font-size: .63rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 1.25rem; display: block; transition: color .3s; }
.volet h3 { font-family: 'Fraunces', Georgia, serif; font-weight: 800; font-size: 1.4rem; letter-spacing: -.01em; margin-bottom: 1rem; color: var(--ink); transition: color .3s; }
.volet p  { font-size: .875rem; line-height: 1.8; color: var(--ink-2); margin-bottom: 1.5rem; transition: color .3s; }
.volet ul { list-style: none; display: flex; flex-direction: column; gap: .5rem; }
.volet ul li { font-size: .8rem; color: var(--ink-2); font-weight: 500; display: flex; align-items: center; gap: .6rem; transition: color .3s; }
.volet ul li::before { content: ''; display: block; width: 16px; height: 1px; background: var(--border-2); flex-shrink: 0; }

.quote-strip {
  margin-top: 4rem; padding: 3rem;
  border: 1px solid var(--border); border-radius: 8px;
  background: var(--bg-surf); display: flex; align-items: center; gap: 3rem;
  transition: background .4s, border-color .4s;
}
.quote-mark { font-family: 'Fraunces', Georgia, serif; font-size: 6rem; line-height: 1; color: var(--border-2); font-weight: 900; flex-shrink: 0; transition: color .3s; }
.quote-text { font-family: 'Fraunces', Georgia, serif; font-weight: 700; font-size: 1.3rem; letter-spacing: -.01em; color: var(--ink); line-height: 1.4; transition: color .3s; }
.quote-author { font-size: .75rem; color: var(--ink-2); margin-top: .5rem; transition: color .3s; }

/* ══════════════════════════════
   JOIN
══════════════════════════════ */
#join { background: var(--bg-alt); }
/* En-tête centré "Impliquez-vous / Nous Rejoindre" */
#join > .container > .reveal:first-child {
  max-width: 720px;
  margin: 0 auto 3rem;
  text-align: center;
}
#join > .container > .reveal:first-child .section-sub {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.join-grid {
  display: grid; grid-template-columns: repeat(3,1fr);
  gap: 1.5rem; background: transparent;
  border: none; border-radius: 0;
  overflow: visible; margin-top: 3.5rem;
  transition: background .4s;
}
.join-cell {
  background: var(--bg-surf); padding: 2.5rem; display: flex; flex-direction: column;
  transition: background .25s, transform .3s, box-shadow .3s;
  border-radius: var(--radius-lg);
  box-shadow: 0 8px 28px -18px rgba(43,26,18,.25);
}
[data-theme="dark"] .join-cell { box-shadow: 0 8px 28px -18px rgba(0,0,0,.55); }
.join-cell:hover { background: var(--bg); box-shadow: 0 16px 36px -18px rgba(43,26,18,.35); }
.join-num { font-family: 'Fraunces', Georgia, serif; font-weight: 900; font-size: 2.5rem; color: var(--border-2); letter-spacing: -.03em; margin-bottom: 1rem; transition: color .3s; }
.join-cell h3 { font-family: 'Fraunces', Georgia, serif; font-weight: 800; font-size: 1.1rem; letter-spacing: -.01em; margin-bottom: .6rem; color: var(--ink); transition: color .3s; }
.join-cell p  { font-size: .82rem; line-height: 1.75; color: var(--ink-2); flex: 1; transition: color .3s; }
.join-cell .btn { margin-top: 1.75rem; align-self: flex-start; }

.contact-strip {
  background: var(--ink); /* Noir en mode clair, Crème en mode sombre */
  border-radius: 0 0 7px 7px;
  padding: 2rem 2.5rem;
  display: flex; align-items: center; justify-content: space-between; gap: 2rem;
  flex-wrap: wrap; transition: background .4s;
}

/* 1. On remplace le blanc transparent par le fond inversé avec opacité */
.contact-strip p { 
  color: var(--bg); 
  opacity: 0.7; 
  font-size: .82rem; 
}

/* 2. On remplace le blanc en dur (#fff) par le fond inversé */
.contact-strip strong { 
  color: var(--bg); 
  font-size: .95rem; 
  display: block; 
  margin-bottom: .2rem; 
}

.contact-strip a.btn { 
  background: var(--bg); 
  color: var(--ink); 
  font-size: .75rem; 
  transition: background .4s, color .4s; 
}

.contact-strip a.btn:hover { 
  opacity: .9; 
}
/* ══════════════════════════════
   FOOTER
══════════════════════════════ */
footer { border-top: 1px solid var(--border); padding: 4rem 0 2rem; background: var(--bg); transition: background .4s, border-color .4s; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 3rem; margin-bottom: 3rem; }
.footer-brand p { font-size: .8rem; line-height: 1.75; color: var(--ink-2); margin-top: .75rem; transition: color .3s; }
.footer-col h4  { font-size: .93rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #8B1A34; margin-bottom: 1rem; transition: color .3s; }
.footer-col a, .footer-col address { display: block; font-size: .8rem; color: var(--ink-2); text-decoration: none; margin-bottom: .5rem; font-style: normal; line-height: 1.7; transition: color .2s; }
.footer-col a:hover { color: var(--ink); }
.footer-nav .foot-parent { font-weight: 700; color: var(--ink); margin-top: .35rem; }
.footer-nav .foot-parent:first-of-type { margin-top: 0; }
.footer-nav .foot-child  { padding-left: .75rem; font-size: .76rem; color: var(--ink-2); margin-bottom: .25rem; }
.footer-bottom { border-top: 1px solid var(--border); padding-top: 1.5rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .75rem; transition: border-color .4s; }
.footer-bottom p, .footer-bottom a { font-size: .7rem; color: var(--ink-3); text-decoration: none; transition: color .2s; }
.footer-bottom a:hover { color: var(--ink-2); }
.footer-bottom-links { display: flex; gap: 1.5rem; }
.socials { display: flex; gap: .5rem; margin-top: 1rem; }
.social-icon { width: 32px; height: 32px; border: 1px solid var(--border); border-radius: var(--radius); display: flex; align-items: center; justify-content: center; color: var(--ink-2); text-decoration: none; transition: border-color .2s, color .2s, background .4s; }
.social-icon:hover { border-color: var(--border-2); color: var(--ink); }

/* ══════════════════════════════
   REVEAL + MICRO-ANIMATIONS
══════════════════════════════ */
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .75s cubic-bezier(.16,1,.3,1), transform .75s cubic-bezier(.16,1,.3,1); }
.reveal.on { opacity: 1; transform: none; }
.d1{transition-delay:.1s} .d2{transition-delay:.2s} .d3{transition-delay:.3s} .d4{transition-delay:.4s}

/* stat pop */
.stat-cell.on .stat-n { animation: pop .5s cubic-bezier(.34,1.56,.64,1) both; }
@keyframes pop { from{transform:scale(.8)} to{transform:scale(1)} }

/* action accent bar grows on hover */
.action-accent { transition: width .35s cubic-bezier(.16,1,.3,1); }
.action-cell:hover .action-accent { width: 56px; }

/* volet + join card lift */
.volet { transition: background .3s, transform .3s cubic-bezier(.34,1.56,.64,1); }
.volet:hover { transform: translateY(-4px); }
.join-cell { transition: background .25s, transform .3s cubic-bezier(.34,1.56,.64,1); }
.join-cell:hover { transform: translateY(-4px); }

/* btn spring */
.btn { transition: transform .25s cubic-bezier(.34,1.56,.64,1), background .2s, color .2s, border-color .2s, opacity .2s; }
.btn:hover { transform: translateY(-2px); }

/* ══════════════════════════════
   RESPONSIVE
══════════════════════════════ */
@media(max-width:900px){
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .stat-cell:nth-child(2){border-right:none}
  .stat-cell:nth-child(3){border-top:1px solid var(--border);border-right:1px solid var(--border)}
  .stat-cell:nth-child(4){border-top:1px solid var(--border);border-right:none}
  .actions-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}
  .about-grid{grid-template-columns:1fr}
  .volet:first-child{border-right:none;border-bottom:1px solid var(--border)}
  .join-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1/-1}
  .quote-strip{flex-direction:column;gap:.5rem}
  .quote-mark{font-size:4rem}
}
@media(max-width:600px){
  .nav-links,.nav-cta,.nav-right{display:none}
  .burger{display:flex; margin-left:auto;}
  .actions-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .contact-strip{flex-direction:column;align-items:flex-start}
  section{padding:5rem 0}
}

        :root { --bld-far:#C8D4E8; --bld-mid:#A8B8D0; --bld-near:#8898B8; --bld-front:#6878A0; --ground:#D4CDBE; }
        [data-theme="dark"] { --bld-far:#1A2035; --bld-mid:#1E2840; --bld-near:#222E48; --bld-front:#263450; --ground:#1C1B19; }
        .win-l { fill: #FFE066; opacity: .7; }
        .win-d { fill: #3A5080; opacity: .5; }
        [data-theme="dark"] .win-l { fill: #FFD740; opacity: .85; }
        [data-theme="dark"] .win-d { fill: #1A2A4A; opacity: .6; }
        [data-theme="dark"] .sky-bld { fill: var(--bld-far); }
/* ══════════════════════════════════════════
   RESET & VARIABLES (cohérentes avec le thème)
══════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

:root {
  --navy:    #1E2E5C; --teal:     #136669;
  --mustard: #D4920F; --bordeaux: #8B1A34;
  --olive:   #3D5C38; --radius:   4px; --max: 1080px;
}
[data-theme="light"] {
  --bg:#F0EBE1; --bg-alt:#E8E2D8; --bg-surf:#F7F3ED;
  --ink:#1C1917; --ink-2:#57534E; --ink-3:#A8A29E;
  --border:#D4CDBE; --border-2:#BFB8A8;
  --input-bg:#FDFCF9; --shadow:rgba(28,25,23,.06);
}
[data-theme="dark"] {
  --bg:#0F0E0D; --bg-alt:#161514; --bg-surf:#1C1B19;
  --ink:#F2EDE5; --ink-2:#A8A29E; --ink-3:#57534E;
  --border:#2A2825; --border-2:#3A3733;
  --input-bg:#141312; --shadow:rgba(0,0,0,.25);
}
body {
  font-family:'Inter',system-ui,sans-serif; background:var(--bg); color:var(--ink);
  -webkit-font-smoothing:antialiased; transition:background .4s,color .4s;
}
.container { max-width:var(--max); margin:0 auto; padding:0 2rem; }

/* ══════════════════════════════════════════
   HERO CONTACT
══════════════════════════════════════════ */
.ct-hero {
  background:var(--navy); position:relative; overflow:hidden;
  padding:9rem 2rem 4rem;
}
.ct-hero::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(var(--teal) 1px,transparent 1px),
                   linear-gradient(90deg,var(--teal) 1px,transparent 1px);
  background-size:60px 60px; opacity:.04;
}
/* Cercle décoratif */
.ct-hero-blob {
  position:absolute; pointer-events:none;
  border-radius:50%; transition:all .4s;
}
.ct-hero-blob-1 {
  width:400px; height:400px;
  top:-120px; right:-80px;
  background:radial-gradient(circle, rgba(19,102,105,.4) 0%, transparent 70%);
}
.ct-hero-blob-2 {
  width:280px; height:280px;
  bottom:-60px; left:10%;
  background:radial-gradient(circle, rgba(212,146,15,.2) 0%, transparent 70%);
}
.ct-hero-inner { max-width:var(--max); margin:0 auto; position:relative; z-index:1; }
.ct-breadcrumb {
  display:flex; align-items:center; gap:.5rem;
  font-size:.63rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(242,237,229,.3); margin-bottom:1.5rem;
}
.ct-breadcrumb a { color:rgba(242,237,229,.3); text-decoration:none; transition:color .2s; }
.ct-breadcrumb a:hover { color:rgba(242,237,229,.65); }
.ct-hero-title {
  font-family:'League Spartan',sans-serif; font-weight:900;
  font-size:clamp(2.4rem,6vw,4.5rem); line-height:.95;
  letter-spacing:-.03em; color:#fff; margin-bottom:1.25rem;
}
.ct-hero-title em { font-style:normal; color:var(--mustard); display:block; }
.ct-hero-sub {
  font-size:.9rem; line-height:1.8; color:rgba(242,237,229,.55);
  max-width:520px;
}
/* Bande couleurs */
.ct-stripe { display:flex; height:4px; }
.ct-stripe span { flex:1; }

/* ══════════════════════════════════════════
   LAYOUT PRINCIPAL : 2 colonnes
══════════════════════════════════════════ */
.ct-main { padding:5rem 2rem; background:var(--bg); }
.ct-grid {
  max-width:var(--max); margin:0 auto;
  display:grid; grid-template-columns:1fr 380px; gap:3rem; align-items:start;
}

/* ══════════════════════════════════════════
   FORMULAIRE
══════════════════════════════════════════ */
.ct-form-wrap {}
.ct-form-title {
  font-family:'League Spartan',sans-serif; font-weight:900;
  font-size:1.5rem; letter-spacing:-.02em; color:var(--ink);
  margin-bottom:.5rem;
}
.ct-form-hint { font-size:.8rem; color:var(--ink-3); margin-bottom:2rem; }

/* Messages de retour */
.ct-alert {
  padding:1rem 1.25rem; border-radius:var(--radius);
  font-size:.82rem; font-weight:600; margin-bottom:1.5rem;
  display:flex; align-items:flex-start; gap:.6rem;
}
.ct-alert-ok  { background:rgba(19,102,105,.1);  border:1px solid rgba(19,102,105,.3); color:var(--teal); }
.ct-alert-err { background:rgba(139,26,52,.1);   border:1px solid rgba(139,26,52,.3);  color:var(--bordeaux); }

/* Grille des champs */
.ct-form { display:flex; flex-direction:column; gap:1.25rem; }
.ct-row   { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }

.ct-field { display:flex; flex-direction:column; gap:.4rem; }
.ct-label {
  font-size:.65rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-3); transition:color .2s;
}
.ct-label span { color:var(--bordeaux); }

/* Inputs */
.ct-input, .ct-select, .ct-textarea {
  width:100%; padding:.75rem 1rem;
  background:var(--input-bg); color:var(--ink);
  border:1.5px solid var(--border);
  border-radius:var(--radius);
  font-family:'Inter',system-ui,sans-serif; font-size:.85rem;
  transition:border-color .25s, box-shadow .25s, background .4s;
  outline:none; appearance:none;
}
.ct-input::placeholder, .ct-textarea::placeholder { color:var(--ink-3); }
.ct-input:focus, .ct-select:focus, .ct-textarea:focus {
  border-color:var(--teal);
  box-shadow:0 0 0 3px rgba(19,102,105,.12);
}
.ct-input:focus + .ct-label,
.ct-field:focus-within .ct-label { color:var(--teal); }

/* Select custom arrow */
.ct-select-wrap { position:relative; }
.ct-select { padding-right:2.5rem; cursor:pointer; }
.ct-select-arrow {
  position:absolute; right:.85rem; top:50%; transform:translateY(-50%);
  pointer-events:none; color:var(--ink-3);
}

/* Textarea */
.ct-textarea { resize:vertical; min-height:140px; line-height:1.65; }

/* Compteur caractères */
.ct-char-count { font-size:.65rem; color:var(--ink-3); text-align:right; margin-top:.2rem; }

/* Checkbox RGPD */
.ct-check-wrap {
  display:flex; align-items:flex-start; gap:.75rem;
  padding:1rem; background:var(--bg-alt);
  border:1px solid var(--border); border-radius:var(--radius);
  cursor:pointer;
}
.ct-check-wrap input[type="checkbox"] {
  width:16px; height:16px; flex-shrink:0; margin-top:2px;
  accent-color:var(--teal); cursor:pointer;
}
.ct-check-label { font-size:.75rem; line-height:1.65; color:var(--ink-2); }
.ct-check-label a { color:var(--teal); text-decoration:underline; }

/* Bouton submit */
.ct-submit {
  font-family:'League Spartan',sans-serif; font-weight:700;
  font-size:.82rem; letter-spacing:.06em; text-transform:uppercase;
  padding:.85rem 2rem; background:var(--ink); color:var(--bg);
  border:none; border-radius:var(--radius);
  cursor:pointer; display:inline-flex; align-items:center; gap:.5rem;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), opacity .2s;
  align-self:flex-start;
}
.ct-submit:hover { transform:translateY(-2px); opacity:.88; }
.ct-submit:active { transform:translateY(0); }
.ct-submit svg { transition:transform .25s cubic-bezier(.34,1.56,.64,1); }
.ct-submit:hover svg { transform:translateX(4px); }

/* ══════════════════════════════════════════
   SIDEBAR INFOS
══════════════════════════════════════════ */
.ct-sidebar { display:flex; flex-direction:column; gap:1.25rem; position:sticky; top:5rem; }

.ct-info-card {
  background:var(--bg-surf); border:1px solid var(--border);
  border-radius:10px; overflow:hidden;
  transition:border-color .35s, background .4s;
}

/* En-tête de la carte info */
.ct-info-card-head {
  padding:1.25rem 1.5rem;
  display:flex; align-items:center; gap:.75rem;
  border-bottom:1px solid var(--border);
}
.ct-info-card-icon {
  width:36px; height:36px; border-radius:8px;
  display:flex; align-items:center; justify-content:center;
  font-size:1rem; flex-shrink:0;
}
.ct-info-card-label {
  font-family:'League Spartan',sans-serif; font-weight:800;
  font-size:.9rem; letter-spacing:-.01em; color:var(--ink);
}
.ct-info-card-body { padding:1.25rem 1.5rem; }

/* Adresse */
.ct-address {
  font-size:.82rem; line-height:1.8; color:var(--ink-2);
  font-style:normal;
}
.ct-address strong { color:var(--ink); font-weight:600; display:block; margin-bottom:.2rem; }

/* Lien "Itinéraire" */
.ct-map-link {
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--teal); text-decoration:none; margin-top:.85rem;
  border-bottom:1px solid rgba(19,102,105,.3); padding-bottom:1px;
  transition:gap .2s, border-color .2s;
}
.ct-map-link:hover { gap:.65rem; border-color:var(--teal); }

/* Email & socials */
.ct-contact-line {
  display:flex; align-items:center; gap:.6rem;
  font-size:.82rem; color:var(--ink-2); margin-bottom:.6rem;
}
.ct-contact-line:last-child { margin-bottom:0; }
.ct-contact-line a { color:var(--ink-2); text-decoration:none; transition:color .2s; }
.ct-contact-line a:hover { color:var(--ink); }
.ct-contact-ico {
  width:28px; height:28px; border-radius:6px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-size:.85rem;
}

/* Horaires */
.ct-hours-grid { display:flex; flex-direction:column; gap:.5rem; }
.ct-hours-row {
  display:flex; align-items:baseline; justify-content:space-between; gap:.5rem;
  font-size:.78rem;
}
.ct-hours-day { color:var(--ink-2); font-weight:500; }
.ct-hours-time { color:var(--ink); font-weight:600; font-family:'League Spartan',sans-serif; letter-spacing:-.01em; }
.ct-hours-closed { color:var(--ink-3); font-style:italic; }
.ct-hours-badge {
  display:inline-flex; align-items:center; gap:.35rem;
  font-size:.6rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  margin-top:.75rem;
}
.ct-hours-badge-dot { width:6px; height:6px; border-radius:50%; animation:pulse-dot 2s ease-in-out infinite; }
@keyframes pulse-dot{ 0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.6);opacity:.5} }

/* Carte OpenStreetMap embed */
.ct-map-embed {
  border-radius:10px; overflow:hidden;
  border:1px solid var(--border); background:var(--bg-alt);
  aspect-ratio:4/3;
}
.ct-map-embed iframe {
  width:100%; height:100%; border:none; display:block;
  filter:grayscale(.3) contrast(.95);
  transition:filter .3s;
}
.ct-map-embed:hover iframe { filter:none; }

/* ══════════════════════════════════════════
   SECTION FAQ
══════════════════════════════════════════ */
.ct-faq { padding:5rem 2rem; background:var(--bg-alt); }
.ct-faq-inner { max-width:var(--max); margin:0 auto; }
.ct-faq-header { margin-bottom:3rem; }
.section-label {
  font-size:.72rem; font-weight:700; letter-spacing:.18em;
  text-transform:uppercase; color:var(--accent); display:block; margin-bottom:.75rem;
}
.section-title {
  font-family:'League Spartan',sans-serif; font-weight:900;
  font-size:clamp(1.6rem,3vw,2.4rem); letter-spacing:-.02em;
  color:var(--ink); line-height:1.1;
}
.ct-faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--border); border:1px solid var(--border); border-radius:8px; overflow:hidden; }

/* Item FAQ — accordéon */
.ct-faq-item {
  background:var(--bg-surf); transition:background .25s;
}
.ct-faq-item:hover { background:var(--bg); }

.ct-faq-btn {
  width:100%; padding:1.5rem;
  display:flex; align-items:flex-start; justify-content:space-between; gap:1rem;
  background:none; border:none; cursor:pointer;
  text-align:left; color:var(--ink);
}
.ct-faq-q {
  font-family:'League Spartan',sans-serif; font-weight:800;
  font-size:.95rem; letter-spacing:-.01em; color:var(--ink);
  line-height:1.3; transition:color .2s;
}
.ct-faq-item:hover .ct-faq-q { color:var(--teal); }

.ct-faq-chevron {
  width:20px; height:20px; flex-shrink:0; color:var(--ink-3);
  transition:transform .3s cubic-bezier(.16,1,.3,1), color .2s;
}
.ct-faq-item.open .ct-faq-chevron { transform:rotate(180deg); color:var(--teal); }

.ct-faq-answer {
  max-height:0; overflow:hidden;
  transition:max-height .4s cubic-bezier(.16,1,.3,1);
}
.ct-faq-answer-inner {
  padding:0 1.5rem 1.5rem;
  font-size:.82rem; line-height:1.78; color:var(--ink-2);
  border-top:1px solid var(--border); padding-top:1rem; margin-top:0;
}
.ct-faq-item.open .ct-faq-answer { max-height:400px; }

/* ══════════════════════════════════════════
   REVEAL
══════════════════════════════════════════ */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1)}
.reveal.on{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}

/* ══════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════ */
@media(max-width:900px){
  .ct-grid{grid-template-columns:1fr}
  .ct-sidebar{position:static}
  .ct-faq-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .ct-row{grid-template-columns:1fr}
  .ct-hero{padding:8rem 1.5rem 3rem}
  .ct-main,.ct-faq{padding:3.5rem 1.5rem}
}

/* ══════════════════════════════════════════
   ARTICLE — STYLE MAGAZINE ÉDITORIAL
   Grande typo Fraunces, lettrine, filets décoratifs,
   colonne de lecture confortable.
══════════════════════════════════════════ */

.article-card-layout {
    padding: 140px 24px 100px;
    background: var(--bg);
    position: relative;
}

/* Filet décoratif central façon magazine */
.article-card-layout::before {
    content: "";
    position: absolute;
    top: 100px;
    left: 50%;
    width: 1px;
    height: 28px;
    background: var(--accent);
    transform: translateX(-50%);
    opacity: .55;
}

/* Pas de "carte" : l'article respire dans la page */
.aqm-card {
    max-width: 1100px;
    margin: 0 auto;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
}

/* ── KICKER / INFOBANDEAU HAUT ──
   Devient un "issue marker" sobre */
.card-alert-top {
    max-width: 720px;
    margin: 0 auto 56px;
    background: transparent;
    color: var(--ink-2);
    padding: 14px 22px;
    display: flex;
    align-items: center;
    gap: 14px;
    border-top: 1px solid var(--border-2);
    border-bottom: 1px solid var(--border-2);
    font-family: 'Inter', system-ui, sans-serif;
}
.card-alert-top .alert-icon {
    font-size: 1.1rem;
    opacity: .85;
}
.card-alert-top .alert-content,
.card-alert-top .alert-content p {
    margin: 0;
    font-size: .92rem;
    font-weight: 500;
    letter-spacing: .01em;
    color: var(--ink-2);
}

/* ── EN-TÊTE ÉDITORIAL ── */
.card-header {
    max-width: 880px;
    margin: 0 auto 56px;
    padding: 0 16px;
    text-align: center;
}

/* Catégorie : petite capitale espacée, traits de part et d'autre */
.card-header .article-category-label {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 28px;
}
.card-header .article-category-label::before,
.card-header .article-category-label::after {
    content: "";
    display: inline-block;
    width: 28px;
    height: 1px;
    background: var(--accent);
    opacity: .65;
}
.card-header .article-category-label a {
    display: inline-block;
    font-family: 'Inter', system-ui, sans-serif;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .22em;
    color: var(--accent);
    background: transparent;
    padding: 0;
    border: none;
    border-radius: 0;
    text-decoration: none;
    transition: color .25s;
}
.card-header .article-category-label a:hover {
    color: var(--accent-2);
}

/* Titre : monumental, italique opt. via opsz Fraunces */
.card-header .article-title {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 800;
    font-size: clamp(2.2rem, 5.2vw, 4rem);
    line-height: 1.04;
    letter-spacing: -.018em;
    color: var(--ink);
    margin: 0;
    font-variation-settings: "opsz" 144;
}

/* Filet sous le titre (séparateur magazine) */
.card-header::after {
    content: "";
    display: block;
    width: 56px;
    height: 2px;
    background: var(--ink);
    margin: 36px auto 0;
    opacity: .85;
}

/* ── CORPS DE L'ARTICLE ── */
.card-body {
    max-width: 720px;
    margin: 0 auto;
    padding: 0 16px;
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 400;
    font-size: 1.18rem;
    line-height: 1.75;
    color: var(--ink);
    font-variation-settings: "opsz" 14;
}

.card-body > p { margin: 0 0 1.4em; }

/* Lettrine sur le tout premier paragraphe */
.card-body > p:first-of-type::first-letter {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 800;
    font-size: 4.6em;
    line-height: .85;
    float: left;
    padding: .08em .12em 0 0;
    margin: .04em .04em 0 -.04em;
    color: var(--accent);
    font-variation-settings: "opsz" 144;
}

/* Premier paragraphe : un peu plus dense */
.card-body > p:first-of-type {
    font-size: 1.24rem;
    line-height: 1.7;
}

/* Liens dans le corps : trait sobre sous le mot */
.card-body a {
    color: var(--ink);
    text-decoration: none;
    background-image: linear-gradient(var(--accent), var(--accent));
    background-size: 100% 1px;
    background-repeat: no-repeat;
    background-position: 0 100%;
    padding-bottom: 1px;
    transition: background-size .25s, color .25s;
}
.card-body a:hover {
    color: var(--accent);
    background-size: 100% 2px;
}

/* Hiérarchie des titres dans le contenu */
.card-body h2,
.card-body h3,
.card-body h4 {
    font-family: 'Fraunces', Georgia, serif;
    color: var(--ink);
    line-height: 1.18;
    margin: 2em 0 .6em;
    font-variation-settings: "opsz" 60;
}
.card-body h2 { font-size: 2rem; font-weight: 800; letter-spacing: -.01em; }
.card-body h3 { font-size: 1.5rem; font-weight: 700; }
.card-body h4 { font-size: 1.18rem; font-weight: 600; font-style: italic; color: var(--ink-2); }

/* Petite ornement sous les h2 */
.card-body h2::after {
    content: "";
    display: block;
    width: 36px;
    height: 2px;
    background: var(--accent);
    margin-top: .4em;
    opacity: .7;
}

/* Citations : pull-quote magazine */
.card-body blockquote {
    margin: 2.4em -2em;
    padding: 1em 2em;
    font-family: 'Fraunces', Georgia, serif;
    font-style: italic;
    font-weight: 500;
    font-size: 1.55rem;
    line-height: 1.4;
    color: var(--ink);
    border-left: 3px solid var(--accent);
    background: transparent;
    font-variation-settings: "opsz" 60;
}
.card-body blockquote p { margin: 0 0 .4em; }
.card-body blockquote cite,
.card-body blockquote footer {
    display: block;
    font-family: 'Inter', system-ui, sans-serif;
    font-style: normal;
    font-weight: 600;
    font-size: .82rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--ink-3);
    margin-top: .8em;
}

/* Listes éditoriales */
.card-body ul,
.card-body ol {
    margin: 0 0 1.4em;
    padding-left: 1.4em;
}
.card-body ul li { list-style: none; position: relative; padding-left: .2em; margin-bottom: .4em; }
.card-body ul li::before {
    content: "—";
    position: absolute;
    left: -1.4em;
    color: var(--accent);
    font-weight: 700;
}
.card-body ol li { padding-left: .2em; margin-bottom: .4em; }
.card-body ol li::marker { color: var(--accent); font-weight: 700; }

/* Légendes de figures */
.card-body figure { margin: 2.2em 0; }
.card-body figure img { border-radius: 6px; }
.card-body figcaption {
    margin-top: .9em;
    font-family: 'Inter', system-ui, sans-serif;
    font-size: .82rem;
    line-height: 1.45;
    color: var(--ink-3);
    text-align: center;
    font-style: italic;
}

/* hr décoratif (séparateur de section) */
.card-body hr {
    border: 0;
    margin: 3em auto;
    text-align: center;
    overflow: visible;
}
.card-body hr::after {
    content: "✦ ✦ ✦";
    color: var(--accent);
    letter-spacing: 1.2em;
    padding-left: 1.2em;
    font-size: .8em;
    opacity: .6;
}

/* ── BLOC INFO BAS ── (inchangé visuellement, juste recadré) */
.card-info-bottom {
    max-width: 720px;
    margin: 80px auto 0;
    padding: 36px 32px;
    background: var(--bg-alt);
    border-top: 3px solid var(--accent);
    color: var(--ink);
    font-family: 'Inter', system-ui, sans-serif;
}
.info-bottom-title {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 14px;
    color: var(--accent);
    letter-spacing: -.005em;
}
.card-info-bottom p { margin: 0 0 .6em; line-height: 1.6; color: var(--ink-2); }

/* ══════════════════════════════════════════
   GALERIE — CARROUSEL "PLEINE LARGEUR" MAGAZINE
══════════════════════════════════════════ */
.aqm-card .gallery-wrapper {
    position: relative;
    margin: 56px calc(-1 * (50vw - min(50vw, 520px)));
    /* déborde la colonne de lecture (720px) jusqu'aux marges du viewport, max 1040px */
}

.aqm-card .wp-block-gallery {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    gap: 18px;
    padding: 6px 24px 24px;
    margin: 0 !important;
    scrollbar-width: none !important;
}
.aqm-card .wp-block-gallery::-webkit-scrollbar { display: none !important; }

.carousel-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    background: var(--ink);
    color: var(--bg);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 22px rgba(0,0,0,0.18);
    transition: all .3s cubic-bezier(0.16, 1, 0.3, 1);
    opacity: .92;
}
.carousel-arrow:hover {
    background: var(--accent);
    color: #fff;
    transform: translateY(-50%) scale(1.1);
    box-shadow: 0 10px 28px rgba(0,0,0,0.25);
    opacity: 1;
}
.carousel-arrow.prev { left: 18px; }
.carousel-arrow.next { right: 18px; }
.carousel-arrow.prev:hover svg { transform: translateX(-2px); transition: transform .3s; }
.carousel-arrow.next:hover svg { transform: translateX(2px);  transition: transform .3s; }

.aqm-card .wp-block-gallery figure.wp-block-image {
    flex: 0 0 55% !important;
    scroll-snap-align: center;
    margin: 0 !important;
    min-width: 0;
    max-width: 520px;
}
.aqm-card .wp-block-gallery figure.wp-block-image img {
    width: 100%;
    height: auto;
    max-height: 380px;
    object-fit: cover;
    border-radius: 6px;
    box-shadow: 0 12px 30px -10px rgba(0,0,0,0.2);
}

/* Image isolée pleine largeur */
.card-body > .wp-block-image:not(.is-style-rounded) img,
.card-body > figure.wp-block-image img {
    width: 100%;
    height: auto;
    border-radius: 6px;
}

/* Responsive */
@media (max-width: 800px) {
    .article-card-layout { padding: 110px 16px 70px; }
    .card-header { margin-bottom: 40px; }
    .card-header .article-title { font-size: clamp(1.9rem, 8vw, 2.6rem); }
    .card-body { font-size: 1.08rem; line-height: 1.7; }
    .card-body > p:first-of-type { font-size: 1.12rem; }
    .card-body > p:first-of-type::first-letter { font-size: 4em; }
    .card-body blockquote { margin: 2em 0; font-size: 1.25rem; padding: .6em 1em; }
    .aqm-card .gallery-wrapper { margin: 40px -16px; }
    .aqm-card .wp-block-gallery { gap: 12px; padding: 6px 16px 16px; }
    .aqm-card .wp-block-gallery figure.wp-block-image { flex: 0 0 80% !important; max-width: none; }
    .aqm-card .wp-block-gallery figure.wp-block-image img { max-height: 280px; }
    .carousel-arrow { width: 40px; height: 40px; }
    .carousel-arrow.prev { left: 8px; }
    .carousel-arrow.next { right: 8px; }
    .card-info-bottom { padding: 28px 22px; margin-top: 56px; }
}

/* ══════════════════════════════════════════
   STYLE PRO : PÔLE INSERTION
   (S'applique uniquement si la catégorie est "insertion")
══════════════════════════════════════════ */

/* 1. La Carte devient un "Dossier Corporate" */
.category-insertion .aqm-card {
    max-width: 900px;
    border-radius: 4px; /* Angles stricts */
    box-shadow: 0 5px 25px rgba(0,0,0,0.06); /* Ombre plus légère et pro */
    border-top: 6px solid var(--navy); /* Grosse ligne marine institutionnelle */
}

/* 2. Le Bandeau d'alerte haut (Planning/Infos) */
.category-insertion .card-alert-top {
    background: var(--bg-surf);
    color: var(--ink);
    border-left: 6px solid var(--teal); /* Barre latérale de structure */
    border-bottom: 1px solid var(--border);
    margin: 0;
    padding: 18px 30px;
}
.category-insertion .card-alert-top .alert-icon {
    filter: grayscale(100%); /* Rend l'émoji noir et blanc pour faire plus sérieux */
}

/* 3. L'en-tête (Aligné à gauche) */
.category-insertion .card-header {
    text-align: left;
    padding: 40px 50px 20px;
    border-bottom: 1px solid var(--border); /* Ligne de séparation sous le titre */
    margin-bottom: 30px;
}
.category-insertion .card-header .article-category-label a {
    background: var(--navy);
    color: #fff;
    border-radius: 2px;
    letter-spacing: 0.15em;
}
.category-insertion .card-header .article-title {
    font-size: 2.2rem; /* Légèrement plus petit pour faire plus "rapport" */
    color: var(--navy);
    margin-top: 15px;
}

/* 4. Le contenu du texte */
.category-insertion .card-body {
    padding: 0 50px 50px;
    text-align: justify; /* Texte justifié comme dans les documents pro */
}

/* 5. Transforme le Carrousel ludique en une Grille Stricte */
.category-insertion .gallery-wrapper .carousel-arrow {
    display: none !important; /* On cache les flèches du carrousel */
}
.category-insertion .aqm-card .wp-block-gallery {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(650px, 1fr)) !important; /* Crée une vraie grille */
    gap: 20px;
    overflow: visible; /* Annule l'effet de défilement horizontal */
    margin: 40px 0 !important;
    padding: 0 !important;
}
.category-insertion .aqm-card .wp-block-gallery figure.wp-block-image {
    flex: none !important;
}
.category-insertion .aqm-card .wp-block-gallery figure.wp-block-image img {
    border-radius: 4px; /* Images avec coins quasi-carrés */
    border: 1px solid var(--border); /* Petit cadre autour des photos */
    box-shadow: none;
}

/* 6. Le bloc "Infos Asso" du bas */
.category-insertion .card-info-bottom {
    background: var(--navy);
    color: #fff;
    border-top: none;
}
.category-insertion .info-bottom-title {
    color: var(--teal);
}
.category-insertion .card-info-bottom p {
    color: rgba(255,255,255,0.85);
/* ══════════════════════════════
   AQM PAGE BODY — style des blocs Gutenberg du back-office
   Styles: images, galeries (auto-scroll), citations, listes,
   tables, vidéos, séparateurs… tout ce que l'utilisateur peut
   ajouter dans WP admin via l'éditeur de blocs.
══════════════════════════════ */

/* Override le padding du container pour les pages de contenu (lecture confortable) */
.aqm-page-body .container { max-width: 760px; }

/* Typographie de base */
.aqm-page-body { padding: 5rem 0 7rem; color: var(--ink); font-size: 1.05rem; line-height: 1.75; }
.aqm-page-body p { color: var(--ink-2); margin: 0 0 1.5rem; line-height: 1.75; }
.aqm-page-body p:first-child { font-size: 1.2rem; color: var(--ink); }       /* chapô (paragraphe d'attaque) */
.aqm-page-body p:first-child::first-letter { font-family: 'Fraunces', Georgia, serif; font-size: 3.4em; line-height: .9; float: left; padding: .15em .15em 0 0; color: var(--accent); font-weight: 800; }

/* Titres internes */
.aqm-page-body h2, .aqm-page-body h3, .aqm-page-body h4 {
  font-family: 'Fraunces', Georgia, serif; color: var(--ink);
  letter-spacing: -.01em; line-height: 1.15;
  margin: 3rem 0 1rem;
}
.aqm-page-body h2 { font-size: clamp(1.8rem, 3.2vw, 2.4rem); font-weight: 800; }
.aqm-page-body h3 { font-size: 1.4rem; font-weight: 700; color: var(--accent); }
.aqm-page-body h4 { font-size: 1.1rem; font-weight: 700; }

/* Liens */
.aqm-page-body a { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px; transition: color .2s; }
.aqm-page-body a:hover { color: var(--accent-2, var(--coral)); }

/* Listes */
.aqm-page-body ul, .aqm-page-body ol { margin: 0 0 1.75rem 1.5rem; padding: 0; }
.aqm-page-body li { color: var(--ink-2); margin-bottom: .6rem; line-height: 1.7; }
.aqm-page-body ul li::marker { color: var(--accent); content: '— '; }
.aqm-page-body ol { list-style: none; counter-reset: aqm-li; padding-left: 0; margin-left: 0; }
.aqm-page-body ol > li {
  counter-increment: aqm-li; position: relative; padding-left: 3rem; margin-bottom: 1rem;
}
.aqm-page-body ol > li::before {
  content: counter(aqm-li, decimal-leading-zero);
  position: absolute; left: 0; top: 0;
  font-family: 'Fraunces', Georgia, serif; font-weight: 800; font-size: 1.5rem;
  color: var(--accent); line-height: 1;
}

/* Citations Gutenberg : .wp-block-quote OU <blockquote> */
.aqm-page-body blockquote,
.aqm-page-body .wp-block-quote {
  margin: 3rem 0; padding: 1.5rem 0 1.5rem 2rem;
  border-left: 4px solid var(--accent);
  background: transparent;
}
.aqm-page-body blockquote p,
.aqm-page-body .wp-block-quote p {
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic; font-weight: 500;
  font-size: clamp(1.3rem, 2.5vw, 1.7rem);
  line-height: 1.4; color: var(--ink); margin-bottom: .75rem;
}
.aqm-page-body blockquote cite,
.aqm-page-body .wp-block-quote cite {
  font-style: normal;
  font-family: 'Inter', sans-serif;
  font-size: .8rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--accent);
}
.aqm-page-body .wp-block-pullquote {
  margin: 3rem -2rem; padding: 3rem 2rem;
  border-top: 2px solid var(--accent); border-bottom: 2px solid var(--accent);
  text-align: center; background: transparent;
}
.aqm-page-body .wp-block-pullquote p {
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic; font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1.3; color: var(--ink);
}

/* Image simple (.wp-block-image) — sortie en pleine largeur agréable */
.aqm-page-body figure,
.aqm-page-body .wp-block-image {
  margin: 2.5rem 0;
}
.aqm-page-body figure img,
.aqm-page-body .wp-block-image img,
.aqm-page-body img {
  display: block; max-width: 100%; height: auto;
  border-radius: var(--radius-lg);
  box-shadow: 0 14px 36px -18px rgba(43,26,18,.35);
}
.aqm-page-body figcaption,
.aqm-page-body .wp-block-image figcaption {
  margin-top: .85rem;
  font-family: 'Inter', sans-serif;
  font-size: .82rem; color: var(--ink-3);
  text-align: center; font-style: italic;
}

/* Image alignée à droite/gauche dans le texte */
.aqm-page-body .wp-block-image.alignleft,
.aqm-page-body figure.alignleft  { float: left;  margin: .5rem 2rem 1.5rem 0; max-width: 50%; }
.aqm-page-body .wp-block-image.alignright,
.aqm-page-body figure.alignright { float: right; margin: .5rem 0 1.5rem 2rem; max-width: 50%; }
.aqm-page-body .wp-block-image.alignwide,
.aqm-page-body figure.alignwide  { margin-left: -8vw; margin-right: -8vw; max-width: none; }

/* ── Galerie WP par défaut : style propre par défaut ── */
.aqm-page-body .wp-block-gallery.has-nested-images figure.wp-block-image {
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 12px 32px -16px rgba(43,26,18,.25);
  transition: transform .3s, box-shadow .3s;
}
.aqm-page-body .wp-block-gallery.has-nested-images figure.wp-block-image:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px -16px rgba(43,26,18,.35);
}
.aqm-page-body .wp-block-gallery.has-nested-images figure.wp-block-image img {
  border-radius: 0 !important;
  box-shadow: none !important;
  display: block;
}

/* ─────────────────────────────────
   PAGES PRO — Insertion & Formation
   STRIPES MAGAZINE : photos en bandes horizontales pleine largeur
   avec gros numéro serif italique. Style "case study" éditorial.
   Le JS aqmStripes (main.js) force tous les styles en inline.
───────────────────────────────── */

.aqm-page-body.is-pro {
  padding: 5rem 0 7rem;
}
.aqm-page-body.is-pro .container {
  max-width: 1100px;
}

/* Image isolée (hors galerie) sur pages pro : sobre, full-width avec bordure */
.aqm-page-body.is-pro figure.wp-block-image:not(.wp-block-gallery figure) {
  margin: 2.5rem 0;
  border: 1px solid var(--border);
  border-radius: 4px;
  box-shadow: 0 6px 20px -12px rgba(43,26,18,.2);
}

/* Citations sur pages pro : encadré rigide à gauche */
.aqm-page-body.is-pro blockquote,
.aqm-page-body.is-pro .wp-block-quote {
  border-left: 3px solid var(--accent);
  padding: 1rem 0 1rem 2rem;
  margin: 2.5rem 0;
}
.aqm-page-body.is-pro blockquote p,
.aqm-page-body.is-pro .wp-block-quote p {
  font-family: 'Fraunces', Georgia, serif;
  font-style: normal;     /* pas d'italique : plus pro */
  font-weight: 600;
  font-size: 1.3rem;
  line-height: 1.4;
  color: var(--ink);
}

/* Headings pro : alignement à gauche, taille mesurée */
.aqm-page-body.is-pro h2,
.aqm-page-body.is-pro h3 {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 700;
  letter-spacing: -.005em;
}
.aqm-page-body.is-pro h2 {
  font-size: clamp(1.7rem, 2.8vw, 2.1rem);
  margin: 3rem 0 1rem;
  padding-bottom: .75rem;
  border-bottom: 2px solid var(--border);
  color: var(--ink);
}
.aqm-page-body.is-pro h3 {
  font-size: 1.3rem;
  color: var(--ink);    /* pas d'accent : neutre pro */
  margin: 2rem 0 .75rem;
}

/* Pas de lettrine sur les pages pro (style éditorial trop chaleureux) */
.aqm-page-body.is-pro p:first-child::first-letter {
  all: unset;
}
.aqm-page-body.is-pro p:first-child {
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--ink);
  border-left: 3px solid var(--accent);
  padding-left: 1.25rem;
  margin-bottom: 2rem;
}


/* ─────────────────────────────────
   CARROUSEL pages Animation — inspiré V1
   Le CSS marche TOUT SEUL (galerie devient bande horizontale scrollable).
   Le JS ajoute juste les flèches + l'autoplay.
───────────────────────────────── */

/* Container : étend la galerie sur toute la largeur viewport */
.aqm-page-body.is-animation .aqm-gallery-wrapper,
.aqm-page-body.is-animation > .container > .wp-block-gallery {
  position: relative;
  margin: 3rem calc(50% - 50vw) !important;
  padding: 0 4rem !important;
}

/* La galerie elle-même : flex horizontal scroll natif (target les 2 cas :
   wrappée par JS OU pas wrappée encore) */
.aqm-page-body.is-animation .wp-block-gallery,
.aqm-page-body.is-animation .aqm-gallery-wrapper > .wp-block-gallery {
  display: flex !important;
  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  gap: 1rem !important;
  padding: 1rem 0 1.5rem 0 !important;
  margin: 0 !important;
  width: auto !important;
  background: transparent !important;
  scrollbar-width: none;
}
.aqm-page-body.is-animation .wp-block-gallery::-webkit-scrollbar { display: none; }

/* Chaque image : 80% de la largeur (peek du suivant et du précédent) */
.aqm-page-body.is-animation .wp-block-gallery figure.wp-block-image {
  flex: 0 0 80% !important;
  scroll-snap-align: center;
  margin: 0 !important;
  min-width: 0;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 14px 36px -16px rgba(43,26,18,.35);
  transition: box-shadow .3s, transform .3s;
  width: 80% !important;     /* override WP-core width */
  max-width: none !important;
}
.aqm-page-body.is-animation .wp-block-gallery figure.wp-block-image:hover {
  box-shadow: 0 22px 48px -16px rgba(43,26,18,.45);
}
.aqm-page-body.is-animation .wp-block-gallery figure.wp-block-image img {
  width: 100% !important; height: auto !important;
  display: block;
  border-radius: 0 !important; box-shadow: none !important;
}
.aqm-page-body.is-animation .wp-block-gallery figcaption { display: none !important; }

/* Flèches (ajoutées par JS) — palette V3 bordeaux/coral */
.aqm-page-body.is-animation .aqm-carousel-arrow {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  width: 52px; height: 52px;
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  z-index: 10;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 22px -8px var(--accent);
  transition: all .3s cubic-bezier(.16, 1, .3, 1);
  opacity: .92;
}
.aqm-page-body.is-animation .aqm-carousel-arrow:hover {
  background: var(--coral);
  transform: translateY(-50%) scale(1.12);
  box-shadow: 0 14px 30px -8px var(--accent);
  opacity: 1;
}
.aqm-page-body.is-animation .aqm-carousel-arrow.prev { left: 1rem; }
.aqm-page-body.is-animation .aqm-carousel-arrow.next { right: 1rem; }
.aqm-page-body.is-animation .aqm-carousel-arrow.prev:hover svg { transform: translateX(-2px); transition: transform .3s; }
.aqm-page-body.is-animation .aqm-carousel-arrow.next:hover svg { transform: translateX(2px); transition: transform .3s; }

/* Responsive */
@media (max-width: 700px) {
  .aqm-page-body.is-animation .aqm-gallery-wrapper { padding: 0 1rem; }
  .aqm-page-body.is-animation .aqm-gallery-wrapper figure.wp-block-image { flex: 0 0 90% !important; }
  .aqm-page-body.is-animation .aqm-carousel-arrow { width: 40px; height: 40px; }
  .aqm-page-body.is-animation .aqm-carousel-arrow.prev { left: .25rem; }
  .aqm-page-body.is-animation .aqm-carousel-arrow.next { right: .25rem; }
}

/* Tables (Gutenberg) */
.aqm-page-body .wp-block-table { margin: 2.5rem 0; overflow-x: auto; }
.aqm-page-body table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.aqm-page-body th, .aqm-page-body td { padding: .85rem 1rem; text-align: left; border-bottom: 1px solid var(--border); }
.aqm-page-body th { font-family: 'Inter', sans-serif; font-weight: 700; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink); border-bottom: 2px solid var(--accent); }

/* Séparateur Gutenberg */
.aqm-page-body hr,
.aqm-page-body .wp-block-separator {
  border: none; height: 1px; background: var(--border);
  margin: 4rem auto; max-width: 100px;
}
.aqm-page-body .wp-block-separator.is-style-wide { max-width: 100%; }
.aqm-page-body .wp-block-separator.is-style-dots {
  background: none; height: auto; line-height: 1;
}
.aqm-page-body .wp-block-separator.is-style-dots::before {
  content: '· · ·'; color: var(--accent); font-size: 2rem; letter-spacing: .8rem;
}

/* Bouton Gutenberg (.wp-block-button) — réutilise notre design system */
.aqm-page-body .wp-block-button { margin: 2rem 0; }
.aqm-page-body .wp-block-button__link {
  background: var(--accent) !important; color: #fff !important;
  border: none !important; border-radius: 999px !important;
  padding: .85rem 2rem !important; font-family: 'Inter', sans-serif !important;
  font-weight: 600 !important; text-decoration: none !important;
  box-shadow: 0 6px 22px -8px var(--accent);
  transition: transform .2s, box-shadow .25s;
}
.aqm-page-body .wp-block-button__link:hover {
  transform: translateY(-2px); box-shadow: 0 10px 28px -8px var(--accent);
}

/* Vidéo embed (YouTube etc.) */
.aqm-page-body .wp-block-embed { margin: 2.5rem 0; }
.aqm-page-body .wp-block-embed iframe {
  width: 100%; aspect-ratio: 16/9; border: none;
  border-radius: var(--radius-lg);
}

/* Code */
.aqm-page-body code {
  font-family: ui-monospace, monospace; font-size: .9em;
  background: var(--bg-alt); padding: .15em .4em; border-radius: 4px;
}

/* Bouton "scroll to top" possible plus tard, pour l'instant on s'arrête là */

/* Responsive */
@media (max-width: 800px) {
  .aqm-page-body { padding: 3rem 0 5rem; }
  .aqm-page-body .wp-block-gallery .blocks-gallery-item,
  .aqm-page-body .wp-block-gallery > ul > li,
  .aqm-page-body .wp-block-gallery figure { flex: 0 0 240px; width: 240px; height: 240px; }
  .aqm-page-body .wp-block-image.alignleft,
  .aqm-page-body figure.alignleft,
  .aqm-page-body .wp-block-image.alignright,
  .aqm-page-body figure.alignright { float: none; margin: 1.5rem 0; max-width: 100%; }
  .aqm-page-body .wp-block-image.alignwide,
  .aqm-page-body figure.alignwide { margin-left: 0; margin-right: 0; }
}

/* ──────────────────────────────────────
   ACTUALITÉS — section magazine sur front-page
   Cards en zigzag : photo gauche / droite alternée.
────────────────────────────────────────── */
#news {
  padding: 6rem 0 5rem;
  background: var(--bg);
}
.news-header {
  text-align: center;
  margin-bottom: 4rem;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}
.news-header .section-label { color: var(--accent); }
.news-list {
  display: flex;
  flex-direction: column;
  gap: 4rem;
}

/* Carte article */
.news-card {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 3rem;
  align-items: center;
}
.news-card.is-reverse { direction: rtl; }
.news-card.is-reverse > * { direction: ltr; }

/* Image */
.news-card-img {
  display: block;
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 4/3;
  position: relative;
  box-shadow: 0 18px 44px -22px rgba(43,26,18,.4);
  transition: transform .4s cubic-bezier(.25,.1,.25,1), box-shadow .4s;
}
.news-card-img:hover {
  transform: translateY(-4px);
  box-shadow: 0 26px 56px -22px rgba(43,26,18,.5);
}
.news-card-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .8s cubic-bezier(.25,.1,.25,1);
}
.news-card-img:hover img { transform: scale(1.04); }
.news-card-placeholder {
  width: 100%; height: 100%;
  background:
    radial-gradient(circle at 30% 30%, rgba(232,130,93,.4), transparent 50%),
    radial-gradient(circle at 70% 70%, rgba(31,188,188,.35), transparent 55%),
    linear-gradient(135deg, var(--bg-surf) 0%, var(--bg-alt) 100%);
}

/* Body */
.news-card-body {
  padding: 1rem 0;
}
.news-card-meta {
  font-family: 'Inter', sans-serif;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin: 0 0 1.25rem;
  display: flex;
  gap: .5rem;
  align-items: center;
}
.news-card-cat {
  color: var(--accent);
  font-weight: 700;
}
.news-card-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 800;
  font-size: clamp(1.6rem, 2.6vw, 2.2rem);
  letter-spacing: -.01em;
  line-height: 1.15;
  margin: 0 0 1rem;
}
.news-card-title a {
  color: var(--ink);
  text-decoration: none;
  background-image: linear-gradient(var(--accent), var(--accent));
  background-size: 0% 2px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: background-size .35s, color .25s;
  padding-bottom: 2px;
}
.news-card-title a:hover {
  background-size: 100% 2px;
  color: var(--accent);
}
.news-card-excerpt {
  color: var(--ink-2);
  font-size: 1rem;
  line-height: 1.65;
  margin: 0 0 1.5rem;
}
.news-card-link {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: .92rem;
  color: var(--accent);
  text-decoration: none;
  letter-spacing: .02em;
  transition: gap .25s;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
.news-card-link:hover { gap: .65rem; }

/* Bouton "voir tout" */
.news-cta {
  text-align: center;
  margin-top: 4rem;
}

/* Responsive */
@media (max-width: 800px) {
  .news-card,
  .news-card.is-reverse { direction: ltr; grid-template-columns: 1fr; gap: 1.5rem; }
  .news-list { gap: 3rem; }
}

/* ══════════════════════════════════════════
   ARCHIVE ACTUALITÉS — STYLE MAGAZINE
   Scope unique : body.aqm-news-archive-page
   (posé par aqm_news_body_class dans functions.php)
   Tout est explicite : grid, fonts, colors —
   pas de dépendance aux styles .news-card de base.
══════════════════════════════════════════ */

/* — HERO ÉDITORIAL — */
body.aqm-news-archive-page .aqm-page-hero {
  padding: 8rem 1.25rem 3rem;
}
body.aqm-news-archive-page .aqm-page-hero .container {
  max-width: 880px;
  margin: 0 auto;
  text-align: center;
  position: relative;
}
body.aqm-news-archive-page .aqm-page-hero .container::after {
  content: "";
  display: block;
  width: 56px;
  height: 2px;
  background: var(--accent);
  margin: 2rem auto 0;
  opacity: .85;
}
body.aqm-news-archive-page .aqm-page-hero .section-label {
  display: inline-flex !important;
  align-items: center;
  gap: 14px;
  color: var(--accent) !important;
  letter-spacing: .22em;
  font-weight: 700;
  font-size: .72rem;
  text-transform: uppercase;
  font-family: 'Inter', system-ui, sans-serif;
}
body.aqm-news-archive-page .aqm-page-hero .section-label::before,
body.aqm-news-archive-page .aqm-page-hero .section-label::after {
  content: "";
  display: inline-block;
  width: 28px;
  height: 1px;
  background: var(--accent);
  opacity: .65;
}
body.aqm-news-archive-page .aqm-page-hero .section-title {
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 800;
  font-size: clamp(2.4rem, 5.6vw, 4.2rem) !important;
  line-height: 1.04;
  letter-spacing: -.018em;
  margin: 1.4rem 0 0;
  color: var(--ink);
}
body.aqm-news-archive-page .aqm-page-hero .section-sub {
  font-family: 'Fraunces', Georgia, serif !important;
  font-style: italic;
  font-size: 1.18rem;
  color: var(--ink-2);
  max-width: 580px;
  margin: 1.5rem auto 0;
  line-height: 1.55;
}

/* — SECTION LISTE — */
body.aqm-news-archive-page #news,
body.aqm-news-archive-page .aqm-news-archive {
  padding: 2rem 1.25rem 5rem;
  background: var(--bg) !important;
}
body.aqm-news-archive-page #news .container,
body.aqm-news-archive-page .aqm-news-archive .container {
  max-width: 1100px;
  margin: 0 auto;
}
body.aqm-news-archive-page .news-list {
  display: block !important;
  max-width: 1100px;
  margin: 0 auto !important;
  padding: 0 !important;
  gap: 0 !important;
  counter-reset: news-counter;
}

/* — CARTE ARTICLE (zigzag avec numero) — */
body.aqm-news-archive-page .news-list .news-card {
  display: grid !important;
  grid-template-columns: 1.1fr 1fr !important;
  gap: 3rem !important;
  align-items: center;
  position: relative;
  padding: 4.5rem 0 4.5rem 3rem !important;
  margin: 0 !important;
  border-bottom: 1px solid var(--border);
  direction: ltr !important;
}
body.aqm-news-archive-page .news-list .news-card.is-reverse {
  grid-template-columns: 1fr 1.1fr !important;
  padding: 4.5rem 3rem 4.5rem 0 !important;
}
body.aqm-news-archive-page .news-list .news-card.is-reverse .news-card-img {
  order: 2;
}
body.aqm-news-archive-page .news-list .news-card.is-reverse .news-card-body {
  order: 1;
}
body.aqm-news-archive-page .news-list .news-card:last-of-type {
  border-bottom: none;
}

/* Numeros 01., 02., 03. */
body.aqm-news-archive-page .news-list .news-card::before {
  counter-increment: news-counter;
  content: counter(news-counter, decimal-leading-zero) ".";
  position: absolute;
  top: 4.5rem;
  left: 0;
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 800;
  font-style: italic;
  font-size: 1.1rem;
  color: var(--accent);
  letter-spacing: -.01em;
}
body.aqm-news-archive-page .news-list .news-card.is-reverse::before {
  left: auto;
  right: 0;
}

/* — IMAGE — */
body.aqm-news-archive-page .news-list .news-card-img {
  display: block;
  border-radius: 4px;
  overflow: hidden;
  aspect-ratio: 5/4;
  position: relative;
  box-shadow: 0 18px 44px -24px rgba(43,26,18,.35);
  transition: transform .4s, box-shadow .4s;
  width: 100%;
  height: auto;
}
body.aqm-news-archive-page .news-list .news-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .9s cubic-bezier(.25,.1,.25,1);
  border-radius: 0;
}
body.aqm-news-archive-page .news-list .news-card-img:hover img {
  transform: scale(1.03);
}
body.aqm-news-archive-page .news-list .news-card-placeholder {
  width: 100%;
  height: 100%;
  background:
    radial-gradient(circle at 30% 30%, rgba(232,130,93,.4), transparent 50%),
    radial-gradient(circle at 70% 70%, rgba(31,188,188,.35), transparent 55%),
    linear-gradient(135deg, var(--bg-surf) 0%, var(--bg-alt) 100%);
}

/* — CORPS DE LA CARTE — */
body.aqm-news-archive-page .news-list .news-card-body {
  padding: 1rem 0;
}

/* Date kicker */
body.aqm-news-archive-page .news-list .news-card-meta {
  display: inline-flex !important;
  align-items: center;
  gap: 14px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 1.5rem;
}
body.aqm-news-archive-page .news-list .news-card-meta::before {
  content: "";
  display: inline-block;
  width: 28px;
  height: 1px;
  background: var(--accent);
  opacity: .65;
}
body.aqm-news-archive-page .news-list .news-card-meta time {
  color: var(--accent);
}

/* Titre */
body.aqm-news-archive-page .news-list .news-card-title {
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 800;
  font-size: clamp(1.9rem, 3.4vw, 2.8rem);
  letter-spacing: -.01em;
  line-height: 1.15;
  margin: 0 0 1.2rem;
}
body.aqm-news-archive-page .news-list .news-card-title a {
  color: var(--ink) !important;
  text-decoration: none !important;
  background-image: linear-gradient(var(--accent), var(--accent));
  background-size: 0% 2px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  padding-bottom: 2px;
  transition: background-size .35s, color .25s;
}
body.aqm-news-archive-page .news-list .news-card-title a:hover {
  background-size: 100% 2px;
  color: var(--accent) !important;
}

/* Excerpt en serif italique */
body.aqm-news-archive-page .news-list .news-card-excerpt {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.08rem;
  line-height: 1.7;
  color: var(--ink-2);
  margin: 0 0 1.5rem;
  max-width: 52ch;
}

/* Lien "Lire la suite" */
body.aqm-news-archive-page .news-list .news-card-link {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink) !important;
  text-decoration: none !important;
  background-image: linear-gradient(var(--accent), var(--accent));
  background-size: 30% 1px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  padding-bottom: 4px;
  transition: background-size .3s, color .25s, gap .25s;
}
body.aqm-news-archive-page .news-list .news-card-link:hover {
  background-size: 100% 2px;
  color: var(--accent) !important;
  gap: .75rem;
}

/* — COVER STORY (1er article) — "A LA UNE" — */
body.aqm-news-archive-page .news-list .news-card:first-of-type {
  display: block !important;
  text-align: center;
  padding: 1rem 0 5rem !important;
  border-bottom: 2px solid var(--ink);
}
body.aqm-news-archive-page .news-list .news-card:first-of-type::before {
  counter-increment: none;
  content: "À LA UNE";
  position: static;
  display: inline-block;
  margin-bottom: 1.5rem;
  padding: 6px 14px;
  background: var(--ink);
  color: var(--bg);
  font-family: 'Inter', system-ui, sans-serif;
  font-style: normal;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .22em;
}
body.aqm-news-archive-page .news-list .news-card:first-of-type .news-card-img {
  display: block;
  margin: 0 auto 2.5rem;
  max-width: 100%;
  aspect-ratio: 16/8;
}
body.aqm-news-archive-page .news-list .news-card:first-of-type .news-card-body {
  max-width: 720px;
  margin: 0 auto;
}
body.aqm-news-archive-page .news-list .news-card:first-of-type .news-card-meta {
  justify-content: center;
}
body.aqm-news-archive-page .news-list .news-card:first-of-type .news-card-meta::after {
  content: "";
  display: inline-block;
  width: 28px;
  height: 1px;
  background: var(--accent);
  opacity: .65;
}
body.aqm-news-archive-page .news-list .news-card:first-of-type .news-card-title {
  font-size: clamp(2.4rem, 5vw, 3.8rem);
}
body.aqm-news-archive-page .news-list .news-card:first-of-type .news-card-excerpt {
  margin: 0 auto 1.5rem;
  font-size: 1.18rem;
}

/* — PAGINATION — */
body.aqm-news-archive-page .pagination {
  margin-top: 5rem !important;
  padding-top: 2rem;
  border-top: 1px solid var(--border);
  text-align: center;
}
body.aqm-news-archive-page .pagination .page-numbers {
  display: inline-block;
  padding: .6rem 1rem;
  margin: 0 .15rem;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--ink-2);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: border-color .25s, color .25s;
}
body.aqm-news-archive-page .pagination .page-numbers:hover {
  color: var(--accent);
  border-bottom-color: var(--accent);
}
body.aqm-news-archive-page .pagination .page-numbers.current {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

/* — RESPONSIVE — */
@media (max-width: 800px) {
  body.aqm-news-archive-page .aqm-page-hero { padding-top: 6rem; }
  body.aqm-news-archive-page .news-list .news-card,
  body.aqm-news-archive-page .news-list .news-card.is-reverse {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
    padding: 3rem 0 3rem 2rem !important;
  }
  body.aqm-news-archive-page .news-list .news-card.is-reverse {
    padding: 3rem 2rem 3rem 0 !important;
  }
  body.aqm-news-archive-page .news-list .news-card.is-reverse .news-card-img { order: 0; }
  body.aqm-news-archive-page .news-list .news-card.is-reverse .news-card-body { order: 0; }
  body.aqm-news-archive-page .news-list .news-card::before {
    top: 3rem;
    font-size: 1rem;
  }
  body.aqm-news-archive-page .news-list .news-card:first-of-type {
    text-align: left;
    padding: 1rem 0 3rem !important;
  }
  body.aqm-news-archive-page .news-list .news-card:first-of-type .news-card-meta {
    justify-content: flex-start;
  }
}


/* ══════════════════════════════════════════
   SECTION INFOS PRATIQUES (Home — sous Actualités)
   Grille STRICTE 3 colonnes (responsive 2 puis 1).
   Chaque carte = bloc indépendant avec image compacte,
   icône + date + titre + description + bouton.
══════════════════════════════════════════ */
#infos-pratiques {
  padding: 6rem 0 5rem;
  background: var(--bg-alt);
  position: relative;
  overflow: hidden;
}
#infos-pratiques::before {
  content: "";
  position: absolute;
  top: -120px; right: -80px;
  width: 320px; height: 320px;
  background: radial-gradient(circle, var(--mustard) 0%, transparent 70%);
  opacity: .25;
  border-radius: 50%;
  pointer-events: none;
}
#infos-pratiques .infos-header {
  text-align: center;
  max-width: 680px;
  margin: 0 auto 3.5rem;
  position: relative;
  z-index: 1;
}
#infos-pratiques .infos-header .section-label { color: var(--accent); }

/* Grille — 3 colonnes desktop, 2 tablette, 1 mobile. */
.infos-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1.6rem;
  position: relative;
  z-index: 1;
}
@media (max-width: 980px) {
  .infos-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 620px) {
  .infos-grid { grid-template-columns: 1fr !important; }
}

/* — CARTE — */
.info-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--bg-surf);
  border: 1px solid var(--border);
  border-radius: 18px;
  overflow: hidden;
  transition: transform .35s cubic-bezier(.25,.1,.25,1), box-shadow .35s, border-color .35s;
  min-height: 100%;
}
.info-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 22px 48px -28px rgba(43,26,18,.45);
  border-color: transparent;
}

/* Bandeau de couleur en haut de chaque carte */
.info-card::before {
  content: "";
  display: block;
  height: 4px;
  background: var(--info-accent, var(--accent));
  width: 100%;
}

/* Variantes couleur */
.info-card--bordeaux { --info-accent: var(--bordeaux, #8E2230); }
.info-card--coral    { --info-accent: var(--coral,    #E8825D); }
.info-card--teal     { --info-accent: var(--teal,     #136669); }
.info-card--mustard  { --info-accent: var(--mustard,  #D6A035); }
.info-card--mint     { --info-accent: var(--mint,     #6FCFAF); }
.info-card--royal    { --info-accent: var(--royal,    #2A4D8F); }

/* — IMAGE — taille fixe, jamais débordante */
.info-card-img {
  display: block !important;
  width: 100% !important;
  height: 170px !important;
  margin: 0 !important;
  overflow: hidden !important;
  background: var(--bg-alt);
  flex-shrink: 0;
}
.info-card-img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 0 !important;
  transition: transform .6s cubic-bezier(.25,.1,.25,1);
}
.info-card:hover .info-card-img img { transform: scale(1.05); }

/* — CONTENU — */
.info-card-body {
  padding: 1.5rem 1.4rem 1.6rem;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.info-card-icon {
  font-size: 2rem;
  line-height: 1;
  margin-bottom: .8rem;
}

.info-card-kicker {
  display: inline-block;
  align-self: flex-start;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--info-accent, var(--accent));
  background: color-mix(in srgb, var(--info-accent, var(--accent)) 12%, transparent);
  padding: 5px 11px;
  border-radius: 4px;
  margin-bottom: .9rem;
}

.info-card-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 700;
  font-size: 1.28rem;
  line-height: 1.22;
  color: var(--ink);
  margin: 0 0 .7rem;
  letter-spacing: -.01em;
}

.info-card-text {
  font-size: .96rem;
  line-height: 1.6;
  color: var(--ink-2);
  margin: 0 0 1.2rem;
  flex: 1 1 auto;
}

.info-card-cta {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: .35rem;
  margin-top: auto;
  padding-top: .3rem;
  font-family: 'Inter', system-ui, sans-serif;
  font-weight: 600;
  font-size: .88rem;
  color: var(--info-accent, var(--accent));
  text-decoration: none;
  letter-spacing: .02em;
  border-bottom: 2px solid transparent;
  transition: gap .25s, border-color .25s;
}
.info-card-cta:hover {
  gap: .6rem;
  border-bottom-color: var(--info-accent, var(--accent));
}

@media (max-width: 600px) {
  #infos-pratiques { padding: 4rem 0 3.5rem; }
  .infos-grid { gap: 1.2rem; }
  .info-card-img { height: 150px !important; }
  .info-card-body { padding: 1.3rem 1.2rem 1.4rem; }
}

/* ════════════════════════════════════════════════════════════
   THÈMES PAR SOUS-PAGE
   Chaque pôle a sa propre ambiance visuelle (hero + accents).
   Scope : body.aqm-subpage-{slug}
════════════════════════════════════════════════════════════ */

/* Animations partagées */
@keyframes aqm-page-float {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  50%      { transform: translate(20px, -25px) rotate(8deg); }
}
@keyframes aqm-page-pulse {
  0%, 100% { transform: scale(1); opacity: .25; }
  50%      { transform: scale(1.15); opacity: .4; }
}

/* RESET ciblé — Annule blur / opacity / arrondi / background / positionnement
   du blob parent. Chaque sous-page définit ensuite ses propres décorations. */
body[class*="aqm-subpage-"] .aqm-page-hero::before,
body[class*="aqm-subpage-"] .aqm-page-hero::after {
  filter: none !important;
  opacity: 1 !important;
  border-radius: 0 !important;
  background: none;
  width: auto;
  height: auto;
  top: auto;
  bottom: auto;
  left: auto;
  right: auto;
}

/* ──────────────────────────────────────────────
   🚲 ATELIER VÉLO — Atmosphere atelier / boutique
   Palette : noir charbon, orange atelier, jaune fluo
   Décor : engrenages, traces de roue
─────────────────────────────────────────────── */
body.aqm-subpage-atelier-velo {
  --page-accent:   #FF6B35;
  --page-accent-2: #2B2B2B;
  --page-bg-soft:  #FFF5EC;
}
body.aqm-subpage-atelier-velo .aqm-page-hero {
  background:
    radial-gradient(circle at 90% 90%, rgba(255,107,53,.15) 0%, transparent 50%),
    radial-gradient(circle at 10% 10%, rgba(43,43,43,.06) 0%, transparent 50%),
    var(--bg) !important;
  position: relative;
  overflow: hidden;
}
/* Engrenage déco (SVG via data-uri) en haut à droite */
body.aqm-subpage-atelier-velo .aqm-page-hero::before {
  content: "";
  position: absolute;
  width: 220px; height: 220px;
  top: -40px; right: -40px;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FF6B35' opacity='.18'><path d='M19.43 12.98c.04-.32.07-.64.07-.98 0-.34-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98 0 .33.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z'/></svg>") center/contain no-repeat;
  animation: aqm-page-float 14s ease-in-out infinite;
  pointer-events: none;
}
/* Petit vélo en SVG en bas à gauche */
body.aqm-subpage-atelier-velo .aqm-page-hero::after {
  content: "🚲";
  position: absolute;
  bottom: 20px; left: 30px;
  font-size: 3rem;
  opacity: .4;
  filter: grayscale(40%);
  animation: aqm-page-float 9s ease-in-out infinite reverse;
  pointer-events: none;
}
body.aqm-subpage-atelier-velo .aqm-page-hero .section-label {
  color: var(--page-accent) !important;
  letter-spacing: .25em !important;
}
body.aqm-subpage-atelier-velo .aqm-page-hero .section-title {
  font-family: 'Inter', system-ui, sans-serif !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: -.02em !important;
}
body.aqm-subpage-atelier-velo .aqm-page-hero .section-title::after {
  content: "";
  display: block;
  width: 60px;
  height: 4px;
  background: var(--page-accent);
  margin-top: 1.2rem;
}
body.aqm-subpage-atelier-velo .aqm-page-body a {
  color: var(--page-accent) !important;
}
body.aqm-subpage-atelier-velo .aqm-page-body .wp-block-button__link {
  background: var(--page-accent-2) !important;
  color: #fff !important;
  border-radius: 4px !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

/* ──────────────────────────────────────────────
   🇫🇷 FLE — Apprentissage du français, accueil multilingue
   Palette : bleu doux, blanc cassé, rouge subtil (drapeau FR)
   Décor : lettres flottantes A B C
─────────────────────────────────────────────── */
body.aqm-subpage-fle {
  --page-accent:   #2A6FDB;
  --page-accent-2: #E8525D;
  --page-bg-soft:  #F4F8FF;
}
body.aqm-subpage-fle .aqm-page-hero {
  background:
    linear-gradient(135deg, rgba(42,111,219,.06) 0%, transparent 40%),
    linear-gradient(225deg, rgba(232,82,93,.06) 0%, transparent 40%),
    var(--bg) !important;
  position: relative;
  overflow: hidden;
}
/* Lettres flottantes décoratives */
body.aqm-subpage-fle .aqm-page-hero::before {
  content: "A B C É à ê î ô ü ç";
  position: absolute;
  top: 10%; right: 5%;
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic;
  font-weight: 700;
  font-size: 5rem;
  line-height: 1;
  color: var(--page-accent);
  opacity: .08;
  letter-spacing: .15em;
  pointer-events: none;
  user-select: none;
  max-width: 50%;
  word-spacing: .5em;
}
body.aqm-subpage-fle .aqm-page-hero::after {
  content: "Bonjour · Hello · مرحبا · Olá · Привет";
  position: absolute;
  bottom: 25px; left: 50%;
  transform: translateX(-50%);
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic;
  font-size: 1rem;
  color: var(--page-accent);
  opacity: .55;
  letter-spacing: .12em;
  white-space: nowrap;
  pointer-events: none;
}
body.aqm-subpage-fle .aqm-page-hero .section-label { color: var(--page-accent) !important; }
body.aqm-subpage-fle .aqm-page-hero .section-title {
  font-family: 'Fraunces', Georgia, serif !important;
  font-style: italic !important;
  font-weight: 700 !important;
}
body.aqm-subpage-fle .aqm-page-hero .section-title::before {
  content: "« ";
  color: var(--page-accent);
  font-weight: 900;
}
body.aqm-subpage-fle .aqm-page-hero .section-title::after {
  content: " »";
  color: var(--page-accent-2);
  font-weight: 900;
}

/* ──────────────────────────────────────────────
   📚 AIDE AUX DEVOIRS — Enfants / ados, fun et scolaire
   Palette : jaune cahier, vert sapin, rouge crayon
   Décor : lignes de cahier, crayons
─────────────────────────────────────────────── */
body.aqm-subpage-aide-aux-devoirs {
  --page-accent:   #2E7D5B;
  --page-accent-2: #FFD93D;
  --page-bg-soft:  #FFFBEA;
}
body.aqm-subpage-aide-aux-devoirs .aqm-page-hero {
  background:
    /* Lignes de cahier subtiles */
    repeating-linear-gradient(
      to bottom,
      transparent 0,
      transparent 35px,
      rgba(46, 125, 91, .07) 35px,
      rgba(46, 125, 91, .07) 36px
    ),
    /* Marge rouge à gauche */
    linear-gradient(90deg, transparent 0, transparent 50px, rgba(232,82,93,.4) 50px, rgba(232,82,93,.4) 51px, transparent 51px),
    var(--bg) !important;
  position: relative;
  overflow: hidden;
}
body.aqm-subpage-aide-aux-devoirs .aqm-page-hero .container {
  padding-left: 70px !important;
}
body.aqm-subpage-aide-aux-devoirs .aqm-page-hero::after {
  content: "✏️ 📐 📚";
  position: absolute;
  top: 15px; right: 30px;
  font-size: 2.5rem;
  letter-spacing: .5rem;
  opacity: .6;
  animation: aqm-page-float 12s ease-in-out infinite;
  pointer-events: none;
}
body.aqm-subpage-aide-aux-devoirs .aqm-page-hero .section-label {
  color: var(--page-accent) !important;
  background: rgba(255, 217, 61, .35) !important;
  padding: 4px 12px !important;
  border-radius: 0 !important;
  display: inline-block !important;
  transform: rotate(-2deg) !important;
}
body.aqm-subpage-aide-aux-devoirs .aqm-page-hero .section-title {
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 800 !important;
  position: relative;
}
body.aqm-subpage-aide-aux-devoirs .aqm-page-hero .section-title::after {
  content: "";
  display: block;
  width: 80px;
  height: 8px;
  background: var(--page-accent-2);
  border-radius: 2px;
  margin-top: 1rem;
  transform: rotate(-1deg);
}

/* ──────────────────────────────────────────────
   💼 INSERTION / EMPLOI — Pro, corporate, sobre
   Palette : navy, teal, gris ardoise
   Décor : lignes strictes, pas de fantaisie
─────────────────────────────────────────────── */
body.aqm-subpage-insertion-emploi,
body.aqm-subpage-insertion-formation {
  --page-accent:   #1F4D8F;
  --page-accent-2: #136669;
}
body.aqm-subpage-insertion-emploi .aqm-page-hero,
body.aqm-subpage-insertion-formation .aqm-page-hero {
  background: var(--bg) !important;
  border-bottom: 6px solid var(--page-accent);
  position: relative;
  padding-top: 9rem !important;
  padding-bottom: 4rem !important;
}
body.aqm-subpage-insertion-emploi .aqm-page-hero::before,
body.aqm-subpage-insertion-formation .aqm-page-hero::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 8%;
  transform: translateY(-50%);
  width: 1px;
  height: 60%;
  background: var(--page-accent);
  opacity: .3;
}
body.aqm-subpage-insertion-emploi .aqm-page-hero .container,
body.aqm-subpage-insertion-formation .aqm-page-hero .container {
  text-align: left !important;
  max-width: 880px !important;
}
body.aqm-subpage-insertion-emploi .aqm-page-hero .section-label,
body.aqm-subpage-insertion-formation .aqm-page-hero .section-label {
  color: var(--page-accent) !important;
  background: rgba(31, 77, 143, .08) !important;
  padding: 6px 14px !important;
  border-radius: 2px !important;
  letter-spacing: .22em !important;
}
body.aqm-subpage-insertion-emploi .aqm-page-hero .section-title,
body.aqm-subpage-insertion-formation .aqm-page-hero .section-title {
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 700 !important;
  color: var(--page-accent) !important;
  letter-spacing: -.015em !important;
}
body.aqm-subpage-insertion-emploi .aqm-page-body h2,
body.aqm-subpage-insertion-formation .aqm-page-body h2 {
  border-bottom: 2px solid var(--page-accent) !important;
  padding-bottom: .4em !important;
  color: var(--page-accent) !important;
}

/* ──────────────────────────────────────────────
   🏖️ VACANCES — Été, soleil, sorties
   Palette : corail vif, turquoise, jaune soleil
   Décor : soleil, vagues
─────────────────────────────────────────────── */
body.aqm-subpage-vacances {
  --page-accent:   #FF8552;
  --page-accent-2: #1FBCBC;
  --page-bg-soft:  #FFF6E5;
}
body.aqm-subpage-vacances .aqm-page-hero {
  background:
    radial-gradient(circle at 80% 30%, rgba(255,217,61,.25) 0%, transparent 40%),
    radial-gradient(circle at 20% 80%, rgba(31,188,188,.18) 0%, transparent 45%),
    radial-gradient(circle at 50% 50%, rgba(255,133,82,.12) 0%, transparent 60%),
    var(--bg) !important;
  position: relative;
  overflow: hidden;
}
/* Soleil rayonnant en haut à droite */
body.aqm-subpage-vacances .aqm-page-hero::before {
  content: "";
  position: absolute;
  top: -40px; right: -40px;
  width: 200px; height: 200px;
  background: radial-gradient(circle, #FFD93D 0%, #FFB347 50%, transparent 70%);
  border-radius: 50%;
  opacity: .6;
  animation: aqm-page-pulse 6s ease-in-out infinite;
  pointer-events: none;
}
/* Vague décorative en bas */
body.aqm-subpage-vacances .aqm-page-hero::after {
  content: "";
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 40px;
  background:
    radial-gradient(circle at 10% 0%, transparent 20px, var(--page-accent-2) 20px, var(--page-accent-2) 22px, transparent 22px),
    radial-gradient(circle at 30% 0%, transparent 20px, var(--page-accent-2) 20px, var(--page-accent-2) 22px, transparent 22px),
    radial-gradient(circle at 50% 0%, transparent 20px, var(--page-accent-2) 20px, var(--page-accent-2) 22px, transparent 22px),
    radial-gradient(circle at 70% 0%, transparent 20px, var(--page-accent-2) 20px, var(--page-accent-2) 22px, transparent 22px),
    radial-gradient(circle at 90% 0%, transparent 20px, var(--page-accent-2) 20px, var(--page-accent-2) 22px, transparent 22px);
  opacity: .4;
  pointer-events: none;
}
body.aqm-subpage-vacances .aqm-page-hero .section-label {
  color: var(--page-accent) !important;
}
body.aqm-subpage-vacances .aqm-page-hero .section-title {
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 800 !important;
  background: linear-gradient(135deg, var(--page-accent) 0%, var(--page-accent-2) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* ──────────────────────────────────────────────
   👋 ACCUEIL (animation-accueil) — Point d'entrée chaleureux
   Palette : crème + bordeaux signature
   Décor : forme accueillante, simple
─────────────────────────────────────────────── */
body.aqm-subpage-animation-accueil {
  --page-accent:   #8E2230;
  --page-accent-2: #E8825D;
}
body.aqm-subpage-animation-accueil .aqm-page-hero {
  background:
    radial-gradient(ellipse 60% 80% at 50% 100%, rgba(232,130,93,.18) 0%, transparent 70%),
    var(--bg) !important;
  position: relative;
  overflow: hidden;
}
body.aqm-subpage-animation-accueil .aqm-page-hero::before {
  content: "👋";
  position: absolute;
  top: 30%; right: 8%;
  font-size: 4rem;
  opacity: .6;
  transform: rotate(15deg);
  animation: aqm-page-float 8s ease-in-out infinite;
  pointer-events: none;
}
body.aqm-subpage-animation-accueil .aqm-page-hero .section-label {
  color: var(--page-accent) !important;
}
body.aqm-subpage-animation-accueil .aqm-page-hero .section-title {
  font-family: 'Fraunces', Georgia, serif !important;
  font-style: italic !important;
  font-weight: 700 !important;
}
body.aqm-subpage-animation-accueil .aqm-page-hero .section-title::after {
  content: " ✨";
  font-style: normal;
  font-size: .7em;
  vertical-align: super;
}

/* ──────────────────────────────────────────────
   Responsive — masque les ornements trop grands sur mobile
─────────────────────────────────────────────── */
@media (max-width: 700px) {
  body.aqm-subpage-atelier-velo .aqm-page-hero::before,
  body.aqm-subpage-vacances .aqm-page-hero::before {
    width: 120px; height: 120px;
  }
  body.aqm-subpage-fle .aqm-page-hero::before {
    font-size: 3rem;
    max-width: 60%;
  }
  body.aqm-subpage-fle .aqm-page-hero::after {
    font-size: .75rem;
  }
  body.aqm-subpage-aide-aux-devoirs .aqm-page-hero .container {
    padding-left: 30px !important;
  }
  body.aqm-subpage-aide-aux-devoirs .aqm-page-hero::after {
    font-size: 1.6rem;
    letter-spacing: .2rem;
  }
}


/* ══════════════════════════════════════════
   SECTION QUI SOMMES-NOUS / STATUT (home — avant Nos Actions)
══════════════════════════════════════════ */
#status {
  padding: 6rem 0 5rem;
  background: var(--bg);
  position: relative;
  overflow: hidden;
}
#status::before {
  content: "";
  position: absolute;
  width: 360px; height: 360px;
  top: -100px; right: -80px;
  background: radial-gradient(circle, var(--accent) 0%, transparent 70%);
  opacity: .08;
  border-radius: 50%;
  pointer-events: none;
}
#status .container {
  position: relative;
  z-index: 1;
}
/* En-tête centré (comme toutes les autres sections) */
.status-header {
  max-width: 720px;
  margin: 0 auto 3.5rem;
  text-align: center;
}
.status-header .section-label {
  color: var(--accent);
}
.status-header .section-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 800;
  font-size: clamp(1.9rem, 3.4vw, 2.6rem);
  line-height: 1.15;
  letter-spacing: -.015em;
  color: var(--ink);
  margin: 0;
  text-wrap: balance;
}

.status-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 4rem;
  align-items: center;
}
.status-text {
  font-size: 1.02rem;
  line-height: 1.7;
  color: var(--ink-2);
  margin: 0 0 2rem;
}
.status-text p { margin: 0 0 1rem; }
.status-text strong { color: var(--ink); font-weight: 700; }

/* Chiffres clés en bas */
.status-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  padding-top: 1.6rem;
  border-top: 1px solid var(--border);
}
.status-stat {
  text-align: left;
}
.status-stat-n {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 800;
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  line-height: 1;
  color: var(--accent);
  margin-bottom: .35rem;
  letter-spacing: -.015em;
}
.status-stat-l {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: .78rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--ink-3);
  letter-spacing: .02em;
}

/* Visuel à droite */
.status-visual {
  position: relative;
  border-radius: 28px;
  overflow: hidden;
  aspect-ratio: 4/5;
  box-shadow: 0 30px 60px -25px rgba(43,26,18,.45);
  transition: transform .5s cubic-bezier(.22,.61,.36,1), box-shadow .5s;
}
.status-visual:hover {
  transform: translateY(-6px);
  box-shadow: 0 36px 70px -25px rgba(43,26,18,.55);
}
.status-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .8s cubic-bezier(.25,.1,.25,1);
}
.status-visual:hover img { transform: scale(1.04); }

/* Placeholder décoratif si pas d'image */
.status-visual--placeholder {
  background:
    radial-gradient(circle at 30% 30%, color-mix(in srgb, var(--accent) 35%, transparent) 0%, transparent 50%),
    radial-gradient(circle at 70% 70%, color-mix(in srgb, var(--accent-2, var(--accent)) 30%, transparent) 0%, transparent 50%),
    linear-gradient(135deg, var(--bg-surf) 0%, var(--bg-alt) 100%);
}
.status-visual--placeholder::after {
  content: "AQM";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 900;
  font-size: clamp(4rem, 10vw, 7rem);
  letter-spacing: -.02em;
  color: var(--accent);
  opacity: .25;
}

/* Responsive */
@media (max-width: 900px) {
  .status-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .status-visual {
    aspect-ratio: 4/3;
    max-height: 380px;
  }
}
@media (max-width: 600px) {
  #status { padding: 4rem 0 3.5rem; }
  .status-stats {
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem 1rem;
  }
  .status-stat:nth-child(3) { grid-column: 1 / -1; }
}
