/* ==========================================================================
   Accueil — confort d'usage : lisibilité (aucun texte sous 12 px), cibles
   tactiles (44 px), repères au clavier, contrastes sur fonds sombres et mise
   en page sur téléphone. Chargé en dernier, uniquement sur l'accueil : les
   couleurs et la police restent celles de home-theme.css.
   ========================================================================== */
:root {
    --ux-gold: #F9D812;          /* réservé aux fonds sombres (le vert n'y est pas lisible) */
    --ux-dot: #84958b;           /* points de pagination au repos : visibles sur fond clair */
}

/* ---------- Repère de saisie au clavier ---------- */
.home-main :focus-visible, .home .header.is-fixed :focus-visible { outline: 3px solid var(--fx-accent); outline-offset: 3px; }
.home .h-hero :focus-visible, .home .h-pcec :focus-visible, .home .h-gallery :focus-visible { outline-color: var(--fx-paper); }
.home .h-pcec .h-program :focus-visible { outline-color: var(--fx-accent); }

/* ---------- Textes courants ---------- */
.home .h-text, .home .h-lead { font-size: 16px; }
.home .h-count { color: var(--fx-text); }
.home .h-head { margin-bottom: 40px; }

/* ---------- Liens d'en-tête de section : contour, le bouton plein reste l'action principale ---------- */
.home .link-more__inner { min-height: 44px; font-size: 15px; }
.home .link-more--ghost .link-more__inner { background: transparent; color: var(--fx-accent); box-shadow: inset 0 0 0 1.5px var(--fx-accent); }
.home .link-more--ghost:hover .link-more__inner { background: var(--fx-accent); color: var(--fx-paper); }

/* ---------- Lien discret dans les cartes : toute la carte est cliquable ---------- */
.h-more { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: auto; padding-top: 4px; color: var(--fx-accent); font-size: 15px; font-weight: 500; text-decoration: none; }
.h-more i { font-size: 12px; transition: transform .2s; }
.h-more::after { content: ""; position: absolute; inset: 0; }
.h-more:hover { color: var(--fx-accent-dark); text-decoration: none; }
.h-feature:hover .h-more i { transform: translateX(4px); }
@supports selector(:has(a)) {
    .home .h-more:focus-visible { outline: none; }
    .home .h-feature:has(.h-more:focus-visible) { outline: 3px solid var(--fx-accent); outline-offset: 3px; }
}

/* ---------- Cartes ---------- */
.home .h-feature h3 { font-size: 18px; }
.home .h-feature p { margin-bottom: 10px; font-size: 15px; line-height: 1.6; color: var(--fx-text); }
.home .h-feature--red { padding: 24px 20px; }

/* ==========================================================================
   CARROUSEL PRINCIPAL : une flèche à gauche, une flèche à droite
   ========================================================================== */
.home .h-hero__subtitle { color: var(--c-255-255-255-_88); }
/* Le sous-titre a la même taille et le même dessin de lettres que le titre : les deux se lisent d'un seul tenant.
   La taille suit aussi la hauteur de l'écran, pour que les textes longs tiennent dans le bandeau. */
.home .h-hero__title, .home .h-hero__subtitle { max-width: 880px; font-size: clamp(30px, min(4.6vw, 7svh), 58px); font-weight: 700; line-height: 1.1; letter-spacing: -.02em; text-wrap: balance; }
.home .h-hero__subtitle { margin-top: .08em; color: var(--fx-paper); }
/* la barre de commandes du bas a disparu : le texte se recentre dans le bandeau */
.home .h-hero__text { padding: 104px 0 84px; }
/* Une flèche de chaque côté, à mi-hauteur ; le défilement se suspend au survol et à la saisie au clavier */
.home .h-hero__arrow { width: 48px; height: 48px; border: 1px solid var(--c-255-255-255-_45); background: var(--c-11-31-21-_42); font-size: 15px; }
.home .h-hero__arrow:hover { background: var(--fx-paper); border-color: var(--fx-paper); color: var(--fx-navy); }
.home .h-hero__arrow--prev { left: 24px; }
.home .h-hero__arrow--next { right: 24px; }
/* sur les écrans où le texte toucherait les flèches, il se décale vers l'intérieur */
@media (min-width: 721px) and (max-width: 1479px) {
    .home .h-hero__text .h-container { padding-left: 96px; padding-right: 96px; }
}

/* ==========================================================================
   QUI SOMMES-NOUS : onglets et chiffres clés
   ========================================================================== */
.fx-tabs button { min-height: 48px; }
.fx-tabs button:hover { color: var(--fx-accent); }
.fx-tabpanel p { font-size: 16px; }
.home .fx-stats { width: calc(100% - 64px); max-width: 1216px; margin-top: 64px; padding: 36px 16px; gap: 0; list-style: none; border-radius: 20px; background: var(--fx-grey); }
.home .fx-stats li { padding: 4px 16px; }
.home .fx-stats li + li { border-left: 1px solid var(--fx-line); }
.home .fx-stats strong { color: var(--fx-accent); font-size: clamp(30px, 3.6vw, 46px); font-weight: 500; font-variant-numeric: tabular-nums; }
.home .fx-stats span { font-size: 15px; }

/* ==========================================================================
   PCEC : étiquette et mot mis en avant lisibles sur le fond sombre
   ========================================================================== */
.home .h-pcec { background: var(--c-0b1f15); }
.home .h-pcec__tag, .home .h-pcec__head h2 em { color: var(--ux-gold); }
.home .h-pcec__head p { color: var(--c-255-255-255-_82); font-size: 16px; }
.home .h-pcec__tabs a { min-height: 44px; }
.home .h-program p { font-size: 15px; }
.home .h-program li { font-size: 14px; }
.home .h-program__link { min-height: 44px; font-size: 15px; }

/* ==========================================================================
   ACTUALITÉ, ÉVÉNEMENTS : image à hauteur réservée, textes lisibles
   ========================================================================== */
.home .h-card-link { padding: 14px 14px 18px; }
.home .h-card-link__img { position: relative; order: -2; aspect-ratio: 16 / 10; margin-bottom: 14px; background: var(--fx-accent-soft); }
.home .h-card-link__img--short { aspect-ratio: 16 / 9; }
.home .h-card-link__img img { position: absolute; inset: 0; width: 100%; height: 100%; }
.home .h-card-link__img img.is-broken { visibility: hidden; }
.home .h-card-link__title { margin: 0 0 6px !important; font-size: 16px !important; font-weight: 700 !important; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.home .h-card-link__date { order: -1; margin-bottom: 8px; font-size: 13px; color: var(--fx-text); }
.home .h-card-link__more, .home .h-card-link__more--sm { min-height: 24px; font-size: 14px; font-weight: 500; }
.home .h-event__date { min-width: 58px; }
.home .h-event__date small { font-size: 12px; }
.home .h-event__body p { margin-bottom: 8px; font-size: 14px; line-height: 1.55; }
.home .h-event__place { font-size: 13px; }
.home .h-badge { padding: 3px 10px; font-size: 12px; }

/* ==========================================================================
   NORMES : bandeau sans photo répétée, filtres et actions à bonne taille
   ========================================================================== */
.home .h-filters input, .home .h-filters select { min-height: 48px; font-size: 16px; color: var(--fx-navy); }
.home .h-filters input::placeholder { color: var(--fx-text); opacity: 1; }
.home .h-filters__search i { color: var(--fx-text); font-size: 14px; left: 16px; }
.home .h-filters input { padding-left: 42px; }
.home .h-norm__cover { height: 84px; display: flex; align-items: center; justify-content: space-between; padding: 0 18px; background: linear-gradient(120deg, var(--fx-accent) 0%, var(--c-0b1f15) 100%); color: var(--c-255-255-255-_3); font-size: 34px; }
.home .h-norm__cover::after { display: none; }
.home .h-norm__cover span { position: static; padding: 5px 11px; color: var(--fx-navy); font-size: 13px; font-weight: 600; }
.home .h-norm__body small { font-size: 13px; font-weight: 600; }
.home .h-norm__body h3 { font-size: 18px; }
.home .h-norm__title { font-size: 15px; font-weight: 700; }
.home .h-norm__desc { font-size: 14px; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.home .h-norm__actions a { min-height: 44px; display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; }
.home .h-norm__actions i { font-size: 11px; }
.home .h-norm__actions .h-norm__buy { padding: 0 20px; }
.home .h-norm__actions .h-norm__buy:hover { background: var(--fx-accent-dark); color: var(--fx-paper); }

/* ==========================================================================
   PROCESSUS : flèches et points à bonne taille
   ========================================================================== */
.home .h-process__arrow { width: 44px; height: 44px; }
.home .h-process__arrow:hover { color: var(--fx-paper); }
.home .h-process__arrow--prev { left: -22px; }
.home .h-process__arrow--next { right: -22px; }
.home .h-process__dots { gap: 0; min-height: 44px; margin-top: 12px; align-items: center; }
.home .h-process__dots button, .home .h-process__dots button.is-active { position: relative; width: 26px; height: 44px; border-radius: 0; background: transparent; }
.home .h-process__dots button.is-active { width: 40px; }
.home .h-process__dots button::before { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 10px; border-radius: 99px; background: var(--ux-dot); transform: translate(-50%, -50%); transition: background .25s; }
.home .h-process__dots button.is-active::before { width: 24px; background: var(--fx-accent); }

/* ==========================================================================
   GALERIE : légendes lisibles, commandes visibles, grille sans chevauchement
   ========================================================================== */
.home .h-gallery__card { min-height: 0; }
.home .h-gallery__card:hover img { transform: none; }
.home .h-gallery__card::after, .home .h-gallery__slide::after { background: linear-gradient(transparent 22%, var(--c-5-31-15-_5) 55%, var(--c-5-31-15-_9)); }
.home .h-gallery__caption small { color: var(--ux-gold); font-size: 12px; font-weight: 600; }
.home .h-gallery__caption strong { font-size: 15px; font-weight: 500; }
.home .h-gallery__carousel .h-gallery__caption { bottom: 50px; }
.home .h-gallery__arrow { width: 44px; height: 44px; opacity: 1; font-size: 15px; color: var(--fx-navy); }
.home .h-gallery__arrow:hover { background: var(--fx-paper); color: var(--fx-accent); }
.h-gallery__pause { position: absolute; top: 12px; right: 12px; z-index: 5; width: 44px; height: 44px; padding: 0; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--c-11-31-21-_6); color: var(--fx-paper); font-size: 14px; cursor: pointer; transition: background .2s, color .2s; }
.h-gallery__pause:hover { background: var(--fx-paper); color: var(--fx-navy); }
.home .h-gallery__dots { gap: 0; bottom: 2px; }
.home .h-gallery__dot, .home .h-gallery__dot.is-active { position: relative; width: 22px; height: 44px; border-radius: 0; background: transparent; transform: none; }
.home .h-gallery__dot.is-active { width: 34px; }
.home .h-gallery__dot::before { content: ""; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; border-radius: 99px; background: var(--c-255-255-255-_6); transform: translate(-50%, -50%); transition: background .25s; }
.home .h-gallery__dot.is-active::before { width: 20px; background: var(--fx-paper); }
/* Vidéothèque : le lecteur .h-videos est stylé plus bas (section #galerie) ; ici, la grille lecteur + miniatures cliquables */
.home .h-videotheque { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
/* Lecteurs inactifs retirés du ciblage (et pas seulement transparents) : aucun clic ne peut s'y perdre */
.home .h-videotheque .h-videos__slide { transition: opacity .6s ease, visibility 0s; }
.home .h-videotheque .h-videos__slide:not(.is-active) { visibility: hidden; transition: opacity .6s ease, visibility 0s linear .6s; }
/* Empilement dans une vidéo : secours (dessous) < lecteur Facebook < image < légende < lien « Voir sur Facebook » */
.home .h-videos__fallback { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 6px; padding: 24px; background: var(--c-0b1220); color: var(--fx-paper); text-align: center; text-decoration: none; }
.home .h-videos__fallback i { font-size: 34px; }
.home .h-videos__fallback strong { font-size: 17px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.home .h-videos__fallback small { font-size: 13px; opacity: .8; }
/* Image de la vidéo + bouton ▶ : le bouton reste visible tant qu'on n'a pas cliqué dessus (clic = affiche
   le lecteur Facebook et lui donne le focus). Elle ne disparaît plus au survol. */
.home .h-videos__poster { position: absolute; inset: 0; z-index: 1; display: block; width: 100%; padding: 0; border: 0; overflow: hidden; background: var(--c-000000); cursor: pointer; }
.home .h-videos__poster[hidden] { display: none; }
.home .h-videos__poster img { width: 100%; height: 100%; object-fit: cover; }
.home .h-videos__play { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; background: var(--c-255-255-255-_92); color: var(--fx-accent); font-size: 24px; box-shadow: 0 6px 24px var(--c-0-0-0-_35); transform: translate(-50%, -50%); transition: transform .2s; }
.home .h-videos__play i { margin-left: 4px; }
.home .h-videos:hover .h-videos__play { transform: translate(-50%, -50%) scale(1.08); }
.home .h-videos__fb { position: absolute; top: 12px; right: 12px; z-index: 3; display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 99px; background: var(--c-0-0-0-_7); color: var(--fx-paper); font-size: 13px; font-weight: 500; text-decoration: none; }
.home .h-videos__fb:hover, .home .h-videos__fb:focus-visible { background: var(--fx-paper); color: var(--fx-navy); }
/* Écran tactile : pas d'image par-dessus, le lecteur Facebook se lit d'un seul toucher */
@media (hover: none) {
    .home .h-videotheque:not(.is-fb-blocked) .h-videos__poster { display: none; }
}
/* Facebook bloqué par le navigateur : image conservée, bouton « Lire la vidéo sur Facebook » au premier plan */
.home .h-videotheque.is-fb-blocked .h-videos__slide iframe { display: none; }
.home .h-videotheque.is-fb-blocked .h-videos__fallback { z-index: 4; background: var(--c-11-18-32-_62); }
.home .h-videotheque.is-fb-blocked .h-videos__play, .home .h-videotheque.is-fb-blocked .h-videos__fb { display: none; }
.home .h-videotheque__list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.home .h-videotheque__item { position: relative; display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 12px; align-items: center; padding: 8px; border-radius: 12px; transition: background .2s; }
.home .h-videotheque__item:hover { background: var(--c-f3f6f4); }
.home .h-videotheque__item:has(.is-active) { background: var(--fx-accent-soft); }
.home .h-videotheque__thumb { position: relative; width: 128px; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 8px; background: var(--c-000000); }
.home .h-videotheque__thumb img { width: 100%; height: 100%; object-fit: cover; }
.home .h-videotheque__play { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--c-0-0-0-_6); color: var(--fx-paper); font-size: 10px; transform: translate(-50%, -50%); }
.home .h-videotheque__play i { margin-left: 2px; }
/* Aperçu rendu à 320 × 180 puis réduit à 40 % (= 128 px) : le lecteur Facebook garde sa mise en page */
.home .h-videotheque__thumb iframe { width: 320px; height: 180px; border: 0; transform: scale(.4); transform-origin: 0 0; pointer-events: none; }
.home .h-videotheque__text { display: grid; gap: 4px; min-width: 0; }
.home .h-videotheque__label { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--fx-navy); font-size: 14px; line-height: 1.35; }
.home .h-videotheque__item:has(.is-active) .h-videotheque__label { color: var(--fx-accent); font-weight: 500; }
/* Repli si le lecteur intégré est bloqué : au-dessus du bouton de sélection pour rester cliquable */
.home .h-videotheque__fb { position: relative; z-index: 1; justify-self: start; display: inline-flex; align-items: center; gap: 6px; padding: 2px 0; color: var(--fx-accent); font-size: 13px; text-decoration: underline; text-underline-offset: 2px; }
.home .h-videotheque__fb i { font-size: 11px; }
.home .h-videotheque__pick { position: absolute; inset: 0; padding: 0; border: 0; border-radius: 12px; background: none; cursor: pointer; }
.home .h-videotheque__pick:focus-visible { outline: 2px solid var(--fx-accent); outline-offset: 2px; }
@media (max-width: 800px) {
    .home .h-videotheque { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    /* Légende plus compacte sur petit écran : elle ne recouvre plus le bouton lecture */
    .home .h-videotheque .h-videos__caption { padding: 22px 12px 10px; font-size: 13px; line-height: 1.35; }
    .home .h-videos__play { width: 56px; height: 56px; font-size: 19px; }
}

/* ==========================================================================
   PARTENAIRES : nom affiché si le logo ne se charge pas
   ========================================================================== */
.home .h-partner { min-height: 96px; }
.home .h-partner img { max-width: min(140px, 100%); }
.h-partner__name { display: none; color: var(--fx-navy); font-size: 17px; font-weight: 600; text-align: center; }
.h-partner.is-broken img { display: none; }
.h-partner.is-broken .h-partner__name { display: block; }

/* ==========================================================================
   FAQ
   ========================================================================== */
.h-faq__h { margin: 0; font: inherit; }
.home .h-faq__item:hover { border-color: var(--c-0-102-52-_35); }
.home .h-faq__item.is-extra { display: none; }
.home .h-faq__q { min-height: 60px; padding: 16px 20px 16px 24px; }
.home .h-faq__q span { font-size: 16px; font-weight: 500; line-height: 1.4; }
.home .h-faq__q i { flex: 0 0 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--fx-accent-soft); font-size: 12px; }
.home .h-faq__item.is-open .h-faq__q i { background: var(--fx-accent); color: var(--fx-paper); }
.home .h-faq__a p { font-size: 15.5px; }
.h-faq__cta { display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; margin-top: 32px; padding: 24px 28px; border-radius: var(--fx-radius); background: var(--fx-grey); }
.h-faq__cta strong { display: block; color: var(--fx-navy); font-size: 18px; font-weight: 500; }
.h-faq__cta span { display: block; margin-top: 4px; color: var(--fx-text); font-size: 15px; }

/* ==========================================================================
   Écrans tactiles : pas d'effet au survol qui reste collé après un appui
   ========================================================================== */
@media (hover: none) {
    .home .h-feature:hover, .home .h-program:hover { transform: none; box-shadow: 0 1px 2px var(--c-6-40-26-_04); border-color: var(--fx-line); }
    .home .h-feature:hover::before { transform: scaleX(0); }
    .home .h-feature:hover .h-feature__icon, .home .h-feature--red:hover .h-feature__icon, .home .h-program:hover .h-program__icon { background: var(--fx-accent-soft); color: var(--fx-accent); }
    .home .h-card-link:hover .h-card-link__img img { transform: none; }
}

/* ==========================================================================
   Tablette
   ========================================================================== */
@media (max-width: 1080px) {
    .home .fx-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
    .home .fx-stats li:nth-child(odd) { border-left: 0; }

    /* Accès rapides du PCEC : visibles aussi sur tablette et téléphone (ils étaient masqués) */
    .home .h-pcec__tabs { position: relative; right: auto; display: flex; flex-wrap: wrap; gap: 8px; max-width: 1280px; margin: 0 auto 36px; padding: 0 32px; border-radius: 0; background: transparent; box-shadow: none; }
    .home .h-pcec__tabs a, .home .h-pcec__tabs a + a { padding: 10px 16px; border: 1px solid var(--c-255-255-255-_3); border-radius: 999px; background: var(--c-255-255-255-_08); color: var(--fx-paper); }
    .home .h-pcec__tabs a:hover { background: var(--fx-paper); color: var(--fx-navy); }
    .home .h-pcec__tabs i { color: var(--ux-gold); }
    .home .h-pcec__tabs a:hover i { color: var(--fx-accent); }
}
@media (max-width: 800px) {
    .home .h-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; gap: 12px; }
    .home .h-gallery__card { aspect-ratio: 4 / 3; }
    .home .h-gallery__card:first-child { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 16 / 11; }
}

/* ==========================================================================
   Téléphone
   ========================================================================== */
@media (max-width: 720px) {
    .home .h-section, .fx-about { padding: 52px 0; }
    .home .h-section--tight { padding: 0 0 44px; }
    .home .h-head { margin-bottom: 26px; }
    .home .h-head--row { gap: 14px; }

    /* Carrousel principal : boutons côte à côte, flèches dans les coins du bas (le texte occupe la largeur) */
    .home .h-hero__arrow { display: flex; top: 50%; bottom: auto; transform: translateY(-50%); }
    .home .h-hero__arrow--prev { left: 16px; }
    .home .h-hero__arrow--next { right: 16px; }
    /* le texte occupe toute la largeur : voile uniforme, le dégradé latéral ne le couvrait qu'à moitié */
    .home .h-hero__slide::after { background: linear-gradient(180deg, var(--c-11-31-21-_62) 0%, var(--c-11-31-21-_7) 60%, var(--c-11-31-21-_82) 100%); }
    .home .h-hero__cta .fx-btn { flex: 1 1 auto; min-height: 48px; }
    .home .h-hero__text { padding: 96px 0 96px; }
    .home .h-hero__title, .home .h-hero__subtitle { font-size: clamp(27px, min(8.4vw, 5.2svh), 34px); }

    /* Qui sommes-nous */
    .fx-about__media img { height: auto; aspect-ratio: 4 / 3; }
    .fx-tabs button { padding: 12px 4px; }
    .home .fx-stats { width: calc(100% - 32px); margin-top: 44px; padding: 26px 8px; }
    .home .fx-stats li { padding: 0 10px; }
    .home .fx-stats strong { font-size: 30px; }
    .home .fx-stats span { margin-top: 6px; font-size: 14px; }

    /* Activités : pictogramme à gauche, texte à droite */
    .home .h-features { gap: 12px; }
    .home #activites .h-feature { display: grid; grid-template-columns: 48px minmax(0, 1fr); column-gap: 14px; align-items: start; padding: 18px 16px 10px; }
    .home #activites .h-feature__icon { grid-column: 1; grid-row: 1 / span 3; width: 48px; height: 48px; margin: 0; font-size: 19px; }
    .home #activites .h-feature h3, .home #activites .h-feature p, .home #activites .h-more { grid-column: 2; }
    .home #activites .h-feature h3 { margin: 2px 0 4px; }
    .home #activites .h-feature p { margin: 0; }

    /* PCEC */
    .home .h-pcec { padding: 52px 0; }
    .home .h-pcec__tabs { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 30px; padding: 0 16px; }
    .home .h-pcec__tabs a, .home .h-pcec__tabs a + a { padding: 8px 12px; gap: 8px; border-radius: 14px; font-size: 14px; line-height: 1.25; }
    .home .h-pcec__head { margin-bottom: 30px; }
    .home .h-programs { gap: 14px; }
    .home .h-program { display: grid; grid-template-columns: minmax(0, 1fr) auto; padding: 22px 20px 14px; }
    .home .h-program > * { grid-column: 1 / -1; }
    .home .h-program__num { grid-column: 1; grid-row: 1; align-self: center; font-size: 38px; }
    .home .h-program__icon { grid-column: 2; grid-row: 1; width: 52px; height: 52px; margin: 0; font-size: 20px; }
    .home .h-program h3 { margin-top: 16px; }
    .home .h-program ul { margin-top: 16px; padding-top: 14px; }
    .home .h-program__link { margin-top: 8px; }

    /* Actualité, événements : rangée à faire glisser, la carte suivante dépasse pour l'annoncer */
    .home .h-row-snap { display: flex; gap: 12px; margin: 0 -16px; padding: 2px 16px 12px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 16px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
    .home .h-row-snap::-webkit-scrollbar { display: none; }
    .home .h-row-snap > * { flex: 0 0 82%; max-width: 330px; height: auto; scroll-snap-align: start; }
    .home .h-row-snap > *:hover { transform: none; }

    /* Normes */
    .home .h-norms .h-head { margin-bottom: 22px; }
    .home .h-head__actions { gap: 8px; }
    .home .h-head__actions .link-more--ghost { display: none; }   /* simple renvoi vers la liste juste dessous */
    .home .h-head__actions .link-more { flex: 1 1 auto; }
    .home .h-head__actions .link-more__inner { width: 100%; justify-content: center; padding: 11px 14px; }
    .home .h-filters { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 22px; }
    .home .h-filters__search { grid-column: 1 / -1; }
    .home .h-filters select { width: 100%; padding: 10px 12px; font-size: 15px; }
    .home .h-grid-4 { gap: 14px; }
    .home .h-norm__cover { height: 52px; font-size: 22px; }
    .home .h-norm__body { padding: 14px 16px 10px; }
    .home .h-norm__desc { margin-bottom: 6px; -webkit-line-clamp: 2; }

    /* Processus : flèches sous la carte, de part et d'autre des points */
    .home .h-process { gap: 26px; }
    .home .h-process__slide { padding: 0 2px; }
    .home .h-process__arrow { top: auto; bottom: 0; transform: none; }
    .home .h-process__arrow--prev { left: 2px; }
    .home .h-process__arrow--next { right: 2px; }
    .home .h-process__dots { padding: 0 52px; }

    /* Galerie */
    .home .h-gallery { gap: 10px; }
    .home .h-gallery__caption { left: 12px; right: 12px; bottom: 10px; }
    .home .h-gallery__card:not(.h-gallery__carousel) .h-gallery__caption small { display: none; }   /* vignettes : la légende seule */
    .home .h-gallery__caption strong { font-size: 14px; }
    .home .h-gallery__carousel .h-gallery__caption { left: 16px; right: 16px; bottom: 46px; }
    .home .h-gallery__carousel .h-gallery__caption strong { font-size: 16px; }
    .home .h-gallery__arrow { width: 44px; height: 44px; }
    .home .h-gallery__arrow--prev { left: 8px; }
    .home .h-gallery__arrow--next { right: 8px; }

    /* Partenaires : deux par ligne */
    .home .h-partners { padding: 52px 0; }
    .home .h-partners .h-head { margin-bottom: 24px; }
    .home .h-partners__track { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .home .h-partner { min-width: 0; min-height: 84px; padding: 16px; }
    .home .h-partner:last-child:nth-child(odd) { grid-column: 1 / -1; }

    /* FAQ */
    .home .h-faq { gap: 10px; }
    .home .h-faq__q { padding: 14px 14px 14px 18px; }
    .home .h-faq__a { padding: 0 18px 18px; }
    .h-faq__cta { margin-top: 24px; padding: 20px; }
    .h-faq__cta .fx-btn { flex: 1 1 100%; min-height: 48px; }
}
@media (max-width: 520px) {
    /* la galerie reste sur deux colonnes : une grande photo puis quatre vignettes */
    .home .h-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home .h-gallery__card:first-child { grid-column: 1 / -1; }
}

/* ==========================================================================
   Mouvement réduit (réglage du système) : plus aucune animation
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
    .home-main *, .home-main *::before, .home-main *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
    .home .h-feature:hover, .home .h-program:hover, .fx-btn:hover, .home .link-more:hover { transform: none; }
    .home .h-row-snap { scroll-behavior: auto; }
}

/* ==========================================================================
   Section #galerie : onglets « Galerie photos » / « Vidéothèque »
   ========================================================================== */
.h-tabset { margin-top: 26px; }
#galerie .fx-tabs { margin-bottom: 26px; }
#galerie .fx-tabs button.is-active { color: var(--fx-accent); }

/* Bouton « Découvrir l'ACONOQ » : contour rouge demandé */
#galerie .link-more--ghost .link-more__inner { background: var(--c-dc2626); color: var(--fx-paper); box-shadow: inset 0 0 0 1.5px var(--c-dc2626); }
#galerie .link-more--ghost:hover .link-more__inner { background: var(--c-b91c1c); color: var(--fx-paper); box-shadow: inset 0 0 0 1.5px var(--c-b91c1c); }

/* Vidéothèque : lecteurs Facebook empilés en carrousel */
.h-videos { position: relative; overflow: hidden; border-radius: 18px; background: var(--c-0b1220); aspect-ratio: 16 / 9; }
.h-videos__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .6s ease; pointer-events: none; }
.h-videos__slide.is-active { opacity: 1; pointer-events: auto; }
.h-videos__slide iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.h-videos__caption { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 34px 18px 22px; color: var(--fx-paper); font-size: 15px; font-weight: 500; background: linear-gradient(to top, var(--c-0-0-0-_72), var(--c-0-0-0-0)); pointer-events: none; }
.fx-tabpanel .h-videos__empty { margin: 0; padding: 48px 18px; text-align: center; background: var(--fx-grey); border-radius: 18px; color: var(--fx-navy); }

/* ==========================================================================
   Titre de « Nos activités » (les cartes sont dans home-maquette.css).
   ========================================================================== */
#activites .h-heading {
    font-size: clamp(32px, 3.8vw, 48px);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -.035em;
}
#activites .h-text { max-width: none; }
@media (min-width: 1280px) {
    #activites .h-text { font-size: 14px; white-space: nowrap; }
}

/* Tous les titres des sections de l'accueil en gras */
.home .h-heading, .home .fx-title, .home .h-hero__title, .home .h-hero__subtitle, .home .m-slide__title, .home .h-card-link__title, .home .h-norm__title, .home .h-norm__title a { font-weight: 700 !important; }

/* Qui sommes-nous : titre réduit */
.home #a-propos .fx-title { font-size: clamp(22px, 2.4vw, 30px); }
