/* ===================================================================
   LUMEN Appel à l'action — bande de bas de page AH LUMEN
   Autonome : ne dépend d'aucun style du thème.
   Toutes les règles sont préfixées .lumen-cta.
   Reprend « .cta-band » de la maquette statique (css/styles.css) :
   toute retouche là-bas doit être reportée ici à la main.
   =================================================================== */

.lumen-cta {
  --lumen-cta-navy: #15264d;
  --lumen-cta-navy-dark: #0e1b3a;
  --lumen-cta-navy-light: #243b6b;
  --lumen-cta-or: #c9a227;
  --lumen-cta-or-clair: #dab93a;
  --lumen-cta-or-fonce: #a98617;
  --lumen-cta-blanc: #fff;
  --lumen-cta-texte-clair: #cfd7ea;
  --lumen-cta-maxw: 1180px;
  --lumen-cta-rayon: 22px;
  --lumen-cta-padding: 50px;
  --lumen-cta-font-titre: "Poppins", "Segoe UI", system-ui, sans-serif;

  /* Couleurs par défaut : variante bleu marine. La variante dorée ne
     redéfinit que ces quatre variables, plus bas. */
  --lumen-cta-fond: linear-gradient(
    120deg,
    var(--lumen-cta-navy),
    var(--lumen-cta-navy-light)
  );
  --lumen-cta-couleur-titre: var(--lumen-cta-blanc);
  --lumen-cta-couleur-texte: var(--lumen-cta-texte-clair);
  --lumen-cta-halo: rgba(201, 162, 39, 0.28);

  max-width: var(--lumen-cta-maxw);
  margin-left: auto;
  margin-right: auto;
  padding: var(--lumen-cta-padding);
  background: var(--lumen-cta-fond);
  border-radius: var(--lumen-cta-rayon);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  flex-wrap: wrap;
  position: relative;
  overflow: hidden;
}

/* Le plugin ne peut pas présumer du reset du thème : sans cette règle, les
   paddings s'ajoutent aux largeurs et la bande déborde en mobile. */
.lumen-cta,
.lumen-cta *,
.lumen-cta *::before,
.lumen-cta *::after {
  box-sizing: border-box;
}

/* Halo doré, coin supérieur droit. */
.lumen-cta::after {
  content: "";
  position: absolute;
  right: -4%;
  top: -40%;
  width: 320px;
  height: 320px;
  background: radial-gradient(
    circle,
    var(--lumen-cta-halo),
    transparent 65%
  );
  filter: blur(10px);
  pointer-events: none;
}

.lumen-cta--sans-halo::after {
  display: none;
}

/* ---------- Contenu ---------- */
.lumen-cta__contenu {
  position: relative;
  z-index: 1;
  /* Sans cette base, un titre long pousse les boutons hors de la bande au
     lieu de passer à la ligne. */
  flex: 1 1 320px;
  min-width: 0;
}

.lumen-cta__titre {
  margin: 0 0 8px;
  color: var(--lumen-cta-couleur-titre);
  font-family: var(--lumen-cta-font-titre);
  font-weight: 700;
  line-height: 1.22;
  font-size: clamp(1.4rem, 3vw, 1.9rem);
}

.lumen-cta__texte {
  margin: 0;
  color: var(--lumen-cta-couleur-texte);
  line-height: 1.7;
}

/* ---------- Boutons ---------- */
.lumen-cta__actions {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  align-items: center;
}

.lumen-cta__bouton {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--lumen-cta-font-titre);
  font-weight: 600;
  font-size: 1.05rem;
  line-height: 1.2;
  padding: 17px 38px;
  border-radius: 50px;
  border: 2px solid transparent;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition:
    transform 0.2s ease,
    background 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease;
}

.lumen-cta__bouton:hover,
.lumen-cta__bouton:focus {
  transform: translateY(-2px);
  text-decoration: none;
}

.lumen-cta__bouton:focus-visible {
  outline: 2px solid var(--lumen-cta-or-clair);
  outline-offset: 3px;
}

/* Variante bleu marine : doré plein, puis contour clair. */
.lumen-cta__bouton--principal {
  background: var(--lumen-cta-or);
  color: var(--lumen-cta-navy-dark);
}

.lumen-cta__bouton--principal:hover,
.lumen-cta__bouton--principal:focus {
  background: var(--lumen-cta-or-clair);
  color: var(--lumen-cta-navy-dark);
}

.lumen-cta__bouton--secondaire {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.7);
  color: var(--lumen-cta-blanc);
}

.lumen-cta__bouton--secondaire:hover,
.lumen-cta__bouton--secondaire:focus {
  background: rgba(255, 255, 255, 0.12);
  color: var(--lumen-cta-blanc);
}

/* ---------- Variante dorée (bandeau du catalogue de formations) ---------- */
.lumen-cta--dore {
  --lumen-cta-fond: linear-gradient(
    120deg,
    var(--lumen-cta-or-fonce),
    var(--lumen-cta-or)
  );
  --lumen-cta-couleur-titre: var(--lumen-cta-navy-dark);
  --lumen-cta-couleur-texte: var(--lumen-cta-navy-dark);
  --lumen-cta-halo: rgba(255, 255, 255, 0.35);
}

.lumen-cta--dore .lumen-cta__bouton--principal {
  background: var(--lumen-cta-navy);
  color: var(--lumen-cta-blanc);
}

.lumen-cta--dore .lumen-cta__bouton--principal:hover,
.lumen-cta--dore .lumen-cta__bouton--principal:focus {
  background: var(--lumen-cta-navy-light);
  color: var(--lumen-cta-blanc);
}

.lumen-cta--dore .lumen-cta__bouton--secondaire {
  border-color: var(--lumen-cta-navy-dark);
  color: var(--lumen-cta-navy-dark);
}

.lumen-cta--dore .lumen-cta__bouton--secondaire:hover,
.lumen-cta--dore .lumen-cta__bouton--secondaire:focus {
  background: var(--lumen-cta-navy-dark);
  color: var(--lumen-cta-blanc);
}

.lumen-cta--dore .lumen-cta__bouton:focus-visible {
  outline-color: var(--lumen-cta-navy-dark);
}

/* ---------- Alignement centré ---------- */
.lumen-cta--centre {
  flex-direction: column;
  text-align: center;
  align-items: center;
}

.lumen-cta--centre .lumen-cta__contenu {
  flex: 0 1 auto;
  max-width: 720px;
}

.lumen-cta--centre .lumen-cta__actions {
  justify-content: center;
}

/* ---------- Responsive ---------- */
@media (max-width: 860px) {
  /* On redéfinit la variable, pas la propriété : un espacement réglé depuis
     Elementor (qui écrit la même variable, avec une spécificité supérieure)
     resterait sinon sans effet en dessous de 860 px. */
  .lumen-cta {
    --lumen-cta-padding: 36px 28px;

    flex-direction: column;
    text-align: center;
    align-items: center;
  }

  .lumen-cta__contenu {
    flex: 0 1 auto;
  }

  .lumen-cta__actions {
    justify-content: center;
  }
}

@media (max-width: 560px) {
  .lumen-cta__bouton {
    width: 100%;
    justify-content: center;
    padding: 15px 24px;
    font-size: 1rem;
  }
}

/* Le survol soulève la bande d'un ou deux pixels : à désactiver pour les
   visiteurs qui limitent les animations. */
@media (prefers-reduced-motion: reduce) {
  .lumen-cta__bouton {
    transition: none;
  }

  .lumen-cta__bouton:hover,
  .lumen-cta__bouton:focus {
    transform: none;
  }
}
