/* ==========================================================================
   Grenoble Swing — feuille de style du thème
   --------------------------------------------------------------------------
   Toutes les couleurs, polices, bordures et mises en page spécifiques sont
   gérées ICI plutôt que dans les attributs des blocs. Un fichier CSS n'est
   jamais « validé » par l'éditeur de blocs : ce choix évite structurellement
   les avertissements de « contenu invalide » que génère la reproduction
   manuelle du HTML attendu par Gutenberg pour des styles de bloc complexes.
   ========================================================================== */

/* --------- Palette --------- */
:root {
    /* Chaque variable reprend par défaut la couleur définie dans theme.json
       (--wp--preset--color--*, générée automatiquement par WordPress) — la
       couleur ne vit donc qu'à un seul endroit. La valeur après la virgule
       n'est qu'un filet de sécurité si jamais cette variable n'était pas
       chargée. Le sélecteur de palette peut surcharger ces variables gs-*
       indépendamment, sans toucher aux couleurs proposées aux rédacteurs
       dans l'éditeur de blocs. */
    --gs-bordeaux: var(--wp--preset--color--bordeaux, #8B1A2B);
    --gs-creme: var(--wp--preset--color--creme, #F5F0E8);
    --gs-creme-fonce: var(--wp--preset--color--creme-fonce, #E8E0D0);
    --gs-or: var(--wp--preset--color--or, #C9A84C);
    --gs-anthracite: var(--wp--preset--color--anthracite, #1C1C1C);
    --gs-brun: var(--wp--preset--color--brun, #6B5C50);
    --gs-blanc: var(--wp--preset--color--blanc, #FFFFFF);

    --gs-creme-rgb: 245, 240, 232;
    --gs-blanc-rgb: 255, 255, 255;
}

/* --------- Police pour le nom du site ------- */
@font-face {
    font-family: 'SwingBRG';
    src: url('../fonts/SWINSBRG.TTF') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Manbow';
    src: url('../fonts/manbow.lines-regular.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* ---------- Palettes alternatives, accessibles aux daltoniens ----------
   Vérifiées : distance simulée protanopie/deutéranopie/tritanopie >= 113
   (seuil de confusion ~40), contraste texte >= 4.5 sur les fonds clairs.
   Voir les deux règles de correctif juste en dessous : sur fond sombre,
   l'accent assombri de ces palettes ne serait plus assez lisible — ces
   éléments passent au blanc uniquement pour ces deux palettes. */
[data-palette="bleu-orange"] {
    --gs-bordeaux: #0072B2  !important;
    --gs-or: #9C6C00 !important;
    /* Synchronise les couleurs proposées aux rédacteurs dans l'éditeur de
       blocs : un encart coloré à la main suit désormais la palette active. */
    --wp--preset--color--bordeaux: #0072B2  !important;
    --wp--preset--color--or: #9C6C00 !important;
}
[data-palette="vert-pourpre"] {
    --gs-bordeaux: #007E5C !important;
    --gs-or: #A36085 !important;
    --wp--preset--color--bordeaux: #007E5C !important;
    --wp--preset--color--or: #A36085 !important;
}
[data-palette="bleu-orange"] .gs-hero__eyebrow,
[data-palette="bleu-orange"] .gs-page-banner__eyebrow,
[data-palette="bleu-orange"] .gs-footer__col-title,
[data-palette="bleu-orange"] .gs-btn-gold,
[data-palette="bleu-orange"] .gs-btn-gold .wp-block-button__link,
[data-palette="vert-pourpre"] .gs-hero__eyebrow,
[data-palette="vert-pourpre"] .gs-page-banner__eyebrow,
[data-palette="vert-pourpre"] .gs-footer__col-title,
[data-palette="vert-pourpre"] .gs-btn-gold,
[data-palette="vert-pourpre"] .gs-btn-gold .wp-block-button__link {
    color: var(--gs-blanc);
}

/* ---------- Utilitaires de largeur ---------- */
.gs-constrained {
    max-width: var(--wp--style--global--content-size, 740px);
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}
.gs-wide {
    max-width: var(--wp--style--global--wide-size, 1140px);
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

/* ---------- En-tête ---------- */
.gs-header { background-color: var(--gs-bordeaux); position: sticky; top: 0; z-index: 100; }
.gs-header, .gs-header a { color: var(--gs-blanc); }
.gs-header a { text-decoration: none; }
.gs-header__inner {
    height: 80px;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.gs-header__logo img { display: block; height: 48px; width: auto; max-width: none; flex-shrink: 0; }
.gs-header__brand { display: flex; flex-direction: column; justify-content: center; min-width: 0; overflow: hidden; }
.gs-header__site-title { font-family: 'Manbow', serif; font-size: 1.5rem; font-weight: 700; line-height: 1.1; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-header__site-title a { color: var(--gs-blanc); }
.gs-header__tagline { font-family: 'Lato', sans-serif; font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 300; color: rgba(var(--gs-blanc-rgb),0.75); margin: 0; }
.gs-header__nav { display: flex; align-items: center; gap: 1.5rem; font-family: 'Lato', sans-serif; font-size: 0.875rem; letter-spacing: 0.05em; }
.gs-header__menu { list-style: none; display: flex; flex-wrap: wrap; gap: 1.5rem; margin: 0; padding: 0; }
.gs-header__menu li { position: relative; }
.gs-header__menu .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    list-style: none;
    margin: 0;
    padding: 0.5rem 0;
    min-width: 180px;
    background-color: var(--gs-bordeaux);
    box-shadow: 0 8px 16px rgba(0,0,0,0.2);
    z-index: 10;
}
.gs-header__menu li:hover > .sub-menu,
.gs-header__menu li:focus-within > .sub-menu {
    display: block;
}
.gs-header__menu .sub-menu a {
    display: block;
    padding: 0.6rem 1.25rem;
    white-space: nowrap;
}
.gs-header__nav a { color: var(--gs-blanc); }

/* ---------- Sélecteur de palette (en-tête) ---------- */
.gs-palette-switch { display: flex; align-items: center; gap: 8px; }
.gs-palette-swatch {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid rgba(var(--gs-blanc-rgb), 0.4);
    padding: 0;
    cursor: pointer;
}
.gs-palette-swatch[aria-pressed="true"] { border-color: var(--gs-blanc); }

/* ---------- Bouton du menu mobile (masqué par défaut, voir media query) ---------- */
.gs-header__toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 32px;
    height: 32px;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
}
.gs-header__toggle span { display: block; width: 100%; height: 2px; background-color: var(--gs-blanc); }

/* ---------- Menu mobile : bouton visible, menu en tiroir déroulant ---------- */
@media (max-width: 800px) {
    .gs-header__toggle { display: flex; }

    /* Le bouton pilote désormais tout le panneau (nav), pas seulement la
       liste de liens : caché par défaut, affiché en tiroir déroulant une
       fois ouvert — menu et pastilles de palette empilés à l'intérieur.
       L'en-tête retrouve sa hauteur fixe de 80px, identique au desktop. */
    .gs-header__nav {
        display: none;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        background-color: var(--gs-bordeaux);
        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
        /* L'en-tête étant collant, le tiroir le suit et ne défile pas avec
           la page : il défile donc lui-même, limité à la hauteur visible
           sous l'en-tête (80px). dvh suit la barre d'adresse mobile. */
        max-height: calc(100vh - 80px);
        max-height: calc(100dvh - 80px);
        overflow-y: auto;
        overscroll-behavior: contain;
    }
    .gs-header__nav.is-open { display: flex; }

    .gs-header__menu { flex-direction: column; gap: 0; }
    .gs-header__menu > li > a { display: block; padding: 0.85rem 1.5rem; }

    .gs-header__menu .sub-menu {
        display: block;
        position: static;
        box-shadow: none;
        background-color: rgba(0, 0, 0, 0.15);
        padding: 0;
        margin: 0;
        min-width: 0;
    }
    .gs-header__menu .sub-menu a { padding-left: 2.5rem; }

    .gs-palette-switch {
        justify-content: center;
        padding: 1rem 0;
        border-top: 1px solid rgba(var(--gs-blanc-rgb), 0.2);
    }
}

/* ---------- Pied de page ---------- */
.gs-footer { position: relative; z-index: 2; background-color: var(--gs-anthracite); color: var(--gs-creme); padding-top: 3.5rem; padding-bottom: 1.5rem; }
.gs-footer a { color: inherit; text-decoration: none; }
.gs-footer a:hover { text-decoration: underline; }
.gs-footer__columns {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem 3rem;
    padding-bottom: 2rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid var(--gs-or);
}
.gs-footer__col-brand { flex: 2 1 260px; }
.gs-footer__col { flex: 1 1 140px; }
.gs-footer__col-title {
    font-family: 'Lato', sans-serif; font-size: 0.75rem; letter-spacing: 0.12em;
    text-transform: uppercase; font-weight: 700; color: var(--gs-or); margin: 0 0 0.85rem;
}
.gs-footer__logo img { display: block; height: 40px; width: auto; max-width: none; }
.gs-footer__brand-name { font-family: 'Playfair Display', serif; font-size: 1.4rem; font-weight: 700; color: var(--gs-creme); margin: 0.75rem 0 0.5rem; }
.gs-footer__tagline { font-family: 'Lato', sans-serif; font-size: 0.9rem; line-height: 1.7; color: rgba(var(--gs-creme-rgb),0.65); margin: 0; }
.gs-footer__links { list-style: none; margin: 0; padding: 0; }
.gs-footer__links li { margin-bottom: 0.5rem; font-family: 'Lato', sans-serif; font-size: 0.9rem; color: rgba(var(--gs-creme-rgb),0.8); }
.gs-footer__bottom {
    display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
    gap: 0.75rem 1.5rem; font-family: 'Lato', sans-serif; font-size: 0.75rem; color: rgba(var(--gs-creme-rgb),0.45);
}
.gs-footer__bottom-links a { margin-left: 1.25rem; }
.gs-footer__bottom-links a:first-child { margin-left: 0; }

/* ---------- Image fixe (accueil) — sous l'en-tête, slogan en surimpression ---------- */
.gs-image-fixe {
    position: fixed;
    top: 100px; /* 80px (en-tête) + 20px d'espace */
    left: 0;
    width: 100%;
    height: 42vh;
    min-height: 252px;
    z-index: 1;
    background-color: var(--gs-bordeaux); /* repli tant qu'aucune image n'est définie */
    background-size: cover;
    background-position: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.gs-image-fixe::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.35); /* voile sombre : lisibilité du slogan quelle que soit l'image */
}
.gs-image-fixe__slogan {
    position: relative;
    z-index: 1;
    color: var(--gs-blanc);
    font-family: 'Manbow', sans-serif;
    font-size: 2.5rem;
    font-weight: 700;
    text-align: center;
    max-width: 640px;
    padding: 0 1.5rem;
    margin: 0;
}
.gs-image-fixe__ligne {
    position: relative;
    z-index: 1;
    width: 220px;
    height: 2px;
    background-color: var(--gs-blanc);
    margin: 1.25rem auto;
}
.gs-image-fixe-spacer { height: calc(42vh + 40px); min-height: 292px; } /* hauteur de l'image + 20px au-dessus + 20px en dessous */

/* ---------- Hero (accueil) — reprend sa forme d'origine, défile normalement ---------- */
.gs-hero {
    position: relative;
    z-index: 2;
    background-color: var(--gs-bordeaux);
    min-height: 420px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4rem 1.5rem;
    text-align: center;
}
.gs-hero, .gs-hero * { color: var(--gs-blanc); }
.gs-hero__inner { max-width: 640px; margin: 0 auto; }
.gs-hero__eyebrow { font-family: 'Lato', sans-serif; font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 700; color: var(--gs-or); margin: 0 0 0.75rem; }
.gs-hero__title { font-family: 'Playfair Display', serif; font-size: 2.75rem; font-weight: 700; line-height: 1.15; margin: 0 0 1rem; }
.gs-hero__subtitle { font-family: 'Lato', sans-serif; font-size: 1.125rem; font-weight: 300; line-height: 1.6; color: rgba(var(--gs-blanc-rgb),0.85); margin: 0 0 2rem; }
.gs-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }
@media (max-width: 600px) { .gs-hero__title { font-size: 2rem; } }
@media (max-width: 480px) { .gs-header__site-title { font-size: 1.15rem; } }

/* ---------- Bandeau titre (pages, cours, événements, agenda) ---------- */
.gs-page-banner { background-color: var(--gs-bordeaux); padding-top: 3rem; padding-bottom: 3rem; text-align: center; }
.gs-page-banner, .gs-page-banner * { color: var(--gs-blanc); }
.gs-page-banner__eyebrow { font-family: 'Lato', sans-serif; font-size: 0.75rem; letter-spacing: 0.15em; text-transform: uppercase; font-weight: 700; color: var(--gs-or); margin: 0 0 0.5rem; }
.gs-page-banner__title { font-family: 'Playfair Display', serif; font-size: 2.75rem; font-weight: 700; line-height: 1.15; margin: 0; }

/* ---------- Boutons ---------- */
/* Fonctionne à la fois pour un lien direct (gabarits PHP) et pour un bouton
   inséré via un motif de contenu (structure de bloc conservée). */
.gs-btn,
.gs-btn .wp-block-button__link {
    font-family: 'Lato', sans-serif; font-size: 0.875rem; font-weight: 700;
    letter-spacing: 0.1em; text-transform: uppercase; border-radius: 4px;
    padding: 0.85rem 2rem; text-decoration: none; display: inline-block;
}
.gs-btn-gold, .gs-btn-gold .wp-block-button__link { background-color: var(--gs-or); color: var(--gs-anthracite); }
.gs-btn-outline-white, .gs-btn-outline-white .wp-block-button__link { background-color: transparent; color: var(--gs-blanc); border: 1.5px solid var(--gs-blanc); }
.gs-btn-bordeaux, .gs-btn-bordeaux .wp-block-button__link { background-color: var(--gs-bordeaux); color: var(--gs-blanc); }
.gs-btn-outline-bordeaux, .gs-btn-outline-bordeaux .wp-block-button__link { background-color: transparent; color: var(--gs-bordeaux); border: 1.5px solid var(--gs-bordeaux); }
.gs-btn-text, .gs-btn-text .wp-block-button__link { background: none; color: var(--gs-bordeaux); padding: 0; text-decoration: underline; font-size: 0.8rem; }

/* ---------- Sections génériques ---------- */
.gs-section { position: relative; z-index: 2; padding-top: 3.5rem; padding-bottom: 3.5rem; }
.gs-section--creme { background-color: var(--gs-creme); }
.gs-section--blanc { background-color: var(--gs-blanc); }
.gs-section__header {
    display: flex; flex-wrap: wrap; justify-content: space-between;
    align-items: baseline; gap: 1rem; margin-bottom: 2rem;
}
.gs-section__title { font-family: 'Playfair Display', serif; font-size: 2rem; font-weight: 700; color: var(--gs-bordeaux); margin: 0; }
.gs-section__title--center { text-align: center; margin-left: auto; margin-right: auto; }
.gs-section__intro { font-family: 'Lato', sans-serif; color: var(--gs-brun); text-align: center; margin: -1rem 0 2rem; }

.gs-section__header-center { text-align: center; margin-bottom: 2rem; }

/* ---------- Grilles de cartes ---------- */
.gs-cards-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.5rem; align-items: stretch; }

/* ---------- Carte événement ---------- */
.gs-event-card { background: var(--gs-blanc); border: 1px solid var(--gs-creme-fonce); border-radius: 4px; padding: 1.5rem; height: 100%; box-sizing: border-box; }
.gs-event-card__type { font-family: 'Lato', sans-serif; font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; color: var(--gs-or); margin: 0 0 0.5rem; }
.gs-event-card__title { font-family: 'Playfair Display', serif; font-size: 1.15rem; font-weight: 400; line-height: 1.3; color: var(--gs-anthracite); margin: 0 0 0.5rem; }
.gs-event-card__date { font-family: 'Lato', sans-serif; font-size: 0.9rem; color: var(--gs-brun); margin: 0; }

/* ---------- Liste de l'agenda ---------- */
.gs-event-list-item {
    display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
    gap: 1rem; background: var(--gs-blanc); border-bottom: 1px solid var(--gs-creme-fonce); padding: 1.5rem;
}
.gs-event-list-item__type { font-family: 'Lato', sans-serif; font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; color: var(--gs-or); margin: 0 0 0.35rem; }
.gs-event-list-item__title { font-family: 'Playfair Display', serif; font-size: 1.3rem; font-weight: 400; color: var(--gs-anthracite); margin: 0 0 0.35rem; }
.gs-event-list-item__date { font-family: 'Lato', sans-serif; font-size: 0.9rem; color: var(--gs-brun); margin: 0; }
.gs-event-list-item__image { width: 80px; height: 80px; object-fit: cover; border-radius: 4px; flex-shrink: 0; }

/* ---------- Filtre par discipline (agenda) ---------- */
.gs-filtre-disciplines { margin-bottom: 2rem; }
.gs-filtre-disciplines fieldset { border: none; padding: 0; margin: 0; }
.gs-filtre-disciplines legend {
    font-family: 'Lato', sans-serif; font-size: 0.75rem; letter-spacing: 0.1em;
    text-transform: uppercase; font-weight: 700; color: var(--gs-brun);
    margin-bottom: 0.75rem; padding: 0;
}
.gs-filtre-disciplines__option {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-right: 1.25rem;
    margin-bottom: 0.75rem;
    font-family: 'Lato', sans-serif;
    font-size: 0.9rem;
    color: var(--gs-anthracite);
    cursor: pointer;
}
.gs-filtre-disciplines .gs-btn {
    vertical-align: middle;
    margin-right: 0.75rem;
    font-size: 0.75rem;
    padding: 0.5rem 1.25rem;
    letter-spacing: 0.06em;
}
/* ---------- Disciplines (accueil) ---------- */
.gs-disciplines { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; align-items: stretch; }
@media (max-width: 600px) {
    .gs-disciplines { grid-template-columns: 1fr; }
}
.gs-discipline-card { border-top: 3px solid var(--gs-bordeaux); padding-top: 1.25rem; height: 100%; box-sizing: border-box; display: flex; flex-direction: column; }
.gs-discipline-card.is-or { border-top-color: var(--gs-or); }
.gs-discipline-card.is-brun { border-top-color: var(--gs-brun); }
.gs-discipline-card__title { font-family: 'Playfair Display', serif; font-size: 1.4rem; font-weight: 700; color: var(--gs-anthracite); margin: 0 0 0.5rem; }
.gs-discipline-card__text { font-family: 'Lato', sans-serif; font-size: 0.9rem; line-height: 1.7; color: var(--gs-brun); margin: 0 0 1rem; }
.gs-discipline-card .gs-btn { margin-top: auto; }

/* ---------- Appel à l'action ---------- */
.gs-cta { background-color: var(--gs-bordeaux); padding-top: 3.5rem; padding-bottom: 3.5rem; text-align: center; }
.gs-cta, .gs-cta * { color: var(--gs-blanc); }
.gs-cta__title { font-family: 'Playfair Display', serif; font-size: 2rem; font-weight: 700; margin: 0 0 1rem; }
.gs-cta__text { font-family: 'Lato', sans-serif; font-size: 1rem; font-weight: 300; line-height: 1.7; color: rgba(var(--gs-blanc-rgb),0.8); margin: 0 auto 2rem; max-width: 480px; }
.gs-cta__actions { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }

/* ---------- Fiches (motifs événement / cours) ---------- */
.gs-fiche { background: var(--gs-blanc); border: 1px solid var(--gs-creme-fonce); border-radius: 4px; padding: 1.5rem; margin: 1.5rem 0; }
.gs-fiche__titre { font-family: 'Lato', sans-serif; font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; color: var(--gs-or); margin: 0 0 1rem; }
.gs-fiche__ligne { font-family: 'Lato', sans-serif; font-size: 0.95rem; color: var(--gs-anthracite); margin: 0 0 0.65rem; line-height: 1.6; }
.gs-fiche__ligne:last-of-type { margin-bottom: 0; }
.gs-fiche__ligne strong { color: var(--gs-brun); font-weight: 700; font-size: 0.8rem; letter-spacing: 0.04em; text-transform: uppercase; margin-right: 0.35rem; }

/* ---------- Date d'un événement ---------- */
.gs-date-evenement { font-family: 'Lato', sans-serif; color: var(--gs-brun); }

/* ---------- Fiche détail (événement / cours) ---------- */
.gs-eyebrow { font-family: 'Lato', sans-serif; font-size: 0.75rem; letter-spacing: 0.15em; text-transform: uppercase; font-weight: 700; color: var(--gs-or); margin: 0 0 0.5rem; }
.gs-single-date { font-family: 'Lato', sans-serif; font-size: 1.125rem; color: var(--gs-brun); margin: 0 0 1.5rem; }
.gs-single-image { margin-bottom: 2rem; }
.gs-single-image img { width: 100%; height: auto; border-radius: 4px; display: block; }
.gs-single-content { line-height: 1.8; margin-bottom: 2rem; }
.gs-single-content p { margin-bottom: 1.25em; }
/* Chaque élément direct du contenu se limite à une largeur de lecture
   confortable et se centre — sauf les motifs pensés pour s'étendre sur
   toute la largeur (héro, appel à l'action), qui s'en affranchissent. */
.gs-single-content > * {
    max-width: 740px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    box-sizing: content-box;
}
.gs-single-content > .gs-hero,
.gs-single-content > .gs-cta {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

/* ---------- Article de blog (single-post.php) ---------- */
/* Deux colonnes : l'article, puis un panneau « Articles récents » de 280px.
   minmax(0, 1fr) empêche un contenu large (tableau, image) d'élargir la
   colonne au-delà de l'écran. */
.gs-article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 3rem;
    align-items: start;
}
.gs-article__contenu { line-height: 1.8; margin-bottom: 2rem; }
.gs-article__contenu p { margin-bottom: 1.25em; }
.gs-article__contenu img { max-width: 100%; height: auto; }

/* Navigation article précédent / suivant */
.gs-article .post-navigation { border-top: 1px solid var(--gs-creme-fonce); padding-top: 1.5rem; }
.gs-article .post-navigation .nav-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem 2rem; }
.gs-article .post-navigation .nav-next { margin-left: auto; text-align: right; }
.gs-article .post-navigation a { font-family: 'Playfair Display', serif; color: var(--gs-anthracite); text-decoration: none; }
.gs-article .post-navigation a:hover { color: var(--gs-bordeaux); }
.gs-article__nav-sens {
    display: block; font-family: 'Lato', sans-serif; font-size: 0.75rem; letter-spacing: 0.12em;
    text-transform: uppercase; font-weight: 700; color: var(--gs-or); margin-bottom: 0.25rem;
}

/* Panneau « Articles récents » : reste visible au défilement sur grand écran
   (100px = 80px d'en-tête + 20px d'espace). */
.gs-article__panneau {
    position: sticky; top: 100px;
    background: var(--gs-blanc); border: 1px solid var(--gs-creme-fonce); border-radius: 4px; padding: 1.5rem;
}
.gs-article__panneau-titre {
    font-family: 'Lato', sans-serif; font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase;
    font-weight: 700; color: var(--gs-or); margin: 0 0 1rem;
}
.gs-article__recents { list-style: none; margin: 0 0 1rem; padding: 0; }
.gs-article__recents li { padding: 0.75rem 0; border-bottom: 1px solid var(--gs-creme-fonce); }
.gs-article__recents li:first-child { padding-top: 0; }
.gs-article__recents a { display: block; font-family: 'Playfair Display', serif; font-size: 1rem; line-height: 1.35; color: var(--gs-anthracite); text-decoration: none; }
.gs-article__recents a:hover { color: var(--gs-bordeaux); }
.gs-article__recents time { display: block; font-family: 'Lato', sans-serif; font-size: 0.8rem; color: var(--gs-brun); margin-top: 0.25rem; }

/* Petit écran : le panneau passe sous l'article. */
@media (max-width: 800px) {
    .gs-article { grid-template-columns: 1fr; gap: 2rem; }
    .gs-article__panneau { position: static; }
}

/* ---------- Texte réservé aux lecteurs d'écran ----------
   WordPress place des titres invisibles (classe .screen-reader-text) dans
   certaines navigations : the_post_navigation(), the_posts_pagination()…
   C'est au thème de les masquer visuellement, tout en les laissant
   accessibles aux lecteurs d'écran (règle recommandée par WordPress). */
.screen-reader-text {
    border: 0;
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
}

/* ---------- Carte actualité (accueil) ---------- */
/* Même cadre que la carte événement, avec une image en tête recadrée au
   format 3:2 (object-fit) pour que toutes les cartes aient la même hauteur
   d'image, quel que soit le format de la photo d'origine. */
.gs-actu-card {
    display: flex; flex-direction: column; height: 100%; box-sizing: border-box; overflow: hidden;
    background: var(--gs-blanc); border: 1px solid var(--gs-creme-fonce); border-radius: 4px;
}
.gs-actu-card__image img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.gs-actu-card__corps { padding: 1rem 1.25rem; }
.gs-actu-card__title { font-family: 'Playfair Display', serif; font-size: 1.15rem; font-weight: 400; line-height: 1.3; color: var(--gs-anthracite); margin: 0; }
/* Titre de section en retrait (section « Actualités » de l'accueil). */
.gs-section__title--discret { font-size: 1.4rem; }

html {
    scroll-behavior: smooth;
}