/* FOMEV — extension minimale de mise en page (maquettes CD-FOMEV)
   Complète ds/fomev/components/bundle.css sans en modifier les règles.
   Nomenclature Client-First ; toutes les valeurs passent par les tokens du design system.
   Équivalent WordPress : classes globales (Elementor Pro « Global Classes » via CSS du kit, Bricks « Global Classes »). */

/* ---------- Structure ---------- */
.page-wrapper { background: var(--background-color--page); color: var(--text-color--primary); font-family: var(--font-sans); min-width: 0; overflow-x: clip; }
.main-wrapper { display: block; }
.section-divider { border-top: var(--border-width--hairline) solid var(--border-color--subtle); }

/* ---------- Grilles (CSS Grid, reproductibles avec un conteneur Grid du builder) ---------- */
.layout-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--spacing--medium) var(--gutter--mobile); }
@media (min-width: 768px) {
  .layout-grid { gap: var(--spacing--medium) var(--gutter--tablet); }
  .layout-grid.is-2, .layout-grid.is-3, .layout-grid.is-4, .layout-grid.is-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
  .layout-grid { gap: var(--spacing--large) var(--gutter--desktop); }
  .layout-grid.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .layout-grid.is-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .layout-grid.is-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .layout-grid.is-split { grid-template-columns: 7fr 5fr; align-items: center; }
  .layout-grid.is-split-reverse { grid-template-columns: 5fr 7fr; align-items: center; }
  .layout-grid.is-8-4 { grid-template-columns: 8fr 4fr; align-items: start; }
  .layout-grid.is-4-8 { grid-template-columns: 4fr 8fr; align-items: start; }
  .layout-grid.is-sidebar { grid-template-columns: 3fr 9fr; align-items: start; }
  .layout-grid.is-gap-xlarge { column-gap: var(--spacing--xlarge); }
}
.layout-grid.is-top { align-items: start; }

/* ---------- Empilements ---------- */
.stack { display: grid; gap: var(--spacing--small); align-content: start; }
.stack.is-tight { gap: var(--spacing--xsmall); }
.stack.is-large { gap: var(--spacing--small-plus); }
.stack.is-xlarge { gap: var(--spacing--medium); }
.cluster { display: flex; flex-wrap: wrap; gap: var(--spacing--xsmall) var(--spacing--small); align-items: center; }

/* ---------- En-têtes et pieds de section ---------- */
.section-head { display: grid; gap: var(--spacing--small); max-width: 46rem; margin-bottom: var(--spacing--large); }
.section-head.is-center { margin-left: auto; margin-right: auto; text-align: center; justify-items: center; }
.section-head.is-center p { margin-left: auto; margin-right: auto; }
.section-foot { margin-top: var(--spacing--large); display: flex; flex-wrap: wrap; gap: var(--spacing--small); }
.section-foot.is-center { justify-content: center; }

/* ---------- Ouverture de page intérieure ---------- */
.page-hero { background: var(--background-color--surface); border-bottom: var(--border-width--hairline) solid var(--border-color--subtle); }
.page-hero_content { display: grid; gap: var(--spacing--small-plus); max-width: 50rem; }
.page-hero.is-inverse { border-bottom: 0; }
.page-hero.is-compact .padding-section-medium { padding-top: var(--spacing--large); padding-bottom: var(--spacing--large); }

/* ---------- Accueil : hero en aplat (aucun voile sur photo) ---------- */
.hero-home_grid { display: grid; gap: var(--spacing--large); align-items: center; }
@media (min-width: 992px) { .hero-home_grid { grid-template-columns: 7fr 5fr; gap: var(--spacing--xlarge); } }
.hero-home_content { display: grid; gap: var(--spacing--small-plus); }
.hero-home .display { color: var(--text-color--inverse); }

/* ---------- Médias de substitution (photos autorisées à fournir) ---------- */
.ph { width: 100%; aspect-ratio: 3 / 2; }
.ph.is-4x5 { aspect-ratio: 4 / 5; }
.ph.is-3x4 { aspect-ratio: 3 / 4; }
.ph.is-4x3 { aspect-ratio: 4 / 3; }
.ph.is-16x9 { aspect-ratio: 16 / 9; }
.ph.is-1x1 { aspect-ratio: 1 / 1; }
.is-inverse .placeholder-media { background: var(--swatch--fleuve-800); color: var(--text-color--inverse-muted); }

/* ---------- Cartes complémentaires ---------- */
.card-icon { display: grid; gap: var(--spacing--small); align-content: start; padding: var(--spacing--medium); background: var(--background-color--surface); border: var(--border-width--hairline) solid var(--border-color--subtle); }
.card-icon_icon { width: var(--icon--xlarge); height: var(--icon--xlarge); color: var(--brand--bleu-fleuve); }
.card-icon_icon .icon { width: 100%; height: 100%; stroke-width: 1.5; }
.card-path { display: grid; gap: var(--spacing--small); align-content: start; padding: var(--spacing--medium); background: var(--background-color--surface); color: var(--text-color--primary); --text-color--heading: var(--brand--bleu-fleuve); --text-color--secondary: var(--brand--pierre); --text-color--link: var(--brand--fleuve-moyen); --focus--ring: var(--status--warning-text); }
.card-path .eyebrow { color: var(--brand--fleuve-moyen); }
.card-path .button { justify-self: start; margin-top: var(--spacing--xsmall); }
.card-path .button:not(.is-accent):not(.is-secondary) { background: var(--action--primary); border-color: var(--action--primary); color: var(--action--on-primary); }
.card-event { flex-direction: row; }
.card-event .card_body { padding: var(--spacing--small) var(--spacing--small-plus); }
.value-card { display: grid; gap: var(--spacing--xsmall); padding-top: var(--spacing--small); border-top: var(--border-width--strong) solid var(--brand--bleu-fleuve); }

/* ---------- Filtres de catalogue ---------- */
.filters { display: grid; gap: var(--spacing--small); align-items: end; grid-template-columns: minmax(0, 1fr); padding: var(--spacing--small-plus); background: var(--background-color--surface); border: var(--border-width--hairline) solid var(--border-color--subtle); }
@media (min-width: 768px) { .filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 992px) { .filters { grid-template-columns: 2fr repeat(3, minmax(0, 1fr)) auto; } }
.filters .form_field { max-width: none; }
.results-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--spacing--small); margin: var(--spacing--small-plus) 0; }
.chips { display: flex; flex-wrap: wrap; gap: var(--spacing--xsmall); }
.chip { display: inline-flex; align-items: center; gap: var(--spacing--xxsmall); min-height: var(--target--min); padding: 0 var(--spacing--small); border: var(--border-width--control) solid var(--border-color--default); border-radius: var(--radius--round); background: var(--background-color--surface); color: var(--text-color--primary); font: inherit; font-size: 1rem; font-weight: 600; text-decoration: none; cursor: pointer; }
.chip[aria-pressed="true"] { background: var(--action--primary); border-color: var(--action--primary); color: var(--action--on-primary); }

/* ---------- Fiches dynamiques ---------- */
.meta-list { display: grid; margin: 0; border-top: var(--border-width--hairline) solid var(--border-color--strong); }
.meta-list_row { display: grid; grid-template-columns: 9rem 1fr; gap: var(--spacing--small); padding: var(--spacing--xsmall-plus) 0; border-bottom: var(--border-width--hairline) solid var(--border-color--subtle); }
.meta-list_row dt { font-weight: 600; }
.meta-list_row dd { margin: 0; }
.aside-box { display: grid; gap: var(--spacing--small); padding: var(--spacing--small-plus); background: var(--background-color--surface); border: var(--border-width--hairline) solid var(--border-color--subtle); }
.toc { display: grid; gap: var(--spacing--xxsmall); list-style: none; margin: 0; padding: 0; }
.toc a { display: flex; align-items: center; min-height: var(--target--min); color: var(--text-color--link); text-underline-offset: 0.18em; }
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--spacing--small); counter-reset: step; }
@media (min-width: 992px) { .steps.is-row { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); } }
.steps li { counter-increment: step; display: grid; gap: var(--spacing--xxsmall); padding-top: var(--spacing--small); border-top: var(--border-width--strong) solid var(--brand--bleu-fleuve); }
.steps li::before { content: "0" counter(step); font-family: var(--font-serif); font-weight: 600; font-size: 1.5rem; color: var(--text-color--heading); }

/* ---------- En-tête : déclinaison mobile (< 992 px) ---------- */
.header_mobile { display: none; }
.header_nav-item { display: flex; align-items: center; gap: 2px; }
.nav_toggle { min-width: 32px; justify-content: center; }
@media (max-width: 991px) {
  .header_topbar, .header_main, .header_nav { display: none; }
  .header_mobile { display: block; }
}
.header_mobile-logo { padding: var(--spacing--small) var(--padding-global--mobile); background: var(--nav--background); }
.header_mobile-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--spacing--xsmall-plus); min-height: var(--header--height-sticky); padding: 0 var(--padding-global--mobile); background: var(--nav--background); border-top: var(--border-width--hairline) solid var(--border-color--subtle); }
.header_mobile-actions { display: flex; align-items: center; gap: var(--spacing--xsmall); }

/* ---------- Documentation (planches 00, 01, 03, 08, 09, 10) ---------- */
.doc { background: var(--background-color--page); color: var(--text-color--primary); font-family: var(--font-sans); padding: var(--spacing--xlarge) var(--padding-global--desktop) var(--spacing--huge); display: grid; gap: var(--spacing--xlarge); }
.doc p { max-width: 80ch; }
.doc_head { display: grid; gap: var(--spacing--small); padding-bottom: var(--spacing--medium); border-bottom: var(--border-width--strong) solid var(--brand--bleu-fleuve); }
.doc_section { display: grid; gap: var(--spacing--small-plus); }
.doc_list { margin: 0; padding-left: 1.25rem; display: grid; gap: var(--spacing--xsmall); max-width: 90ch; }
.doc .table { font-size: 0.9375rem; line-height: 1.45; }
.doc .table th { white-space: normal; }
.tag { display: inline-flex; align-items: center; padding: 2px 6px; border: var(--border-width--hairline) solid currentColor; border-radius: var(--radius--small); font-size: 0.75rem; line-height: 1.3; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; white-space: nowrap; }
.tag.is-notion { color: var(--brand--fleuve-moyen); }
.tag.is-ds { color: var(--brand--bleu-fleuve); }
.tag.is-reco { color: var(--swatch--laterite-700); }
.tag.is-valider { color: var(--status--warning-text); background: var(--feedback--warning-surface); }
.tag.is-deduction { color: var(--brand--pierre); }
.tag.is-p0 { color: var(--action--on-primary); background: var(--brand--bleu-fleuve); border-color: var(--brand--bleu-fleuve); }
.tag.is-p1 { color: var(--brand--bleu-fleuve); background: var(--brand--ciel-aube); border-color: var(--brand--ciel-aube); }
.tag.is-p2 { color: var(--brand--basalte); background: var(--brand--sable); border-color: var(--brand--sable); }
.doc_card { display: grid; gap: var(--spacing--xsmall-plus); padding: var(--spacing--small-plus); background: var(--background-color--surface); border: var(--border-width--hairline) solid var(--border-color--subtle); align-content: start; }
.swatch { display: grid; gap: var(--spacing--xxsmall); font-size: 0.875rem; }
.swatch_chip { height: 72px; border: var(--border-width--hairline) solid var(--border-color--subtle); }
.spec-frame { padding: var(--spacing--medium); background: var(--background-color--surface); border: var(--border-width--hairline) dashed var(--border-color--default); }
.spec-label { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--brand--pierre); }

/* ---------- Wireframes (niveaux de gris de la gamme neutre) ---------- */
.wf { display: grid; gap: 6px; font-family: var(--font-sans); color: var(--brand--encre); }
.wf-box { display: grid; gap: 6px; padding: 10px 12px; background: var(--brand--blanc); border: 1.5px solid var(--swatch--neutral-500); font-size: 0.8125rem; line-height: 1.35; }
.wf-box.is-dark { background: var(--swatch--neutral-300); }
.wf-box.is-dyn { border-style: dashed; border-color: var(--brand--fleuve-moyen); }
.wf-row { display: grid; gap: 6px; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
.wf-label { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--swatch--neutral-700); }
.wf-title { font-weight: 700; font-size: 0.875rem; }
.wf-line { height: 7px; background: var(--swatch--neutral-300); }
.wf-line.is-short { width: 40%; }
.wf-line.is-mid { width: 70%; }
.wf-img { display: grid; place-items: center; min-height: 56px; background: var(--swatch--neutral-200); color: var(--swatch--neutral-700); font-size: 0.6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; }
.wf-btn { display: inline-block; justify-self: start; padding: 3px 8px; border: 1.5px solid var(--swatch--neutral-700); font-size: 0.6875rem; font-weight: 700; }
.wf-btn.is-primary { background: var(--swatch--neutral-700); color: var(--brand--blanc); }
.wf-note { font-size: 0.75rem; color: var(--swatch--neutral-700); font-style: italic; }

/* ---------- Site statique : comportements globaux (en-tête collant, tiroir, consentement) ---------- */
.header_topbar-place { display: inline-flex; align-items: center; gap: var(--spacing--xxsmall); }

/* Barre mobile collante : langue + don + menu (< 992 px) */
.site-mobilebar { display: none; position: sticky; top: 0; z-index: var(--z--sticky); border-bottom: var(--border-width--hairline) solid var(--border-color--strong); }
@media (max-width: 991px) { .site-mobilebar { display: flex; } }

/* Barre collante desktop sans logo, affichée après défilement */
.site-sticky { position: fixed; top: 0; left: 0; right: 0; }
.site-sticky[hidden] { display: none; }
@media (max-width: 991px) { .site-sticky { display: none !important; } }
@media (max-width: 1279px) { .site-sticky_engager { display: none; } .site-sticky .nav_list { gap: var(--spacing--small-plus); } }

/* Sous-menus */
.nav_dropdown { left: 0; }

/* Tiroir mobile */
.site-drawer-scrim { position: fixed; }
.site-drawer { position: fixed; width: min(100%, 400px); }
.site-drawer[hidden], .site-drawer-scrim[hidden] { display: none; }
.drawer_sublist { list-style: none; margin: 0; padding: 0 0 var(--spacing--xsmall); background: var(--background-color--page); }
.drawer_list .drawer_sub { font-weight: 400; padding-left: var(--spacing--medium); }
.drawer_list button[aria-expanded="true"] .icon { transform: rotate(180deg); }
body.is-locked { overflow: hidden; }

/* Bandeau de consentement */
.site-consent { position: fixed; left: 0; right: 0; bottom: 0; }
.site-consent[hidden] { display: none; }
.footer_cookie-btn { appearance: none; background: none; border: 0; padding: 0; min-height: var(--target--min); font: inherit; color: var(--text-color--inverse); text-decoration: underline; text-underline-offset: 0.18em; cursor: pointer; }

/* Retour de formulaire (démonstration) */
.form-feedback { margin-top: var(--spacing--small); }

/* Logo réduit de 50 % (140 px au lieu de 280 px) — demande client, écart à la charte p.32 */
:root { --logo--width-header: 140px; --logo--clearspace: 10px; }

/* ---------- Sélecteur de langue type WPML (legacy dropdown click) ---------- */
.wpml-ls { position: relative; display: inline-block; font-family: var(--font-sans); font-size: 0.9375rem; }
.wpml-ls ul { list-style: none; margin: 0; padding: 0; }
.wpml-ls-item-toggle { display: inline-flex; align-items: center; gap: var(--spacing--xsmall); min-height: var(--target--min); padding: 0 var(--spacing--xsmall-plus); background: var(--background-color--surface); color: var(--brand--encre); border: var(--border-width--hairline) solid var(--border-color--default); border-radius: var(--radius--medium); font: inherit; font-weight: 600; cursor: pointer; }
.wpml-ls-item-toggle:hover { border-color: var(--border-color--strong); background: var(--action--secondary-hover); }
.wpml-ls-item-toggle .icon { width: 16px; height: 16px; transition: transform var(--duration--base) var(--ease--out); }
.wpml-ls-item-toggle[aria-expanded="true"] .icon { transform: rotate(180deg); }
.wpml-ls-flag { width: 21px; height: 14px; flex: none; outline: 1px solid rgba(30, 31, 29, 0.16); }
.wpml-ls-sub-menu { position: absolute; top: calc(100% + 4px); right: 0; min-width: 100%; z-index: var(--z--dropdown); background: var(--background-color--surface); border: var(--border-width--hairline) solid var(--border-color--strong); border-radius: var(--radius--medium); box-shadow: var(--shadow--overlay); padding: var(--spacing--xxsmall) 0; }
.wpml-ls-sub-menu[hidden] { display: none; }
.wpml-ls.is-up .wpml-ls-sub-menu { top: auto; bottom: calc(100% + 4px); left: 0; right: auto; }
.wpml-ls-link { display: flex; align-items: center; gap: var(--spacing--xsmall); min-height: var(--target--min); padding: 0 var(--spacing--xsmall-plus); color: var(--brand--encre) !important; text-decoration: none !important; white-space: nowrap; }
.wpml-ls-link:hover { background: var(--background-color--page); text-decoration: underline !important; }
.wpml-ls-link:focus-visible { outline: var(--border-width--focus) solid var(--status--warning-text); outline-offset: -3px; }
.header_topbar .wpml-ls-item-toggle { min-height: 36px; }
.is-inverse .wpml-ls-item-toggle { background: transparent; color: var(--brand--blanc); border-color: var(--brand--ciel-aube); }
.is-inverse .wpml-ls-item-toggle:hover { background: rgba(255, 255, 255, 0.12); }

/* Logo compact dans les barres collantes (affiché après défilement) */
.site-logo-compact { flex: none; display: inline-flex; align-items: center; }
.site-logo-compact .logo_image.is-compact { width: auto; height: 44px; max-width: none; }
.site-mobilebar .site-logo-compact { display: none; }
body.is-scrolled .site-mobilebar .site-logo-compact { display: inline-flex; }
body.is-scrolled .site-mobilebar > .wpml-ls { display: none; }
.header_sticky-inner .nav_list { flex: 1; }
.site-sticky .nav_link { white-space: nowrap; }
@media (max-width: 1279px) { .site-sticky .nav_link { font-size: 0.9375rem; } .site-sticky .nav_item { display: flex; } }

/* ---------- FOMEV — Demande d’intercession ---------- */
.header_topbar-priere { font-weight: 600; color: var(--brand--bleu-fleuve) !important; }
.header_topbar-priere[aria-current="page"] { text-decoration: underline; }
/* Bandeau CTA réutilisable */
.section_cta-priere { background: var(--background-color--surface); border-top: var(--border-width--hairline) solid var(--border-color--subtle); }
.cta-priere_component { display: grid; gap: var(--spacing--small-plus); align-items: center; }
.cta-priere_icon { display: grid; place-content: center; width: 64px; height: 64px; border-radius: var(--radius--round); background: var(--brand--bleu-fleuve); color: var(--brand--blanc); }
.cta-priere_icon .icon { width: 32px; height: 32px; }
.cta-priere_content { display: grid; gap: var(--spacing--xxsmall); max-width: 44rem; }
.cta-priere_component .button { justify-self: start; }
@media (min-width: 768px) { .cta-priere_component { grid-template-columns: auto 1fr auto; } }
/* Verset */
.verse-card { margin: 0; display: grid; gap: var(--spacing--small); align-content: center; padding: var(--spacing--medium); background: var(--brand--bleu-fleuve); color: var(--brand--blanc); border-left: 6px solid var(--action--accent, var(--brand--ciel-aube)); }
.verse-card blockquote { margin: 0; font-family: var(--font-serif); font-size: 1.5rem; line-height: 1.4; font-style: italic; }
.verse-card figcaption { font-weight: 600; letter-spacing: 0.02em; color: var(--brand--ciel-aube); }
/* Formulaire */
.form-priere { padding: var(--spacing--medium); }
.form-priere_group { gap: var(--spacing--small); padding-top: var(--spacing--small); border-top: var(--border-width--hairline) solid var(--border-color--subtle) !important; }
.form-priere_group legend { display: flex; align-items: center; gap: var(--spacing--xsmall); float: left; width: 100%; margin-bottom: var(--spacing--xsmall); }
.form-priere_group legend + * { clear: both; }
.form-priere_step { display: inline-grid; place-content: center; width: 28px; height: 28px; border-radius: var(--radius--round); background: var(--brand--bleu-fleuve); color: var(--brand--blanc); font-size: 0.875rem; }
.form-priere_grid { gap: var(--spacing--small) var(--spacing--small-plus); }
.form-priere [hidden] { display: none !important; }
.form-priere .form_field { max-width: none; }
.form-priere_full { grid-column: 1 / -1; }
.form-priere_choices { display: grid; gap: var(--spacing--xsmall); }
@media (min-width: 768px) { .form-priere_choices { grid-template-columns: 1fr 1fr; } }
.form-priere_option { padding: var(--spacing--small); border: var(--border-width--control) solid var(--border-color--default); border-radius: var(--radius--medium); background: var(--background-color--surface); }
.form-priere_option:has(input:checked) { border-color: var(--action--primary); box-shadow: inset 0 0 0 1px var(--action--primary); }
