:target {
    scroll-margin-top: 6.5rem !important;
}

/* 1. RÈGLES DE BASE POUR TOUTE LA PAGE */
html {
    /* On force une seule barre de défilement sur le HTML */
    overflow-y: scroll;
    margin: 0;
    padding: 0;
    font-size: 100%;
}

body {
    font-family: 'Roboto', 'Helvetica Neue', Arial, sans-serif;
    font-size: var(--font-size-base);
    line-height: var(--line-height-body);
    color: black;
    display: flex;
    flex-direction: column;
    /* On utilise min-height sans bloquer la hauteur à 100% */
    min-height: 100vh;
    margin: 0;
    /* Le padding-top ici permet de ne pas cacher le contenu sous le menu fixe */
    padding: var(--nav-height-desktop) 0 0 0;
    touch-action: manipulation;
    position: relative;
    background-color: #f4f1ea;
    /* On empêche le body de créer sa propre barre de défilement */
    overflow-x: hidden;
    overflow-y: visible;
}

/* On crée une couche invisible pour l'image de fond uniquement */
body::before {
    content: "";
    position: fixed; /* L'image reste fixe pendant le scroll */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1; /* Place l'image DERRIÈRE le contenu */

    background-image: url('/asset/img/page/video/ferme.jpg');
    background-repeat: repeat;
    background-size: cover;

    /* AJUSTEZ L'OPACITÉ ICI (0.1 = très pâle, 0.9 = très visible) */
    opacity: 0.2;

    pointer-events: none; /* Empêche d'interagir avec cette couche */
}
header, footer {
    flex-shrink: 0;
}

/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* FONT ------------------------- */
@font-face {
    font-family: 'Roboto';
    src: url('/asset/font/Roboto-Regular.woff2') format('woff2');
    font-weight: var(--fw-normal);
    font-style: normal;
}
@font-face {
    font-family: 'Roboto';
    src: url('/asset/font/Roboto-Bold.woff2') format('woff2');
    font-weight: var(--fw-bold);
    font-style: normal;
}
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* h1 h2 h3 --------------------- */
h1, .h1-style {
    /* RETIRER les propriétés d'alignement et de marge gauche qui sont désormais sur le wrapper */
    /* Avant: display: flex; align-items: center; margin-left: var(--space-xl); */
    display: block; /* Revenir au comportement normal du bloc */
    margin-left: 0; /* Important pour que le titre soit juste après l'icône */
    margin-top: 0;
    margin-bottom: 0;
    /* Garder les propriétés de police: */
    font-size: var(--font-size-h1);
    line-height: var(--line-height-heading);
    color: var(--source-color-accent-two);
    font-weight: var(--fw-bold);
}
h2, .h2-style {
    font-size: var(--font-size-h2); /* 1.5rem */
    line-height: var(--line-height-heading);
    margin-top: var(--space-lg);
    margin-bottom: var(--space-sm);
    color: var(--source-color-accent-two);
}
h3, .h3-style {
    font-size: var(--font-size-h3);
    line-height: var(--line-height-heading);
    margin-top: var(--space-md);
    margin-bottom: var(--space-xs);
    color: var(--source-color-accent-two);
}
p {
    /* Remplace la ligne 1.6 que vous aviez par la variable standard */
    line-height: var(--line-height-body);
    margin-bottom: var(--space-sm);
    font-size: var(--font-size-base-plus);
}
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* ========================================================================= */
/* 0. STRUCTURE GLOBALE DE LA BARRE DE NAVIGATION (nav) */
/* .main-nav : Conteneur de niveau le plus élevé. Gère la position fixe, la largeur, le z-index, la couleur de fond et l'ombre. */
.main-nav {
    top: 0;
    width: 100%;
    z-index: 9999999;
    background-image: linear-gradient(to right, #000000, #457739);
    box-shadow: var(--shadow-z2);
    position: fixed;
}
/* .nav-container : Conteneur interne, centré. Utilise Flexbox pour séparer le contenu (gauche/droite) et l'aligner verticalement (center). */
.nav-container {
    display: flex;
    justify-content: space-between;
    /* CHANGE ICI : On force la largeur à matcher ton contenu blanc */
    max-width: calc(1088 / 16 * 1rem); /* 68rem */
    width: 97%;

    /* CENTRE LE CONTENU DANS LA BARRE NOIRE */
    margin: 0 auto !important;

    padding: calc(10 / 16 * 1rem) var(--space-md); /* 0.625rem */
    align-items: center;
    height: var(--nav-height-desktop);
}
/* ========================================================================= */
/* 1. GROUPE GAUCHE : LOGO ET TEXTE (Nav-Logo-Group) */
/* .nav-logo-group : Conteneur Flex qui enveloppe l'icône et le lien texte. */
.nav-logo-group {
    display: flex;
    align-items: center;
    margin-left: 0 !important;
}
/* .logo-link : Lien hypertexte qui englobe l'icône et le texte. Agit comme un conteneur Flex. */
.logo-link {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 0;
    transition: background-color 0.3s ease;
    gap: calc(10 / 16 * 1rem); /* 0.625rem */
}
/* .logo-link:hover .logo-icon : Animation de survol (hover) sur l'icône. */
.logo-link:hover .logo-icon {
    filter: brightness(1.3) drop-shadow(0 0 calc(8 / 16 * 1rem) var(--color-logo-drop-shadow)); /* 0.5rem */
    transition: filter 0.3s ease;
}
/* .logo-text : Image du texte/titre du logo. Définit la taille et applique une correction de positionnement vertical. */
.logo-text {
    height: calc(28.8 / 16 * 1rem); /* 1.8rem */
    width: auto;
    max-height: 100%;
    margin-left: 0;
    transform: translateY(calc(11 / 16 * 1rem)); /* 0.6875rem */
}
/* .logo-icon (Définition de la taille) : Règle spécifique pour définir la taille et l'alignement vertical de l'icône. */
.logo-icon {
    height: calc(40 / 16 * 1rem); /* 2.5rem */
    width: auto;
    align-items: center;
    transition: filter 0.3s ease;
}
/* ========================================================================= */
/* 2. GROUPE DROIT : CONTENEUR PRINCIPAL (Nav-Right-Group) */
/* .nav-right-group : Conteneur Flex qui regroupe tous les éléments à droite du logo (liens, séparateur, langue). */
.nav-right-group {
    display: flex;
    align-items: center;
    gap: 0;
}
.nav-link {
    /* On remplace l'espace vide par du padding cliquable */
    padding: calc(10 / 16 * 1rem) calc(10 / 16 * 1rem); /* 0.625rem */
    display: inline-flex; /* MODIFIÉ : au lieu de inline-block */
    align-items: center;
}
/* .nav-links-wrapper : Conteneur de niveau supérieur des liens du menu (nettoyage des marges/padding). */
.nav-links-wrapper {
    padding: 0;
    margin: 0;
}
/* .nav-links : Liste non ordonnée contenant tous les liens de navigation. Utilise Flexbox pour l'alignement horizontal. */
.nav-links {
    display: flex;
    list-style: none;
    font-size: var(--font-size-nav-links);
    padding: 0;
    margin: 0;
    align-items: center;
    gap: calc(10 / 16 * 1rem); /* 0.625rem */
}
.nav-link:link,
.nav-link:visited,
.nav-link:active {
    color: var(--color-nav-link);
}
.nav-link:hover {
    filter: brightness(1.3);
}
/* ========================================================================= */
/* 3. DÉTAILS DES SOUS-MENUS (DROPDOWN) */
/* .dropdown : VÉRITÉ - RESSOURCES Conteneur du lien principal qui a un sous-menu. Gère la position relative. */
.dropdown {
    /* Ajoute une zone invisible de 20px à gauche et à droite */
    position: relative;
    display: inline-block;
    transform: translateY(0);
    padding: 0 calc(20 / 16 * 1rem); /* 1.25rem */
    margin: 0 calc(-20 / 16 * 1rem); /* -1.25rem */
}
/* .dropdown-toggle, .dropdown > .nav-link : - Style des liens principaux qui déclenchent le menu déroulant. */
.dropdown-toggle,
.dropdown > .nav-link {
}
/* .dropdown-toggle::after : Ajout de la petite flèche (caret) à côté du texte du lien déroulant. */
.dropdown-toggle::after {
    content: "";
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 0.5em;
    vertical-align: middle;
    border-top: 0.4em solid var(--color-triangle);
    border-right: 0.4em solid transparent;
    border-bottom: 0;
    border-left: 0.4em solid transparent;
}
.dropdown-menu {
    position: absolute;

    /* 1. On part du milieu du mot "Menu" */
    left: 50%;
    /* 2. On décale vers la gauche de 50% de sa propre largeur pour être parfaitement centré */
    transform: translateX(-61%) translateY(calc(10 / 16 * 1rem)); /* 0.625rem */

    background-color: var(--color-dropdown-menu-bg);
    border: calc(2 / 16 * 1rem) solid var(--color-dropdown-menu-border); /* 0.125rem */
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-z2);
    padding: calc(15 / 16 * 1rem) 0; /* 0.9375rem */
    z-index: 9999;

    display: flex !important;
    gap: 0;
    width: max-content;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;


    /* On le colle au haut pour éviter le vide */
    top: 90%;

    /* Le reste de votre code .dropdown-menu ... */
    padding-top: calc(10 / 16 * 1rem); /* 0.625rem */

}

/* Affichage au survol du bouton parent */
.dropdown:hover .dropdown-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    /* On garde le -50% pour rester centré et on met Y à 0 */
    transform: translateX(-50%) translateY(0);

}

/* Unification de la colonne et ajout de la ligne */
.menu-column {
    display: flex;
    flex-direction: column;
    list-style: none;
    margin: 0;
    padding: 0 calc(15 / 16 * 1rem); /* 0.9375rem */
    min-width: calc(180 / 16 * 1rem); /* 11.25rem */
}

/* La ligne verticale : appliquée uniquement à partir de la 2ème colonne */
.menu-column:nth-child(2) {
    border-left: calc(2 / 16 * 1rem) solid var(--color-nav-separator); /* 0.125rem */
}

.menu-column li {
    list-style: none;
}

.dropdown-menu .dropdown-item {
    display: flex;
    align-items: center;
    gap: calc(12 / 16 * 1rem); /* 0.75rem */
    padding: calc(7 / 16 * 1rem) calc(5 / 16 * 1rem); /* 0.4375rem 0.3125rem */
    text-decoration: none;
    white-space: nowrap;
    font-weight: var(--fw-bold);
    font-size: var(--font-size-dropdown-menu-item);
    color: var(--color-dropdown-item);
    /* Utilise transparent pour éviter le décalage au hover */
    border: calc(2 / 16 * 1rem) solid transparent; /* 0.125rem */
}
.menu-icon-image {
    height: calc(32 / 16 * 1rem); /* 2rem */
    width: calc(32 / 16 * 1rem); /* 2rem */
    vertical-align: middle;
    flex-shrink: 0;
}
.nav-link,
.logo-link {
    line-height: 1;
}
/* .dropdown-menu .dropdown-item:hover : Effet de survol sur un lien du sous-menu. */
.dropdown-menu .dropdown-item:hover {
    background-color: var(--color-drop-down-item-bg-hover);
    border-radius: var(--radius-md);
    border: calc(2 / 16 * 1rem) solid var(--color-drop-down-item-bg-border-hover); /* 0.125rem */
}

/* .nav-separator : Barre verticale avec espace de chaque côté */
.nav-separator {
    width: calc(2 / 16 * 1rem); /* 0.125rem */
    height: calc(25.6 / 16 * 1rem); /* 1.6rem */
    background-color: var(--color-nav-separator);
    border-radius: calc(1 / 16 * 1rem); /* 0.0625rem */
    /* Augmentation de l'espace latéral : 0 en haut/bas, 20px à gauche/droite */
    margin: 0 calc(20 / 16 * 1rem); /* 1.25rem */
    flex-shrink: 0;
    align-self: center;
}
.nav-toggler-icon {
    display: block;
    width: 100%;
    height: calc(2 / 16 * 1rem); /* 0.125rem */
    background-color: var(--color-nav-link);
    border-radius: calc(1 / 16 * 1rem); /* 0.0625rem */
}
.nav-text-label {
    display: none; /* Masqué par défaut (Desktop) */
}
/* Règle essentielle : Masque les icônes mobiles sur Desktop par défaut */
.icon-mobile {
    display: none;
}
/* RÈGLES DE VISIBILITÉ (à conserver, elles fonctionnent) */
.lang-switcher .lang-text-full {
    display: inline !important;
}
.lang-switcher .lang-abbr {
    display: none !important;
}

/* 💥 NOUVELLES RÈGLES : RECTANGLE NOIR AVEC PETIT RADIUS */
.lang-link {


    /* 1. Couleurs : Noir et Texte Blanc */
    background-color: var(--source-color-black); /* Fond noir */
    color: var(--source-color-white) !important; /* Texte blanc/clair */

    /* 2. Arrondi : Utilise le même petit radius que sur mobile */
    border-radius: var(--radius-sm, calc(4 / 16 * 1rem));

    /* 3. Assure le format rectangle (s'adapte au texte) */
    width: auto;
    height: auto;
    padding: calc(8 / 16 * 1rem) calc(12 / 16 * 1rem) !important; /* 0.5rem 0.75rem */
    /* Annule les propriétés Flexbox spécifiques au carré mobile si elles persistent */


    justify-content: initial;
    display: flex;         /* Changez block pour flex */
    align-items: center;   /* Centre le texte verticalement dans le rectangle noir */
    font-size: calc(18.4 / 16 * 1rem); /* 1.15rem */
    border: none;
    line-height: 1;        /* Force une hauteur de ligne normale */
}
.lang-link:hover {
    background-color: #444444;
}
/* --- BULLLES DE NAVIGATION (Isolation complète) --- */

[data-nav-tooltip] {
    position: relative;
}

[data-nav-tooltip]:hover::after {
    content: attr(data-nav-tooltip);
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(calc(40 / 16 * 1rem)); /* 2.5rem */
    background-color: rgba(0, 0, 0, 0.9);
    color: #fff;
    padding: calc(5 / 16 * 1rem) calc(12 / 16 * 1rem); /* 0.3125rem 0.75rem */
    border-radius: calc(4 / 16 * 1rem); /* 0.25rem */
    font-size: calc(17.6 / 16 * 1rem); /* 1.1rem */
    white-space: nowrap;
    z-index: 10000;
}
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* Conteneur pour l'alignement vertical */
.theme-switcher-container {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
    height: 100%; /* S'adapte à la hauteur de la nav */
}

/* Le bouton noir circulaire */
.theme-btn {
    background-color: #000000 !important;
    border: 2px solid #bdbdbd !important;
    border-radius: 50% !important;
    width: 35px !important;
    height: 35px !important;
    cursor: pointer;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 0 0 15px !important;
    outline: none;
}

/* L'icône à l'intérieur */
#theme-icon {
    font-size: 20px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none; /* Évite que l'icône bloque le clic du bouton */
}
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* --- ZONE DE RÉGLAGE TITRE --- */
:root {
    --title-rond-taille: calc(45 / 16 * 1rem);
    --title-img-padding: calc(8 / 16 * 1rem);

    /* Nouveaux réglages pour le texte borduré */
    --title-border-text-color: #ffffff;    /* Couleur du contour */
    --title-fill-text-color: #016f29;      /* Couleur de l'intérieur (blanc) */
    --title-border-thickness: 2px;       /* Grosseur de la bordure */
}

/* --- STYLE DU TITRE DE PAGE --- */
.page-title-wrapper {
    display: flex;
    margin-left: var(--space-xl);
    margin-top: 0;
    gap: calc(15 / 16 * 1rem);
    align-items: center;
    justify-content: flex-start;
    margin-bottom: 0 !important;
}
.page-title-icon-container {
    background-color: var(--color-title-icon-container-bg);
    width: var(--title-rond-taille);
    height: var(--title-rond-taille);
    margin-right: var(--space-sm);
    padding: var(--title-img-padding);
    border-radius: 50%;
    border: solid var(--color-border-main) calc(2 / 16 * 1rem);
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    flex-shrink: 0; /* Empêche le rond de s'écraser */
}

.page-title-icon {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* PAGE CONTENT ------------------------- */
.page-content-container {
    padding: 0;
    position: relative !important;
    z-index: auto !important;    /* On enlève la priorité au bloc entier */
    overflow: visible !important;
}
main.page-content-container {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    margin: 0;
    position: static; /* Au lieu de relative */
    z-index: auto;
}
.site-width-container {
    max-width: calc(1200 / 16 * 1rem); /* 75rem */
    width: 95%;
    margin-left: auto;
    margin-right: auto;
    padding: 0 var(--space-lg);
}
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
.description {
    /* Typographie */
    font-weight: var(--fw-bold);
    font-size: var(--font-size-description-lead);
    color: var(--color-page-description);
    font-style: normal; /* Plus lisible que l'italique pour les longs textes */
    line-height: 1.3; /* Augmente l'espace entre les lignes */
    text-align: center;

    /* Conteneur et Fond Subtil */
    background: rgba(255, 255, 255, 0.4); /* Fond blanc très transparent */
    border: calc(1 / 16 * 1rem) solid rgba(0, 0, 0, 0.05); /* 0.0625rem */
    border-radius: var(--radius-md);
    backdrop-filter: blur(calc(5 / 16 * 1rem)); /* 0.3125rem */

    /* Espacement et Dimensions */
    margin: var(--space-sm) auto var(--space-lg) auto;
    padding: var(--space-sm);
    max-width: calc(850 / 16 * 1rem); /* 53.125rem */
    width: 90%;
    word-break: keep-all;
    box-shadow: 0 calc(4 / 16 * 1rem) calc(15 / 16 * 1rem) rgba(0, 0, 0, 0.03); /* 0.25rem 0.9375rem */
}


/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* BUTTON ------------------------- */
.btn {
    display: inline-block;
    padding: var(--space-xs) var(--space-md);
    margin: var(--space-lg) auto;
    width: auto;
    background-color: var(--source-color-accent-one-dark);
    color: white;
    text-decoration: none;
    font-weight: var(--fw-bold);
    font-size: var(--font-size-md);
    border-radius: calc(50 / 16 * 1rem); /* 3.125rem */
    cursor: pointer;
    text-align: center;
    opacity: 1;
    box-shadow: var(--shadow-z2);

}
.btn:hover {
    background-color: var(--source-color-accent-one-very-light);
    color: black;
}



.btn-hors-pagination {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;

    /* Reprendre les propriétés clés de la pagination */
    padding: calc(8 / 16 * 1rem) var(--pagination-btn-padding-horizontal) !important; /* 0.5rem */

    /* Autres styles pour l'uniformité */
    border-radius: var(--radius-pill); /* Donne la forme pilule des pag-prev/next */
    font-size: var(--font-size-pagination-btn);
    line-height: var(--pagination-btn-line-height);
    flex-shrink: 0;
    flex-grow: 0;
}

.btn-container {
    text-align: center;
    margin: 0 !important;
}
/* --- DÉFINITION DU BOUTON CTA (.cta-vegetal) --- */

.cta-vegetal {
    /* Mise en page & Alignement */
    display: inline-flex;
    align-items: center;
    justify-content: center;

    /* Espacement & Dimension (Maintenant avec marge verticale uniquement) */
    padding: calc(12 / 16 * 1rem) calc(15 / 16 * 1rem); /* 0.75rem 0.9375rem */

    /* Couleurs & Fond */
    background-color: var(--color-green-cta-main);
    color: var(--source-color-white);

    /* Forme, Typographie, Ombre, Transition... */
    border-radius: calc(50 / 16 * 1rem); /* 3.125rem */
    border: none;
    font-weight: var(--fw-normal);
    text-decoration: none;
    font-size: var(--font-size-base);
    cursor: pointer;
    box-shadow: 0 calc(4 / 16 * 1rem) calc(6 / 16 * 1rem) rgba(0, 0, 0, 0.2); /* 0.25rem 0.375rem */
    height: calc(32 / 16 * 1rem); /* 2rem */
    white-space: nowrap;

    /* 2. Permet au bouton de prendre la largeur nécessaire pour contenir le texte */
    width: fit-content;
    overflow: visible !important;
}

/* --- INSERTION DE L'ICÔNE DE FEUILLE (.cta-vegetal::before) --- */

.cta-vegetal::before {
    content: "";

    /* LIEN VERS VOTRE IMAGE (méthode du fichier externe propre) */
    background-image: url("/asset/img/gl/leaf.svg");

    /* Dimensions et espacement de l'icône */
    display: inline-block;
    width: calc(20.8 / 16 * 1rem); /* 1.3rem */
    height: calc(20.8 / 16 * 1rem); /* 1.3rem */
    margin-right: calc(3 / 16 * 1rem); /* 0.1875rem */

    background-repeat: no-repeat;
    background-size: contain;
    vertical-align: middle;
}

/* --- INTERACTIVITÉ (Hover & Active) --- */

/* Effet de survol (Hover) */
.cta-vegetal:hover {
    box-shadow: var(--shadow-z2);
    filter: brightness(1.2);

}

/* Effet de clic (Active) */
.cta-vegetal:active {
    transform: translateY(0);
    box-shadow: 0 calc(2 / 16 * 1rem) calc(4 / 16 * 1rem) rgba(0, 0, 0, 0.2); /* 0.125rem 0.25rem */
}
.keep-in-line-icon-and-page-title {
    display: flex;
    align-items: center;
    gap: calc(40 / 16 * 1rem); /* 2.5rem */
}
/*--------------------------------------------*/
.content-wrapper.is-wide {
    width: auto !important;
    margin: calc(-50 / 16 * 1rem) calc(50 / 16 * 1rem) !important; /* -3.125rem 3.125rem */

}
section.is-wide,
div.is-wide {
    width: auto !important;
    margin-left: calc(-50 / 16 * 1rem) !important; /* -3.125rem */
    margin-right: calc(-50 / 16 * 1rem) !important; /* -3.125rem */
}


/* Style du bouton "Voir plus/moins" */
.expand-btn {
    display: block;
    width: 100%;
    margin-top: var(--space-sm);
    padding: calc(4 / 16 * 1rem) 0; /* 0.25rem */
    text-align: center;
    background-color: transparent;
    color: var(--color-book-expand-btn);
    border: none;
    cursor: pointer;
    font-size: var(--font-size-book-expand-btn);
    font-weight: var(--fw-bold);
    position: relative;
    z-index: 10;
    flex-shrink: 0;
}

.expand-btn:hover {
    transform: scale(var(--transform-scale-md));
}

.expand-btn::before {
    content: attr(data-see-more);
}

.expand-btn.is-expanded::before {
    content: attr(data-see-less);
}
/* ------------------------------------------- */
/* GESTION DE L'ICÔNE TRIANGLE (SANS ROTATION) */
/* ------------------------------------------- */

/* Gère l'icône TRIANGLE BAS (par défaut) */
.expand-btn::after {
    content: "\25BC"; /* Symbole Unicode ▼ (Triangle bas) */
    display: inline-block;
    margin-left: var(--space-sm);
    font-size: var(--font-size-book-expand-btn-after);
    transition: none;
}

/* Gère l'icône TRIANGLE HAUT (en mode étendu) */
.expand-btn.is-expanded::after {
    content: "\25B2"; /* Symbole Unicode ▲ (Triangle haut) */
}

/* Style de l'icône (triangle) - Gardée pour la complétude si la balise span existe */
.icon-arrow {
    display: none;
}
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/

/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* SHARE BUTTONS */

/* --- ZONE DE RÉGLAGE UNIQUE --- */
:root {
    --share-text-size: 1.2rem;    /* Change la grosseur du texte ici */
    --share-icon-size: 1.8rem; /* Change la grosseur des icônes ici */
}
/* ------------------------------ */

.share-container {
    display: flex;
    align-items: center;
    gap: calc(8 / 16 * 1rem);
    margin: calc(10 / 16 * 1rem) 0;
    padding: 0;
    justify-content: center;
    position: static;
    /* Empêche le conteneur de se déformer */
    flex-wrap: nowrap;
}

.share-container:hover {
    position: relative;
    z-index: 1500;
}

.share-text {
    font-size: var(--share-text-size);
    font-weight: var(--fw-bold);
    color: #000;
    margin-right: 0;
    word-spacing: calc(-1 / 16 * 1rem);
    /* FORCE LE TEXTE SUR UNE SEULE LIGNE */
    white-space: nowrap;
    flex-shrink: 0;
}

.share-icon {
    height: var(--share-icon-size);
    width: var(--share-icon-size);
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%; /* Plus simple pour un rond parfait */
    background-color: #F0F0F0;
    flex-shrink: 0;
}

.share-icon img {
    max-width: 100%;
    width: auto;
    height: auto;
    display: block;
}

.share-container a {
    position: relative;
    z-index: 99999;
}

/* --- GESTION DES BULLES (TOOLTIPS) --- */

[data-title]:hover::after {
    content: attr(data-title);
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    background-color: #333;
    color: white;
    padding: calc(5 / 16 * 1rem) calc(10 / 16 * 1rem);
    border-radius: calc(4 / 16 * 1rem);
    white-space: nowrap;
    z-index: 9999;
}

/* La bulle descend pour le header (share-top) */
.share-top [data-title]:hover::after {
    top: 120%;
    bottom: auto;
}

/* La bulle monte pour le footer (share-bottom) */
.share-bottom [data-title]:hover::after {
    top: auto;
    bottom: 140%;
}
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* ========================================================================= */
/* STYLES DE LA FENÊTRE MODALE DE CONFIRMATION (REMPLACE LE TOOLTIP) */
/* ========================================================================= */
.copy-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color-copy-modal-overlay);
    display: none;
    justify-content: center;
    align-items: center;
    z-index: 999999;
    opacity: 0;
}
.copy-modal-content {
    background-color: var(--color-copy-modal-content-bg);
    color: var(--color-copy-modal-content);
    padding: calc(20 / 16 * 1rem) calc(30 / 16 * 1rem); /* 1.25rem 1.875rem */
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-z4);
    text-align: center;
    max-width: 90%;
    transform: translateY(calc(-20 / 16 * 1rem)); /* -1.25rem */
    opacity: 0;
}
.copy-modal-overlay.active {
    display: flex;
    opacity: 1;
}
.copy-modal-overlay.active .copy-modal-content {
    opacity: 1;
    transform: translateY(0);
}
.copy-modal-content .check-icon {
    width: calc(40 / 16 * 1rem); /* 2.5rem */
    height: calc(40 / 16 * 1rem); /* 2.5rem */
    color: var(--color-copy-modal-success-icon);
    margin-bottom: calc(10 / 16 * 1rem); /* 0.625rem */
}
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* FOOTER */
.main-footer {
    background-color: black;
    color: var(--color-footer);
    /* On définit un padding identique haut/bas (ex: 25px) */
    padding: calc(5 / 16 * 1rem) 0 !important; /* 0.3125rem */
    width: 100%;
    margin: 0;
    display: block;
}

.footer-container {
    max-width: calc(1200 / 16 * 1rem); /* 75rem */
    margin: 0 auto;
    text-align: center;
}

.copyright-text,
.copyright-text-free {
    /* Supprime les marges qui poussent le texte vers le bas ou créent des trous */
    margin: 0 !important;
    padding: 0 !important;
    font-size: calc(17.6 / 16 * 1rem); /* 1.1rem */
    line-height: 1.2;
    display: block;
}

.copyright-text-free {
    color: #bcbcbc;
    font-style: italic;
}
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
.center-this {
    /* Étape 1: Centrer le conteneur DIV lui-même (s'il n'est pas 100% large) */
    max-width: calc(600 / 16 * 1rem); /* 37.5rem */
    width: 100%;
    margin: 0 auto; /* ⬅️ Marges verticales + Centrage du BLOC */
    display: flex;
    justify-content: center;
}
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
#btn-scroll-top {
    position: fixed !important;
    bottom: calc(21 / 16 * 1rem) !important;
    left: calc(22 / 16 * 1rem) !important;
    right: auto !important; /* Force l'annulation de la droite */
font-size: calc(45 / 16 * 1rem);
    z-index: 2147483647 !important;
    width: calc(64 / 16 * 1rem) !important;
    height: calc(64 / 16 * 1rem) !important;
    display: flex !important;
    line-height: 1 !important;
    border-radius: 50%;
    background-color: rgba(255, 165, 0, 0.85);
    color: #fff;
    cursor: pointer;
    align-items: center !important;
    justify-content: center !important;
    padding-bottom: calc(8 / 16 * 1rem);
}
/* Bulle spécifique pour le bouton Scroll to Top */
#btn-scroll-top[data-nav-tooltip]::after {
    display: none;
}

#btn-scroll-top[data-nav-tooltip]:hover::after {
    display: block;
    top: auto;
    bottom: 100%;
    margin-bottom: calc(15 / 16 * 1rem); /* 0.9375rem */
    transform: translateX(-50%);
}
/* Affiche la bulle au survol en utilisant le texte traduit */
#btn-scroll-top:hover::after {
    content: attr(data-scroll-title);
    position: absolute;
    bottom: 100%;
    right: 50%;
    transform: translateX(80%);
    margin-bottom: calc(15 / 16 * 1rem); /* 0.9375rem */
    background: rgba(0, 0, 0, 0.9);
    color: #fff;
    padding: calc(5 / 16 * 1rem) calc(12 / 16 * 1rem); /* 0.3125rem 0.75rem */
    border-radius: calc(4 / 16 * 1rem); /* 0.25rem */
    font-size: calc(17.6 / 16 * 1rem); /* 1.1rem */
    white-space: nowrap;
    z-index: 999999;
}

#btn-scroll-top span,
#btn-scroll-top::before {
    /* Si tu utilises un caractère direct dans le HTML, force sa taille */
    font-size: inherit !important;
    line-height: 0 !important; /* Force le triangle à ne pas avoir de hauteur de ligne */
    display: inline-block;
    /* Ajustement manuel si le triangle "monte" trop : */
    /* transform: translateY(2px); */
}

/* ================================================= */
/* === DARK MODE ====================== */
/* ================================================= */
/* Force le navigateur à ignorer son propre mode sombre automatique */
:root[data-theme="dark"] {
    color-scheme: dark;
}
/* Cible le fond et le texte pour TOUTE la page */
html[data-theme="dark"],
html[data-theme="dark"] body {
    background-color: black !important;
    color: #ffffff !important;
}
/* L'IMAGE DE FOND (Ton ::before) */
html[data-theme="dark"] body::before {
    content: ""; /* Obligatoire pour afficher l'image */
    background-image: url('/asset/img/page/video/ferme-dark-mode.jpg') !important;
    opacity: 0.15 !important;
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100%;
    z-index: -1;
    display: block !important;
}
html[data-theme="dark"] h1,
html[data-theme="dark"] .h1-style {
    color: var(--source-color-dark-mode-accent-two) !important;
    font-weight: normal;
}
html[data-theme="dark"] .description {
    color: white;
    font-weight: normal;
    background: black;
}
html[data-theme="dark"] .page-title-icon-container {
    background-color: #676767;
    border: solid #aaa8a8 calc(2 / 16 * 1rem);
}
html[data-theme="dark"] .share-text {
    font-weight: var(--fw-normal);
    color: #aaa8a8;
}
html[data-theme="dark"] .share-icon {
    background-color: #000000;
    border: solid .1rem #000000;
}

html[data-theme="dark"] .page-title-icon-container {
    background-color: #9e9e9e;
}