/* ==========================================================================
   CFA académique de Paris × Ekole : composants signature des landings « Recrutez un apprenti »
   Version 2.0.0 (6 octobre 2026) : charte graphique de l'État, deux mondes visuels.

   THESIS : la page prolonge la publicité validée (même photo, même phrase, même couleur), sous la caution
   de l'État (bloc-marque en tête, Marianne, bleu France, rouge Marianne). Elle refuse la landing
   institutionnelle à cartes identiques et bandeau de chiffres.
   OWN-WORLD : Belliard « service du soir » : photo plein cadre sous un dégradé bleu France, mot clé italique
   dans la couleur de la formation (corail, vert, terracotta, jaune), pilules, bleu nuit. Lurçat « relevé de
   gestion » : blanc, aplats bleu France à angles vifs, rouge Marianne, filets fins, chiffres tabulaires,
   Spectral italique, aucun gris.
   STORY : un dirigeant reconnaît la publicité, comprend en une phrase que des jeunes déjà formés attendent,
   voit l'aide, dépose une offre en deux minutes.
   FIRST VIEWPORT : Belliard, hero plein écran, texte en pied à gauche, bouton accent ; Lurçat, plaque bleue
   à gauche chevauchant la photo à droite, bouton rouge dans la plaque.
   FORM : candidat 4 (carte du restaurant / relevé) de la liste ancrée, clé de tirage 7f17b097.
   FINISH : unreviewed and undocumented is unfinished; this build ends with the finish review, the verdict,
   DESIGN.md, and every shipping raster carrying its provenance.

   Règle de partage des rôles : tout ce qu'un réglage natif Elementor sait faire est réglé dans les widgets
   et les Globals du kit. Ici : uniquement ce qu'Elementor ne sait pas faire.
   ========================================================================== */

/* Polices de repli aux métriques de Marianne et Spectral : le texte garde sa place quand la vraie police arrive (CLS 0) */
@font-face { font-family: "Marianne Fallback"; src: local("Arial"); font-weight: 400; font-style: normal; size-adjust: 109.42%; ascent-override: 103.37%; descent-override: 23.40%; line-gap-override: 0%; }
@font-face { font-family: "Marianne Fallback"; src: local("Arial Bold"); font-weight: 700; font-style: normal; size-adjust: 101.61%; ascent-override: 111.31%; descent-override: 25.19%; line-gap-override: 0%; }
@font-face { font-family: "Marianne Fallback"; src: local("Arial Bold"); font-weight: 800; font-style: normal; size-adjust: 101.88%; ascent-override: 111.01%; descent-override: 25.13%; line-gap-override: 0%; }
@font-face { font-family: "Spectral Fallback"; src: local("Georgia Italic"); font-weight: 600; font-style: italic; size-adjust: 93.07%; ascent-override: 113.79%; descent-override: 49.75%; line-gap-override: 0%; }

:root {
  --cfa-bleu: var(--e-global-color-primary, #000091);
  --cfa-rouge: var(--e-global-color-secondary, #e1000f);
  --cfa-encre: var(--e-global-color-text, #10104a);
  --cfa-accent: var(--e-global-color-accent, #ff8d7e);
  --cfa-nuit-900: var(--e-global-color-cfa_nuit_900, #07073b);
  --cfa-nuit-700: var(--e-global-color-cfa_nuit_700, #0b0b5e);
  --cfa-bleu-100: var(--e-global-color-cfa_bleu_100, #dcdcf2);
  --cfa-bleu-050: var(--e-global-color-cfa_bleu_050, #f1f1fa);
  --cfa-rouge-700: var(--e-global-color-cfa_rouge_700, #b8000c);
  --cfa-gris: var(--e-global-color-cfa_gris, #4c4c6e);
  --cfa-titre: var(--e-global-typography-primary-font-family, "Marianne"), "Marianne Fallback", Arial, sans-serif;
  --cfa-texte: var(--e-global-typography-text-font-family, "Marianne"), "Marianne Fallback", Arial, sans-serif;
  --cfa-accent-font: var(--cfa-titre);
  --cfa-accent-style: italic;
  --cfa-accent-weight: 700;
  --cfa-radius: 16px;
  --cfa-radius-btn: 999px;
  --cfa-radius-field: 12px;
  --cfa-hairline: 1px solid var(--cfa-bleu-100);
  --cfa-btn-bg: var(--cfa-accent);
  --cfa-btn-fg: var(--cfa-encre);
  --cfa-btn-hover-bg: #fff;
  --cfa-btn-hover-fg: var(--cfa-encre);
  --cfa-selection: var(--cfa-accent);
}
/* Lurçat : le relevé. Angles vifs, Spectral italique, rouge Marianne pour l'action, aucun gris. */
body.cfa-lurcat {
  --cfa-accent: var(--e-global-color-secondary, #e1000f);
  --cfa-accent-font: "Spectral", "Spectral Fallback", Georgia, serif;
  --cfa-accent-weight: 600;
  --cfa-radius: 0px;
  --cfa-radius-btn: 0px;
  --cfa-radius-field: 0px;
  --cfa-btn-bg: var(--cfa-rouge);
  --cfa-btn-fg: #fff;
  --cfa-btn-hover-bg: var(--cfa-rouge-700);
  --cfa-btn-hover-fg: #fff;
  --cfa-selection: var(--cfa-bleu);
}

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

/* Surfaces du navigateur : sélection, focus, caret, numéraux tabulaires */
.cfa-landing ::selection { background: var(--cfa-selection); color: #fff; }
.cfa-belliard ::selection { color: var(--cfa-encre); }
.cfa-landing :focus-visible { outline: 3px solid var(--cfa-rouge); outline-offset: 3px; border-radius: 2px; }
.cfa-on-dark :focus-visible { outline-color: #fff; }
.cfa-landing input, .cfa-landing textarea { caret-color: var(--cfa-bleu); }
.cfa-landing { font-variant-numeric: tabular-nums; }

/* --------------------------------------------------------------------------
   Signature : le mot clé en accent dans les titres (<em class="cfa-accent">)
   Belliard : italique Marianne dans la couleur de la formation. Lurçat : Spectral italique.
   -------------------------------------------------------------------------- */
.cfa-accent {
  font-family: var(--cfa-accent-font);
  font-style: var(--cfa-accent-style);
  font-weight: var(--cfa-accent-weight);
  color: var(--cfa-accent);
}
.cfa-lurcat .cfa-hero-plaque .cfa-accent { color: #fff; font-size: 1.06em; }
.cfa-lurcat .cfa-accent { font-size: 1.04em; letter-spacing: 0; }

/* Filet court sous les titres de section */
.cfa-rule .elementor-heading-title::before {
  content: "";
  display: block;
  width: 44px;
  height: 4px;
  margin-bottom: 22px;
  background: var(--cfa-rouge);
  border-radius: 2px;
}
.cfa-rule.cfa-rule--center .elementor-heading-title::before { margin-inline: auto; }
.cfa-belliard .cfa-on-dark .cfa-rule .elementor-heading-title::before { background: var(--cfa-accent); }
/* Lurçat : le filet devient une ligne de relevé pleine largeur */
.cfa-lurcat .cfa-rule .elementor-heading-title::before { width: 100%; height: 1px; background: var(--cfa-bleu); border-radius: 0; margin-bottom: 26px; }
.cfa-lurcat .cfa-on-dark .cfa-rule .elementor-heading-title::before { background: rgba(255, 255, 255, 0.5); }

/* --------------------------------------------------------------------------
   En-tête (Theme Builder) : bloc-marque, logos. Lurçat : liseré tricolore de la charte en tête de page.
   -------------------------------------------------------------------------- */
.cfa-header .elementor-widget { margin: 0; }
.cfa-logo img { height: auto; width: auto; max-height: 100%; display: block; }
.cfa-lurcat .cfa-header { position: relative; }
.cfa-lurcat .cfa-header::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px;
  background: linear-gradient(var(--cfa-bleu) 0 50%, var(--cfa-rouge) 50% 100%);
}
.cfa-lurcat .cfa-header { padding-top: 18px !important; }
@media (max-width: 767px) {
  .cfa-header__etab { justify-content: flex-start; padding-top: 8px; border-top: var(--cfa-hairline); }
}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.cfa-hero-title .elementor-heading-title { text-wrap: balance; }
.cfa-hero .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Belliard : service du soir. Logos dans le hero, texte en pied, Marianne centrée en bas sur plaque blanche (comme le visuel Meta). */
.cfa-hero--nuit .cfa-hero-content { position: relative; z-index: 2; }
.cfa-hero--nuit > .e-con-inner { min-height: inherit; }
.cfa-hero--nuit .cfa-hero-content { flex-grow: 1; }
.cfa-hero--nuit .cfa-hero-bar { position: relative; z-index: 2; }
.cfa-hero--nuit .cfa-hero-bar .elementor-widget { margin: 0; }
/* Logos sur la photo : plaque blanche translucide pour rester lisibles quelle que soit la photo de la formation */
.cfa-hero--nuit .cfa-hero-bar .elementor-widget-image { background: rgba(255, 255, 255, 0.92); padding: 12px 16px; border-radius: 10px; }
@media (max-width: 767px) { .cfa-hero--nuit .cfa-hero-bar .elementor-widget-image { padding: 8px 10px; border-radius: 8px; } }
.cfa-hero--nuit .cfa-hero-marianne { position: relative; }
.cfa-marianne-plaque .elementor-widget { margin: 0; }
.cfa-marianne-plaque img { display: block; width: 100%; height: auto; }
.cfa-hero--nuit .cfa-hero-title .elementor-heading-title { font-size: clamp(2.5rem, 5.2vw, 4.25rem); line-height: 1.02; }
.cfa-chip {
  display: inline-flex; align-items: center; margin: 0;
  padding: 8px 16px; border: 1.5px solid rgba(255, 255, 255, 0.85); border-radius: 999px;
  font-family: var(--cfa-titre); font-weight: 700; font-style: italic; font-size: 0.9375rem; color: #fff;
}
.cfa-chip:empty { display: none; }
@media (max-width: 767px) {
  .cfa-hero--nuit { background-size: cover !important; background-position: top center !important; background-color: var(--cfa-nuit-900) !important; }
}

/* Lurçat : la plaque */
.cfa-hero--releve .cfa-hero-plaque { position: relative; flex-shrink: 0; }
.cfa-hero--releve .cfa-hero-photo { flex-shrink: 0; }
.cfa-hero--releve .cfa-hero-title .elementor-heading-title { font-size: clamp(2.125rem, 3.6vw, 3.25rem); line-height: 1.06; }
.cfa-hero--releve .cfa-hero-photo { position: relative; }
.cfa-hero--releve .cfa-hero-photo .elementor-widget-image, .cfa-hero--releve .cfa-hero-photo .elementor-widget-container { height: 100%; }
.cfa-hero--releve .cfa-hero-img img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 420px; }
@media (max-width: 767px) {
  .cfa-hero--releve .cfa-hero-img img { min-height: 0; aspect-ratio: 1 / 1; }
}

/* --------------------------------------------------------------------------
   Chiffres : compteurs (Belliard) et relevé (Lurçat)
   -------------------------------------------------------------------------- */
.cfa-stat__n {
  display: block;
  font-family: var(--cfa-titre);
  font-weight: 800;
  font-size: clamp(2.5rem, 4.2vw, 3.75rem);
  line-height: 1;
  letter-spacing: -0.02em;
  color: inherit;
}
.cfa-stat__l { display: block; margin-top: 0.5rem; font-size: 0.9375rem; line-height: 1.4; opacity: 0.85; }
.cfa-stat p { margin: 0; }

.cfa-ledger { margin: 0; border-top: 1px solid var(--cfa-bleu); }
.cfa-ledger > div { display: grid; grid-template-columns: minmax(120px, 0.22fr) 1fr; gap: 16px 32px; align-items: baseline; padding: 20px 0; border-bottom: 1px solid var(--cfa-bleu-100); }
.cfa-ledger > div:last-child { border-bottom: 1px solid var(--cfa-bleu); }
.cfa-ledger dt { font-family: var(--cfa-titre); font-weight: 700; font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1; letter-spacing: -0.02em; color: var(--cfa-bleu); margin: 0; }
.cfa-ledger dd { margin: 0; font-size: 1.0625rem; line-height: 1.45; color: var(--cfa-bleu); }
@media (max-width: 599px) { .cfa-ledger > div { grid-template-columns: 1fr; gap: 4px; } }

.cfa-display sup { font-size: 0.35em; vertical-align: top; line-height: 1; margin-left: 0.1em; opacity: 0.8; }
.cfa-display p { margin: 0; }

/* --------------------------------------------------------------------------
   Apparitions au défilement (uniquement si JS, jamais sur le hero)
   -------------------------------------------------------------------------- */
.cfa-js .cfa-reveal { opacity: 0; transform: translateY(14px); transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1); }
.cfa-js .cfa-reveal.is-in { opacity: 1; transform: none; }
.elementor-editor-active .cfa-reveal { opacity: 1 !important; transform: none !important; }
.cfa-js .cfa-why-list .cfa-reveal:nth-child(2) { transition-delay: 0.08s; }
.cfa-js .cfa-why-list .cfa-reveal:nth-child(3) { transition-delay: 0.16s; }
.cfa-js .cfa-why-list .cfa-reveal:nth-child(4) { transition-delay: 0.24s; }
.cfa-js .cfa-formations .e-grid > .cfa-reveal:nth-child(2), .cfa-js .cfa-rows > .cfa-reveal:nth-child(2) { transition-delay: 0.08s; }
.cfa-js .cfa-formations .e-grid > .cfa-reveal:nth-child(3), .cfa-js .cfa-rows > .cfa-reveal:nth-child(3) { transition-delay: 0.16s; }
.cfa-js .cfa-formations .e-grid > .cfa-reveal:nth-child(4), .cfa-js .cfa-rows > .cfa-reveal:nth-child(4) { transition-delay: 0.24s; }

/* --------------------------------------------------------------------------
   Pourquoi : photo + liste d'arguments séparés par des filets
   -------------------------------------------------------------------------- */
.cfa-why-photo { align-self: stretch; }
.cfa-why-photo .elementor-widget-image, .cfa-why-photo .elementor-widget-container { height: 100%; }
.cfa-why-photo img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--cfa-radius); display: block; }
@media (max-width: 1024px) { .cfa-why-photo img { height: 340px; } }
@media (max-width: 767px) { .cfa-why-photo img { height: 260px; } }
.cfa-why-item .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.cfa-why-item { transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1); }
@media (hover: hover) { .cfa-why-item:hover { transform: translateX(12px); } }

/* --------------------------------------------------------------------------
   Formations : cartes (Belliard) et lignes du relevé (Lurçat)
   -------------------------------------------------------------------------- */
.cfa-card .elementor-widget-text-editor p:last-child, .cfa-card .elementor-widget-text-editor ul { margin-bottom: 0; }
.cfa-card { transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease; }
.cfa-card .cfa-card__photo img { transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1); display: block; }
@media (hover: hover) {
  .cfa-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -22px rgba(7, 7, 59, 0.45); }
  .cfa-card:hover .cfa-card__photo img { transform: scale(1.04); }
}
.cfa-card .cfa-card__photo { overflow: hidden; }
.cfa-card__count p { margin: 0; font-weight: 500; }
.cfa-card__count strong { font-family: var(--cfa-titre); font-weight: 800; font-size: 1.375rem; margin-right: 0.3em; }

.cfa-vedette .elementor-widget-text-editor p:last-child, .cfa-vedette .elementor-widget-text-editor ul { margin-bottom: 0; }
.cfa-vedette__count { margin: 0; }
.cfa-partenaire .elementor-widget { margin: 0; }
.cfa-partenaire img { display: block; width: 100%; height: auto; }
.cfa-vedette__count strong { font-family: var(--cfa-titre); font-weight: 800; font-size: clamp(2.5rem, 4vw, 3.5rem); line-height: 1; letter-spacing: -0.02em; margin-right: 0.25em; }
.cfa-vedette__photo .elementor-widget-image, .cfa-vedette__photo .elementor-widget-container { height: 100%; }
.cfa-vedette__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

.cfa-row .elementor-widget-text-editor p:last-child, .cfa-row .elementor-widget-text-editor ul { margin-bottom: 0; }
.cfa-row__count { margin: 0; display: flex; flex-direction: column; line-height: 1; }
.cfa-row__count strong { font-family: var(--cfa-titre); font-weight: 700; font-size: 2.25rem; letter-spacing: -0.02em; color: var(--cfa-bleu); }
.cfa-row__count span { font-size: 0.8125rem; margin-top: 6px; color: var(--cfa-gris); }
@media (max-width: 767px) { .cfa-row__count { flex-direction: row; align-items: baseline; gap: 8px; } }
.cfa-row__niveau p { margin: 0; text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.8125rem; font-weight: 500; }
.cfa-row { transition: background-color 0.25s ease, box-shadow 0.25s ease; }
@media (hover: hover) { .cfa-lurcat .cfa-row:hover { background-color: var(--cfa-bleu-050); box-shadow: 0 0 0 16px var(--cfa-bleu-050); } }

/* Lien texte « Déposer une offre » (secondaire, le bouton reste l'appel principal) */
.cfa-link {
  font-weight: 700;
  color: inherit;
  text-decoration: underline;
  text-decoration-color: var(--cfa-accent);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.3em;
  transition: text-decoration-color 0.2s, color 0.2s;
}
.cfa-lurcat .cfa-link { text-decoration-color: var(--cfa-rouge); }
.cfa-link:hover, .cfa-link:focus-visible { text-decoration-color: currentColor; }
.cfa-on-dark .cfa-link { color: #fff; }

/* Métiers visés : liste inline séparée par des points */
.cfa-metiers { display: flex; flex-wrap: wrap; gap: 0.35em 0.75em; margin: 0; padding: 0; list-style: none; font-size: 0.9375rem; }
.cfa-metiers li + li::before { content: "·"; color: var(--cfa-accent); margin-right: 0.75em; font-weight: 700; }
.cfa-on-dark .cfa-metiers li + li::before { color: rgba(255, 255, 255, 0.7); }

/* Photos de section (widget Image dans une colonne) */
.cfa-photo img { width: 100%; height: auto; display: block; border-radius: var(--cfa-radius); }

/* Grille des aides (widget Texte) */
.cfa-aide { border-top: 1px solid currentColor; }
.cfa-on-dark .cfa-aide { border-top-color: rgba(255, 255, 255, 0.3); }
.cfa-aide__row { display: grid; grid-template-columns: 1fr auto; gap: 16px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--cfa-bleu-100); }
.cfa-on-dark .cfa-aide__row { border-bottom-color: rgba(255, 255, 255, 0.22); }
.cfa-aide__row small { display: block; font-size: 0.875rem; margin-top: 2px; opacity: 0.75; }
.cfa-aide__row strong { font-family: var(--cfa-titre); font-weight: 700; font-size: 1.5rem; letter-spacing: -0.02em; white-space: nowrap; }
.cfa-aide__row--light strong { font-size: 1.125rem; opacity: 0.85; }
.cfa-lurcat .cfa-on-light .cfa-aide__row strong { color: var(--cfa-rouge); }

/* Étapes après dépôt (seule vraie séquence de la page : la numérotation est justifiée) */
.cfa-steps { counter-reset: etape; list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.cfa-steps li { position: relative; padding-left: 52px; min-height: 36px; }
.cfa-steps li::before {
  counter-increment: etape;
  content: counter(etape, decimal-leading-zero);
  position: absolute; left: 0; top: -0.1em;
  font-family: var(--cfa-titre); font-weight: 800; font-size: 1.5rem; letter-spacing: -0.02em;
  color: var(--cfa-accent);
}
.cfa-lurcat .cfa-steps li::before { font-family: "Spectral", "Spectral Fallback", Georgia, serif; font-style: italic; font-weight: 600; color: #fff; }
.cfa-steps strong { display: block; font-weight: 700; }
.cfa-steps span { font-size: 0.9375rem; }
.cfa-on-dark .cfa-steps strong { color: #fff; }
.cfa-on-dark .cfa-steps span { color: rgba(255, 255, 255, 0.75); }

/* --------------------------------------------------------------------------
   Bandeau d'entreprises (wordmarks texte en attendant les logos autorisés)
   -------------------------------------------------------------------------- */
.cfa-landing .elementor-widget-shortcode { min-width: 0; max-width: 100%; }
.cfa-marquee { position: relative; overflow: hidden; max-width: 100%; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.cfa-marquee__track { display: flex; width: max-content; animation: cfa-marquee 55s linear infinite; }
.cfa-marquee:hover .cfa-marquee__track, .cfa-marquee:focus-within .cfa-marquee__track, .cfa-marquee.is-paused .cfa-marquee__track { animation-play-state: paused; }
.cfa-marquee__list { display: flex; margin: 0; padding: 0; list-style: none; }
.cfa-marquee__list li { display: flex; align-items: center; height: 76px; padding-right: 2.6rem; white-space: nowrap; font-family: var(--cfa-titre); font-weight: 700; font-size: clamp(1.125rem, 1.6vw, 1.5rem); letter-spacing: -0.01em; color: var(--cfa-bleu); }
.cfa-marquee__list li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--cfa-accent); margin-right: 2.6rem; flex: none; }
.cfa-lurcat .cfa-marquee__list li::before { border-radius: 0; background: var(--cfa-rouge); }
@keyframes cfa-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .cfa-marquee { -webkit-mask-image: none; mask-image: none; }
  .cfa-marquee__track { animation: none; width: auto; }
  .cfa-marquee__list { flex-wrap: wrap; justify-content: center; }
  .cfa-marquee__list li { height: 56px; }
  .cfa-marquee__list[aria-hidden="true"] { display: none; }
}

/* --------------------------------------------------------------------------
   Façade vidéo : poster + bouton, l'iframe ou la vidéo n'est créée qu'au clic
   -------------------------------------------------------------------------- */
.cfa-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--cfa-radius); overflow: hidden; background: var(--cfa-nuit-900); }
.cfa-lurcat .cfa-video { outline: 1px solid var(--cfa-bleu); outline-offset: 10px; }
.cfa-video--portrait { aspect-ratio: 9 / 16; max-width: 400px; margin-inline: auto; }
.cfa-video img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0.82; }
.cfa-video iframe, .cfa-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: #000; }
.cfa-video__play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  display: inline-flex; align-items: center; gap: 14px;
  min-height: 56px; padding: 12px 26px 12px 16px; border: 0; border-radius: var(--cfa-radius-btn);
  background: #fff; color: var(--cfa-bleu);
  font: 700 1.0625rem/1 var(--cfa-texte); cursor: pointer;
  transition: transform 0.2s, background 0.2s;
}
.cfa-video__play::before { content: ""; width: 16px; height: 20px; background: var(--cfa-rouge); clip-path: polygon(0 0, 100% 50%, 0 100%); }
.cfa-video__play:hover { transform: translate(-50%, -50%) scale(1.04); }
.cfa-video__play:focus-visible { outline-color: #fff; }
.cfa-video__pending {
  position: absolute; left: 20px; right: 20px; bottom: 20px; margin: 0;
  padding: 10px 14px; border-radius: calc(var(--cfa-radius) * 0.6);
  background: rgba(7, 7, 59, 0.82); color: #fff; font-size: 0.875rem; line-height: 1.4;
}
.cfa-video.is-playing .cfa-video__play, .cfa-video.is-playing .cfa-video__pending, .cfa-video.is-playing img { display: none; }

/* --------------------------------------------------------------------------
   Boutons : miroir du bouton Global du kit. Belliard : la couleur suit la formation (--cfa-accent).
   -------------------------------------------------------------------------- */
body.cfa-landing .elementor-button, .cfa-btn {
  background-color: var(--cfa-btn-bg);
  color: var(--cfa-btn-fg);
  border-radius: var(--cfa-radius-btn);
  transition: background-color 0.2s, color 0.2s, transform 0.2s;
}
body.cfa-landing .elementor-button:hover, body.cfa-landing .elementor-button:focus-visible, .cfa-btn:hover, .cfa-btn:focus-visible {
  background-color: var(--cfa-btn-hover-bg);
  color: var(--cfa-btn-hover-fg);
}
.cfa-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5em;
  min-height: 54px; padding: 16px 30px; border: 0;
  font: 700 1.0625rem/1.2 var(--cfa-texte);
  cursor: pointer; text-decoration: none;
}
.cfa-btn:active { transform: translateY(1px); }
.cfa-btn[disabled], .cfa-btn[aria-busy="true"] { opacity: 0.65; cursor: progress; }
/* Lurçat : au survol sur fond blanc, le bouton rouge passe en bleu France */
body.cfa-lurcat .cfa-on-light .elementor-button:hover, body.cfa-lurcat .cfa-form .cfa-btn:hover { background-color: var(--cfa-bleu); color: #fff; }

/* --------------------------------------------------------------------------
   Formulaire entreprise (#form-entreprise)
   -------------------------------------------------------------------------- */
.cfa-form { background: #fff; border: var(--cfa-hairline); border-radius: var(--cfa-radius); padding: 32px; color: var(--cfa-encre); }
.cfa-lurcat .cfa-form { border: 0; }
@media (max-width: 767px) { .cfa-form { padding: 22px 18px; } }
.cfa-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 16px; }
@media (max-width: 599px) { .cfa-form__grid { grid-template-columns: 1fr; } }
.cfa-field--full { grid-column: 1 / -1; }
.cfa-field label { display: block; margin-bottom: 7px; font-weight: 700; font-size: 0.9375rem; color: var(--cfa-encre); }
.cfa-field label span { font-weight: 400; color: var(--cfa-gris); }
.cfa-field input:not([type="checkbox"]), .cfa-field select, .cfa-field textarea {
  display: block; width: 100%; min-height: 52px; padding: 12px 16px;
  border: 1.5px solid var(--cfa-bleu-100); border-radius: var(--cfa-radius-field); background: #fff;
  font: 400 1rem/1.4 var(--cfa-texte); color: var(--cfa-encre);
  transition: border-color 0.15s, box-shadow 0.15s;
  -webkit-appearance: none; appearance: none;
}
.cfa-field input::placeholder, .cfa-field textarea::placeholder { color: var(--cfa-gris); opacity: 0.8; }
.cfa-field select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23000091' stroke-width='2' stroke-linecap='round' d='m3 6 5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 16px center; padding-right: 44px;
}
.cfa-field textarea { min-height: 112px; resize: vertical; }
.cfa-field input:focus, .cfa-field select:focus, .cfa-field textarea:focus { outline: none; border-color: var(--cfa-bleu); box-shadow: 0 0 0 3px rgba(0, 0, 145, 0.16); }
.cfa-field.is-invalid input, .cfa-field.is-invalid select, .cfa-field.is-invalid textarea { border-color: var(--cfa-rouge); }
.cfa-field.is-invalid input:focus, .cfa-field.is-invalid select:focus { box-shadow: 0 0 0 3px rgba(225, 0, 15, 0.16); }
.cfa-field.is-valid input:not(:focus) { border-color: var(--cfa-bleu); }
.cfa-field__hint { margin: 6px 0 0; font-size: 0.8125rem; color: var(--cfa-gris); line-height: 1.4; }
.cfa-field__error { display: none; margin: 6px 0 0; font-size: 0.8125rem; color: var(--cfa-rouge-700); font-weight: 700; line-height: 1.4; }
.cfa-field.is-invalid .cfa-field__error { display: block; }

/* Stepper « Nombre de postes » : zones tactiles de 52 px */
.cfa-stepper { display: inline-grid; grid-template-columns: 52px 76px 52px; border: 1.5px solid var(--cfa-bleu-100); border-radius: var(--cfa-radius-field); overflow: hidden; }
.cfa-stepper button { min-height: 52px; border: 0; background: var(--cfa-bleu-050); color: var(--cfa-bleu); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.cfa-stepper button svg { width: 18px !important; height: 18px !important; min-width: 18px; display: block; flex: none; }
.cfa-stepper button:hover { background: var(--cfa-bleu-100); }
.cfa-stepper button:focus-visible { outline-offset: -3px; }
.cfa-stepper button[disabled] { color: var(--cfa-bleu-100); cursor: not-allowed; background: #fff; }
.cfa-field .cfa-stepper input { border: 0; border-radius: 0; text-align: center; font-weight: 700; min-height: 52px; padding: 0 6px; }
.cfa-field .cfa-stepper input:focus { box-shadow: inset 0 0 0 2px var(--cfa-bleu); }

/* Consentement */
.cfa-consent { display: grid; grid-template-columns: 20px 1fr; gap: 12px; align-items: start; font-size: 0.9375rem; line-height: 1.45; color: var(--cfa-gris); }
.cfa-consent input[type="checkbox"] { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--cfa-bleu); cursor: pointer; }
.cfa-consent a { color: var(--cfa-bleu); text-decoration: underline; text-underline-offset: 0.2em; }
.cfa-field.is-invalid .cfa-consent { color: var(--cfa-rouge-700); }

/* Honeypot : hors écran, jamais masqué par display:none (certains robots le détectent) */
.cfa-hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.cfa-form__actions { margin-top: 26px; display: grid; gap: 14px; }
.cfa-form__actions .cfa-btn { width: 100%; }
@media (min-width: 600px) { .cfa-form__actions .cfa-btn { width: auto; justify-self: start; min-width: 260px; } }
.cfa-form__error { margin: 0; padding: 12px 16px; border-radius: var(--cfa-radius-field); background: #fff; border: 1.5px solid var(--cfa-rouge); color: var(--cfa-rouge-700); font-weight: 700; font-size: 0.9375rem; }
.cfa-form__legal { margin: 0; font-size: 0.8125rem; color: var(--cfa-gris); line-height: 1.5; }

/* Succès */
.cfa-form__success { text-align: left; }
.cfa-form__success h3 { font-family: var(--cfa-titre); font-weight: 800; font-size: 1.75rem; letter-spacing: -0.02em; line-height: 1.1; margin: 18px 0 12px; color: var(--cfa-encre); }
.cfa-form__success p { margin: 0 0 12px; color: var(--cfa-gris); line-height: 1.55; }
.cfa-form__success-check { width: 56px; height: 56px; border-radius: var(--cfa-radius-btn); background: var(--cfa-btn-bg); position: relative; }
.cfa-form__success-check::after { content: ""; position: absolute; left: 20px; top: 14px; width: 12px; height: 22px; border: solid var(--cfa-btn-fg); border-width: 0 3px 3px 0; transform: rotate(45deg); }

/* Section formulaire : photo arrondie selon le thème */
.cfa-form-section .cfa-photo img { border-radius: var(--cfa-radius); }

/* --------------------------------------------------------------------------
   CTA collant mobile (conteneur Elementor masqué sur desktop et tablette par les réglages de visibilité)
   -------------------------------------------------------------------------- */
.cfa-sticky-cta {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  background: rgba(255, 255, 255, 0.96);
  border-top: var(--cfa-hairline);
  transition: transform 0.25s ease, opacity 0.25s ease;
}
.cfa-sticky-cta.is-hidden { transform: translateY(110%); opacity: 0; pointer-events: none; }
.cfa-sticky-cta .elementor-button { width: 100%; justify-content: center; }
.cfa-sticky-cta .elementor-widget { margin: 0; }
@media (max-width: 767px) { body.cfa-landing { padding-bottom: 84px; } }
.elementor-editor-active .cfa-sticky-cta { position: static; }

/* --------------------------------------------------------------------------
   FAQ, divers
   -------------------------------------------------------------------------- */
.cfa-faq .e-n-accordion-item > .e-con { border: 0 !important; }
.elementor-editor-active .to-replace { outline: 2px dashed var(--cfa-rouge); outline-offset: 4px; }
.cfa-landing h1, .cfa-landing h2 { text-wrap: balance; overflow-wrap: anywhere; }
.cfa-landing p { text-wrap: pretty; }
.cfa-landing .e-con.cfa-no-overflow { overflow-x: clip; }
.cfa-landing .elementor-widget-text-editor ul.cfa-metiers { padding-left: 0; }
