/* =====================================================================
   SOCLE 2027 — gabarits et page d'accueil aux standards actuels
   Chargé après master.css (thème historique) et refonte-2027.css.
   - Mobile d'abord, grilles CSS, typographie fluide (clamp), text-wrap
   - Images <picture> (WebP, srcset) au lieu d'images de fond, ratio fixe : aucun décalage de mise en page
   - Carrousel natif (scroll-snap), en-tête collant sans variation de hauteur
   - Transitions entre pages (View Transitions) désactivées si l'utilisateur réduit les animations
   - Mode sombre : uniquement des couples de couleurs contrastés (≥ 4,5:1)
   ===================================================================== */

:root {
    color-scheme: light;
    --drm-ombre-1: 0 1px 2px rgba(11, 35, 86, .06), 0 2px 8px rgba(11, 35, 86, .06);
    --drm-ombre-2: 0 6px 24px rgba(11, 35, 86, .12);
    --drm-rayon-l: 1rem;
    --drm-espace-section: clamp(3rem, 2rem + 4vw, 5.5rem);
    --drm-voile: linear-gradient(180deg, rgba(5, 16, 40, 0) 30%, rgba(5, 16, 40, .55) 62%, rgba(5, 16, 40, .9) 100%);
    --entete-marque: 0px;
}
[data-bs-theme="dark"] {
    color-scheme: dark;
    --drm-ombre-1: 0 1px 2px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .3);
    --drm-ombre-2: 0 6px 24px rgba(0, 0, 0, .45);
    --bs-body-bg: #0F1524;
    --bs-body-bg-rgb: 15, 21, 36;
}
.menu-1:hover {
    background : #CC9A05 !important;
}
/* ---- Base ---- */
html { scroll-padding-top: calc(var(--entete-hauteur, 4rem) + 1rem); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, .h1, .h2, .h3, .h4 { text-wrap: balance; }
p, li, dd { text-wrap: pretty; }
img, svg, video { max-width: 100%; }
img { height: auto; }
picture { display: contents; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid var(--drm-or); outline-offset: 2px; border-radius: .25rem;
}
::selection { background: var(--drm-or); color: #111; }
input, select, textarea { accent-color: var(--drm-bleu); }
[data-bs-theme="dark"] input, [data-bs-theme="dark"] select, [data-bs-theme="dark"] textarea { accent-color: #A9C0F0; }
.ratio > picture > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* Transitions douces entre les pages (navigateurs compatibles uniquement) */
@media (prefers-reduced-motion: no-preference) {
    @view-transition { navigation: auto; }
    ::view-transition-old(root), ::view-transition-new(root) { animation-duration: .2s; }
}

/* ---- Liens d'évitement ---- */
.liens-evitement { position: absolute; top: 0; left: 0; z-index: 2000; margin: 0; padding: 0; }
.liens-evitement .skip-link:focus { position: fixed; top: .5rem; left: .5rem; padding: .75rem 1rem; background: var(--drm-bleu); color: #fff; border-radius: .5rem; box-shadow: var(--drm-ombre-2); }

/* ---- Lien étendu : toute la carte est cliquable, une seule cible annoncée ---- */
.lien-etendu::after { content: ""; position: absolute; inset: 0; z-index: 3; }
.une-rubrique, .une-carte a:not(.lien-etendu), .une-diapo a:not(.lien-etendu) { position: relative; z-index: 4; }
.lien-fleche { font-weight: 600; text-decoration: none; color: var(--drm-accent); }
.lien-fleche:hover, .lien-fleche:focus-visible { text-decoration: underline; text-underline-offset: .2em; }

/* =====================================================================
   EN-TÊTE
   ===================================================================== */
.entete {
    position: sticky; z-index: 1030;
    top: 0;
    transition: box-shadow .2s ease;
}
@media (min-width: 992px) {
    /* Seule la barre de navigation reste visible au défilement : décalage négatif = hauteur de la rangée « marque » */
    .entete { top: calc(-1 * var(--entete-marque, 0px)); }
}
.entete.scrolled { box-shadow: 0 .25rem 1rem rgba(0, 0, 0, .15); }
.entete__marque { background: var(--bs-body-bg); }
.entete__marque-contenu {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    padding-block: .5rem;
}
@media (min-width: 768px) { .entete__marque-contenu { padding-block: .85rem; } }
.entete__logo { display: inline-flex; align-items: center; flex-shrink: 0; border-radius: .5rem; }
#mainHeader .entete__logo .logo {
    display: block; width: auto; height: clamp(44px, 4vw + 28px, 76px); max-width: 62vw;
    padding: 0; margin: 0; background: transparent; object-fit: contain;
}
.entete__actions { display: flex; align-items: center; gap: .75rem; margin-inline-start: auto; }
.entete__recherche { width: clamp(14rem, 22vw, 20rem); }
.entete__recherche .form-control { border-radius: 999px 0 0 999px; padding-inline-start: 1rem; min-height: var(--drm-cible); }
.entete__recherche-bouton {
    border-radius: 0 999px 999px 0 !important; min-width: var(--drm-cible);
    background: var(--drm-bleu); color: #fff; border: 1px solid var(--drm-bleu);
}
.entete__recherche-bouton:hover, .entete__recherche-bouton:focus-visible { background: var(--drm-bleu-profond); color: #fff; }
.entete-guichet { min-height: var(--drm-cible); }
.entete__menu {
    display: inline-flex; align-items: center; gap: .5rem; min-height: var(--drm-cible); min-width: var(--drm-cible);
    border-radius: 999px; background: var(--drm-bleu); color: #fff; padding-inline: 1rem; font-weight: 600;
}
.entete__menu:hover, .entete__menu:focus-visible { background: var(--drm-bleu-profond); color: #fff; }
@media (max-width: 380px) { .entete__menu-libelle { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } }

/* Barre de navigation */
.entete__navigation { padding-block: 0; border-bottom: 0; }
@media (max-width: 991.98px) {
    /* Mobile : la barre bleue disparaît, le menu reste disponible en panneau latéral */
    .entete__navigation { border-bottom: 0; min-height: 0; padding: 0; }
    .entete__navigation > .container { padding: 0; min-height: 0; }
    .entete__navigation .offcanvas { --bs-offcanvas-width: min(90vw, 24rem); }
    .entete__navigation .offcanvas-body .nav-link { min-height: var(--drm-cible); display: flex; align-items: center; }
    .entete__navigation .dropdown-menu { position: static !important; transform: none !important; border: 0; box-shadow: none; }
    .entete__navigation .menu-deroulant .row > .col { padding-block: .25rem; }
}
@media (min-width: 992px) {
    .entete__navigation .navbar-nav .nav-link { padding-block: .9rem; padding-inline: .75rem; font-weight: 600; letter-spacing: .02em; }
    /* Aucun indicateur visuel de lien actif dans la barre (aria-current reste annoncé aux lecteurs d'écran) */
    .entete__navigation .navbar-nav .nav-link.active,
    .entete__navigation .navbar-nav .nav-link.show,
    .entete__navigation .navbar-nav .nav-link[aria-current="page"],
    .entete__navigation .navbar-nav .nav-link[aria-expanded="true"] {
        box-shadow: none !important; border-bottom-color: transparent !important; background-color: transparent !important;
    }
    .entete__navigation .navbar-brand { min-height: var(--drm-cible); align-items: center; padding-inline: .5rem; }
    /* Grand écran : l'icône seule, libellé réservé aux lecteurs d'écran */
    #menu-principal .entete__accueil-libelle { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    #menu-principal .entete__accueil-item { margin-inline-end: .5rem; }
    /* Méga-menu : TOUJOURS accroché au bas de la barre de navigation, largeur du container du site, centré.
       La barre elle-même sert de repère (et non le conteneur interne ni l'élément de menu) ; règles prioritaires
       sur le thème historique et sur tout positionnement automatique (Popper désactivé : data-bs-display="static"). */
    .entete__navigation { position: relative !important; --menu-largeur: 960px; }
    .entete__navigation > .container,
    .entete__navigation .navbar-nav,
    .entete__navigation .dropdown.menu-1,
    .entete__navigation .navbar-nav .dropdown { position: static !important; }
    .entete__navigation .menu-deroulant,
    .entete__navigation .menu-deroulant[data-bs-popper] {
        position: absolute !important; top: 100% !important; bottom: auto !important;
        left: 0 !important; right: 0 !important; margin: 0 auto !important; transform: none !important; inset-block-start: 100% !important;
        width: min(var(--menu-largeur), 100%); max-width: 100%;
        max-height: calc(100vh - var(--entete-hauteur, 4rem) - 1rem); overflow-y: auto; overscroll-behavior: contain;
        border: 0; border-top: 3px solid var(--drm-or); border-radius: 0 0 1.25rem 1.25rem;
        background-color: var(--mm-fond) !important; padding: 0; box-shadow: 0 24px 48px -12px rgb(9 22 51 / 35%), 0 2px 6px rgb(9 22 51 / 8%);
    }
    .entete__navigation .menu-deroulant > .container { padding-inline: 0; max-width: none; }
}
/* Largeur du méga-menu = largeur du container Bootstrap à chaque palier */
@media (min-width: 1200px) { .entete__navigation { --menu-largeur: 1140px; } }
@media (min-width: 1400px) { .entete__navigation { --menu-largeur: 1320px; } }
@media (min-width: 992px) and (prefers-reduced-motion: no-preference) {
    .entete__navigation .menu-deroulant.show { animation: menu-apparition .22s cubic-bezier(.2, .8, .2, 1); }
    .entete__navigation .menu-deroulant.show .megamenu__section { animation: menu-apparition .3s cubic-bezier(.2, .8, .2, 1) both; }
    .entete__navigation .menu-deroulant.show .megamenu__section:nth-child(2) { animation-delay: .03s; }
    .entete__navigation .menu-deroulant.show .megamenu__section:nth-child(3) { animation-delay: .06s; }
    .entete__navigation .menu-deroulant.show .megamenu__section:nth-child(n+4) { animation-delay: .09s; }
}
@keyframes menu-apparition { from { opacity: 0; transform: translateY(-.5rem); } to { opacity: 1; transform: none; } }
.menu-deroulant .dropdown-item { white-space: normal; border-radius: .375rem; padding-block: .4rem; }
.entete__theme { min-width: var(--drm-cible); min-height: var(--drm-cible); border-radius: 999px; }
[data-bs-theme="dark"] .entete__marque { background: #0B1222; }
[data-bs-theme="dark"] .entete__recherche-bouton, [data-bs-theme="dark"] .entete__menu { background: #A9C0F0; border-color: #A9C0F0; color: #0B2356; }

/* =====================================================================
   PAGES INTÉRIEURES : contenu + colonne latérale
   ===================================================================== */
.mise-en-page { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
@media (min-width: 992px) {
    .mise-en-page { grid-template-columns: minmax(0, 3fr) minmax(16rem, 1fr); gap: 3rem; align-items: start; }
}
.mise-en-page__contenu { min-width: 0; }
.mise-en-page__colonne { min-width: 0; }

/* =====================================================================
   PIED DE PAGE
   ===================================================================== */
.pied {
    /* Paliers de noir de plus en plus profonds : accès directs → contenu → partenaires → copyright */
    --pied-1: #232323; --pied-2: #191919; --pied-3: #101010; --pied-4: #000000;
    --pied-texte: #fff; --pied-attenue: rgba(255, 255, 255, .78); --pied-trait: rgba(255, 255, 255, .14);
    padding: 0; margin-top: 0; color: var(--pied-texte); background: var(--pied-2);
}
[data-bs-theme="dark"] .pied { --pied-1: #1C1C1C; --pied-2: #141414; --pied-3: #0C0C0C; --pied-4: #000000; }

/* 1. Accès directs (top footer) */
.pied__acces { background: var(--pied-1); color: var(--pied-texte); padding-block: 2rem; border-top: 0; }
.pied__acces-liste { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1.25rem 2rem; }
.pied__acces-item { display: flex; align-items: flex-start; gap: 1rem; }
.pied__acces-icone { flex-shrink: 0; text-decoration: none; }
.pied .pied__acces .h5 a, .pied .pied__acces .h5 a:not(.btn) { color: var(--pied-texte); text-decoration: none; }
.pied .pied__acces .h5 a:hover, .pied .pied__acces .h5 a:focus-visible { text-decoration: underline; text-underline-offset: .2em; }
.pied__acces .small, .pied__acces p:not(.h5) { color: var(--pied-attenue) !important; }

/* 2. Contenu principal */
.pied__principal { background: var(--pied-2); padding-block: 3rem 2rem; }
.pied .footer.pied__principal { color: var(--pied-texte); }
.pied__grille { display: grid; gap: 2rem 2.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }
@media (min-width: 1200px) { .pied__grille { grid-template-columns: 1.1fr 1.3fr 1fr 1fr 1fr; } }
.pied__marque { display: flex; flex-direction: column; gap: 1rem; align-items: flex-start; }
.pied__marque .footer-logo { max-width: 11rem; height: auto; }
.pied__slogan { max-width: 14rem; }
.pied__titre {
    font-family: "Asap Condensed", sans-serif; font-size: 1.25rem; font-weight: 700; color: #fff;
    margin-bottom: 1rem; padding-bottom: .5rem; border-bottom: 2px solid var(--drm-or); display: inline-block;
}
.pied__ligne { display: grid; grid-template-columns: 1.25rem 1fr; gap: .5rem; align-items: start; font-style: normal; }
.pied__ligne > i, .pied__ligne > svg { margin-top: .3rem; color: var(--drm-or); }
.pied__telephone a { font-weight: 700; font-size: 1.15rem; }
.pied a:not(.btn) { color: var(--pied-texte); text-decoration: none; }
.pied a:not(.btn):hover, .pied a:not(.btn):focus-visible { text-decoration: underline; text-underline-offset: .2em; }
.pied__liens li + li { margin-top: .4rem; }
.pied__liens a { display: inline-block; padding-block: .1rem; }
.pied__reseaux { display: flex; flex-wrap: wrap; gap: .5rem; }
.pied__reseau {
    display: inline-flex; align-items: center; justify-content: center; width: var(--drm-cible); height: var(--drm-cible);
    border-radius: 50%; border: 1px solid rgba(255, 255, 255, .35); color: #fff;
}
.pied__reseau:hover, .pied__reseau:focus-visible { background: rgba(255, 255, 255, .1); border-color: var(--drm-or); color: var(--drm-or) !important; text-decoration: none !important; }
/* Boutons clairs de Bootstrap : restent sombres au survol (aucun fond clair dans le pied de page) */
.pied .btn-outline-light { --bs-btn-color: #fff; --bs-btn-border-color: rgba(255, 255, 255, .6); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: rgba(255, 255, 255, .12); --bs-btn-hover-border-color: #fff; --bs-btn-active-color: #fff; --bs-btn-active-bg: rgba(255, 255, 255, .18); --bs-btn-active-border-color: #fff; }

/* 3. Sites partenaires : fond noir, logos en noir et blanc, en couleur au survol de la souris ou au focus clavier */
.footer-partenaires { background: var(--pied-3); padding-block: 1.75rem; border: 0 !important; }
.footer-partenaires .img-thumbnail { padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.footer-partenaires a { display: inline-flex; align-items: center; min-height: var(--drm-cible); border-radius: .25rem; }
.footer-partenaires img {
    display: block; max-height: 48px; width: auto; background: none; padding: 0; border: 0; border-radius: 0;
    filter: grayscale(1); opacity: .7; transition: filter .25s ease, opacity .25s ease;
}
.footer-partenaires a:hover img, .footer-partenaires a:focus-visible img { filter: none; opacity: 1; }
.footer-partenaires a:focus-visible { outline: 3px solid var(--drm-or); outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .footer-partenaires img { transition: none; } }

/* Fonds verrouillés : le thème historique ne peut réintroduire aucun fond clair (footer, .footer-contact-section, .copyright…) */
footer.pied { background-color: var(--pied-2) !important; color: var(--pied-texte) !important; }
footer.pied .pied__acces { background-color: var(--pied-1) !important; }
footer.pied .footer.pied__principal { background-color: var(--pied-2) !important; }
footer.pied .footer-partenaires { background-color: var(--pied-3) !important; }
footer.pied .pied__bas, footer.pied .copyright { background-color: var(--pied-4) !important; }
footer.pied .copyright { color: var(--pied-attenue) !important; }

/* 4. Copyright et mentions : le palier le plus sombre */
.pied__bas { background: var(--pied-4); border: 0 !important; }
.pied__mentions {
    display: flex; flex-direction: column; align-items: center; gap: .9rem;
    padding-block: 1.75rem; border: 0 !important; text-align: center;
}
.pied__mentions nav { width: 100%; }
/* Liens légaux sur une ligne centrée, séparés par des points médians (retour à la ligne propre sur petit écran) */
.pied__mentions-liens { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; row-gap: .4rem; font-size: .9rem; }
.pied__mentions-liens li { display: inline-flex; align-items: center; }
.pied__mentions-liens li + li::before { content: "·"; color: var(--pied-attenue); margin-inline: .85rem; font-weight: 700; }
.pied .pied__mentions-liens a { color: #fff; padding-block: .25rem; }
.pied__copyright { font-size: .8125rem; color: var(--pied-attenue); letter-spacing: .01em; }
@media (max-width: 575.98px) {
    .pied__mentions-liens { flex-direction: column; row-gap: .25rem; }
    .pied__mentions-liens li + li::before { content: none; }
}
@media (max-width: 991.98px) { .pied { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); background: var(--pied-4); } }

/* Barre d'actions mobile : zone de sécurité des écrans à encoche */
.barre-mobile { padding-bottom: env(safe-area-inset-bottom, 0px); }

/* =====================================================================
   PAGE D'ACCUEIL
   ===================================================================== */
.accueil-section { margin-block: var(--drm-espace-section); }
.accueil-section--differee { content-visibility: auto; contain-intrinsic-size: auto 640px; }
.une-rubrique {
    display: inline-block; align-self: flex-start; margin-bottom: .6rem; padding: .3rem .7rem;
    background: var(--drm-bleu); color: #fff !important; text-decoration: none; text-transform: uppercase;
    font-size: .75rem; font-weight: 700; letter-spacing: .06em; border-radius: .25rem;
}
.une-rubrique:hover, .une-rubrique:focus-visible { background: var(--drm-or); color: #111 !important; }
.une-date { font-size: .875rem; opacity: .9; }

/* ---- À la une : grille carrousel + 3 actualités ---- */
.accueil-une { margin-bottom: 1rem; }
.accueil-une { --une-hauteur: clamp(30rem, 42vw, 40rem); }
.accueil-une__grille { display: grid; gap: 4px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 992px) {
    .accueil-une__grille { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); height: var(--une-hauteur); }
}
.accueil-une__principal { position: relative; min-width: 0; }
.accueil-une__tout { text-align: end; margin: .75rem 0 0; }

/* Diapositive (texte posé sur un voile dégradé, image réelle en dessous) */
.une-diapo {
    position: relative; isolation: isolate; overflow: hidden; color: #fff; background: var(--drm-bleu-profond);
    aspect-ratio: 4 / 3; display: flex; align-items: flex-end;
}
@media (min-width: 576px) { .une-diapo { aspect-ratio: 16 / 10; } }
/* Grand écran : hauteur fixée explicitement (pas de hauteur en pourcentage héritée en cascade) */
@media (min-width: 992px) {
    .accueil-une__principal, .une-carrousel, .une-carrousel__piste, .une-diapo--seule { height: var(--une-hauteur); }
    .une-diapo { aspect-ratio: auto; height: 100%; }
}
/* Empilement explicite et positif : image (0) < voile (1) < texte (2) < commandes (3).
   Aucun z-index négatif : une règle du thème historique sur le positionnement ne peut plus masquer l'image. */
.une-diapo > picture, .une-carte > picture, .tuile-evidence > picture { display: contents; }
.une-diapo__image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; z-index: 0; }
.une-diapo::before { content: ""; position: absolute; inset: 0; background: var(--drm-voile); z-index: 1; pointer-events: none; }
.une-diapo__texte { position: relative; z-index: 2; width: 100%; padding: clamp(1.25rem, 3vw, 2.75rem); padding-bottom: clamp(3.75rem, 5vw, 4.5rem); display: flex; flex-direction: column; }
.une-diapo__titre {
    font-family: "Asap Condensed", sans-serif; font-weight: 700; line-height: 1.08; margin: 0 0 .5rem;
    font-size: clamp(1.5rem, 1rem + 2.4vw, 2.9rem); max-width: 30ch; text-shadow: 0 1px 12px rgba(0, 0, 0, .35);
}
.une-diapo__titre a { color: #fff; text-decoration: none; }
.une-diapo__titre a:hover, .une-diapo__titre a:focus-visible { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; }
.une-diapo--seule { height: 100%; }
.une-diapo__lecture {
    position: absolute; top: 50%; left: 50%; translate: -50% -50%; width: 5rem; height: 5rem; border-radius: 50%;
    display: grid; place-items: center; background: rgba(19, 53, 123, .85); color: var(--drm-or); font-size: 2rem; border: 2px solid #fff;
}

/* Carrousel : piste défilante horizontale, une diapositive par écran */
.une-carrousel { position: relative; }
.une-carrousel__piste {
    position: relative; display: flex; height: 100%; overflow-x: auto; overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory; scrollbar-width: none;
}
.une-carrousel__piste::-webkit-scrollbar { display: none; }
.une-carrousel__piste > .une-diapo { flex: 0 0 100%; scroll-snap-align: start; scroll-snap-stop: always; }
@media (prefers-reduced-motion: no-preference) { .une-carrousel__piste { scroll-behavior: smooth; } }
/* Sans script : barre de défilement discrète pour signaler les autres diapositives */
.no-js .une-carrousel__piste { scrollbar-width: thin; }

.une-carrousel__commandes {
    position: absolute; z-index: 5; inset-inline: 0; bottom: 0; display: flex; align-items: center; gap: .5rem;
    padding: .75rem clamp(1rem, 3vw, 2.75rem);
}
.une-carrousel__commandes[hidden] { display: none; }
.une-carrousel__points { display: flex; align-items: center; gap: .15rem; margin-inline-end: auto; }
.une-carrousel__point {
    width: var(--drm-cible); height: var(--drm-cible); padding: 0; border: 0; background: transparent; position: relative; cursor: pointer;
}
.une-carrousel__point::before {
    content: ""; position: absolute; top: 50%; left: 50%; translate: -50% -50%; width: .7rem; height: .7rem; border-radius: 999px;
    background: rgba(255, 255, 255, .55); box-shadow: 0 0 0 1px rgba(0, 0, 0, .25); transition: width .25s ease, background-color .25s ease;
}
.une-carrousel__point[aria-current="true"]::before { width: 1.75rem; background: var(--drm-or); }
.une-carrousel__point:hover::before { background: #fff; }
.une-carrousel__bouton {
    display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-width: var(--drm-cible); height: var(--drm-cible);
    padding: 0 .9rem; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .6);
    background: rgba(11, 35, 86, .72); color: #fff; font-size: .875rem; font-weight: 600;
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.une-carrousel__bouton:hover, .une-carrousel__bouton:focus-visible { background: var(--drm-or); color: #111; border-color: var(--drm-or); }
.une-carrousel .carrousel-pause { position: static; box-shadow: none; order: -1; }
/* Petit écran : points plus étroits (cible de 28 × 44 px, au-delà du minimum WCAG 2.5.8 de 24 px) */
@media (max-width: 575.98px) {
    .une-carrousel__commandes { gap: .35rem; padding-inline: 1rem; }
    .une-carrousel__points { gap: 0; min-width: 0; }
    .une-carrousel__point { width: 28px; }
    .une-carrousel__point[aria-current="true"]::before { width: 1.25rem; }
}
@media (max-width: 575.98px) { .une-carrousel__libelle { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } }
/* Bouton pause : visible au survol, au clavier, ou quand il est enclenché (souris uniquement ; toujours visible au doigt) */
@media (hover: hover) and (pointer: fine) {
    .une-carrousel .carrousel-pause { opacity: 0; transition: opacity .2s ease; }
    .une-carrousel:hover .carrousel-pause, .une-carrousel:focus-within .carrousel-pause,
    .une-carrousel .carrousel-pause[aria-pressed="true"] { opacity: 1; }
}

/* ---- Trois actualités latérales ---- */
.accueil-une__laterales { display: grid; gap: 4px; grid-template-columns: minmax(0, 1fr); min-width: 0; }
@media (min-width: 576px) {
    .accueil-une__laterales { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .une-carte--grande { grid-column: 1 / -1; }
}
@media (min-width: 992px) { .accueil-une__laterales { grid-template-rows: 1.15fr 1fr; } }
.une-carte {
    position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: flex-end;
    min-height: 13rem; color: #fff; background: var(--drm-bleu-profond);
}
.une-carte--grande { min-height: 16rem; }
.une-carte__image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; z-index: 0; transition: scale .5s ease; }
.une-carte::before { content: ""; position: absolute; inset: 0; background: var(--drm-voile); z-index: 1; pointer-events: none; }
@media (prefers-reduced-motion: no-preference) {
    .une-carte:hover .une-carte__image, .une-carte:focus-within .une-carte__image { scale: 1.04; }
}
.une-carte__texte { position: relative; z-index: 2; padding: 1.25rem; display: flex; flex-direction: column; width: 100%; }
.une-carte__titre { font-family: "Asap Condensed", sans-serif; font-weight: 700; line-height: 1.12; font-size: 1.2rem; margin: 0 0 .35rem; }
.une-carte--grande .une-carte__titre { font-size: clamp(1.35rem, 1rem + 1vw, 1.85rem); }
.une-carte__titre a { color: #fff; text-decoration: none; }
.une-carte__titre a:hover, .une-carte__titre a:focus-visible { text-decoration: underline; text-underline-offset: .15em; }

/* ---- En ce moment / Web TV / Idée sortie ---- */
.accueil-duo { display: grid; gap: 3rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 992px) { .accueil-duo { grid-template-columns: minmax(0, 2.6fr) minmax(17rem, 1fr); gap: 3.5rem; } }
.accueil-duo__principal, .accueil-duo__colonne { min-width: 0; }

.ce-moment {
    position: relative; display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden;
    background: var(--drm-surface); border-radius: var(--drm-rayon-l); box-shadow: var(--drm-ombre-1);
}
@media (min-width: 768px) { .ce-moment { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); } }
.ce-moment__texte { padding: clamp(1.5rem, 3vw, 2.5rem); display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; }
.ce-moment .ce-moment__titre {
    font-family: "Asap Condensed", sans-serif; font-weight: 800 !important; line-height: 1.05 !important;
    font-size: clamp(1.75rem, 1.2rem + 2vw, 3rem) !important; color: var(--bs-emphasis-color); margin: 0;
}
.ce-moment__description { margin: 0; font-size: 1.0625rem; color: var(--bs-body-color); }
.ce-moment__visuel { position: relative; min-height: 14rem; order: -1; }
@media (min-width: 768px) { .ce-moment__visuel { order: 0; } }
.ce-moment__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ce-moment__action { margin-top: auto; }

.grille-cartes { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); margin-top: 1.5rem; }
.carte-moderne {
    position: relative; display: flex; flex-direction: column; height: 100%; overflow: hidden;
    background: var(--bs-body-bg); border: 1px solid var(--drm-trait); border-radius: var(--drm-rayon-l);
    transition: box-shadow .2s ease, translate .2s ease;
}
.carte-moderne:hover, .carte-moderne:focus-within { box-shadow: var(--drm-ombre-2); }
@media (prefers-reduced-motion: no-preference) { .carte-moderne:hover { translate: 0 -2px; } }
.carte-moderne__image { width: 100%; aspect-ratio: 5 / 2; object-fit: cover; }
.carte-moderne__corps { display: flex; flex-direction: column; gap: .75rem; padding: 1.1rem 1.25rem 1.25rem; flex: 1; }
.carte-moderne__titre { font-family: "Asap Condensed", sans-serif; font-weight: 700; font-size: 1.3rem; line-height: 1.15; margin: 0; color: var(--bs-emphasis-color); }
.carte-moderne .lien-fleche { margin-top: auto; }

.carte-video { overflow: hidden; border-radius: var(--drm-rayon-l); background: var(--drm-bleu); box-shadow: var(--drm-ombre-1); }
.carte-video__titre { font-family: "Asap Condensed", sans-serif; font-size: 1.25rem; font-weight: 700; line-height: 1.2; margin: 0; padding: 1rem 1.25rem 1.25rem; }
.carte-video__titre a { color: #fff; text-decoration: none; }
.carte-video__titre a:hover, .carte-video__titre a:focus-visible { text-decoration: underline; }
.carte-sortie { padding: 1.25rem; border-radius: var(--drm-rayon-l); border: 1px solid var(--drm-trait); border-inline-start: .35rem solid var(--drm-rouge); background: var(--bs-body-bg); }
.carte-sortie__date { font-weight: 700; font-size: .9rem; color: var(--bs-secondary-color); }
.carte-sortie__titre { font-family: "Asap Condensed", sans-serif; font-weight: 700; font-size: 1.5rem; line-height: 1.15; margin: .25rem 0 1rem; }

/* ---- Mises en évidence ---- */
.evidence-grille { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.tuile-evidence {
    position: relative; isolation: isolate; overflow: hidden; height: 100%; min-height: 20rem; display: flex; align-items: flex-end;
    border-radius: var(--drm-rayon-l); color: #fff; background: var(--drm-bleu-profond); box-shadow: var(--drm-ombre-1);
}
.tuile-evidence__image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; z-index: 0; transition: scale .5s ease; }
.tuile-evidence::before { content: ""; position: absolute; inset: 0; background: var(--drm-voile); z-index: 1; pointer-events: none; }
@media (prefers-reduced-motion: no-preference) {
    .tuile-evidence:hover .tuile-evidence__image, .tuile-evidence:focus-within .tuile-evidence__image { scale: 1.05; }
}
.tuile-evidence__texte { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; padding: 1.25rem; width: 100%; }
.mises-en-evidence .tuile-evidence__titre {
    font-family: "Asap Condensed", sans-serif; font-weight: 700 !important; font-size: 1.25rem !important; line-height: 1.2 !important;
    color: #fff !important; margin: 0; text-shadow: 0 1px 8px rgba(0, 0, 0, .4);
}
.tuile-evidence__action { border: 2px solid rgba(255, 255, 255, .85) !important; }

/* ---- Communiqués ---- */
.communiques { display: grid; gap: 2.5rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 992px) { .communiques { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4rem; } }
.communiques__une { display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; padding-inline-start: 1.25rem; border-inline-start: .35rem solid var(--drm-violet); }
.communiques__date { color: var(--bs-secondary-color); font-size: 1.05rem; margin: 0; text-transform: capitalize; }
.main-contents .communiques__titre { font-weight: 800 !important; color: var(--bs-emphasis-color); line-height: 1.1 !important; margin: 0; font-size: clamp(1.5rem, 1.1rem + 1.5vw, 2.25rem) !important; }
.communiques__liste { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.communique-court {
    position: relative; display: flex; gap: 1rem; align-items: flex-start; padding: 1rem; border-radius: var(--drm-rayon-l);
    border: 1px solid var(--drm-trait); background: var(--bs-body-bg); transition: box-shadow .2s ease;
}
.communique-court:hover, .communique-court:focus-within { box-shadow: var(--drm-ombre-2); }
.communique-court__date {
    flex: 0 0 4.25rem; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: .5rem .25rem;
    border-radius: .75rem; background: var(--drm-bleu); color: #fff; line-height: 1;
}
.communique-court__jour { font-family: "Asap Condensed", sans-serif; font-weight: 800; font-size: 1.85rem; }
.communique-court__mois { font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; margin-top: .25rem; text-align: center; }
.main-contents .communique-court__titre { font-size: 1rem !important; font-weight: 600 !important; line-height: 1.35 !important; margin: 0; }
.communique-court__titre a { color: var(--bs-emphasis-color); text-decoration: none; }
.communique-court__titre a:hover, .communique-court__titre a:focus-visible { text-decoration: underline; text-underline-offset: .15em; }

/* ---- Dernier avis de l'Assemblée ---- */
.dernier-avis { background: var(--drm-surface); padding-block: clamp(2.5rem, 2rem + 2vw, 4rem); margin-block: 0; }
.dernier-avis__card { display: flex; flex-direction: column; gap: 1.5rem; }
@media (min-width: 768px) { .dernier-avis__card { flex-direction: row; gap: 2.5rem; } }
.dernier-avis .avis-icon { flex: 0 0 auto; width: 4.5rem; height: 4.5rem; border-radius: 50%; display: grid; place-items: center; }
.dernier-avis__surtitre { text-transform: uppercase; font-weight: 600; letter-spacing: .04em; color: var(--bs-secondary-color); font-size: clamp(1rem, .9rem + .5vw, 1.35rem); margin-bottom: .75rem; }
.dernier-avis__titre { font-family: "Asap Condensed", sans-serif; font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem); font-weight: 700; line-height: 1.15; margin-bottom: 1rem; max-width: 60ch; }
.dernier-avis__meta { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; color: var(--bs-secondary-color); font-size: .9rem; margin-bottom: 1.5rem; }

/* ---- Mode sombre (accueil) ---- */
[data-bs-theme="dark"] .une-rubrique { background: #A9C0F0; color: #0B2356 !important; }
[data-bs-theme="dark"] .carte-video { background: #1C2A4F; }
[data-bs-theme="dark"] .communique-court__date { background: #A9C0F0; color: #0B2356; }
[data-bs-theme="dark"] .carte-moderne, [data-bs-theme="dark"] .communique-court, [data-bs-theme="dark"] .carte-sortie { background: var(--drm-surface); }

/* ---- Impression ---- */
@media print {
    .entete, .une-carrousel__commandes, .liens-evitement { display: none !important; }
    .accueil-section--differee { content-visibility: visible; }
    .une-carrousel__piste { display: block; overflow: visible; }
    .une-diapo, .une-carte, .tuile-evidence { color: #000; background: none; min-height: 0; aspect-ratio: auto; }
    .une-diapo::before, .une-carte::before, .tuile-evidence::before { display: none; }
    .une-diapo__image, .une-carte__image, .tuile-evidence__image { position: static; height: auto; max-height: 8cm; }
    .une-diapo__titre a, .une-carte__titre a { color: #000; }
}
@media (max-width: 575.98px) { .tuile-evidence { min-height: 15rem; } }
/* Titres de section de l'accueil en mode sombre : contraste suffisant (≥ 7:1) */
[data-bs-theme="dark"] .titre-accueil .titre-accueil__titre,
[data-bs-theme="dark"] h2#projets-ue-titre.titre-accueil__titre { color: #E6E9F0; }
[data-bs-theme="dark"] .titre-accueil__lien { color: var(--drm-accent); }
/* Icône Accueil : toujours visible, blanche, de taille fixe (règles prioritaires sur le thème historique) */
#menu-principal .entete__accueil-item { display: list-item !important; visibility: visible !important; opacity: 1 !important; list-style: none; }
#menu-principal .entete__accueil {
    display: inline-flex !important; align-items: center; gap: .6rem; visibility: visible !important; opacity: 1 !important;
    color: #fff !important; text-decoration: none !important; border: 0 !important; box-shadow: none !important; background: transparent !important;
}
#menu-principal .entete__accueil svg {
    display: block !important; flex: 0 0 auto; width: 1.375rem !important; height: 1.375rem !important;
    color: inherit !important; fill: currentColor !important; visibility: visible !important; opacity: 1 !important;
}

/* Menu : liens des items parents blancs dans tous les états (repos, survol, focus, ouvert, page active),
   sans soulignement ni indicateur de lien actif. Le contour de focus clavier est conservé (RGAA 10.7). */
.entete__navigation .navbar-nav > .nav-item > .nav-link,
.entete__navigation .navbar-nav > .nav-item > .nav-link:hover,
.entete__navigation .navbar-nav > .nav-item > .nav-link:focus,
.entete__navigation .navbar-nav > .nav-item > .nav-link:focus-visible,
.entete__navigation .navbar-nav > .nav-item > .nav-link:active,
.entete__navigation .navbar-nav > .nav-item > .nav-link.active,
.entete__navigation .navbar-nav > .nav-item > .nav-link.show,
.entete__navigation .navbar-nav > .nav-item > .nav-link[aria-current="page"],
.entete__navigation .navbar-nav > .nav-item > .nav-link[aria-expanded="true"] {
    color: #fff !important; text-decoration: none !important; border-bottom: 0 !important; box-shadow: none !important; opacity: 1;
}
.entete__navigation .navbar-nav > .nav-item > .nav-link::after { border-top-color: #fff; }
.entete__navigation .offcanvas-header { gap: 1rem; }
.entete__navigation .offcanvas-header .logo { max-width: 70%; height: auto; max-height: 4rem; }
.entete__navigation .offcanvas-header .btn-close { flex-shrink: 0; margin: 0; }
.entete__navigation .offcanvas .form-control { background-color: #fff; color: #111418; border-color: #fff; }
.entete__navigation .offcanvas .form-control::placeholder { color: #5c6470; }

/* Pagination : liens centrés, compteur « Affichage de … à … sur … résultats » centré dessous */
.pagination-drm { margin-block: 1.5rem .5rem; }
.pagination-drm .pagination { float: none !important; margin-inline: auto; }
.pagination-drm__compteur { float: none !important; display: block; width: 100%; text-align: center !important; }

/* ═══ Accueil : blocs orientés usagers ═══ */
.usagers__surtitre { font-size: .8rem; letter-spacing: .08em; color: var(--drm-or); }
.usagers__titre { font-family: "Asap Condensed", sans-serif; font-weight: 700; font-size: clamp(1.9rem, 1.4rem + 1.4vw, 2.6rem); line-height: 1.1; }
.usagers__lien { color: var(--drm-accent); text-decoration: none; }
.usagers__lien:hover, .usagers__lien:focus-visible { text-decoration: underline; }

/* Vos démarches */
.usagers-demarches { background: var(--drm-surface); }
.usagers-demarches__accroche { display: flex; flex-direction: column; padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); border-radius: var(--drm-rayon-l); background: var(--drm-bleu); color: #fff; box-shadow: var(--drm-ombre-2); }
.usagers-demarches__accroche .usagers__titre { color: #fff; }
.usagers-demarches__accroche .form-label, .usagers-demarches__accroche p { color: rgba(255, 255, 255, .92); }
.usagers-recherche .form-control { border: 0; }
.usagers-profils { display: flex; flex-wrap: wrap; gap: .5rem; }
.usagers-profil { display: inline-block; padding: .4rem .9rem; border: 1px solid rgba(255, 255, 255, .45); border-radius: 50rem; color: #fff !important; text-decoration: none !important; font-size: .9rem; font-weight: 600; transition: background-color .15s, color .15s, border-color .15s; }
.usagers-profil:hover, .usagers-profil:focus-visible { background: var(--drm-or); border-color: var(--drm-or); color: #111 !important; }

.usagers-demarche { display: flex; align-items: center; gap: .9rem; padding: 1rem 1.1rem; border: 1px solid var(--drm-trait); border-radius: var(--drm-rayon); background: var(--bs-body-bg); color: var(--bs-body-color) !important; text-decoration: none !important; box-shadow: var(--drm-ombre-1); transition: transform .15s, box-shadow .15s, border-color .15s; }
.usagers-demarche:hover, .usagers-demarche:focus-visible { transform: translateY(-2px); box-shadow: var(--drm-ombre-2); border-color: var(--drm-accent); }
.usagers-demarche__icone { flex: 0 0 2.75rem; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--drm-surface); color: var(--drm-accent); font-size: 1.15rem; }
.usagers-demarche__texte { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.usagers-demarche__titre { font-weight: 700; line-height: 1.25; color: var(--drm-accent); }
.usagers-demarche__theme { font-size: .82rem; color: var(--bs-secondary-color); }
.usagers-demarche__badge { align-self: flex-start; }

.usagers-services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
@media (min-width: 768px) { .usagers-services { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.usagers-service { display: flex; align-items: center; gap: .6rem; height: 100%; padding: .7rem .85rem; border-radius: var(--drm-rayon); background: var(--bs-body-bg); border: 1px solid var(--drm-trait); color: var(--bs-body-color) !important; text-decoration: none !important; font-weight: 600; font-size: .92rem; line-height: 1.2; }
.usagers-service i { color: var(--drm-or); font-size: 1.1rem; width: 1.25rem; text-align: center; }
.usagers-service:hover, .usagers-service:focus-visible { border-color: var(--drm-accent); color: var(--drm-accent) !important; }

.usagers-themes { border-top: 1px solid var(--drm-trait); }
.usagers-themes ul { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.5rem; }
.usagers-themes a { display: inline-flex; align-items: center; gap: .5rem; color: var(--drm-accent) !important; font-weight: 600; text-decoration: none !important; }
.usagers-themes a i { color: var(--drm-or); }
.usagers-themes a:hover, .usagers-themes a:focus-visible { text-decoration: underline !important; }

/* Opportunités */
.usagers-opp { display: flex; flex-direction: column; padding: 1.5rem; border: 1px solid var(--drm-trait); border-top: .3rem solid var(--drm-or); border-radius: var(--drm-rayon); background: var(--bs-body-bg); box-shadow: var(--drm-ombre-1); }
.usagers-opp__entete { display: flex; align-items: center; gap: .9rem; margin-bottom: 1rem; }
.usagers-opp__icone { flex: 0 0 3rem; display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--drm-bleu); color: #fff; font-size: 1.2rem; }
.usagers-opp__compteur { font-size: .88rem; color: var(--bs-secondary-color); }
.usagers-opp__liste { margin: 0 0 1.25rem; }
.usagers-opp__liste li { padding-block: .65rem; border-top: 1px solid var(--drm-trait); }
.usagers-opp__liste li:first-child { border-top: 0; padding-top: 0; }
.usagers-opp__liste a { display: block; font-weight: 600; line-height: 1.3; color: var(--drm-accent); text-decoration: none; }
.usagers-opp__liste a:hover, .usagers-opp__liste a:focus-visible { text-decoration: underline; }
.usagers-opp__meta { display: block; margin-top: .25rem; font-size: .82rem; color: var(--bs-secondary-color); }

/* Agenda */
.usagers-agenda { display: grid; gap: .75rem; }
.usagers-rdv { display: flex; gap: 1rem; align-items: flex-start; padding: 1rem; border: 1px solid var(--drm-trait); border-radius: var(--drm-rayon); background: var(--bs-body-bg); }
.usagers-rdv--seance { border-inline-start: .3rem solid var(--drm-or); background: var(--drm-surface); }
.usagers-rdv__date { flex: 0 0 4rem; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 4rem; border-radius: var(--drm-rayon); background: var(--drm-bleu); color: #fff; line-height: 1; }
.usagers-rdv__jour { font-family: "Asap Condensed", sans-serif; font-size: 1.6rem; font-weight: 700; }
.usagers-rdv__mois { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; margin-top: .2rem; }
.usagers-rdv__type { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--drm-or); }
.usagers-rdv h3 a { color: var(--drm-accent); text-decoration: none; }
.usagers-rdv h3 a:hover, .usagers-rdv h3 a:focus-visible { text-decoration: underline; }
.usagers-rdv__meta { font-size: .85rem; color: var(--bs-secondary-color); }

/* Besoin d'aide ? */
.usagers-aide { display: flex; flex-direction: column; padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); border-radius: var(--drm-rayon-l); background: #101A33; color: rgba(255, 255, 255, .9); box-shadow: var(--drm-ombre-2); }
.usagers-aide .usagers__titre { color: #fff; }
.usagers-aide a:not(.btn) { color: #fff !important; text-decoration: underline; text-underline-offset: .2em; }
.usagers-aide__liste { display: grid; gap: 1rem; margin-bottom: 1.5rem; }
.usagers-aide__liste li { display: flex; gap: .9rem; }
.usagers-aide__liste li > i { flex: 0 0 1.25rem; margin-top: .2rem; color: var(--drm-or); font-size: 1.1rem; text-align: center; }
.usagers-aide__libelle { display: block; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: rgba(255, 255, 255, .65); }
.usagers-aide__tel { font-family: "Asap Condensed", sans-serif; font-size: 1.5rem; font-weight: 700; text-decoration: none !important; }
.usagers-aide__etat { display: inline-flex; align-items: center; gap: .5rem; align-self: flex-start; padding: .3rem .8rem; border-radius: 50rem; background: rgba(255, 255, 255, .08); font-weight: 600; font-size: .9rem; }
.usagers-aide__etat[hidden] { display: none; }
.usagers-aide__pastille { width: .6rem; height: .6rem; border-radius: 50%; background: #9AA3B5; }
.usagers-aide__etat.est-ouvert .usagers-aide__pastille { background: #3DDC84; box-shadow: 0 0 0 .2rem rgba(61, 220, 132, .25); }
.usagers-aide__etat.est-ferme .usagers-aide__pastille { background: #FF6B6B; }

[data-bs-theme="dark"] .usagers-demarches__accroche { background: #16264D; }
[data-bs-theme="dark"] .usagers-aide { background: #0A1020; border: 1px solid var(--drm-trait); }
@media (prefers-reduced-motion: reduce) { .usagers-demarche, .usagers-profil { transition: none; } .usagers-demarche:hover { transform: none; } }

/* ═══ Accueil : rythme vertical unique entre les sections ═══
   Sections blanches : marge (les marges de deux sections voisines fusionnent → un seul espace).
   Bandes de couleur (.accueil-bloc--bande) : même espace en marge intérieure, sans marge extérieure. */
:root { --accueil-espace: clamp(1.75rem, 1.25rem + 1.6vw, 2.75rem); }
#mainContents > .accueil-bloc, main .accueil-bloc { margin-block: var(--accueil-espace) !important; padding-block: 0 !important; }
main .accueil-bloc.accueil-bloc--bande { margin-block: 0 !important; padding-block: var(--accueil-espace) !important; background: var(--drm-surface); }
main .accueil-bloc.accueil-bloc--une { margin-top: 0 !important; margin-bottom: var(--accueil-espace) !important; }
main .accueil-bloc--bande + .accueil-bloc--bande { border-top: 1px solid var(--drm-trait); }
main .projets-ue { padding-block: var(--accueil-espace) !important; margin: 0 !important; }
/* Titres de section : même espacement partout, taille ramenée pour une lecture plus fluide */
main .accueil-bloc .titre-accueil { margin-top: 0 !important; margin-bottom: 1.25rem !important; }
main .accueil-bloc .titre-accueil .titre-accueil__titre { font-size: clamp(1.9rem, 1.4rem + 1.5vw, 2.6rem) !important; }
main .accueil-bloc .titre-accueil--compact .titre-accueil__titre { font-size: clamp(1.6rem, 1.3rem + .8vw, 2rem) !important; }
main .accueil-bloc .titre-accueil--compact.mt-4 { margin-top: 1.75rem !important; }
.usagers-themes { margin-top: 1.5rem !important; padding-top: 1.25rem !important; }
/* « En ce moment » sur bande : cartes posées sur fond clair */
.accueil-decouvrir .card { background-color: var(--bs-body-bg); }
.accueil-decouvrir .card.border-0 { border-radius: var(--drm-rayon); overflow: hidden; }
.accueil-decouvrir ul.row { margin-bottom: 0; }
/* Communiqués : la dernière ligne ne crée pas d'espace supplémentaire avant la bande suivante */
.accueil-bloc.main-contents > .row:last-child { margin-bottom: 0 !important; }
.page-accueil main.site-main { padding-bottom: 0 !important; display: flow-root; }
/* Dernier avis : contenu posé directement sur la bande (plus de carte blanche pleine largeur) */
main .dernier-avis.accueil-bloc--bande .dernier-avis__card { background: transparent !important; box-shadow: none !important; border-radius: 0; }
main .dernier-avis.accueil-bloc--bande .dernier-avis__card > .card-body { padding: 0 !important; }
/* Dernier avis de l'Assemblée, en carte compacte dans le bloc « Prochains rendez-vous » */
main .dernier-avis.dernier-avis--compact { padding: 1rem !important; margin-block: .75rem 0 !important; border: 1px solid var(--drm-trait); border-inline-start: .3rem solid var(--drm-bleu); border-radius: var(--drm-rayon); background: var(--drm-surface); }
.dernier-avis--compact .avis-icon { width: 4rem !important; height: 4rem !important; flex: 0 0 4rem !important; }
.dernier-avis--compact .dernier-avis__surtitre { font-size: .75rem !important; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--drm-or) !important; margin-bottom: .35rem !important; }
.dernier-avis--compact h3 { color: var(--bs-emphasis-color); line-height: 1.3; }
.dernier-avis--compact .min-w-0 { min-width: 0; }
[data-bs-theme="dark"] .dernier-avis--compact { border-inline-start-color: #A9C0F0; }

/* Titre « L'Europe s'engage à Mayotte » : même taille que les autres titres de section de l'accueil */
main .projets-ue h2#projets-ue-titre { font-size: clamp(1.9rem, 1.4rem + 1.5vw, 2.6rem) !important; }
main .projets-ue > .container > .row.align-items-end.mb-4 { margin-bottom: 1.25rem !important; }

/* « Nous sommes à votre écoute » sur une seule ligne : taille calculée sur la largeur du bloc (requête de conteneur) */
.usagers-aide { container-type: inline-size; }
.usagers-aide .usagers__titre { white-space: nowrap; font-size: clamp(1.15rem, 6.6cqi, 2.4rem) !important; }

/* Dernier avis : grand espace de séparation avec « Prochains rendez-vous » et titre de section propre */
.accueil-avis-separation { margin-top: calc(var(--accueil-espace) * 1.6); padding-top: calc(var(--accueil-espace) * 1.1); border-top: 1px solid var(--drm-trait); }
main .dernier-avis.dernier-avis--compact { margin-top: 0 !important; }

/* Nos autres sites : carte « Vos démarches » (bleu Département) sous les projets européens secondaires */
.autres-sites { height: auto !important; flex: 0 0 auto; }
.autres-sites .autres-sites__titre { font-size: clamp(1.6rem, 1.3rem + .8vw, 2rem) !important; color: #fff !important; }
.autres-sites .usagers-profil :is(i, svg) { opacity: .8; }

/* Accueil : aucune bordure (liseré) sur les cartes — délimitation par l'ombre et le fond uniquement
   (appels à projets / opportunités, dernier avis, rendez-vous, démarches, services en ligne) */
.page-accueil .usagers-opp,
.page-accueil .dernier-avis.dernier-avis--compact,
.page-accueil .usagers-rdv,
.page-accueil .usagers-rdv--seance,
.page-accueil .usagers-demarche,
.page-accueil .usagers-service,
.page-accueil .projets-ue__carte,
.page-accueil .projets-ue__vedette { border: 0 !important; }
.page-accueil .usagers-opp,
.page-accueil .usagers-rdv,
.page-accueil .usagers-service { box-shadow: var(--drm-ombre-1); }
.page-accueil .usagers-demarche:hover, .page-accueil .usagers-demarche:focus-visible,
.page-accueil .usagers-service:hover, .page-accueil .usagers-service:focus-visible { box-shadow: var(--drm-ombre-2); }
[data-bs-theme="dark"] .page-accueil :is(.usagers-opp, .usagers-rdv, .usagers-service, .usagers-demarche) { background: var(--drm-surface); }

/* Compteur de téléchargements (<x-compteur-telechargements>) */
.compteur-telechargements { font-variant-numeric: tabular-nums; }
.compteur-telechargements { white-space: nowrap; opacity: .9; }
.compteur-telechargements :is(i, svg) { font-size: .85em; }

/* Méga-menu : entrée désactivée (page sans contenu pour le moment) */
.menu-deroulant .dropdown-item.menu-indisponible {
    color: inherit !important;
    opacity: .5;
    cursor: not-allowed;
    pointer-events: auto;
    background: transparent !important;
    text-decoration: none !important;
}

/* ═══ Méga-menu (version 2027-b) ═══
   Grand écran : panneau clair sous la barre, liseré or, 3 zones — présentation de la rubrique (titre, introduction,
   « Les plus consultés »), colonnes de liens (description, flèche au survol), carte « À la une » en image — et voile
   assombrissant la page. Mobile : accordéon dans le panneau latéral. Thème sombre pris en charge. */
:root {
    --mm-fond: #fff;
    --mm-texte: #13213f;
    --mm-attenue: #5b6579;
    --mm-trait: #e6eaf2;
    --mm-survol: #eef3fc;
    --mm-accent: var(--drm-bleu, #13357B);
    --mm-presentation: linear-gradient(160deg, #f4f7fd 0%, #eaf0fb 100%);
}
/* Thème sombre du site (sur <html> ; la barre de navigation porte aussi data-bs-theme="dark", sans effet ici) */
html[data-bs-theme="dark"] {
    --mm-fond: #101a2f;
    --mm-texte: #e8edf7;
    --mm-attenue: #9ba7bf;
    --mm-trait: rgb(255 255 255 / 9%);
    --mm-survol: rgb(255 255 255 / 6%);
    --mm-accent: #a9c0f0;
    --mm-presentation: linear-gradient(160deg, #15213b 0%, #111b31 100%);
}
/* Panneau du méga-menu : même bleu que la barre de navigation (couleur relevée sur la barre par main.js,
   --megamenu-fond ; à défaut, couleur « primary » du thème), survol et repères en or (couleur du liseré) */
.entete__navigation .menu-deroulant {
    --mm-fond: var(--megamenu-fond, rgb(var(--bs-primary-rgb, 19, 53, 123)));
    --mm-texte: #fff;
    --mm-attenue: rgb(255 255 255 / 75%);
    --mm-trait: rgb(255 255 255 / 18%);
    --mm-survol: rgb(204 154 5 / 18%);
    --mm-accent: var(--drm-or, #CC9A05);
    --mm-presentation: linear-gradient(160deg, rgb(255 255 255 / 9%) 0%, rgb(255 255 255 / 3%) 100%);
}
.megamenu { color: var(--mm-texte); text-transform: none; }
.megamenu .dropdown-item { color: var(--mm-texte); white-space: normal; }
.megamenu .dropdown-item:hover,
.megamenu .dropdown-item:focus-visible { background: var(--mm-survol); color: var(--mm-accent); }
.megamenu .dropdown-item:focus-visible { outline: 2px solid var(--mm-accent); outline-offset: 1px; }
.megamenu .dropdown-item:active { background: var(--mm-survol); color: var(--mm-accent); }

/* Zones */
.megamenu__grille { display: grid; }
.megamenu__presentation { display: flex; flex-direction: column; gap: .9rem; }
.megamenu__titre { margin: 0; font-family: "Asap Condensed", sans-serif; font-weight: 700; font-size: 1.75rem; line-height: 1.1; color: var(--mm-texte); }
.megamenu__titre::after { content: ""; display: block; width: 2.5rem; height: 3px; margin-top: .6rem; border-radius: 3px; background: var(--drm-or); }
.megamenu__intro { margin: 0; font-size: .92rem; line-height: 1.5; color: var(--mm-attenue); }
.megamenu__populaires-titre { margin: 0 0 .5rem; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--mm-attenue); }
.megamenu__populaires-liste { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; }
.megamenu__populaires-liste .dropdown-item {
    width: auto; padding: .3rem .8rem; border: 1px solid var(--mm-trait); border-radius: 999px; background: rgb(255 255 255 / 6%);
    font-size: .82rem; font-weight: 600; line-height: 1.3;
}
.megamenu__populaires-liste .dropdown-item:hover { border-color: var(--mm-accent); }

/* Colonnes de liens */
.megamenu__colonnes { display: grid; grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr)); gap: 1.5rem 1.75rem; align-content: start; }
.megamenu__section { min-width: 0; }
.megamenu__section-titre {
    margin: 0 0 .5rem; padding: 0 .6rem;
    font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--mm-attenue);
}
.megamenu__section-titre::before { content: ""; display: inline-block; width: .5rem; height: .5rem; margin-inline-end: .5rem; border-radius: 2px; background: var(--drm-or); vertical-align: .05em; }
.megamenu__liens { display: grid; gap: .1rem; margin: 0; }
.megamenu__liens .dropdown-item {
    display: flex; align-items: center; gap: .75rem; padding: .5rem .6rem; border-radius: .6rem;
    transition: background-color .15s, color .15s;
}
.megamenu__lien-texte { flex: 1; min-width: 0; }
.megamenu__lien-libelle { display: block; font-weight: 600; font-size: .95rem; line-height: 1.3; }
.megamenu__lien-description { display: block; margin-top: .15rem; font-size: .8rem; font-weight: 400; line-height: 1.35; color: var(--mm-attenue); }
.megamenu__fleche { flex: none; font-size: .8rem; color: var(--mm-accent); opacity: 0; transform: translateX(-.35rem); transition: opacity .15s, transform .15s; }
.megamenu__liens .dropdown-item:hover .megamenu__fleche,
.megamenu__liens .dropdown-item:focus-visible .megamenu__fleche { opacity: 1; transform: none; }

/* Carte « À la une » : image pleine, texte sur dégradé */
.megamenu__vedette { min-width: 0; }
.megamenu__vedette-carte {
    position: relative; display: flex !important; flex-direction: column; justify-content: flex-end; height: 100%; min-height: 16rem;
    padding: 0 !important; overflow: hidden; border-radius: 1rem !important; isolation: isolate;
    background: linear-gradient(150deg, var(--drm-bleu, #13357B), #0b1f4d) !important; color: #fff !important;
}
.megamenu__vedette-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.megamenu__vedette-carte::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(9 22 51 / 5%) 20%, rgb(9 22 51 / 88%) 100%); }
.megamenu__vedette-carte:hover .megamenu__vedette-image,
.megamenu__vedette-carte:focus-visible .megamenu__vedette-image { transform: scale(1.04); }
.megamenu__vedette-contenu { display: flex; flex-direction: column; gap: .35rem; padding: 1.25rem; }
.megamenu__vedette-surtitre { align-self: flex-start; padding: .15rem .55rem; border-radius: 999px; background: var(--drm-or); color: #111; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.megamenu__vedette-titre { font-family: "Asap Condensed", sans-serif; font-weight: 700; font-size: 1.3rem; line-height: 1.15; color: #fff; }
.megamenu__vedette-texte { font-size: .85rem; line-height: 1.4; color: rgb(255 255 255 / 85%); }
.megamenu__vedette-action { display: inline-flex; align-items: center; margin-top: .35rem; font-weight: 700; font-size: .9rem; color: #fff; }
.megamenu__vedette-carte:hover .megamenu__vedette-action :is(i, svg) { transform: translateX(.25rem); }
.megamenu__vedette-action :is(i, svg) { transition: transform .15s; }
.megamenu .menu-indisponible { opacity: .5; cursor: not-allowed; }

@media (min-width: 992px) {
    .megamenu__grille { grid-template-columns: 15.5rem minmax(0, 1fr); min-height: 18rem; }
    .megamenu__grille--vedette { grid-template-columns: 15.5rem minmax(0, 1fr) 17rem; }
    .megamenu__presentation { padding: 1.75rem 1.5rem; background: var(--mm-presentation); border-bottom-left-radius: 1.25rem; }
    .megamenu__colonnes { padding: 1.75rem 1.5rem 1.75rem 1.75rem; }
    .megamenu__vedette { padding: 1.25rem 1.25rem 1.25rem 0; }
    /* Bouton de la rubrique : chevron qui pivote à l'ouverture */
    .entete__navigation [data-megamenu] > .dropdown-toggle::after { transition: transform .2s; }
    .entete__navigation [data-megamenu] > .dropdown-toggle[aria-expanded="true"]::after { transform: rotate(180deg); }
    /* Voile sur la page sous le menu ouvert (sans bloquer le pointeur : un clic à côté ferme le menu) */
    html.megamenu-ouvert body::after {
        content: ""; position: fixed; inset: var(--megamenu-haut, 0) 0 0 0; z-index: 990; pointer-events: none;
        background: rgb(9 22 51 / 32%); backdrop-filter: blur(2px); animation: voile-apparition .2s ease-out;
    }
}
@keyframes voile-apparition { from { opacity: 0; } to { opacity: 1; } }
@media (min-width: 1200px) {
    .megamenu__grille { grid-template-columns: 17rem minmax(0, 1fr); }
    .megamenu__grille--vedette { grid-template-columns: 17rem minmax(0, 1fr) 19rem; }
}

/* Mobile (panneau latéral) : accordéon, une section ouverte à la fois, bouton « Retour au menu » */
@media (max-width: 991.98px) {
    .entete__navigation .menu-deroulant { padding: .25rem 0 .75rem; background: transparent !important; }
    /* Le panneau forme une carte claire dans le menu latéral (lisible quel que soit le fond du menu) */
    .megamenu { padding: .6rem; border-radius: 1rem; background: rgb(255 255 255 / 7%); color: var(--mm-texte); border: 1px solid var(--mm-trait); }
    .megamenu__retour {
        display: inline-flex; align-items: center; width: 100%; min-height: var(--drm-cible, 2.75rem); margin-bottom: .5rem; padding: .5rem .75rem;
        border: 0; border-radius: .75rem; background: rgb(255 255 255 / 10%); color: #fff; font-weight: 700; text-transform: none;
    }
    .megamenu__grille { gap: .75rem; }
    .megamenu__presentation { gap: .75rem; padding: .25rem .35rem; }
    .megamenu__presentation:not(:has(*)) { display: none; }
    .megamenu__intro { font-size: .88rem; }
    .megamenu__colonnes { display: block; }
    .megamenu__section { border: 1px solid var(--mm-trait); border-radius: .85rem; margin-bottom: .5rem; overflow: hidden; background: rgb(0 0 0 / 8%); }
    .megamenu__section-bouton {
        display: flex; align-items: center; gap: .5rem; width: 100%; min-height: var(--drm-cible, 2.75rem); padding: .65rem .85rem;
        border: 0; background: none; color: var(--mm-texte); font-weight: 700; text-align: start; text-transform: none;
    }
    .megamenu__section-nombre { margin-inline-start: auto; min-width: 1.6rem; padding: .05rem .45rem; border-radius: 999px; background: rgb(255 255 255 / 12%); color: #fff; font-size: .75rem; text-align: center; }
    .megamenu__section-bouton :is(i, svg) { transition: transform .2s; color: var(--mm-attenue); }
    .megamenu__section.is-ouverte .megamenu__section-bouton { color: var(--mm-accent); }
    .megamenu__section.is-ouverte .megamenu__section-bouton :is(i, svg) { transform: rotate(180deg); }
    .megamenu__section:not(.is-ouverte) .megamenu__liens { display: none; }
    .megamenu__liens { padding: 0 .4rem .5rem; }
    .megamenu__fleche { opacity: .6; transform: none; }
    .megamenu__vedette-carte { min-height: 11rem; }
}
@media (prefers-reduced-motion: reduce) {
    .megamenu__section-bouton :is(i, svg), .megamenu__fleche, .megamenu__vedette-image, .megamenu__vedette-action :is(i, svg) { transition: none; }
    html.megamenu-ouvert body::after { animation: none; }
}

/* Rubriques de la barre (items parents) : plus de cadre or. À la souris, aucun repère ; au clavier, un trait blanc
   sous la rubrique (repère de focus conservé pour l'accessibilité, RGAA 10.7). */
.entete__navigation .navbar-nav > .nav-item > .nav-link:focus,
.entete__navigation .navbar-nav > .nav-item > .nav-link:focus-visible {
    outline: none !important;
    border-radius: 0 !important;
}
.entete__navigation .navbar-nav > .nav-item > .nav-link:focus-visible {
    box-shadow: inset 0 -3px 0 #fff !important;
}
html.navigation-souris .entete__navigation .navbar-nav > .nav-item > .nav-link:focus-visible {
    box-shadow: none !important;
}

/* Titres de section des pages intérieures : même modèle et même taille que sur l'accueil (« À découvrir »…) */
main .titre-accueil .titre-accueil__titre { font-size: clamp(1.9rem, 1.4rem + 1.5vw, 2.6rem) !important; }
main .titre-accueil--compact .titre-accueil__titre { font-size: clamp(1.6rem, 1.3rem + .8vw, 2rem) !important; }
main .titre-accueil { margin-bottom: 1.25rem !important; }
.alert > .titre-accueil { margin-inline: 0; }

/* ═══ Pied de carte « nombre de téléchargements » (composant x-pied-telechargements) ═══ */
.carte-telechargements.card-footer {
    display: flex; justify-content: flex-end; align-items: center; gap: .5rem;
    padding: .5rem 1rem; font-size: .8125rem; line-height: 1.3;
    color: var(--bs-secondary-color); background: var(--bs-tertiary-bg);
    border-top: 1px solid var(--bs-border-color-translucent);
}
.carte-telechargements .compteur-telechargements { white-space: nowrap; }
.card:has(> .carte-telechargements) { overflow: hidden; }
.card > .carte-telechargements:last-child { border-radius: 0; }
/* Bloc hors .card : le pied s'étend jusqu'aux bords (annule la marge intérieure du bloc) */
.carte-telechargements--libre.card-footer {
    margin: 1rem calc(-1 * var(--pied-px, 1rem)) calc(-1 * var(--pied-py, 1rem));
    border-radius: 0 0 var(--drm-rayon, .5rem) var(--drm-rayon, .5rem);
}
.guichet-appel { --pied-px: 1.25rem; --pied-py: 1rem; }
.dernier-avis--compact { --pied-px: 1rem; --pied-py: 1rem; }
.dernier-avis--compact > .carte-telechargements--libre { border-start-start-radius: 0; border-end-start-radius: 0; }
