/* ============================================
   subbrand-maternite.css — DA Maternité (sous-marque Almaviva)
   ============================================
   Active uniquement sur sites avec almaviva_type='maternite'.
   Scope strict via body.subbrand-maternite (additive, no-op ailleurs).

   Architecture :
   - @font-face : Lora (titres) + OpenDyslexic (a11y mode dys), self-hosté woff2 latin
   - Override des tokens --alm-* canoniques sous .subbrand-maternite
   - 9 variations layout/animation maternité
   - Override haut-contraste a11y (html[data-contrast="high"])

   Toutes les paires couleur validées AA min, beaucoup AAA. Voir tableau
   ratios dans la documentation Étape 2.
   ============================================ */

/* ===== Fonts self-hosted (woff2 latin) ===== */

@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/lora/lora-latin-variable.woff2') format('woff2-variations'),
       url('../fonts/lora/lora-latin-variable.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* @font-face OpenDyslexic déplacé vers a11y-toolbar.css (GLOBAL) : le mode
   Dyslexique est une feature réseau, plus maternité-only. Cf. a11y-toolbar.css. */

/* ===== Override tokens canoniques (palette + polices + timing) ===== */

body.subbrand-maternite {
  /* Palette bordeaux principal (override --alm-blue chain) */
  --alm-blue:       #6b1f3a;
  --alm-blue-2:     #4f1429;
  --alm-blue-3:     #2f0a18;
  --alm-blue-dark:  #4f1429;  /* alias rétro-compat portail.css */
  --alm-blue-light: #8b3445;
  --alm-blue-soft:  #d8c0c8;  /* analogue à --alm-blue-soft #A1C0E5 */

  /* Accent rosé (override --alm-orange chain) */
  --alm-orange:        #a64759;
  --alm-orange-2:      #8b3445;
  --alm-orange-dark:   #8b3445;  /* alias portail.css */
  --alm-orange-darker: #6b1f3a;
  --alm-orange-light:  #c97b6b;  /* fond décoratif léger, INTERDIT en texte sur clair */

  /* Fonds (override --alm-bg-* chain) */
  --alm-bg-soft:  #faf3f3;       /* fond doux rosé pâle */
  --alm-bg-light: #fdf8f8;       /* presque blanc teinté */
  --alm-bg-grey:  #f4ecec;       /* gris teinté */

  /* Texte body teinté rosé */
  --alm-text:      #4a3a3a;
  --alm-text-soft: #6b5454;
  --alm-gray-700:  #4a3a3a;      /* override pour cohérence */
  --alm-border:    #e8dada;
  --alm-gray-200:  #e8dada;      /* bordures teintées */

  /* CTA tokens (texte forcé blanc sur fond bordeaux/rosé) */
  --cta-bg:       #8b3445;
  --cta-bg-hover: #6b1f3a;
  --cta-text:     #ffffff;

  /* Alias rétro-compat --av-* (utilisés par sections.css) */
  --av-b:    #6b1f3a;
  --av-b2:   #4f1429;
  --av-b3:   #2f0a18;
  --av-o:    #a64759;
  --av-o2:   #8b3445;
  --av-bg:   #faf3f3;
  --av-gr:   #e8dada;
  --av-ink:  #4a3a3a;

  /* Override DIRECT des aliases legacy figés au :root (variables.css L46-50,
     portail.css L64,67, custom.css L10).
     Bug systémique : 'foo: var(--bar)' déclaré au :root fige la computed value
     de foo à :root. Override de --bar plus bas dans la cascade ne propage PAS
     via cet alias. Solution : redéclarer foo directement avec la valeur subbrand. */
  --almaviva-bleu:        #6b1f3a;
  --almaviva-orange:      #a64759;
  --almaviva-fond-doux:   #faf3f3;
  --almaviva-bleu-clair:  #d8c0c8;
  --on-white-title:       #6b1f3a;
  --on-grey-title:        #6b1f3a;

  /* Polices : titres Lora, body Manrope (réseau) */
  --font-title: 'Lora', Georgia, 'Times New Roman', serif;
  --font-body:  'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --av-ft:      'Lora', Georgia, serif;  /* alias sections.css */
  --av-fb:      'Manrope', system-ui, sans-serif;

  /* Timing plus doux */
  --tr: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  --av-ease: cubic-bezier(0.16, 1, 0.3, 1);

  /* Sub-brand specific tokens */
  --subbrand-shadow-card: 0 8px 32px rgba(107, 31, 58, 0.08);
  --subbrand-shadow-hover: 0 16px 48px rgba(107, 31, 58, 0.15);
  --subbrand-radius-card: 16px;
  --subbrand-radius-btn: 999px;
}

/* ===== Typographie globale ===== */

body.subbrand-maternite {
  line-height: 1.7;  /* +0.1 vs Almaviva (1.6) — respiration accrue */
  color: var(--alm-text);
  background: #ffffff;
}

/* Previent scroll horizontal mobile via overflow-x sur html ET body.
   Sur certains layouts (nav.almaviva-nav en position:fixed right:-100% avec
   enfants ul/li static), les enfants augmentent le scrollWidth du document
   meme si le nav est hors viewport. Scope strict via :has(body.subbrand-maternite)
   sur html -- n'affecte pas la DA Almaviva (B3/B2 byte-identical garanti).
   :has() support : Chrome/Edge 105+, Firefox 121+, Safari 15.4+ (>95% global 2026). */
html:has(body.subbrand-maternite) {
  overflow-x: hidden;
}
body.subbrand-maternite {
  overflow-x: hidden;
}

body.subbrand-maternite h1,
body.subbrand-maternite h2,
body.subbrand-maternite h3,
body.subbrand-maternite h4,
body.subbrand-maternite h5,
body.subbrand-maternite h6,
body.subbrand-maternite .alm-portail-h1,
body.subbrand-maternite .alm-portail-h2,
body.subbrand-maternite .alm-portail-h3 {
  font-family: var(--font-title);
  letter-spacing: -0.005em;  /* serif n'a pas besoin de resserrement */
  /* PAS de `color` ici : les blocs alm/* definissent leur propre color
     (var(--alm-blue) propage au bordeaux via cascade subbrand sur fond clair,
     var(--on-blue) ou #fff reste blanc sur fond sombre). Forcer color ici
     casserait les titres sur fond bordeaux (.alm-block-hero-page,
     .alm-block-cta--blue, .alm-block-stats-banner--blue, etc.). */
}

/* ===== Variations layout : cards arrondies ===== */

body.subbrand-maternite .alm-card,
body.subbrand-maternite .alm-block-cards .alm-card,
body.subbrand-maternite .alm-block-team-card,
body.subbrand-maternite .alm-block-instance-card,
body.subbrand-maternite .alm-block-pricing-card,
body.subbrand-maternite .alm-block-news-card,
body.subbrand-maternite .alm-block-special-case-card,
body.subbrand-maternite .alm-block-schedule-card,
body.subbrand-maternite .alm-block-login-card,
body.subbrand-maternite .alm-vsvc-b__card {
  border-radius: var(--subbrand-radius-card);
  box-shadow: var(--subbrand-shadow-card);
  transition: transform var(--tr), box-shadow var(--tr);
}

body.subbrand-maternite .alm-card:hover,
body.subbrand-maternite .alm-block-cards .alm-card:hover,
body.subbrand-maternite .alm-block-team-card:hover,
body.subbrand-maternite .alm-block-instance-card:hover,
body.subbrand-maternite .alm-block-pricing-card:hover,
body.subbrand-maternite .alm-block-news-card:hover,
body.subbrand-maternite .alm-block-special-case-card:hover,
body.subbrand-maternite .alm-block-schedule-card:hover {
  transform: translateY(-3px) scale(1.005);
  box-shadow: var(--subbrand-shadow-hover);
}

/* ===== Variations layout : boutons capsule ===== */

body.subbrand-maternite .alm-btn,
body.subbrand-maternite .alm-btn-primary,
body.subbrand-maternite .alm-btn-secondary,
body.subbrand-maternite .alm-block-cta__buttons .alm-btn,
body.subbrand-maternite .alm-v-btn {
  border-radius: var(--subbrand-radius-btn);
}

/* Systeme CTA consolide -> voir bloc "Systeme CTA maternite coherent" en bas
   du fichier. Les regles ad hoc de styling boutons (background/color/border)
   y sont centralisees pour eviter les conflits de cascade. */

/* ===== Variations layout : padding sections aéré ===== */

body.subbrand-maternite .alm-block {
  padding-block: clamp(64px, 10vw, 120px);  /* +25-50% vs 48/7/80 */
}

body.subbrand-maternite .alm-block--compact {
  padding-block: clamp(40px, 6vw, 72px);
}

/* ===== Variations layout : hero overlay bordeaux ===== */

body.subbrand-maternite .alm-block-hero-page {
  background: linear-gradient(135deg, var(--alm-blue) 0%, var(--alm-blue-2) 100%);
  background-image: var(--hero-img, linear-gradient(135deg, var(--alm-blue) 0%, var(--alm-blue-2) 100%));
}

/* .alm-block-hero-page__overlay → defini dans le bloc 'Override exhaustif'
   plus bas (utilise les triplets RGB locaux pour cohérence DRY). */

/* ===== Variations layout : eyebrow accent rosé ===== */

body.subbrand-maternite .alm-eyebrow,
body.subbrand-maternite .alm-block__eyebrow,
body.subbrand-maternite .alm-block-hero-page__eyebrow {
  color: var(--alm-orange);
  font-family: var(--font-body);  /* eyebrow garde sans-serif pour lisibilité */
}

/* ===== Liens (texte courant uniquement, dans paragraphes RichText) =====
   La regle generique 'a:not(.alm-btn)...' precedente avait spec (0,5,1)
   qui ecrasait les color natives #fff des boutons a classe specifique
   (.alm-block-alert-banner__cta, .alm-block-anchor-nav__link sur fond
   --bg-blue, .alm-block-livrets__cta) sur fond bordeaux -> texte invisible.

   Solution : drop la regle generique. Les blocs definissent deja leur
   color (var(--alm-blue) sur fond clair propage au bordeaux subbrand,
   var(--on-blue)/#fff reste blanc sur fond sombre). Pour les <a> de
   texte courant dans paragraphes RichText (split, key-message), on
   colorise via un scope precis spec (0,2,1) qui ne risque pas d'ecraser
   les color natives des boutons a classe specifique. */

body.subbrand-maternite .alm-block-split__content a,
body.subbrand-maternite .alm-block-split p a,
body.subbrand-maternite .alm-block-key-message a,
body.subbrand-maternite .alm-block__header a,
body.subbrand-maternite .alm-lead a {
  color: var(--alm-blue);
  text-decoration-color: var(--alm-orange);
  text-underline-offset: 3px;
  transition: color var(--tr);
}

body.subbrand-maternite .alm-block-split__content a:hover,
body.subbrand-maternite .alm-block-split p a:hover,
body.subbrand-maternite .alm-block-key-message a:hover,
body.subbrand-maternite .alm-block__header a:hover,
body.subbrand-maternite .alm-lead a:hover {
  color: var(--alm-blue-2);
}

/* ===== Inputs / forms ===== */

body.subbrand-maternite input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
body.subbrand-maternite textarea,
body.subbrand-maternite select {
  border-radius: 8px;
  border-color: var(--alm-border);
  transition: border-color var(--tr), box-shadow var(--tr);
}

body.subbrand-maternite input:focus,
body.subbrand-maternite textarea:focus,
body.subbrand-maternite select:focus {
  border-color: var(--alm-blue);
  box-shadow: 0 0 0 3px rgba(107, 31, 58, 0.12);
  outline: none;
}

/* ===== Variations a11y (taille texte + contraste + police) =====
   Tailles : A- 85% / Par defaut 100% / A+ 115% (cf a11y-toolbar.js).
   Police : data-font=lowvision (Atkinson) / dyslexia (OpenDyslexic) /
   absent=defaut. Cles correspondantes appliquees sur <html>. */

/* Taille texte : règle GLOBALE déplacée dans accessibility.css
   (html[data-fontsize] { font-size: % } scale le root -> les rem cascadent
   sur les 44 sites). L'ancienne règle body.subbrand-maternite en em était sans
   effet (contenu en rem/px). Retirée ici pour éviter une double application. */

/* Contraste élevé : géré GLOBALEMENT dans accessibility.css (Axe B — 44 sites).
   L'ancien bloc maternité remappait tous les tokens en noir/blanc strict
   (--alm-blue->#000) + forçait color:#000 global -> les sections à fond de
   marque sombre (hero, CTA, footer) devenaient noir-sur-noir (texte invisible).
   Retiré : on préserve désormais les fonds bordeaux/bleu et on ne renforce que
   le texte/liens (cf. accessibility.css). */

/* Mode police : override les tokens --font-title et --font-body sur subbrand.
   Les regles globales (body, h1-h6) sont dans a11y-toolbar.css scope <body>,
   ici on override aussi les tokens specifiques sub-brand (--font-title etc.)
   pour cas ou un selecteur subbrand utilise var(--font-title) explicite. */

html[data-font="lowvision"] body.subbrand-maternite {
  --font-title: 'Atkinson Hyperlegible', system-ui, sans-serif;
  --font-body:  'Atkinson Hyperlegible', system-ui, sans-serif;
  --av-ft: 'Atkinson Hyperlegible', system-ui, sans-serif;
  --av-fb: 'Atkinson Hyperlegible', system-ui, sans-serif;
}

html[data-font="dyslexia"] body.subbrand-maternite {
  --font-title: 'OpenDyslexic', sans-serif;
  --font-body:  'OpenDyslexic', sans-serif;
  --av-ft: 'OpenDyslexic', sans-serif;
  --av-fb: 'OpenDyslexic', sans-serif;
}

/* ============================================
   Override header + footer Almaviva (palette maternité)
   ============================================
   Note cascade : --alm-blue / --alm-orange sont déjà overridés au
   scope body.subbrand-maternite (bordeaux / rosé). Les règles existantes
   de custom.css qui consomment var(--almaviva-bleu) / var(--almaviva-orange)
   héritent donc mécaniquement de la nouvelle palette via lazy var() :
   - .almaviva-footer { background: var(--almaviva-bleu) } → bordeaux
   - .almaviva-footer::before { background: var(--almaviva-orange) } → rosé
   - .almaviva-topbar a:hover { color: var(--almaviva-orange) } → rosé
   - .almaviva-topbar-phone { color: var(--almaviva-bleu) } → bordeaux

   Le présent bloc remplace le footer plein bordeaux par un fond CRÈME
   (#f5efe8, beige chaud distinct du body rosé) avec textes/liens en
   palette maternité claire-sur-clair. Contraste validé AA min sur tous
   paires (audit dans la doc Etape 4).

   Spécificité : body.subbrand-maternite .almaviva-footer = (0,2,1) bat
   .almaviva-footer (0,1,1) de custom.css sans `!important`. Une seule
   exception : .almaviva-footer-social-ic { color: #fff !important } à
   battre obligatoirement avec `!important`.
   ============================================ */

/* --- Fond + barre déco haut --- */

body.subbrand-maternite .almaviva-footer {
  background: #f5efe8;
  color: var(--alm-text);
}

body.subbrand-maternite .almaviva-footer::before {
  background: var(--alm-orange);  /* rosé #a64759, déjà via cascade */
}

/* --- Logo footer : couleur d'origine (retire blanchification) --- */

body.subbrand-maternite .almaviva-footer-logo {
  filter: none;
  opacity: 1;
}

/* --- Identity (name, coords, hours, fax) --- */

body.subbrand-maternite .almaviva-footer-name {
  color: var(--alm-blue);  /* bordeaux */
}

body.subbrand-maternite .almaviva-footer-coords p,
body.subbrand-maternite .almaviva-footer-coords {
  color: var(--alm-text);
}

body.subbrand-maternite .almaviva-footer-fax,
body.subbrand-maternite .almaviva-footer-hours {
  color: var(--alm-text-soft);
}

/* --- Liens footer (général + coords + reseau + bottom) --- */

body.subbrand-maternite .almaviva-footer a,
body.subbrand-maternite .almaviva-footer-coords a,
body.subbrand-maternite .almaviva-footer-reseau-list a,
body.subbrand-maternite .almaviva-footer-bottom__links a {
  color: var(--alm-blue);
  text-decoration: none;
}

body.subbrand-maternite .almaviva-footer a:hover,
body.subbrand-maternite .almaviva-footer a:focus-visible,
body.subbrand-maternite .almaviva-footer-coords a:hover,
body.subbrand-maternite .almaviva-footer-reseau-list a:hover,
body.subbrand-maternite .almaviva-footer-bottom__links a:hover {
  color: var(--cta-bg);  /* #8b3445 */
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

/* --- Titres h4 + accent ::after --- */

body.subbrand-maternite .almaviva-footer h4 {
  color: var(--alm-blue);
}

body.subbrand-maternite .almaviva-footer h4::after {
  background: var(--alm-orange);  /* rosé */
}

/* --- Icônes sociales (override !important blanc) --- */

body.subbrand-maternite .almaviva-footer-social-ic {
  background: #e8dada;             /* rosé très pâle */
  border-color: var(--alm-border);
  color: var(--alm-blue) !important;  /* bat le `color: #fff !important` de custom.css L436 */
}

body.subbrand-maternite .almaviva-footer-social-ic:hover {
  background: var(--alm-blue-soft);
  border-color: var(--alm-blue);
  color: var(--alm-blue) !important;  /* idem */
}

/* --- Réseau footer + bottom : séparateurs visibles sur fond crème --- */

body.subbrand-maternite .almaviva-footer-reseau,
body.subbrand-maternite .almaviva-footer-bottom {
  border-top-color: var(--alm-border);
}

body.subbrand-maternite .almaviva-footer-region {
  color: var(--alm-text);
}

body.subbrand-maternite .almaviva-footer-region-count {
  color: var(--alm-text-soft);
  opacity: 1;
}

body.subbrand-maternite .almaviva-footer-region:hover {
  color: var(--cta-bg);
}

body.subbrand-maternite .almaviva-footer-region:hover .almaviva-footer-region-count {
  color: var(--cta-bg);
}

body.subbrand-maternite .almaviva-footer-bottom {
  color: var(--alm-text-soft);
}

body.subbrand-maternite .almaviva-footer-bottom__legal {
  color: var(--alm-text-soft);
}

/* --- Topbar : sanity overrides (déjà via cascade, robustesse anti-cache) --- */

body.subbrand-maternite .almaviva-topbar-phone {
  color: var(--alm-blue);
}

body.subbrand-maternite .almaviva-topbar a:hover {
  color: var(--alm-orange);
}

/* ===== Responsive : ajustements mobile ===== */

/* ============================================================
   Override exhaustif des hex/rgba bleu+orange Almaviva HARDCODES
   ============================================================
   Etape 4 du balayage : remplace les couleurs litterales (insensibles
   a la cascade CSS vars) sur ~50 selecteurs scope maternite.

   Strategie DRY :
   - Triplets RGB locaux (--rgb-*) pour rgba() reusables.
   - Override des vars --shadow-* (definies dans portail.css :root)
     scope body.subbrand-maternite -> corrige ~20 box-shadows qui les
     consomment d'un coup, sans toucher portail.css.
   - Specificite body.subbrand-maternite X (0,2,1) bat custom.css X (0,1,1)
     sans !important.

   Mapping Almaviva -> Maternite :
     #004899 alm-blue     -> #6b1f3a bordeaux       (107, 31, 58)
     #003674 alm-blue-2   -> #4f1429 bordeaux deep  (79, 20, 41)
     #003670 legacy proche-> #4f1429 (idem alm-blue-2 mat)
     #00264F alm-blue-3   -> #2f0a18 bordeaux deepest (47, 10, 24)
     #EE7203 alm-orange   -> #a64759 rose           (166, 71, 89)
     #D96502/3 orange-2   -> #8b3445 cta-bg         (139, 52, 69)

   Anneau focus a11y : on conserve l'opacite 0.15 (parite WCAG avec
   l'origine bleu, non-regression). Sur fond input blanc le ring
   bordeaux 0.15 est equivalent visuel au bleu 0.15.
   ============================================================ */

body.subbrand-maternite {
  /* Triplets RGB locaux pour rgba() */
  --rgb-bordeaux:      107, 31, 58;
  --rgb-bordeaux-deep: 47, 10, 24;
  --rgb-rose:          166, 71, 89;
  --rgb-rose-cta:      139, 52, 69;

  /* Override des --shadow-* (portail.css L43-47) — corrige toutes les
     box-shadows qui consomment ces vars (DRY ~20 occurrences). */
  --shadow-sm:     0 1px 2px rgba(var(--rgb-bordeaux), 0.05);
  --shadow-md:     0 4px 12px rgba(var(--rgb-bordeaux), 0.08);
  --shadow-lg:     0 12px 32px rgba(var(--rgb-bordeaux), 0.12);
  --shadow-xl:     0 24px 64px rgba(var(--rgb-bordeaux), 0.16);
  --shadow-orange: 0 8px 24px rgba(var(--rgb-rose), 0.25);
}

/* Note : les overrides ad hoc .alm-vhero-a__title/__kicker/__stats {color:#fff}
   sont supprimés depuis qu'on a retiré la `color` de la règle générique h1-h6
   (cf typographie globale). Les color natives de sections.css (L28-34) suffisent
   désormais (titre/stats `#fff`, kicker/span `rgba(255,255,255,.85)`). */

/* ===== sections.css : V-Hero overlays + boutons hero ===== */

body.subbrand-maternite .alm-v-btn--p {
  box-shadow: 0 10px 30px -10px rgba(var(--rgb-rose-cta), 0.55);
}
body.subbrand-maternite .alm-v-btn--p:hover {
  box-shadow: 0 16px 36px -10px rgba(var(--rgb-bordeaux), 0.7);
}

body.subbrand-maternite .alm-vhero-a__ov {
  background: linear-gradient(115deg,
    rgba(var(--rgb-bordeaux-deep), 0.85) 0%,
    rgba(var(--rgb-bordeaux), 0.55) 45%,
    rgba(var(--rgb-rose), 0.45) 100%);
}
body.subbrand-maternite .alm-vhero-a__ov::after {
  background: linear-gradient(to top, rgba(var(--rgb-bordeaux-deep), 0.9) 0%, transparent 55%);
}

body.subbrand-maternite .alm-vhero-b__right::after {
  background: linear-gradient(135deg,
    rgba(var(--rgb-bordeaux), 0.78) 0%,
    rgba(var(--rgb-bordeaux), 0.4) 45%,
    rgba(var(--rgb-rose), 0.5) 100%);
}
body.subbrand-maternite .alm-vhero-b__right::before {
  background: linear-gradient(to right, rgba(var(--rgb-bordeaux), 0.55) 0%, transparent 28%);
}

body.subbrand-maternite .alm-vhero-c__cell::after {
  background: linear-gradient(180deg, transparent 60%, rgba(var(--rgb-bordeaux-deep), 0.4) 100%);
}

/* ===== sections.css : V-SVC-B (services) ===== */

body.subbrand-maternite .alm-vsvc-b__track::-webkit-scrollbar-track {
  background: rgba(var(--rgb-bordeaux), 0.08);
}
body.subbrand-maternite .alm-vsvc-b__card {
  box-shadow: 0 6px 24px rgba(var(--rgb-bordeaux-deep), 0.06);
}
body.subbrand-maternite .alm-vsvc-b__card:hover,
body.subbrand-maternite .alm-vsvc-b__card:focus-within {
  box-shadow: 0 18px 40px -10px rgba(var(--rgb-bordeaux-deep), 0.18);
}

/* ===== sections.css : V-CTA-A/B/C ===== */

body.subbrand-maternite .alm-vcta-a__kicker {
  border-color: rgba(var(--rgb-rose), 0.5);
  background: rgba(var(--rgb-rose), 0.1);
}

body.subbrand-maternite .alm-vcta-b__card {
  box-shadow: 0 30px 80px -20px rgba(var(--rgb-rose-cta), 0.55),
              0 50px 120px -40px rgba(var(--rgb-bordeaux-deep), 0.3);
}

body.subbrand-maternite .alm-vcta-c__bg::after {
  background: linear-gradient(105deg,
    rgba(var(--rgb-bordeaux-deep), 0.92) 0%,
    rgba(var(--rgb-bordeaux), 0.78) 35%,
    rgba(var(--rgb-bordeaux), 0.25) 70%,
    transparent 100%);
}

/* ===== sections.css : Urgences (animated) + maternite img + equipements ===== */

body.subbrand-maternite .alm-urgences::before {
  background: radial-gradient(circle, rgba(var(--rgb-rose), 0.15) 0%, transparent 70%);
}
body.subbrand-maternite .alm-urgences__ic {
  box-shadow: 0 14px 40px -10px rgba(var(--rgb-rose-cta), 0.5);
  animation-name: subbrandUrgPulse;
}
body.subbrand-maternite .alm-urgences__meta li {
  box-shadow: 0 4px 14px rgba(var(--rgb-bordeaux-deep), 0.06);
}
@keyframes subbrandUrgPulse {
  0%, 100% {
    box-shadow: 0 14px 40px -10px rgba(var(--rgb-rose-cta), 0.5),
                0 0 0 0 rgba(var(--rgb-rose), 0.4);
  }
  50% {
    box-shadow: 0 14px 40px -10px rgba(var(--rgb-rose-cta), 0.5),
                0 0 0 18px rgba(var(--rgb-rose), 0);
  }
}

body.subbrand-maternite .alm-maternite__img::after {
  background: linear-gradient(135deg, transparent 60%, rgba(var(--rgb-rose), 0.15) 100%);
}

body.subbrand-maternite .alm-equipements__dot {
  box-shadow: 0 0 0 4px rgba(var(--rgb-rose), 0.15);
}

/* ===== custom.css : .alm-home legacy sections (CTA, stats, doctors, etc.) ===== */

body.subbrand-maternite .alm-home h2:not([class*="__"]),
body.subbrand-maternite .alm-home h3:not([class*="__"]),
body.subbrand-maternite .alm-stat-value,
body.subbrand-maternite .alm-testi-name {
  color: var(--alm-blue);  /* bordeaux via cascade subbrand */
}
/* Boutons CTA (.alm-btn-primary / .alm-btn-secondary) -> systeme consolide
   en fin de fichier (cf "Systeme CTA maternite coherent").
   Ces regles ad hoc legacy (background var(--alm-orange) en primary, etc.)
   ont ete supprimees au profit du systeme par contexte de fond. */

body.subbrand-maternite .alm-service-card:hover {
  border-color: var(--alm-orange);
  box-shadow: 0 8px 24px rgba(var(--rgb-rose), 0.12);
}
body.subbrand-maternite .alm-doctors {
  background: var(--alm-blue);
}
body.subbrand-maternite .alm-cta-final {
  background: linear-gradient(135deg, var(--alm-orange), var(--cta-bg));
}
body.subbrand-maternite .alm-cta-final .alm-btn-primary {
  color: var(--alm-orange);
}

/* ===== custom.css : Espace Pro CTA header ===== */

body.subbrand-maternite .almaviva-menu .almaviva-cta {
  box-shadow: 0 4px 12px rgba(var(--rgb-rose-cta), 0.25);
}
body.subbrand-maternite .almaviva-menu .almaviva-cta:hover {
  background: var(--alm-blue);  /* bordeaux #6b1f3a — override #d96503 */
  box-shadow: 0 6px 16px rgba(var(--rgb-bordeaux), 0.35);
}

/* ===== custom.css : .alm-hero LEGACY + .alm-hero-b (non rendu sur B18 actuel
   mais override pour future-proof si template change ou contenu legacy importe) ===== */

body.subbrand-maternite .alm-hero {
  background-color: var(--alm-blue);
}
body.subbrand-maternite .alm-hero::before {
  background-image:
    radial-gradient(circle at 80% 20%, rgba(var(--rgb-rose), 0.25) 0%, transparent 50%),
    radial-gradient(circle at 20% 80%, rgba(var(--rgb-bordeaux), 0.4) 0%, transparent 60%),
    linear-gradient(135deg,
      rgba(var(--rgb-bordeaux), 0.92) 0%,
      rgba(var(--rgb-bordeaux), 0.75) 50%,
      rgba(var(--rgb-bordeaux-deep), 0.85) 100%);
}
body.subbrand-maternite .alm-hero-inner::before,
body.subbrand-maternite .alm-hero .alm-btn-primary {
  background: var(--alm-orange);
}
body.subbrand-maternite .alm-hero .alm-btn-primary {
  box-shadow: 0 10px 40px -10px rgba(var(--rgb-rose), 0.6),
              0 0 0 0 rgba(var(--rgb-rose), 0.4);
}
body.subbrand-maternite .alm-hero .alm-btn-primary:hover {
  box-shadow: 0 18px 50px -10px rgba(var(--rgb-rose), 0.7),
              0 0 0 4px rgba(var(--rgb-rose), 0.15);
}
body.subbrand-maternite .alm-hero .alm-btn-ghost:hover {
  color: var(--alm-blue);
}
body.subbrand-maternite .alm-hero-type {
  background: rgba(var(--rgb-rose), 0.15);
  border-color: rgba(var(--rgb-rose), 0.6);
}
body.subbrand-maternite .alm-hero-stats li {
  border-left-color: rgba(var(--rgb-rose), 0.8);
}
body.subbrand-maternite .alm-hero--b {
  background: var(--alm-blue);
}
body.subbrand-maternite .alm-hero-b__content {
  background-image:
    radial-gradient(circle at 20% 20%, rgba(var(--rgb-rose), 0.12) 0%, transparent 60%),
    linear-gradient(135deg, var(--alm-blue) 0%, var(--alm-blue-2) 100%);
}
body.subbrand-maternite .alm-hero-b__inner .alm-hero-type {
  border-color: rgba(var(--rgb-rose), 0.6);
  background: rgba(var(--rgb-rose), 0.15);
}
body.subbrand-maternite .alm-hero-b__stats li {
  border-left-color: var(--alm-orange);
}
body.subbrand-maternite .alm-hero-b__image::before {
  background: linear-gradient(to right, rgba(var(--rgb-bordeaux), 0.35) 0%, transparent 30%);
}

/* ===== custom.css : Block split + practitioner directory (focus + cards) ===== */

body.subbrand-maternite .alm-block-split__media-placeholder--icon,
body.subbrand-maternite .alm-block-practitioner-directory__initials {
  color: var(--alm-blue);
}
body.subbrand-maternite .alm-block-practitioner-directory__select:focus {
  outline-color: var(--alm-blue);
  border-color: var(--alm-blue);
}
body.subbrand-maternite .alm-block-practitioner-directory__card {
  box-shadow: 0 1px 3px rgba(var(--rgb-bordeaux), 0.05);
}
body.subbrand-maternite .alm-block-practitioner-directory__card:hover {
  box-shadow: 0 12px 28px rgba(var(--rgb-bordeaux), 0.12);
}

/* ===== portail-etablissements.css : .alm-tag--urgences =====
   Règle INERTE sur les sites de maternité : .alm-tag n'est rendu que par
   /nos-etablissements/, qui vit sur le portail et ne porte pas cette
   sous-marque. Mesuré au rendu, pas déduit. Conservée telle quelle. */

body.subbrand-maternite .alm-tag--urgences {
  background: rgba(var(--rgb-rose), 0.12);
}

/* ===== portail-blocks.css : .alm-espace-pro-note ===== */

body.subbrand-maternite .alm-espace-pro-note {
  background: rgba(var(--rgb-bordeaux), 0.06);
  border-left-color: var(--alm-blue);
}
body.subbrand-maternite .alm-espace-pro-note a {
  color: var(--alm-blue);
}

/* ===== portail-cookies.css : bandeau cookies shadow ===== */

body.subbrand-maternite .alm-cookie-banner {
  box-shadow: 0 -8px 32px rgba(var(--rgb-bordeaux), 0.15);
}

/* ===== accessibility.css : anneau focus form fields ===== */

body.subbrand-maternite .alm-field input:focus,
body.subbrand-maternite .alm-field select:focus,
body.subbrand-maternite .alm-field textarea:focus,
body.subbrand-maternite .alm-carriere-field input:focus,
body.subbrand-maternite .alm-carriere-field select:focus,
body.subbrand-maternite .alm-carriere-field textarea:focus {
  box-shadow: 0 0 0 3px rgba(var(--rgb-bordeaux), 0.15);
}

/* ===== Blocs Gutenberg (build/blocks/*) G.3 : opacite >=0.12 perceptibles ===== */

body.subbrand-maternite .alm-block--bg-blue.alm-block-anchor-nav.is-sticky {
  background: rgba(var(--rgb-bordeaux), 0.95);
}

body.subbrand-maternite .alm-block-annuaire .alm-block-annuaire__search-input:focus,
body.subbrand-maternite .alm-block-annuaire .alm-block-annuaire__select:focus {
  border-color: var(--alm-blue-2);  /* override #003670 hex hardcode */
  box-shadow: 0 0 0 3px rgba(var(--rgb-bordeaux), 0.18);
}

body.subbrand-maternite .alm-block-application-form__field input:focus,
body.subbrand-maternite .alm-block-application-form__field textarea:focus,
body.subbrand-maternite .alm-block-contact-form__field input:focus,
body.subbrand-maternite .alm-block-contact-form__field select:focus,
body.subbrand-maternite .alm-block-contact-form__field textarea:focus,
body.subbrand-maternite .alm-block-login-card__field input:focus {
  box-shadow: 0 0 0 3px rgba(var(--rgb-bordeaux), 0.12);
}

body.subbrand-maternite .alm-block--bg-white.alm-block-certification-banner .alm-block-certification-banner__badge {
  background: rgba(var(--rgb-bordeaux), 0.05);
  border-color: rgba(var(--rgb-bordeaux), 0.15);
}

body.subbrand-maternite .alm-block-contact-timeline__channel--sms,
body.subbrand-maternite .alm-block-service-link-grid__badge--official {
  background: rgba(var(--rgb-bordeaux), 0.12);
}

body.subbrand-maternite .alm-block-equipment-gallery__cat,
body.subbrand-maternite .alm-block-video-tutorial-grid__category {
  background: rgba(var(--rgb-bordeaux), 0.9);
}

body.subbrand-maternite .alm-block-hero-page__overlay {
  background: linear-gradient(135deg,
    rgba(var(--rgb-bordeaux), 0.85),
    rgba(var(--rgb-bordeaux-deep), 0.75));
}

/* Hero reseau (template page-legal-centralized.php) : ce template rend le
   HTML hero directement sans the_content() -> WP n'auto-enqueue PAS le CSS
   du bloc alm/hero-page (build/blocks/hero-page/style-index.css) -> les
   regles natives (color, padding, min-height, breadcrumb) sont absentes.
   Replique ici les regles minimales hero pour les pages reseau
   (mentions-legales, cookies). Scope subbrand strict, n'affecte pas etab. */
body.subbrand-maternite .alm-block-hero-page {
  align-items: center;
  display: flex;
  min-height: clamp(220px, 28vw, 320px);
  padding-block: clamp(56px, 8vw, 96px);
  position: relative;
  overflow: hidden;
  background: var(--alm-blue); /* fond bordeaux subbrand sous l'overlay */
  /* ALM_HERO_IMG_MATERNITE_v1 — rend l'image de fond a nouveau peignable.
     Le raccourci `background` ci-dessus remet background-image a `none`. Or
     cette regle a la MEME specificite (0,2,0) que celle de la ligne 200, qui
     tente `background-image: var(--hero-img, ...)` — et elle la SUIT dans le
     fichier. A egalite, la derniere gagne : la ligne 200 n'a donc jamais rien
     peint depuis sa creation (fd8404a9), ni l'image, ni meme son repli.
     Mesure : `background-image` vaut `none` avec ET sans image, et la photo
     n'etait jamais requetee par le navigateur.
     Correctif CONDITIONNEL, pas une suppression : sans --hero-img la valeur
     reste `none` et le fond bordeaux (background-color de la ligne au-dessus)
     plus le voile sont inchanges. `background-size:cover` et
     `background-position:center` continuent de venir de la feuille du bloc. */
  background-image: var(--hero-img, none);
}
body.subbrand-maternite .alm-block-hero-page > .alm-container,
body.subbrand-maternite .alm-block-hero-page__inner {
  position: relative;
  width: 100%;
  z-index: 1;
}
body.subbrand-maternite .alm-block-hero-page__overlay {
  /* overlay sibling positionné absolu — re-declare structure */
  position: absolute;
  inset: 0;
  z-index: 0;
}
body.subbrand-maternite .alm-block-hero-page__title,
body.subbrand-maternite .alm-block-hero-page__eyebrow,
body.subbrand-maternite .alm-block-hero-page__lead,
body.subbrand-maternite .alm-block-hero-page .alm-breadcrumb,
body.subbrand-maternite .alm-block-hero-page .alm-breadcrumb a,
body.subbrand-maternite .alm-block-hero-page .alm-breadcrumb a:hover {
  color: #ffffff;
}
body.subbrand-maternite .alm-block-hero-page__title {
  font-family: var(--font-title);
  font-size: clamp(1.875rem, 5vw, 3.25rem);
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.1;
  margin: 0 0 16px;
  max-width: 22ch;
}
body.subbrand-maternite .alm-block-hero-page .alm-breadcrumb {
  font-size: 0.875rem;
  margin-bottom: 12px;
  opacity: 0.9;
}

body.subbrand-maternite .alm-block-key-message--boxed .alm-block-key-message__inner {
  background: rgba(var(--rgb-bordeaux), 0.05);
  border-color: rgba(var(--rgb-bordeaux), 0.15);
}

body.subbrand-maternite .alm-block-legal-disclaimer--default .alm-block-legal-disclaimer__inner,
body.subbrand-maternite .alm-block-special-case-card--info .alm-block-special-case-card__action {
  border-top-color: rgba(var(--rgb-bordeaux), 0.2);
}

body.subbrand-maternite .alm-block-news-card:hover,
body.subbrand-maternite .alm-block-resource-platform__media img,
body.subbrand-maternite .alm-block-specialty-banner__media img {
  box-shadow: 0 12px 32px rgba(var(--rgb-bordeaux), 0.12);
}

body.subbrand-maternite .alm-block-login-card__card {
  box-shadow: 0 12px 40px rgba(var(--rgb-bordeaux), 0.12);
}

body.subbrand-maternite .alm-block--bg-grey .alm-block-numbered-objectives__number {
  box-shadow: 0 4px 12px rgba(var(--rgb-bordeaux), 0.3);
}

body.subbrand-maternite .alm-block-service-link-grid {
  box-shadow: 0 12px 32px rgba(var(--rgb-bordeaux), 0.1);
}

/* ============================================================
   Systeme CTA maternite : MATRICE COMPLETE
   ============================================================
   But : aucun etat ou texte == fond, aucun fond bouton == fond wrapper.

   Strategie spec :
     - Cat A (fond clair, defaut) :
         html body.subbrand-maternite a.alm-btn.alm-btn-primary
         = (0,0,1)+(0,1,1)+(0,2,1) = (0,3,3)
     - Cat B (fond fonce override) doit battre A :
         html body.subbrand-maternite :is(WRAPPERS) a.alm-btn.alm-btn-secondary
         = (0,0,1)+(0,1,1)+(0,1,0)+(0,2,1) = (0,4,3)
       (0,4,3) > (0,3,3) -> B gagne sur fond fonce.

   MATRICE :
                              | fond CLAIR              | fond FONCE
   ---------------------------|-------------------------|-------------------------
   Primary plein normal       | bg #6b1f3a / #fff       | bg #fff / #6b1f3a
   Primary plein hover        | bg #4f1429 / #fff       | bg #faf3f3 / #4f1429
   Secondary ghost normal     | transp / #6b1f3a brdr   | transp / #fff brdr
   Secondary ghost hover      | rgba(.08) / #4f1429     | rgba(.15) / #fff
   Lien texte courant         | #6b1f3a                 | #fff

   13 wrappers fond fonce (liste :is() centralisee) :
     .alm-block-cta--blue/--gradient/--orange
     .alm-block-stats-banner--blue/--gradient/--orange
     .alm-block-recruitment-banner--blue/--orange
     .alm-block-identification-callout, .alm-block-quote-banner
     .alm-block--bg-blue, .alm-vhero-a
   (alert-banner --urgent traite separement : fond pale = clair)

   Zero !important. Spec elevee suffit.
   ============================================================ */

/* ====================
   CATEGORIE A — fond CLAIR (defaut)
   ==================== */

/* A.1 PRIMARY plein */
html body.subbrand-maternite a.alm-btn-primary,
html body.subbrand-maternite a.alm-btn.alm-btn-primary,
html body.subbrand-maternite button.alm-btn-primary,
html body.subbrand-maternite input[type="submit"].alm-btn-primary,
html body.subbrand-maternite .wp-block-button > a.wp-block-button__link,
html body.subbrand-maternite a[class*="__cta"]:not([class*="--secondary"]):not([class*="-secondary"]):not([class*="--ghost"]):not([class*="--disabled"]):not([class*="--info"]):not([class*="--warning"]),
html body.subbrand-maternite a[class*="__submit"],
html body.subbrand-maternite button[class*="__submit"] {
  background-color: var(--alm-blue);
  color: #ffffff;
  border: 1px solid var(--alm-blue);
  border-radius: var(--subbrand-radius-btn);
}
html body.subbrand-maternite a.alm-btn-primary:hover,
html body.subbrand-maternite a.alm-btn.alm-btn-primary:hover,
html body.subbrand-maternite button.alm-btn-primary:hover,
html body.subbrand-maternite input[type="submit"].alm-btn-primary:hover,
html body.subbrand-maternite .wp-block-button > a.wp-block-button__link:hover,
html body.subbrand-maternite a[class*="__cta"]:not([class*="--secondary"]):not([class*="-secondary"]):not([class*="--ghost"]):not([class*="--disabled"]):not([class*="--info"]):not([class*="--warning"]):hover,
html body.subbrand-maternite a[class*="__submit"]:hover,
html body.subbrand-maternite button[class*="__submit"]:hover {
  background-color: var(--alm-blue-2);
  color: #ffffff;
  border-color: var(--alm-blue-2);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(var(--rgb-bordeaux), 0.3);
}
html body.subbrand-maternite a.alm-btn-primary:focus-visible,
html body.subbrand-maternite a.alm-btn.alm-btn-primary:focus-visible,
html body.subbrand-maternite button.alm-btn-primary:focus-visible,
html body.subbrand-maternite input[type="submit"].alm-btn-primary:focus-visible,
html body.subbrand-maternite .wp-block-button > a.wp-block-button__link:focus-visible,
html body.subbrand-maternite a[class*="__cta"]:focus-visible,
html body.subbrand-maternite a[class*="__submit"]:focus-visible,
html body.subbrand-maternite button[class*="__submit"]:focus-visible {
  outline: 2px solid var(--alm-blue);
  outline-offset: 3px;
}

/* A.2 SECONDARY / GHOST outline */
html body.subbrand-maternite a.alm-btn-secondary,
html body.subbrand-maternite a.alm-btn.alm-btn-secondary,
html body.subbrand-maternite button.alm-btn-secondary,
html body.subbrand-maternite a.alm-btn-ghost,
html body.subbrand-maternite a.alm-btn.alm-btn-ghost,
html body.subbrand-maternite a[class*="__cta--secondary"],
html body.subbrand-maternite a[class*="__cta-secondary"],
html body.subbrand-maternite a[class*="__cta--ghost"] {
  background: transparent;
  color: var(--alm-blue);
  border: 2px solid var(--alm-blue);
  border-radius: var(--subbrand-radius-btn);
}
html body.subbrand-maternite a.alm-btn-secondary:hover,
html body.subbrand-maternite a.alm-btn.alm-btn-secondary:hover,
html body.subbrand-maternite button.alm-btn-secondary:hover,
html body.subbrand-maternite a.alm-btn-ghost:hover,
html body.subbrand-maternite a.alm-btn.alm-btn-ghost:hover,
html body.subbrand-maternite a[class*="__cta--secondary"]:hover,
html body.subbrand-maternite a[class*="__cta-secondary"]:hover,
html body.subbrand-maternite a[class*="__cta--ghost"]:hover {
  background: rgba(var(--rgb-bordeaux), 0.08);
  color: var(--alm-blue-2);
  border-color: var(--alm-blue-2);
  transform: translateY(-2px);
}
html body.subbrand-maternite a.alm-btn-secondary:focus-visible,
html body.subbrand-maternite a.alm-btn.alm-btn-secondary:focus-visible,
html body.subbrand-maternite button.alm-btn-secondary:focus-visible,
html body.subbrand-maternite a.alm-btn-ghost:focus-visible {
  outline: 2px solid var(--alm-blue);
  outline-offset: 3px;
}

/* ====================
   CATEGORIE B — fond FONCE (override A, 13 wrappers + hero)
   Spec : html(0,0,1)+body.X(0,1,1)+:is(class)(0,1,0)+a.X.Y(0,2,1) = (0,4,3)
   ==================== */

/* B.1 PRIMARY plein → inversion blanc + bordeaux */
html body.subbrand-maternite :is(
  .alm-block-cta--blue,
  .alm-block-cta--gradient,
  .alm-block-cta--orange,
  .alm-block-stats-banner--blue,
  .alm-block-stats-banner--gradient,
  .alm-block-stats-banner--orange,
  .alm-block-recruitment-banner--blue,
  .alm-block-recruitment-banner--orange,
  .alm-block-identification-callout,
  .alm-block-quote-banner,
  .alm-block--bg-blue,
  .alm-vhero-a
) :is(a.alm-btn-primary, a.alm-btn.alm-btn-primary, button.alm-btn-primary, input[type="submit"].alm-btn-primary),
html body.subbrand-maternite :is(
  .alm-block-cta--blue, .alm-block-cta--gradient, .alm-block-cta--orange,
  .alm-block-stats-banner--blue, .alm-block-stats-banner--gradient, .alm-block-stats-banner--orange,
  .alm-block-recruitment-banner--blue, .alm-block-recruitment-banner--orange,
  .alm-block-identification-callout, .alm-block-quote-banner, .alm-block--bg-blue, .alm-vhero-a
) .wp-block-button > a.wp-block-button__link,
html body.subbrand-maternite :is(
  .alm-block-cta--blue, .alm-block-cta--gradient, .alm-block-cta--orange,
  .alm-block-stats-banner--blue, .alm-block-stats-banner--gradient, .alm-block-stats-banner--orange,
  .alm-block-recruitment-banner--blue, .alm-block-recruitment-banner--orange,
  .alm-block-identification-callout, .alm-block-quote-banner, .alm-block--bg-blue, .alm-vhero-a
) a[class*="__cta"]:not([class*="--secondary"]):not([class*="-secondary"]):not([class*="--ghost"]) {
  background-color: #ffffff;
  color: var(--alm-blue);
  border: 1px solid #ffffff;
}
html body.subbrand-maternite :is(
  .alm-block-cta--blue, .alm-block-cta--gradient, .alm-block-cta--orange,
  .alm-block-stats-banner--blue, .alm-block-stats-banner--gradient, .alm-block-stats-banner--orange,
  .alm-block-recruitment-banner--blue, .alm-block-recruitment-banner--orange,
  .alm-block-identification-callout, .alm-block-quote-banner, .alm-block--bg-blue, .alm-vhero-a
) :is(a.alm-btn-primary, a.alm-btn.alm-btn-primary, button.alm-btn-primary):hover,
html body.subbrand-maternite :is(
  .alm-block-cta--blue, .alm-block-cta--gradient, .alm-block-cta--orange,
  .alm-block-stats-banner--blue, .alm-block-stats-banner--gradient, .alm-block-stats-banner--orange,
  .alm-block-recruitment-banner--blue, .alm-block-recruitment-banner--orange,
  .alm-block-identification-callout, .alm-block-quote-banner, .alm-block--bg-blue, .alm-vhero-a
) .wp-block-button > a.wp-block-button__link:hover,
html body.subbrand-maternite :is(
  .alm-block-cta--blue, .alm-block-cta--gradient, .alm-block-cta--orange,
  .alm-block-stats-banner--blue, .alm-block-stats-banner--gradient, .alm-block-stats-banner--orange,
  .alm-block-recruitment-banner--blue, .alm-block-recruitment-banner--orange,
  .alm-block-identification-callout, .alm-block-quote-banner, .alm-block--bg-blue, .alm-vhero-a
) a[class*="__cta"]:not([class*="--secondary"]):not([class*="-secondary"]):not([class*="--ghost"]):hover {
  background-color: #faf3f3;
  color: var(--alm-blue-2);
  border-color: #faf3f3;
  transform: translateY(-2px);
}
html body.subbrand-maternite :is(
  .alm-block-cta--blue, .alm-block-cta--gradient, .alm-block-cta--orange,
  .alm-block-stats-banner--blue, .alm-block-stats-banner--gradient, .alm-block-stats-banner--orange,
  .alm-block-recruitment-banner--blue, .alm-block-recruitment-banner--orange,
  .alm-block-identification-callout, .alm-block-quote-banner, .alm-block--bg-blue, .alm-vhero-a
) :is(a.alm-btn-primary, a.alm-btn.alm-btn-primary, button.alm-btn-primary):focus-visible,
html body.subbrand-maternite :is(
  .alm-block-cta--blue, .alm-block-cta--gradient, .alm-block-cta--orange,
  .alm-block-stats-banner--blue, .alm-block-stats-banner--gradient, .alm-block-stats-banner--orange,
  .alm-block-recruitment-banner--blue, .alm-block-recruitment-banner--orange,
  .alm-block-identification-callout, .alm-block-quote-banner, .alm-block--bg-blue, .alm-vhero-a
) .wp-block-button > a.wp-block-button__link:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

/* B.2 SECONDARY / GHOST → bordure + texte blancs */
html body.subbrand-maternite :is(
  .alm-block-cta--blue, .alm-block-cta--gradient, .alm-block-cta--orange,
  .alm-block-stats-banner--blue, .alm-block-stats-banner--gradient, .alm-block-stats-banner--orange,
  .alm-block-recruitment-banner--blue, .alm-block-recruitment-banner--orange,
  .alm-block-identification-callout, .alm-block-quote-banner, .alm-block--bg-blue, .alm-vhero-a
) :is(a.alm-btn-secondary, a.alm-btn.alm-btn-secondary, button.alm-btn-secondary, a.alm-btn-ghost, a.alm-btn.alm-btn-ghost),
html body.subbrand-maternite :is(
  .alm-block-cta--blue, .alm-block-cta--gradient, .alm-block-cta--orange,
  .alm-block-stats-banner--blue, .alm-block-stats-banner--gradient, .alm-block-stats-banner--orange,
  .alm-block-recruitment-banner--blue, .alm-block-recruitment-banner--orange,
  .alm-block-identification-callout, .alm-block-quote-banner, .alm-block--bg-blue, .alm-vhero-a
) a[class*="__cta--secondary"],
html body.subbrand-maternite :is(
  .alm-block-cta--blue, .alm-block-cta--gradient, .alm-block-cta--orange,
  .alm-block-stats-banner--blue, .alm-block-stats-banner--gradient, .alm-block-stats-banner--orange,
  .alm-block-recruitment-banner--blue, .alm-block-recruitment-banner--orange,
  .alm-block-identification-callout, .alm-block-quote-banner, .alm-block--bg-blue, .alm-vhero-a
) a[class*="__cta-secondary"],
html body.subbrand-maternite :is(
  .alm-block-cta--blue, .alm-block-cta--gradient, .alm-block-cta--orange,
  .alm-block-stats-banner--blue, .alm-block-stats-banner--gradient, .alm-block-stats-banner--orange,
  .alm-block-recruitment-banner--blue, .alm-block-recruitment-banner--orange,
  .alm-block-identification-callout, .alm-block-quote-banner, .alm-block--bg-blue, .alm-vhero-a
) a[class*="__cta--ghost"] {
  background: transparent;
  color: #ffffff;
  border: 2px solid #ffffff;
  border-radius: var(--subbrand-radius-btn);
}
html body.subbrand-maternite :is(
  .alm-block-cta--blue, .alm-block-cta--gradient, .alm-block-cta--orange,
  .alm-block-stats-banner--blue, .alm-block-stats-banner--gradient, .alm-block-stats-banner--orange,
  .alm-block-recruitment-banner--blue, .alm-block-recruitment-banner--orange,
  .alm-block-identification-callout, .alm-block-quote-banner, .alm-block--bg-blue, .alm-vhero-a
) :is(a.alm-btn-secondary, a.alm-btn.alm-btn-secondary, button.alm-btn-secondary, a.alm-btn-ghost):hover {
  background: rgba(255, 255, 255, 0.15);
  color: #ffffff;
  border-color: #ffffff;
  transform: translateY(-2px);
}
html body.subbrand-maternite :is(
  .alm-block-cta--blue, .alm-block-cta--gradient, .alm-block-cta--orange,
  .alm-block-stats-banner--blue, .alm-block-stats-banner--gradient, .alm-block-stats-banner--orange,
  .alm-block-recruitment-banner--blue, .alm-block-recruitment-banner--orange,
  .alm-block-identification-callout, .alm-block-quote-banner, .alm-block--bg-blue, .alm-vhero-a
) :is(a.alm-btn-secondary, a.alm-btn.alm-btn-secondary, button.alm-btn-secondary, a.alm-btn-ghost):focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

/* B.3 Hero V-A : .alm-v-btn--p (primary hero specifique sections.css) */
html body.subbrand-maternite .alm-vhero-a .alm-v-btn--p {
  background: #ffffff;
  color: var(--alm-blue);
  border: 0;
}
html body.subbrand-maternite .alm-vhero-a .alm-v-btn--p:hover {
  background: #faf3f3;
  color: var(--alm-blue-2);
}
/* .alm-v-btn--g (ghost hero) : sections.css natif transparent + border blanc OK */

/* ============================================================
   Alert-banner --urgent : bouton en DA maternité (capsule + bordeaux)
   ============================================================
   Le wrapper garde son signal rouge (bg #fef2f2, border-left #dc2626,
   icon #dc2626 = sémantique urgence préservée), mais le bouton CTA passe
   à la palette mat : capsule 999px, bg bordeaux, text blanc.
   Contrastes :
     blanc / bordeaux #6b1f3a = 9.65 : 1 AAA
     bouton bordeaux / fond #fef2f2 ≈ 7.6 : 1 (très distinct)
   ============================================================ */

body.subbrand-maternite .alm-block-alert-banner__cta {
  border-radius: var(--subbrand-radius-btn);  /* 999px capsule */
}

body.subbrand-maternite .alm-block-alert-banner--urgent .alm-block-alert-banner__cta {
  background: var(--alm-blue);   /* bordeaux #6b1f3a */
  color: #ffffff;
}

body.subbrand-maternite .alm-block-alert-banner--urgent .alm-block-alert-banner__cta:hover {
  background: var(--alm-blue-2); /* bordeaux foncé #4f1429 */
  color: #ffffff;
}

body.subbrand-maternite .alm-block-alert-banner--urgent .alm-block-alert-banner__cta:focus-visible {
  outline: 2px solid var(--alm-blue);
  outline-offset: 3px;
}

/* ============================================================
   Deux variantes manquaient à la matrice : .alm-btn-blue et .alm-btn-orange
   ============================================================
   La matrice ci-dessus couvre primary et secondary. Elle ne couvre PAS les
   deux variantes nommées que le bloc alm/split produit depuis son attribut
   `ctaStyle` — celles-là posent leur fond dans custom.css et n'ont jamais eu
   de couleur de texte sous la sous-marque. Résultat mesuré au rendu, sur la
   Maternité Sainte-Thérèse :

     .alm-btn-blue   : fond #6b1f3a, texte #6b1f3a  -> ratio 1,00 (INVISIBLE)
     .alm-btn-orange : fond #A24700, texte #6b1f3a  -> ratio 1,83

   Le fond orange #A24700 est de surcroît la couleur d'accent du RÉSEAU, pas
   celle de la sous-marque : un bouton orange sur une page bordeaux. On le
   ramène donc sur l'accent rosé, et on pose la couleur de texte des deux.
   Le défaut ne se voyait nulle part tant qu'aucun split de ces sites ne
   portait de CTA — porter la séquence du pilote en pose deux par accueil.

     bordeaux #6b1f3a sur blanc : 11,15:1     rosé #a64759 sur blanc : 5,73:1
     survol   #4f1429 sur blanc : 14,79:1     survol #8b3445 sur blanc : 7,85:1

   Spécificité alignée sur la catégorie A de la matrice, zéro !important. */

html body.subbrand-maternite a.alm-btn-blue,
html body.subbrand-maternite a.alm-btn.alm-btn-blue,
html body.subbrand-maternite button.alm-btn-blue {
  background-color: var(--alm-blue);
  color: #ffffff;
  border: 2px solid var(--alm-blue);
}
html body.subbrand-maternite a.alm-btn-blue:hover,
html body.subbrand-maternite a.alm-btn.alm-btn-blue:hover,
html body.subbrand-maternite a.alm-btn-blue:focus-visible,
html body.subbrand-maternite a.alm-btn.alm-btn-blue:focus-visible,
html body.subbrand-maternite button.alm-btn-blue:hover {
  background-color: var(--alm-blue-2);
  color: #ffffff;
  border-color: var(--alm-blue-2);
}

html body.subbrand-maternite a.alm-btn-orange,
html body.subbrand-maternite a.alm-btn.alm-btn-orange,
html body.subbrand-maternite button.alm-btn-orange {
  background-color: var(--alm-orange);
  color: #ffffff;
  border: 2px solid var(--alm-orange);
}
html body.subbrand-maternite a.alm-btn-orange:hover,
html body.subbrand-maternite a.alm-btn.alm-btn-orange:hover,
html body.subbrand-maternite a.alm-btn-orange:focus-visible,
html body.subbrand-maternite a.alm-btn.alm-btn-orange:focus-visible,
html body.subbrand-maternite button.alm-btn-orange:hover {
  background-color: var(--alm-orange-2);
  color: #ffffff;
  border-color: var(--alm-orange-2);
}

/* ===== Responsive : ajustements mobile ===== */

@media (max-width: 768px) {
  body.subbrand-maternite .alm-block {
    padding-block: clamp(48px, 8vw, 80px);  /* moins agressif sur mobile */
  }
  body.subbrand-maternite h1 { line-height: 1.2; }
  body.subbrand-maternite h2 { line-height: 1.25; }
}
