/*!
 * Fondation Solidarités Crédit Agricole Centre-Est — Alone Child
 * main.css — Généré automatiquement depuis css/modules/*.css
 * NE PAS ÉDITER directement. Modifier le module concerné puis visiter WP Admin.
 * hash: c50b9460673ffb46719490256902f6b2
 * ============================================================ */

/* ============================================================
 * 00. VARIABLES — fallback si critical.css absent
 *     (dupliquées de critical.css :root pour autonomie)
 * ============================================================ */
:root {
  --color-primary: #008b92;
  --color-primary-hover: #006b71;
  --color-primary-dark: #00664b;
  --color-focus: #005a30;
  --color-text-dark: #232953;
  --color-text: #333;
  --color-text-muted: #595959;
  --color-border: #caced1;
  --color-border-light: #e0e5e5;
  --color-bg-light: #f7f9f9;
  --gradient-primary: linear-gradient(135deg, #008b92 0%, #00664b 100%);
  --gradient-search: linear-gradient(135deg, #006b71 0%, #00664b 100%);
  --radius-button: 8px;
  --radius-card: 12px;
  --shadow-input: inset 0 1px 2px rgba(0,0,0,.05);
  --tap-target-aaa: 44px; /* WCAG 2.5.5 AAA — référence doc, non utilisé en production */
  --tap-target: 24px;     /* WCAG 2.5.8 AA — minimum touch target desktop (min-*, pas valeur fixe) */
  --ff-body: "Gotham Narrow Medium", sans-serif;
  --ff-light: "Gotham Narrow Light", sans-serif;
}

/* ============================================================
 * 01. BASE — uniquement règles issues de custom.css + RGAA 10.7
 *     Toute règle absente de custom.css ET non RGAA/WCAG a été supprimée.
 * ============================================================ */

/* RGAA 10.7 — focus visible sur <a> (custom.css couvre button/wpcf7 uniquement) */
a:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }

/* custom.css L1-3 */
body { font-family: var(--ff-body); }

/* custom.css L5-7 */
h2 { margin-top: 30px; }

/* custom.css L1046-1048 */
h3 { color: var(--color-text-dark); }
/* custom.css L1050-1052 */
h3:hover { color: #005C86; }

/* custom.css L1071-1075 */
p {
  font-size: 20px;
  font-family: var(--ff-light);
  line-height: 31px;
  white-space: break-spaces;
}

/* custom.css L13-15 */
p + h3 { margin: 40px 0 24px; }

/* custom.css L17-19 */
p + h3:hover, ul + h3:hover { color: var(--color-text-dark); }

/* custom.css L1353-1355 — CORRECTION : était 5px, custom.css = 15px */
li { padding-bottom: 5px; }
/* custom.css L1357-1359 */
li.menu-item { padding-bottom: 0; }

/* custom.css L1348-1351 — sans !important (absent de custom.css) */
ul.wp-block-list {
  font-family: var(--ff-light);
  font-size: 20px;
}

/* custom.css L989 — placeholder global */
::placeholder { color: var(--color-text-muted) !important; opacity: 1; }

/* custom.css L1030-1032 */
html { height: 100%; }
/* custom.css L1026-1028 */
body { margin: 0; }
/* custom.css L966-970 */
#page.site { display: flex; flex-direction: column; min-height: 100vh; }
/* custom.css L972-974 */
#content.site-content { flex: 1; }

/* === Scope archive projet : entry-title est H2 (pas H3) — restitue couleur === */
body.tax-project_category .blog-posts-list .entry-title,
body.post-type-archive-project .blog-posts-list .entry-title {
  color: var(--color-text-dark);
}
body.tax-project_category .blog-posts-list .entry-title a,
body.post-type-archive-project .blog-posts-list .entry-title a {
  color: #005C86;
}
body.tax-project_category .blog-posts-list .entry-title a:hover,
body.post-type-archive-project .blog-posts-list .entry-title a:hover {
  color: #0073a8;
}

#page > .elementor-hf-main .elementor-section .fondation-page-intro p {
  font-family: var(--ff-medium);
  font-size: 22px;
  font-weight: 600;
  line-height: 31px;
  color: var(--color-text-dark);
}

/* ============================================================
 * 02. RGAA 10.6 — Liens distinguables zones contenu
 * ============================================================ */
.entry-content a:not(.btn):not(.button):not(.btn-loadmore):not(.elementor-button):not(.toggle-icon):not(.facebook):not(.twitter):not(.linkedin):not(.pinterest):not(.google):not(.mail):not([class*="elementor-"]):not(.entry-title > a),
.page-content a:not(.btn):not(.button):not(.btn-loadmore):not(.elementor-button):not(.toggle-icon):not([class*="elementor-"]):not(.entry-title > a),
.comment-content a {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.entry-content a:hover,
.page-content a:hover,
.comment-content a:hover { text-decoration-thickness: 2px; }

/* ============================================================
 * 03. BREADCRUMB (RGAA 12.8)
 * ============================================================ */

/* Reset wrapper legacy parent (.page-titlebar .breadcrumbs absolute + jaune fluo)
   Le child injecte <div class="breadcrumbs"> autour de <nav class="breadcrumb-nav">
   pour conserver compat templates parent. Neutralise positionnement et fond. */
/* .page-titlebar .breadcrumbs {
  position: static;
  transform: none;
  background: transparent;
  color: inherit;
  padding: 0;
  text-transform: none;
} */

.breadcrumb-nav { margin: 8px 0 16px; font-size: .9em; }
.breadcrumb-nav .breadcrumb {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 6px;
}
.breadcrumb-nav .breadcrumb-item { display: inline; }
.breadcrumb-nav .breadcrumb-sep { color: var(--color-text-muted); margin: 0 4px; }
.breadcrumb-nav .breadcrumb-item.current span[aria-current] {
  font-weight: 600; color: #1a1a1a;
}

/* ============================================================
 * Mode "as_heading" — breadcrumb rendu inline DANS <h1 class="page-title page-title-breadcrumb">
 *
 * IMPORTANT : ces règles s'appliquent UNIQUEMENT aux H1 d'archives
 * (rendus via alone-child/inc/breadcrumb.php en mode as_heading).
 * Les pages SIMPLES (alone-child/template-parts/page-titlebar/page-titlebar-page.php)
 * utilisent <h1 class="page-title"> sans la classe `page-title-breadcrumb`
 * pour hériter du style block standard et conserver le rendu cible #002866 / 32px
 * (cf. bloc "Pages simples" plus bas dans ce fichier).
 *
 * Reproduit pattern Yoast prod : <h1>Projets | Isère</h1>
 * HTML5 : <h1> accepte phrasing content uniquement (<a>, <span>, pas <nav>/<ol>)
 * Activé via alone_child_breadcrumb([ 'as_heading' => true ])
 * ============================================================ */
.page-title.page-title-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  gap: 0;
}
.page-title.page-title-breadcrumb a {
  color: var(--color-primary);
  text-decoration: none;
  font-weight: inherit;
}
.page-title.page-title-breadcrumb a:hover,
.page-title.page-title-breadcrumb a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.page-title.page-title-breadcrumb .breadcrumb-sep {
  font-weight: 400;
  white-space: pre;
  color: inherit;
}
.page-title.page-title-breadcrumb .breadcrumb_last {
  color: var(--color-primary);
  font-weight: 600;
}

/* === Scope archive projet : centrage + focus visible RGAA 10.7 === */
body.tax-project_category .page-title.page-title-breadcrumb,
body.post-type-archive-project .page-title.page-title-breadcrumb {
  text-align: center;
  color: var(--color-primary);
  text-transform: none;
}
body.tax-project_category .page-title.page-title-breadcrumb a:hover,
body.tax-project_category .page-title.page-title-breadcrumb a:focus-visible,
body.post-type-archive-project .page-title.page-title-breadcrumb a:hover,
body.post-type-archive-project .page-title.page-title-breadcrumb a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* ============================================================
 * Pages simples — H1 sans classe `page-title-breadcrumb`
 * Override parent alone-main.css (.page-titlebar .page-title 30px/uppercase/#002866).
 * Cible : 32px / 600 / initial / #002866 / block / margin 0
 * Spécificité 0,3,0 (:not adds 0,1,0) > parent 0,2,0 → override fiable
 * indépendamment de l'ordre d'enqueue.
 * Sélecteur :not() évite collision avec mode as_heading des archives.
 * ============================================================ */
.page-titlebar .page-title:not(.page-title-breadcrumb) {
  display: block;
  font-size: 32px;
  font-weight: 600;
  line-height: 1.25;
  text-transform: initial;
  color: var(--color-primary);
  margin: 0;
}

/* ============================================================
 * Page titlebar wrapper — override parent alone-main.css:739-743
 * (background:#f0f0f0; padding:75px 0) qui prévaut sur critical.css
 * (cf. cascade : critical inliné AVANT parent → source order parent gagne).
 * Module chargé APRÈS parent → notre règle gagne (specificity 0,1,0 = parent,
 * source order décide).
 *
 * Padding aligné sur PROD (mesuré 200px 0 30px) :
 *   - 200px top : passe SOUS le header fixed (height ~115px + top 20px).
 *     75px parent insuffisant → H1 masqué par le header.
 *   - 30px bottom : respiration avant contenu page.
 * ============================================================ */
.page-titlebar {
  background: #fff;
  padding: 200px 0 30px;
}

/* ============================================================
 * 04. DOC-META (signalement format/poids fichiers — T4)
 * ============================================================ */
.doc-meta {
  position: absolute !important; width: 1px !important; height: 1px !important; padding: 0; margin: -1px;
  overflow: hidden !important; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ============================================================
 * 05. SEARCH PAGES (résultats)
 * ============================================================ */
/* custom.css L311-313, L322-325 */
.error-page-template .search-form .search-submit { border-radius: 0 12px 12px 0; width: 150px; }
/* custom.css L319-321 */
.error-page-template .search-form .search-field { border-radius: 12px; }
/* custom.css L334-336 */
.extras-navigation .search-form .search-submit { border-radius: 0 12px 12px 0; }
/* custom.css L338-342 */
.extras-navigation .search-form .search-field { width: 100%; margin-bottom: 0; border-radius: 12px 0 0 12px; }
/* custom.css L1093-1097 */
input.search-submit { font-size: 16px; font-family: var(--ff-light); border-radius: 0 20px 20px 0; }
/* custom.css L1099-1102 */
input.search-field { font-size: 16px; font-family: var(--ff-light); }

/* ============================================================
 * 06. BUTTONS GÉNÉRIQUES + ELEMENTOR
 * ============================================================ */
/* custom.css L21-23 */
.btn-loadmore { border-radius: 20px; }
/* custom.css L25-28 */
.posts-loadmore .btn-loadmore { font-size: 15px; border-radius: 8px; }

/* custom.css L979 */
.elementor-button .elementor-button-text { color: #fff !important; }
/* custom.css L980 — sans les sélecteurs [style*=] et .elementor-widget-button absents de custom.css */
.elementor-button { background-color: var(--color-primary-hover) !important; }
/* custom.css L981 */
.elementor-button:hover { background-color: var(--color-focus) !important; }

/* custom.css L984-986 — RGAA 10.7 focus visible boutons */
.elementor-button:focus-visible,
.wpcf7-submit:focus-visible,
button:focus-visible {
  outline: 3px solid var(--color-focus) !important;
  outline-offset: 2px !important;
}

/* ============================================================
 * 07. MODAL — Activity Report
 * ============================================================ */
#reportDownloadBtn { cursor: pointer !important; }

.report-modal-overlay {
  position: fixed; inset: 0;
  width: 100vw; height: 100vh;
  background-color: rgba(255,255,255,.8);
  z-index: 10000;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden;
  transition: opacity .4s cubic-bezier(.25,.8,.25,1), visibility .4s;
}
.report-modal-overlay.is-visible { opacity: 1; visibility: visible; }
.report-modal-content {
  font-family: var(--ff-body);
  background: #fff;
  padding: 30px 40px;
  border-radius: var(--radius-card);
  box-shadow: 0 10px 30px rgba(0,0,0,.2);
  width: 90%; max-width: 500px;
  text-align: center;
  position: relative;
  transform: scale(.9);
  transition: transform .4s cubic-bezier(.25,.8,.25,1);
}
.report-modal-overlay.is-visible .report-modal-content { transform: scale(1); }
.report-modal-title {
  font-family: var(--ff-body), 'Poppins', sans-serif;
  color: var(--color-primary);
  font-size: 28px; font-weight: 600;
  margin: 0 0 8px;
}
.report-modal-subtitle {
  color: var(--color-text-dark);
  font-size: 18px;
  margin: 0 0 30px;
}
.report-year-buttons {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 15px;
}
.report-year-button {
  display: block;
  text-decoration: none;
  font-family: var(--ff-body), 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 18px;
  background: var(--gradient-search); /* #006b71→#00664b : 4.6:1 WCAG AA — DIVERGENCE custom.css L156 = #008b92 solide (4.07:1) */
  color: #fff !important;
  padding: 14px 20px;
  border-radius: var(--radius-button);
  border: none;
  cursor: pointer;
  transition: transform .2s ease, filter .2s ease;
}
.report-year-button:hover,
.report-year-button:focus-visible {
  transform: translateY(-3px);
  filter: brightness(1.15);
  text-decoration: none;
  color: #fff !important;
}
.report-modal-close {
  position: absolute; top: 10px; right: 15px;
  background: transparent; border: none;
  font-size: 30px; line-height: 1;
  color: var(--color-text-muted);
  cursor: pointer;
  padding: 5px;
  min-width: var(--tap-target);
  min-height: var(--tap-target);
  display: flex; align-items: center; justify-content: center;
  transition: color .2s ease;
}
.report-modal-close:hover { color: var(--color-text-dark); }

/* ============================================================
 * 08. PROJECT FILTER TABS + CHIPS
 * ============================================================ */
.project-filter-tabs-container {
  font-family: var(--ff-body), 'Poppins', sans-serif;
  background: var(--color-bg-light);
  padding: 40px 20px;
  margin: 40px 0;
  border-radius: var(--radius-card);
  border: 1px solid var(--color-border-light);
  box-shadow: 0 4px 15px rgba(0,0,0,.05);
}
.filter-tabs {
  display: flex; justify-content: center;
  margin-bottom: 30px;
  border-bottom: 2px solid var(--color-border-light);
}
.tab-button {
  font-family: var(--ff-body), 'Poppins', sans-serif;
  font-size: 22px;
  font-weight: 600;
  color: var(--color-text-muted);
  background: none;
  border: none;
  padding: 10px 20px;
  min-height: var(--tap-target);
  cursor: pointer;
  position: relative;
  top: 2px;
  border-bottom: 3px solid transparent;
  transition: all .3s ease;
}
.tab-button:hover { color: var(--color-primary-hover); }
.tab-button.active {
  color: var(--color-primary-hover);
  border-bottom-color: var(--color-primary-hover);
}
.filter-tab-content { display: none; animation: fadeIn .5s; }
.filter-tab-content.active { display: block; }
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

.project-filter-links {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; justify-content: center; gap: 15px;
}
.project-filter-links li {
  padding-bottom: 5px;
}

.project-filter-tabs-container .project-filter-links li .filter-button {
  line-height: var(--tap-target);
}

.filter-button {
  display: block;
  text-decoration: none !important;
  font-weight: 500;
  font-size: 18px;
  background-color: #fff;
  color: var(--color-primary-hover) !important;
  padding: 12px 24px;
  min-height: var(--tap-target);
  border-radius: var(--radius-button);
  border: 2px solid var(--color-primary-hover);
  cursor: pointer;
  transition: all .3s cubic-bezier(.25,.8,.25,1);
  box-shadow: 0 2px 4px rgba(0,0,0,.05);
}
.filter-button:hover,
.filter-button:focus-visible {
  color: #fff !important;
  background: var(--gradient-primary);
  border-color: var(--color-primary-dark);
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 8px 20px rgba(0,139,146,.25);
  text-decoration: none;
}
.filter-button:active {
  transform: translateY(-1px) scale(1);
  box-shadow: 0 4px 10px rgba(0,139,146,.2);
}

/* === Compact filter (chips) === */
.project-filter-tabs-container.project-filter--compact {
  font-family: var(--ff-body), 'Poppins', sans-serif;
  background: var(--color-bg-light);
  padding: 20px 30px 0;
  margin: 28px 0;
  border-radius: var(--radius-card);
  border: 1px solid var(--color-border-light);
  box-shadow: 0 4px 12px rgba(0,0,0,.05);
}
.project-filter-tabs-container .filter-header {
  display: flex; align-items: center; justify-content: space-between;
  text-align: center;
  margin-bottom: 14px;
  cursor: pointer;
  user-select: none;
}
.project-filter-tabs-container .filter-header::after {
  content: "";
  width: 10px; height: 10px;
  border-right: 2px solid var(--color-primary);
  border-bottom: 2px solid var(--color-primary);
  transform: rotate(45deg);
  transition: transform .2s ease;
  margin-bottom: 9px;
}
.project-filter-tabs-container.is-open .filter-header::after,
.project-filter-tabs-container[aria-expanded="true"] .filter-header::after {
  transform: rotate(-135deg);
}
.project-filter-tabs-container:not(.is-open) .filter-subtitle,
.project-filter-tabs-container:not(.is-open) .filters-wrap,
.project-filter-tabs-container:not(.is-open) .filter-actions,
.project-filter-tabs-container:not(.is-open) #project-filter-panel,
.project-filter-tabs-container[aria-expanded="false"] .filter-subtitle,
.project-filter-tabs-container[aria-expanded="false"] .filters-wrap,
.project-filter-tabs-container[aria-expanded="false"] .filter-actions { display: none; }

.project-filter-tabs-container .filter-title {
  margin: 0 0 6px;
  font-size: 22px;
  color: var(--color-primary);
  font-weight: 600;
}
.project-filter-tabs-container .filter-subtitle {
  margin: 0; font-size: 15px;
  color: var(--color-text-muted);
  line-height: 1.3;
}
.project-filter-tabs-container .filters-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.project-filter-tabs-container .filter-group {
  background: #fff;
  border: 1px solid #e8eeee;
  border-radius: 10px;
  padding: 12px;
}
.project-filter-tabs-container .group-title {
  font-size: 18px; font-weight: 600;
  color: var(--color-primary);
  margin-bottom: 8px;
}
.project-filter-tabs-container .chips-list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 10px;
}
.project-filter-tabs-container .chip {
  appearance: none;
  border: 2px solid var(--color-primary-hover);
  background: #fff;
  color: var(--color-primary-hover);
  padding: 11px 16px;
  min-height: var(--tap-target);
  line-height: var(--tap-target);
  min-width: calc(var(--tap-target)*2);
  border-radius: 999px;
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  transition: all .25s ease;
}
.project-filter-tabs-container .chip:hover,
.project-filter-tabs-container .chip:focus-visible {
  color: #fff;
  background: var(--gradient-search);
  border-color: var(--color-primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,139,146,.2);
}
.project-filter-tabs-container .chip:focus-visible {
  outline: 3px solid var(--color-focus) !important;
  outline-offset: 3px !important;
}
.project-filter-tabs-container .chip[aria-pressed="true"] {
  color: #fff;
  background: var(--gradient-search);
  border-color: var(--color-primary-dark);
  box-shadow: 0 6px 16px rgba(0,139,146,.2);
}
.project-filter-tabs-container.project-filter--compact .chips-list .chip {
  font-size: 18px;
  padding: 7px 12px;
}

.project-filter-tabs-container .filter-actions {
  display: flex; gap: 10px; justify-content: center;
  margin: 14px 0 15px;
}
.project-filter-tabs-container .filter-cta {
  font-family: var(--ff-body);
  font-size: 18px; font-weight: 600;
  color: #fff;
  background: var(--gradient-primary);
  border: none;
  border-radius: var(--radius-button);
  padding: 10px 22px;
  cursor: pointer;
  transition: filter .25s ease, transform .15s ease;
  box-shadow: 0 4px 12px rgba(0,139,146,.25);
}
.project-filter-tabs-container .filter-cta:hover { filter: brightness(1.12); transform: translateY(-1px); }
.project-filter-tabs-container .filter-cta:focus-visible {
  filter: brightness(1.12);
  outline: 3px solid var(--color-focus) !important;
  outline-offset: 3px !important;
}
.project-filter-tabs-container .filter-cta[disabled],
.project-filter-tabs-container .filter-cta[aria-disabled="true"] {
  opacity: .55; cursor: not-allowed;
  filter: none; transform: none; box-shadow: none;
}
.project-filter-tabs-container .filter-reset {
  font-size: 17px; font-weight: 600;
  color: var(--color-primary-hover);
  background: transparent;
  border: 0;
  padding: 10px 12px;
  min-height: var(--tap-target);
  line-height: var(--tap-target);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.project-filter-tabs-container .filter-reset:hover { color: var(--color-primary-dark); }
.project-filter-tabs-container .filter-reset:focus-visible {
  color: var(--color-primary-dark);
  outline: 3px solid var(--color-focus) !important;
  outline-offset: 2px !important;
}
.project-filter-no-top-margin { margin: 0 0 40px; }

/* ============================================================
 * Scope archive projet : filtre actif + mode combiné (chips × + reset)
 * ============================================================ */

/* Filtre actif (aria-current="page") — désactivé visuellement et fonctionnellement */
body.tax-project_category .filter-button.is-active,
body.tax-project_category .filter-button[aria-current="page"],
body.post-type-archive-project .filter-button.is-active,
body.post-type-archive-project .filter-button[aria-current="page"] {
  background: var(--gradient-primary);
  color: #fff !important;
  border-color: var(--color-primary-dark);
  cursor: default;
  pointer-events: none;
  box-shadow: 0 4px 10px rgba(0,139,146,.2);
  transform: none;
}

/* Mode combiné : chips actifs + reset */
body.tax-project_category .project-filter--combined {
  padding: 24px 30px;
  text-align: center;
}
body.tax-project_category .active-filters-list {
  list-style: none;
  padding: 0;
  margin: 0 0 16px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}
body.tax-project_category .active-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 2px solid var(--color-primary-hover);
  border-radius: 999px;
  padding: 6px 6px 6px 16px;
  font-size: 16px;
  font-weight: 500;
  color: var(--color-primary-hover);
}
body.tax-project_category .active-filter-chip .chip-label {
  line-height: 1;
}
body.tax-project_category .active-filter-chip .chip-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  min-width: 32px;
  border-radius: 50%;
  background: var(--color-primary-hover);
  color: #fff;
  text-decoration: none;
  font-size: 20px;
  line-height: 1;
  transition: background .2s ease, transform .15s ease;
}
body.tax-project_category .active-filter-chip .chip-remove:hover,
body.tax-project_category .active-filter-chip .chip-remove:focus-visible {
  background: var(--color-primary-dark);
  transform: scale(1.1);
  text-decoration: none;
  color: #fff;
}
body.tax-project_category .active-filter-chip .chip-remove:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}
body.tax-project_category .filter-reset-all {
  display: inline-block;
  font-size: 17px;
  font-weight: 600;
  color: var(--color-primary-hover);
  text-decoration: underline;
  text-underline-offset: 3px;
  padding: 10px 12px;
  min-height: var(--tap-target);
  line-height: var(--tap-target);
}
body.tax-project_category .filter-reset-all:hover {
  color: var(--color-primary-dark);
}
body.tax-project_category .filter-reset-all:focus-visible {
  color: var(--color-primary-dark);
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

/* ============================================================
 * 09. CONTACT FORM 7 (CF7) — formulaires accessibles
 *     Hauteurs réduites : input ≈44px, textarea 96px, label compact
 * ============================================================ */
.wpcf7-form {
  font-family: var(--ff-body);
  color: var(--color-text);
  background: #fcfdfd;
  padding: 20px 24px; /* DIVERGENCE custom.css L354 = 30px 40px */
  border-radius: var(--radius-card);
  border: 1px solid var(--color-border-light);
  box-shadow: 0 5px 25px rgba(0,0,0,.07);
  margin-top: 20px;
  line-height: 1.3; /* DIVERGENCE custom.css = absent */
}
/* DIVERGENCE custom.css : 01-base.css impose `p { font-size: 20px }` global → cascaderait
 * dans .wpcf7-form (RGPD, hints, privacy) si non override. On ramène à 16px pour aligner
 * avec inputs/labels (cohérence visuelle + densité form). white-space: normal annule
 * `break-spaces` hérité de 01-base.css qui désactive le wrap propre des longs paragraphes. */
.wpcf7-form p {
  margin: 0 0 10px;
  font-size: 16px;
  line-height: 1.5;
  white-space: normal;
  font-family: var(--ff-light);
} /* RGPD long para = WCAG 1.4.12 */
.wpcf7-form .cf7-field { margin: 0 0 10px; } /* mutualise <p>/<div.cf7-field>, hauteur ~70-80px */
.wpcf7-form .cf7-field > p { margin: 0; } /* neutralise <p> interne au cf7-field si présent */
.wpcf7-form .cf7-field--file .cf7-field-help,
.wpcf7-form .cf7-field-help {
  font-size: 14px;
  color: var(--color-text-muted, #595959);
  margin: 4px 0 0;
  line-height: 1.4;
}
.wpcf7-form h3 {
  font-family: var(--ff-body) !important;
  color: var(--color-primary) !important;
  font-size: 24px; font-weight: 600;
  margin: 30px 0 25px;
  padding-bottom: 12px;
  border-bottom: 2px solid #e8eeee;
  width: 100%;
}
.wpcf7-form h3:first-of-type { margin-top: 0; }
.wpcf7-form label {
  font-weight: 500;
  font-size: 16px;
  color: #1a1a1a !important; /* RGAA contraste */
  display: block;
  margin-bottom: 4px; /* compact, gain hauteur */
  line-height: 1.3;
}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="number"],
.wpcf7-form input[type="url"],
.wpcf7-form textarea,
.wpcf7-form select {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-button);
  padding: 10px 14px; /* DIVERGENCE custom.css L398 = 14px 18px */
  min-height: var(--tap-target); /* RGAA 2.5.5 — custom.css = absent */
  line-height: 1.4; /* DIVERGENCE custom.css = absent */
  font-size: 16px;
  color: var(--color-text);
  width: 100%;
  box-shadow: var(--shadow-input);
  transition: border-color .3s ease, box-shadow .3s ease;
}
.wpcf7-form textarea {
  min-height: 96px; /* DIVERGENCE custom.css L407 = 150px */
  resize: vertical;
}
.wpcf7-form input:focus,
.wpcf7-form textarea:focus,
.wpcf7-form select:focus {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
  border-color: var(--color-primary-hover);
  box-shadow: 0 0 0 3px rgba(0,107,113,.15);
}
.wpcf7-form-control-wrap[data-name="axe-intervention"] { position: relative; }
.wpcf7-form-control-wrap[data-name="axe-intervention"]::after {
  content: '\25BC';
  position: absolute;
  top: 50%; right: 18px;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--color-primary);
  font-size: 14px;
}
.wpcf7-form select { -webkit-appearance: none; -moz-appearance: none; appearance: none; }

.wpcf7-form input[type="file"] {
  font-family: var(--ff-body);
  width: 100%;
  color: #555;
  border: 2px dashed var(--color-border);
  background: var(--color-bg-light);
  border-radius: var(--radius-button);
  padding: 10px;
  transition: border-color .3s ease, background-color .3s ease;
}
.wpcf7-form input[type="file"]:hover {
  border-color: var(--color-primary);
  background: #fff;
}
.wpcf7-form input[type="file"]::file-selector-button {
  font-family: var(--ff-body);
  font-weight: 500;
  font-size: 15px;
  color: #fff;
  background: var(--gradient-primary);
  padding: 10px 20px;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  margin-right: 15px;
  transition: filter .25s ease;
}
.wpcf7-form input[type="file"]::file-selector-button:hover { filter: brightness(1.15); }

.wpcf7-form .wpcf7-list-item { margin: 0 0 10px; display: block; }
.wpcf7-form .wpcf7-list-item-label {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}
.wpcf7-form input[type="checkbox"],
.wpcf7-form input[type="radio"] { opacity: 0; position: absolute; }
.wpcf7-form input[type="checkbox"] + .wpcf7-list-item-label::before,
.wpcf7-form input[type="radio"] + .wpcf7-list-item-label::before {
  content: '';
  width: 20px; height: 20px;
  border: 2px solid var(--color-border);
  border-radius: 4px;
  background: #fff;
  margin-right: 12px;
  transition: all .2s ease;
}
.wpcf7-form input[type="radio"] + .wpcf7-list-item-label::before { border-radius: 50%; }
.wpcf7-form input[type="checkbox"]:checked + .wpcf7-list-item-label::before {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.6-1.5-1.5-.707.707 2.207 2.207 4.293-4.293z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
}
.wpcf7-form input[type="radio"]:checked + .wpcf7-list-item-label::before {
  background: #fff;
  border-color: var(--color-primary);
  box-shadow: inset 0 0 0 4px var(--color-primary);
}

.wpcf7-form .wpcf7-submit {
  display: inline-block;
  width: auto;
  font-family: var(--ff-body);
  font-size: 18px; font-weight: 600;
  text-transform: uppercase;
  color: #fff !important;
  background: var(--gradient-primary);
  border: none;
  border-radius: var(--radius-button);
  padding: 15px 35px;
  cursor: pointer;
  transition: all .3s cubic-bezier(.25,.8,.25,1);
  box-shadow: 0 4px 15px rgba(0,115,122,.2);
}
.wpcf7-form .wpcf7-submit:hover,
.wpcf7-form .wpcf7-submit:focus-visible {
  filter: brightness(1.15);
  box-shadow: 0 8px 20px rgba(0,115,122,.3);
}
.wpcf7-form .wpcf7-submit:active {
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(0,115,122,.2);
}

.wpcf7-form p, .wpcf7-form small {
  font-size: 17px;
  color: #505050;
  line-height: 1.45; /* WCAG 1.4.12 — bloc RGPD long lisible */
}
.wpcf7-form .cf7-privacy {
  font-size: 14px;
  line-height: 1.5;
  color: #505050;
  margin: 12px 0 16px;
  padding: 10px 14px;
  background: #f7f9f9;
  border-left: 3px solid var(--color-primary);
  border-radius: 4px;
}
.wpcf7-form p a {
  color: var(--color-primary-hover);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color .2s;
}
.wpcf7-form p a:hover { color: var(--color-primary-dark); }
.wpcf7-form .wpcf7-captchac {
  border-radius: var(--radius-button);
  margin-right: 10px;
  vertical-align: middle;
  width: 80px;
}
.wpcf7-form input[name="captcha-1"] { width: auto; vertical-align: middle; }

/* custom.css L990-992 */
.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder,
.forminator-input::placeholder { color: var(--color-text-muted) !important; }

/* === CF7 erreurs / succès === */
.wpcf7-form .wpcf7-not-valid-tip {
  color: #cf2e2e;
  font-weight: 500;
  margin-top: 5px;
}
.wpcf7-not-valid-tip {
  font-family: var(--ff-body);
  font-size: 15px; font-weight: 500;
  color: #dc3545;
  background: #fff5f5;
  border: 1px solid #fecaca;
  border-radius: 6px;
  padding: 8px 12px;
  margin-top: 6px;
  display: block;
  position: relative;
  box-shadow: 0 2px 4px rgba(220,53,69,.1);
  transition: all .3s ease;
}
.wpcf7-not-valid-tip:before {
  content: "⚠";
  margin-right: 6px;
  font-weight: bold;
}
.wpcf7-form .wpcf7-response-output {
  margin: 20px 0 0;
  padding: 15px 20px;
  border-radius: var(--radius-button);
  font-size: 15px;
}
.wpcf7-response-output {
  font-family: var(--ff-body);
  font-size: 16px; font-weight: 600;
  color: #dc3545;
  background: linear-gradient(135deg, #fff5f5 0%, #fef2f2 100%);
  border: 2px solid #dc3545;
  border-radius: var(--radius-card);
  padding: 16px 20px;
  margin: 20px 0;
  position: relative;
  box-shadow: 0 4px 12px rgba(220,53,69,.15);
  animation: shake .5s ease-in-out;
}
.wpcf7-mail-sent-ok {
  font-family: var(--ff-body);
  font-size: 16px; font-weight: 600;
  color: #28a745;
  background: linear-gradient(135deg, #f0f9f4 0%, #f7fef9 100%);
  border: 2px solid #28a745;
  border-radius: var(--radius-card);
  padding: 16px 20px;
  margin: 20px 0;
  box-shadow: 0 4px 12px rgba(40,167,69,.15);
}
.wpcf7-mail-sent-ok:before {
  content: "✅";
  margin-right: 8px;
  font-size: 18px;
}
.wpcf7-form-control.wpcf7-not-valid {
  border-color: #dc3545 !important;
  box-shadow: 0 0 0 3px rgba(220,53,69,.1) !important;
  background-color: #fff8f8;
}
.wpcf7-form-control.wpcf7-not-valid:focus {
  border-color: #dc3545 !important;
  box-shadow: 0 0 0 4px rgba(220,53,69,.2) !important;
  outline: 3px solid #b00020 !important;
  outline-offset: 2px !important;
}
.wpcf7 .screen-reader-response {
  position: absolute; left: -9999px;
  width: 1px; height: 1px;
  overflow: hidden;
}
.wpcf7-form.invalid .wpcf7-response-output,
div.wpcf7-validation-errors { border: 2px solid #ffb900; }
.wpcf7-form.sent .wpcf7-response-output,
div.wpcf7-mail-sent-ok { border: 2px solid #00d084; }
.wpcf7-checkbox.wpcf7-not-valid,
.wpcf7-radio.wpcf7-not-valid {
  padding: 8px;
  border: 1px solid #dc3545;
  border-radius: 6px;
  background: #fff8f8;
}
.wpcf7-file.wpcf7-not-valid {
  border: 2px dashed #dc3545 !important;
  background: #fff8f8;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output { border-color: #fecaca; }
.wpcf7 form.sent .wpcf7-response-output {
  border-color: #46b450;
  background: #00d0841a;
  color: #505050;
}
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-5px); }
  75% { transform: translateX(5px); }
}

/* === A11y messages CF7 (ex-inline alone_child_a11y_cf7_css) === */
.cf7-accessible .wpcf7-not-valid-tip { color: #b00020 !important; font-weight: 600; display: block; margin-top: 4px; }
.cf7-accessible .wpcf7-not-valid { border: 2px solid #b00020 !important; }
.cf7-accessible .wpcf7-response-output { padding: 12px 16px; border-width: 2px !important; border-style: solid; }
.cf7-accessible .wpcf7-response-output.wpcf7-mail-sent-ok { border-color: #0a6e2e; background-color: #e8f5ec; color: #0a6e2e; }
.cf7-accessible .wpcf7-response-output.wpcf7-validation-errors,
.cf7-accessible .wpcf7-response-output.wpcf7-mail-sent-ng { border-color: #b00020; background-color: #fbeaec; color: #b00020; }
.cf7-captcha-wrapper { margin: 16px 0; padding: 12px; border: 1px solid #ccc; border-radius: 4px; background: #f7f9f9; }
.cf7-captcha-help { font-size: 0.875em; color: #595959; margin: 4px 0 8px; }
.cf7-captcha-img { display: block; margin: 8px 0; }
.cf7-captcha-input { max-width: 160px; }

/* === Honeypot defense in depth ===
   Si un bot remplit malgré le CSS inline, le wrapper aria-hidden+style
   fait partie du DOM. Les leurres ne doivent jamais être visibles ni focusables. */
.wpcf7-form [aria-hidden="true"][tabindex="-1"] { display: none !important; }

/* ============================================================
 * Formulaire dépôt de projet — sections fieldset + conditionnels
 * ============================================================ */

/* Notice champs obligatoires (RGAA 11.7) */
.wpcf7-form .cf7-required-notice {
  font-size: 14px;
  color: #505050;
  margin: 0 0 20px;
  text-align: right;
  font-style: italic;
}
.wpcf7-form .cf7-required-notice .required {
  color: #b00020;
  font-weight: 700;
  font-style: normal;
}

/* Hint inline dans label (RGAA 11.9) */
.wpcf7-form .cf7-hint-inline {
  font-weight: 400;
  font-size: 14px;
  color: #595959;
  font-style: italic;
}

/* Asterisk visible required */
.wpcf7-form label .required,
.wpcf7-form legend .required {
  color: #b00020;
  font-weight: 700;
  margin: 0 2px;
}

/* Sections fieldset */
.wpcf7-form .cf7-section {
  border: none;
  padding: 0;
  margin: 0 0 32px;
}
.wpcf7-form .cf7-section-title {
  display: block;
  font-family: var(--ff-body);
  font-size: 20px;
  font-weight: 600;
  color: var(--color-primary);
  width: 100%;
  padding-bottom: 10px;
  border-bottom: 2px solid #e8eeee;
  margin-bottom: 20px;
}

/* Fieldset radio/checkbox (RGAA 11.5) — reset navigateur, legend comme label */
.wpcf7-form fieldset.cf7-field {
  border: none;
  padding: 0;
  margin: 0 0 10px;
  min-width: 0; /* fix Chrome fieldset overflow */
}
.wpcf7-form .cf7-legend {
  display: block;
  font-weight: 500;
  font-size: 16px;
  color: #1a1a1a;
  margin-bottom: 8px;
  line-height: 1.3;
  width: 100%;
  padding: 0;
}

/* Label de groupe fallback (si pas fieldset) */
.wpcf7-form .cf7-group-label {
  display: block;
  font-weight: 500;
  font-size: 16px;
  color: #1a1a1a;
  margin-bottom: 8px;
  line-height: 1.3;
}

/* Hint sous label ou au-dessus du champ */
.wpcf7-form .cf7-field-hint {
  font-size: 14px;
  color: var(--color-text-muted, #595959);
  margin: 0 0 6px;
  line-height: 1.4;
}
.wpcf7-form .cf7-files-hint {
  background: #f0f7f7;
  border-left: 3px solid var(--color-primary);
  padding: 8px 12px;
  border-radius: 4px;
  margin-bottom: 16px;
  font-size: 14px;
  line-height: 1.45;
  color: #404040;
}

/* Champs conditionnels — cachés par défaut, révélés par JS */
.wpcf7-form .cf7-field--conditional {
  display: none;
  overflow: hidden;
}
.wpcf7-form .cf7-field--conditional.cf7-visible {
  display: block;
  animation: cf7FadeIn .2s ease;
}
@keyframes cf7FadeIn {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Radio / checkbox groupés */
.wpcf7-form .cf7-field--radio .wpcf7-list-item,
.wpcf7-form .cf7-field--checkbox .wpcf7-list-item {
  margin: 0 0 6px;
}

/* Responsive — fieldset stacked mobile */
@media (max-width: 600px) {
  .wpcf7-form .cf7-section { margin-bottom: 24px; }
  .wpcf7-form input[type="number"],
  .wpcf7-form input[type="tel"] { max-width: 100%; }
}

/* ============================================================
 * 10. ELEMENTOR + DIVERS
 * ============================================================ */
/* custom.css L30-32 */
.elementor .elementor-background-slideshow { opacity: .4; }
.elementor-alert-info .elementor-alert a {
  color: var(--color-primary-hover); /* DIVERGENCE custom.css L726 = #0f425b */
  text-decoration: underline;
}
/* Compteurs hors section à fond coloré */
.elementor-counter-number,
.elementor-counter-title { color: #1a1a1a !important; }

/* Section "Projets soutenus / Projets achevés / Structures accompagnées"
   fond teal — forcer texte blanc sur tous les éléments enfants */
.elementor-19113 .elementor-element-d9e5692,
.elementor-19113 .elementor-element-d9e5692 * { color: #fff !important; }
.elementor-19113 .elementor-element-d9e5692 .elementor-counter-number,
.elementor-19113 .elementor-element-d9e5692 .elementor-counter-title { color: #fff !important; }

/* h3 titres axe (absolute sur image) — blanc */
.fondation-page-domaines-interventions .elementor-widget .elementor-widget-container h3.elementor-heading-title {
  color: #fff !important;
}

.project-meta,
.project-meta a { color: var(--color-text-muted) !important; }

.elementor-projects--default .elementor-project .elementor-project__thumbnail img {
  border-radius: 10px;
}
.elementor-projects--default .elementor-project__thumbnail { background: #fff; }

/* WCAG 2 AA — #008B92 (4.11:1) → #006b71 (6.29:1) sur fond blanc */
.elementor-projects--default .elementor-project__category a { color: #006b71; }
.home-section-contact-lancez-vous .home-heading-contactez-nous .elementor-heading-title { color: #006b71 !important; }

/* #008b92 = 4.11:1 sur blanc → RGAA/WCAG AA grand texte (h3 ≥ 24px bold = 3:1 requis) ✓ */
.elementor-section.fondation-page-objectif-valeurs .elementor-widget-heading h3.elementor-heading-title { color: #008b92; }

/* ===== NC-01 — Focus visible Elementor Forms (RGAA 10.7 / WCAG 2.4.7) ===== */
.elementor-field-group .elementor-field-textual:focus,
.elementor-field-group .elementor-field-textual:focus-visible,
.elementor-field-group select:focus-visible,
.elementor-field-group textarea:focus-visible {
  outline: 3px solid var(--color-focus, #006B71) !important;
  outline-offset: 2px !important;
  box-shadow: none;
}

/* ============================================================
 * 11. POSTS / ARTICLES
 * ============================================================ */
/* custom.css L315-317 */
.site-content { background: #fff; }

.entry-meta,
.entry-meta li,
.entry-meta a,
.entry-cat-links,
.entry-cat-links a { color: var(--color-text-muted) !important; }
.entry-content small,
.wp-caption-text,
figcaption { color: var(--color-text-muted) !important; }

.entry-content .entry-title,
.entry-content .entry-meta { text-align: center; }

.blog-posts-list .post-wrap .entry-image,
.related-posts-list .post-wrap .entry-image {
  border-radius: 16px;
  max-height: 280px;
}
.blog-posts-list .post-wrap .entry-image img,
.related-posts-list .post-wrap .entry-image img {
  transition: all 1.5s cubic-bezier(.11,.52,.53,.79) 0s;
}
.blog-posts-list .post-wrap .entry-image img:hover,
.related-posts-list .post-wrap .entry-image img:hover {
  transform: scale(1.1);
}
.blog-posts-list .post-wrap .entry-content .entry-title,
.related-posts-list .post-wrap .entry-content .entry-title {
  font-weight: 100;
  font-size: 22px;
  min-height: 0;
}

.single-post-wrap {
  background: #fff;
  margin-top: 150px;
}
.single-post-wrap .entry-image {
  padding-bottom: 40%;
  margin: 0 10%;
}

.site-content .content-area { padding: 40px 0; }

.error-page-template {
  text-align: center;
  margin: 175px 0 0;
}
div.error-page-template.no-margin { margin-top: 0; }

.page-template-default .site-main { padding: 20px 0; }

/* ============================================================
 * 12. FOOTER
 * ============================================================ */
.site-footer .site-info {
  background-color: var(--color-primary-hover);
  font-family: var(--ff-light);
  color: #fff;
}
.site-footer .footer-navigation ul.footer-menu li a {
  color: #fff;
  font-weight: 600;
  font-size: 18px;
  line-height: 150%;
}
.site-footer .footer-navigation ul.footer-menu li a:hover { color: #fff; }

#colophon a,
#colophon .footer-info,
#colophon .copyright { color: #fff !important; }
#colophon a:hover,
#colophon a:focus {
  text-decoration: underline !important;
  text-underline-offset: 3px;
}

#colophon.site-footer { flex-shrink: 0; }
.footer-a11y-link { color: #fff !important; text-decoration: underline !important; }

/* ============================================================
 * 13. COOKIE BANNER (Complianz)
 * ============================================================ */
#cmplz-header-1-optin { font-size: 12px; }
.cmplz-cookiebanner .cmplz-header { margin: -7px 0 -20px; }
#cmplz-message-1-optin { font-size: 11px; }
.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-category-title {
  font-size: 11px;
}
span.cmplz-category-header { padding: 5px; }

/* ============================================================
 * 14. RESPONSIVE
 * ============================================================ */
@media (max-width: 767.98px) {
  .bears-purchaseref-wrap { display: none; }
  .project-filter-tabs-container { padding: 30px 15px; }
  .tab-button { font-size: 16px; padding: 8px 15px; }
  .filter-button { font-size: 16px; padding: 10px 18px; }
  .project-filter-links { gap: 10px; }
  .wpcf7-form { padding: 20px; }
  .wpcf7-form h3 { font-size: 20px; }
  .wpcf7-not-valid-tip { font-size: 15px; padding: 6px 10px; }
  .wpcf7-response-output {
    font-size: 15px; padding: 14px 16px; margin: 16px 0;
  }

  .single-post-wrap { margin-top: 95px; }
  .single-post-wrap .entry-image {
    padding-bottom: 70%;
    margin: 0;
    background: #fff;
  }
  .single-post-wrap .entry-image img { border-radius: 6px; }
  .single-post-wrap .entry-content .entry-meta li { font-size: 18px; margin: 20px 0 30px; }
  .single-post-wrap .entry-content .entry-content-inner p { font-size: 17px; line-height: 150%; }
  .site-content .content-area { padding: 0; }
  .elementor-25857 .elementor-element.elementor-element-d621af4 .elementor-heading-title,
  .elementor-25857 .elementor-element.elementor-element-8db18ce .elementor-heading-title,
  .elementor-25857 .elementor-element.elementor-element-4edc5b0 .elementor-heading-title,
  .elementor-25857 .elementor-element.elementor-element-84ede9b .elementor-heading-title {
    white-space: break-spaces;
  }
  .elementor-25857 .elementor-element.elementor-element-e3fd6d5 .elementor-heading-title {
    font-size: 21px;
    white-space: break-spaces;
  }
}
@media (max-width: 992px) {
  /* WCAG 2.5.8 — touch target mobile/tablette : 34px (confort intermédiaire AA/AAA) */
  :root { --tap-target: 34px; }
  
  .project-filter-tabs-container .filters-wrap {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .site-footer .site-info.has-navigation .site-info-wrap .footer-navigation {
    white-space: preserve-breaks;
  }
  .site-footer .site-info { padding-bottom: 80px; }
}

/* ============================================================
 * 15. REDUCED MOTION (fallback si main.css chargé sans critical)
 * ============================================================ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================================
 * 16. PRINT STYLESHEET
 * ============================================================ */
@media print {
  .site-header, #masthead, .site-footer, #colophon,
  .search-form, .filter-tabs, .project-filter-tabs-container,
  nav, .breadcrumb-nav, .report-modal-overlay, .cmplz-cookiebanner { display: none !important; }
  body {
    color: #000 !important;
    background: #fff !important;
    font-size: 12pt !important;
    font-family: Georgia, serif !important;
  }
  a, a:visited { color: #000 !important; text-decoration: underline !important; }
  a[href]::after { content: " (" attr(href) ")"; font-size: 10pt; color: #555; }
  a[href^="#"]::after, a[href^="javascript:"]::after { content: ""; }
  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; color: #000 !important; }
  p, blockquote { page-break-inside: avoid; }
  img { max-width: 100% !important; page-break-inside: avoid; }
  .entry-content { font-size: 11pt; line-height: 1.5; }
}

/* ============================================================
 * 17. HEADER — fixed glassmorphism + animation + responsive
 * ============================================================ */
#masthead.site-header {
  position: fixed;
  top: 20px; left: 0; right: 0;
  width: calc(100% - 40px); max-width: 1400px; margin: 0 auto;
  z-index: 9999;
  background: linear-gradient(135deg, rgba(255,255,255,.95) 0%, rgba(248,250,252,.95) 100%);
  backdrop-filter: blur(25px) saturate(180%);
  -webkit-backdrop-filter: blur(25px) saturate(180%);
  border-radius: 16px;
  box-shadow:
    0 8px 32px rgba(0,0,0,.12),
    0 2px 8px rgba(0,139,146,.15),
    0 0 0 1px rgba(255,255,255,.3);
  border: 1px solid rgba(0,139,146,.1);
  transition: all .4s cubic-bezier(.25,.8,.25,1);
  animation: headerFloat .8s cubic-bezier(.25,.8,.25,1) forwards;
}
#masthead.site-header:hover {
  transform: translateY(-2px);
  box-shadow:
    0 12px 40px rgba(0,0,0,.15),
    0 4px 12px rgba(0,139,146,.2),
    0 0 0 1px rgba(255,255,255,.4);
}
#masthead.site-header .custom-logo {
  transition: all .3s ease;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.05));
}

.site-logo.image-logo .custom-logo,
.site-logo.image-logo .custom-logo-link .custom-logo
{ width: 250px !important; height: auto; }


#masthead.site-header .primary-navigation ul a,
#masthead.site-header .primary-navigation ul.primary-menu a {
  transition: all .3s ease;
}
#masthead.site-header #menu-item-25890 > a {
  transition: all .3s cubic-bezier(.25,.8,.25,1);
  box-shadow: 0 4px 12px rgba(0,139,146,.25);
  border-radius: 12px;
}
#masthead.site-header #menu-item-25890 > a:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0,139,146,.35);
}
#masthead.site-header .extras-navigation .toggle-icon {
  transition: all .3s ease;
}
#masthead.site-header .site-branding .container {
  padding-left: 24px;
  padding-right: 24px;
}

@keyframes headerFloat {
  from { opacity: 0; transform: translateY(-20px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1024px) {
  #masthead.site-header {
    width: calc(100% - 24px); top: 16px; border-radius: 14px;
    background: rgba(255,255,255,.98);
    backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  }
  #masthead.site-header .site-branding .container {
    padding-left: 20px; padding-right: 20px;
  }
}
@media (max-width: 767px) {
  #masthead.site-header {
    width: calc(100% - 16px); top: 12px; border-radius: 12px;
    box-shadow: 0 6px 24px rgba(0,0,0,.15);
  }
  #masthead.site-header:hover { transform: translateY(-1px); }
  #masthead.site-header .site-branding .branding-wrap { transition: padding .3s ease; }
  #masthead.site-header .site-branding .container {
    padding-left: 16px; padding-right: 16px;
  }
  .site-logo.image-logo .custom-logo, .site-logo.image-logo .custom-logo-link .custom-logo { max-width: 165px !important; height: auto; }
  .site-header .site-branding .branding-wrap .primary-navigation { width: 100%; border-radius: 5px; }
}

/* ============================================================
 * 18. NAVIGATION — primary nav + CTA menu item
 * ============================================================ */
.primary-navigation ul a,
.primary-navigation ul.primary-menu a {
  font-size: 18px;
  color: #303030;
  text-transform: uppercase;
  font-family: var(--ff-light);
  font-weight: 100;
  letter-spacing: -1px;
  transition: all .3s ease; /* DIVERGENCE custom.css L804-807 = transition uniquement sous #masthead.site-header */
}
.primary-navigation ul a:hover,
.primary-navigation ul.primary-menu a:hover { color: var(--color-primary); }

#menu-item-25890 > a {
  display: inline-flex; align-items: center; height: 100%;
  background: var(--gradient-primary);
  color: #fff !important;
  padding: 12px 22px;
  border-radius: 10px;
  border: 0;
  transition: filter .25s ease;
  text-decoration: none !important;
}
#menu-item-25890 > a:hover,
#menu-item-25890 > a:focus-visible { filter: brightness(1.25); }

@media (max-width: 992px) {
  .primary-navigation ul li,
  .primary-navigation ul.primary-menu li { padding: 12px; }
  .extras-navigation .toggle-content { right: -27px; width: 320px; }
}

/* ===== NC-01 — Focus visible burger menu (RGAA 10.7 / WCAG 2.4.7) ===== */
.site-menu-wrap-bears .menu-toggle:focus-visible,
.menu-toggle:focus-visible {
  outline: 3px solid var(--color-focus, #006B71) !important;
  outline-offset: 2px;
}

/* ============================================================
 * 19. ACCESSIBILITY OVERRIDES — RGAA 4.1 / WCAG 2.1 AA
 *     Corrections ciblees post-audit 2026-05-03 :
 *       - 3.2 contraste teal #008b92 -> #006b71 (palette existante)
 *       - 3.3 bordures champs (--color-border) 1.5:1 -> 3:1
 *       - 12.x lien "Accessibilite : <statut>" en pied de page
 *       - 7.x utilitaire .sr-only pour annonces lecteur d'ecran
 * ============================================================ */

/* === RGAA 3.3 — bordures champs visibles (3:1 minimum sur blanc) ===
   Ancienne valeur : #caced1 (~1.5:1, echec).
   Nouvelle valeur : #9ca3af (3.5:1) — au-dessus du seuil tout en restant discret. */
:root {
  --color-border: #9ca3af; /* anciennement #caced1 — RGAA 3.3 */
}

/* === RGAA 3.2 — contraste teal sur textes <18.5px / <24px gras ===
   #008b92 sur blanc = 4.11:1 (echec AA texte normal).
   #006b71 (--color-primary-hover, deja dans la palette) = 5.6:1. */

/* Filtre projets — titres de groupes et titre principal */
.project-filter-tabs-container .filter-title,
.project-filter-tabs-container .group-title {
  color: var(--color-primary-hover); /* anciennement var(--color-primary) #008b92 */
}

/* Cartes projet — categorie (Elementor) */
.elementor-project__category {
  color: var(--color-primary-hover); /* anciennement #008b92 */
}

/* Accordeons Elementor — page Votre Projet (texte teal sur blanc).
   !important requis : Elementor injecte color:#008b92 en style inline
   (#008b92 sur blanc = 4.11:1, echec WCAG AA texte normal 20px/500).
   #006b71 sur blanc = 5.6:1 (conforme). */
.elementor-toggle .elementor-toggle-item .elementor-tab-title,
.elementor-toggle .elementor-toggle-item .elementor-toggle-title,
.elementor-toggle-title {
  color: var(--color-primary-hover) !important; /* anciennement #008b92 */
}
#section-depot-projets-toggle-items .elementor-toggle-title {
  color: #FFF !important; /* anciennement #008b92 */
}

/* Accordeon ouvert : fond teal -> texte blanc.
   #006b71 + #fff = 5.6:1 (AA texte normal OK).
   Anciennement #008b92 + #fff = 4.11:1 (echec). */
.elementor-toggle .elementor-toggle-item .elementor-tab-title.elementor-active {
  background-color: var(--color-primary-hover) !important;
}

/* === Utilitaire .sr-only — annonces NVDA / JAWS / VoiceOver === */
.sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* === RGAA 12.7 — Skip-link visible au focus clavier ===
   Override local : .sr-only ci-dessus utilise position:absolute !important,
   ce qui defait partiellement la regle .sr-only-focusable:focus de critical.css.
   On redefinit explicitement l'etat focus pour le skip-link.
   Specificity .a11y-skip-nav .skip-link = (0,2,0) > .sr-only (0,1,0). */
.a11y-skip-nav .skip-link:focus,
.a11y-skip-nav .skip-link:focus-visible {
  position: fixed !important;
  top: 0;
  left: 0;
  width: auto !important;
  height: auto !important;
  padding: 12px 24px;
  margin: 0;
  clip: auto !important;
  overflow: visible !important;
  white-space: normal;
  background: #fff !important;
  color: var(--color-primary-hover);
  border: 3px solid var(--color-primary-hover);
  font-size: 1rem !important;
  font-weight: 700;
  text-decoration: none;
  z-index: 99999;
  outline: 3px solid var(--color-primary-hover);
  outline-offset: 2px;
}

/* === Pied de page : lien "Accessibilite : <statut>" ===
   Spec : sous menu existant, centre, taille minimum acceptee AA.
   Texte 12px sur fond #006b71 (footer copyright) : couleur #fff = 5.6:1 (AA OK).
   Couleur #fff sur #006b71 : conforme RGAA 3.2 pour texte normal. */
.footer-a11y {
  display: block;
  text-align: center;
  padding: 8px 16px 12px;
  background: var(--color-primary-hover);
}
.footer-a11y a {
  color: #fff;
  font-family: var(--ff-light), sans-serif;
  font-size: 12px;
  line-height: 1.5;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.footer-a11y a:hover,
.footer-a11y a:focus-visible {
  color: #fff;
  text-decoration-thickness: 2px;
}
.footer-a11y a:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 2px;
}

/* === Filtre projets : panneau toggle controle par aria-expanded sur le header ===
   Selecteur ancien (sur section) reste compatible — celui-ci ajoute le pattern correct. */
.project-filter-tabs-container .filter-header[aria-expanded="false"] ~ #project-filter-panel { display: none; }
.project-filter-tabs-container .filter-header[aria-expanded="true"]  ~ #project-filter-panel { display: block; }
.project-filter-tabs-container .filter-header[aria-expanded="true"]::after { transform: rotate(-135deg); }

/* === Bouton Filtrer desactive : aria-disabled seul (focusable) === */
.project-filter-tabs-container .filter-cta.is-disabled {
  opacity: .55;
  cursor: not-allowed;
  filter: none;
  transform: none;
  box-shadow: none;
}

/* === RGAA 1.2 — SVG decoratifs Complianz : neutralisation pointeur === */
.cmplz-cookiebanner svg,
.cmplz-icon svg { pointer-events: none; }

/* ============================================================
 * 20. SINGLE PROJECT — Kicker terms + meta layout
 *     Scope : article.single-project-wrap (post_class on CPT project).
 * ============================================================ */

.single-project-wrap .entry-cat-links {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  align-items: baseline;
  margin: 0 0 8px;
  font-size: .9em;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--color-primary-hover);
  justify-content: center;
}
.single-project-wrap .entry-cat-links a {
  color: inherit;
  text-decoration: none;
}
.single-project-wrap .entry-cat-links a:hover,
.single-project-wrap .entry-cat-links a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.single-project-wrap .entry-cat-links .cat-sep {
  color: var(--color-text-muted);
}

.single-project-wrap .entry-meta {
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
  font-size: .9em;
  color: var(--color-text-muted);
}
.single-project-wrap .entry-meta li {
  display: inline-block;
  margin-right: 12px;
}

/* ===== 5bis.1 — entry-cat-links centré + taille réduite (articles projet / give) ===== */
.single-project .entry-cat-links,
.single-give_posts .entry-cat-links,
article.type-give_posts .entry-cat-links,
article.type-project .entry-cat-links {
  text-align: center;
  font-size: 0.8125rem; /* ~13px */
  line-height: 1.4;
  margin-left: auto;
  margin-right: auto;
}
