/* =============================================================================
   RGE2 — Thème WordPress sur mesure
   Mobile-first · Bootstrap 5 · Container 980px
   ============================================================================= */

/* ── Variables par défaut (écrasées par le Customizer) ─────────── */
:root {
  --color-primary:   #1A3A5C;
  --color-secondary: #4A7C59;
  --color-accent:    #E8A020;
  --color-bg:        #F5F5F5;
  --color-text:      #333333;
  --color-white:     #ffffff;
  --color-border:    #e2e6ea;
  --color-muted:     #545a60;

  --font-base:       'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --container-width: 980px;

  --radius-sm:       4px;
  --radius:          8px;
  --radius-lg:       12px;

  --shadow-sm:       0 1px 4px rgba(0,0,0,.07);
  --shadow:          0 2px 12px rgba(0,0,0,.09);
  --shadow-md:       0 4px 20px rgba(0,0,0,.12);
  --shadow-lg:       0 8px 32px rgba(0,0,0,.15);

  --transition:      .2s ease;
  --transition-md:   .3s ease;
}

/* ── Reset & base ────────────────────────────────────────────────── */
*,
*::before,
*::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family:      var(--font-base);
  font-size:        1rem;
  line-height:      1.7;
  color:            var(--color-text);
  background-color: var(--color-bg);
  -webkit-font-smoothing: antialiased;
}

img,
video { max-width: 100%; height: auto; display: block; }

a {
  color:           var(--color-primary);
  text-decoration: none;
  transition:      color var(--transition);
}
a:hover,
a:focus-visible { color: var(--color-accent); }

p { margin-top: 0; }

/* ── Accessibilité ───────────────────────────────────────────────── */
.skip-to-content {
  position:      absolute;
  top:           0;
  left:          -999px;
  z-index:       9999;
  width:         1px;
  height:        1px;
  overflow:      hidden;
  clip:          rect(0,0,0,0);
  white-space:   nowrap;
  background:    var(--color-primary);
  color:         var(--color-white);
  padding:       .6rem 1.25rem;
  font-weight:   600;
  font-size:     .9rem;
  border-radius: 0 0 var(--radius) 0;
  text-decoration: none;
}
.skip-to-content:focus {
  left:        0;
  width:       auto;
  height:      auto;
  clip:        auto;
  white-space: normal;
  overflow:    visible;
}

*:focus-visible {
  outline:        3px solid var(--color-accent);
  outline-offset: 3px;
  border-radius:  2px;
}

/* ── Zone principale — espacement vertical uniforme ─────────────── */
.site-main {
  padding-top:    3rem;
  padding-bottom: 3rem;
}

/* ── Surcharge container Bootstrap → 980px ───────────────────────── */
.container,
.container-sm,
.container-md,
.container-lg,
.container-xl,
.container-xxl {
  max-width:     var(--container-width);
  padding-left:  1rem;
  padding-right: 1rem;
  margin-left:   auto;
  margin-right:  auto;
}
@media (min-width: 576px) {
  .container { padding-left: 1.5rem; padding-right: 1.5rem; }
}

/* ═══════════════════════════════════════════════════════════════════
   HEADER
   ═══════════════════════════════════════════════════════════════════ */
.site-header {
  background:    var(--color-white);
  border-bottom: 1px solid var(--color-border);
  position:      sticky;
  top:           0;
  z-index:       1000;
  box-shadow:    var(--shadow-sm);
}

.site-header__inner {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  min-height:      68px;
  gap:             1rem;
  flex-wrap:       nowrap;
}

/* Logo */
.site-header__brand { flex-shrink: 0; }
.site-header__brand .custom-logo-link,
.site-header__brand a {
  display: flex;
  align-items: center;
}
.site-header__brand img,
.site-header__brand .custom-logo { max-height: 52px; width: auto; }

.site-header__name {
  font-size:   1.2rem;
  font-weight: 700;
  color:       var(--color-primary);
  letter-spacing: -.01em;
}
.site-header__name:hover { color: var(--color-accent); }

/* Burger */
.site-header__burger {
  display:         flex;
  flex-direction:  column;
  justify-content: space-between;
  width:           26px;
  height:          18px;
  background:      transparent;
  border:          none;
  cursor:          pointer;
  padding:         0;
  flex-shrink:     0;
}
.site-header__burger span {
  display:       block;
  width:         100%;
  height:        2px;
  background:    var(--color-primary);
  border-radius: 2px;
  transition:    transform var(--transition), opacity var(--transition);
}
.site-header__burger[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}
.site-header__burger[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}
.site-header__burger[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

/* Navigation mobile */
.site-header__nav { display: none; }
.site-header__nav.is-open { display: block; }

.nav-menu {
  list-style: none;
  margin:     0;
  padding:    1rem;
  display:    flex;
  flex-direction: column;
  background: var(--color-white);
  position:   absolute;
  top:        100%;
  left:       0;
  right:      0;
  border-top: 1px solid var(--color-border);
  box-shadow: var(--shadow-md);
  z-index:    999;
}
.nav-menu li { position: relative; }
.nav-menu > li > a {
  display:       block;
  padding:       .55rem .75rem;
  color:         var(--color-text);
  font-weight:   500;
  font-size:     .95rem;
  border-radius: var(--radius-sm);
  transition:    color var(--transition), background var(--transition);
}
.nav-menu > li > a:hover,
.nav-menu > li.current-menu-item > a,
.nav-menu > li.current-menu-ancestor > a {
  color:      var(--color-primary);
  background: rgba(26,58,92,.07);
}

/* Sous-menus mobile */
.nav-menu .sub-menu {
  list-style:  none;
  padding:     .35rem 0 .35rem 1rem;
  margin:      0;
}
.nav-menu .sub-menu a {
  display:     block;
  padding:     .4rem .75rem;
  color:       var(--color-muted);
  font-size:   .9rem;
  border-radius: var(--radius-sm);
}
.nav-menu .sub-menu a:hover { color: var(--color-primary); }

/* ── Navigation desktop ─────────────────────────── */
@media (min-width: 768px) {
  .site-header__burger { display: none; }

  .site-header__nav {
    display:     flex !important;
    align-items: center;
  }

  .nav-menu {
    flex-direction: row;
    position:       static;
    background:     transparent;
    border:         none;
    box-shadow:     none;
    padding:        0;
    gap:            .15rem;
    align-items:    center;
  }

  .nav-menu > li > a {
    padding: .45rem .85rem;
  }

  /* Sous-menus dropdown desktop */
  .nav-menu .sub-menu {
    display:       none;
    position:      absolute;
    top:           calc(100% + 6px);
    left:          0;
    min-width:     210px;
    background:    var(--color-white);
    border:        1px solid var(--color-border);
    border-radius: var(--radius);
    padding:       .5rem 0;
    box-shadow:    var(--shadow-md);
    z-index:       100;
  }

  .nav-menu > li:hover > .sub-menu,
  .nav-menu > li:focus-within > .sub-menu { display: block; }

  .nav-menu .sub-menu li { padding: 0; }
  .nav-menu .sub-menu a {
    display:       block;
    padding:       .5rem 1rem;
    color:         var(--color-text);
    border-radius: 0;
  }
  .nav-menu .sub-menu a:hover { color: var(--color-primary); background: rgba(26,58,92,.05); }
}

/* ═══════════════════════════════════════════════════════════════════
   BREADCRUMB
   Placé en fin de DOM, remonté visuellement en 1ère position via CSS.
   ═══════════════════════════════════════════════════════════════════ */

/* Le container parent devient une colonne flex */
.page-layout {
  display:        flex;
  flex-direction: column;
}
.page-layout__content { order: 2; }
.page-layout > .rge2-breadcrumb { order: 1; }

.rge2-breadcrumb {
  padding: .5rem 0 0;
}
.breadcrumb {
  background:  transparent;
  padding:     .5rem 0;
  font-size:   .82rem;
  flex-wrap:   wrap;
  margin:      0;
}
.breadcrumb-item a {
  color:      var(--color-primary);
  transition: color var(--transition);
}
.breadcrumb-item a:hover { color: var(--color-accent); }
.breadcrumb-item.active { color: var(--color-muted); }
.breadcrumb-item + .breadcrumb-item::before { color: #767c82; }

/* ═══════════════════════════════════════════════════════════════════
   CONTENU RICHE — ACF WYSIWYG + Gutenberg the_content()
   .rge2-content  →  classe de base commune
   .rge2-wysiwyg  →  alias (champs ACF)
   .entry-content →  alias (WordPress natif)
   ═══════════════════════════════════════════════════════════════════ */

/*
 * Bootstrap 5 Reboot supprime les styles natifs du navigateur :
 *   - ul/ol : list-style:none + padding:0
 *   - headings : taille uniforme
 *   - blockquote : margin:0
 * On les restaure dans toutes les zones de contenu riche.
 */

.rge2-content,
.rge2-wysiwyg,
.entry-content {
  font-size:   1rem;
  line-height: 1.85;
  color:       var(--color-text);
}
.rge2-content > *:first-child,
.rge2-wysiwyg > *:first-child,
.entry-content > *:first-child { margin-top: 0 !important; }
.rge2-content > *:last-child,
.rge2-wysiwyg > *:last-child,
.entry-content > *:last-child  { margin-bottom: 0 !important; }

/* ── Titres ─────────────────────────────────────────────────────── */
.rge2-content h1, .rge2-wysiwyg h1, .entry-content h1,
.rge2-content .wp-block-heading[class*="h1"],
.entry-content h1.wp-block-heading {
  font-size:   2rem;
  font-weight: 800;
  color:       var(--color-primary);
  margin:      2rem 0 1rem;
  line-height: 1.25;
}
.rge2-content h2, .rge2-wysiwyg h2, .entry-content h2,
.entry-content h2.wp-block-heading,
.rge2-content .wp-block-heading:is(h2) {
  font-size:   1.6rem;
  font-weight: 700;
  color:       var(--color-primary);
  margin:      2.25rem 0 .85rem;
  line-height: 1.3;
}
.rge2-content h3, .rge2-wysiwyg h3, .entry-content h3,
.entry-content h3.wp-block-heading {
  font-size:   1.25rem;
  font-weight: 700;
  color:       var(--color-primary);
  margin:      1.75rem 0 .65rem;
  line-height: 1.35;
}
.rge2-content h4, .rge2-wysiwyg h4, .entry-content h4,
.entry-content h4.wp-block-heading {
  font-size:   1.1rem;
  font-weight: 600;
  color:       var(--color-primary);
  margin:      1.5rem 0 .5rem;
}
.rge2-content h5, .rge2-wysiwyg h5, .entry-content h5,
.entry-content h5.wp-block-heading {
  font-size:   1rem;
  font-weight: 600;
  margin:      1.25rem 0 .4rem;
}
.rge2-content h6, .rge2-wysiwyg h6, .entry-content h6,
.entry-content h6.wp-block-heading {
  font-size:   .9rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin:      1.25rem 0 .4rem;
}

/* ── Paragraphes ─────────────────────────────────────────────────── */
.rge2-content p, .rge2-wysiwyg p, .entry-content p,
.entry-content .wp-block-paragraph {
  margin-bottom: 1rem;
}

/* ── Liens ───────────────────────────────────────────────────────── */
.rge2-content a, .rge2-wysiwyg a, .entry-content a:not(.wp-block-button__link) {
  color:                 var(--color-primary);
  text-decoration:       underline;
  text-underline-offset: 3px;
  transition:            color var(--transition);
}
.rge2-content a:hover,
.rge2-wysiwyg a:hover,
.entry-content a:not(.wp-block-button__link):hover { color: var(--color-accent); }

/* ── Emphase ─────────────────────────────────────────────────────── */
.rge2-content strong, .rge2-wysiwyg strong, .entry-content strong { font-weight: 600; }
.rge2-content em,     .rge2-wysiwyg em,     .entry-content em     { font-style: italic; }

/* ── Listes — Bootstrap reset neutralisé ────────────────────────── */
.rge2-content ul,  .rge2-wysiwyg ul,  .entry-content ul,
.entry-content .wp-block-list > ul {
  list-style:    disc;
  padding-left:  1.6rem;
  margin-bottom: 1rem;
}
.rge2-content ol,  .rge2-wysiwyg ol,  .entry-content ol,
.entry-content .wp-block-list > ol {
  list-style:    decimal;
  padding-left:  1.6rem;
  margin-bottom: 1rem;
}
.rge2-content li,  .rge2-wysiwyg li,  .entry-content li {
  margin-bottom: .45rem;
  line-height:   1.7;
}
/* Listes imbriquées */
.rge2-content ul ul, .entry-content ul ul { list-style-type: circle;  margin-bottom: .35rem; }
.rge2-content ul ul ul, .entry-content ul ul ul { list-style-type: square; }
.rge2-content ol ol, .entry-content ol ol { list-style-type: lower-alpha; margin-bottom: .35rem; }

/* Bloc liste Gutenberg (WP 6.x : <ul class="wp-block-list">) */
.entry-content .wp-block-list {
  list-style:    disc;
  padding-left:  1.6rem;
  margin-bottom: 1rem;
}
.entry-content ol.wp-block-list { list-style: decimal; }

/* ── Citations ───────────────────────────────────────────────────── */
.rge2-content blockquote,
.rge2-wysiwyg blockquote,
.entry-content blockquote:not(.wp-block-quote) {
  border-left:   4px solid var(--color-accent);
  padding:       1rem 1.5rem;
  margin:        1.75rem 0;
  background:    rgba(232,160,32,.06);
  border-radius: 0 var(--radius) var(--radius) 0;
  font-style:    italic;
  color:         #555;
}
.rge2-content blockquote p:last-child,
.rge2-wysiwyg blockquote p:last-child,
.entry-content blockquote p:last-child { margin-bottom: 0; }

/* ── Images ──────────────────────────────────────────────────────── */
.rge2-content img,
.rge2-wysiwyg img,
.entry-content img:not(.wp-block-button__link) {
  max-width:     100%;
  height:        auto;
  border-radius: var(--radius);
  margin:        1.25rem 0;
}

/* ── Tableaux ─────────────────────────────────────────────────────── */
.rge2-content table,
.rge2-wysiwyg table,
.entry-content table,
.entry-content .wp-block-table table {
  width:           100%;
  border-collapse: collapse;
  margin-bottom:   1.5rem;
  font-size:       .9rem;
}
.rge2-content th,    .rge2-wysiwyg th,    .entry-content th,
.entry-content .wp-block-table th {
  background:  var(--color-primary);
  color:       var(--color-white);
  font-weight: 600;
  padding:     .65rem .85rem;
  text-align:  left;
  border:      1px solid rgba(255,255,255,.15);
}
.rge2-content td,    .rge2-wysiwyg td,    .entry-content td,
.entry-content .wp-block-table td {
  padding:    .65rem .85rem;
  border:     1px solid var(--color-border);
  text-align: left;
}
.rge2-content tr:nth-child(even) td,
.rge2-wysiwyg tr:nth-child(even) td,
.entry-content tr:nth-child(even) td { background: rgba(26,58,92,.03); }

/* ── Code ────────────────────────────────────────────────────────── */
.rge2-content code, .entry-content code {
  background:    rgba(26,58,92,.07);
  color:         var(--color-primary);
  padding:       .15em .4em;
  border-radius: var(--radius-sm);
  font-size:     .88em;
  font-family:   ui-monospace, 'Cascadia Code', 'Source Code Pro', monospace;
}
.rge2-content pre, .entry-content pre,
.entry-content .wp-block-code,
.entry-content .wp-block-preformatted {
  background:    rgba(26,58,92,.06);
  border:        1px solid var(--color-border);
  border-radius: var(--radius);
  padding:       1.25rem 1.5rem;
  overflow-x:    auto;
  font-size:     .88rem;
  margin-bottom: 1.5rem;
  line-height:   1.65;
}
.entry-content .wp-block-code code { background: transparent; padding: 0; }

/* ── Séparateur ──────────────────────────────────────────────────── */
.rge2-content hr,  .rge2-wysiwyg hr,
.entry-content hr, .entry-content .wp-block-separator {
  border:     none;
  border-top: 1px solid var(--color-border);
  margin:     2rem 0;
  opacity:    1;
}
.entry-content .wp-block-separator.is-style-wide { width: 100%; }
.entry-content .wp-block-separator.is-style-dots {
  border: none;
  text-align: center;
}
.entry-content .wp-block-separator.is-style-dots::before {
  content:       '···';
  letter-spacing: .5em;
  font-size:      1.5rem;
  color:          var(--color-muted);
}

/* ═══════════════════════════════════════════════════════════════════
   BLOCS GUTENBERG — Styles globaux (s'appliquent partout)
   ═══════════════════════════════════════════════════════════════════ */

/* ── Bloc image ──────────────────────────────────────────────────── */
.wp-block-image { margin-bottom: 1.5rem; }
.wp-block-image img {
  border-radius: var(--radius);
  max-width:     100%;
  height:        auto;
}
.wp-block-image figcaption {
  font-size:  .82rem;
  color:      var(--color-muted);
  margin-top: .5rem;
  text-align: center;
}

/* ── Bloc citation ───────────────────────────────────────────────── */
.wp-block-quote {
  border-left:   4px solid var(--color-accent) !important;
  padding:       1rem 1.5rem !important;
  margin:        1.75rem 0;
  background:    rgba(232,160,32,.05);
  border-radius: 0 var(--radius) var(--radius) 0;
  font-style:    italic;
}
.wp-block-quote p { color: #555; margin-bottom: .5rem; }
.wp-block-quote cite { font-size: .85rem; color: var(--color-muted); font-style: normal; }

.wp-block-pullquote {
  border-top:    3px solid var(--color-accent);
  border-bottom: 3px solid var(--color-accent);
  padding:       2rem;
  text-align:    center;
  margin:        2rem 0;
}
.wp-block-pullquote blockquote { border: none; background: transparent; padding: 0; }
.wp-block-pullquote p { font-size: 1.3rem; font-weight: 300; font-style: italic; color: var(--color-primary); }

/* ── Bloc bouton ─────────────────────────────────────────────────── */
.wp-block-button .wp-block-button__link,
.wp-block-buttons .wp-block-button__link {
  background-color: var(--color-accent) !important;
  color:            var(--color-white) !important;
  border-radius:    var(--radius) !important;
  font-weight:      600 !important;
  padding:          .7rem 1.6rem !important;
  text-decoration:  none !important;
  transition:       all var(--transition-md) !important;
  font-family:      var(--font-base) !important;
  font-size:        1rem !important;
  border:           2px solid var(--color-accent) !important;
}
.wp-block-button .wp-block-button__link:hover,
.wp-block-buttons .wp-block-button__link:hover {
  background-color: transparent !important;
  color:            var(--color-accent) !important;
}
/* Style "outline" */
.wp-block-button.is-style-outline .wp-block-button__link {
  background-color: transparent !important;
  color:            var(--color-accent) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background-color: var(--color-accent) !important;
  color:            var(--color-white) !important;
}

/* ── Bloc colonnes ───────────────────────────────────────────────── */
.wp-block-columns { gap: 1.5rem; margin-bottom: 1.5rem; }
.wp-block-column  { min-width: 0; }

/* ── Bloc couverture ─────────────────────────────────────────────── */
.wp-block-cover {
  border-radius: var(--radius-lg);
  overflow:      hidden;
  min-height:    400px;
}
.wp-block-cover__inner-container {
  max-width: var(--container-width);
  margin:    0 auto;
  padding:   1.5rem;
}

/* ── Bloc groupe ─────────────────────────────────────────────────── */
.wp-block-group { margin-bottom: 1.5rem; }
.wp-block-group.has-background {
  padding:       2rem;
  border-radius: var(--radius-lg);
}

/* ── Bloc galerie ────────────────────────────────────────────────── */
.wp-block-gallery .wp-block-image img { border-radius: var(--radius); }

/* ── Bloc media-text ─────────────────────────────────────────────── */
.wp-block-media-text {
  margin-bottom: 2rem;
  border-radius: var(--radius-lg);
  overflow:      hidden;
}
.wp-block-media-text__content { padding: 1.5rem 2rem; }

/* ── Bloc tableau ────────────────────────────────────────────────── */
.wp-block-table { margin-bottom: 1.5rem; overflow-x: auto; }
.wp-block-table.is-style-stripes tr:nth-child(odd) td { background: rgba(26,58,92,.04); }

/* ── Séparateur ──────────────────────────────────────────────────── */
.wp-block-separator {
  border-color: var(--color-border) !important;
  opacity:      1 !important;
  margin:       2rem 0;
}

/* ── Espacement entre blocs dans la homepage ─────────────────────── */
.front-page__content > * + * { margin-top: 0; }
.front-page__content .wp-block-paragraph,
.front-page__content .wp-block-heading,
.front-page__content .wp-block-list,
.front-page__content .wp-block-image,
.front-page__content .wp-block-quote,
.front-page__content .wp-block-table,
.front-page__content .wp-block-columns,
.front-page__content .wp-block-group,
.front-page__content .wp-block-media-text,
.front-page__content .wp-block-cover,
.front-page__content .wp-block-buttons,
.front-page__content .wp-block-separator {
  margin-bottom: 2rem;
}

/* ═══════════════════════════════════════════════════════════════════
   CARDS ARTICLES
   ═══════════════════════════════════════════════════════════════════ */
.article-card {
  display:        flex;
  flex-direction: column;
  height:         100%;
  background:     var(--color-white);
  border-radius:  var(--radius);
  box-shadow:     var(--shadow);
  overflow:       hidden;
  transition:     box-shadow var(--transition-md), transform var(--transition-md);
}
.article-card { cursor: pointer; }
.article-card:hover {
  box-shadow: var(--shadow-lg);
  transform:  translateY(-4px);
}

.article-card__image {
  overflow:     hidden;
  aspect-ratio: 16 / 9;
  background:   var(--color-border);
}
.article-card__image img {
  width:      100%;
  height:     100%;
  object-fit: cover;
  transition: transform .4s ease;
  display:    block;
}
.article-card:hover .article-card__image img { transform: scale(1.05); }

.article-card__body {
  display:        flex;
  flex-direction: column;
  gap:            .5rem;
  padding:        1.25rem 1.25rem 1.4rem;
  flex:           1;
}

.article-card__title {
  font-size:   1rem;
  font-weight: 600;
  line-height: 1.45;
  margin:      0;
}
.article-card__title a {
  color:       var(--color-primary);
  transition:  color var(--transition);
}
.article-card__title a:hover { color: var(--color-accent); }

.article-card__excerpt {
  font-size:   .875rem;
  color:       var(--color-muted);
  line-height: 1.65;
  margin:      0;
  flex:        1;
}

/* ═══════════════════════════════════════════════════════════════════
   BLOC GRILLE D'ARTICLES (homepage Gutenberg)
   ═══════════════════════════════════════════════════════════════════ */
.articles-grid-block { margin: 0; }

/* Boutons de pagination */
.btn-page {
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
  min-width:       2.5rem;
  height:          2.5rem;
  padding:         0 .8rem;
  border:          1px solid var(--color-border);
  border-radius:   var(--radius-sm);
  background:      var(--color-white);
  color:           var(--color-text);
  font-family:     var(--font-base);
  font-size:       .875rem;
  font-weight:     500;
  cursor:          pointer;
  transition:      all var(--transition);
  line-height:     1;
}
.btn-page:hover {
  border-color: var(--color-primary);
  color:        var(--color-primary);
}
.btn-page.active {
  background:   var(--color-primary);
  border-color: var(--color-primary);
  color:        var(--color-white);
  cursor:       default;
  font-weight:  600;
}

/* ═══════════════════════════════════════════════════════════════════
   PAGE D'ACCUEIL (Gutenberg)
   Conteneur des blocs + contrainte de largeur 980px par défaut.
   ═══════════════════════════════════════════════════════════════════ */
.front-page__content {
  width:    100%;
  overflow: hidden; /* évite les débordements horizontaux */
}

/* Contrainte de largeur pour les blocs à alignement par défaut */
.front-page__content > *:not(.alignfull):not(.alignwide) {
  max-width:     var(--container-width);
  margin-left:   auto;
  margin-right:  auto;
  padding-left:  1rem;
  padding-right: 1rem;
}
@media (min-width: 576px) {
  .front-page__content > *:not(.alignfull):not(.alignwide) {
    padding-left:  1.5rem;
    padding-right: 1.5rem;
  }
}

/* Blocs "large" alignement */
.front-page__content > .alignwide {
  max-width:     min(1200px, 100%);
  margin-left:   auto;
  margin-right:  auto;
  padding-left:  1rem;
  padding-right: 1rem;
}

/* Blocs pleine largeur */
.front-page__content > .alignfull {
  max-width:     100%;
  padding-left:  0;
  padding-right: 0;
  margin-left:   0;
  margin-right:  0;
}

/* ═══════════════════════════════════════════════════════════════════
   PAGE ARTICLE (single.php)
   ═══════════════════════════════════════════════════════════════════ */
.article-full__thumbnail {
  margin-bottom: 2rem;
  border-radius: var(--radius-lg);
  overflow:      hidden;
  max-height:    480px;
}
.article-full__thumbnail img {
  width:      100%;
  height:     100%;
  object-fit: cover;
}

.article-full__title {
  font-size:     1.9rem;
  font-weight:   800;
  color:         var(--color-primary);
  line-height:   1.25;
  margin-bottom: 1.75rem;
}

.article-full__intro {
  padding:       1.25rem 1.5rem;
  background:    var(--color-white);
  border-left:   4px solid var(--color-accent);
  border-radius: 0 var(--radius) var(--radius) 0;
  margin-bottom: 1.75rem;
  box-shadow:    var(--shadow-sm);
  font-size:     1.05rem;
  font-style:    italic;
}

.article-full__resume {
  position:      relative;
  padding:       1.25rem 1.5rem 1.5rem;
  background:    rgba(26,58,92,.04);
  border:        1.5px solid rgba(26,58,92,.18);
  border-radius: 14px;
  margin-bottom: 2rem;
}
.article-full__resume::before {
  content:         'ⓘ  En résumé';
  display:         inline-block;
  padding:         .22rem .7rem;
  background:      #1A3A5C;
  color:           #fff;
  font-size:       .62rem;
  font-weight:     700;
  letter-spacing:  .09em;
  text-transform:  uppercase;
  border-radius:   100px;
  margin-bottom:   .85rem;
}

.article-full__body {
  margin-bottom: 2.5rem;
}

/* Articles liés */
.related-articles {
  border-top:    2px solid var(--color-border);
  padding-top:   2.5rem;
}
.related-articles__title {
  font-size:   1.35rem;
  font-weight: 700;
  color:       var(--color-primary);
  margin-bottom: 1.5rem;
  padding-bottom: .6rem;
  border-bottom: 3px solid var(--color-accent);
  display:     inline-block;
}

/* ═══════════════════════════════════════════════════════════════════
   PAGE CATÉGORIE
   ═══════════════════════════════════════════════════════════════════ */
.category-page__title {
  font-size:     2rem;
  font-weight:   800;
  color:         var(--color-primary);
  line-height:   1.25;
  margin-bottom: 1.5rem;
}

.category-page__intro {
  padding:       1.25rem 1.5rem;
  background:    var(--color-white);
  border-left:   4px solid var(--color-accent);
  border-radius: 0 var(--radius) var(--radius) 0;
  margin-bottom: 1.75rem;
  box-shadow:    var(--shadow-sm);
  font-size:     1.05rem;
  font-style:    italic;
}

.category-page__resume {
  position:      relative;
  padding:       1.25rem 1.5rem 1.5rem;
  background:    rgba(26,58,92,.04);
  border:        1.5px solid rgba(26,58,92,.18);
  border-radius: 14px;
  margin-bottom: 2.5rem;
}
.category-page__resume::before {
  content:         'ⓘ  En résumé';
  display:         inline-block;
  padding:         .22rem .7rem;
  background:      #1A3A5C;
  color:           #fff;
  font-size:       .62rem;
  font-weight:     700;
  letter-spacing:  .09em;
  text-transform:  uppercase;
  border-radius:   100px;
  margin-bottom:   .85rem;
}

.category-page__partie-1 { margin-bottom: 2.5rem; }
.category-page__partie-2 {
  border-top:  1px solid var(--color-border);
  padding-top: 2.5rem;
}

.category-page__h2-articles {
  font-size:     1.45rem;
  font-weight:   700;
  color:         var(--color-primary);
  margin-bottom: 1.5rem;
  position:      relative;
  padding-left:  1rem;
}
.category-page__h2-articles::before {
  content:          '';
  position:         absolute;
  left:             0;
  top:              .15em;
  bottom:           .15em;
  width:            4px;
  background:       var(--color-secondary);
  border-radius:    2px;
}

/* ═══════════════════════════════════════════════════════════════════
   PAGES STANDARD
   ═══════════════════════════════════════════════════════════════════ */
.page-title {
  font-size:     2rem;
  font-weight:   800;
  color:         var(--color-primary);
  margin-bottom: 1.75rem;
  line-height:   1.25;
}

.page-article__body {
  /* hérite des styles rge2-wysiwyg */
}

/* ═══════════════════════════════════════════════════════════════════
   BLOC EXPERT
   ═══════════════════════════════════════════════════════════════════ */
.expert-block {
  background: var(--color-primary);
  padding:    3.5rem 0;
}

.expert-block__inner {
  display:         flex;
  flex-direction:  column;
  align-items:     center;
  gap:             1.75rem;
  text-align:      center;
}

@media (min-width: 640px) {
  .expert-block__inner {
    flex-direction: row;
    text-align:     left;
    gap:            2.5rem;
  }
}

.expert-block__photo { flex-shrink: 0; }
.expert-block__photo img {
  width:         110px;
  height:        110px;
  border-radius: 50%;
  object-fit:    cover;
  border:        3px solid rgba(255,255,255,.25);
  box-shadow:    0 0 0 6px rgba(255,255,255,.08);
  margin:        0 auto;
  display:       block;
}
@media (min-width: 640px) {
  .expert-block__photo img { margin: 0; }
}

.expert-block__content { flex: 1; }

.expert-block__label {
  display:        inline-block;
  font-size:      .72rem;
  font-weight:    600;
  text-transform: uppercase;
  letter-spacing: .12em;
  color:          var(--color-accent);
  margin-bottom:  .5rem;
  border:         1px solid rgba(232,160,32,.4);
  padding:        .15rem .6rem;
  border-radius:  100px;
}

.expert-block__name {
  font-size:   1.2rem;
  font-weight: 700;
  color:       var(--color-white);
  margin:      0 0 .2rem;
  line-height: 1.3;
}

.expert-block__role {
  font-size:   .875rem;
  font-weight: 500;
  color:       rgba(255,255,255,.65);
  margin:      0 0 .9rem;
}

.expert-block__bio {
  font-size:   .9rem;
  line-height: 1.75;
  color:       rgba(255,255,255,.78);
  margin:      0;
  max-width:   620px;
}

/* ═══════════════════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════════════════ */
.site-footer {
  background: #102235;
  padding:    1.75rem 0;
}

.site-footer__inner {
  display:        flex;
  flex-direction: column;
  align-items:    center;
  gap:            .85rem;
  text-align:     center;
}
@media (min-width: 640px) {
  .site-footer__inner {
    flex-direction: row;
    justify-content: space-between;
    text-align:     left;
    gap:            1.5rem;
  }
}

.site-footer__links {
  display:         flex;
  flex-wrap:       wrap;
  gap:             .6rem 1.25rem;
  justify-content: center;
}
@media (min-width: 640px) {
  .site-footer__links { justify-content: flex-start; }
}
.site-footer__links a {
  color:       rgba(255,255,255,.6);
  font-size:   .82rem;
  transition:  color var(--transition);
}
.site-footer__links a:hover { color: var(--color-accent); }

.site-footer__copyright {
  font-size: .82rem;
  color:     rgba(255,255,255,.6);
  margin:    0;
  white-space: nowrap;
}

/* ═══════════════════════════════════════════════════════════════════
   BOUTONS
   ═══════════════════════════════════════════════════════════════════ */
.btn-primary {
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
  gap:             .5rem;
  padding:         .75rem 1.75rem;
  background:      var(--color-accent);
  color:           var(--color-white) !important;
  border:          2px solid var(--color-accent);
  border-radius:   var(--radius);
  font-family:     var(--font-base);
  font-size:       1rem;
  font-weight:     600;
  cursor:          pointer;
  text-decoration: none;
  transition:      all var(--transition-md);
  line-height:     1.4;
}
.btn-primary:hover {
  background:   transparent;
  color:        var(--color-accent) !important;
}

.btn-secondary {
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
  gap:             .4rem;
  padding:         .5rem 1.25rem;
  background:      transparent;
  color:           var(--color-primary);
  border:          1px solid var(--color-primary);
  border-radius:   var(--radius);
  font-family:     var(--font-base);
  font-size:       .9rem;
  font-weight:     500;
  cursor:          pointer;
  text-decoration: none;
  transition:      all var(--transition);
}
.btn-secondary:hover {
  background: var(--color-primary);
  color:      var(--color-white);
}

/* ═══════════════════════════════════════════════════════════════════
   PAGE 404
   ═══════════════════════════════════════════════════════════════════ */
.page-404 {
  min-height: 55vh;
  display:    flex;
  align-items: center;
}
.page-404__inner {
  max-width:   540px;
  margin:      0 auto;
  text-align:  center;
  padding:     3rem 0;
}
.page-404__code {
  font-size:   7rem;
  font-weight: 900;
  color:       var(--color-primary);
  line-height: 1;
  margin:      0 0 -.5rem;
  opacity:     .12;
  letter-spacing: -.04em;
  user-select: none;
}
.page-404__title {
  font-size:     2rem;
  font-weight:   800;
  color:         var(--color-primary);
  margin:        0 0 1rem;
}
.page-404__text {
  font-size:     1.05rem;
  color:         var(--color-muted);
  margin-bottom: 2rem;
  line-height:   1.7;
}
.page-404__actions { display: flex; flex-direction: column; align-items: center; gap: 1.5rem; }
.page-404__categories p {
  font-size:   .9rem;
  color:       var(--color-muted);
  margin-bottom: .75rem;
}

/* ═══════════════════════════════════════════════════════════════════
   BOUTON RETOUR EN HAUT
   ═══════════════════════════════════════════════════════════════════ */
.back-to-top {
  position:        fixed;
  bottom:          1.5rem;
  right:           1.5rem;
  z-index:         800;
  width:           44px;
  height:          44px;
  background:      var(--color-primary);
  color:           var(--color-white);
  border:          none;
  border-radius:   50%;
  cursor:          pointer;
  display:         flex;
  align-items:     center;
  justify-content: center;
  box-shadow:      var(--shadow-md);
  transition:      background var(--transition), transform var(--transition), box-shadow var(--transition);
  opacity:         0;
  pointer-events:  none;
  transform:       translateY(12px);
}
/* Quand [hidden] est retiré par JS */
.back-to-top:not([hidden]) {
  opacity:        1;
  pointer-events: auto;
  transform:      translateY(0);
}
.back-to-top:hover {
  background: var(--color-accent);
  transform:  translateY(-3px);
  box-shadow: var(--shadow-lg);
}

/* ═══════════════════════════════════════════════════════════════════
   SPINNERS / ÉTATS DE CHARGEMENT
   ═══════════════════════════════════════════════════════════════════ */
.spinner-border { color: var(--color-primary); }
.spinner-border-sm { width: 1rem; height: 1rem; border-width: .15em; }

/* ═══════════════════════════════════════════════════════════════════
   RESPONSIVE — ajustements mobiles
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width: 575.98px) {
  .article-full__title,
  .category-page__title,
  .page-title { font-size: 1.5rem; }

  .expert-block { padding: 2.5rem 0; }

  .page-404__code { font-size: 5rem; }
  .page-404__title { font-size: 1.5rem; }

  .btn-primary,
  .btn-secondary { width: 100%; justify-content: center; }
}

/* ═══════════════════════════════════════════════════════════════════
   STYLES ÉDITEUR GUTENBERG (admin)
   ═══════════════════════════════════════════════════════════════════ */
.editor-styles-wrapper {
  font-family: var(--font-base) !important;
  color:       var(--color-text) !important;
}
