/* ==========================================================================
   EchangesAssurances.org — Design system « EA » (refonte B2B 2026-10-15)
   Grammaire des médias SOS (Poppins, fond clair, cartes blanches, chips,
   hero sombre compact), identité propre : pétrole / sarcelle / corail.
   --------------------------------------------------------------------------
   1. Polices            6. Accueil              11. Composants hérités
   2. Jetons             7. Listes & rubriques       (pages statiques)
   3. Base               8. Article             12. Promo, pub, IA
   4. Primitives         9. Recherche, 404       13. Responsive
   5. En-tête & pied    10. Contenu (prose)     14. Accessibilité, impression
   ========================================================================== */

/* 1. Polices — Poppins auto-hébergée (OFL) ------------------------------- */
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/poppins/poppins-400.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 500; font-display: swap; src: url('/fonts/poppins/poppins-500.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 600; font-display: swap; src: url('/fonts/poppins/poppins-600.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 700; font-display: swap; src: url('/fonts/poppins/poppins-700.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 800; font-display: swap; src: url('/fonts/poppins/poppins-800.woff2') format('woff2'); }

/* 2. Jetons ---------------------------------------------------------------- */
:root {
  /* Encre (pétrole) */
  --ea-ink-950: #08161F;
  --ea-ink-900: #0B1F2B;
  --ea-ink-800: #0F2A38;
  --ea-ink-700: #1B3D52;
  --ea-ink-600: #2A5A72;
  --ea-ink-100: #E3ECF1;
  --ea-ink-50:  #F0F5F8;
  /* Sarcelle */
  --ea-teal-700: #1D6F7A;
  --ea-teal-600: #23808D;
  --ea-teal-400: #4AABB9;
  --ea-teal-100: #D7EEF1;
  --ea-teal-50:  #EDF7F8;
  /* Corail (CTA, direct) */
  --ea-coral-700: #B23C26;
  --ea-coral-600: #C9472F;
  --ea-coral-500: #E8634E;
  --ea-coral-100: #FBE3DE;
  --ea-coral-50:  #FDF2EF;
  /* Neutres */
  --ea-bg:      #F6F8FA;
  --ea-surface: #FFFFFF;
  --ea-line:    #E2E8F0;
  --ea-line-2:  #EDF2F7;
  --ea-text:    #172331;
  --ea-text-2:  #46556A;
  --ea-text-3:  #64748B;
  /* États */
  --ea-green:  #2F7D4F; --ea-green-bg: #E8F5EC;
  --ea-amber:  #9A6200; --ea-amber-bg: #FFF5E0; --ea-amber-line: #F2C46B;
  --ea-red:    #B42318; --ea-red-bg:   #FDECEA;
  --ea-blue:   #1E5A8A; --ea-blue-bg:  #EAF2FA;
  /* Forme */
  --ea-radius-xs: 6px;
  --ea-radius-sm: 8px;
  --ea-radius:    12px;
  --ea-radius-lg: 18px;
  --ea-pill:      999px;
  --ea-shadow-sm: 0 1px 2px rgba(15,42,56,.06), 0 1px 3px rgba(15,42,56,.05);
  --ea-shadow:    0 2px 12px rgba(15,42,56,.08);
  --ea-shadow-lg: 0 12px 36px rgba(15,42,56,.14);
  --ea-grad-hero: radial-gradient(900px 340px at 85% -20%, rgba(74,171,185,.28), transparent 65%),
                  linear-gradient(135deg, #0B1F2B 0%, #12303F 50%, #1B4A62 100%);
  /* Mise en page */
  --ea-max: 1280px;
  --ea-prose: 760px;
  --ea-header-h: 68px;
  --ea-font: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
  --ea-ease: cubic-bezier(.2,.7,.2,1);

  /* Alias des anciennes variables (styles en ligne des pages statiques) */
  --primary: var(--ea-ink-700);
  --primary-light: var(--ea-ink-600);
  --primary-dark: var(--ea-ink-800);
  --secondary: var(--ea-coral-600);
  --secondary-dark: var(--ea-coral-700);
  --accent: var(--ea-teal-600);
  --accent-dark: var(--ea-teal-700);
  --danger: var(--ea-red);
  --text: var(--ea-text);
  --text-dark: var(--ea-text);
  --text-mid: var(--ea-text-2);
  --text-light: var(--ea-text-3);
  --bg: var(--ea-surface);
  --bg-light: var(--ea-bg);
  --bg-dark: var(--ea-line-2);
  --border: var(--ea-line);
  --shadow-sm: var(--ea-shadow-sm);
  --shadow: var(--ea-shadow);
  --shadow-lg: var(--ea-shadow-lg);
  --radius-sm: var(--ea-radius-sm);
  --radius: var(--ea-radius);
  --radius-lg: var(--ea-radius-lg);
  --transition: all .2s ease;
  --container: var(--ea-max);
}

/* 3. Base ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; overflow-x: clip; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--ea-font);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ea-text);
  background: var(--ea-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6 { font-family: var(--ea-font); color: var(--ea-text); line-height: 1.25; letter-spacing: -.01em; font-weight: 700; }
h1 { font-size: clamp(1.75rem, 3.2vw, 2.45rem); }
h2 { font-size: clamp(1.35rem, 2.3vw, 1.7rem); }
h3 { font-size: 1.15rem; font-weight: 600; }
h4 { font-size: 1.02rem; font-weight: 600; }
p { margin: 0 0 1rem; }
a { color: var(--ea-teal-700); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--ea-ink-700); }
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
ul, ol { list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; max-width: 100%; }
button { cursor: pointer; background: none; border: 0; }
table { border-collapse: collapse; }
strong, b { font-weight: 600; }
::selection { background: var(--ea-teal-100); color: var(--ea-ink-900); }
:focus-visible { outline: 2px solid var(--ea-teal-600); outline-offset: 2px; border-radius: 4px; }

/* 4. Primitives ------------------------------------------------------------ */
.ea-container, .container { width: 100%; max-width: var(--ea-max); margin: 0 auto; padding: 0 24px; }
.ea-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.ea-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: .72rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase;
  color: var(--ea-teal-700);
}
.ea-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ea-coral-500); display: inline-block; flex-shrink: 0; box-shadow: 0 0 0 0 rgba(232,99,78,.55); animation: ea-pulse 2s infinite; }
@keyframes ea-pulse { 0% { box-shadow: 0 0 0 0 rgba(232,99,78,.55); } 70% { box-shadow: 0 0 0 7px rgba(232,99,78,0); } 100% { box-shadow: 0 0 0 0 rgba(232,99,78,0); } }

/* Boutons */
.ea-btn, .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 11px 22px; border-radius: var(--ea-pill); border: 1.5px solid transparent;
  font-family: var(--ea-font); font-size: .92rem; font-weight: 600; line-height: 1.3;
  text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s var(--ea-ease), box-shadow .18s ease;
}
.ea-btn:hover, .btn:hover { transform: translateY(-1px); }
.ea-btn--ink, .btn { background: var(--ea-ink-700); border-color: var(--ea-ink-700); color: #fff; }
.ea-btn--ink:hover, .btn:hover { background: var(--ea-ink-800); border-color: var(--ea-ink-800); color: #fff; }
.ea-btn--primary, .btn-primary, .btn-cta, .cta-btn { background: var(--ea-coral-600); border-color: var(--ea-coral-600); color: #fff; }
.ea-btn--primary:hover, .btn-primary:hover, .btn-cta:hover, .cta-btn:hover { background: var(--ea-coral-700); border-color: var(--ea-coral-700); color: #fff; box-shadow: 0 6px 18px rgba(201,71,47,.28); }
.btn-secondary { background: var(--ea-teal-700); border-color: var(--ea-teal-700); color: #fff; }
.btn-secondary:hover { background: var(--ea-ink-700); border-color: var(--ea-ink-700); color: #fff; }
.ea-btn--ghost, .btn-outline-primary, .btn-outline { background: transparent; border-color: var(--ea-line); color: var(--ea-ink-700); }
.ea-btn--ghost:hover, .btn-outline-primary:hover, .btn-outline:hover { border-color: var(--ea-ink-700); color: var(--ea-ink-800); background: #fff; }
.ea-btn--light { background: #fff; border-color: #fff; color: var(--ea-ink-800); }
.ea-btn--light:hover { background: var(--ea-teal-50); color: var(--ea-ink-900); }
.ea-btn--glass { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.28); color: #fff; }
.ea-btn--glass:hover { background: rgba(255,255,255,.16); color: #fff; }
.ea-btn--sm, .btn-sm { padding: 8px 16px; font-size: .84rem; }
.btn-lg { padding: 14px 30px; font-size: 1rem; }

/* Chips */
.ea-chip {
  --chip: var(--ea-ink-700);
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 11px; border-radius: var(--ea-pill);
  font-size: .72rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; line-height: 1.5;
  color: var(--chip); background: var(--ea-ink-50); background: color-mix(in srgb, var(--chip) 11%, #fff);
  border: 1px solid var(--ea-line); border-color: color-mix(in srgb, var(--chip) 18%, #fff);
  text-decoration: none; white-space: nowrap;
}
a.ea-chip:hover { background: color-mix(in srgb, var(--chip) 18%, #fff); color: var(--chip); }
.ea-chip--on-dark { background: #fff; border-color: #fff; }
.ea-count { font-size: .72rem; font-weight: 600; color: var(--ea-text-3); background: var(--ea-line-2); border-radius: var(--ea-pill); padding: 1px 7px; line-height: 1.6; margin-left: auto; }
.ea-count:empty { display: none; }

/* Titres de section */
.ea-section { padding: 36px 0; }
.ea-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.ea-section-head h2 { font-size: clamp(1.3rem, 2vw, 1.6rem); }
.ea-section-head p { color: var(--ea-text-2); margin: 4px 0 0; font-size: .95rem; max-width: 720px; }
.ea-label {
  display: flex; align-items: center; gap: 10px;
  font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ea-text-3);
  margin: 0 0 14px;
}
.ea-label::after { content: ''; flex: 1; height: 1px; background: var(--ea-line); }
.ea-link-more { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: .9rem; color: var(--ea-teal-700); white-space: nowrap; }
.ea-link-more:hover { gap: 9px; color: var(--ea-ink-800); }

/* 5. En-tête --------------------------------------------------------------- */
.ea-header {
  position: sticky; top: 0; z-index: 1000;
  background: #fff; /* pas de backdrop-filter : il casserait le menu mobile en position fixe */
  border-bottom: 1px solid var(--ea-line);
  transition: box-shadow .2s ease;
}
.ea-header.scrolled { box-shadow: 0 4px 18px rgba(15,42,56,.08); }
.ea-header__bar { height: var(--ea-header-h); display: flex; align-items: center; gap: 28px; }
.ea-logo { display: inline-flex; align-items: center; gap: 11px; color: var(--ea-ink-800); text-decoration: none; min-width: 0; }
.ea-logo:hover { color: var(--ea-ink-800); }
.ea-logo__img { width: 40px; height: 40px; flex-shrink: 0; }
.ea-logo__text { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.ea-logo__name { font-size: 1.12rem; font-weight: 500; letter-spacing: -.015em; color: var(--ea-ink-800); }
.ea-logo__name b { font-weight: 800; color: var(--ea-ink-700); }
.ea-logo__tag { font-size: .7rem; font-weight: 500; color: var(--ea-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ea-nav { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.ea-nav__item {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 14px; border-radius: var(--ea-pill);
  font-size: .92rem; font-weight: 500; color: var(--ea-text-2); text-decoration: none; white-space: nowrap;
  transition: background .15s ease, color .15s ease;
}
.ea-nav__item:hover, .ea-nav__item[aria-current="page"] { background: var(--ea-ink-50); color: var(--ea-ink-800); }
.ea-nav__item svg { transition: transform .2s ease; }
.ea-nav__mega[aria-expanded="true"] { background: var(--ea-ink-50); color: var(--ea-ink-800); }
.ea-nav__mega[aria-expanded="true"] svg { transform: rotate(180deg); }
.ea-nav__live { background: var(--ea-coral-50); color: var(--ea-coral-700); font-weight: 600; margin-left: 6px; }
.ea-nav__live:hover, .ea-nav__live[aria-current="page"] { background: var(--ea-coral-100); color: var(--ea-coral-700); }
.ea-header__tools { display: flex; align-items: center; gap: 6px; }
.ea-icon-btn {
  width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  color: var(--ea-ink-700); border: 1px solid var(--ea-line); background: #fff; transition: background .15s ease, border-color .15s ease;
}
.ea-icon-btn:hover, .ea-icon-btn[aria-expanded="true"] { background: var(--ea-ink-50); border-color: var(--ea-ink-100); }
.ea-burger { display: none; }

/* Recherche */
.ea-search { border-top: 1px solid var(--ea-line); background: #fff; padding: 14px 0; }
.ea-search__form { display: flex; align-items: center; gap: 12px; color: var(--ea-text-3); }
.ea-search__form input {
  flex: 1; min-width: 0; border: 0; outline: 0; background: transparent;
  font-size: 1.05rem; color: var(--ea-text); padding: 8px 0;
}
.ea-search__form input::placeholder { color: var(--ea-text-3); }

/* Méga-menu */
.ea-mega {
  position: absolute; left: 0; right: 0; top: 100%;
  background: #fff; border-top: 1px solid var(--ea-line); box-shadow: var(--ea-shadow-lg);
  max-height: calc(100vh - var(--ea-header-h)); overflow-y: auto; overscroll-behavior: contain;
  padding: 24px 0 28px;
}
.ea-mega__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.ea-mega__title { font-size: 1.05rem; font-weight: 700; color: var(--ea-ink-800); margin: 2px 0 0; }
.ea-mega__close { display: none; }
.ea-mega__links { display: none; }
.ea-mega__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.ea-mega__col {
  --chip: var(--ea-ink-700);
  border: 1px solid var(--ea-line); border-radius: var(--ea-radius); padding: 14px 14px 12px; background: #fff;
  display: flex; flex-direction: column; transition: border-color .15s ease, box-shadow .15s ease;
}
.ea-mega__col:hover, .ea-mega__col.is-active { border-color: color-mix(in srgb, var(--chip) 35%, #fff); box-shadow: var(--ea-shadow-sm); }
.ea-mega__univers { display: flex; align-items: center; gap: 10px; color: var(--ea-text); text-decoration: none; margin-bottom: 10px; }
.ea-mega__univers strong { display: block; font-size: .92rem; line-height: 1.25; color: var(--ea-ink-900); }
.ea-mega__univers small { display: block; font-size: .74rem; color: var(--ea-text-3); }
.ea-mega__univers small .ea-count { all: unset; }
.ea-mega__univers:hover strong { color: var(--chip); }
.ea-uicon {
  width: 38px; height: 38px; border-radius: 10px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center; font-size: 1.15rem;
  background: var(--ea-ink-50); background: color-mix(in srgb, var(--chip) 12%, #fff);
}
.ea-mega__col ul { display: flex; flex-direction: column; gap: 1px; margin-bottom: 8px; }
.ea-mega__col li a {
  display: flex; align-items: center; gap: 8px; padding: 6px 8px; margin: 0 -8px; border-radius: var(--ea-radius-xs);
  font-size: .84rem; color: var(--ea-text-2); line-height: 1.35;
}
.ea-mega__col li a:hover { background: var(--ea-bg); color: var(--chip); }
.ea-mega__all { margin-top: auto; font-size: .8rem; font-weight: 600; color: var(--chip); }
.ea-mega__all:hover { color: var(--ea-ink-900); }

/* Pied de page */
.ea-footer { background: var(--ea-ink-900); color: rgba(255,255,255,.72); padding: 56px 0 0; margin-top: 0; }
.ea-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 40px; }
.ea-logo--light .ea-logo__name, .ea-logo--light .ea-logo__name b { color: #fff; }
.ea-logo--light .ea-logo__tag { color: rgba(255,255,255,.55); }
.ea-footer__brand p { font-size: .88rem; line-height: 1.7; margin: 16px 0 14px; max-width: 360px; }
.ea-footer__method { font-size: .86rem; font-weight: 600; color: var(--ea-teal-400); }
.ea-footer__method:hover { color: #fff; }
.ea-footer__title { font-size: .76rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: #fff; margin: 6px 0 14px; }
.ea-footer__col ul { display: flex; flex-direction: column; gap: 9px; }
.ea-footer__col a { color: rgba(255,255,255,.68); font-size: .88rem; }
.ea-footer__col a:hover { color: #fff; }
.ea-footer__bottom {
  display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  border-top: 1px solid rgba(255,255,255,.09); padding-top: 18px; padding-bottom: 22px;
  font-size: .78rem; color: rgba(255,255,255,.5);
}

/* 6. Accueil --------------------------------------------------------------- */
.ea-hero { background: var(--ea-grad-hero); color: #fff; padding: 40px 0 36px; }
.ea-hero__inner { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 40px; align-items: center; }
.ea-hero__badge {
  display: inline-flex; align-items: center; gap: 8px; padding: 6px 13px; border-radius: var(--ea-pill);
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16);
  font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.9);
  margin-bottom: 16px;
}
.ea-hero h1 { color: #fff; font-size: clamp(1.7rem, 3.3vw, 2.5rem); font-weight: 700; letter-spacing: -.02em; margin-bottom: 12px; max-width: 720px; }
.ea-hero h1 em { font-style: normal; color: var(--ea-teal-400); }
.ea-hero__lead { color: rgba(255,255,255,.8); font-size: 1.02rem; line-height: 1.65; max-width: 640px; margin: 0; }
.ea-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.ea-stat {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.13); border-radius: var(--ea-radius);
  padding: 14px 10px; text-align: center;
}
.ea-stat strong { display: block; font-size: 1.55rem; font-weight: 700; color: #fff; line-height: 1.1; letter-spacing: -.02em; }
.ea-stat span { display: block; font-size: .68rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: rgba(255,255,255,.62); margin-top: 6px; }

/* Bloc « Actualité en direct » */
.ea-live { padding: 28px 0 8px; }
.ea-live__box { background: var(--ea-ink-900); border-radius: var(--ea-radius-lg); padding: 22px; color: #fff; box-shadow: var(--ea-shadow-lg); }
.ea-live__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.ea-live__title { display: inline-flex; align-items: center; gap: 10px; font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #FFB4A6; margin: 0; }
.ea-live__grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); grid-template-rows: auto auto; gap: 14px; }
.ea-live__side { display: grid; grid-template-rows: 1fr 1fr; gap: 14px; }
.ea-live__row { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.ea-overlay { position: relative; display: block; border-radius: var(--ea-radius); overflow: hidden; min-height: 200px; background: var(--ea-ink-800); isolation: isolate; }
.ea-overlay img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .5s var(--ea-ease); }
.ea-overlay::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgba(8,22,31,.96) 0%, rgba(8,22,31,.72) 42%, rgba(8,22,31,.08) 100%); }
.ea-overlay:hover img { transform: scale(1.035); }
.ea-overlay__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 18px 20px; }
.ea-overlay__tags { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.ea-overlay h3 { color: #fff; font-size: 1.08rem; line-height: 1.3; margin: 0 0 6px; }
.ea-overlay h3 a { color: inherit; }
.ea-overlay h3 a::after { content: ''; position: absolute; inset: 0; }
.ea-overlay p { color: rgba(255,255,255,.78); font-size: .88rem; line-height: 1.55; margin: 0 0 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ea-overlay__meta { font-size: .76rem; color: rgba(255,255,255,.62); }
.ea-overlay--feature { min-height: 420px; }
.ea-overlay--feature h3 { font-size: clamp(1.3rem, 2.2vw, 1.75rem); letter-spacing: -.015em; }
.ea-flag { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: var(--ea-pill); background: var(--ea-coral-600); color: #fff; font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.ea-live .ea-chip { background: rgba(255,255,255,.94); border-color: transparent; }
.ea-live__row .ea-tile { display: flex; gap: 12px; align-items: center; padding: 10px; border-radius: var(--ea-radius); background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); position: relative; transition: background .15s ease; }
.ea-live__row .ea-tile:hover { background: rgba(255,255,255,.1); }
.ea-tile img { width: 84px; height: 64px; object-fit: cover; border-radius: var(--ea-radius-sm); flex-shrink: 0; }
.ea-tile__kicker { display: block; font-size: .64rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ea-teal-400); margin-bottom: 3px; }
.ea-tile h3 { font-size: .88rem; font-weight: 600; line-height: 1.35; color: #fff; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ea-tile h3 a { color: inherit; }
.ea-tile h3 a::after { content: ''; position: absolute; inset: 0; }
.ea-tile time { display: block; font-size: .72rem; color: rgba(255,255,255,.55); margin-top: 3px; }

/* Sections univers */
.ea-univers { --chip: var(--ea-ink-700); background: #fff; border: 1px solid var(--ea-line); border-radius: var(--ea-radius-lg); padding: 26px; box-shadow: var(--ea-shadow-sm); }
.ea-univers + .ea-univers, .ea-univers + .ea-band, .ea-band + .ea-univers { margin-top: 22px; }
.ea-univers__head { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; flex-wrap: wrap; }
.ea-univers__head .ea-uicon { width: 46px; height: 46px; font-size: 1.35rem; border-radius: 12px; }
.ea-univers__titles { flex: 1; min-width: 220px; }
.ea-univers__titles h2 { font-size: clamp(1.2rem, 1.9vw, 1.45rem); margin: 0; }
.ea-univers__titles h2 a { color: inherit; }
.ea-univers__titles h2 a:hover { color: var(--chip); }
.ea-univers__titles p { margin: 2px 0 0; font-size: .88rem; color: var(--ea-text-2); }
.ea-univers__subs { display: flex; flex-wrap: wrap; gap: 8px; margin: -6px 0 22px; }
.ea-grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.ea-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ea-dossiers { margin-top: 24px; background: var(--ea-bg); background: color-mix(in srgb, var(--chip) 5%, #fff); border: 1px solid var(--ea-line); border-color: color-mix(in srgb, var(--chip) 14%, #fff); border-radius: var(--ea-radius); padding: 18px; }
.ea-dossiers .ea-label { color: var(--chip); }
.ea-dossiers .ea-label::after { background: color-mix(in srgb, var(--chip) 20%, #fff); }
.ea-dossiers__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }

/* Carte article */
.ea-card { --chip: var(--ea-ink-700); position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--ea-line); border-radius: var(--ea-radius); overflow: hidden; transition: box-shadow .2s ease, transform .2s var(--ea-ease), border-color .2s ease; min-width: 0; }
.ea-card:hover { box-shadow: var(--ea-shadow-lg); transform: translateY(-2px); border-color: color-mix(in srgb, var(--chip) 25%, var(--ea-line)); }
.ea-card__media { aspect-ratio: 16 / 9; overflow: hidden; background: var(--ea-ink-50); }
.ea-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ea-ease); }
.ea-card:hover .ea-card__media img { transform: scale(1.04); }
.ea-card__media--empty { display: flex; align-items: center; justify-content: center; font-size: 2.2rem; background: var(--ea-ink-50); background: color-mix(in srgb, var(--chip) 9%, #fff); }
.ea-card__body { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px 16px; flex: 1; }
.ea-card__kicker { font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--chip); line-height: 1.4; }
.ea-card__title { font-size: .98rem; font-weight: 600; line-height: 1.38; margin: 0; letter-spacing: -.005em; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ea-card__title a { color: var(--ea-text); }
.ea-card__title a::after { content: ''; position: absolute; inset: 0; }
.ea-card:hover .ea-card__title a { color: var(--ea-ink-700); }
.ea-card__excerpt { font-size: .86rem; color: var(--ea-text-2); line-height: 1.55; margin: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ea-card__meta { margin-top: auto; padding-top: 4px; font-size: .76rem; color: var(--ea-text-3); }
.ea-card--row { flex-direction: row; align-items: stretch; }
.ea-card--row .ea-card__media { width: 38%; aspect-ratio: auto; flex-shrink: 0; }
.ea-card--mini { padding: 14px 16px; gap: 6px; }
.ea-card--mini .ea-card__title { font-size: .92rem; -webkit-line-clamp: 2; }

/* Carte dossier / fiche */
.ea-dossier {
  --chip: var(--ea-ink-700);
  display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; border-radius: var(--ea-radius);
  background: #fff; border: 1px solid var(--ea-line); color: var(--ea-text); text-decoration: none; min-width: 0;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s var(--ea-ease);
}
.ea-dossier:hover { border-color: color-mix(in srgb, var(--chip) 40%, #fff); box-shadow: var(--ea-shadow); transform: translateY(-1px); color: var(--ea-text); }
.ea-dossier__label { align-self: flex-start; font-size: .64rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 3px 8px; border-radius: var(--ea-radius-xs); color: #fff; background: var(--chip); }
.ea-dossier__title { font-size: .92rem; font-weight: 600; line-height: 1.38; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ea-dossier p { font-size: .8rem; color: var(--ea-text-2); line-height: 1.5; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ea-dossier__cta { margin-top: auto; font-size: .78rem; font-weight: 600; color: var(--chip); }

/* Bandeaux */
.ea-band { border-radius: var(--ea-radius-lg); padding: 26px; }
.ea-band--method { background: #fff; border: 1px solid var(--ea-line); }
.ea-method { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.ea-method__item { display: flex; gap: 14px; align-items: flex-start; }
.ea-method__icon { width: 42px; height: 42px; border-radius: 12px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; font-size: 1.2rem; background: var(--ea-teal-50); }
.ea-method__item h3 { font-size: .98rem; margin: 2px 0 4px; }
.ea-method__item p { font-size: .86rem; color: var(--ea-text-2); margin: 0; line-height: 1.55; }
.ea-band--fiches { background: linear-gradient(135deg, var(--ea-teal-50), #fff 70%); border: 1px solid var(--ea-teal-100); }
.ea-band--promo { padding: 0; }
.ea-band--promo .book-promo { margin: 0; }

/* 7. Listes & rubriques ---------------------------------------------------- */
.ea-page-hero { background: var(--ea-grad-hero); color: #fff; padding: 34px 0 30px; }
.ea-page-hero__row { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.ea-page-hero .ea-uicon { width: 56px; height: 56px; font-size: 1.6rem; border-radius: 14px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.15); }
.ea-page-hero h1 { color: #fff; margin: 0; }
.ea-page-hero__lead { color: rgba(255,255,255,.8); max-width: 760px; margin: 12px 0 0; font-size: 1rem; }
.ea-page-hero__stats { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.ea-pill-stat { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: var(--ea-pill); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); font-size: .8rem; color: rgba(255,255,255,.88); }
.ea-pill-stat b { color: #fff; }
.ea-crumbs, .breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: .8rem; color: rgba(255,255,255,.62); margin-bottom: 14px; }
.ea-crumbs a, .breadcrumb a { color: rgba(255,255,255,.78); }
.ea-crumbs a:hover, .breadcrumb a:hover { color: #fff; }
.ea-crumbs .sep, .breadcrumb .sep { color: rgba(255,255,255,.35); }
.breadcrumb-list { display: flex; flex-wrap: wrap; gap: 6px; }
.ea-filters { background: #fff; border-bottom: 1px solid var(--ea-line); }
.ea-filters__inner { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 12px 24px; }
.ea-filters__label { font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ea-text-3); margin-right: 4px; white-space: nowrap; }
.ea-filter {
  --chip: var(--ea-ink-700);
  display: inline-flex; align-items: center; gap: 7px; padding: 7px 14px; border-radius: var(--ea-pill);
  border: 1px solid var(--ea-line); background: #fff; color: var(--ea-text-2); font-size: .84rem; font-weight: 500; white-space: nowrap;
}
.ea-filter:hover { border-color: color-mix(in srgb, var(--chip) 40%, #fff); color: var(--chip); }
.ea-filter.is-active { background: var(--chip); border-color: var(--chip); color: #fff; }
.ea-filter.is-active .ea-count { background: rgba(255,255,255,.22); color: #fff; }
.ea-filter .ea-count { margin-left: 0; }
.ea-list { padding: 30px 0 56px; }
.ea-pagination { display: flex; justify-content: center; align-items: center; gap: 6px; margin: 36px 0 0; flex-wrap: wrap; }
.ea-pagination a, .ea-pagination span {
  display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px;
  border-radius: var(--ea-pill); border: 1px solid var(--ea-line); background: #fff; font-size: .88rem; font-weight: 500; color: var(--ea-text-2);
}
.ea-pagination a:hover { border-color: var(--ea-ink-700); color: var(--ea-ink-800); }
.ea-pagination .is-current { background: var(--ea-ink-700); border-color: var(--ea-ink-700); color: #fff; }
.ea-pagination .is-gap { border: 0; background: none; min-width: 20px; padding: 0; }
.ea-empty { background: #fff; border: 1px dashed var(--ea-line); border-radius: var(--ea-radius); padding: 40px; text-align: center; color: var(--ea-text-2); }
.ea-toolbar { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }
.ea-toolbar h2 { font-size: 1.25rem; }
.ea-toolbar span { font-size: .85rem; color: var(--ea-text-3); }
.ea-feature-row { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 18px; margin-bottom: 22px; }
.ea-feature-row .ea-overlay--feature { min-height: 360px; }
.ea-feature-row__side { display: flex; flex-direction: column; gap: 12px; }

/* Ressources (dossiers / fiches) */
.ea-res-group { --chip: var(--ea-ink-700); margin-bottom: 30px; }
.ea-res-group__head { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin-bottom: 14px; }
.ea-res-group__head h2 { font-size: 1.2rem; margin: 0; }
.ea-res-group__head .ea-count { margin-left: 0; }

/* 8. Article --------------------------------------------------------------- */
.ea-article-hero { background: var(--ea-grad-hero); color: #fff; padding: 34px 0 38px; }
.ea-article-hero__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 40px; align-items: center; }
.ea-article-hero__grid--noimg { grid-template-columns: minmax(0, 860px); }
.ea-article-hero .ea-chip { background: #fff; border-color: #fff; }
.ea-article-hero h1 { color: #fff; font-size: clamp(1.6rem, 3vw, 2.3rem); letter-spacing: -.02em; margin: 14px 0 12px; }
.ea-article-hero__lead { color: rgba(255,255,255,.82); font-size: 1.02rem; line-height: 1.65; margin: 0 0 16px; }
.ea-article-hero__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-size: .84rem; color: rgba(255,255,255,.7); }
.ea-article-hero__meta span { display: inline-flex; align-items: center; gap: 6px; }
.ea-article-hero__media { border-radius: var(--ea-radius-lg); overflow: hidden; box-shadow: 0 18px 40px rgba(0,0,0,.35); aspect-ratio: 16 / 10; background: var(--ea-ink-800); }
.ea-article-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.ea-share { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.ea-share__label { font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.62); margin-right: 2px; }
.ea-share__btn {
  position: relative; width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.22); color: #fff; transition: background .15s ease, transform .15s ease;
}
.ea-share__btn:hover { background: #fff; color: var(--ea-ink-800); transform: translateY(-1px); }
.ea-share__btn svg { width: 16px; height: 16px; }
.ea-share__feedback { position: absolute; top: -30px; left: 50%; transform: translateX(-50%); background: #fff; color: var(--ea-ink-800); font-size: .7rem; font-weight: 600; padding: 3px 8px; border-radius: 6px; opacity: 0; pointer-events: none; transition: opacity .2s ease; white-space: nowrap; }
.ea-share__btn.copied .ea-share__feedback { opacity: 1; }

.ea-article { padding: 36px 0 56px; }
.ea-article__grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 48px; align-items: start; max-width: 1180px; margin: 0 auto; }
.ea-article__main { min-width: 0; max-width: var(--ea-prose); }
.ea-article__aside { display: flex; flex-direction: column; gap: 18px; align-self: stretch; }
.ea-aside-sticky { position: sticky; top: calc(var(--ea-header-h) + 20px); max-height: calc(100vh - var(--ea-header-h) - 40px); overflow-y: auto; scrollbar-width: thin; }
.ea-widget { background: #fff; border: 1px solid var(--ea-line); border-radius: var(--ea-radius); padding: 18px; }
.ea-widget__title { font-size: .72rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--ea-text-3); margin: 0 0 12px; }
.ea-toc ol { counter-reset: eatoc; display: flex; flex-direction: column; gap: 1px; }
.ea-toc li { counter-increment: eatoc; }
.ea-toc a { display: flex; gap: 10px; padding: 7px 10px 7px 8px; border-radius: var(--ea-radius-xs); font-size: .84rem; line-height: 1.4; color: var(--ea-text-2); border-left: 2px solid transparent; }
.ea-toc a::before { content: counter(eatoc); font-size: .74rem; font-weight: 700; color: var(--ea-text-3); min-width: 14px; }
.ea-toc a:hover { background: var(--ea-bg); color: var(--ea-ink-800); }
.ea-toc a.active { background: var(--ea-teal-50); color: var(--ea-teal-700); border-left-color: var(--ea-teal-600); font-weight: 600; }
.ea-mini-list li + li { border-top: 1px solid var(--ea-line-2); }
.ea-mini-list a { display: block; padding: 10px 0; font-size: .86rem; font-weight: 500; line-height: 1.4; color: var(--ea-text); }
.ea-mini-list a:hover { color: var(--ea-teal-700); }
.ea-mini-list time { display: block; font-size: .72rem; color: var(--ea-text-3); font-weight: 400; margin-top: 2px; }
.ea-related { margin-top: 44px; padding-top: 28px; border-top: 1px solid var(--ea-line); }
.ea-related h2 { font-size: 1.2rem; margin-bottom: 16px; }

/* 9. Recherche & 404 ------------------------------------------------------- */
.ea-searchpage__form { display: flex; gap: 10px; margin-top: 18px; max-width: 720px; }
.ea-searchpage__form input { flex: 1; min-width: 0; padding: 13px 18px; border-radius: var(--ea-pill); border: 1px solid rgba(255,255,255,.25); background: #fff; color: var(--ea-text); font-size: 1rem; outline: none; }
.ea-searchpage__form input:focus { box-shadow: 0 0 0 3px rgba(74,171,185,.45); }
.ea-result { display: block; padding: 16px 18px; background: #fff; border: 1px solid var(--ea-line); border-radius: var(--ea-radius); color: var(--ea-text); transition: border-color .15s ease, box-shadow .15s ease; }
.ea-result + .ea-result { margin-top: 10px; }
.ea-result:hover { border-color: var(--ea-teal-400); box-shadow: var(--ea-shadow); color: var(--ea-text); }
.ea-result strong { display: block; font-size: 1rem; margin: 6px 0 4px; }
.ea-result p { font-size: .86rem; color: var(--ea-text-2); margin: 0; }
.ea-result mark { background: var(--ea-teal-100); color: inherit; border-radius: 3px; padding: 0 2px; }
.ea-404 { text-align: center; padding: 20px 0 10px; }
.ea-404__code { font-size: clamp(4rem, 12vw, 7rem); font-weight: 800; line-height: 1; color: rgba(255,255,255,.14); letter-spacing: -.04em; }

/* 10. Contenu éditorial (articles + pages statiques) ----------------------- */
:is(.ea-prose, .content-main) { font-size: 1.04rem; line-height: 1.78; color: var(--ea-text); }
:is(.ea-prose, .content-main) > section + section { margin-top: 8px; }
:is(.ea-prose, .content-main) h2 { font-size: clamp(1.3rem, 2.1vw, 1.55rem); margin: 2.1em 0 .65em; scroll-margin-top: calc(var(--ea-header-h) + 24px); }
:is(.ea-prose, .content-main) > h2:first-child, :is(.ea-prose, .content-main) > section:first-child > h2:first-child { margin-top: 0; }
:is(.ea-prose, .content-main) h3 { font-size: 1.14rem; margin: 1.7em 0 .55em; scroll-margin-top: calc(var(--ea-header-h) + 24px); }
:is(.ea-prose, .content-main) h4 { margin: 1.4em 0 .5em; }
:is(.ea-prose, .content-main) p { margin: 0 0 1.1em; }
:is(.ea-prose, .content-main) a:not([class]) { color: var(--ea-teal-700); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--ea-teal-600) 40%, transparent); text-underline-offset: 3px; text-decoration-thickness: 1px; }
:is(.ea-prose, .content-main) a:not([class]):hover { color: var(--ea-ink-800); text-decoration-color: currentColor; }
:is(.ea-prose, .content-main) ul:not([class]), :is(.ea-prose, .content-main) ol:not([class]) { margin: 0 0 1.2em; padding-left: 1.4em; }
:is(.ea-prose, .content-main) ul:not([class]) { list-style: none; padding-left: 1.2em; }
:is(.ea-prose, .content-main) ul:not([class]) > li { position: relative; }
:is(.ea-prose, .content-main) ul:not([class]) > li::before { content: ''; position: absolute; left: -1em; top: .72em; width: 6px; height: 6px; border-radius: 50%; background: var(--ea-teal-600); }
:is(.ea-prose, .content-main) ol:not([class]) { list-style: decimal; }
:is(.ea-prose, .content-main) ol:not([class]) > li::marker { color: var(--ea-teal-700); font-weight: 600; }
:is(.ea-prose, .content-main) li { margin-bottom: .45em; }
:is(.ea-prose, .content-main) li > ul, :is(.ea-prose, .content-main) li > ol { margin: .45em 0 .3em; }
:is(.ea-prose, .content-main) blockquote { margin: 1.6em 0; padding: 14px 20px; border-left: 3px solid var(--ea-teal-600); background: var(--ea-teal-50); border-radius: 0 var(--ea-radius-sm) var(--ea-radius-sm) 0; color: var(--ea-text-2); font-style: italic; }
:is(.ea-prose, .content-main) hr { border: 0; height: 1px; background: var(--ea-line); margin: 2em 0; }
:is(.ea-prose, .content-main) figure { margin: 1.5em 0; }
:is(.ea-prose, .content-main) figcaption { font-size: .82rem; color: var(--ea-text-3); margin-top: 8px; }
:is(.ea-prose, .content-main) img { border-radius: var(--ea-radius); }
:is(.ea-prose, .content-main) code { font-size: .9em; background: var(--ea-line-2); padding: 1px 5px; border-radius: 4px; }
:is(.ea-prose, .content-main) table:not([class]), .data-table, .comparison-table, .tax-table, .delai-table {
  width: 100%; margin: 1.5em 0; font-size: .9rem; line-height: 1.5; background: #fff;
  border: 1px solid var(--ea-line); border-radius: var(--ea-radius); border-collapse: separate; border-spacing: 0; overflow: hidden;
}
:is(.ea-prose, .content-main) table:not([class]) th, .data-table th, .comparison-table th, .tax-table th, .delai-table th {
  background: var(--ea-ink-700); color: #fff; font-weight: 600; text-align: left; padding: 11px 14px; font-size: .84rem; vertical-align: bottom;
}
:is(.ea-prose, .content-main) table:not([class]) td, .data-table td, .comparison-table td, .tax-table td, .delai-table td {
  padding: 10px 14px; border-top: 1px solid var(--ea-line); color: var(--ea-text-2); vertical-align: top;
}
:is(.ea-prose, .content-main) table:not([class]) tr:nth-child(even) td, .data-table tr:nth-child(even) td, .comparison-table tr:nth-child(even) td { background: var(--ea-bg); }
.table-wrap, .table-wrapper, .table-responsive { overflow-x: auto; margin: 1.5em 0; border-radius: var(--ea-radius); }
.table-wrap > table, .table-wrapper > table, .table-responsive > table { margin: 0; }

/* Chapô */
:is(.ea-prose, .content-main) .intro-text, .lead {
  font-size: 1.14rem; line-height: 1.7; color: var(--ea-text); font-weight: 500;
  padding-left: 18px; border-left: 3px solid var(--ea-coral-500); margin-bottom: 1.6em;
}

/* Sommaire en ligne (mobile) — le JS le duplique dans la colonne latérale sur grand écran */
.toc-box, nav.toc {
  background: #fff; border: 1px solid var(--ea-line); border-radius: var(--ea-radius); padding: 16px 18px 10px; margin: 0 0 2em;
}
.toc-box .toc-title, .toc .toc-title { font-size: .76rem !important; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--ea-text-3); margin: 0 0 8px !important; padding: 0; border: 0; display: block; }
.toc-box ol, .toc-box ul, nav.toc ol, nav.toc ul { counter-reset: tocb; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.toc-box li, nav.toc li { counter-increment: tocb; margin: 0 !important; }
.toc-box li::before, nav.toc li::before { content: none !important; }
.toc-box li + li, nav.toc li + li { border-top: 1px solid var(--ea-line-2); }
.toc-box a, nav.toc a { display: flex; gap: 10px; padding: 8px 0; font-size: .9rem; line-height: 1.4; color: var(--ea-text-2) !important; text-decoration: none !important; }
.toc-box a::before, nav.toc a::before { content: counter(tocb); font-weight: 700; font-size: .78rem; color: var(--ea-teal-700); min-width: 16px; }
.toc-box a:hover, nav.toc a:hover { color: var(--ea-ink-800) !important; }

/* FAQ (accordéon .faq-item et <details>) */
.faq-section { margin: 2em 0; }
.faq-list, .faq-block { display: flex; flex-direction: column; gap: 10px; margin: 1em 0 1.6em; padding: 0 !important; list-style: none !important; }
.faq-list > li::before { content: none !important; }
.faq-item, :is(.ea-prose, .content-main) details {
  background: #fff; border: 1px solid var(--ea-line); border-radius: var(--ea-radius); overflow: hidden;
  transition: border-color .2s ease, box-shadow .2s ease; margin: 0;
}
.faq-item.open, :is(.ea-prose, .content-main) details[open] { border-color: var(--ea-teal-400); box-shadow: var(--ea-shadow); }
.faq-question, :is(.ea-prose, .content-main) details > summary {
  display: flex; justify-content: space-between; align-items: center; gap: 16px; width: 100%;
  padding: 15px 18px; text-align: left; cursor: pointer; list-style: none;
  font-family: var(--ea-font); font-size: .98rem; font-weight: 600; line-height: 1.45; color: var(--ea-text); background: none; border: 0;
}
:is(.ea-prose, .content-main) details > summary::-webkit-details-marker { display: none; }
:is(.ea-prose, .content-main) details > summary::after { content: '+'; flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; background: var(--ea-teal-50); color: var(--ea-teal-700); display: inline-flex; align-items: center; justify-content: center; font-weight: 500; font-size: 1.15rem; transition: transform .25s ease, background .2s ease; }
:is(.ea-prose, .content-main) details[open] > summary::after { transform: rotate(45deg); background: var(--ea-teal-700); color: #fff; }
.faq-question:hover, :is(.ea-prose, .content-main) details > summary:hover { color: var(--ea-ink-700); }
.faq-question h3, .faq-question h4 { font-size: inherit; margin: 0 !important; font-weight: 600; }
.faq-icon { width: 26px; height: 26px; min-width: 26px; border-radius: 50%; background: var(--ea-teal-50); color: var(--ea-teal-700); display: inline-flex; align-items: center; justify-content: center; font-size: 1.15rem; line-height: 1; transition: transform .25s ease, background .2s ease, color .2s ease; user-select: none; }
.faq-item.open .faq-icon { transform: rotate(45deg); background: var(--ea-teal-700); color: #fff; }
.faq-answer { max-height: 0; overflow: hidden; padding: 0 18px; transition: max-height .4s ease, padding .3s ease; }
.faq-item.open .faq-answer { max-height: 1600px; padding: 0 18px 16px; }
.faq-answer p, :is(.ea-prose, .content-main) details > :not(summary) { font-size: .94rem; color: var(--ea-text-2); line-height: 1.7; }
:is(.ea-prose, .content-main) details > :not(summary) { padding: 0 18px; }
:is(.ea-prose, .content-main) details > :last-child { padding-bottom: 16px; margin-bottom: 0; }
.faq-answer p:last-child { margin-bottom: 0; }

/* Sources officielles */
.article-sources, .sources-box, .sources-officielles {
  background: var(--ea-ink-50); border: 1px solid var(--ea-ink-100); border-radius: var(--ea-radius);
  padding: 14px 18px 14px 18px !important; margin: .6em 0 1.6em !important; font-size: .88rem; line-height: 1.55; color: var(--ea-text-2);
}
ul.article-sources { list-style: none !important; }
ul.article-sources > li { position: relative; padding: 6px 0 6px 22px; margin: 0; }
ul.article-sources > li + li { border-top: 1px solid var(--ea-ink-100); }
ul.article-sources > li::before { content: '↗'; position: absolute; left: 0; top: 6px; color: var(--ea-teal-700); font-weight: 700; font-size: .85rem; }
.article-sources a { color: var(--ea-ink-700); font-weight: 500; word-break: break-word; }

/* Encadrés éditoriaux */
.tip-box, .warning-box, .info-box, .alert-box, .danger-box, .highlight-box, .encart, .legal-ref, .cas-pratique,
.formula-box, .investigation-box, .cross-silo-box, .journalistic-box, .disclaimer-box, .jurisprudence-box,
.intro-box, .definition-box, .example-box, .exemple-box, .calcul-box, .piege-box, .keyword-box, .urgency-box,
.comparaison-box, .roi-box, .script-box, .case-study, .article-update {
  position: relative; margin: 1.6em 0; padding: 16px 20px; border-radius: var(--ea-radius);
  background: var(--ea-ink-50); border: 1px solid var(--ea-ink-100); border-left: 4px solid var(--ea-ink-600);
  font-size: .95rem; line-height: 1.65; color: var(--ea-text-2);
}
:is(.tip-box, .warning-box, .info-box, .alert-box, .danger-box, .highlight-box, .encart, .legal-ref, .cas-pratique, .formula-box, .investigation-box, .cross-silo-box, .journalistic-box, .disclaimer-box, .jurisprudence-box, .intro-box, .definition-box, .example-box, .exemple-box, .case-study) > :last-child { margin-bottom: 0; }
:is(.tip-box, .warning-box, .info-box, .alert-box, .danger-box, .highlight-box, .encart, .legal-ref, .cas-pratique, .formula-box, .investigation-box, .cross-silo-box, .journalistic-box, .disclaimer-box, .jurisprudence-box, .intro-box, .definition-box, .example-box, .exemple-box, .case-study) :is(h3, h4, strong:first-child) { color: var(--ea-text); }
:is(.tip-box, .warning-box, .info-box, .alert-box, .danger-box, .highlight-box, .encart) h3,
:is(.tip-box, .warning-box, .info-box, .alert-box, .danger-box, .highlight-box, .encart) h4 { font-size: 1rem; margin: 0 0 6px !important; }
.tip-box, .highlight-box, .example-box, .exemple-box { background: var(--ea-teal-50); border-color: var(--ea-teal-100); border-left-color: var(--ea-teal-600); }
.warning-box, .alert-box, .urgency-box, .piege-box, .encart-warning { background: var(--ea-amber-bg); border-color: #F7E2B5; border-left-color: #D99A1E; }
.danger-box, .encart-danger { background: var(--ea-red-bg); border-color: #F6CDC8; border-left-color: var(--ea-red); }
.info-box, .encart-info, .definition-box { background: var(--ea-blue-bg); border-color: #D3E3F3; border-left-color: var(--ea-blue); }
.legal-ref, .encart-legal, .jurisprudence-box { background: #F4F1FA; border-color: #E4DCF2; border-left-color: #6B4FA0; }
.tip-box p, .warning-box p { font-size: inherit; color: inherit; }
:is(.tip-box, .warning-box, .info-box, .alert-box, .danger-box, .highlight-box) > strong:first-child { display: block; margin-bottom: 4px; }

/* 11. Composants hérités (pages statiques) --------------------------------- */
/* Hero des pages statiques */
.page-hero { position: relative; background: var(--ea-grad-hero); color: #fff; padding: 36px 0 34px; }
.page-hero h1 { color: #fff; font-size: clamp(1.6rem, 3vw, 2.3rem); letter-spacing: -.02em; margin: 12px 0 10px; max-width: 900px; }
.page-hero p, .page-hero .hero-subtitle { color: rgba(255,255,255,.82); max-width: 780px; font-size: 1.02rem; line-height: 1.65; margin: 0; }
.page-hero .article-meta-hero, .hero-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 12px; font-size: .86rem; color: rgba(255,255,255,.72); }
.page-hero .badge { background: rgba(255,255,255,.1) !important; color: #fff !important; border: 1px solid rgba(255,255,255,.2); }
.page-hero .hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.page-hero .btn, .page-hero .btn-secondary { background: #fff; border-color: #fff; color: var(--ea-ink-800); }
.page-hero .btn:hover, .page-hero .btn-secondary:hover { background: var(--ea-teal-50); border-color: var(--ea-teal-50); color: var(--ea-ink-900); }
.page-hero .btn-ghost, .page-hero .btn-outline { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.3); color: #fff; }
.page-hero .btn-primary { background: var(--ea-coral-600); border-color: var(--ea-coral-600); color: #fff; }
.page-hero .hero-content { max-width: 900px; }
.hero-stats, .stats-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.hero-stats .stat-item, .stats-row > * { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); border-radius: var(--ea-radius); padding: 10px 14px; }
.page-hero-article .hero-article-img { display: none; }

.page-content { padding: 40px 0 56px; }
.content-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 48px; align-items: start; }
.content-grid > *, .content-grid-3col > * { min-width: 0; }
.content-main { max-width: 820px; }
.article-hero-img { margin: 0 0 2em; border-radius: var(--ea-radius-lg); overflow: hidden; line-height: 0; }
.article-hero-img img { width: 100%; height: auto; max-height: 420px; object-fit: cover; border-radius: 0 !important; }

/* Barre latérale */
.content-sidebar { display: flex; flex-direction: column; gap: 18px; }
.sidebar-widget { background: #fff; border: 1px solid var(--ea-line); border-radius: var(--ea-radius); padding: 18px; margin: 0; }
.sidebar-widget h3, .sidebar-widget h4 { font-size: .74rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--ea-text-3); margin: 0 0 10px; }
.sidebar-links { display: flex; flex-direction: column; gap: 1px; }
.sidebar-links a { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: var(--ea-radius-xs); font-size: .88rem; color: var(--ea-text-2); }
.sidebar-links a:hover { background: var(--ea-bg); color: var(--ea-ink-800); }
.sidebar-links a.active { background: var(--ea-teal-50); color: var(--ea-teal-700); font-weight: 600; }
.sidebar-cta, .sidebar-cta-box { background: linear-gradient(160deg, var(--ea-ink-50), #fff); border: 1px solid var(--ea-ink-100); border-radius: var(--ea-radius); padding: 18px; margin: 0; }
.sidebar-cta h3, .sidebar-cta h4, .sidebar-cta-box h3, .sidebar-cta-box h4 { font-size: 1rem; color: var(--ea-ink-800); margin: 0 0 8px; }
.sidebar-cta p, .sidebar-cta-box p { font-size: .86rem; color: var(--ea-text-2); line-height: 1.6; margin: 0 0 12px; }
.sidebar-cta ul li { font-size: .86rem; }
.sidebar-cta .btn, .sidebar-cta-box > a { display: inline-flex; padding: 9px 16px; font-size: .84rem; border-radius: var(--ea-pill); background: var(--ea-ink-700); color: #fff; font-weight: 600; white-space: normal; text-align: center; }
.sidebar-cta .btn:hover, .sidebar-cta-box > a:hover { background: var(--ea-ink-800); color: #fff; }

/* Badges hérités */
.badge { display: inline-flex; align-items: center; padding: 4px 11px; border-radius: var(--ea-pill); font-size: .7rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; line-height: 1.5; background: var(--ea-ink-50); color: var(--ea-ink-700); }
.badge-primary { background: var(--ea-ink-50); color: var(--ea-ink-700); }
.badge-secondary { background: var(--ea-coral-50); color: var(--ea-coral-700); }
.badge-accent, .badge-info { background: var(--ea-teal-50); color: var(--ea-teal-700); }
.badge-success, .badge-recommande, .badge-oui { background: var(--ea-green-bg); color: var(--ea-green); }
.badge-warning, .badge-optionnel, .badge-option, .badge-moyen { background: var(--ea-amber-bg); color: var(--ea-amber); }
.badge-danger, .badge-obligatoire, .badge-non { background: var(--ea-red-bg); color: var(--ea-red); }
.badge-oui, .badge-non, .badge-option { text-transform: none; letter-spacing: 0; font-size: .78rem; padding: 2px 8px; }
.check { color: var(--ea-green); font-weight: 700; }
.cross { color: var(--ea-red); font-weight: 700; }
.partial { color: var(--ea-amber); font-weight: 700; }

/* Cartes héritées */
.card { background: #fff; border: 1px solid var(--ea-line); border-radius: var(--ea-radius); overflow: hidden; transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease; }
a.card:hover, .card:hover { box-shadow: var(--ea-shadow); border-color: var(--ea-ink-100); }
.card-grid, .hub-cards, .articles-grid, .pillar-grid, .article-cards, .profile-grid, .coverage-grid, .grid-2, .grid-3, .grid-4 {
  display: grid; gap: 16px; margin: 1.4em 0; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pillar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.card-icon, .pillar-icon, .profile-icon, .coverage-icon, .hub-card-icon { font-size: 1.6rem; line-height: 1; margin-bottom: 10px; display: block; }
.card-title { font-size: 1rem; margin: 0 0 6px; }
.card-link, .card-cta, .profile-cta, .card-read, .read-more, .article-read-more, .card-arrow { display: inline-flex; align-items: center; gap: 5px; margin-top: auto; font-size: .84rem; font-weight: 600; color: var(--ea-teal-700); text-decoration: none !important; }
a.article-card, .article-card, .pillar-card, .hub-card, .profile-card, .coverage-card, .related-card {
  position: relative; display: flex; flex-direction: column; gap: 6px; padding: 18px; min-width: 0;
  background: #fff; border: 1px solid var(--ea-line); border-radius: var(--ea-radius); color: var(--ea-text); text-decoration: none !important;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s var(--ea-ease);
}
a.article-card:hover, .pillar-card:hover, .hub-card:hover, a.related-card:hover, .profile-card:hover, .coverage-card:hover { border-color: var(--ea-teal-400); box-shadow: var(--ea-shadow); transform: translateY(-1px); color: var(--ea-text); }
.article-card .card-tag, .card-tag, .metier-tag { align-self: flex-start; font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ea-teal-700); }
:is(.article-card, .pillar-card, .hub-card, .profile-card, .coverage-card, .related-card) :is(h3, h4) { font-size: 1rem; line-height: 1.38; margin: 0 !important; color: var(--ea-text); }
:is(.article-card, .pillar-card, .hub-card, .profile-card, .coverage-card, .related-card) p { font-size: .87rem; line-height: 1.55; color: var(--ea-text-2); margin: 0; }
.related-card img { width: calc(100% + 36px); max-width: none; margin: -18px -18px 8px; height: 150px; object-fit: cover; border-radius: 0 !important; }
.profile-card ul, .coverage-card ul { margin: 6px 0 8px !important; }
.profile-card li, .coverage-card li { font-size: .86rem; }
.related-articles { margin: 2.6em 0 1em; padding-top: 1.6em; border-top: 1px solid var(--ea-line); }
.related-articles h2 { font-size: 1.2rem; margin: 0 0 14px !important; }
.related-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.back-to-hub, .back-link { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 18px; font-size: .86rem; font-weight: 600; color: var(--ea-teal-700); text-decoration: none !important; }
.back-to-hub:hover, .back-link:hover { color: var(--ea-ink-800); }
.author-card, .author-bio { display: flex; gap: 14px; align-items: flex-start; background: #fff; border: 1px solid var(--ea-line); border-radius: var(--ea-radius); padding: 16px 18px; margin: 2em 0; }
.author-avatar { width: 46px; height: 46px; border-radius: 50%; background: var(--ea-ink-700); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; flex-shrink: 0; }
.author-info h4, .author-name { font-size: .98rem; color: var(--ea-text); margin: 0 0 4px; }
.author-info p { font-size: .86rem; color: var(--ea-text-2); margin: 0; }

/* Étapes, chiffres, divers */
.process-steps, .steps-list, .step-list, .steps-container, .recours-steps { display: flex; flex-direction: column; gap: 12px; margin: 1.4em 0; padding: 0 !important; }
.process-steps > *::before, .steps-list > li::before, .step-list > li::before { content: none !important; }
.step, .step-item, .step-card, .step-block, .recours-step { display: flex; gap: 14px; align-items: flex-start; background: #fff; border: 1px solid var(--ea-line); border-radius: var(--ea-radius); padding: 14px 16px; }
.step-num, .step-number, .section-number, .method-number, .criterion-number, .exemple-num, .recours-num, .technique-num, .limit-num, .axe-number, .level-num, .exclusion-number {
  flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%; background: var(--ea-ink-700); color: #fff;
  display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: .86rem;
}
.stat-card, .stat-item { background: #fff; border: 1px solid var(--ea-line); border-radius: var(--ea-radius); padding: 14px 16px; }
.page-hero .stat-item { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.16); }
.stat-number, .result-value, .savings-amount, .plafond-amount { display: block; font-size: 1.45rem; font-weight: 700; color: var(--ea-ink-700); line-height: 1.15; }
.page-hero .stat-number { color: #fff; }
.stat-label, .result-label { display: block; font-size: .78rem; color: var(--ea-text-3); margin-top: 4px; }
.page-hero .stat-label { color: rgba(255,255,255,.68); }
.section-title { font-size: clamp(1.3rem, 2.1vw, 1.55rem); }
.section-subtitle { color: var(--ea-text-2); }
.cta-banner, .independence-box, .lead-magnet {
  margin: 2em 0; padding: 22px 24px; border-radius: var(--ea-radius-lg); background: var(--ea-grad-hero); color: rgba(255,255,255,.86);
}
:is(.cta-banner, .independence-box, .lead-magnet) :is(h2, h3, h4) { color: #fff; margin-top: 0 !important; }
:is(.cta-banner, .independence-box, .lead-magnet) p { color: rgba(255,255,255,.82); }
:is(.cta-banner, .independence-box, .lead-magnet) a:not(.btn) { color: #fff; }
.btn-download { display: inline-flex; margin-top: 12px; padding: 10px 20px; border-radius: var(--ea-pill); background: #fff; color: var(--ea-ink-800) !important; font-weight: 600; text-decoration: none !important; }
.checklist { list-style: none !important; padding: 0 !important; }
.checklist li { position: relative; padding-left: 28px !important; }
.checklist li::before { content: '✓' !important; position: absolute; left: 0; top: 0 !important; width: auto !important; height: auto !important; background: none !important; color: var(--ea-green); font-weight: 700; }
.letter-box, .lettre-model { background: #fff; border: 1px dashed var(--ea-ink-600); border-radius: var(--ea-radius); padding: 18px 20px; margin: 1.6em 0; font-size: .93rem; }
.text-small { font-size: .84rem; color: var(--ea-text-3); }
.text-center { text-align: center; }
.legal-content { max-width: 820px; }
.legal-content h2 { font-size: 1.3rem; margin: 2em 0 .6em; }
.legal-content h3 { font-size: 1.08rem; margin: 1.5em 0 .5em; }
.legal-content ul { padding-left: 1.2em; margin: .6em 0 1em; }
.legal-content ul li { list-style: disc; margin-bottom: 6px; color: var(--ea-text-2); }
.legal-content p { color: var(--ea-text-2); }
.content-ad, .sidebar-ad, .adsense-container, .ad-container { display: none; }
.contact-form { display: flex; flex-direction: column; gap: 16px; }
.form-control { padding: 12px 14px; border: 1px solid var(--ea-line); border-radius: var(--ea-radius-sm); background: #fff; }
.form-control:focus { outline: none; border-color: var(--ea-teal-600); box-shadow: 0 0 0 3px rgba(35,128,141,.18); }

/* 12. Promotion, publicité, transparence IA ------------------------------- */
.ad-block { margin: 2em 0; text-align: center; overflow: hidden; min-height: 50px; }
.ad-block-sidebar { margin: 0; min-height: 100px; }
.ad-block::before { content: 'Publicité'; display: block; font-size: .64rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ea-text-3); margin-bottom: 6px; }
.book-promo { display: flex; gap: 22px; align-items: center; background: #fff; border: 1px solid var(--ea-line); border-radius: var(--ea-radius-lg); padding: 20px 24px; margin: 2em 0 .5em; position: relative; overflow: hidden; }
.book-promo::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--ea-coral-500); }
.book-promo .book-promo__media { flex: 0 0 auto; line-height: 0; }
.book-promo .book-promo__media img { width: 120px; height: auto; filter: drop-shadow(0 8px 16px rgba(0,0,0,.22)); border-radius: 2px !important; }
.book-promo .book-promo__body { min-width: 0; }
.book-promo .book-promo__tag { display: inline-block; font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ea-coral-700); background: var(--ea-coral-50); padding: 4px 10px; border-radius: var(--ea-pill); margin-bottom: 10px; }
.book-promo .book-promo__title { font-size: 1.3rem; font-weight: 700; line-height: 1.2; color: var(--ea-text); margin: 0 0 8px; }
.book-promo .book-promo__title small { display: block; font-size: .8rem; font-weight: 400; font-style: italic; color: var(--ea-text-3); margin-top: 4px; }
.book-promo .book-promo__desc { font-size: .9rem; line-height: 1.6; color: var(--ea-text-2); margin: 0 0 14px; }
.book-promo .book-promo__note { display: block; font-size: .72rem; color: var(--ea-text-3); margin-top: 8px; }
.book-widget { background: var(--ea-grad-hero); color: #fff; border-radius: var(--ea-radius); padding: 22px 20px; text-align: center; }
.book-widget .book-widget__tag { display: inline-block; font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #FFB4A6; margin-bottom: 14px; }
.book-widget .book-widget__media { display: block; line-height: 0; margin-bottom: 14px; }
.book-widget .book-widget__media img { width: 140px; margin: 0 auto; filter: drop-shadow(0 10px 24px rgba(0,0,0,.45)); }
.book-widget .book-widget__title { font-size: 1.15rem; font-weight: 700; color: #fff; margin: 0; }
.book-widget .book-widget__title small { display: block; font-size: .76rem; font-weight: 400; font-style: italic; opacity: .82; margin-top: 4px; }
.book-widget .book-widget__sub { font-size: .8rem; line-height: 1.55; opacity: .88; margin: 12px 0 16px; }
.book-widget .btn { width: 100%; white-space: normal; }
.ai-disclosure { display: flex; gap: 12px; align-items: flex-start; background: var(--ea-bg); border: 1px solid var(--ea-line); border-radius: var(--ea-radius); padding: 14px 18px; margin: 2em 0 .5em; }
.ai-disclosure .ai-disclosure__icon { font-size: 1.25rem; line-height: 1; flex-shrink: 0; margin-top: 2px; }
.ai-disclosure p { font-size: .8rem !important; line-height: 1.6 !important; color: var(--ea-text-2) !important; margin: 0 !important; }
.ai-disclosure strong { color: var(--ea-text); }
.ai-disclosure a { color: var(--ea-teal-700); text-decoration: underline; }
.ai-disclosure-band { background: #fff; border-top: 1px solid var(--ea-line); }
.ai-disclosure-band .ai-disclosure { max-width: var(--ea-max); margin: 0 auto; padding: 16px 24px; background: transparent; border: 0; border-radius: 0; }

#scroll-top {
  position: fixed; right: 22px; bottom: 22px; z-index: 500; width: 44px; height: 44px; border-radius: 50%;
  background: var(--ea-ink-700); color: #fff; font-size: 1.05rem; box-shadow: var(--ea-shadow-lg);
  display: inline-flex; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s ease, transform .2s ease, visibility .2s, background .2s ease;
}
#scroll-top.visible { opacity: 1; visibility: visible; transform: none; }
#scroll-top:hover { background: var(--ea-coral-600); }

/* 13. Responsive ----------------------------------------------------------- */
@media (max-width: 1180px) {
  .ea-mega__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ea-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ea-hero__inner { grid-template-columns: 1fr; gap: 24px; }
  .ea-stats { max-width: 640px; }
  .ea-article__grid { grid-template-columns: minmax(0, 1fr) 280px; gap: 36px; }
  .ea-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1024px) {
  :root { --ea-header-h: 62px; }
  .ea-nav { display: none; }
  .ea-burger { display: inline-flex; }
  .ea-header__tools { margin-left: auto; }
  .ea-mega { position: fixed; top: var(--ea-header-h); bottom: 0; max-height: none; padding: 18px 0 40px; }
  .ea-mega__links { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 18px; }
  .ea-mega__links a { display: flex; align-items: center; gap: 8px; padding: 11px 14px; border-radius: var(--ea-radius-sm); background: var(--ea-bg); border: 1px solid var(--ea-line); font-size: .9rem; font-weight: 600; color: var(--ea-ink-800); }
  .ea-mega__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ea-live__grid { grid-template-columns: 1fr; }
  .ea-live__side { grid-template-rows: none; grid-template-columns: 1fr 1fr; }
  .ea-live__row { grid-template-columns: 1fr; }
  .ea-overlay--feature { min-height: 340px; }
  .ea-article-hero__grid { grid-template-columns: 1fr; gap: 24px; }
  .ea-article-hero__media { order: -1; aspect-ratio: 16 / 8; }
  .ea-article__grid { grid-template-columns: minmax(0, 1fr); }
  .ea-article__main { max-width: none; }
  .ea-aside-sticky { display: none; }
  .content-grid, .content-grid-3col { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .content-main { max-width: none; }
  .ea-dossiers__grid, .ea-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ea-method { grid-template-columns: 1fr; }
  .ea-feature-row { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .ea-container, .container { padding: 0 16px; }
  .ea-filters__inner { padding: 10px 16px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
  .ea-filters__inner::-webkit-scrollbar { display: none; }
  .ea-logo__tag { display: none; }
  .ea-logo__name { font-size: 1.02rem; }
  .ea-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ea-hero { padding: 28px 0 26px; }
  .ea-univers, .ea-band { padding: 18px; border-radius: var(--ea-radius); }
  .ea-grid-4, .ea-grid-3, .ea-dossiers__grid { grid-template-columns: minmax(0, 1fr); }
  .ea-grid-4 .ea-card--std, .ea-grid-3 .ea-card--std { flex-direction: row; }
  .ea-grid-4 .ea-card--std .ea-card__media, .ea-grid-3 .ea-card--std .ea-card__media { width: 36%; aspect-ratio: auto; min-height: 100%; }
  .ea-grid-4 .ea-card--std .ea-card__excerpt, .ea-grid-3 .ea-card--std .ea-card__excerpt { display: none; }
  .ea-card--std .ea-card__body { padding: 12px 14px; }
  .ea-card--std .ea-card__title { font-size: .93rem; }
  .ea-live__box { padding: 14px; border-radius: var(--ea-radius); }
  .ea-live__side { grid-template-columns: 1fr; }
  .ea-overlay--feature { min-height: 300px; }
  .ea-mega__grid { grid-template-columns: minmax(0, 1fr); }
  .ea-footer__grid { grid-template-columns: 1fr; gap: 28px; }
  .ea-footer__bottom { flex-direction: column; }
  .grid-2, .grid-3, .grid-4, .pillar-grid { grid-template-columns: minmax(0, 1fr); }
  :is(.ea-prose, .content-main) { font-size: 1rem; }
  :is(.ea-prose, .content-main) .intro-text, .lead { font-size: 1.04rem; }
  .ea-res-group__head .ea-link-more { margin-left: 0 !important; width: 100%; white-space: normal; }
  :is(.ea-prose, .content-main) table:not([class]), .data-table, .comparison-table { display: block; overflow-x: auto; }
  .book-promo { flex-direction: column; text-align: center; padding: 22px 18px; }
  .ea-searchpage__form { flex-direction: column; }
  #scroll-top { right: 14px; bottom: 14px; }
}

/* 14. Accessibilité & impression ------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media print {
  .ea-header, .ea-footer, .ea-article__aside, .ea-share, #scroll-top, .ad-block, .book-promo, .book-widget, .ea-related { display: none !important; }
  .ea-article-hero, .page-hero { background: none; color: #000; padding: 0 0 12px; }
  .ea-article-hero h1, .page-hero h1 { color: #000; }
  body { background: #fff; }
}
