/* =========================================================
   La sociedad que nos enferma — León Fu
   Instituto Sana para Sanar®
   Paleta: Azul noche + Ámbar cálido (Paleta D)
========================================================== */

/* -------- TOKENS -------- */
:root {
  /* Paleta */
  --c-navy: #0F2A4A;
  --c-amber: #E2AD45;
  --c-sky: #6BB0D0;
  --c-ivory: #FAF6F0;
  --c-white: #FFFFFF;
  --c-black: #000000;

  /* Tipografía */
  --ff-serif: 'Lora', Georgia, 'Times New Roman', serif;
  --ff-sans: 'DM Sans', -apple-system, BlinkMacSystemFont, system-ui, 'Segoe UI', Roboto, sans-serif;

  /* Escala responsiva con clamp */
  --fs-h1: clamp(2rem, 5vw + 1rem, 3.5rem);
  /* 32→56 */
  --fs-h2: clamp(1.625rem, 2.5vw + 1rem, 2.25rem);
  /* 26→36 */
  --fs-h3: clamp(1.375rem, 1.2vw + 1rem, 1.75rem);
  /* 22→28 */
  --fs-subtitle: clamp(1.375rem, 1.2vw + 1rem, 1.875rem);
  /* 22→30 */
  --fs-body: clamp(1.125rem, 0.4vw + 1rem, 1.25rem);
  /* 18→20 */
  --fs-btn: 1.125rem;
  /* 18 */

  /* Espaciado */
  --pad-section-mobile: 60px;
  --pad-section-desktop: 100px;
  --container: 1200px;
  --container-narrow: 820px;

  --nav-h: 72px;
}

/* -------- RESET -------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: var(--nav-h);
}

body {
  margin: 0;
  font-family: var(--ff-sans);
  font-size: var(--fs-body);
  line-height: 1.65;
  color: var(--c-black);
  background: var(--c-ivory);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font-family: inherit;
  cursor: pointer;
}

/* -------- LAYOUT -------- */
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: 24px;
}

.container--narrow {
  max-width: var(--container-narrow);
}

@media (min-width: 768px) {
  .container {
    padding-inline: 40px;
  }
}

/* -------- TYPOGRAPHY -------- */
.h2,
.h3 {
  font-family: var(--ff-serif);
  line-height: 1.25;
  margin: 0 0 0.6em;
}

.h2 {
  font-size: var(--fs-h2);
  font-weight: 600;
}

.h2--bold {
  font-weight: 700;
}

.h2--light {
  color: var(--c-white);
}

.h3 {
  font-size: var(--fs-h3);
  font-weight: 600;
}

.h3--amber {
  color: var(--c-amber);
}

.eyebrow {
  display: inline-block;
  font-family: var(--ff-sans);
  font-size: 0.875rem;
  /* 14 */
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 6px 12px;
  margin-bottom: 18px;
  background: var(--c-black);
  color: var(--c-white);
  border-radius: 2px;
}

.eyebrow--amber {
  background: var(--c-amber);
  color: var(--c-black);
}

.subtitle-italic {
  font-family: var(--ff-serif);
  font-style: italic;
  font-weight: 400;
  font-size: var(--fs-subtitle);
  letter-spacing: 0.03em;
  line-height: 1.4;
  margin: 0 0 1.5em;
}

.prose p {
  margin: 0 0 1.2em;
  font-size: var(--fs-body);
  line-height: 1.7;
}

.prose p:last-child {
  margin-bottom: 0;
}

.prose--light p {
  color: var(--c-white);
}

.prose__strong {
  font-weight: 700;
  font-size: 1.05em;
}

.link-underline {
  color: var(--c-navy);
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
  font-weight: 500;
  transition: opacity 0.2s ease;
}

.link-underline:hover {
  opacity: 0.7;
}

/* -------- BUTTONS -------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-sans);
  font-size: var(--fs-btn);
  font-weight: 700;
  text-align: center;
  padding: 14px 22px;
  border: 2px solid transparent;
  border-radius: 999px;
  transition: transform 0.15s ease, box-shadow 0.2s ease, background 0.2s ease;
  white-space: nowrap;
  line-height: 1.2;
  min-height: 48px;
}

.btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(15, 42, 74, 0.18);
}

.btn:active {
  transform: translateY(0);
}

.btn--amber {
  background: var(--c-amber);
  color: var(--c-black);
}

.btn--navy {
  background: var(--c-navy);
  color: var(--c-white);
}

.btn--sky {
  background: #DCE7F0;
  color: var(--c-navy);
}

.btn--block {
  width: 100%;
}

.btn--large {
  font-size: 1.25rem;
  padding: 18px 32px;
  min-height: 56px;
}

/* -------- NAV -------- */
.nav {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--c-navy);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.nav__inner {
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: var(--container);
  margin-inline: auto;
  padding: 12px 20px;
  min-height: var(--nav-h);
}

.nav__logo {
  flex-shrink: 0;
}

.nav__logo img {
  height: 44px;
  width: auto;
}

/* ---------- Toggle hamburguesa (solo mobile) ---------- */
.nav__toggle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  margin-left: auto;
  width: 44px;
  height: 44px;
  padding: 10px;
  background: transparent;
  border: 0;
  cursor: pointer;
  border-radius: 6px;
  transition: background 0.2s;
}

.nav__toggle:hover,
.nav__toggle:focus-visible {
  background: rgba(255, 255, 255, 0.08);
  outline: none;
}

.nav__toggle-bar {
  display: block;
  width: 100%;
  height: 2px;
  background: #FAF7F0;
  background: var(--c-white);
  border-radius: 1px;
  transition: transform 0.25s ease, opacity 0.2s ease;
  transform-origin: center;
}

/* Estado abierto: las barras se convierten en X */
.nav__toggle[aria-expanded="true"] .nav__toggle-bar:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.nav__toggle[aria-expanded="true"] .nav__toggle-bar:nth-child(2) {
  opacity: 0;
}

.nav__toggle[aria-expanded="true"] .nav__toggle-bar:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* ---------- Links (desktop por default, panel mobile) ---------- */
.nav__links {
  display: flex;
  gap: 10px;
  margin-left: auto;
  padding: 4px 0;
}

.nav__links .btn {
  font-size: 0.9375rem;
  padding: 10px 16px;
  min-height: 40px;
  flex-shrink: 0;
}

/* ---------- Backdrop (solo mobile cuando menu está abierto) ---------- */
.nav__backdrop {
  display: none;
  position: fixed;
  inset: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: rgba(15, 42, 74, 0.55);
  z-index: 90;
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
}

.nav.is-open .nav__backdrop {
  display: block;
  opacity: 1;
  pointer-events: auto;
}

/* ---------- Mobile (≤720px): hamburguesa + menú overlay ---------- */
@media (max-width: 720px) {
  .nav__inner {
    padding: 10px 16px;
  }

  .nav__logo img {
    height: 38px;
  }

  .nav__toggle {
    display: flex;
  }

  .nav__links {
    position: fixed;
    top: var(--nav-h);
    right: 0;
    left: 0;
    margin: 0;
    padding: 18px 16px 24px;
    background: var(--c-navy);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
    flex-direction: column;
    gap: 10px;
    z-index: 95;
    transform: translateY(-12px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: transform 0.25s ease, opacity 0.2s ease, visibility 0.2s ease;
  }

  .nav.is-open .nav__links {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .nav__links .btn {
    width: 100%;
    justify-content: center;
    font-size: 1rem;
    min-height: 48px;
    padding: 14px 18px;
  }
}

/* ---------- Desktop (≥721px): nav horizontal como siempre ---------- */
@media (min-width: 721px) {
  .nav__toggle {
    display: none;
  }

  .nav__backdrop {
    display: none !important;
  }
}

/* -------- SECTIONS BASE -------- */
section {
  padding: var(--pad-section-mobile) 0;
}

@media (min-width: 900px) {
  section {
    padding: var(--pad-section-desktop) 0;
  }
}

/* -------- HERO (BLOQUE 1) -------- */
.hero {
  background: var(--c-navy);
  color: var(--c-white);
  text-align: center;
  padding: 0 0 clamp(40px, 7vw, 72px);
}

.hero>.container {
  padding-top: clamp(24px, 4vw, 40px);
}

/* Banner del hero — composición con León integrado en halo amber */
.hero-banner {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 1;
  min-height: 300px;
  max-height: 420px;
  background: linear-gradient(120deg, #0A1F37 0%, #143559 55%, #0A1F37 100%);
  overflow: hidden;
}

.hero-banner__stage {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  isolation: isolate;
}

.hero-banner__rings {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  height: 140%;
  width: auto;
  aspect-ratio: 1 / 1;
  max-height: 640px;
  pointer-events: none;
  z-index: 1;
}

.hero-banner__portrait {
  position: relative;
  height: 80%;
  width: auto;
  max-height: 400px;
  object-fit: contain;
  object-position: center bottom;
  z-index: 2;
  align-self: flex-end;
}

@media (min-width: 900px) {
  .hero-banner {
    aspect-ratio: 16 / 5;
    max-height: 480px;
  }

  .hero-banner__portrait {
    height: 88%;
    max-height: 460px;
  }

  .hero-banner__rings {
    max-height: 720px;
  }
}

/* ---- HERO KICKER (pre-título pequeño) ---- */
.hero__kicker {
  font-family: "DM Sans", sans-serif;
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #E8A94A;
  color: var(--c-amber);
  margin: 0 0 22px;
  line-height: 1.4;
}

@media (min-width: 720px) {
  .hero__kicker {
    font-size: 0.9375rem;
    letter-spacing: 0.28em;
  }
}

/* ---- HERO TITLE (afirmación comercial larga) ---- */
.hero__title {
  font-family: "Lora", Georgia, serif;
  font-weight: 700;
  font-size: 1.7rem;
  font-size: clamp(1.7rem, 1.6vw + 1.15rem, 2.55rem);
  line-height: 1.18;
  margin: 0 0 24px;
  color: #FAF7F0;
  color: var(--c-white);
  letter-spacing: -0.01em;
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: clamp(20px, 2vw, 28px);
}

/* ---- HERO SUBTITLE ---- */
.hero__subtitle {
  font-family: "DM Sans", sans-serif;
  font-weight: 400;
  font-size: 1.125rem;
  font-size: clamp(1.125rem, 0.6vw + 1rem, 1.25rem);
  line-height: 1.55;
  color: #E2AD45;
  color: var(--c-amber);
  max-width: 720px;
  margin: 0 auto clamp(24px, 3vw, 36px);
}

/* ---- HERO SOCIAL PROOF (credenciales) ---- */
.hero__social-proof {
  list-style: none;
  padding: 0;
  margin: 0 auto clamp(28px, 3.5vw, 40px);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 10px 18px;
  font-family: "DM Sans", sans-serif;
  font-size: 0.9375rem;
  color: rgba(250, 247, 240, 0.82);
  max-width: 860px;
}

.hero__social-proof li {
  white-space: nowrap;
}

.hero__social-proof li strong {
  color: #E8A94A;
  color: var(--c-amber);
  font-weight: 700;
}

.hero__social-proof li+li::before {
  content: "·";
  margin-right: 18px;
  color: rgba(232, 169, 74, 0.5);
}

@media (min-width: 720px) {
  .hero__social-proof {
    font-size: 1rem;
    gap: 0 24px;
  }

  .hero__social-proof li+li::before {
    margin-right: 24px;
  }
}

/* ---- HERO CTA GROUP ---- */
.hero__cta-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: clamp(8px, 1.5vw, 16px);
}

.hero__cta-primary {
  width: 100%;
  max-width: 420px;
  font-size: 1.125rem;
  padding: 18px 28px;
  box-shadow: 0 8px 24px rgba(232, 169, 74, 0.25);
}

@media (min-width: 720px) {
  .hero__cta-primary {
    font-size: 1.1875rem;
    width: auto;
    max-width: none;
    padding: 20px 40px;
  }
}

.hero__cta-secondary {
  display: inline-block;
  margin-top: 18px;
  font-family: "DM Sans", sans-serif;
  font-size: 1rem;
  color: #FAF7F0;
  color: var(--c-white);
  opacity: 0.85;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  transition: opacity 0.2s;
}

.hero__cta-secondary:hover {
  opacity: 1;
  color: #E8A94A;
  color: var(--c-amber);
}

/* ---- HERO BANNER BADGE (overlay arriba del banner, para no tapar la cara de León) ---- */
.hero-banner__badge {
  position: absolute;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  background: rgba(15, 42, 74, 0.92);
  border: 1px solid rgba(232, 169, 74, 0.45);
  color: #FAF7F0;
  color: var(--c-white);
  font-family: "DM Sans", sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 10px 18px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  max-width: calc(100% - 28px);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}

.hero-banner__badge-date {
  color: #E8A94A;
  color: var(--c-amber);
  font-weight: 700;
}

.hero-banner__badge-sep {
  opacity: 0.5;
}

@media (min-width: 720px) {
  .hero-banner__badge {
    top: 22px;
    font-size: 1rem;
    padding: 11px 22px;
  }
}

/* ---- HERO PRODUCT LINE (nombre del producto, tamaño medio entre kicker y H1) ---- */
.hero__product {
  font-family: "Lora", Georgia, serif;
  font-weight: 600;
  font-size: 1.375rem;
  font-size: clamp(1.375rem, 1.8vw + 0.875rem, 2.125rem);
  line-height: 1.2;
  color: #FAF7F0;
  color: var(--c-white);
  letter-spacing: -0.005em;
  margin: 6px 0 clamp(18px, 2.5vw, 28px);
}

.hero__product em {
  font-style: italic;
  font-weight: 600;
  color: #E8A94A;
  color: var(--c-amber);
}

/* Claim entre hero__product y h1 — mismo tamaño que hero__product */
.hero__claim {
  font-family: "Lora", Georgia, serif;
  font-weight: 500;
  font-style: italic;
  font-size: 1.375rem;
  font-size: clamp(1.375rem, 1.8vw + 0.875rem, 2.125rem);
  line-height: 1.3;
  color: #FAF7F0;
  color: var(--c-white);
  opacity: 0.92;
  letter-spacing: -0.005em;
  margin: 0 0 22px;
}

/* -------- MUNDOS (BLOQUE 1 — 4 preguntas) -------- */
.mundos {
  background: var(--c-ivory);
  padding-bottom: 32px;
}

@media (min-width: 768px) {
  .mundos {
    padding-bottom: 56px;
  }
}

.mundos__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

@media (min-width: 820px) {
  .mundos__grid {
    grid-template-columns: 1fr 1fr;
    gap: 28px;
  }
}

.mundo {
  padding: 32px 28px;
  border-radius: 8px;
  font-size: var(--fs-body);
  line-height: 1.6;
}

.mundo p {
  margin: 0;
}

.mundo__label {
  display: block;
  font-family: var(--ff-sans);
  font-weight: 700;
  font-size: 0.875rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 14px;
  opacity: 0.85;
}

.mundo--amber {
  background: var(--c-amber);
  color: var(--c-black);
}

.mundo--white {
  background: var(--c-white);
  color: var(--c-black);
  border: 1px solid rgba(15, 42, 74, 0.12);
}

.mundo--sky {
  background: var(--c-sky);
  color: var(--c-black);
}

.mundo--navy {
  background: var(--c-navy);
  color: var(--c-white);
}

.mundo--navy .mundo__label {
  color: var(--c-amber);
  opacity: 1;
}

.mundos__cierre {
  font-family: var(--ff-serif);
  font-style: italic;
  font-size: var(--fs-subtitle);
  letter-spacing: 0.03em;
  line-height: 1.5;
  text-align: center;
  margin: 48px auto 0;
  max-width: 720px;
}

/* -------- EXPLICACIÓN (BLOQUE 2) -------- */
.explicacion {
  background: var(--c-amber);
  color: var(--c-black);
  padding-top: 32px;
}

@media (min-width: 768px) {
  .explicacion {
    padding-top: 56px;
  }
}

.explicacion .h2 {
  color: var(--c-black);
  text-align: center;
  margin-bottom: 40px;
  font-size: clamp(1.75rem, 1.8vw + 1rem, 2rem);
}

.explicacion .prose p {
  font-family: var(--ff-serif);
  font-weight: 500;
  font-size: clamp(1.25rem, 0.5vw + 1.05rem, 1.375rem);
  line-height: 1.45;
  color: var(--c-black);
  letter-spacing: -0.005em;
}

.explicacion .prose__strong {
  font-weight: 700;
  font-size: 1.05em;
}

.explicacion .ebook-inline-link a {
  color: var(--c-black);
}

.explicacion .ebook-inline-link a:hover {
  color: var(--c-white);
}

/* -------- EBOOK (BLOQUE 3) -------- */
.ebook {
  background: var(--c-amber);
  color: var(--c-black);
}

.ebook__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  align-items: start;
}

@media (min-width: 900px) {
  .ebook__grid {
    grid-template-columns: 1.1fr 1fr;
    gap: 60px;
  }
}

.ebook__copy .h2 {
  color: var(--c-black);
}

.ebook__copy .eyebrow {
  background: var(--c-navy);
  color: var(--c-white);
}

.ebook__copy em {
  font-style: italic;
}

.ebook__form {
  background: var(--c-white);
  padding: 32px 28px;
  border-radius: 10px;
  box-shadow: 0 12px 40px rgba(15, 42, 74, 0.12);
}

/* CTA al Taller Teórico debajo del formulario de ebook */
.ebook__cta {
  margin-top: 56px;
  text-align: center;
}

.ebook__cta-text {
  font-family: var(--ff-sans);
  font-size: 1.125rem;
  color: var(--c-navy);
  margin: 0 0 20px;
  opacity: 0.85;
}

.field {
  margin-bottom: 18px;
}

.field label {
  display: block;
  font-family: var(--ff-sans);
  font-weight: 600;
  font-size: 1rem;
  margin-bottom: 6px;
  color: var(--c-black);
}

.field__optional {
  font-weight: 400;
  opacity: 0.65;
  font-size: 0.9em;
}

.field input[type="text"],
.field input[type="tel"],
.field input[type="email"] {
  width: 100%;
  font-family: var(--ff-sans);
  font-size: 1.0625rem;
  padding: 12px 14px;
  border: 1.5px solid rgba(15, 42, 74, 0.25);
  border-radius: 6px;
  background: var(--c-white);
  color: var(--c-black);
  min-height: 48px;
  transition: border-color 0.2s ease;
}

.field input:focus {
  outline: none;
  border-color: var(--c-navy);
  box-shadow: 0 0 0 3px rgba(15, 42, 74, 0.12);
}

.field__check {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 0.9375rem;
  line-height: 1.5;
  margin: 16px 0 20px;
  cursor: pointer;
}

.field__check input {
  margin-top: 3px;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  accent-color: var(--c-navy);
}

.form__status {
  margin: 14px 0 0;
  font-size: 0.9375rem;
  min-height: 1.2em;
}

.form__status.is-error {
  color: #B00020;
}

.form__status.is-success {
  color: #0B6B36;
}

/* intl-tel-input overrides */
.iti {
  width: 100%;
}

.iti__tel-input {
  width: 100%;
}

/* -------- LEÓN (BLOQUE 4) -------- */
.leon {
  background: var(--c-white);
}

.leon__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  align-items: center;
}

@media (min-width: 900px) {
  .leon__grid {
    grid-template-columns: 1fr 1.2fr;
    gap: 60px;
  }
}

.leon__copy .eyebrow {
  display: inline-block;
  font-family: "DM Sans", sans-serif;
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #E8A94A;
  color: var(--c-amber);
  margin-bottom: 10px;
}

.leon__copy .h2 {
  color: var(--c-navy);
  margin-top: 0;
  margin-bottom: 20px;
}

.leon__copy p {
  font-family: "DM Sans", sans-serif;
  font-size: 1rem;
  font-size: clamp(1rem, 0.3vw + 0.9375rem, 1.0625rem);
  line-height: 1.65;
  color: var(--c-navy);
  margin: 0 0 16px;
}

.leon__copy p strong {
  color: var(--c-navy);
  font-weight: 700;
}

.leon__copy em {
  font-style: italic;
}

/* Diferenciador destacado (caja con borde amber) */
.leon__diferenciador {
  background: rgba(232, 169, 74, 0.08);
  border-left: 4px solid #E8A94A;
  border-left: 4px solid var(--c-amber);
  border-radius: 4px;
  padding: 18px 22px;
  margin: 24px 0;
}

.leon__diferenciador p {
  font-family: "Lora", Georgia, serif;
  font-style: italic;
  font-size: 1.0625rem;
  font-size: clamp(1.0625rem, 0.4vw + 1rem, 1.1875rem);
  line-height: 1.5;
  color: var(--c-navy);
  margin: 0;
}

.leon__diferenciador p strong {
  font-style: normal;
  font-weight: 700;
  color: var(--c-navy);
}

.photo-placeholder {
  background: transparent;
  aspect-ratio: 4 / 5;
}

.photo-placeholder img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.leon__video {
  margin-top: 60px;
}

.video-placeholder {
  background: var(--c-navy);
  color: var(--c-white);
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: var(--ff-sans);
  font-weight: 600;
  padding: 20px;
}

.video-placeholder small {
  opacity: 0.7;
  font-weight: 400;
  display: block;
  margin-top: 8px;
}

.video-placeholder iframe {
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 8px;
}

/* Embed directo (sin placeholder JS) — se usa cuando se conoce el ID desde el vamos */
.video-embed {
  position: relative;
  aspect-ratio: 16 / 9;
  background: var(--c-navy);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(15, 42, 74, 0.1);
}

.video-embed iframe {
  position: absolute;
  inset: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* -------- TALLER TEÓRICO (BLOQUE 5) -------- */
.taller-teorico {
  background: var(--c-navy);
  color: var(--c-white);
}

.taller-teorico .eyebrow--amber {
  margin-bottom: 20px;
}

.taller-teorico .subtitle-italic {
  color: var(--c-amber);
  margin-bottom: 30px;
}

/* Link discreto al ebook, debajo de la ficha de precio */
.taller-teorico__ebook-link {
  text-align: center;
  margin: 24px 0 0;
}

.taller-teorico__ebook-link a {
  font-family: "DM Sans", sans-serif;
  font-size: 1.5rem;
  color: var(--c-white);
  opacity: 0.85;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  transition: opacity 0.2s, color 0.2s;
}

.taller-teorico__ebook-link a:hover {
  opacity: 1;
  color: var(--c-amber);
}

/* Link al ebook sobre fondo claro (bloque "No es tu culpa. Es tu herencia.") */
.ebook-inline-link {
  text-align: center;
  margin: 32px 0 0;
  background: transparent;
}

.ebook-inline-link a {
  font-family: "DM Sans", sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--c-navy);
  background: transparent;
  opacity: 0.9;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
  transition: opacity 0.2s, color 0.2s;
}

.ebook-inline-link a:hover {
  opacity: 1;
  color: var(--c-amber);
}

/* ---- Destacado "COMIENZA + fecha" del Taller Teórico ---- */
.comienza-block {
  margin: 0 0 32px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.comienza-block__header {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  color: #E8A94A;
  color: var(--c-amber);
  font-family: "DM Sans", sans-serif;
  font-weight: 700;
  font-size: 0.9375rem;
  font-size: clamp(0.9375rem, 0.3vw + 0.875rem, 1.0625rem);
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.comienza-block__dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #E8A94A;
  background: var(--c-amber);
  flex-shrink: 0;
  animation: comienzaDotPulse 1.8s ease-in-out infinite;
  box-shadow: 0 0 0 0 rgba(232, 169, 74, 0.55);
}

@keyframes comienzaDotPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(232, 169, 74, 0.55);
    transform: scale(1);
  }

  70% {
    box-shadow: 0 0 0 10px rgba(232, 169, 74, 0);
    transform: scale(1.05);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(232, 169, 74, 0);
    transform: scale(1);
  }
}

.comienza-block__label {
  display: inline-block;
}

.comienza-block__date {
  display: inline-block;
  background: #E8A94A;
  background: var(--c-amber);
  color: var(--c-navy);
  font-family: "Lora", Georgia, serif;
  font-weight: 700;
  font-size: 1.5rem;
  font-size: clamp(1.5rem, 3vw + 0.75rem, 2.25rem);
  line-height: 1.2;
  padding: 16px 28px;
  border-radius: 10px;
  margin: 0;
  letter-spacing: -0.01em;
  box-shadow: 0 10px 28px rgba(232, 169, 74, 0.28);
}

@media (min-width: 720px) {
  .comienza-block__date {
    padding: 18px 34px;
  }
}

/* ---- Promise icons (3 íconos destacados: no te expones, solo escuchas, preguntas) ---- */
.promise-icons {
  list-style: none;
  padding: 0;
  margin: clamp(32px, 5vw, 56px) 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}

@media (min-width: 720px) {
  .promise-icons {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
}

.promise-icons__item {
  text-align: center;
  padding: 8px 4px;
}

.promise-icons__icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 18px;
  border-radius: 50%;
  background: rgba(232, 169, 74, 0.12);
  border: 2px solid #E8A94A;
  border: 2px solid var(--c-amber);
  color: #E8A94A;
  color: var(--c-amber);
  display: flex;
  align-items: center;
  justify-content: center;
}

.promise-icons__icon svg {
  width: 36px;
  height: 36px;
  display: block;
}

.promise-icons__title {
  font-family: "Lora", Georgia, serif;
  font-weight: 700;
  font-size: 1.25rem;
  font-size: clamp(1.25rem, 0.6vw + 1.125rem, 1.4375rem);
  line-height: 1.2;
  color: #FAF7F0;
  color: var(--c-white);
  margin: 0 0 10px;
  letter-spacing: -0.01em;
}

.promise-icons__text {
  font-family: "DM Sans", sans-serif;
  font-size: 1rem;
  font-size: clamp(1rem, 0.3vw + 0.9375rem, 1.0625rem);
  line-height: 1.5;
  color: rgba(250, 247, 240, 0.85);
  margin: 0;
  max-width: 280px;
  margin-left: auto;
  margin-right: auto;
}

.checklist {
  list-style: none;
  padding: 0;
  margin: 0 0 40px;
  display: grid;
  gap: 14px;
}

.checklist li {
  position: relative;
  padding: 14px 16px 14px 48px;
  background: rgba(255, 255, 255, 0.05);
  border-left: 3px solid var(--c-amber);
  border-radius: 4px;
  line-height: 1.55;
}

.checklist li::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 20px;
  width: 14px;
  height: 8px;
  border-left: 2px solid var(--c-amber);
  border-bottom: 2px solid var(--c-amber);
  transform: rotate(-45deg);
}

/* -------- DATA LIST (inversión, formato, etc.) -------- */
.data-list {
  margin: 0 0 36px;
  padding: 0;
  display: grid;
  gap: 16px;
}

.data-list>div {
  padding: 18px 20px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 6px;
}

.data-list dt {
  font-family: var(--ff-sans);
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 6px;
  opacity: 0.8;
}

.data-list dd {
  margin: 0;
  font-size: var(--fs-body);
  line-height: 1.5;
}

/* Data list en fondos claros */
.taller-terapeutico .data-list>div,
.sesion .data-list>div {
  background: rgba(15, 42, 74, 0.06);
}

/* Price switching (controlled by JS via <body data-region>) */
.price {
  display: none;
}

body[data-region="AR"] .price--ar,
body[data-region="US"] .price--us,
body[data-region="MX"] .price--mx,
body[data-region="EU"] .price--eu,
body[data-region="WW"] .price--ww {
  display: inline;
}

/* -------- TRANSICIÓN (BLOQUE 6) -------- */
.transicion {
  background: var(--c-ivory);
  text-align: center;
}

.transicion .h2 {
  color: var(--c-navy);
}

.transicion .prose {
  max-width: 640px;
  margin: 0 auto;
}

/* -------- TALLER TERAPÉUTICO (BLOQUE 7) -------- */
.taller-terapeutico {
  background: var(--c-white);
  /* Peso visual reducido (~50%) respecto al Taller Teórico — producto secundario */
  padding: clamp(40px, 6vw, 72px) 0;
}

.taller-terapeutico .h2 {
  color: var(--c-navy);
}

/* Banner del Terapéutico más compacto */
.taller-terapeutico .taller-hero {
  max-height: 260px;
  margin-bottom: 28px;
}

@media (min-width: 900px) {
  .taller-terapeutico .taller-hero {
    max-height: 300px;
    margin-bottom: 36px;
  }
}

/* Título del Terapéutico más contenido */
.taller-terapeutico .taller-title {
  font-size: clamp(1.5rem, 2vw + 1rem, 2.25rem);
  line-height: 1.2;
}

.taller-terapeutico .taller-title__line2 {
  font-size: clamp(1.375rem, 1.8vw + 0.875rem, 2rem);
  letter-spacing: 0.04em;
}

.taller-title__line3 {
  display: block;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  font-size: clamp(2rem, 3.2vw + 1rem, 3.25rem);
  line-height: 1.05;
  margin-top: 8px;
}

.taller-terapeutico .taller-title__line3 {
  color: #B07410;
}

.taller-terapeutico .eyebrow {
  font-size: 0.75rem;
  opacity: 0.85;
}

/* Subtítulos internos más pequeños */
.taller-terapeutico .h3 {
  font-size: clamp(1.25rem, 0.8vw + 1rem, 1.625rem);
}

/* Texto corrido más compacto */
.taller-terapeutico .prose p {
  font-size: 1.0625rem;
}

/* Párrafo después del pullquote — un escalón más grande y con peso 500 */
.taller-terapeutico .pullquote + .prose p {
  font-size: clamp(1.125rem, 0.4vw + 1.0625rem, 1.25rem);
  font-weight: 500;
}

/* Párrafo de entrada — más grande y presente, tipo lead editorial */
.taller-terapeutico .prose--intro p {
  font-family: "Lora", Georgia, serif;
  font-weight: 500;
  font-size: clamp(1.1875rem, 0.6vw + 1.0625rem, 1.4375rem);
  line-height: 1.5;
  color: var(--c-navy);
  letter-spacing: -0.005em;
}

.pullquote {
  margin: 40px 0;
  padding: 40px 28px;
  background: var(--c-navy);
  color: var(--c-amber);
  font-family: var(--ff-serif);
  font-style: italic;
  font-weight: 600;
  font-size: clamp(1.375rem, 2vw + 1rem, 1.875rem);
  line-height: 1.4;
  letter-spacing: 0.03em;
  text-align: center;
  border-radius: 8px;
  quotes: none;
}

/* -------- SESIÓN PRIVADA (BLOQUE 8) -------- */
.sesion {
  background: #DCE7F0;
  color: var(--c-black);
}

.sesion .h2 {
  color: var(--c-black);
}

.sesion .eyebrow {
  background: var(--c-navy);
  color: var(--c-white);
  font-size: clamp(0.95rem, 0.3vw + 0.875rem, 1.0625rem);
  padding: 9px 16px;
  letter-spacing: 0.12em;
  margin-bottom: 22px;
}

/* -------- CIERRE (BLOQUE 9) -------- */
.cierre {
  background: var(--c-navy);
  color: var(--c-amber);
  text-align: center;
  padding: clamp(64px, 10vw, 120px) 0;
}

.cierre__quote {
  font-family: "Lora", Georgia, serif;
  font-style: italic;
  font-weight: 600;
  font-size: clamp(1.5rem, 2vw + 1rem, 2rem);
  letter-spacing: 0.02em;
  line-height: 1.45;
  margin: 0 auto clamp(32px, 4vw, 48px);
  max-width: 760px;
  quotes: none;
  padding: 0;
}

.cierre__quote p {
  margin: 0 0 18px;
  color: var(--c-amber);
}

.cierre__author {
  display: block;
  font-family: "DM Sans", sans-serif;
  font-style: normal;
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(250, 247, 240, 0.6);
  margin-top: 8px;
}

.cierre__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  margin-top: clamp(24px, 4vw, 36px);
}

.cierre__cta-btn {
  width: 100%;
  max-width: 420px;
  font-size: 1.125rem;
  padding: 18px 28px;
  box-shadow: 0 8px 24px rgba(232, 169, 74, 0.25);
}

@media (min-width: 720px) {
  .cierre__cta-btn {
    font-size: 1.1875rem;
    width: auto;
    max-width: none;
    padding: 20px 44px;
  }
}

.cierre__microtext {
  font-family: "DM Sans", sans-serif;
  font-size: 0.9375rem;
  font-weight: 500;
  color: rgba(250, 247, 240, 0.65);
  margin: 0;
  letter-spacing: 0.02em;
}

/* -------- FOOTER -------- */
.footer {
  background: #081B33;
  color: var(--c-white);
  padding: 60px 0 32px;
}

.footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
}

@media (min-width: 720px) {
  .footer__grid {
    grid-template-columns: 1.4fr repeat(3, 1fr);
    gap: 40px;
  }
}

.footer__logo {
  height: 56px;
  width: auto;
  margin-bottom: 16px;
}

.footer__tag {
  font-size: 0.9375rem;
  opacity: 0.75;
  margin: 0;
  line-height: 1.5;
}

.footer__col h4 {
  font-family: var(--ff-serif);
  font-weight: 600;
  font-size: 1.125rem;
  margin: 0 0 14px;
  color: var(--c-amber);
}

.footer__col ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}

.footer__col a {
  color: var(--c-white);
  font-size: 0.9375rem;
  opacity: 0.85;
  transition: opacity 0.2s ease;
}

.footer__col a:hover {
  opacity: 1;
  color: var(--c-amber);
}

.footer__legal {
  margin: 48px 0 0;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 0.875rem;
  opacity: 0.6;
  text-align: center;
}

/* -------- SCROLL REVEAL -------- */
.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s ease, transform 0.6s ease;
  will-change: opacity, transform;
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  html {
    scroll-behavior: auto;
  }
}

/* -------- FOCUS VISIBLE -------- */
a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 3px solid var(--c-amber);
  outline-offset: 2px;
  border-radius: 4px;
}

/* =========================================================
   V2 ADDITIONS — Cambios de prompt v2
========================================================== */

/* -------- HERO BRAND (Bloque 1) -------- */
.hero__brand {
  font-family: var(--ff-serif);
  font-style: italic;
  font-weight: 400;
  color: var(--c-amber);
  margin: 0 0 18px;
  letter-spacing: 0.04em;
  /* El doble del subtítulo. Subtítulo base ~22→30; marca ~44→60. */
  font-size: clamp(2.75rem, 2.4vw + 2rem, 3.75rem);
  line-height: 1.1;
}

@media (max-width: 560px) {
  .hero__brand {
    font-size: clamp(2rem, 5vw + 1rem, 2.75rem);
  }
}

/* -------- BLOQUE 3 — Ebook reestructurado -------- */
.ebook__headline {
  font-family: var(--ff-serif);
  font-weight: 600;
  font-size: clamp(1.75rem, 2.2vw + 1rem, 2.5rem);
  line-height: 1.25;
  color: var(--c-black);
  text-align: center;
  max-width: 920px;
  margin: 0 auto 48px;
}

@media (min-width: 900px) {
  .ebook__headline {
    margin-bottom: 64px;
  }
}

.ebook .ebook__grid {
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: start;
}

@media (min-width: 900px) {
  .ebook .ebook__grid {
    grid-template-columns: 1.2fr 1fr;
    gap: 64px;
  }
}

.ebook__left {
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.ebook-mockup {
  background: transparent;
  aspect-ratio: 400 / 520;
  max-width: 400px;
  width: 100%;
  margin: 0 auto;
}

.ebook-mockup img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.ebook__titling {
  text-align: center;
}

.ebook__kicker {
  font-family: var(--ff-sans);
  font-weight: 500;
  font-size: 1.0625rem;
  color: var(--c-black);
  margin: 0 0 6px;
}

.ebook__name {
  font-family: var(--ff-serif);
  font-style: italic;
  font-weight: 600;
  font-size: clamp(1.5rem, 1.6vw + 1rem, 2rem);
  line-height: 1.25;
  color: var(--c-black);
  margin: 0;
}

.ebook__desc p {
  font-size: var(--fs-body);
  line-height: 1.65;
  margin: 0 0 1em;
  color: var(--c-black);
}

.ebook__desc p:last-child {
  margin-bottom: 0;
}

/* -------- TALLER — imagen hero de bloque -------- */
.taller-hero {
  width: 100%;
  aspect-ratio: 3 / 1;
  min-height: 200px;
  max-height: 400px;
  background: transparent;
  margin-bottom: 36px;
}

.taller-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (min-width: 900px) {
  .taller-hero {
    margin-bottom: 48px;
    aspect-ratio: 16 / 5;
  }
}

/* Quitar padding-top de la sección cuando tiene hero integrado */
#taller-teorico,
#taller-terapeutico {
  padding-top: 0;
}

/* -------- TALLER — título en 2 líneas -------- */
.taller-title {
  font-family: var(--ff-serif);
  margin: 14px 0 24px;
  line-height: 1.1;
  color: var(--c-white);
}

.taller-title--dark {
  color: var(--c-navy);
}

.taller-title__line1 {
  display: block;
  font-weight: 600;
  font-size: clamp(1.375rem, 1.3vw + 1rem, 1.875rem);
  margin-bottom: 10px;
  letter-spacing: 0.01em;
}

.taller-title__line2 {
  display: block;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  font-size: clamp(2rem, 3.2vw + 1rem, 3.25rem);
  line-height: 1.05;
}

/* -------- SCHEDULE — fechas y horarios -------- */
.schedule {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(226, 173, 69, 0.35);
  border-radius: 10px;
  padding: 28px 24px;
  margin: 40px 0 56px;
  color: var(--c-white);
}

@media (min-width: 720px) {
  .schedule {
    padding: 36px 40px;
  }
}

.schedule .h3 {
  margin-top: 0;
  margin-bottom: 14px;
}

.schedule__intro {
  font-size: var(--fs-body);
  line-height: 1.6;
  margin: 0 0 24px;
  color: var(--c-white);
}

.schedule__intro strong {
  color: var(--c-amber);
  font-weight: 700;
}

.schedule__dates {
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

@media (min-width: 560px) {
  .schedule__dates {
    grid-template-columns: 1fr 1fr;
    gap: 10px 24px;
  }
}

.schedule__dates li {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 10px 14px;
  background: rgba(255, 255, 255, 0.05);
  border-left: 3px solid var(--c-amber);
  border-radius: 4px;
  font-size: 1.0625rem;
}

.schedule__dates li span {
  font-family: var(--ff-sans);
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-amber);
  flex-shrink: 0;
  min-width: 64px;
}

.schedule__local {
  background: var(--c-amber);
  color: var(--c-black);
  padding: 18px 20px;
  border-radius: 8px;
  text-align: center;
  margin: 0 0 24px;
}

.schedule__local-label {
  font-family: var(--ff-sans);
  font-weight: 600;
  font-size: 0.875rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin: 0 0 4px;
}

.schedule__local-time {
  font-family: var(--ff-serif);
  font-weight: 700;
  font-size: clamp(2.25rem, 3vw + 1rem, 3rem);
  line-height: 1.1;
  margin: 0;
}

.schedule__local-sub {
  font-family: var(--ff-sans);
  font-size: 0.9375rem;
  opacity: 0.8;
  margin: 4px 0 0;
}

.schedule__heading {
  font-family: var(--ff-sans);
  font-weight: 700;
  font-size: 0.875rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--c-amber);
  margin: 0 0 14px;
}

/* Referencias internacionales — línea inline sutil con bullets */
.schedule__refs {
  margin: 0;
  font-family: var(--ff-sans);
  font-size: 0.9375rem;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.72);
}

.schedule__refs span {
  display: inline;
  white-space: nowrap;
}

.schedule__refs span:not(:last-child)::after {
  content: "•";
  color: var(--c-amber);
  opacity: 0.55;
  margin: 0 10px;
  font-weight: 700;
}

.schedule__refs strong {
  color: var(--c-amber);
  font-weight: 700;
  margin-right: 4px;
  opacity: 0.9;
}

/* -------- SYLLABUS — 8 clases -------- */
/* Syllabus — acordeón (details/summary nativos) */
.syllabus__hint {
  font-family: "DM Sans", sans-serif;
  font-size: 0.9375rem;
  color: rgba(255, 255, 255, 0.65);
  margin: 0 0 18px;
  font-style: italic;
}

.syllabus {
  list-style: none;
  padding: 0;
  margin: 0 0 36px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

@media (min-width: 900px) {
  .syllabus {
    grid-template-columns: 1fr 1fr;
    gap: 14px 20px;
  }
}

.syllabus__item {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(232, 169, 74, 0.25);
  border-left: 3px solid #E8A94A;
  border-left: 3px solid var(--c-amber);
  border-radius: 6px;
  overflow: hidden;
  transition: background 0.2s, border-color 0.2s;
}

.syllabus__item[open] {
  background: rgba(232, 169, 74, 0.06);
  border-color: rgba(232, 169, 74, 0.55);
}

.syllabus__summary {
  cursor: pointer;
  list-style: none;
  padding: 18px 44px 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
  user-select: none;
  min-height: 56px;
  justify-content: center;
}

.syllabus__summary::-webkit-details-marker {
  display: none;
}

.syllabus__summary::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 18px;
  transform: translateY(-50%);
  font-family: "DM Sans", sans-serif;
  font-size: 1.5rem;
  font-weight: 400;
  color: #E8A94A;
  color: var(--c-amber);
  line-height: 1;
  transition: transform 0.25s ease;
}

.syllabus__item[open]>.syllabus__summary::after {
  content: "−";
}

.syllabus__num {
  display: inline-block;
  font-family: "DM Sans", sans-serif;
  font-weight: 700;
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #E8A94A;
  color: var(--c-amber);
  background: rgba(232, 169, 74, 0.12);
  padding: 3px 9px;
  border-radius: 3px;
  align-self: flex-start;
}

.syllabus__title {
  font-family: "Lora", Georgia, serif;
  font-weight: 600;
  font-size: 1.0625rem;
  font-size: clamp(1.0625rem, 0.3vw + 1rem, 1.1875rem);
  line-height: 1.3;
  color: var(--c-white);
  letter-spacing: -0.005em;
}

.syllabus__detail {
  padding: 4px 20px 20px;
}

.syllabus__detail p {
  font-family: "DM Sans", sans-serif;
  font-size: 1rem;
  font-size: clamp(1rem, 0.3vw + 0.9375rem, 1.0625rem);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
  margin: 0;
}

@media (min-width: 720px) {
  .syllabus__summary {
    padding: 20px 48px 20px 24px;
  }

  .syllabus__detail {
    padding: 4px 24px 22px;
  }
}

/* -------- BONUS CARD (bibliografía) -------- */
.bonus-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 24px;
  background: var(--c-amber);
  color: var(--c-black);
  border-radius: 8px;
  margin: 0 0 56px;
}

.bonus-card__icon {
  font-size: 1.75rem;
  line-height: 1;
  flex-shrink: 0;
}

.bonus-card p {
  margin: 0;
  font-family: var(--ff-sans);
  font-weight: 600;
  font-size: 1.0625rem;
  line-height: 1.45;
}

/* -------- ENROLL CARD (ficha de inscripción) -------- */
.enroll-card {
  background: var(--c-white);
  color: var(--c-black);
  border: 3px solid var(--c-amber);
  border-radius: 12px;
  padding: 28px 24px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
  margin-top: 20px;
}

@media (min-width: 720px) {
  .enroll-card {
    padding: 40px 44px;
  }
}

.enroll-card--light {
  border-color: var(--c-navy);
  box-shadow: 0 20px 50px rgba(15, 42, 74, 0.12);
}

.enroll-card__eyebrow {
  font-family: var(--ff-sans);
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-navy);
  background: var(--c-amber);
  display: inline-block;
  padding: 6px 12px;
  border-radius: 2px;
  margin: 0 0 22px;
}

.enroll-card--light .enroll-card__eyebrow {
  background: var(--c-navy);
  color: var(--c-white);
}

.enroll-card__data {
  margin: 0 0 24px;
  padding: 0;
  display: grid;
  gap: 14px;
}

.enroll-card__data>div {
  padding: 16px 18px;
  background: rgba(15, 42, 74, 0.05);
  border-radius: 6px;
}

.enroll-card__data dt {
  font-family: var(--ff-sans);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--c-navy);
  margin-bottom: 4px;
  opacity: 0.8;
}

.enroll-card__data dd {
  margin: 0;
  font-size: var(--fs-body);
  line-height: 1.5;
  color: var(--c-black);
}

/* -------- TRANSICIÓN (Bloque 6) agrandada -------- */
.transicion {
  background: var(--c-ivory);
  text-align: center;
  padding: clamp(48px, 7vw, 80px) 0;
}

.transicion__title {
  font-family: var(--ff-serif);
  font-weight: 700;
  color: var(--c-navy);
  font-size: clamp(2rem, 4vw + 1rem, 3.25rem);
  line-height: 1.15;
  margin: 0 0 28px;
  letter-spacing: -0.01em;
}

.transicion__text {
  font-family: var(--ff-serif);
  font-weight: 500;
  font-size: clamp(1.375rem, 0.8vw + 1rem, 1.75rem);
  line-height: 1.55;
  max-width: 720px;
  margin: 0 auto;
  color: var(--c-black);
}

/* -------- TALLER TERAPÉUTICO — h3 navy + approach list -------- */
.h3--navy {
  color: var(--c-navy);
  margin-top: 48px;
}

.approach-list {
  list-style: none;
  padding: 0;
  margin: 0 0 40px;
  display: grid;
  gap: 14px;
}

.approach-list li {
  position: relative;
  padding: 18px 20px 18px 56px;
  background: rgba(15, 42, 74, 0.04);
  border-left: 4px solid var(--c-amber);
  border-radius: 6px;
  line-height: 1.55;
}

.approach-list li::before {
  content: "";
  position: absolute;
  left: 20px;
  top: 24px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--c-amber);
  box-shadow: 0 0 0 4px rgba(226, 173, 69, 0.18);
}

.approach-list__label {
  display: block;
  font-family: var(--ff-serif);
  font-weight: 600;
  font-size: 1.125rem;
  color: var(--c-navy);
  margin-bottom: 2px;
}

.approach-list__desc {
  display: block;
  font-size: 1rem;
  color: var(--c-black);
  line-height: 1.55;
}

@media (min-width: 720px) {
  .approach-list li {
    padding: 22px 24px 22px 64px;
  }

  .approach-list__label {
    font-size: 1.25rem;
  }

  .approach-list__desc {
    font-size: 1.0625rem;
  }
}

/* =========================================================
   ENROLL CARD V2 — Premium (Taller Teórico)
========================================================== */
.enroll-card.enroll-card--hero {
  background: var(--c-white);
  border: 1px solid rgba(15, 42, 74, 0.1);
  border-radius: 16px;
  padding: 0;
  margin: 32px 0 0;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35), 0 8px 24px rgba(0, 0, 0, 0.18);
  overflow: hidden;
}

@media (min-width: 720px) {
  .enroll-card.enroll-card--hero {
    padding: 0;
  }
}

.enroll-card__head {
  text-align: center;
  padding: 32px 24px 28px;
  background: var(--c-white);
  border-bottom: 1px solid rgba(15, 42, 74, 0.08);
}

@media (min-width: 720px) {
  .enroll-card__head {
    padding: 40px 40px 32px;
  }
}

.enroll-card__badge {
  display: inline-block;
  font-family: var(--ff-sans);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  background: var(--c-amber);
  color: var(--c-navy);
  padding: 8px 16px;
  border-radius: 999px;
  margin: 0 0 18px;
}

.enroll-card--hero .enroll-card__title {
  font-family: var(--ff-serif);
  font-weight: 700;
  font-size: clamp(1.375rem, 1.8vw + 1rem, 2rem);
  line-height: 1.22;
  color: var(--c-navy);
  margin: 0 0 10px;
  letter-spacing: -0.01em;
}

.enroll-card__meta {
  font-family: var(--ff-sans);
  font-size: 0.9375rem;
  color: var(--c-navy);
  opacity: 0.7;
  margin: 0;
}

.enroll-card--hero .enroll-card__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 0;
}

@media (min-width: 820px) {
  .enroll-card--hero .enroll-card__grid {
    grid-template-columns: 1.15fr 1fr;
  }
}

/* Columna IZQ: Incluye */
.enroll-card__includes {
  padding: 28px 24px;
  background: var(--c-white);
}

@media (min-width: 720px) {
  .enroll-card__includes {
    padding: 36px 40px;
  }
}

@media (min-width: 820px) {
  .enroll-card__includes {
    border-right: 1px solid rgba(15, 42, 74, 0.08);
  }
}

.enroll-card__section-title {
  font-family: var(--ff-sans);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-navy);
  opacity: 0.7;
  margin: 0 0 18px;
}

.enroll-card__section-title--light {
  color: var(--c-amber);
  opacity: 1;
}

.enroll-card__includes ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 12px;
}

.enroll-card__includes li {
  position: relative;
  padding: 2px 0 2px 34px;
  font-family: var(--ff-sans);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--c-black);
}

.enroll-card__includes li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 3px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--c-amber);
}

.enroll-card__includes li::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 10px;
  width: 10px;
  height: 6px;
  border-left: 2px solid var(--c-navy);
  border-bottom: 2px solid var(--c-navy);
  transform: rotate(-45deg);
}

/* Columna DER: Pricing hero */
.enroll-card__pricing {
  background: var(--c-navy);
  color: var(--c-white);
  padding: 32px 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

@media (min-width: 720px) {
  .enroll-card__pricing {
    padding: 40px 36px;
  }
}

.price-hero {
  display: none;
}

body[data-region="AR"] .enroll-card__pricing .price-hero--ar,
body[data-region="US"] .enroll-card__pricing .price-hero--us,
body[data-region="MX"] .enroll-card__pricing .price-hero--mx,
body[data-region="EU"] .enroll-card__pricing .price-hero--eu,
body[data-region="WW"] .enroll-card__pricing .price-hero--ww {
  display: block;
}

.price-hero__amount {
  font-family: var(--ff-serif);
  font-weight: 700;
  font-size: clamp(2rem, 2vw + 1rem, 2rem);
  line-height: 1;
  color: var(--c-amber);
  letter-spacing: -0.02em;
  margin: 4px 0 6px;
}

.price-hero__currency {
  font-family: var(--ff-sans);
  font-size: 0.32em;
  font-weight: 700;
  color: var(--c-amber);
  opacity: 0.75;
  letter-spacing: 0.08em;
  vertical-align: top;
  margin-right: 8px;
  position: relative;
  top: 0.8em;
}

.price-hero__amount-placeholder {
  font-family: var(--ff-serif);
  font-weight: 700;
  font-size: clamp(1.300rem, 2.2vw + 1rem, 2.25rem);
  line-height: 1.15;
  color: var(--c-amber);
  margin: 0 0 6px;
}

.price-hero__period {
  font-family: var(--ff-sans);
  font-size: 1.0625rem;
  font-weight: 500;
  color: var(--c-white);
  opacity: 0.88;
  margin: 0 0 6px;
}

.price-hero__total {
  font-family: var(--ff-sans);
  font-size: 0.875rem;
  color: var(--c-white);
  opacity: 0.58;
  margin: 0 0 24px;
  letter-spacing: 0.02em;
}

.enroll-card--hero .enroll-card__pricing .btn {
  margin: 6px 0 0;
}

.enroll-card__trust {
  font-family: var(--ff-sans);
  font-size: 0.8125rem;
  color: var(--c-white);
  opacity: 0.62;
  margin: 18px 0 0;
  line-height: 1.55;
  display: none;
}

.enroll-card__trust strong {
  color: var(--c-amber);
  opacity: 0.95;
  font-weight: 700;
}

/* Geolocated trust lines: AR ve transferencia, el resto tarjetas */
body[data-region="AR"] .enroll-card__trust--ar {
  display: block;
}

body[data-region="US"] .enroll-card__trust--intl,
body[data-region="MX"] .enroll-card__trust--intl,
body[data-region="EU"] .enroll-card__trust--intl,
body[data-region="WW"] .enroll-card__trust--intl {
  display: block;
}

/* =========================================================
   ENROLL CARD — Taller Terapéutico (extensiones)
========================================================== */

/* Variante light: border navy en lugar de transparente */
.enroll-card--hero-light {
  border-color: var(--c-navy);
}

.enroll-card--hero-light .enroll-card__head {
  border-bottom-color: rgba(15, 42, 74, 0.12);
}

/* Badge navy (para cupos limitados) */
.enroll-card__badge--navy {
  background: var(--c-navy);
  color: var(--c-white);
}

/* Requisito destacado — nota importante (amarillo claro + navy) */
.enroll-card__requisito {
  background: #FFF4D9;
  border-left: 6px solid var(--c-navy);
  padding: 16px 22px;
  font-family: var(--ff-sans);
  font-size: 1rem;
  line-height: 1.55;
  color: var(--c-navy);
  display: flex;
  gap: 14px;
  align-items: flex-start;
}

.enroll-card__requisito::before {
  content: "⚠";
  font-size: 1.35rem;
  line-height: 1.2;
  color: var(--c-navy);
  flex-shrink: 0;
}

.enroll-card__requisito strong {
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--c-navy);
}

.enroll-card__requisito-body {
  flex: 1;
}

.enroll-card__requisito-cta {
  display: block;
  margin-top: 8px;
  font-weight: 600;
  color: var(--c-navy);
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
  transition: opacity 0.2s;
}

.enroll-card__requisito-cta:hover {
  opacity: 0.75;
}

/* Nota bajo el precio (plan cuotas) */
.enroll-card__pricing-note {
  font-family: var(--ff-sans);
  font-size: 0.8125rem;
  color: var(--c-white);
  opacity: 0.72;
  line-height: 1.5;
  margin: 0 0 16px;
  text-align: center;
}

/* Botones más chicos dentro de la pricing column */
.enroll-card__btn-sm {
  font-size: 1rem;
  padding: 14px 24px;
  min-height: 48px;
}

/* Separador "o" entre opciones de pago */
.enroll-card__divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 20px 0;
}

.enroll-card__divider::before,
.enroll-card__divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: rgba(255, 255, 255, 0.2);
}

.enroll-card__divider span {
  font-family: var(--ff-sans);
  font-size: 0.8125rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.55);
  text-transform: lowercase;
}

/* Título opción pago único */
.enroll-card__alt-title {
  font-family: var(--ff-sans);
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--c-amber);
  opacity: 0.9;
  text-align: center;
  margin: 0 0 10px;
}

/* Precio pago único — más compacto que el hero */
.price-single {
  display: none;
  text-align: center;
  margin: 0 0 16px;
}

body[data-region="AR"] .enroll-card__pricing .price-single--ar,
body[data-region="US"] .enroll-card__pricing .price-single--us,
body[data-region="MX"] .enroll-card__pricing .price-single--mx,
body[data-region="EU"] .enroll-card__pricing .price-single--eu,
body[data-region="WW"] .enroll-card__pricing .price-single--ww {
  display: block;
}

.price-single__amount {
  font-family: var(--ff-serif);
  font-weight: 700;
  font-size: clamp(1.5rem, 2vw + 1rem, 2.25rem);
  line-height: 1;
  color: var(--c-amber);
  letter-spacing: -0.01em;
  margin: 0;
}

.price-single__currency {
  font-family: var(--ff-sans);
  font-size: 0.4em;
  font-weight: 700;
  color: var(--c-amber);
  opacity: 0.75;
  letter-spacing: 0.08em;
  vertical-align: top;
  margin-right: 6px;
  position: relative;
  top: 0.6em;
}

/* Botón outline ámbar (pago completo) */
.btn--amber-outline {
  background: transparent;
  color: var(--c-amber);
  border: 2px solid var(--c-amber);
}

.btn--amber-outline:hover {
  background: var(--c-amber);
  color: var(--c-navy);
}

/* Nota trimestral solo para Argentina */
.enroll-card__note-ar {
  display: none;
  font-family: var(--ff-sans);
  font-size: 0.75rem;
  font-style: italic;
  color: var(--c-white);
  opacity: 0.5;
  margin: 14px 0 0;
  line-height: 1.45;
  text-align: center;
}

body[data-region="AR"] .enroll-card__note-ar {
  display: block;
}

/* -------- SCHEDULE DENTRO DE FICHA (Terapéutico) -------- */
.enroll-card__schedule {
  padding: 20px 24px;
  background: var(--c-amber);
  color: var(--c-black);
  font-family: var(--ff-sans);
  font-size: 0.9375rem;
  line-height: 1.6;
}

@media (min-width: 720px) {
  .enroll-card__schedule {
    padding: 24px 40px;
  }
}

.enroll-card__schedule p {
  margin: 0 0 6px;
}

.enroll-card__schedule p:last-of-type {
  margin-bottom: 0;
}

.enroll-card__schedule strong {
  font-weight: 700;
}

/* Comienza — destacado sobre el bloque ámbar del schedule */
.enroll-card__schedule .schedule__start {
  display: block;
  background: var(--c-navy);
  color: var(--c-white);
  padding: 12px 20px;
  border-radius: 6px;
  font-size: 1.0625rem;
  font-weight: 500;
  margin: 0 0 14px;
  letter-spacing: 0.01em;
}

@media (min-width: 720px) {
  .enroll-card__schedule .schedule__start {
    font-size: 1.125rem;
  }
}

.enroll-card__schedule .schedule__start strong {
  color: var(--c-amber);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 0.875em;
  margin-right: 6px;
}

/* Enero (receso) en tono más claro/sutil */
.schedule__receso {
  font-style: italic;
  opacity: 0.6;
}

/* Hora local dentro de ficha: sobre fondo ámbar */
.enroll-card__schedule .schedule__local {
  background: var(--c-navy);
  color: var(--c-white);
  padding: 12px 16px;
  border-radius: 6px;
  text-align: center;
  margin: 14px 0 12px;
}

.enroll-card__schedule .schedule__heading {
  color: rgba(0, 0, 0, 0.45);
  margin-top: 14px;
}

.enroll-card__schedule .schedule__refs {
  color: rgba(0, 0, 0, 0.6);
  font-size: 0.875rem;
}

.enroll-card__schedule .schedule__refs strong {
  color: var(--c-black);
}

.enroll-card__schedule .schedule__refs span:not(:last-child)::after {
  color: var(--c-black);
  opacity: 0.3;
}

/* =========================================================
   BLOQUE 6 — Ecosistema terapéutico único
========================================================= */
.ecosistema {
  background: var(--c-ivory);
  color: var(--c-navy);
  padding: var(--pad-section-mobile) 0;
}

@media (min-width: 900px) {
  .ecosistema {
    padding: var(--pad-section-desktop) 0;
  }
}

.ecosistema__header {
  text-align: center;
  max-width: 720px;
  margin: 0 auto clamp(40px, 5vw, 64px);
}

.ecosistema__header .eyebrow {
  display: inline-block;
  font-family: "DM Sans", sans-serif;
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #E8A94A;
  color: var(--c-amber);
  margin-bottom: 14px;
}

.ecosistema__header .h2 {
  color: var(--c-navy);
  margin: 0 0 20px;
}

.ecosistema__intro {
  font-family: "DM Sans", sans-serif;
  font-size: 1.125rem;
  font-size: clamp(1.125rem, 0.4vw + 1rem, 1.1875rem);
  line-height: 1.6;
  color: var(--c-navy);
  opacity: 0.9;
  margin: 0;
}

/* ---- Disciplinas (cards verticales, no columnas paralelas) ---- */
.disciplina {
  background: var(--c-white);
  border: 1px solid rgba(15, 42, 74, 0.08);
  border-radius: 12px;
  padding: clamp(28px, 4vw, 44px);
  max-width: 820px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  position: relative;
  box-shadow: 0 8px 24px rgba(15, 42, 74, 0.05);
}

@media (min-width: 720px) {
  .disciplina {
    grid-template-columns: 110px 1fr;
    gap: 28px;
    align-items: start;
  }
}

.disciplina__num {
  font-family: "Lora", Georgia, serif;
  font-weight: 700;
  font-size: 3rem;
  font-size: clamp(2.25rem, 2vw + 1.5rem, 3.25rem);
  line-height: 1;
  color: #E8A94A;
  color: var(--c-amber);
  letter-spacing: -0.03em;
}

@media (min-width: 720px) {
  .disciplina__num {
    border-right: 2px solid rgba(232, 169, 74, 0.2);
    padding-right: 20px;
    text-align: center;
  }
}

.disciplina__body p {
  font-family: "DM Sans", sans-serif;
  font-size: 1rem;
  font-size: clamp(1rem, 0.3vw + 0.9375rem, 1.0625rem);
  line-height: 1.6;
  color: var(--c-navy);
  margin: 0 0 12px;
}

.disciplina__body p:last-child {
  margin-bottom: 0;
}

.disciplina__title {
  font-family: "Lora", Georgia, serif;
  font-weight: 700;
  font-size: 1.5rem;
  font-size: clamp(1.5rem, 1vw + 1.125rem, 2rem);
  line-height: 1.2;
  color: var(--c-navy);
  letter-spacing: -0.01em;
  margin: 0 0 6px;
}

.disciplina__title-sub {
  display: block;
  font-family: "DM Sans", sans-serif;
  font-weight: 500;
  font-size: 0.9375rem;
  font-size: clamp(0.9375rem, 0.3vw + 0.875rem, 1rem);
  letter-spacing: 0.02em;
  color: var(--c-navy);
  opacity: 0.6;
  margin-top: 4px;
}

.disciplina__tagline {
  font-family: "Lora", Georgia, serif;
  font-size: 1.0625rem;
  font-size: clamp(1.0625rem, 0.4vw + 1rem, 1.1875rem);
  color: #E8A94A;
  color: var(--c-amber);
  margin: 0 0 16px;
}

.disciplina__tagline em {
  font-style: italic;
  font-weight: 600;
}

.disciplina__list {
  list-style: none;
  padding: 0;
  margin: 0 0 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.disciplina__list li {
  position: relative;
  padding-left: 22px;
  font-family: "DM Sans", sans-serif;
  font-size: 1rem;
  font-size: clamp(1rem, 0.3vw + 0.9375rem, 1.0625rem);
  line-height: 1.55;
  color: var(--c-navy);
}

.disciplina__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 10px;
  height: 2px;
  background: #E8A94A;
  background: var(--c-amber);
}

.disciplina__list strong {
  color: var(--c-navy);
  font-weight: 700;
}

.disciplina__closing {
  font-family: "Lora", Georgia, serif;
  font-style: italic;
  font-size: 1.0625rem;
  font-size: clamp(1.0625rem, 0.4vw + 1rem, 1.1875rem);
  line-height: 1.5;
  color: var(--c-navy);
  margin: 16px 0 0;
  padding-top: 14px;
  border-top: 1px solid rgba(232, 169, 74, 0.25);
}

/* Conector visual entre disciplinas 01 y 02 (van unidas) */
.disciplina-union {
  max-width: 820px;
  margin: 0 auto;
  padding: clamp(20px, 3vw, 32px) 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  position: relative;
}

.disciplina-union__line {
  width: 2px;
  height: 28px;
  background: #E8A94A;
  background: var(--c-amber);
  opacity: 0.6;
  display: block;
}

.disciplina-union__symbol {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #E8A94A;
  background: var(--c-amber);
  color: var(--c-navy);
  font-family: "DM Sans", sans-serif;
  font-weight: 700;
  font-size: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.disciplina-union__caption {
  font-family: "DM Sans", sans-serif;
  font-style: italic;
  font-size: 0.9375rem;
  color: var(--c-navy);
  opacity: 0.7;
  margin: 8px 0 0;
  text-align: center;
}

/* Separador antes de PINE (bloque 3 — marco científico, no unido) */
.disciplina-separator {
  max-width: 120px;
  margin: clamp(32px, 5vw, 56px) auto;
  height: 1px;
  background: rgba(15, 42, 74, 0.15);
}

/* Cierre del ecosistema */
.ecosistema__closing {
  max-width: 780px;
  margin: clamp(40px, 5vw, 56px) auto 0;
  padding: clamp(24px, 3.5vw, 36px);
  background: var(--c-navy);
  color: var(--c-white);
  border-radius: 12px;
  text-align: center;
}

.ecosistema__closing p {
  font-family: "Lora", Georgia, serif;
  font-size: 1.125rem;
  font-size: clamp(1.125rem, 0.5vw + 1rem, 1.3125rem);
  line-height: 1.5;
  color: var(--c-white);
  margin: 0;
}

.ecosistema__closing strong {
  color: #E8A94A;
  color: var(--c-amber);
  font-weight: 700;
}

/* =========================================================
   BLOQUE 7 — Testimonios + prueba social
========================================================= */
.testimonios {
  background: var(--c-ivory);
  color: var(--c-navy);
  padding: 24px 0 var(--pad-section-mobile);
}

@media (min-width: 900px) {
  .testimonios {
    padding: 32px 0 var(--pad-section-desktop);
  }
}

.testimonios__header {
  text-align: center;
  max-width: 720px;
  margin: 0 auto clamp(32px, 4vw, 48px);
}

.testimonios__header .eyebrow {
  display: inline-block;
  font-family: "DM Sans", sans-serif;
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #E8A94A;
  color: var(--c-amber);
  margin-bottom: 14px;
}

.testimonios__header .h2 {
  color: var(--c-navy);
  margin: 0;
}

.testimonios__subtitle {
  font-family: "Lora", Georgia, serif;
  font-style: italic;
  font-weight: 600;
  font-size: 1.375rem;
  font-size: clamp(1.375rem, 1vw + 1rem, 1.75rem);
  line-height: 1.25;
  color: var(--c-navy);
  text-align: center;
  margin: clamp(48px, 6vw, 72px) 0 clamp(24px, 3vw, 36px);
}

/* ---- Banda de números ---- */
.stats-band {
  list-style: none;
  padding: 28px 20px;
  margin: 0 auto;
  max-width: 960px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px 20px;
  background: var(--c-white);
  border-radius: 12px;
  border: 1px solid rgba(15, 42, 74, 0.08);
  box-shadow: 0 10px 30px rgba(15, 42, 74, 0.06);
}

@media (min-width: 720px) {
  .stats-band {
    grid-template-columns: repeat(4, 1fr);
    padding: 36px 28px;
    gap: 20px;
  }
}

.stats-band__item {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.stats-band__number {
  font-family: "Lora", Georgia, serif;
  font-weight: 700;
  font-size: clamp(2rem, 2.5vw + 1.25rem, 2.875rem);
  line-height: 1;
  color: #E8A94A;
  color: var(--c-amber);
  letter-spacing: -0.02em;
}

.stats-band__plus {
  font-size: 0.55em;
  font-weight: 600;
  color: var(--c-navy);
  margin-left: 2px;
  vertical-align: super;
}

.stats-band__label {
  font-family: "DM Sans", sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--c-navy);
  opacity: 0.75;
  line-height: 1.35;
  max-width: 180px;
}

/* ---- Testimonios en video (Vimeo verticales) ---- */
.testimonios-videos {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  max-width: 1080px;
  margin: 0 auto;
}

@media (min-width: 720px) {
  .testimonios-videos {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
}

.testimonios-videos__item {
  margin: 0;
}

.testimonios-videos__embed {
  position: relative;
  width: 100%;
  padding-top: 177.78%;
  /* 9:16 vertical */
  aspect-ratio: 9 / 16;
  background: #000;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 12px 32px rgba(15, 42, 74, 0.14);
}

.testimonios-videos__embed iframe {
  position: absolute;
  inset: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.testimonios-videos__caption {
  font-family: "DM Sans", sans-serif;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--c-navy);
  opacity: 0.75;
  text-align: center;
  margin: 12px 0 0;
}

/* ---- Testimonios escritos (6 en grid) ---- */
.testimonios-texto {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  max-width: 1120px;
  margin: 0 auto;
}

@media (min-width: 720px) {
  .testimonios-texto {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
}

@media (min-width: 1080px) {
  .testimonios-texto {
    grid-template-columns: repeat(3, 1fr);
  }
}

.testimonio {
  background: var(--c-white);
  border: 1px solid rgba(15, 42, 74, 0.08);
  border-radius: 10px;
  padding: 24px;
  margin: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 20px;
  box-shadow: 0 6px 18px rgba(15, 42, 74, 0.04);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.testimonio:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(15, 42, 74, 0.08);
}

.testimonio__quote {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.testimonio__quote p {
  font-family: "Lora", Georgia, serif;
  font-style: italic;
  font-size: 1rem;
  font-size: clamp(1rem, 0.3vw + 0.9375rem, 1.0625rem);
  line-height: 1.6;
  color: var(--c-navy);
  margin: 0;
}

.testimonio__footer {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: 16px;
  border-top: 1px solid rgba(15, 42, 74, 0.08);
}

.testimonio__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #E8A94A;
  background: var(--c-amber);
  color: var(--c-navy);
  font-family: "Lora", Georgia, serif;
  font-weight: 700;
  font-size: 1.125rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.testimonio__author {
  font-style: normal;
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}

.testimonio__author strong {
  font-family: "DM Sans", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--c-navy);
}

.testimonio__author span {
  font-family: "DM Sans", sans-serif;
  font-size: 0.875rem;
  color: var(--c-navy);
  opacity: 0.65;
}

/* =========================================================
   BLOQUE 11 — FAQ
========================================================= */
.faq {
  background: var(--c-white);
  color: var(--c-navy);
  padding: var(--pad-section-mobile) 0;
}

@media (min-width: 900px) {
  .faq {
    padding: var(--pad-section-desktop) 0;
  }
}

.faq__header {
  text-align: center;
  max-width: 720px;
  margin: 0 auto clamp(32px, 4vw, 48px);
}

.faq__header .eyebrow {
  display: inline-block;
  font-family: "DM Sans", sans-serif;
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #E8A94A;
  color: var(--c-amber);
  margin-bottom: 14px;
}

.faq__header .h2 {
  color: var(--c-navy);
  margin: 0;
}

.faq__list {
  max-width: 820px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
}

.faq__list .faq__item+.faq__item {
  margin-top: 12px;
}

.faq__item {
  background: var(--c-ivory);
  border: 1px solid rgba(15, 42, 74, 0.08);
  border-radius: 8px;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.faq__item[open] {
  border-color: rgba(232, 169, 74, 0.5);
  box-shadow: 0 6px 20px rgba(15, 42, 74, 0.06);
}

.faq__question {
  cursor: pointer;
  list-style: none;
  padding: 18px 48px 18px 24px;
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 1.0625rem;
  font-size: clamp(1.0625rem, 0.3vw + 1rem, 1.125rem);
  line-height: 1.4;
  color: var(--c-navy);
  position: relative;
  user-select: none;
  transition: color 0.2s;
}

.faq__question::-webkit-details-marker {
  display: none;
}

.faq__question::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  font-family: "DM Sans", sans-serif;
  font-size: 1.75rem;
  font-weight: 400;
  color: #E8A94A;
  color: var(--c-amber);
  line-height: 1;
  transition: transform 0.25s ease;
}

.faq__item[open]>.faq__question::after {
  content: "−";
  transform: translateY(-50%) rotate(180deg);
}

.faq__item[open]>.faq__question {
  color: var(--c-navy);
}

.faq__question:hover {
  color: #E8A94A;
  color: var(--c-amber);
}

.faq__answer {
  padding: 0 24px 22px;
  font-family: "DM Sans", sans-serif;
  font-size: 1rem;
  font-size: clamp(1rem, 0.3vw + 0.9375rem, 1.0625rem);
  line-height: 1.6;
  color: var(--c-navy);
}

.faq__answer p {
  margin: 0 0 10px;
}

.faq__answer p:last-child {
  margin-bottom: 0;
}

.faq__answer strong {
  color: var(--c-navy);
  font-weight: 700;
}

/* -------- LIBROS — Editorial -------- */
.libros {
  background: var(--c-ivory);
  text-align: center;
  padding: clamp(40px, 6vw, 64px) 0;
}

.libros .h2 {
  color: var(--c-navy);
  margin-bottom: 36px;
}

.libros__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  max-width: 800px;
  margin: 0 auto;
  justify-items: center;
}

.libros__item {
  display: block;
  transition: transform 0.25s ease;
}

.libros__item:hover {
  transform: scale(1.04);
}

.libros__item img {
  width: 100%;
  height: auto;
  display: block;
}

.libros__cta {
  margin-top: 36px;
}

@media (max-width: 480px) {
  .libros__grid {
    gap: 20px;
  }
}

/* -------- NOTAS DE MONEDA (*) -------- */
.price-note {
  display: none;
  font-family: var(--ff-sans);
  font-size: 0.75rem;
  font-style: italic;
  opacity: 0.6;
  margin: 12px 0 0;
  line-height: 1.4;
  text-align: center;
}

body[data-region="AR"] .price-note--ar,
body[data-region="MX"] .price-note--mx,
body[data-region="WW"] .price-note--ww {
  display: block;
}

/* Dentro de pricing navy: color blanco */
.enroll-card__pricing .price-note {
  color: var(--c-white);
}

/* Dentro de sesión (celeste): color negro */
.sesion .price-note {
  color: var(--c-black);
}

/* -------- SESIÓN PRIVADA — card compacta -------- */
.sesion-card {
  background: var(--c-white);
  border-radius: 14px;
  padding: 24px 20px;
  box-shadow: 0 16px 48px rgba(15, 42, 74, 0.12);
  margin-top: 28px;
}

@media (min-width: 720px) {
  .sesion-card {
    padding: 28px 32px;
  }
}

.sesion-card__info {
  margin: 0 0 16px;
  padding: 0 0 14px;
  border-bottom: 1px solid rgba(15, 42, 74, 0.1);
}

.sesion-card__info p {
  margin: 0 0 6px;
  font-family: var(--ff-sans);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--c-black);
}

.sesion-card__info p:last-child {
  margin-bottom: 0;
}

.sesion-card__info em {
  font-style: italic;
  opacity: 0.7;
}

.sesion-card__tier {
  padding: 14px 0;
  border-bottom: 1px solid rgba(15, 42, 74, 0.06);
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.sesion-card__tier:last-of-type {
  border-bottom: none;
}

.sesion-card__tier-label {
  font-family: var(--ff-sans);
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--c-navy);
  margin: 0;
}

.sesion-card__price {
  font-family: var(--ff-serif);
  font-weight: 700;
  font-size: 1.375rem;
  line-height: 1.1;
  color: var(--c-navy);
  margin: 0;
  text-align: right;
}

.sesion-card__includes {
  margin: 18px 0;
  padding-top: 14px;
  border-top: 1px solid rgba(15, 42, 74, 0.1);
}

.sesion-card__includes-label {
  font-family: var(--ff-sans);
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--c-navy);
  opacity: 1;
  margin: 0 0 12px;
}

.sesion-card__includes ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 6px;
}

.sesion-card__includes li {
  position: relative;
  padding-left: 26px;
  font-family: var(--ff-sans);
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--c-black);
}

.sesion-card__includes li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--c-amber);
}

.sesion-card__includes li::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 7px;
  width: 8px;
  height: 5px;
  border-left: 1.5px solid var(--c-navy);
  border-bottom: 1.5px solid var(--c-navy);
  transform: rotate(-45deg);
}

.sesion-card .enroll-card__trust {
  text-align: center;
  color: var(--c-navy);
  opacity: 0.55;
}

.sesion-card .enroll-card__trust strong {
  color: var(--c-navy);
}

/* -------- WHATSAPP FLOTANTE -------- */
.wa-float {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 90;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #25D366;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.wa-float:hover {
  transform: scale(1.08);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.32);
}

.wa-float svg {
  width: 32px;
  height: 32px;
  fill: var(--c-white);
}

/* =========================================================
   Hero — Cinta de las 3 disciplinas
========================================================== */
.hero__disciplines {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  gap: 10px 14px;
  margin: 14px 0 22px;
  font-family: var(--ff-sans);
  font-weight: 600;
  font-size: clamp(0.95rem, 0.4vw + 0.85rem, 1.1rem);
  letter-spacing: 0.01em;
  color: var(--c-amber);
  text-align: center;
  line-height: 1.3;
}

.hero__disciplines > span:not(.hero__disciplines-sep) {
  position: relative;
  padding-bottom: 4px;
}

.hero__disciplines > span:not(.hero__disciplines-sep)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: var(--c-amber);
  opacity: 1;
}

.hero__disciplines-sep {
  color: var(--c-amber);
  font-weight: 700;
  opacity: 0.7;
}

@media (max-width: 480px) {
  .hero__disciplines {
    font-size: 0.95rem;
    gap: 6px 10px;
  }
}

/* =========================================================
   BLOQUE — Manifiesto de León (posicionamiento terapeuta)
========================================================== */
.manifiesto {
  background: var(--c-navy);
  color: var(--c-ivory);
  padding-block: var(--pad-section-mobile);
  position: relative;
  overflow: hidden;
}

@media (min-width: 768px) {
  .manifiesto {
    padding-block: var(--pad-section-desktop);
  }
}

/* Halo sutil de círculos amber al fondo (mismo lenguaje del hero-banner) */
.manifiesto::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 900px;
  height: 900px;
  transform: translate(-50%, -50%);
  background-image:
    radial-gradient(circle, transparent 49.7%, rgba(226, 173, 69, 0.08) 50%, transparent 50.3%),
    radial-gradient(circle, transparent 36.7%, rgba(226, 173, 69, 0.06) 37%, transparent 37.3%),
    radial-gradient(circle, transparent 23.7%, rgba(226, 173, 69, 0.04) 24%, transparent 24.3%);
  pointer-events: none;
}

.manifiesto > .container {
  position: relative;
  z-index: 1;
}

.manifiesto__eyebrow {
  display: table;
  margin: 0 auto 18px;
}

.manifiesto__title {
  font-family: var(--ff-serif);
  font-weight: 700;
  font-size: clamp(2.25rem, 4vw + 1rem, 3.75rem);
  line-height: 1.1;
  text-align: center;
  margin: 0 0 48px;
  color: var(--c-white);
  letter-spacing: -0.01em;
}

.manifiesto__title-accent {
  color: var(--c-amber);
}

/* Grid foto + texto */
.manifiesto__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  align-items: start;
  max-width: 1080px;
  margin: 0 auto;
}

@media (min-width: 900px) {
  .manifiesto__grid {
    grid-template-columns: minmax(280px, 360px) 1fr;
    gap: 56px;
  }
}

.manifiesto__media {
  margin: 0;
  position: relative;
}

.manifiesto__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 9 / 11;
  object-fit: cover;
  border-radius: 4px;
  box-shadow:
    0 0 0 1px rgba(226, 173, 69, 0.25),
    0 30px 60px -20px rgba(0, 0, 0, 0.55);
}

/* En mobile, foto más chica y centrada */
@media (max-width: 899px) {
  .manifiesto__media {
    max-width: 280px;
    margin: 0 auto;
  }
}

.manifiesto__quote {
  font-family: var(--ff-serif);
  font-size: clamp(1.0625rem, 0.5vw + 1rem, 1.25rem);
  line-height: 1.7;
  color: rgba(250, 246, 240, 0.92);
}

.manifiesto__quote p {
  margin: 0 0 1.1em;
}

.manifiesto__quote strong {
  color: var(--c-white);
  font-weight: 600;
}

.manifiesto__quote-strong {
  font-size: clamp(1.125rem, 0.6vw + 1rem, 1.375rem);
  line-height: 1.55;
  border-left: 3px solid var(--c-amber);
  padding-left: 20px;
  margin-block: 1.6em !important;
  color: var(--c-white);
  font-style: normal;
}

.manifiesto__signature {
  font-family: var(--ff-sans);
  font-style: normal;
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: 0.04em;
  color: var(--c-amber);
  text-align: right;
  margin-top: 1.5em !important;
}

.manifiesto__cta {
  margin-top: 48px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}

@media (max-width: 600px) {
  .manifiesto__cta {
    flex-direction: column;
    align-items: stretch;
  }

  .manifiesto__cta .btn {
    width: 100%;
  }
}

/* =========================================================
   Bio León — rol destacado bajo el H2
========================================================== */
.leon__role {
  font-family: var(--ff-sans);
  font-weight: 600;
  font-size: clamp(1rem, 0.3vw + 0.95rem, 1.125rem);
  color: var(--c-amber);
  letter-spacing: 0.01em;
  margin: -8px 0 18px;
  line-height: 1.4;
}