/*
Theme Name:     Digisante-child
Theme URI:
Description:    Digisante child theme.
Author:         Digisanté
Author URI:     https://www.digisante.fr
Template:       digisante
Version:        0.1.0
*/

/*
WEBFONTS EN LOCAL : UTILISER CET OUTIL https://gwfh.mranftl.com/fonts
1/ Récupérer les graisses nécessaires puis télécharger l'archive avec Woff et Woff2 uniquement pour le subset Latin1
2/ Rajouter du font-display:swap pour chaque déclaration @font-face et modifier le chemin vers /fonts/
3/ Récupérer la fonte de fallback optimale ici : https://www.industrialempathy.com/perfect-ish-font-fallback/?font=Montserrat
4/ Modifier la déclaration générale avec une font-stack complète et un !important.
5/ Mettre en place le préchargement de la fonte utilisée en Regular et Bold via WP Rocket (dans sa version Woff2)
*/
body, header, footer, main {
    width: 100vw !important;
    max-width: 100vw !important;
}

body, input, textrea, .gfield_label {
    font-family: DM Sans, "DM Sans-fallback", Arial, sans-serif!important; font-weight: 300!important; color: #193837 !important;
}

.list-group-item { font-weight: 400 !important; }

strong { font-weight: 600 !important; }

@font-face {
    font-family: "DM Sans-fallback";
    size-adjust: 104.63%;
    src: local("Arial");
}

/* dm-sans-300 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 300;
  src: local(''),
       url('./fonts/dm-sans-v17-latin-300.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
       url('./fonts/dm-sans-v17-latin-300.woff') format('woff'); /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+, iOS 5+ */
}
/* dm-sans-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  src: local(''),
       url('./fonts/dm-sans-v17-latin-regular.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
       url('./fonts/dm-sans-v17-latin-regular.woff') format('woff'); /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+, iOS 5+ */
}
/* dm-sans-500 - latin (ajout PSHDF – F. Danet : titres des cartes en medium, cf. maquettes) */
@font-face {
  font-display: swap;
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  src: local(''),
       url('./fonts/dm-sans-v17-latin-500.woff2') format('woff2'),
       url('./fonts/dm-sans-v17-latin-500.woff') format('woff');
}
/* dm-sans-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  src: local(''),
       url('./fonts/dm-sans-v17-latin-700.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
       url('./fonts/dm-sans-v17-latin-700.woff') format('woff'); /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+, iOS 5+ */
}


body {
  background-size: 100% 75vh!important;
  background-position: top center!important;
  background-repeat: no-repeat!important;
}

/* IMG HOME */
/* Digisanté 20/10/2026 : remontée de -20vh retirée (nouveau bandeau WebP sans marge blanche ; l'espace est géré par une section Espacement) */

/* BORDER */
.card, .btn { border-width: 2px!important; }

/* CARD  */
.custom-corner-card {
  position: relative;
  border-top-right-radius: 0 !important; 
}

/* --- LE BOUTON FLÈCHE --- */
.custom-corner-card .card-btn {
  position: absolute;
  top: -1rem;
  right: -1rem;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  z-index: 10;
}

.custom-corner-card .card-btn svg {
  width: 2rem;
  height: 2rem;
  color: currentColor; /* Couleur de la flèche */
}

/* TESTI  */
.swiper-slide:has(.testi)::after {
    content: "";
    position: absolute;
    top: -1rem;
    right: -1rem;
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    z-index: 10;
    background-color: #193837;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 10.045 7.751' xmlns='http://www.w3.org/2000/svg' fill='%23ffffff'%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Crect width='10.045' height='7.751'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23a)'%3E%3Cpath transform='translate(0 -19.875)' d='M5.259,27.627c-2.863,0-4.729-1.953-5.253-5.5a.44.44,0,0,1,.344-.507.418.418,0,0,1,.473.368A7.059,7.059,0,0,0,2.007,25.2a3.833,3.833,0,0,0,3.251,1.544c2.25,0,3.584-1.479,3.963-4.4a.42.42,0,0,1,.467-.378.439.439,0,0,1,.353.5A7.344,7.344,0,0,1,8.8,25.931a4.174,4.174,0,0,1-3.541,1.7'/%3E%3Cpath transform='translate(-36.503)' d='M39.906.967a.486.486,0,0,0,0-.967.486.486,0,0,0,0,.967'/%3E%3Cpath transform='translate(-75.155)' d='M81.7.967A.486.486,0,0,0,81.7,0a.486.486,0,0,0,0,.967'/%3E%3C/g%3E%3C/svg%3E");    background-repeat: no-repeat;
    background-position: center;
    background-size: 2rem;
}

.page-id-906 .swiper-slide:has(.testi)::after { 
  background-color: #ffffff;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 10.045 7.751' xmlns='http://www.w3.org/2000/svg' fill='%237c1c72'%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Crect width='10.045' height='7.751'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23a)'%3E%3Cpath transform='translate(0 -19.875)' d='M5.259,27.627c-2.863,0-4.729-1.953-5.253-5.5a.44.44,0,0,1,.344-.507.418.418,0,0,1,.473.368A7.059,7.059,0,0,0,2.007,25.2a3.833,3.833,0,0,0,3.251,1.544c2.25,0,3.584-1.479,3.963-4.4a.42.42,0,0,1,.467-.378.439.439,0,0,1,.353.5A7.344,7.344,0,0,1,8.8,25.931a4.174,4.174,0,0,1-3.541,1.7'/%3E%3Cpath transform='translate(-36.503)' d='M39.906.967a.486.486,0,0,0,0-.967.486.486,0,0,0,0,.967'/%3E%3Cpath transform='translate(-75.155)' d='M81.7.967A.486.486,0,0,0,81.7,0a.486.486,0,0,0,0,.967'/%3E%3C/g%3E%3C/svg%3E");    background-repeat: no-repeat;
    
}

/* SLIDE  */
.swiper-container {
    width: auto;
    height: 100%;
    overflow: visible !important;
}

.swiper-slide:not(.swiper-slide-active) {
    opacity: 0;
}
.swiper-slide.swiper-slide-visible {
    opacity: 1 !important;
}

/* TABLEAU ALT  */
.section_blocs .p-4:has(table) {padding: 0px !important;}
.section_blocs table td {padding: 1.5rem!important;}
.section_blocs table td:nth-child(even) {background-color: #193837!important;}

/* INPUT FORM */
.rounded-input input, .rounded-input textarea, .rounded-input select { border-radius: 1.5rem !important; border: 2px solid #193837  !important; }
.gform_newsletter input[type=email] { border: 2px solid #7c1c72  !important; }
.gform_newsletter input[type=email]::placeholder { color: #7c1c72  !important; }
.gform_newsletter.font-violet .gform_footer .gform_button{ 
  color: #ffffff !important;
  background-color: #7c1c72 !important;
  border-color: #7c1c72;
}
.gform_newsletter.font-violet .gform_footer {
    justify-content: center!important;
}
.gform_footer .gform_button { border-style: solid!important; }
.gform_contact input::placeholder { color: #193837  !important; }
.gform_contact select { color: #193837  !important; }

/* FOOTER BTN */
.btn-form {
    color: #165855 !important;
    background-color: #FBC87C !important;
    border-color: #FBC87C;
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
    padding-right: 1rem !important;
    padding-left: 1rem !important;
    border-radius: 3rem !important;
}
.btn-ress {
    color: #ffffff !important;
    background-color: #165855 !important;
    border-color: #165855;
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
    padding-right: 1rem !important;
    padding-left: 1rem !important;
    border-radius: 3rem !important;
}
.btn-acc {
    color: #ffffff !important;
    background-color: #7c1c72 !important;
    border-color: #7c1c72;
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
    padding-right: 1rem !important;
    padding-left: 1rem !important;
    border-radius: 3rem !important;
}
.btn-nl {
    color: #165855 !important;
    background-color: #ffffff !important;
    border-color: #ffffff;
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
    padding-right: 1rem !important;
    padding-left: 1rem !important;
    border-radius: 3rem !important;
}

/* ==========================================================================
   Ajouts PSHDF – F. Danet
   ========================================================================== */

/* --- Ex-CSS additionnel du Customizer (déplacé ici le 05/10) --- */

/* Titres violets : fiches accompagnement + page parente Accompagnements (ID 906) */
.single-accompagnement h1,
.page-id-906 h1 { color: #7b1f6f; }

/* Couleur des liens dans les textes selon le type de fiche
   (plus précis que .link-vertf a de dynamic.css, donc prioritaire malgré son chargement après ce fichier) */
.single-ressource .link-vertf a { color: #4a7779 !important; }
.single-accompagnement .link-vertf a { color: #7b1f6f !important; }

/* Images des sections texte + image des fiches ressource : format 16/9 recadré */
.single-ressource .section_texteimage img {
  width: 100%;
  height: auto; /* sinon l'attribut height de l'image annule l'aspect-ratio */
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 16px;
}

/* --- Cartes Accompagnements (sections/section_accompagnements.php) --- */
/* Grille resserrée comme la maquette (4 cartes ≈ 780px) */
.section_accompagnements .acc-grid { max-width: 820px; }

.section_accompagnements .acc-card {
  border-radius: 1.25rem !important;
  border: 2px solid #7c1c72 !important;
  aspect-ratio: 3 / 4; /* carte portrait, s'allonge si le titre est long */
  transition: border-color .2s ease;
}
.section_accompagnements .acc-card:hover,
.section_accompagnements .acc-card:focus-within {
  border-color: #FBC87C !important;
}
.section_accompagnements .acc-card .card-body { padding: .75rem !important; }

.section_accompagnements .acc-card-badge {
  font-size: .7rem;
  font-weight: 400;
  line-height: 1.3;
  padding: .05rem .45rem;
  border-radius: .3rem;
}
/* h3 du thème parent en !important : on surcharge */
.section_accompagnements h3.acc-card-title {
  font-size: 1.1rem !important;
  font-weight: 500 !important;
  line-height: 1.1;
}
.section_accompagnements .acc-card-title a:focus-visible::after {
  outline: 2px solid #7c1c72;
  outline-offset: 4px;
  border-radius: 1.25rem;
}
.section_accompagnements .acc-card-img {
  height: auto;
  aspect-ratio: 3 / 2 !important;
  object-fit: cover;
  border-radius: .75rem !important;
}
@media (prefers-reduced-motion: reduce) {
  .section_accompagnements .acc-card { transition: none; }
}

/* Digisanté 20/10/2026 : option « 3 par ligne » = mêmes dimensions que les cartes Ressources à la une */
.section_accompagnements .acc-grid--large { max-width: 1040px; padding-top: 1rem; }
.section_accompagnements .acc-grid--large .acc-card {
  aspect-ratio: auto;
  border-radius: 1.5rem !important;
}
.section_accompagnements .acc-grid--large .acc-card .card-body { padding: 1.25rem 1.25rem 1rem !important; }
.section_accompagnements .acc-grid--large .acc-card-badge { font-size: .75rem; padding: .05rem .5rem; }
.section_accompagnements .acc-grid--large h3.acc-card-title {
  font-size: 1.5rem !important;
  line-height: 1.15;
}
.section_accompagnements .acc-grid--large .acc-card-img { aspect-ratio: 16 / 10 !important; }

/* --- Cartes Ressources à la une (sections/section_ressourcesalaune.php) --- */
.section_ressourcesalaune .res-grid { max-width: 1040px; padding-top: 1rem; }

.section_ressourcesalaune .res-card {
  border-width: 2px !important;
  border-style: solid !important;
  border-radius: 1.5rem !important;
  border-top-right-radius: 0 !important; /* coin occupé par le bouton flèche */
}
.section_ressourcesalaune .res-card .card-body { padding: 1.25rem 1.25rem 1rem !important; }

/* Bouton flèche : espace blanc + anneau vert qui contourne le coin (cf. maquette) */
.section_ressourcesalaune .res-card .card-btn {
  width: 3.5rem;
  height: 3.5rem;
  top: -.75rem;
  right: -.75rem;
  box-shadow: 0 0 0 .45rem #fff;
}
.section_ressourcesalaune .res-card .card-btn::before {
  content: "";
  position: absolute;
  inset: calc(-.45rem - 2px);
  border: 2px solid #193837;
  border-radius: 50%;
  /* masque la partie de l'anneau située à l'intérieur de la carte (angles depuis le haut, sens horaire) :
     centre du bouton à 16px du bord intérieur (milieu de la bordure 2px à 17px), anneau ≈ 36px de rayon moyen
     → croise la bordure droite à 152° (180 - asin 17/36) et la bordure haute à 298° (360 - acos 17/36) */
  -webkit-mask: conic-gradient(from 152deg, transparent 0 146deg, #000 146deg);
          mask: conic-gradient(from 152deg, transparent 0 146deg, #000 146deg);
  pointer-events: none;
}
.section_ressourcesalaune .res-card .card-btn svg { width: 1.5rem; height: 1.5rem; }

.section_ressourcesalaune .res-card-badges { padding-right: 2.5rem; }
.section_ressourcesalaune .res-card-badge {
  font-size: .75rem;
  font-weight: 400;
  line-height: 1.3;
  padding: .05rem .5rem;
  border-radius: .3rem;
}
/* h3 du thème parent en !important : on surcharge */
.section_ressourcesalaune h3.res-card-title {
  font-size: 1.5rem !important;
  font-weight: 500 !important;
  line-height: 1.15;
}
.section_ressourcesalaune .res-card-title a:focus-visible::after {
  outline: 2px solid #193837;
  outline-offset: 4px;
  border-radius: 1.5rem;
}
.section_ressourcesalaune .res-card-img {
  height: auto;
  aspect-ratio: 16 / 10 !important;
  object-fit: cover;
  border-radius: .75rem !important;
}
/* Survol : bordure, anneau et rond passent en jaune (comme les cartes Accompagnements), flèche verte pour le contraste */
.section_ressourcesalaune .res-card,
.section_ressourcesalaune .res-card .card-btn,
.section_ressourcesalaune .res-card .card-btn::before,
.section_ressourcesalaune .res-card .card-btn svg { transition: border-color .2s ease, background-color .2s ease, fill .2s ease; }
.section_ressourcesalaune .res-card:hover,
.section_ressourcesalaune .res-card:focus-within { border-color: #FBC87C !important; }
.section_ressourcesalaune .res-card:hover .card-btn,
.section_ressourcesalaune .res-card:focus-within .card-btn { background-color: #FBC87C !important; }
.section_ressourcesalaune .res-card:hover .card-btn::before,
.section_ressourcesalaune .res-card:focus-within .card-btn::before { border-color: #FBC87C; }
.section_ressourcesalaune .res-card:hover .card-btn svg,
.section_ressourcesalaune .res-card:focus-within .card-btn svg { fill: #193837 !important; }
@media (prefers-reduced-motion: reduce) {
  .section_ressourcesalaune .res-card,
  .section_ressourcesalaune .res-card .card-btn,
  .section_ressourcesalaune .res-card .card-btn::before,
  .section_ressourcesalaune .res-card .card-btn svg { transition: none; }
}

/* --- Liste des Ressources + filtres (sections/section_ressources.php) --- */
.section_ressources .res-list { max-width: 1080px; }
/* Grand écran : grille de 4 colonnes → bloc élargi pour garder des cartes lisibles */
@media (min-width: 1200px) { .section_ressources .res-list { max-width: 1320px; } }

/* Encadrés filtres et CTA */
.section_ressources .res-filtres,
.section_ressources .res-cta,
.section_ressources .res-vide {
  border: 2px solid #193837;
  border-radius: 1.5rem;
  padding: 1.5rem 1.5rem 1.75rem;
}
.section_ressources h2.res-filtres-titre {
  font-size: 2rem !important;
  font-weight: 500 !important;
  margin-bottom: 1rem;
}

/* Une rubrique repliable (Thématiques, Territoires…) */
.section_ressources .res-filtre { border-bottom: 2px solid #193837; }
.section_ressources .res-filtre summary {
  list-style: none;
  cursor: pointer;
  padding: .7rem 0;
  font-size: 1.1rem;
}
.section_ressources .res-filtre summary::-webkit-details-marker { display: none; }
.section_ressources .res-filtre summary:focus-visible { outline: 2px solid #193837; outline-offset: 2px; border-radius: .5rem; }
.section_ressources .res-filtre-nb-choisis { font-size: .85rem; font-weight: 400; }

/* Pastille compteur + chevron */
.section_ressources .res-filtre-compteur {
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 50%;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1;
  font-size: 1.1rem;
  font-weight: 400;
  flex-shrink: 0;
}
.section_ressources .res-filtre-compteur svg { width: .7rem; height: .5rem; margin-top: .1rem; transition: transform .2s ease; }
.section_ressources .res-filtre[open] .res-filtre-compteur svg { transform: rotate(180deg); }

/* Liste de cases à cocher */
.section_ressources .res-filtre-liste {
  max-height: 16rem;
  overflow-y: auto;
  margin: 0 0 .75rem;
  padding: .25rem .25rem .25rem .3rem; /* évite de rogner les cases et leur contour de focus */
}
.section_ressources .res-filtre-liste li { display: flex; align-items: flex-start; gap: .5rem; padding: .2rem 0; font-size: .95rem; }
.section_ressources .res-filtre-liste li.res-filtre-niveau-1 { padding-left: 1.25rem; }
.section_ressources .res-filtre-liste li.res-filtre-niveau-2 { padding-left: 2.5rem; }
.section_ressources .res-filtre-liste .form-check-input { margin-top: .2rem; flex-shrink: 0; border-color: #193837; }
.section_ressources .res-filtre-liste .form-check-input:checked { background-color: #193837; border-color: #193837; }
.section_ressources .res-filtre-liste label { cursor: pointer; }

.section_ressources .res-cta .btn-ress { font-size: 1.1rem; line-height: 1.25; padding: .6rem 1.25rem !important; }

/* Cartes compactes */
.section_ressources .res-card {
  border: 2px solid #193837 !important;
  border-radius: 1.25rem !important;
  transition: border-color .2s ease;
}
.section_ressources .res-card:hover,
.section_ressources .res-card:focus-within { border-color: #FBC87C !important; }
.section_ressources .res-card .card-body { padding: .9rem !important; }
.section_ressources .res-card-badge {
  font-size: .7rem;
  font-weight: 400;
  line-height: 1.3;
  padding: .05rem .45rem;
  border-radius: .3rem;
}
.section_ressources h3.res-card-title {
  font-size: 1.1rem !important;
  font-weight: 500 !important;
  line-height: 1.15;
}
.section_ressources .res-card-title a:focus-visible::after { outline: 2px solid #193837; outline-offset: 4px; border-radius: 1.25rem; }
.section_ressources .res-card-img {
  height: auto;
  aspect-ratio: 16 / 10 !important;
  object-fit: cover;
  border-radius: .75rem !important;
}

/* Pagination : points + flèches */
.section_ressources .res-pagination { min-height: 2.5rem; }
.section_ressources .res-pagination-point {
  display: block;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  border: 2px solid #4a7779;
  transition: background-color .2s ease;
}
.section_ressources .res-pagination-point.actif,
.section_ressources .res-pagination-point:hover { background-color: #4a7779; }
.section_ressources .res-pagination-fleche { position: absolute; top: 50%; transform: translateY(-50%); line-height: 0; }
.section_ressources .res-pagination-fleche svg { width: 2.25rem; height: 2.25rem; }
.section_ressources .res-pagination-fleche--suiv { right: 0; }
.section_ressources .res-pagination-fleche--prec { left: 0; }

@media (prefers-reduced-motion: reduce) {
  .section_ressources .res-card,
  .section_ressources .res-filtre-compteur svg,
  .section_ressources .res-pagination-point { transition: none; }
}

/* Chargement des résultats sans rechargement de page (js/ressources-filtres.js) */
.section_ressources .res-resultats { transition: opacity .2s ease; }
.section_ressources[aria-busy="true"] .res-resultats { opacity: .45; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .section_ressources .res-resultats { transition: none; } }

/* --- Badges sous le titre des fiches (sections/section_badges.php) --- */
.section_badges .badge-fiche {
  font-size: .85rem;
  font-weight: 400;
  line-height: 1.3;
  padding: .15rem .6rem;
  border-radius: .35rem;
}

/* --- Cartes Actualités (sections parent/enfant section_actualites et section_actualitesalaune) ---
   Même rendu que les Ressources à la une : coin découpé par le bouton flèche + anneau, survol jaune.
   Couleurs pilotées par les options de la section (bg-/border-<couleur>) : l'anneau reprend la couleur du bouton. */
.section_actualites .custom-corner-card,
.section_actualitesalaune .custom-corner-card {
  border-radius: 1.5rem !important;
  border-top-right-radius: 0 !important;
  transition: border-color .2s ease;
}
/* Bouton : 4rem, centre à 16px des bords haut et droit de la carte (top/right -1rem du thème) */
.section_actualites .custom-corner-card .card-btn,
.section_actualitesalaune .custom-corner-card .card-btn {
  box-shadow: 0 0 0 .45rem #fff;
  transition: background-color .2s ease;
}
/* Anneau : fond hérité du bouton, découpé en couronne (radial, bord intérieur adouci sur 0.8px contre le crénelage)
   puis hors de la carte (conic).
   Centre du bouton à 16px du bord INTÉRIEUR (position absolue = padding box) → milieu de la bordure 2px à 17px.
   Rayon moyen ≈ 40px → croise la bordure droite à 155° (180 - asin 17/40) et la bordure haute à 295° (360 - acos 17/40). */
.section_actualites .custom-corner-card .card-btn::before,
.section_actualitesalaune .custom-corner-card .card-btn::before {
  content: "";
  position: absolute;
  inset: calc(-.45rem - 2px);
  border-radius: 50%;
  background-color: inherit;
  pointer-events: none;
  -webkit-mask:
    radial-gradient(farthest-side, transparent calc(100% - 2.8px), #000 calc(100% - 2px)),
    conic-gradient(from 155deg, transparent 0 140deg, #000 140deg);
  -webkit-mask-composite: source-in;
          mask:
    radial-gradient(farthest-side, transparent calc(100% - 2.8px), #000 calc(100% - 2px)),
    conic-gradient(from 155deg, transparent 0 140deg, #000 140deg);
          mask-composite: intersect;
}
.section_actualites .custom-corner-card .card-btn svg,
.section_actualitesalaune .custom-corner-card .card-btn svg { transition: fill .2s ease; }

/* Grille : cartes plus étroites et plus espacées (maquette : 3 cartes ≈ 1000px, gouttière ≈ 4rem) */
.section_actualites > .container,
.section_actualitesalaune > .container { max-width: 1100px; }
.section_actualitesalaune ul.row { --bs-gutter-x: 3.5rem; --bs-gutter-y: 3rem; padding-top: 1rem; }
.section_actualites #container-actualites [class*="col-"].p-3 { padding: 1.5rem 1.75rem !important; } /* colonnes des cartes uniquement (pas la colonne filtres) */

/* Hauteurs égales, image calée en bas */
.section_actualitesalaune ul.row > li { display: flex; }
.section_actualites .custom-corner-card,
.section_actualitesalaune .custom-corner-card { height: 100%; width: 100%; padding: 1.5rem !important; }
.section_actualites .custom-corner-card .card-body,
.section_actualitesalaune .custom-corner-card .card-body { display: flex; flex-direction: column; }
.section_actualites .custom-corner-card .card-img,
.section_actualitesalaune .custom-corner-card .card-img { margin-top: auto; }
.section_actualites .custom-corner-card .card-text > div,
.section_actualitesalaune .custom-corner-card .card-text > div { font-size: 1rem; line-height: 1.5; }

/* Titre et image */
.section_actualites .custom-corner-card h3,
.section_actualitesalaune .custom-corner-card h3 {
  font-size: 1.75rem !important;
  font-weight: 500 !important;
  line-height: 1.15;
  padding-right: 2.5rem; /* ne passe pas sous le bouton */
}
.section_actualites .custom-corner-card .card-img img,
.section_actualitesalaune .custom-corner-card .card-img img {
  height: auto !important;
  aspect-ratio: 16 / 10 !important;
  border-radius: .75rem !important;
}
.section_actualites .custom-corner-card .card-img,
.section_actualitesalaune .custom-corner-card .card-img { padding-top: 0 !important; }

/* Survol : bordure, bouton et anneau en jaune, flèche verte */
.section_actualites .custom-corner-card:hover,
.section_actualites .custom-corner-card:focus-within,
.section_actualitesalaune .custom-corner-card:hover,
.section_actualitesalaune .custom-corner-card:focus-within { border-color: #FBC87C !important; }
.section_actualites .custom-corner-card:hover .card-btn,
.section_actualites .custom-corner-card:focus-within .card-btn,
.section_actualitesalaune .custom-corner-card:hover .card-btn,
.section_actualitesalaune .custom-corner-card:focus-within .card-btn { background-color: #FBC87C !important; }
.section_actualites .custom-corner-card:hover .card-btn svg,
.section_actualites .custom-corner-card:focus-within .card-btn svg,
.section_actualitesalaune .custom-corner-card:hover .card-btn svg,
.section_actualitesalaune .custom-corner-card:focus-within .card-btn svg { fill: #193837 !important; }

@media (prefers-reduced-motion: reduce) {
  .section_actualites .custom-corner-card, .section_actualites .custom-corner-card .card-btn, .section_actualites .custom-corner-card .card-btn svg,
  .section_actualitesalaune .custom-corner-card, .section_actualitesalaune .custom-corner-card .card-btn, .section_actualitesalaune .custom-corner-card .card-btn svg { transition: none; }
}

/* --- Panneaux de mise en avant de la home (sections/section_miseenavant.php) --- */
.section_miseenavant .mea-panneau {
  /* pleine largeur du container (aligné sur le logo et le menu de la navbar) */
  border-radius: 2rem;
  padding: 1.5rem 1.75rem 1.5rem;
}
.section_miseenavant h2.mea-titre {
  font-size: 1.6rem !important;
  font-weight: 500 !important;
  margin-bottom: 1rem;
}

/* Carte commune */
.section_miseenavant .mea-carte {
  border-radius: 1rem;
  overflow: hidden;
  width: 100%;
  display: flex;
  box-shadow: 0 0 0 0 #FBC87C;
  transition: box-shadow .2s ease;
}
.section_miseenavant .mea-carte:hover,
.section_miseenavant .mea-carte:focus-within { box-shadow: 0 0 0 3px #FBC87C; }
/* Image calée en absolu : remplit toujours son cadre, même enveloppée dans un <picture> (Imagify) */
.section_miseenavant .mea-carte-img { position: relative; overflow: hidden; }
.section_miseenavant .mea-carte-img img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.section_miseenavant .mea-carte-corps {
  position: relative;
  padding: .75rem 2.25rem .9rem .9rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.section_miseenavant .mea-badge {
  font-size: .7rem;
  font-weight: 400;
  line-height: 1.3;
  padding: .05rem .45rem;
  border-radius: .3rem;
}
.section_miseenavant h3.mea-carte-titre {
  font-size: 1.15rem !important;
  font-weight: 500 !important;
  line-height: 1.15;
  margin: .2rem 0 .4rem;
}
/* Extrait sur toutes les cartes, coupé avec « … » : 4 lignes (grande), 2 lignes (cartes horizontales) */
.section_miseenavant .mea-carte-extrait {
  font-size: .85rem;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.section_miseenavant .mea-carte--ligne .mea-carte-extrait { -webkit-line-clamp: 2; }
.section_miseenavant .mea-carte-fleche {
  position: absolute;
  right: .8rem;
  bottom: .8rem;
  width: 1rem;
  height: 1rem;
  transition: transform .2s ease, color .2s ease;
}
/* Survol : flèche jaune (comme le contour) – surcharge la classe font-<couleur> en !important */
.section_miseenavant .mea-carte:hover .mea-carte-fleche,
.section_miseenavant .mea-carte:focus-within .mea-carte-fleche { transform: translateX(3px); color: #FBC87C !important; }
.section_miseenavant .mea-carte-titre a:focus-visible::after { outline: 3px solid #FBC87C; outline-offset: -3px; border-radius: 1rem; }

/* Grande carte : image en haut */
.section_miseenavant .mea-carte--grande { flex-direction: column; }
.section_miseenavant .mea-carte--grande .mea-carte-img { aspect-ratio: 16 / 7; }

/* Cartes horizontales : image à gauche (30 %) */
.section_miseenavant .mea-carte--ligne { flex: 1; min-height: 7.5rem; }
.section_miseenavant .mea-carte--ligne .mea-carte-img { width: 30%; flex-shrink: 0; }

/* Bouton « Voir tout » : taille ici, couleurs via les classes du thème (options de la section) */
.section_miseenavant .mea-voirtout {
  display: inline-block;
  border-style: solid;
  padding: .2rem 1.25rem;
  font-size: .95rem;
  font-weight: 400;
  text-decoration: none;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.section_miseenavant .mea-voirtout:focus-visible { outline: 3px solid #FBC87C; outline-offset: 2px; }

@media (max-width: 575.98px) {
  .section_miseenavant .mea-panneau { padding: 1.25rem 1rem; border-radius: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .section_miseenavant .mea-carte, .section_miseenavant .mea-carte-fleche, .section_miseenavant .mea-voirtout { transition: none; }
}

/* --- Pagination générique points + flèches (pshdf_pagination() dans functions.php) --- */
.pshdf-pagination { min-height: 2.5rem; }
.pshdf-pagination-point {
  display: block;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  border: 2px solid;
  transition: opacity .2s ease;
}
.pshdf-pagination-point:not(.actif):hover { opacity: .6; }
.pshdf-pagination-fleche { position: absolute; top: 50%; transform: translateY(-50%); line-height: 0; }
.pshdf-pagination-fleche svg { width: 2.25rem; height: 2.25rem; }
.pshdf-pagination-fleche--suiv { right: 0; }
.pshdf-pagination-fleche--prec { left: 0; }

/* --- Liste des Actualités + filtres (section_actualitesliste.php, et section_actualites.php avec l'option « filtres ») – vert-gris #4a7779 --- */
:is(.section_actualitesliste, .section_actualites) .act-liste { max-width: 1080px; }
/* Digisanté 20/10/2026 : grand écran = même largeur que la page Ressources (encadré Filtrer sur 1/4) */
@media (min-width: 1200px) { .section_actualitesliste .act-liste { max-width: 1320px; } }

/* Encadré filtres */
:is(.section_actualitesliste, .section_actualites) .act-filtres,
:is(.section_actualitesliste, .section_actualites) .act-vide {
  border: 2px solid #4a7779;
  border-radius: 1.5rem;
  padding: 1.5rem 1.5rem 1.75rem;
}
:is(.section_actualitesliste, .section_actualites) h2.act-filtres-titre {
  font-size: 2rem !important;
  font-weight: 500 !important;
  margin-bottom: 1rem;
}
:is(.section_actualitesliste, .section_actualites) .act-filtre { border-bottom: 2px solid #4a7779; }
:is(.section_actualitesliste, .section_actualites) .act-filtre summary {
  list-style: none;
  cursor: pointer;
  padding: .7rem 0;
  font-size: 1.1rem;
  color: #4a7779;
}
:is(.section_actualitesliste, .section_actualites) .act-filtre summary::-webkit-details-marker { display: none; }
:is(.section_actualitesliste, .section_actualites) .act-filtre summary:focus-visible { outline: 2px solid #4a7779; outline-offset: 2px; border-radius: .5rem; }
:is(.section_actualitesliste, .section_actualites) .act-filtre-nb-choisis { font-size: .85rem; font-weight: 400; }
:is(.section_actualitesliste, .section_actualites) .act-filtre-compteur {
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 50%;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1;
  font-size: 1.1rem;
  font-weight: 400;
  flex-shrink: 0;
}
:is(.section_actualitesliste, .section_actualites) .act-filtre-compteur svg { width: .7rem; height: .5rem; margin-top: .1rem; transition: transform .2s ease; }
:is(.section_actualitesliste, .section_actualites) .act-filtre[open] .act-filtre-compteur svg { transform: rotate(180deg); }
:is(.section_actualitesliste, .section_actualites) .act-filtre-liste {
  max-height: 16rem;
  overflow-y: auto;
  margin: 0 0 .75rem;
  padding: .25rem .25rem .25rem .3rem;
}
:is(.section_actualitesliste, .section_actualites) .act-filtre-liste li { display: flex; align-items: flex-start; gap: .5rem; padding: .2rem 0; font-size: .95rem; }
:is(.section_actualitesliste, .section_actualites) .act-filtre-liste li.act-filtre-niveau-1 { padding-left: 1.25rem; }
:is(.section_actualitesliste, .section_actualites) .act-filtre-liste li.act-filtre-niveau-2 { padding-left: 2.5rem; }
:is(.section_actualitesliste, .section_actualites) .act-filtre-liste .form-check-input { margin-top: .2rem; flex-shrink: 0; border-color: #4a7779; }
:is(.section_actualitesliste, .section_actualites) .act-filtre-liste .form-check-input:checked { background-color: #4a7779; border-color: #4a7779; }
:is(.section_actualitesliste, .section_actualites) .act-filtre-liste label { cursor: pointer; }
:is(.section_actualitesliste, .section_actualites) .act-valider {
  padding: .5rem 1rem; /* même bouton que « Valider » des Ressources (.btn-ress) */
  border-radius: 3rem;
  font-weight: 400;
}
:is(.section_actualitesliste, .section_actualites) .act-valider:focus-visible { outline: 3px solid #FBC87C; outline-offset: 2px; }

/* Cartes */
:is(.section_actualitesliste, .section_actualites) .act-carte {
  border: 2px solid #4a7779 !important;
  border-radius: 1.25rem !important;
  transition: border-color .2s ease;
}
:is(.section_actualitesliste, .section_actualites) .act-carte:hover,
:is(.section_actualitesliste, .section_actualites) .act-carte:focus-within { border-color: #FBC87C !important; }
:is(.section_actualitesliste, .section_actualites) .act-carte .card-body { padding: .9rem !important; }
:is(.section_actualitesliste, .section_actualites) .act-date { font-size: .8rem; font-weight: 400; }
:is(.section_actualitesliste, .section_actualites) .act-badge {
  font-size: .7rem;
  font-weight: 400;
  line-height: 1.3;
  padding: .05rem .45rem;
  border-radius: .3rem;
}
:is(.section_actualitesliste, .section_actualites) h3.act-titre {
  font-size: 1.1rem !important;
  font-weight: 500 !important;
  line-height: 1.15;
}
:is(.section_actualitesliste, .section_actualites) .act-titre a:focus-visible::after { outline: 2px solid #4a7779; outline-offset: 4px; border-radius: 1.25rem; }
:is(.section_actualitesliste, .section_actualites) .act-img {
  height: auto;
  aspect-ratio: 16 / 10 !important;
  object-fit: cover;
  border-radius: .75rem !important;
}

/* Chargement sans rechargement */
:is(.section_actualitesliste, .section_actualites) .act-resultats { transition: opacity .2s ease; }
:is(.section_actualitesliste, .section_actualites)[aria-busy="true"] .act-resultats { opacity: .45; pointer-events: none; }

@media (prefers-reduced-motion: reduce) {
  :is(.section_actualitesliste, .section_actualites) .act-filtre-compteur svg, :is(.section_actualitesliste, .section_actualites) .act-carte, :is(.section_actualitesliste, .section_actualites) .act-resultats { transition: none; }
}

/* Badges dans les cartes à coin découpé de section_actualites : ne passent pas sous le bouton flèche */
.section_actualites .act-badges { padding-right: 3rem; }

/* Cartes Actualités adaptatives : chaque colonne est un « container », la carte s'ajuste à SA largeur
   (quel que soit le nombre par ligne choisi dans la section, avec ou sans colonne de filtres) */
.section_actualites #container-actualites [class*="col-"].p-3,
.section_actualitesalaune ul.row > li { container-type: inline-size; }
/* Gouttière 2rem × 2rem à côté des filtres (l'anneau du bouton déborde de ~21px : ne pas descendre en dessous).
   #container-actualites dans le sélecteur : sinon la règle de padding générale (qui contient cet id) l'emporte. */
.section_actualites #container-actualites .act-grille > [class*="col-"].p-3 { padding: 1rem 1rem !important; }
/* Avec filtres : pleine largeur du container Bootstrap (au lieu de 1100px) pour des cartes plus larges */
.section_actualites[data-pshdf-ajax] > .container { max-width: none; }
@media (min-width: 576px) { .section_actualites[data-pshdf-ajax] > .container { max-width: 540px; } }
@media (min-width: 768px) { .section_actualites[data-pshdf-ajax] > .container { max-width: 720px; } }
@media (min-width: 992px) { .section_actualites[data-pshdf-ajax] > .container { max-width: 960px; } }
@media (min-width: 1200px) { .section_actualites[data-pshdf-ajax] > .container { max-width: 1140px; } }
@media (min-width: 1400px) { .section_actualites[data-pshdf-ajax] > .container { max-width: 1320px; } }
.section_actualites .custom-corner-card h3,
.section_actualitesalaune .custom-corner-card h3 {
  font-size: 1.35rem !important; /* repli sans container queries */
  font-size: clamp(1rem, 6cqi, 1.5rem) !important;
  word-break: normal !important;
  overflow-wrap: break-word;
  hyphens: auto;
}
.section_actualites .custom-corner-card,
.section_actualitesalaune .custom-corner-card {
  padding: 1.25rem !important;
  padding: clamp(1rem, 6cqi, 1.5rem) !important;
}
/* Extrait limité à 4 lignes, taille adaptée */
.section_actualites .custom-corner-card .card-text > div:last-child,
.section_actualitesalaune .custom-corner-card .card-text > div:last-child {
  font-size: .95rem;
  font-size: clamp(.85rem, 4cqi, 1rem);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* Date de publication */
.section_actualites .act-date,
.section_actualitesalaune .act-date { font-size: .8rem; font-weight: 400; padding-right: 3rem; }
.section_actualitesalaune .act-badges { padding-right: 3rem; }
.section_actualitesalaune .act-badge { font-size: .7rem; font-weight: 400; line-height: 1.3; padding: .05rem .45rem; border-radius: .3rem; }

/* Page Actualités (grille à côté des filtres, cartes plus étroites) : bouton flèche réduit à 3.5rem
   comme les Ressources à la une → mêmes angles d'anneau (centre à 16px du bord intérieur, rayon moyen ≈ 36px) */
.section_actualites .act-grille .custom-corner-card .card-btn {
  width: 3.5rem;
  height: 3.5rem;
  top: -.75rem;
  right: -.75rem;
}
.section_actualites .act-grille .custom-corner-card .card-btn svg { width: 1.5rem; height: 1.5rem; }
.section_actualites .act-grille .custom-corner-card .card-btn::before {
  -webkit-mask:
    radial-gradient(farthest-side, transparent calc(100% - 2.8px), #000 calc(100% - 2px)),
    conic-gradient(from 152deg, transparent 0 146deg, #000 146deg);
  -webkit-mask-composite: source-in;
          mask:
    radial-gradient(farthest-side, transparent calc(100% - 2.8px), #000 calc(100% - 2px)),
    conic-gradient(from 152deg, transparent 0 146deg, #000 146deg);
          mask-composite: intersect;
}
.section_actualites .act-grille .act-badges,
.section_actualites .act-grille .act-date { padding-right: 2.5rem; }

/* Cartes très étroites (< 240px) : titre seul + image, sans extrait */
@container (max-width: 240px) {
  .section_actualites .custom-corner-card .card-text > div:last-child,
  .section_actualitesalaune .custom-corner-card .card-text > div:last-child { display: none; }
}

/* --- Titre vert-gris : détail d'une actualité (single-post.php) + page liste (classe body ajoutée dans functions.php) --- */
.single-post h1,
.page-actualites h1,
.page-id-480 h1 { color: #4a7779; } /* 480 = page Actualités en pré-prod (l'ID peut changer en prod : la classe .page-actualites prend le relais) */
.fiche-date { font-size: .95rem; font-weight: 400; }
.act-retour {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-weight: 500;
  text-decoration: none;
}
.act-retour svg { width: 1.5rem; height: 1.5rem; transition: transform .2s ease; }
.act-retour:hover svg { transform: translateX(-3px); }

@media (prefers-reduced-motion: reduce) {
  .pshdf-pagination-point, .section_actualitesliste .act-filtre, .section_actualitesliste .act-carte,
  .section_actualitesliste .act-resultats, .act-retour svg { transition: none; }
}

/* --- Ancres internes (#newsletter…) : marge pour ne pas coller au haut de l'écran --- */
.pshdf-ancre { display: block; position: relative; top: -2rem; visibility: hidden; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* --- Titres des cartes limités à 4 lignes avec « … » (hauteur des cartes régulière).
   Le titre complet reste dans le HTML (SEO, lecteurs d'écran). --- */
.section_actualites #container-actualites .custom-corner-card h3,
.section_actualitesalaune .custom-corner-card h3,
.section_actualitesliste h3.act-titre,
.section_actualites h3.act-titre,
.section_ressources h3.res-card-title,
.section_ressourcesalaune h3.res-card-title,
.section_accompagnements h3.acc-card-title,
.section_miseenavant h3.mea-carte-titre {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}



/* --- Contenu de l'éditeur des actualités (articles importés de l'ancien site) – partials/single-fiche.php --- */
.fiche-contenu-texte { font-size: 1.05rem; line-height: 1.65; }
.fiche-contenu-texte h2 { color: #4a7779; font-size: 1.6rem !important; font-weight: 500 !important; margin: 2rem 0 .75rem; }
.fiche-contenu-texte h3 { color: #4a7779; font-size: 1.25rem !important; font-weight: 500 !important; margin: 1.5rem 0 .5rem; }
.fiche-contenu-texte img { max-width: 100%; height: auto; border-radius: 16px; display: block; margin: 1.5rem auto; }
.fiche-contenu-texte figure { margin: 1.5rem 0; }
.fiche-contenu-texte figure img { margin: 0 auto .4rem; }
.fiche-contenu-texte figcaption { font-size: .8rem; text-align: center; color: #4a7779; word-break: break-word; }
.fiche-contenu-texte blockquote {
  border-left: 4px solid #4a7779;
  padding: .5rem 0 .5rem 1.25rem;
  margin: 1.5rem 0;
  font-size: 1.15rem;
}
.fiche-contenu-texte blockquote p:last-child { margin-bottom: 0; }
/* Vidéos intégrées (oEmbed YouTube) : pleine largeur, format 16/9 */
.fiche-contenu-texte iframe { width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; border-radius: 16px; margin: 1.5rem 0; }

/* --- Accordéons (section « Accordéons » du thème parent) – style de la maquette, sur tout le site (Digisanté 20/10/2026) ---
   Lignes fines en pilule, resserrées, contour jaune ; une ligne sur deux en fond blanc → alternance plein / contour
   quand la section a « Couleur de fond du titre » = Jaune.
   nth-of-type : le thème parent insère un <script> après chaque ligne, nth-child compterait aussi ces scripts. */
.accordion-item { margin-top: .4rem !important; margin-bottom: .4rem !important; background: transparent; }
.accordion-header > button {
  padding: .35rem 1rem !important;
  border: 2px solid #f2c986 !important;
  border-radius: 2rem !important;
  font-weight: 600 !important;
  font-size: 1.05rem;
  line-height: 1.3;
  text-align: left;
}
.accordion-item:nth-of-type(even) .accordion-header > button { background-color: #fff !important; }
.accordion-header > button:focus-visible { outline: 3px solid #193837; outline-offset: 2px; }
.accordion-body { padding: .75rem 1rem 1rem; }
/* Encadré « à côté » d'un accordéon (script pshdf-a-cote dans functions.php) – Digisanté 20/10/2026 */
@media (min-width: 992px) {
  .pshdf-cote-a-cote { display: grid; grid-template-columns: 7fr 5fr; column-gap: 2rem; align-items: start; }
  .pshdf-cote-a-cote > .pshdf-cote-bloc { padding-top: .4rem; } /* = marge haute de la 1re ligne d'accordéon : hauts alignés */
}
@media (max-width: 991.98px) { .pshdf-cote-a-cote > .pshdf-cote-bloc { margin-top: 1.5rem; } }
/* Accordéons : contenu déplié en encadré arrondi à contour jaune (au lieu du rectangle du thème parent) */
.accordion-collapse { border: 2px solid #f2c986 !important; border-radius: 1rem !important; margin-top: .35rem; }
/* --- En-tête fixe (sticky) sur ordinateur, comme le site actuel – Digisanté 20/10/2026 ---
   Barre du haut + logo/menu restent visibles au défilement. Tout en haut : aspect inchangé (bande du menu transparente) ;
   dès qu'on défile, le script de functions.php ajoute .pshdf-defile → fond blanc + ombre, pour que le contenu ne passe pas « derrière » le texte du menu.
   top = hauteur de la barre d'administration WordPress (0 pour les visiteurs). */
@media (min-width: 992px) {
  body > header, header:has(> .section-header-main) {
    position: sticky;
    top: var(--wp-admin--admin-bar--height, 0px);
    z-index: 1030;
  }
  header .section-header-main { transition: background-color .2s ease, box-shadow .2s ease; }
  header.pshdf-defile .section-header-main { background-color: #fff !important; box-shadow: 0 4px 12px rgba(25, 56, 55, .12); }
  /* Bande un peu plus fine une fois fixée. Padding (et pas margin) : la marge de .row « traversait » la section (fusion des marges)
     et laissait une bande transparente entre la barre verte et le fond blanc */
  header.pshdf-defile .section-header-main { padding-top: .5rem; padding-bottom: .5rem; }
  header.pshdf-defile .section-header-main .row { margin-top: 0 !important; margin-bottom: 0 !important; }
  /* Ancres (#actualites, #newsletter…) et focus clavier jamais cachés sous l'en-tête (RGAA) */
  html { scroll-padding-top: 170px; }
}

/* ==========================================================================
   Corrections responsive mobile/tablette — Digisanté 26/10/2026 v4 (T. Noel)
   Ajouts CSS uniquement, aucun fichier parent modifié.
   NOTE : dynamic.css se charge APRÈS ce fichier et pose h1/h2/h3 en !important.
   → On utilise « body h1 » etc. pour gagner en spécificité.
   ========================================================================== */

/* --- MOBILE : < 768px --- */
@media (max-width: 767.98px) {

  /* 1. Titres : « body h1 » bat le « h1 » de dynamic.css (spécificité supérieure).
     Tailles proches du desktop mais adaptées mobile. */
  body h1 { font-size: 2.25rem !important; line-height: 1.25 !important; }
  body h2 { font-size: 1.6rem !important; }
  body h3 { font-size: 1.2rem !important; }

  /* 1b. Titre héro accueil UNIQUEMENT : plus petit (~3 lignes).
     .page-home = classe body sur la page d'accueil. */
  .page-home .section_soustitre h1 {
    font-size: 1.25rem !important;
    line-height: 1.25 !important;
    margin-bottom: 0 !important;
  }
  .section_soustitre .py-2 {
    padding-bottom: 0 !important;
  }

  /* 2. Boutons héro (Accompagnements / Ressources / Formations) :
     → empilés, 65% largeur, centrés avec margin auto, espaces réduits. */
  .section_blocs .row > .col-12.col-md-3:not(:has(.card-img)) {
    width: 65% !important;
    flex: 0 0 65% !important;
    max-width: 65% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-top: 0.1rem !important;
    padding-bottom: 0.1rem !important;
  }
  .section_blocs .col-md-3:not(:has(.card-img)) .card {
    padding: 0.4rem 0.25rem !important;
  }
  .section_blocs .col-md-3:not(:has(.card-img)) .card-text h2 {
    font-size: 0.9rem !important;
    margin: 0 !important;
  }
  .section_blocs .col-md-3:not(:has(.card-img)) .p-4 {
    padding: 0.3rem !important;
  }
  /* Réduire l'espace entre les boutons et la section photos en dessous */
  .section_blocs .row.justify-content-center.g-3 {
    row-gap: 0.15rem !important;
  }

  /* 3. « Blocs info » avec image (pictos, logos, icônes) → 2 par ligne */
  .section_blocs .row > [class*="col"]:has(.card-img) {
    width: 50% !important;
    flex: 0 0 50% !important;
    max-width: 50% !important;
    margin-top: 0.25rem !important;
  }

  /* 4. Images picto (icônes) : réduites mais lisibles */
  .section_blocs .card-img .img-fluid.my-3 {
    max-height: 2.5rem !important;
    width: auto !important;
    margin-top: 0.25rem !important;
    margin-bottom: 0.25rem !important;
  }

  /* 4b. Logos partenaires (bg-vertf = « Avec le soutien de ») : plus grands */
  .section_blocs.bg-vertf .card-img .img-fluid.my-3 {
    max-height: 3.5rem !important;
    min-width: 4rem !important;
  }

  /* 4c. Images poster/logos .w-100 dans les blocs */
  .section_blocs .card-img .w-100 {
    max-height: 5rem !important;
    width: auto !important;
    object-fit: contain !important;
    margin: 0.25rem auto !important;
    display: block !important;
  }

  /* 5. Texte dans les blocs info : plus compact */
  .section_blocs .card-text {
    padding: 0.15rem 0.25rem !important;
    line-height: 1.2 !important;
  }
  .section_blocs .card-text h2 { font-size: 0.85rem !important; margin-bottom: 0.1rem !important; }
  .section_blocs .card-text h3 { font-size: 0.8rem !important; margin-bottom: 0.1rem !important; }
  .section_blocs .card-text p,
  .section_blocs .card-text > div { font-size: 0.75rem !important; line-height: 1.2 !important; }

  /* 6. Padding vertical des sections Blocs réduit (bandeaux colorés moins hauts) */
  .section_blocs.py-3 {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
  }

  /* 7. Tableau de stats (98.2%, 105, 245, 365 + Qualiopi) :
     C'est un <table> HTML dans un .section_blocs, pas un slider.
     → On empile les cellules en grille 2 colonnes. */
  .section_blocs table {
    display: flex !important;
    flex-wrap: wrap !important;
    width: 100% !important;
  }
  .section_blocs table tbody {
    display: flex !important;
    flex-wrap: wrap !important;
    width: 100% !important;
  }
  .section_blocs table tr {
    display: flex !important;
    flex-wrap: wrap !important;
    width: 100% !important;
  }
  .section_blocs table td {
    display: block !important;
    width: 50% !important;
    flex: 0 0 50% !important;
    box-sizing: border-box !important;
    padding: 0.5rem !important;
    text-align: center !important;
    vertical-align: top !important;
  }
  .section_blocs table td h2 {
    font-size: 1.3rem !important;
    margin-bottom: 0 !important;
  }
  .section_blocs table td p,
  .section_blocs table td span {
    font-size: 0.65rem !important;
    line-height: 1.15 !important;
  }
  /* Qualiopi : cellule pleine largeur, centrée */
  .section_blocs table td:last-child {
    width: 100% !important;
    flex: 0 0 100% !important;
    text-align: center !important;
  }
  .section_blocs table td:last-child picture,
  .section_blocs table td:last-child img {
    margin: 0 auto !important;
    display: block !important;
    max-width: 10rem !important;
  }
  /* Coins arrondis du bloc stats (card avec table) */
  .section_blocs .card:has(table) {
    border-radius: 1.5rem !important;
    overflow: hidden !important;
  }

  /* 8. Sections Texte : colonne pleine largeur sur mobile */
  .section_texte .row > [class*="col"] {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  /* 9. Newsletter Gravity Form : pleine largeur */
  .section_contact .row > [class*="col"] {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    padding-right: 1rem !important;
  }
  .gform_newsletter .gfield_consent_description {
    text-align: left !important;
  }

  /* 10. Swiper (si présent sur d'autres pages) : pas de débordement */
  .swiper-container {
    overflow: hidden !important;
  }

  /* 11. Panneaux Mise en avant : plus compacts */
  .section_miseenavant .mea-panneau {
    padding: 0.75rem !important;
    border-radius: 1rem;
  }
  body .section_miseenavant h2.mea-titre { font-size: 1rem !important; }
  body .section_miseenavant h3.mea-carte-titre { font-size: 0.9rem !important; }

  /* 12. Témoignages : pastille réduite */
  .swiper-slide:has(.testi)::after {
    width: 2.5rem;
    height: 2.5rem;
    top: -0.5rem;
    right: -0.5rem;
    background-size: 1.25rem;
  }

  /* 13. Espacements entre sections : réduits mais visibles */
  .section_espacement { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; }
  .section_espacement .py-3 { padding-top: 0.15rem !important; padding-bottom: 0.15rem !important; }

  /* 16. Supprime le trait blanc entre espacement coloré et blocs adjacents */
  .section_espacement:not(.bg-transparent) {
    margin-top: -1px !important;
    margin-bottom: -1px !important;
  }

  /* 14. Cartes d'actualités : titre ajusté */
  body .section_actualites .custom-corner-card h3,
  body .section_actualitesalaune .custom-corner-card h3 {
    font-size: 0.95rem !important;
  }

  /* 17. Boutons CTA (S'inscrire, Télécharger…) : police plus lisible */
  body .btn.rounded-btn {
    font-size: 1rem !important;
    padding: 0.6rem 1.2rem !important;
  }

  /* 15. Images de la section Image : pleine largeur */
  .section_image .row > [class*="col"] {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
  }
}

/* --- TABLETTE : 768px – 991px --- */
@media (min-width: 768px) and (max-width: 991.98px) {

  body h1 { font-size: 2.25rem !important; }
  body h2 { font-size: 1.6rem !important; }

  /* Blocs info avec images : 2 par ligne */
  .section_blocs .row > [class*="col"]:has(.card-img) {
    max-width: 50% !important;
    flex: 0 0 50% !important;
    width: 50% !important;
  }

  /* Pictos réduits */
  .section_blocs .card-img .img-fluid.my-3 {
    max-height: 3rem !important;
  }

  body .section_miseenavant h2.mea-titre { font-size: 1.3rem !important; }

  /* Sections Texte étroites : pleine largeur */
  .section_texte .row > [class*="col"] {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
  }

  /* Tableau de stats : pleine largeur */
  .section_blocs table {
    display: flex !important;
    flex-wrap: wrap !important;
    width: 100% !important;
  }
  .section_blocs table tbody,
  .section_blocs table tr {
    display: flex !important;
    flex-wrap: wrap !important;
    width: 100% !important;
  }
  .section_blocs table td {
    display: block !important;
    flex: 1 1 auto !important;
    box-sizing: border-box !important;
  }

  /* Swiper */
  .swiper-container {
    overflow: hidden !important;
  }
}
/* ==========================================================================
   Messages d'erreur Gravity Forms (newsletter et autres formulaires), tous ecrans
   ========================================================================== */
body .gform_wrapper .gform_validation_errors > h2,
body .gform_wrapper h2.gform_submission_error {
  font-size: 0.95rem !important;
  line-height: 1.4 !important;
  font-weight: 600 !important;
  margin: 0 !important;
}
body .gform_wrapper .gform_validation_errors {
  padding: 0.75rem 1rem !important;
}
body .gform_wrapper .gfield_validation_message {
  font-size: 0.85rem !important;
}

/* ==========================================================================
   Boutons de l'accueil (Accompagnements, Ressources, Formations, Parcours) :
   le titre « Accompagnements » ne doit plus se couper sur les ecrans moyens
   ========================================================================== */
@media (min-width: 768px) and (max-width: 1399px) {
  body .section_blocs .col-md-3 .card-text h3 {
    font-size: clamp(1rem, 1.5vw, 1.5rem) !important;
    overflow-wrap: normal !important;
    word-break: keep-all !important;
    hyphens: none !important;
  }
}

/* --- Catalogue et « Formations a la une » : version jaune (page Formations, classe pshdf-cat-jaune) --- */
.pshdf-cat-jaune .res-filtres,
.pshdf-cat-jaune .res-vide { border-color: #FBC87C; }
.pshdf-cat-jaune .res-filtre { border-bottom-color: #FBC87C; }
.pshdf-cat-jaune .res-filtre-compteur { background-color: #FBC87C !important; color: #193837 !important; }
.pshdf-cat-jaune .res-card { border-color: #FBC87C !important; }
.pshdf-cat-jaune .res-card:hover,
.pshdf-cat-jaune .res-card:focus-within { border-color: #193837 !important; }
.pshdf-cat-jaune .pshdf-cat-badge { background-color: #FBC87C; color: #193837; font-weight: 600; }
.pshdf-cat-jaune .res-pagination-point { border-color: #FBC87C; }
.pshdf-cat-jaune .res-pagination-point.actif,
.pshdf-cat-jaune .res-pagination-point:hover { background-color: #FBC87C; }
.pshdf-cat-jaune .res-filtres .btn-form { font-size: 1.1rem; line-height: 1.25; padding: .6rem 1.25rem !important; }

/* « Formations a la une » : cartes avec bouton fleche en haut a droite (comme Ressources a la une), en jaune */
.pshdf-une-jaune .res-card .card-btn { background-color: #FBC87C !important; }
.pshdf-une-jaune .res-card .card-btn::before { border-color: #FBC87C; }
.pshdf-une-jaune .res-card:hover .card-btn,
.pshdf-une-jaune .res-card:focus-within .card-btn { background-color: #193837 !important; }
.pshdf-une-jaune .res-card:hover .card-btn::before,
.pshdf-une-jaune .res-card:focus-within .card-btn::before { border-color: #193837; }
.pshdf-une-jaune .res-card:hover .card-btn svg,
.pshdf-une-jaune .res-card:focus-within .card-btn svg { fill: #fff !important; }
.pshdf-une-jaune h3.res-card-title { font-size: 1.15rem !important; }
.pshdf-cat-jaune .res-cta { border-color: #FBC87C; }

/* ==========================================================================
   06/11/2026 : retouches accueil / recherche
   ========================================================================== */

/* 1. Barre de recherche : plus de rectangle au clic */
.search_box:focus,
.search_box:focus-visible,
.search_box :focus,
.search_box :focus-visible,
#search_form input:focus,
#search_form input:focus-visible,
#search_form button:focus,
#search_form button:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/* 2. Accueil : espace entre les 4 boutons et la suite divise par deux */
.page-home .section_blocs:has(.row > .col-md-3:not(:has(.card-img))) {
  padding-bottom: 0.25rem !important;
}
.page-home .section_blocs:has(.row > .col-md-3:not(:has(.card-img))) + .section_espacement,
.page-home .section_blocs:has(.row > .col-md-3:not(:has(.card-img))) + .section_espacement + .section_espacement {
  font-size: 0.5rem !important;
  line-height: 1.5 !important;
  padding-top: 0.125rem !important;
}
@media (min-width: 768px) {
  .page-home .section_blocs:has(.row > .col-md-3:not(:has(.card-img))) + .section_espacement.pt-3,
  .page-home .section_blocs:has(.row > .col-md-3:not(:has(.card-img))) + .section_espacement + .section_espacement.pt-3 { padding-top: 0.5rem !important; }
  .page-home .section_blocs:has(.row > .col-md-3:not(:has(.card-img))) + .section_espacement.pt-4,
  .page-home .section_blocs:has(.row > .col-md-3:not(:has(.card-img))) + .section_espacement + .section_espacement.pt-4 { padding-top: 0.75rem !important; }
  .page-home .section_blocs:has(.row > .col-md-3:not(:has(.card-img))) + .section_espacement.pt-5,
  .page-home .section_blocs:has(.row > .col-md-3:not(:has(.card-img))) + .section_espacement + .section_espacement.pt-5 { padding-top: 1.5rem !important; }
}

/* 3. « Avec le soutien de » : les logos restent toujours sur la meme ligne (telephone et tablette) */
@media (max-width: 991.98px) {
  body .section_blocs.bg-vertf .row { flex-wrap: wrap !important; align-items: center !important; }
  body .section_blocs.bg-vertf .row > [class*="col"]:not(:has(.card-img)) {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  body .section_blocs.bg-vertf .row > [class*="col"]:has(.card-img):not(:has(.card-text)) {
    flex: 1 1 0 !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    padding-left: 0.25rem !important;
    padding-right: 0.25rem !important;
  }
  body .section_blocs.bg-vertf .card:not(:has(.card-text)) .card-img .img-fluid,
  body .section_blocs.bg-vertf .card:not(:has(.card-text)) .card-img img {
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: 3rem !important;
    object-fit: contain !important;
    margin-top: 0.25rem !important;
    margin-bottom: 0.25rem !important;
  }
}
/* 06/11/2026 (suite) : le theme parent force un contour noir sur .search_box (:focus, :focus-within, :focus-visible) ; on le retire */
body .search_box,
body .search_box:focus,
body .search_box:focus-within,
body .search_box:focus-visible,
body .search_box *:focus,
body .search_box *:focus-within,
body .search_box *:focus-visible,
body #search_form:focus-within {
  outline: none !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
}

/* ==========================================================================
   09/11/2026 : blocs avec pictos (Accompagnements, Ressources, Actualites, Parcours...) :
   pictos plus petits, titres/sous-titres plus petits, tout aligne sur la meme ligne.
   Ne touche pas aux logos « Avec le soutien de » (bg-vertf), ni aux photos, ni au tableau de chiffres.
   ========================================================================== */
body .section_blocs .card:has(.card-img .img-fluid.my-3):has(.card-text) .card-img {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 3.5rem !important;
}
body .section_blocs .card:has(.card-img .img-fluid.my-3):has(.card-text) .card-img .img-fluid {
  height: 2.5rem !important;
  max-height: 2.5rem !important;
  width: auto !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  object-fit: contain !important;
}
/* le texte part toujours du haut de la carte (plus de centrage vertical qui decale les titres) */
body .section_blocs .card:has(.card-img .img-fluid.my-3):has(.card-text) .d-flex.h-100 > div {
  margin-top: 0 !important;
  margin-bottom: auto !important;
}
body .section_blocs .card:has(.card-img .img-fluid.my-3):has(.card-text) .card-text h2,
body .section_blocs .card:has(.card-img .img-fluid.my-3):has(.card-text) .card-text h3 {
  font-size: 1rem !important;
  line-height: 1.25 !important;
  margin: 0 0 0.25rem !important;
}
body .section_blocs .card:has(.card-img .img-fluid.my-3):has(.card-text) .card-text h4 {
  font-size: 0.85rem !important;
  line-height: 1.3 !important;
  margin: 0 0 0.25rem !important;
}
body .section_blocs .card:has(.card-img .img-fluid.my-3):has(.card-text) .card-text p,
body .section_blocs .card:has(.card-img .img-fluid.my-3):has(.card-text) .card-text > div {
  font-size: 0.85rem !important;
  line-height: 1.3 !important;
}
@media (max-width: 767.98px) {
  body .section_blocs .card:has(.card-img .img-fluid.my-3):has(.card-text) .card-img { height: 2.75rem !important; }
  body .section_blocs .card:has(.card-img .img-fluid.my-3):has(.card-text) .card-img .img-fluid { height: 2rem !important; max-height: 2rem !important; }
  body .section_blocs .card:has(.card-img .img-fluid.my-3):has(.card-text) .card-text h2,
  body .section_blocs .card:has(.card-img .img-fluid.my-3):has(.card-text) .card-text h3 { font-size: 0.9rem !important; }
  body .section_blocs .card:has(.card-img .img-fluid.my-3):has(.card-text) .card-text h4,
  body .section_blocs .card:has(.card-img .img-fluid.my-3):has(.card-text) .card-text p,
  body .section_blocs .card:has(.card-img .img-fluid.my-3):has(.card-text) .card-text > div { font-size: 0.8rem !important; }
}
/* 09/11/2026 : bloc de texte transparent aligne a gauche (ex. « Une question ? Contactez-nous » en bas de Parcours) :
   le texte s'aligne sur le reste de la page (on retire le retrait interne de la carte). */
.section_blocs .card:is(.text-left, .text-start).bg-transparent .card-text {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.section_blocs .card:is(.text-left, .text-start).bg-transparent .card-footer {
  padding-left: 0 !important;
}
/* 09/11/2026 : dans ce bloc (sans fond, aligne a gauche, avec bouton), le titre n'est plus souligne ni cliquable : seul le bouton mene au lien. */
.section_blocs .card:is(.text-left, .text-start).bg-transparent .card-text a {
  text-decoration: none !important;
  pointer-events: none !important;
  cursor: default !important;
  color: inherit !important;
}
/* 09/11/2026 : page Parcours, version telephone : la grande photo de l'introduction est moins haute. */
@media (max-width: 767.98px) {
  body[class*="page-slug-parcours"] .section_image img {
    width: 100% !important;
    height: 13rem !important;
    max-height: 13rem !important;
    object-fit: cover !important;
    object-position: center 35% !important;
  }
}
/* Parcours, telephone : toutes les grandes photos de la page (tous types de blocs) limitees en hauteur */
@media (max-width: 767.98px) {
  body[class*="page-slug-parcours"] [class*="section_"] img.w-100,
  body[class*="page-slug-parcours"] [class*="section_"] img.img-fluid.w-100,
  body[class*="page-slug-parcours"] .section_image img,
  body[class*="page-slug-parcours"] .section_texteimage img:not(.my-3) {
    width: 100% !important; height: 13rem !important; max-height: 13rem !important;
    object-fit: cover !important; object-position: center 35% !important;
  }
}