/* ═════════════════════════════════════════════════════════════
   SebCoaching — Finitions premium (2026-09-18)
   Chargée après style.css. Pour revenir en arrière : retirer
   l'enqueue « sebcoaching-child-premium » dans functions.php.

   Principes :
   1. Plus d'air entre les sections, un seul rythme partout.
   2. Les boutons reviennent à la charte (angles 2 px, capitales).
   3. Moins de décor : plus de soulignés « tracé main », de barres
      corail entre sections, de taches floues ni de stickers penchés.
   4. Un seul point focal par section ; le corail reste un accent.
   ═════════════════════════════════════════════════════════════ */

:root {
  --sc-y: clamp(80px, 8.5vw, 132px);      /* respiration verticale d'une section */
  --sc-x: clamp(20px, 5vw, 64px);         /* gouttière latérale */
  --sc-head-gap: clamp(40px, 4.5vw, 64px);/* titre de section → contenu */
  --sc-radius: 4px;
  --sc-ink-soft: rgba(27, 58, 107, 0.82); /* texte courant sur fond clair */
}

/* Le parent met le corps en 300 (non chargé, rendu en 400) : « bolder » tombait
   donc sur 400 et aucun <strong> ne ressortait. En 400, le gras redevient gras. */
html body { font-weight: 400; }

/* « overflow-x: hidden » sur html/body faisait du body un conteneur de défilement :
   plus rien ne pouvait rester collé (position: sticky). « clip » coupe pareil sans cet effet. */
html, html body { overflow-x: clip !important; overflow-y: visible !important; }

/* ─── 1. Rythme des sections ──────────────────────────────── */
/* WordPress glisse 19 px entre les sections d'une page : le fond crème apparaissait entre deux sections */
html body .wp-block-post-content > .sc-section + .sc-section { margin-top: 0 !important; }
html body .sc-section {
  padding-top: var(--sc-y) !important;
  padding-bottom: var(--sc-y) !important;
  padding-left: var(--sc-x) !important;
  padding-right: var(--sc-x) !important;
}
/* Pages intérieures : la première section suit le titre de page, pas besoin d'un grand vide */
html body .wp-block-post-content > .sc-section:first-child { padding-top: clamp(32px, 4vw, 56px) !important; }
/* Réservation : bloc plein cadre (navy + Calendly), il garde ses propres marges */
html body .sc-section.sc-section--reserver-split { padding: 0 !important; }

/* Plus de barre corail posée à cheval entre deux sections */
html body .sc-section + .sc-section::after,
html body .sc-section + .sc-section::before { content: none !important; }

/* Mot en corail : on garde la couleur, on retire le souligné « tracé main » */
html body .sc-coral::after { content: none !important; }

/* Surtitres redondants avec le titre qui suit : masqués partout */
html body .sc-section .sc-t-eyebrow,
html body .sc-section .sc-section-head__eyebrow { display: none !important; }

/* Titres de section : une seule échelle */
html body .sc-section-head__title,
html body .sc-google-reviews__title,
html body .sc-transfos__title,
html body .sc-apropos-compact__title,
html body .sc-methode__title,
html body .sc-faq__title {
  font-size: clamp(36px, 4vw, 56px) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.025em !important;
  margin-top: 0 !important;
}
html body .sc-section-head { margin-bottom: var(--sc-head-gap) !important; }
html body .sc-section-head__lede,
html body .sc-transfos__lede {
  font-size: 18px !important;
  line-height: 1.6 !important;
  color: var(--slate) !important;
  max-width: 640px !important;
  margin: 20px auto 0 !important;
}

/* ─── 2. Boutons de la charte ─────────────────────────────── */
html body .sc-header__cta,
html body .sc-hero-v2__cta-primary,
html body .sc-offre-card__cta-btn,
html body .sc-pricing-xl__cta {
  border-radius: 2px !important;
  box-shadow: none !important;
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease !important;
}
html body .sc-header__cta:hover,
html body .sc-hero-v2__cta-primary:hover { background: var(--coral-deep) !important; transform: none !important; }

/* ─── 3. En-tête ───────────────────────────────────────────── */
html body .sc-header { box-shadow: none; }
html body .sc-header__inner { height: 72px !important; padding-top: 0 !important; padding-bottom: 0 !important; max-width: 1320px; }
html body .sc-header .sc-logo { padding: 6px 16px 6px !important; }
html body .sc-header .sc-logo__tagtop,
html body .sc-header .sc-logo__tagbot { font-size: 7.5px !important; }
html body .sc-header .sc-logo__word { font-size: 18px !important; }
html body .sc-header__cta { padding: 14px 22px !important; font-size: 12px !important; }

/* ─── 4. Hero ─────────────────────────────────────────────── */
html body .sc-hero-v2 {
  min-height: calc(100vh - 72px) !important;
  min-height: calc(100svh - 72px) !important;
  padding: clamp(40px, 5vw, 72px) var(--sc-x) !important;
}
html body .sc-hero-v2__inner {
  max-width: 1240px !important;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr) !important; /* dans 1200 px, « retrouve la forme. » tient sur une ligne jusqu'à 74 px */
  gap: clamp(40px, 6vw, 96px) !important;
}
html body .sc-hero-v2__kicker {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--coral);
  margin: 0 0 24px;
}
html body .sc-hero-v2__title {
  font-size: clamp(44px, 5vw, 74px) !important; /* « retrouve la forme. » tient sur une ligne */
  line-height: 0.96 !important;
  letter-spacing: -0.035em !important;
  margin: 0 0 32px !important;
}
html body .sc-hero-v2__miroir-list {
  list-style: none;
  margin: 0 0 40px !important;
  padding: 0 !important;
  display: grid;
  gap: 10px;
}
html body .sc-hero-v2__miroir-list li {
  font-family: var(--font-body) !important;
  font-style: normal !important;
  font-weight: 400 !important;
  font-size: 18px !important;
  line-height: 1.5 !important;
  color: var(--sc-ink-soft) !important;
  white-space: normal !important;
  padding-left: 24px !important;
  position: relative;
}
html body .sc-hero-v2__miroir-list li::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 12px !important;
  width: 12px !important;
  height: 2px !important;
  background: var(--coral) !important;
  transform: none !important;
  border: 0 !important;
  margin: 0 !important;
}
html body .sc-hero-v2__ctas { gap: 32px !important; margin-bottom: 44px !important; flex-wrap: wrap; }
html body .sc-hero-v2__cta-primary {
  flex-direction: row !important;
  align-items: center !important;
  gap: 14px !important;
  padding: 20px 28px !important;
  font-size: 13px !important;
  height: auto !important;
}
html body .sc-hero-v2__cta-tag {
  display: inline-block !important;
  font-family: var(--font-body) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  opacity: 1 !important;
  padding-left: 14px;
  border-left: 1px solid rgba(255, 255, 255, 0.45);
  margin: 0 !important;
}
html body .sc-hero-v2__cta-secondary {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  font-size: 12.5px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 6px 0 !important;
  border-bottom: 1.5px solid var(--coral) !important;
}
html body .sc-hero-v2__proof {
  list-style: none;
  margin: 0;
  padding: 24px 0 0;
  border-top: 1px solid var(--hairline);
  display: flex;
  flex-wrap: wrap;
  gap: 10px 28px;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  color: var(--slate);
}
html body .sc-hero-v2__proof li { display: inline-flex; align-items: center; gap: 8px; }
html body .sc-hero-v2__proof li + li::before {
  content: "";
  width: 4px; height: 4px; border-radius: 50%;
  background: var(--hairline-strong);
  margin-right: 20px;
  margin-left: -10px;
}
html body .sc-hero-v2__proof-stars { color: var(--coral); letter-spacing: 2px; font-size: 13px; }

html body .sc-hero-v2__photo-frame {
  transform: none !important;
  border-radius: var(--sc-radius) !important;
  box-shadow: none !important;
  width: 100% !important;
  max-width: 480px !important;
  height: auto !important;
  aspect-ratio: 4 / 5;
  overflow: hidden;
}
html body .sc-hero-v2__photo-img { width: 100% !important; height: 100% !important; object-fit: cover; }

/* ─── 5. Comment ça se passe ──────────────────────────────── */
html body .sc-process {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(28px, 4vw, 56px) !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
}
html body .sc-process__step {
  background: transparent !important;
  border: 0 !important;
  border-top: 1px solid var(--hairline-strong) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 28px 0 0 !important;
}
html body .sc-process__num { font-size: 40px !important; line-height: 1 !important; margin-bottom: 20px !important; }
html body .sc-process__title { font-size: 24px !important; margin: 0 0 10px !important; }
html body .sc-process__tag {
  background: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  font-size: 11px !important;
  color: var(--slate) !important;
  margin-bottom: 14px !important;
}
html body .sc-process__desc { font-size: 16px !important; line-height: 1.65 !important; color: var(--sc-ink-soft) !important; }

/* ─── 6. Avis Google : le mur, version carte ────────────
   Fond crème, cartes blanches à filet fin. Dans chaque carte l'avis vient d'abord,
   la signature ferme en bas, et toutes les signatures d'une rangée sont sur la même ligne.
   Les étoiles ne sont pas répétées avis par avis : la note du haut les porte.
   Sur téléphone, les cartes défilent latéralement au lieu d'empiler six blocs. */
html body .sc-google-reviews__header {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center;
}

/* La note : 5,0 en grand, les étoiles à côté, la fiche Google en petites capitales */
html body .sc-google-reviews__summary {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 14px;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  color: var(--navy) !important;
  text-decoration: none;
  font-family: var(--font-body);
  flex-wrap: wrap;
  justify-content: center;
}
html body .sc-google-reviews__score { display: inline-flex; align-items: center; gap: 14px; }
html body .sc-google-reviews__summary .sc-google-reviews__rating-num {
  font-family: var(--font-display);
  font-weight: 900;
  font-style: italic;
  font-size: 34px;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--navy);
}
html body .sc-google-reviews__summary .sc-stars { color: #F2B544; display: inline-flex; gap: 3px; }
html body .sc-google-reviews__summary .sc-star { width: 16px !important; height: 16px !important; }
html body .sc-google-reviews__total {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--slate) !important;
  transition: color .18s ease;
}
html body .sc-google-reviews__summary:hover .sc-google-reviews__total { color: var(--navy) !important; }

/* Le mur : 4 colonnes, les avis longs en occupent 2 et passent en corps plus grand */
html body .sc-google-reviews__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-flow: row dense;
  gap: 20px;
  align-items: stretch;
}
html body .sc-google-review--long { grid-column: span 2; }
html body .sc-google-reviews__grid .sc-google-review {
  display: flex !important;
  flex-direction: column !important;
  box-sizing: border-box !important;
  width: auto !important;
  margin: 0 !important;
  padding: 26px 24px !important;
  background: var(--white) !important;
  border: 1px solid var(--hairline) !important;
  border-radius: var(--sc-radius) !important;
  box-shadow: none !important;
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease !important;
}
html body .sc-google-reviews__grid .sc-google-review:hover {
  border-color: var(--hairline-strong) !important;
  transform: translateY(-3px);
  box-shadow: 0 18px 40px -26px rgba(27, 58, 107, 0.5);
}
html body .sc-google-review__text {
  font-size: 14.5px !important;
  line-height: 1.66 !important;
  color: var(--sc-ink-soft) !important;
  margin: 0 !important;
  display: block !important;
  -webkit-line-clamp: unset !important;
  overflow: visible !important;
}
html body .sc-google-review--long .sc-google-review__text { font-size: 16px !important; line-height: 1.64 !important; }
html body .sc-google-review__sign {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: auto;
  padding-top: 20px;
}
html body .sc-google-review__avatar {
  width: 32px;
  height: 32px;
  flex: none;
  border-radius: 50%;
  border: 1px solid var(--hairline-strong);
  background: none !important;
  color: var(--navy) !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 13.5px;
}
html body .sc-google-review__meta { display: flex; flex-direction: column; gap: 2px; margin: 0 !important; text-align: left !important; }
html body .sc-google-review__author {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  color: var(--navy);
  white-space: nowrap;
}
html body .sc-google-review__date { font-size: 12px; color: var(--slate); }
@media (max-width: 1100px) {
  html body .sc-google-reviews__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html body .sc-google-review--long .sc-google-review__text { max-width: 62ch; }
}
/* Téléphone : un rang qui glisse, la carte suivante dépasse pour qu'on voie qu'il y en a d'autres */
@media (max-width: 700px) {
  html body .sc-google-reviews__grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    gap: 16px;
    padding-bottom: 10px;
  }
  html body .sc-google-reviews__grid .sc-google-review {
    flex: 0 0 84%;
    scroll-snap-align: start;
  }
  html body .sc-google-review--long .sc-google-review__text { font-size: 14.5px !important; line-height: 1.66 !important; }
}

/* ─── 7. Transformations ──────────────────────────────────── */
html body .sc-transfos__head { text-align: center; margin-bottom: var(--sc-head-gap) !important; }
html body .sc-transfo {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
}
html body .sc-transfo__ba { border-radius: var(--sc-radius); overflow: hidden; }
html body .sc-transfo__cap { padding: 16px 0 0 !important; background: none !important; }
html body .sc-transfo__result {
  font-family: var(--font-display) !important;
  font-weight: 900 !important;
  font-style: italic !important;
  font-size: 22px !important;
  color: var(--navy) !important;
}

/* ─── 8. Offres : les trois cartes (accueil et page Mes offres) ───
   Même dessin des deux côtés : le nom du forfait dans l'italique de la charte,
   un prix qui domine, deux filets qui séparent le nom, le prix et ce qui est compris,
   le bouton calé en bas. Le corail ne sert qu'à trois choses : le repère
   « le plus choisi », le prix à la séance et le bouton du forfait mis en avant. */
html body .sc-offres-grid,
html body .sc-pricing-xl { gap: 24px !important; align-items: stretch !important; }

html body .sc-offre-card,
html body .sc-pricing-xl__card {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  height: auto !important;
  background: var(--white) !important;
  border: 1px solid var(--hairline) !important;
  border-radius: var(--sc-radius) !important;
  box-shadow: none !important;
  padding: 40px 34px !important;
  overflow: hidden !important;
  transform: none !important;
}

/* Repère du forfait mis en avant : un onglet dans le coin, plus de pastille à cheval sur le bord */
html body .sc-offre-card__badge,
html body .sc-pricing-xl__badge {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  left: auto !important;
  transform: none !important;
  margin: 0 !important;
  padding: 7px 14px 8px !important;
  background: var(--coral) !important;
  color: var(--white) !important;
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  font-size: 10.5px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  border-radius: 0 var(--sc-radius) 0 var(--sc-radius) !important;
  white-space: nowrap;
}

html body .sc-offre-card__title,
html body .sc-pricing-xl__title {
  font-family: var(--font-display) !important;
  font-weight: 900 !important;
  font-style: italic !important;
  font-size: clamp(30px, 2.8vw, 38px) !important;
  line-height: 1 !important;
  letter-spacing: -0.025em !important;
  color: var(--navy) !important;
  margin: 0 !important;
  padding: 0 !important;
}
html body .sc-offre-card__title::after,
html body .sc-pricing-xl__title::after { content: none !important; display: none !important; }

html body .sc-offre-card__seances,
html body .sc-pricing-xl__seances {
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.14em !important;
  color: var(--slate) !important;
  margin: 12px 0 0 !important;
}

/* Le prix, séparé du nom par un filet */
html body .sc-offre-card__price,
html body .sc-pricing-xl__price {
  margin: 26px 0 0 !important;
  padding: 26px 0 0 !important;
  border: 0 !important;
  border-top: 1px solid var(--hairline) !important;
}
html body .sc-offre-card__price-line,
html body .sc-pricing-xl__price-row {
  display: flex !important;
  align-items: baseline !important;
  gap: 12px !important;
  flex-wrap: nowrap !important;
}
html body .sc-offre-card__price-net,
html body .sc-pricing-xl__price-net {
  order: 0;
  font-family: var(--font-display) !important;
  font-weight: 900 !important;
  font-style: italic !important;
  font-size: clamp(42px, 4vw, 54px) !important;
  line-height: 1 !important;
  letter-spacing: -0.03em !important;
  color: var(--navy) !important;
}
html body .sc-offre-card__price-brut,
html body .sc-pricing-xl__price-brut {
  order: 1;
  font-family: var(--font-body) !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  color: var(--slate) !important;
  text-decoration: line-through !important;
  text-decoration-color: currentColor !important;
}
html body .sc-offre-card__price-period,
html body .sc-pricing-xl__price-period {
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: var(--slate) !important;
  margin: 12px 0 0 !important;
}
html body .sc-offre-card__price-session,
html body .sc-pricing-xl__per-session {
  font-family: var(--font-body) !important;
  font-size: 14.5px !important;
  font-weight: 600 !important;
  color: var(--coral) !important;
  margin: 14px 0 0 !important;
}
html body .sc-card-note,
html body .sc-pricing-xl__eco {
  font-family: var(--font-body) !important;
  font-size: 12.5px !important;
  color: var(--slate) !important;
  margin: 10px 0 0 !important;
}

/* Ce qui est compris */
html body .sc-offre-card__bullets,
html body .sc-pricing-xl__bullets {
  list-style: none !important;
  margin: 26px 0 28px !important;
  padding: 24px 0 0 !important;
  border-top: 1px solid var(--hairline) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 13px !important;
  flex: 1 1 auto !important;
}
html body .sc-offre-card__bullets li,
html body .sc-pricing-xl__bullets li {
  display: flex !important;
  align-items: flex-start !important;
  gap: 11px !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 14.5px !important;
  line-height: 1.5 !important;
  color: var(--sc-ink-soft) !important;
}
html body .sc-offre-card__check,
html body .sc-pricing-xl__check {
  flex: none !important;
  width: auto !important;
  height: auto !important;
  margin-top: 1px !important;
  background: none !important;
  border-radius: 0 !important;
  color: rgba(27, 58, 107, 0.4) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
}

html body .sc-offre-card__cta-btn,
html body .sc-pricing-xl__cta {
  margin-top: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 16px 20px 17px !important;
  font-size: 12.5px !important;
  background: transparent !important;
  color: var(--navy) !important;
  border: 1.5px solid var(--navy) !important;
}
html body .sc-offre-card__cta-btn:hover,
html body .sc-pricing-xl__cta:hover { background: var(--navy) !important; color: var(--cream) !important; }

/* Le forfait mis en avant : fond navy, c'est lui le point focal */
html body .sc-offre-card--featured,
html body .sc-pricing-xl__card--featured {
  background: var(--navy) !important;
  border-color: var(--navy) !important;
  color: var(--cream) !important;
}
html body .sc-offre-card--featured .sc-offre-card__title,
html body .sc-offre-card--featured .sc-offre-card__price-net,
html body .sc-pricing-xl__card--featured .sc-pricing-xl__title,
html body .sc-pricing-xl__card--featured .sc-pricing-xl__price-net { color: var(--cream) !important; }
html body .sc-offre-card--featured .sc-offre-card__seances,
html body .sc-offre-card--featured .sc-offre-card__price-brut,
html body .sc-offre-card--featured .sc-offre-card__price-period,
html body .sc-pricing-xl__card--featured .sc-pricing-xl__seances,
html body .sc-pricing-xl__card--featured .sc-pricing-xl__price-brut,
html body .sc-pricing-xl__card--featured .sc-pricing-xl__price-period,
html body .sc-pricing-xl__card--featured .sc-card-note,
html body .sc-pricing-xl__card--featured .sc-pricing-xl__eco { color: rgba(246, 243, 238, 0.62) !important; }
html body .sc-offre-card--featured .sc-offre-card__bullets li,
html body .sc-pricing-xl__card--featured .sc-pricing-xl__bullets li { color: rgba(246, 243, 238, 0.85) !important; }
html body .sc-offre-card--featured .sc-offre-card__check,
html body .sc-pricing-xl__card--featured .sc-pricing-xl__check { color: rgba(246, 243, 238, 0.5) !important; }
html body .sc-offre-card--featured .sc-offre-card__price-session,
html body .sc-pricing-xl__card--featured .sc-pricing-xl__per-session { color: var(--coral) !important; }
html body .sc-offre-card--featured .sc-offre-card__price,
html body .sc-offre-card--featured .sc-offre-card__bullets,
html body .sc-pricing-xl__card--featured .sc-pricing-xl__price,
html body .sc-pricing-xl__card--featured .sc-pricing-xl__bullets { border-top-color: rgba(246, 243, 238, 0.18) !important; }
html body .sc-offre-card--featured .sc-offre-card__cta-btn,
html body .sc-pricing-xl__card--featured .sc-pricing-xl__cta {
  background: var(--coral) !important;
  border-color: var(--coral) !important;
  color: var(--white) !important;
}
html body .sc-offre-card--featured .sc-offre-card__cta-btn:hover,
html body .sc-pricing-xl__card--featured .sc-pricing-xl__cta:hover { background: var(--coral-deep) !important; border-color: var(--coral-deep) !important; }

html body .sc-offres-more { text-align: center; }
@media (max-width: 600px) {
  html body .sc-offre-card,
  html body .sc-pricing-xl__card { padding: 32px 24px !important; }
}

/* ─── 9. À propos ─────────────────────────────────────────── */
html body .sc-apropos-compact {
  max-width: 1120px;
  margin: 0 auto;
  grid-template-columns: minmax(0, 360px) minmax(0, 1fr) !important;
  gap: clamp(40px, 6vw, 88px) !important;
}
html body .sc-apropos-compact__photo { width: 100% !important; max-width: none !important; }
html body .sc-apropos-compact__photo-frame {
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  aspect-ratio: 5 / 6;
  border-radius: var(--sc-radius) !important;
  box-shadow: none !important;
  overflow: hidden;
}
html body .sc-apropos-compact__photo-frame::before,
html body .sc-apropos-compact__photo-frame::after,
html body .sc-apropos-compact__photo::before,
html body .sc-apropos-compact__photo::after { display: none !important; }
html body .sc-apropos-compact__photo-img { width: 100%; height: 100%; object-fit: cover; }
html body .sc-apropos-compact__title { margin-bottom: 28px !important; }
html body .sc-apropos-compact__body {
  font-size: 17px !important;
  line-height: 1.7 !important;
  color: var(--sc-ink-soft) !important;
  max-width: 62ch !important;
  margin: 0 0 16px !important;
}
html body .sc-apropos-compact__stats {
  margin-top: 36px !important;
  padding-top: 28px !important;
  border-top: 1px solid var(--hairline) !important;
}

/* ─── 10. Avance immédiate ────────────────────────────────── */
html body .sc-avance { max-width: 1120px; margin: 0 auto; font-family: var(--font-body); color: var(--navy); }
html body .sc-avance .sc-section-head__title.sc-avance__title {
  font-size: clamp(30px, 3.2vw, 44px) !important;
  max-width: 880px;
  margin-left: auto !important;
  margin-right: auto !important;
}
html body .sc-avance__source { font-size: 13.5px; color: var(--slate); margin: 16px auto 0; max-width: 640px; }
html body .sc-avance__visuel {
  display: block;
  width: 100%;
  max-width: 880px;
  height: auto;
  margin: 0 auto var(--sc-head-gap);
  border-radius: 8px;
}
html body .sc-avance__cols {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 64px);
  align-items: start;
}
html body .sc-avance__h3 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 22px;
  color: var(--navy);
  margin: 0 0 14px;
}
html body .sc-avance__conditions { font-size: 15px; line-height: 1.65; color: var(--sc-ink-soft); margin: 0 0 16px; }
html body .sc-avance__list { font-size: 16.5px; line-height: 1.8; padding-left: 22px; margin: 0; color: var(--navy); }
html body .sc-avance__list li { padding-left: 4px; }
html body .sc-avance__infos {
  list-style: none;
  margin: 0;
  padding: 8px 28px;
  background: var(--cream);
  border-radius: var(--sc-radius);
}
html body .sc-avance__infos li {
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--navy);
  padding: 16px 0;
}
html body .sc-avance__infos li + li { border-top: 1px solid var(--hairline); }
html body .sc-avance__infos a { color: var(--coral-deep); font-weight: 600; word-break: break-word; }
html body .sc-avance__partners {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 56px;
}
html body .sc-avance__partners-name { font-family: var(--font-display); font-weight: 800; font-size: 15px; color: var(--navy); }
html body .sc-avance__partners-x { color: #b9b2a6; }
html body .sc-avance__partners img { height: 40px; width: auto; }

/* ─── 11. Page Mes offres ─────────────────────────
   Les trois cartes sont dessinées avec celles de l'accueil (section 8). */
html body .sc-seg, html body .sc-seg__thumb, html body .sc-seg__opt { border-radius: 2px !important; }

/* Forfaits supplémentaires : plus de halo corail ni de liseré, photo sans ombre */
html body .sc-forfait-extra--entretien::after { content: none !important; }
html body .sc-forfait-extra--carte { border-top: 1px solid var(--hairline) !important; border: 1px solid var(--hairline) !important; }
html body .sc-methode__photo { box-shadow: none !important; border-radius: var(--sc-radius) !important; overflow: hidden; }

/* Leur prix se lit comme celui des trois cartes : le net en premier, l'ancien prix barre
   a cote, et la ligne « soit X € la seance » en corail. Plus de fleche entre les deux. */
html body .sc-forfait-extra__price { align-items: baseline !important; gap: 12px !important; }
html body .sc-forfait-extra__arrow { display: none !important; }
html body .sc-forfait-extra__net {
  order: 0;
  font-size: clamp(42px, 4vw, 54px) !important;
  color: var(--cream) !important;
}
html body .sc-forfait-extra__brut {
  order: 1;
  font-family: var(--font-body) !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  color: rgba(246, 243, 238, 0.55) !important;
  text-decoration: line-through !important;
  text-decoration-color: currentColor !important;
}
html body .sc-forfait-extra__period {
  order: 2;
  font-size: 12.5px !important;
  font-weight: 400 !important;
  color: rgba(246, 243, 238, 0.62) !important;
  margin-top: 12px !important;
}
/* Carte claire (cycle boxe) */
html body .sc-forfait-extra--carte .sc-forfait-extra__net { color: var(--navy) !important; }
html body .sc-forfait-extra--carte .sc-forfait-extra__brut { color: var(--slate) !important; }
html body .sc-forfait-extra--carte .sc-forfait-extra__period { color: var(--slate) !important; }

/* ─── 13. Comment je travaille (page Mes offres) ──────────── */
/* En-tête sur la même grille que les 3 colonnes : titre sur 2 colonnes, intro au-dessus de la 3e */
html body .sc-work__head {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: end;
  gap: 24px clamp(28px, 4vw, 56px);
  margin-bottom: clamp(40px, 4.5vw, 64px);
}
html body .sc-work__title,
html body .sc-qa__title {
  font-size: clamp(36px, 4vw, 56px) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.025em !important;
  text-align: left !important;
  margin: 0 !important;
}
html body .sc-work__title { grid-column: span 2; }
html body .sc-work__lede {
  max-width: 34ch;
  margin: 0 0 6px;
  font-size: 18px;
  line-height: 1.55;
  color: var(--slate);
}
html body .sc-work__cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px clamp(28px, 4vw, 56px);
}
html body .sc-work__item { border-top: 1px solid var(--hairline-strong); padding-top: 24px; }
html body .sc-work__name {
  font-family: var(--font-display);
  font-weight: 800;
  font-style: normal;
  font-size: 20px;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--navy);
  margin: 0 0 10px;
}
html body .sc-work__desc { margin: 0; font-size: 16px; line-height: 1.65; color: var(--sc-ink-soft); }

/* Zones : bandeau navy plein écran (section à part sur la page Mes offres).
   Titre, intro et schéma à gauche ; communes à droite en 17 px ; marges resserrées. */
html body .wp-site-blocks .sc-section--zones {
  background: var(--navy) !important;
  color: var(--cream);
  padding-top: clamp(56px, 6vw, 80px) !important;
  padding-bottom: clamp(56px, 6vw, 80px) !important;
}
html body .sc-zones {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: clamp(32px, 6vw, 88px);
  align-items: start;
}
html body .sc-zones__title {
  font-family: var(--font-display);
  font-weight: 900;
  font-style: italic;
  font-size: clamp(36px, 4vw, 56px) !important;
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: var(--cream) !important;
  margin: 0 0 12px;
}
html body .sc-zones__lede { font-size: 18px; color: rgba(246, 243, 238, 0.75); margin: 0 0 36px; }
html body .sc-zones__map { display: block; width: 100%; max-width: 300px; height: auto; overflow: visible; }
html body .sc-zones__row { border-top: 1px solid var(--hairline-on-navy); padding: 26px 0 30px; }
html body .sc-zones__row:last-child { padding-bottom: 0; }
html body .sc-zones__label {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin: 0 0 16px;
}
html body .sc-zones__label strong {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 22px;
  letter-spacing: -0.01em;
  color: var(--cream);
}
html body .sc-zones__price { font-size: 16px; font-weight: 500; color: rgba(246, 243, 238, 0.8); }
html body .sc-zones__dot { width: 14px; height: 14px; border-radius: 50%; flex: none; box-sizing: border-box; }
html body .sc-zones__dot--in { background: rgba(246, 243, 238, 0.3); border: 1.5px solid var(--cream); }
html body .sc-zones__dot--out { background: transparent; border: 1.5px dashed var(--cream); }
html body .sc-zones__cities {
  list-style: none;
  margin: 0;
  padding: 0 0 0 30px;
  columns: 3;
  column-gap: 24px;
  font-size: 17px;
  line-height: 1.85;
  color: rgba(246, 243, 238, 0.9);
}
html body .sc-zones__cities li { break-inside: avoid; margin: 0; padding: 0; }
html body .sc-zones__cities li::before { content: none !important; }
@media (min-width: 901px) { html body .sc-zones__cities li { white-space: nowrap; } }

/* ─── 14. FAQ (page Mes offres) ───────────────────────────── */
html body .sc-qa { display: block; }
html body .sc-qa__title { margin-bottom: var(--sc-head-gap) !important; }
/* Deux colonnes indépendantes : ouvrir une question ne décale pas l'autre colonne */
html body .sc-qa__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(32px, 5vw, 72px);
  align-items: start;
}
html body .sc-qa__list { border-top: 1px solid var(--hairline-strong); }
html body .sc-qa__cta {
  grid-area: cta;
  position: sticky;
  top: 112px;
  background: var(--white);
  border: 1px solid var(--hairline);
  border-radius: var(--sc-radius);
  padding: 32px;
}
html body .sc-qa__cta-title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 20px;
  letter-spacing: -0.01em;
  color: var(--navy);
  margin: 0 0 8px;
}
html body .sc-qa__cta-text { font-size: 15.5px; line-height: 1.6; color: var(--sc-ink-soft); margin: 0 0 24px; }
html body .sc-qa__cta-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--coral);
  color: var(--white) !important;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 12.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 16px 20px;
  border-radius: 2px;
  text-decoration: none !important;
  transition: background-color .18s ease;
}
html body .sc-qa__cta-btn:hover { background: var(--coral-deep); }
html body .sc-qa__cta-tel {
  display: block;
  margin-top: 16px;
  text-align: center;
  font-size: 14.5px;
  color: var(--navy) !important;
  text-decoration: none !important;
}
html body .sc-qa__cta-tel:hover { text-decoration: underline !important; text-decoration-color: var(--coral) !important; text-underline-offset: 4px; }

html body .sc-qa__item { border-bottom: 1px solid var(--hairline-strong); background: none; margin: 0; padding: 0; }
html body .sc-qa__q {
  display: block;
  list-style: none;
  cursor: pointer;
  position: relative;
  padding: 26px 56px 26px 0;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 18px;
  line-height: 1.35;
  letter-spacing: -0.005em;
  color: var(--navy);
}
html body .sc-qa__q::-webkit-details-marker { display: none; }
html body .sc-qa__q::marker { content: ""; }
html body .sc-qa__q:focus { outline: none !important; }
html body .sc-qa__q:focus-visible { outline: 2px solid var(--coral) !important; outline-offset: 4px; }
html body .sc-qa__icon {
  position: absolute;
  right: 4px;
  top: 50%;
  width: 16px;
  height: 16px;
  margin-top: -8px;
  color: var(--navy);
  transition: color .18s ease;
}
html body .sc-qa__icon::before,
html body .sc-qa__icon::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1.5px;
  margin-top: -0.75px;
  background: currentColor;
  transition: transform .25s ease;
}
html body .sc-qa__icon::after { transform: rotate(90deg); }
html body .sc-qa__q:hover .sc-qa__icon,
html body .sc-qa__item[open] .sc-qa__icon { color: var(--coral); }
html body .sc-qa__item[open] .sc-qa__icon::after { transform: rotate(0deg); }
html body .sc-qa__a { padding: 0 56px 30px 0; font-size: 16.5px; line-height: 1.7; color: var(--sc-ink-soft); max-width: 68ch; }
html body .sc-qa__a strong { color: var(--navy); font-weight: 600; }

@supports (interpolate-size: allow-keywords) {
  html body .sc-qa { interpolate-size: allow-keywords; }
  html body .sc-qa__item::details-content {
    block-size: 0;
    overflow: clip;
    transition: block-size .28s ease, content-visibility .28s allow-discrete;
  }
  html body .sc-qa__item[open]::details-content { block-size: auto; }
}
@media (prefers-reduced-motion: reduce) {
  html body .sc-qa__item::details-content { transition: none; }
  html body .sc-qa__icon::before, html body .sc-qa__icon::after { transition: none; }
}

/* Tablette */
@media (max-width: 1100px) {
  /* Zones : titre + schéma côte à côte en haut, communes sur toute la largeur dessous */
  html body .sc-zones { grid-template-columns: 1fr; gap: 32px; }
  html body .sc-zones__aside { display: grid; grid-template-columns: minmax(0, 1fr) 150px; column-gap: 32px; align-items: center; }
  html body .sc-zones__map { grid-column: 2; grid-row: 1 / span 2; max-width: 150px; }
  html body .sc-zones__lede { margin-bottom: 0; }
  html body .sc-zones__title { align-self: end; }
  html body .sc-zones__lede { align-self: start; }
  html body .sc-zones__cities { columns: 3; }
}
@media (max-width: 900px) {
  html body .sc-qa__cols { grid-template-columns: 1fr; }
  html body .sc-qa__list + .sc-qa__list { border-top: 0; }
}
@media (max-width: 960px) {
  html body .sc-qa__title { margin-bottom: 40px !important; }
  html body .sc-qa__cta {
    position: static;
    margin-top: 40px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "t btn" "x tel";
    column-gap: 32px;
    align-items: center;
  }
  html body .sc-qa__cta-title { grid-area: t; }
  html body .sc-qa__cta-text { grid-area: x; margin: 0; }
  html body .sc-qa__cta-btn { grid-area: btn; }
  html body .sc-qa__cta-tel { grid-area: tel; margin-top: 8px; }
}
@media (max-width: 900px) {
  html body .sc-work__head { grid-template-columns: 1fr; }
  html body .sc-work__title { grid-column: auto; }
  html body .sc-work__lede { max-width: none; }
  /* Tablette : les 3 blocs deviennent des lignes, nom à gauche et texte à droite */
  html body .sc-work__cols { grid-template-columns: 1fr; gap: 0; }
  html body .sc-work__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: 8px 32px;
    padding: 24px 0 28px;
  }
  html body .sc-work__name { margin: 0; }
  html body .sc-zones__cities { columns: 3; font-size: 16px; padding-left: 0; line-height: 1.45; }
  /* Un nom qui passe à la ligne garde un retrait : il ne se lit pas comme une autre commune */
  html body .sc-zones__cities li { padding-left: 0.9em; text-indent: -0.9em; margin-bottom: 9px; }
}
@media (max-width: 700px) {
  html body .sc-work__item { grid-template-columns: 1fr; padding: 22px 0 26px; }
  html body .sc-zones__aside { grid-template-columns: minmax(0, 1fr) 104px; column-gap: 16px; }
  html body .sc-zones__map { max-width: 104px; }
  html body .sc-zones__cities { columns: 2; column-gap: 20px; font-size: 15.5px; }
  html body .sc-qa__cta { display: block; }
  html body .sc-qa__cta-text { margin: 0 0 20px; }
  html body .sc-qa__cta-tel { margin-top: 14px; }
  html body .sc-qa__q { font-size: 16.5px; padding-right: 40px; }
  html body .sc-qa__a { padding-right: 0; }
}

/* ─── 12. Mobile ──────────────────────────────────────────── */
@media (max-width: 900px) {
  html body .sc-hero-v2 { min-height: 0 !important; }
  html body .sc-hero-v2__inner { grid-template-columns: 1fr !important; }
  html body .sc-hero-v2__photo-frame { max-width: 100% !important; aspect-ratio: 4 / 3; }
  html body .sc-process { grid-template-columns: 1fr !important; }
  html body .sc-apropos-compact { grid-template-columns: 1fr !important; }
  html body .sc-apropos-compact__photo-frame { max-width: 320px; }
  html body .sc-avance__cols { grid-template-columns: 1fr; }
  html body .sc-google-reviews__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  html body .sc-header__inner { height: 64px !important; }
  html body .sc-hero-v2__title { font-size: clamp(38px, 10.5vw, 56px) !important; }
  html body .sc-hero-v2__miroir-list li { font-size: 16.5px !important; }
  html body .sc-hero-v2__ctas { gap: 20px !important; }
  html body .sc-hero-v2__cta-primary { width: 100%; flex-direction: column !important; gap: 6px !important; padding: 18px 20px !important; text-align: center; }
  html body .sc-hero-v2__cta-tag { border-left: 0; padding-left: 0; opacity: .9 !important; }
  html body .sc-hero-v2__proof { flex-direction: column; gap: 8px; font-size: 14px; }
  html body .sc-hero-v2__proof li + li::before { content: none; }
  html body .sc-google-reviews__grid { grid-template-columns: 1fr; }
  html body .sc-google-review--long { grid-column: auto; }
}

/* ─── 0. Cadre unique ─────────────────────────────────────────
   Un seul cadre de 1200 px, centré sur le même axe pour l'en-tête,
   le titre de page, chaque section et le pied de page : tous les
   blocs partagent le même bord gauche et le même bord droit.
   Chaque bloc de premier niveau prend min(1200 px, largeur − 2 marges). */
:root { --sc-wrap: 1200px; }

html body .sc-header__inner,
html body .sc-hero-v2 > .sc-hero-v2__inner,
html body .sc-section:not(.sc-section--reserver-split) > *:not(.sc-seg),
html body .sc-footer > *,
html body .wp-block-post-title {
  width: min(var(--sc-wrap), calc(100% - 2 * var(--sc-x))) !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}
/* Les parents ne portent plus de marge latérale : c'est le cadre qui la donne */
html body .sc-section:not(.sc-section--reserver-split),
html body section.sc-hero-v2,
html body .sc-footer {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* Le titre de page est dans un bloc qui garde sa marge WordPress (1,5 rem) : on la rend au titre pour tomber sur le cadre
   (.wp-site-blocks : plus précis que « .page-id-304 .wp-block-post-title » du thème) */
html body .wp-site-blocks .wp-block-post-title {
  width: min(var(--sc-wrap), calc(100% + var(--wp--style--root--padding-left, 1.5rem) + var(--wp--style--root--padding-right, 1.5rem) - 2 * var(--sc-x))) !important;
  /* marge calculée : « auto » ne sait pas centrer un bloc plus large que son parent (cas du mobile) */
  margin-left: max(calc(var(--sc-x) - var(--wp--style--root--padding-left, 1.5rem)), calc((100% - var(--sc-wrap)) / 2)) !important;
  margin-right: 0 !important;
}
/* Sections pleine largeur de la page Mes offres / Réserver : 100 % du conteneur visible au lieu de 100vw
   (100vw compte la barre de défilement et décalait le cadre de 8 px) */
html body .wp-site-blocks .sc-section--pricing-xl,
html body .wp-site-blocks .sc-section--methode,
html body .wp-site-blocks .sc-section--bento-master,
html body .wp-site-blocks .sc-section--faq,
html body .wp-site-blocks .sc-section--zones,
html body .wp-site-blocks .sc-section--reserver-split {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Les conteneurs intérieurs remplissent le cadre au lieu d'avoir chacun leur largeur */
html body .sc-process,
html body .sc-google-reviews__grid,
html body .sc-transfos__grid,
html body .sc-offres-grid,
html body .sc-apropos-compact,
html body .sc-avance,
html body .sc-pricing-xl,
html body .sc-forfaits-extra { max-width: none !important; }

/* En-tête : les liens ne passent plus sur deux lignes en largeur tablette */
html body .sc-header__link { white-space: nowrap; }


/* Sélecteur de durée : sur mobile il prend toute la largeur du cadre, pas celle de l'écran */
@media (max-width: 520px) {
  html body .sc-section > .sc-seg { width: min(var(--sc-wrap), calc(100% - 2 * var(--sc-x))) !important; box-sizing: border-box !important; margin-left: auto !important; margin-right: auto !important; }
}

/* ─── 15. Réservation ─────────────────────────────────────────
   Un rectangle navy aux coins arrondis, calé sur le cadre de 1200 px, qui contient
   le texte et l'agenda ; un espace crème le sépare du pied de page navy. */
html body .sc-section.sc-section--reserver-split {
  display: block !important;
  background: var(--cream) !important;
  padding: clamp(24px, 3vw, 40px) 0 var(--sc-y) !important;
}
html body .sc-reserver-split {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 560px);
  column-gap: clamp(32px, 5vw, 64px);
  align-items: center;
  /* le seul bloc du site qui sort du cadre de 1200 px : marges laterales de moitie */
  width: min(1440px, calc(100% - 2 * clamp(16px, 2.5vw, 32px))) !important;
  max-width: none !important;
  box-sizing: border-box !important;
  min-height: 0 !important;
  margin: 0 auto !important;
  padding: clamp(28px, 4vw, 56px) !important;
  background: var(--navy) !important;
  border-radius: 6px !important;
  box-shadow: 0 24px 60px -20px rgba(27, 58, 107, 0.3) !important;
}
html body .sc-reserver-split__left {
  max-width: none !important;
  min-height: 0 !important;
  display: block !important;
  padding: 0 !important;
}
html body .sc-reserver-split__left-inner { gap: 14px !important; }
html body .sc-reserver-split__checklist li { padding: 9px 0 !important; font-size: 16px !important; line-height: 1.5 !important; }
html body .sc-reserver-split__lede { font-size: 17.5px !important; line-height: 1.6 !important; }
html body .sc-reserver-split__title { font-size: clamp(32px, 3.6vw, 52px) !important; }
html body .sc-reserver-split__right {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  left: auto !important;
  transform: none !important;
  width: 100% !important;
  max-width: none !important;
  height: 700px !important; /* un mois entier plus la liste des horaires, sans défilement dans l'agenda */
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  background: var(--white) !important;
  overflow: hidden !important;
  border-radius: var(--sc-radius) !important;
  box-shadow: 0 20px 40px -20px rgba(0, 0, 0, 0.45) !important;
}
@media (max-width: 900px) {
  html body .sc-reserver-split { grid-template-columns: 1fr; row-gap: 32px; padding: 32px 28px !important; }
  html body .sc-reserver-split__right { height: 620px !important; }
}
@media (max-width: 600px) {
  html body .sc-reserver-split { padding: 24px 16px 16px !important; }
}

/* ═════════════════════════════════════════════════════════════
   16. Animations retenues (2026-09-18)
   1 titre du hero · 3 chiffres (JS) · 4 étapes
   5 zones · 6 micro-interactions. JS : assets/sebcoaching-anim.js
   ═════════════════════════════════════════════════════════════ */

/* 1. Hero : chaque ligne du titre monte depuis un masque, puis la photo se découvre */
html body .sc-hero-anim .sc-line {
  display: block;
  overflow: hidden;
  padding: 0 0.14em 0.1em 0.08em;
  margin: 0 0 -0.1em -0.08em;
}
html body .sc-hero-anim .sc-line__in {
  display: inline-block;
  transform: translateY(112%);
  animation: scLineUp 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) 0.15s forwards;
}
html body .sc-hero-anim .sc-line__in--2 { animation-delay: 0.3s; }
@keyframes scLineUp { to { transform: none; } }
html body .sc-hero-photo .sc-hero-v2__photo-frame {
  clip-path: inset(100% 0 0 0);
  animation: scClipUp 1.1s cubic-bezier(0.7, 0, 0.2, 1) 0.35s forwards;
}
html body .sc-hero-photo .sc-hero-v2__photo-img {
  transform: scale(1.08);
  animation: scZoomOut 1.6s cubic-bezier(0.2, 0.8, 0.2, 1) 0.35s forwards;
}
@keyframes scClipUp { to { clip-path: inset(0 0 0 0); } }
@keyframes scZoomOut { to { transform: none; } }

/* 2. Avant / après : retiré le 2026-09-18, les photos restent côte à côte */
html body .sc-transfo__cap .sc-transfo__result { font-variant-numeric: tabular-nums; }

/* 3. Chiffres : largeur stable pendant le défilement */
html body [data-sc-count] { font-variant-numeric: tabular-nums; }

/* 4. Étapes : une ligne corail se trace d'une étape à l'autre, un point marque chaque départ */
html body .sc-process__step { position: relative; }
html body .sc-process__step:hover { transform: none !important; box-shadow: none !important; }
html body .sc-process__step::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -1px;
  height: 2px;
  background: var(--coral);
  transform: scaleX(0);
  transform-origin: left center;
}
html body .sc-process__step::before {
  content: "";
  position: absolute;
  left: 0;
  top: -6px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--coral);
  transform: scale(0);
  z-index: 1;
}
html body .sc-process.sc-revealed .sc-process__step::before { animation: scPop 0.4s cubic-bezier(0.3, 1.6, 0.5, 1) forwards; }
html body .sc-process.sc-revealed .sc-process__step::after { animation: scDraw 0.7s cubic-bezier(0.45, 0, 0.2, 1) forwards; }
html body .sc-process.sc-revealed .sc-process__step:nth-child(1)::before { animation-delay: 0.35s; }
html body .sc-process.sc-revealed .sc-process__step:nth-child(1)::after { animation-delay: 0.45s; }
html body .sc-process.sc-revealed .sc-process__step:nth-child(2)::before { animation-delay: 1.05s; }
html body .sc-process.sc-revealed .sc-process__step:nth-child(2)::after { animation-delay: 1.15s; }
html body .sc-process.sc-revealed .sc-process__step:nth-child(3)::before { animation-delay: 1.75s; }
html body .sc-process.sc-revealed .sc-process__step:nth-child(3)::after { animation-delay: 1.85s; }
@keyframes scPop { to { transform: scale(1); } }
@keyframes scDraw { to { transform: scaleX(1); } }

/* 5. Zones : les cercles s'ouvrent depuis Dijon, le point pulse, les communes apparaissent */
html body .sc-zones__ring,
html body .sc-zones__pulse,
html body .sc-zones__lbl {
  transform-box: fill-box;
  transform-origin: center;
}
html body .sc-zones__ring { opacity: 0; transform: scale(0.4); }
html body .sc-zones__lbl { opacity: 0; }
html body .sc-zones__pulse { opacity: 0; }
html body .sc-zones__row { opacity: 0; transform: translateY(12px); }
html body .sc-zones.sc-revealed .sc-zones__ring--in { animation: scRing 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) 0.3s forwards; }
html body .sc-zones.sc-revealed .sc-zones__ring--out { animation: scRing 1s cubic-bezier(0.2, 0.8, 0.2, 1) 0.6s forwards; }
html body .sc-zones.sc-revealed .sc-zones__lbl { animation: scFade 0.5s 1s forwards; }
html body .sc-zones.sc-revealed .sc-zones__lbl--out { animation-delay: 1.3s; }
html body .sc-zones.sc-revealed .sc-zones__pulse { animation: scPulse 1.8s ease-out 0.4s 2; }
html body .sc-zones.sc-revealed .sc-zones__row { animation: scFadeUp 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) 0.7s forwards; }
html body .sc-zones.sc-revealed .sc-zones__row + .sc-zones__row { animation-delay: 1s; }
@keyframes scRing { to { opacity: 1; transform: none; } }
@keyframes scPulse { 0% { opacity: 0.7; transform: scale(1); } 100% { opacity: 0; transform: scale(9); } }
@keyframes scFade { to { opacity: 1; } }
@keyframes scFadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

/* 6. Micro-interactions */
html body .sc-arrow {
  display: inline-block;
  margin-left: 0.3em;
  transition: transform 0.22s cubic-bezier(0.2, 0.8, 0.2, 1);
}
html body a:hover .sc-arrow,
html body a:focus-visible .sc-arrow { transform: translateX(4px); }
html body .sc-header__link:not(.sc-header__nav-reserve) { position: relative; }
html body .sc-header__link:not(.sc-header__nav-reserve)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -6px;
  height: 1.5px;
  background: var(--coral);
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
}
html body .sc-header__link:not(.sc-header__nav-reserve):hover::after { transform: scaleX(1); transform-origin: left center; }
html body .sc-offre-card,
html body .sc-pricing-xl__card { transition: transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1), border-color 0.25s ease !important; }
html body .sc-offre-card:hover,
html body .sc-pricing-xl__card:hover { transform: translateY(-4px) !important; }
html body .sc-offre-card:not(.sc-offre-card--featured):hover,
html body .sc-pricing-xl__card:not(.sc-pricing-xl__card--featured):hover { border-color: var(--hairline-strong) !important; }
html body .sc-qa__item[open] .sc-qa__a { animation: scFadeUp 0.35s cubic-bezier(0.2, 0.8, 0.2, 1) both; }
html body .sc-qa__q:hover { color: var(--coral-deep); }

/* Mouvement réduit : tout est affiché à son état final, sans animation */
@media (prefers-reduced-motion: reduce) {
  html body .sc-hero-anim .sc-line__in,
  html body .sc-hero-photo .sc-hero-v2__photo-frame,
  html body .sc-hero-photo .sc-hero-v2__photo-img,
  html body .sc-process__step::before,
  html body .sc-process__step::after,
  html body .sc-zones__ring,
  html body .sc-zones__lbl,
  html body .sc-zones__row,
  html body .sc-qa__item[open] .sc-qa__a {
    animation: none !important;
    transform: none !important;
    clip-path: none !important;
    opacity: 1 !important;
  }
  html body .sc-zones__pulse { display: none; }
  html body .sc-arrow,
  html body .sc-offre-card,
  html body .sc-pricing-xl__card,
  html body .sc-header__link::after { transition: none !important; }
  html body .sc-offre-card:hover,
  html body .sc-pricing-xl__card:hover,
  html body a:hover .sc-arrow { transform: none !important; }
}

/* Titre du hero : toujours deux lignes. Chaque ligne reste entière et, sous 900 px, la taille
   suit la largeur de l'écran pour que « retrouve la forme » tienne (ligne la plus longue ≈ 9,4 fois la taille). */
html body .sc-hero-anim .sc-line__in { white-space: nowrap; }
@media (max-width: 900px) {
  html body .sc-hero-v2__title { font-size: min(64px, calc((100vw - 2 * var(--sc-x)) / 9.8)) !important; }
}

/* ═════════════════════════════════════════════════════════════
   17. Rythme vertical (2026-09-18) : une seule échelle d'espacements
   ─────────────────────────────────────────────────────────────
   12 px   petit libellé → texte
   20 px   titre → texte d'intro
   32 px   sous-titre → contenu, éléments d'un même groupe
   --sc-head-gap  titre de section (ou de page) → contenu   (40 → 64 px)
   --sc-sub       début d'un sous-bloc dans une section     (64 → 96 px)
   --sc-y         marge haute et basse d'une section        (80 → 132 px)
   ═════════════════════════════════════════════════════════════ */
:root { --sc-sub: clamp(64px, 7vw, 96px); }

/* Haut des pages intérieures : de l'air sous l'en-tête, puis le même écart titre → contenu que partout */
html body .wp-site-blocks .wp-block-group:has(> .wp-block-post-title) { padding-top: 0 !important; }
html body .wp-site-blocks .wp-block-post-title { margin-top: clamp(40px, 5vw, 72px) !important; margin-bottom: 0 !important; }
html body .wp-block-post-content > .sc-section:first-child { padding-top: var(--sc-head-gap) !important; }
/* WordPress glisse aussi 19 px entre le titre de page et le contenu */
html body .wp-site-blocks .wp-block-group:has(> .wp-block-post-title) > .wp-block-post-content { margin-top: 0 !important; }
html body .sc-section.sc-section--reserver-split { padding-top: var(--sc-head-gap) !important; }

/* Titre de section → contenu : la même valeur partout (deux anciennes règles imposaient 48 px) */
html body .sc-section .sc-section-head,
html body .sc-google-reviews__header,
html body .sc-transfos__head,
html body .sc-work__head,
html body .sc-qa__title { margin-bottom: var(--sc-head-gap) !important; }

/* Titre → texte d'intro : 20 px */
html body .sc-google-reviews__header { gap: 20px !important; }
html body .sc-apropos-compact__title { margin-bottom: 20px !important; }

/* Hero : 20 / 32 / 32 / 32, puis le filet des preuves */
html body .sc-hero-v2__kicker { margin-bottom: 20px !important; }
html body .sc-hero-v2__title { margin-bottom: calc(32px + 0.1em) !important; } /* compense le débord bas des lignes masquées */
html body .sc-hero-v2__miroir-list { margin-bottom: 32px !important; }
html body .sc-hero-v2__ctas { margin-bottom: 32px !important; }
html body .sc-hero-v2__proof { padding-top: 20px !important; }

/* Contenu → lien ou note qui le suit : 32 px */
html body .sc-offres-more { margin-top: 32px !important; }
html body .sc-seg { margin-bottom: 32px !important; }
html body .sc-pricing-xl__places-limit { margin-top: 32px !important; margin-bottom: 0 !important; }
html body .sc-apropos-compact__stats { margin-top: 32px !important; padding-top: 24px !important; }

/* Sous-blocs : « Forfaits supplémentaires » se détache des tarifs */
html body .sc-forfaits-extra { margin-top: var(--sc-sub) !important; }
html body .sc-forfaits-extra__head { margin-bottom: 32px !important; }

/* Avance immédiate */
html body .sc-avance__source { margin-top: 12px !important; }
html body .sc-avance__partners { margin-top: var(--sc-head-gap) !important; }

/* Zones (sur grand écran ; en tablette l'intro est centrée à côté du schéma) */
@media (min-width: 1101px) { html body .sc-zones__lede { margin-bottom: 32px; } }

/* Réservation, dans le bloc bleu : titre → intro 20, intro → liste 12, liste → contact 32 */
html body .sc-reserver-split__left-inner { gap: 0 !important; }
html body .sc-reserver-split__title { margin: 0 !important; }
html body .sc-reserver-split__lede { margin: 20px 0 0 !important; }
html body .sc-reserver-split__checklist { margin: 12px 0 0 !important; }
html body .sc-reserver-split__contact { margin: 32px 0 0 !important; }

/* Rythme vertical, tablette et téléphone */
@media (max-width: 900px) {
  /* la colonne photo gardait 360 px de haut et centrait une photo de 262 px : 49 px de vide au-dessus */
  html body .sc-hero-v2__right { min-height: 0 !important; height: auto !important; align-items: flex-start !important; }
  html body .sc-work__head { row-gap: 20px !important; }
  html body .sc-work__lede { margin-bottom: 0 !important; }
}

/* ═════════════════════════════════════════════════════════════
   18. Pied de page
   ═════════════════════════════════════════════════════════════ */
/* « Réserver mon appel découverte » tenait sur deux lignes : la colonne prend la largeur du lien */
html body .sc-footer__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  color: var(--coral) !important;
  font-weight: 700;
  text-decoration: none;
}
html body .sc-footer__cta:hover { color: #F2A183 !important; }
/* Chaque colonne prend la largeur de ses liens, le bloc de marque absorbe le reste */
html body .sc-footer__grid > .sc-footer__col { flex: 0 0 auto; }
html body .sc-footer__col ul a { white-space: nowrap; }
html body .sc-footer__brand-col { flex: 1 1 auto; min-width: 0; }
