/* ============================================================
   Challenge SEO — landing lead magnet.
   Reprend le design system de la homepage : eyebrows Caveat (.ze-coach-slabel),
   titres surlignés (.ze-coach-stitle + .ze-coach-hb), cartes process
   (.ze-coach-step), cartes témoignages (.ze-coach-tcard) et boutons
   (.ze-coach-btn-*) viennent tous de base.css/components.css (core.css, partout).
   On ne définit ici que le niveau SECTION (fonds, ornements, hero, formulaire).
   Tout scopé .ze-coach-ch.
   ============================================================ */

/* ── Base de section ── */
.ze-coach-ch section { padding: clamp(3.5rem, 8vw, 6rem) 2rem; }
.ze-coach-ch .ze-coach-si { max-width: var(--ze-container); margin: 0 auto; }
.ze-coach-ch-header { text-align: center; margin-bottom: 3rem; }
.ze-coach-ch-header .ze-coach-sdesc { margin-left: auto; margin-right: auto; }

/* ══════════════ HERO (2 colonnes, façon homepage) ══════════════ */
/* Sélecteur renforcé pour battre `.ze-coach-ch section` (padding générique)
   et décaler le contenu sous la nav fixe (80px, comme le hero de la homepage). */
.ze-coach-ch .ze-coach-ch-hero {
  padding: calc(80px + clamp(1.5rem, 4vw, 3rem)) 2rem clamp(3rem, 7vw, 5rem);
  position: relative; overflow: hidden;
  background: linear-gradient(165deg, var(--ze-lavender-pale) 0%, var(--ze-lime-bg) 100%);
}
.ze-coach-ch-hero::before {
  content: ''; position: absolute; top: -110px; right: -140px;
  width: 640px; height: 640px; background: var(--ze-lime); opacity: .14;
  border-radius: 63% 37% 54% 46% / 55% 48% 52% 45%;
  animation: ze-morph 18s ease-in-out infinite; pointer-events: none; z-index: 0;
}
.ze-coach-ch-hero::after {
  content: ''; position: absolute; bottom: -90px; left: -110px;
  width: 380px; height: 380px; background: var(--ze-lavender); opacity: .1;
  border-radius: 53% 47% 64% 36% / 65% 38% 62% 35%;
  animation: ze-morph 22s ease-in-out infinite reverse; pointer-events: none; z-index: 0;
}
.ze-coach-ch-hero__inner {
  max-width: var(--ze-container-lg); margin: 0 auto;
  display: grid; grid-template-columns: 1.1fr .9fr; gap: 3rem; align-items: center;
  position: relative; z-index: 1;
}
.ze-coach-ch-hero__content { text-align: left; }
.ze-coach-ch-hero__tag {
  display: inline-flex; align-items: center; gap: .5rem;
  background: var(--ze-lime); padding: .4rem 1.1rem; border-radius: 100px;
  font-size: .76rem; font-weight: 700; color: var(--ze-navy);
  margin-bottom: 1.5rem; letter-spacing: .04em; text-transform: uppercase;
}
.ze-coach-ch-hero__content h1 {
  font-family: var(--ze-font-display); font-size: clamp(2.1rem, 4vw, 3.2rem);
  font-weight: 800; line-height: 1.1; letter-spacing: -.03em;
  margin-bottom: 1.5rem; color: var(--ze-navy);
}
.ze-coach-ch-hero__hand {
  font-family: var(--ze-font-hand); font-weight: 500; color: var(--ze-lavender);
  font-size: .5em; display: block; margin-top: .4rem; transform: rotate(-2deg);
}
.ze-coach-ch-hero__desc { font-size: 1.08rem; line-height: 1.7; color: var(--ze-navy-muted); max-width: 480px; margin-bottom: 2rem; }
.ze-coach-ch-hero__actions { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }

/* Visuel de droite : carte "programme" + badge SVG + carte flottante */
.ze-coach-ch-hero__visual { position: relative; display: flex; justify-content: center; }
.ze-coach-ch-hero__frame {
  position: relative; /* ancre le badge "Offert" sur le coin de la carte */
  width: 100%; max-width: 360px; background: var(--ze-white); border-radius: 30px;
  /* padding-top plus généreux : le badge se niche dans le coin sans masquer le titre */
  padding: 3.75rem 2rem 2.25rem; box-shadow: 10px 10px 0 var(--ze-lime); border: var(--ze-border-subtle);
  transition: box-shadow var(--ze-transition-slow);
}
.ze-coach-ch-hero__frame:hover { box-shadow: 14px 14px 0 var(--ze-lavender-soft); }
.ze-coach-ch-hero__frame-title { font-family: var(--ze-font-display); font-weight: 800; font-size: 1.25rem; color: var(--ze-navy); margin-bottom: 1.25rem; }
.ze-coach-ch-hero__mini { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .8rem; }
.ze-coach-ch-hero__mini li { display: flex; align-items: center; gap: .75rem; font-size: .9rem; font-weight: 600; color: var(--ze-navy-light); }
.ze-coach-ch-hero__mini li span {
  width: 28px; height: 28px; border-radius: 50%; background: var(--ze-lime);
  color: var(--ze-navy); font-weight: 800; font-family: var(--ze-font-display);
  display: flex; align-items: center; justify-content: center; font-size: .85rem; flex-shrink: 0;
}
/* Badge SVG "Offert" — collé sur le coin haut-gauche de la carte, façon étiquette
   ajoutée par-dessus (ancré à .ze-coach-ch-hero__frame, pas à la colonne). */
.ze-coach-ch-badge { position: absolute; top: -2.9rem; left: -1.9rem; width: 104px; height: 104px; z-index: 3; transform: rotate(-11deg); filter: drop-shadow(0 9px 16px rgba(27,27,58,.24)); }
.ze-coach-ch-badge__disc { fill: var(--ze-lime-soft); }
.ze-coach-ch-badge__ring { fill: none; stroke: var(--ze-navy); stroke-width: 1.4; stroke-dasharray: 3 5; opacity: .55; }
.ze-coach-ch-badge__txt { fill: var(--ze-navy); font-family: var(--ze-font-hand); font-size: 33px; font-weight: 700; }
/* Carte flottante */
.ze-coach-ch-hero__fc {
  position: absolute; bottom: -1.25rem; right: -.5rem; background: var(--ze-white);
  border-radius: 14px; padding: .7rem 1rem; box-shadow: var(--ze-shadow-float);
  display: flex; align-items: center; gap: .6rem; font-size: .8rem; z-index: 2;
  border: 2px solid var(--ze-lavender-soft); animation: ze-floaty 5s ease-in-out infinite;
}
.ze-coach-ch-hero__fc-emoji { font-size: 1.4rem; }
.ze-coach-ch-hero__fc strong { display: block; font-weight: 700; font-size: .9rem; color: var(--ze-navy); }
.ze-coach-ch-hero__fc span { color: var(--ze-navy-muted); font-size: .7rem; }

@keyframes ze-morph {
  0%, 100% { border-radius: 63% 37% 54% 46% / 55% 48% 52% 45%; }
  25% { border-radius: 73% 27% 44% 56% / 45% 58% 42% 55%; }
  50% { border-radius: 53% 47% 64% 36% / 65% 38% 62% 35%; }
  75% { border-radius: 43% 57% 34% 66% / 55% 68% 32% 45%; }
}
@keyframes ze-floaty { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes ze-spin { 100% { transform: rotate(360deg); } }

/* ══════════════ LES 5 JOURS ══════════════ */
.ze-coach-ch-days { background: var(--ze-white); scroll-margin-top: 80px; }
.ze-coach-ch-days__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.1rem; }
/* .ze-coach-step (carte + gros numéro) vient de components.css. Ombre décalée au hover : */
.ze-coach-ch-days .ze-coach-step:hover { box-shadow: var(--ze-shadow-offset-sm); }
.ze-coach-ch-days .ze-coach-step h4 { font-size: .92rem; line-height: 1.35; }

/* ══════════════ FORMULAIRE ══════════════ */
.ze-coach-ch-form { background: var(--ze-lime-bg); border-top: 3px solid var(--ze-lime); border-bottom: 3px solid var(--ze-lime); scroll-margin-top: 80px; }
.ze-coach-ch-form .ze-coach-si { max-width: var(--ze-container-sm); }
.ze-coach-ch-form__card { background: var(--ze-white); border-radius: 24px; padding: clamp(1.75rem, 4vw, 3rem); box-shadow: var(--ze-shadow-offset-lav-soft); border: var(--ze-border-subtle); }
.ze-coach-ch-field { margin-bottom: 1.25rem; }
.ze-coach-ch-field label { display: block; font-weight: 600; color: var(--ze-navy); margin-bottom: .4rem; }
.ze-coach-ch-field input[type="text"],
.ze-coach-ch-field input[type="email"] { width: 100%; padding: .9rem 1rem; border: 2px solid var(--ze-lavender-soft); border-radius: 12px; font-family: var(--ze-font-body); font-size: 1rem; color: var(--ze-navy); background: var(--ze-offwhite); transition: border-color var(--ze-transition-fast), background var(--ze-transition-fast); }
.ze-coach-ch-field input:focus { outline: none; border-color: var(--ze-lavender); background: var(--ze-white); }
.ze-coach-ch-consent { display: flex; align-items: flex-start; gap: .6rem; margin-bottom: 1.5rem; font-size: .9rem; color: var(--ze-navy-muted); line-height: 1.5; cursor: pointer; }
.ze-coach-ch-consent input { margin-top: .2rem; flex-shrink: 0; width: 18px; height: 18px; accent-color: var(--ze-navy); }
/* Bouton submit du form : <button> (le sélecteur boutons de components.css ne cible que > a) */
.ze-coach-ch-submit {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  width: 100%; margin-top: .25rem; padding: 1rem 2rem; border: none; cursor: pointer;
  background: var(--ze-lime); color: var(--ze-navy); border-radius: 100px;
  font-family: var(--ze-font-body); font-weight: 700; font-size: 1rem;
  transition: all var(--ze-transition);
}
.ze-coach-ch-submit:hover:not(:disabled) { transform: translateY(-3px); box-shadow: var(--ze-shadow-btn-lime); }
.ze-coach-ch-submit:disabled { opacity: .6; cursor: default; }
.ze-coach-ch-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ze-coach-ch-field--error input { border-color: var(--ze-error); }
.ze-coach-ch-consent.ze-coach-ch-field--error span { color: var(--ze-error); }
.ze-coach-ch-error { display: block; color: var(--ze-error); font-size: .85rem; margin-top: .35rem; }
.ze-coach-ch-form__feedback { text-align: center; margin-top: 1rem; font-weight: 600; }
.ze-coach-ch-form__success { text-align: center; padding: 1.5rem 1rem; }
.ze-coach-ch-form__success h3 { font-family: var(--ze-font-display); color: var(--ze-navy); font-size: 1.7rem; margin-bottom: .5rem; font-weight: 800; }
.ze-coach-ch-form__success p { color: var(--ze-navy-light); max-width: 40ch; margin: 0 auto; }

/* ══════════════ RÉASSURANCE (navy, façon section "about") ══════════════ */
.ze-coach-ch-reassure { background: var(--ze-navy); color: var(--ze-white); position: relative; overflow: hidden; }
.ze-coach-ch-reassure::before { content: ''; position: absolute; top: 3rem; right: 4rem; width: 80px; height: 80px; border: 3px dashed var(--ze-lavender); border-radius: 50%; opacity: .2; pointer-events: none; }
.ze-coach-ch-reassure::after { content: '✦'; position: absolute; bottom: 3rem; left: 3rem; font-size: 2rem; opacity: .18; color: var(--ze-lime); animation: ze-spin 12s linear infinite; pointer-events: none; }
.ze-coach-ch-reassure__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 3.5rem; align-items: center; max-width: var(--ze-container); margin: 0 auto; position: relative; z-index: 1; }
.ze-coach-ch-reassure__photo { margin: 0; }
.ze-coach-ch-reassure__photo img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: 24px; box-shadow: var(--ze-shadow-offset); transition: box-shadow var(--ze-transition); }
.ze-coach-ch-reassure__photo img:hover { box-shadow: 12px 12px 0 var(--ze-lavender); }
.ze-coach-ch-reassure .ze-coach-slabel { color: var(--ze-lime-soft); }
.ze-coach-ch-reassure__text h2 { font-family: var(--ze-font-display); font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 800; line-height: 1.15; margin-bottom: 1.25rem; color: var(--ze-white); }
.ze-coach-ch-reassure__text p { font-size: 1.05rem; line-height: 1.8; color: rgba(255,255,255,.7); }

/* ══════════════ TÉMOIGNAGES (section, repris de homepage.css) ══════════════ */
.ze-coach-ch .ze-coach-testi { background: var(--ze-offwhite); }
.ze-coach-ch .ze-coach-testi__header { text-align: center; margin-bottom: 3rem; }
.ze-coach-ch .ze-coach-testi__grid {
  display: flex; flex-wrap: nowrap; gap: 1.5rem; overflow-x: auto;
  padding-top: 1rem; padding-bottom: 1.5rem; margin-top: -1rem;
  scroll-snap-type: x mandatory; scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.ze-coach-ch .ze-coach-testi__grid::-webkit-scrollbar { display: none; }
.ze-coach-ch .ze-coach-testi__grid > .wp-block-column { flex: 0 0 340px !important; max-width: 400px; scroll-snap-align: start; }
.ze-coach-ch .ze-coach-tcard__avatar--photo { background: none; overflow: hidden; padding: 0; }
.ze-coach-ch .ze-coach-tcard__avatar--photo img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }

/* ══════════════ CTA FINAL (lime, façon "Prête à être trouvée") ══════════════ */
.ze-coach-ch-cta { background: var(--ze-lime-bg); border-top: 3px solid var(--ze-lime); text-align: center; }
.ze-coach-ch-cta .ze-coach-stitle { max-width: 20ch; margin-left: auto; margin-right: auto; }
.ze-coach-ch-cta p { color: var(--ze-navy-muted); max-width: 44ch; margin: 0 auto 1.75rem; font-size: 1.05rem; }
.ze-coach-ch-cta .wp-block-buttons { justify-content: center; }

/* ══════════════ RESPONSIVE ══════════════ */
@media (max-width: 900px) {
  .ze-coach-ch-hero__inner { grid-template-columns: 1fr; text-align: center; gap: 2.5rem; }
  .ze-coach-ch-hero__content { text-align: center; }
  .ze-coach-ch-hero__desc { margin-left: auto; margin-right: auto; }
  .ze-coach-ch-hero__actions { justify-content: center; }
  .ze-coach-ch-hero__visual { order: 1; margin-top: 1.5rem; }
  .ze-coach-ch-days__grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
  .ze-coach-ch-reassure__grid { grid-template-columns: 1fr; gap: 2rem; text-align: center; }
  .ze-coach-ch-reassure__photo { max-width: 300px; margin: 0 auto; }
  .ze-coach-ch .ze-coach-testi__grid { flex-direction: row !important; flex-wrap: nowrap !important; }
  .ze-coach-ch .ze-coach-testi__grid > .wp-block-column { flex-basis: auto !important; width: auto; }
  .ze-coach-ch .ze-coach-testi__carousel { padding-bottom: 3.5rem; }
  .ze-coach-ch .ze-coach-testi__arrow { top: auto; bottom: 0; transform: none; }
  .ze-coach-ch .ze-coach-testi__arrow--prev { left: calc(50% - 52px); }
  .ze-coach-ch .ze-coach-testi__arrow--next { right: calc(50% - 52px); }
}
@media (max-width: 600px) {
  .ze-coach-ch-days__grid { grid-template-columns: 1fr 1fr; }
  .ze-coach-ch-hero__frame { max-width: 300px; }
  .ze-coach-ch-badge { top: -1.5rem; left: -.5rem; width: 88px; height: 88px; }
}
