/* =============================================================
   MÉTODO ENFA® — Hoja de estilos
   -------------------------------------------------------------
   Índice
     1. Tokens .............. colores, tipografía, espaciado
     2. Reset y base ........ normalización y tipografía
     3. Utilidades .......... layout, decoración, animaciones
     4. Cabecera ............ navegación, submenús, idiomas
     5. Hero
     6. Secciones ........... tarjetas, listas, timeline, cifras
     7. Comparador .......... bloque de los dos pacientes
     8. Acordeón ............ preguntas frecuentes
     9. Formularios
    10. Pie de página
    11. Responsive
   ============================================================= */


/* =============================================================
   1. TOKENS
   Los colores de marca están tomados del logo original en PDF.
   ============================================================= */
:root {
  /* --- Marca --- */
  --marca:        #66CAB1;   /* turquesa del lettering ENFA */
  --marca-suave:  #BEDBCD;   /* menta del círculo */
  --brand-700:    #2E7A66;
  --brand-600:    #3D9A81;
  --brand-500:    #4FB396;
  --brand-300:    #BEDBCD;
  --brand-100:    #EBF6F2;
  --brand-50:     #F5FBF8;

  /* --- Neutros --- */
  --ink-900: #231F20;   /* negro del logo */
  --ink-700: #3C3A3B;
  --ink-500: #6B6869;
  --ink-300: #9E9B9C;
  --ink-200: #C9C6C7;
  --line:    #E6E9E7;
  --paper:   #FCFDFC;
  --paper-2: #F4F7F5;
  --white:   #FFFFFF;

  /* --- Componentes corporales (informe ENFA) --- */
  --c-esq:   #A9C9EE;
  --c-mus:   #8FDDA5;
  --c-grasa: #F6A28C;
  --c-visc:  #6CA6EA;
  --c-res:   #F5DE72;

  /* --- Estado --- */
  --ok:        #2E7A66;
  --ok-bg:     #EBF6F2;
  --warn:      #B8860B;
  --warn-bg:   #FBF3DA;
  --error:     #C0392B;
  --error-bg:  #FDECEA;

  /* --- Tipografía ---
     Fraunces con los remates suavizados, en la línea de Roca.
     Inter para el texto corrido. */
  --font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --font-body:    "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --soft: "SOFT" 100, "WONK" 1;

  --fs-xs:   0.78rem;
  --fs-sm:   0.875rem;
  --fs-base: 1rem;
  --fs-lg:   clamp(1.05rem, 0.98rem + 0.35vw, 1.24rem);
  --fs-xl:   clamp(1.3rem,  1.14rem + 0.75vw, 1.65rem);
  --fs-2xl:  clamp(1.6rem,  1.3rem  + 1.4vw,  2.25rem);
  --fs-3xl:  clamp(1.9rem,  1.4rem  + 2.4vw,  3rem);
  --fs-4xl:  clamp(2.4rem,  1.5rem  + 2.9vw,  4.1rem);

  --lh-tight: 1.02;
  --lh-snug:  1.28;
  --lh-body:  1.68;
  --measure:  66ch;

  /* --- Espaciado --- */
  --sp-1: .25rem;  --sp-2: .5rem;   --sp-3: .75rem;  --sp-4: 1rem;
  --sp-5: 1.5rem;  --sp-6: 2rem;    --sp-7: 2.5rem;  --sp-8: 3rem;
  --sp-9: 4rem;    --sp-10: 5rem;   --sp-11: 6.5rem;
  --section-y: clamp(4rem, 8vw, 7.5rem);

  /* --- Layout --- */
  --wrap: 1180px;
  --wrap-narrow: 780px;
  --gutter: clamp(1.25rem, 4vw, 2rem);
  --nav-h: 92px;   /* alto total reservado */
  --nav-bar: 64px; /* alto de la píldora */

  /* --- Radios --- */
  --r-sm: 12px;  --r-md: 18px;  --r-lg: 26px;  --r-xl: 34px;  --r-pill: 999px;

  /* --- Sombras --- */
  --sh-1: 0 1px 2px rgba(35,31,32,.04), 0 1px 1px rgba(35,31,32,.03);
  --sh-2: 0 4px 16px rgba(35,31,32,.05), 0 1px 3px rgba(35,31,32,.03);
  --sh-3: 0 18px 48px rgba(35,31,32,.08), 0 2px 8px rgba(35,31,32,.04);
  --sh-card: 0 32px 70px rgba(46,122,102,.16), 0 10px 24px rgba(35,31,32,.06),
             0 2px 6px rgba(35,31,32,.04);

  /* --- Movimiento --- */
  --ease: cubic-bezier(.22, 1, .36, 1);
  --t-fast: .18s;  --t-base: .3s;  --t-slow: .55s;

  /* --- Capas --- */
  --z-nav: 100;  --z-menu: 110;  --z-modal: 200;
}

@media (prefers-reduced-motion: reduce) {
  :root { --t-fast: 0s; --t-base: 0s; --t-slow: 0s; }
}


/* =============================================================
   2. RESET Y BASE
   ============================================================= */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--nav-h) + 20px);
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  font-family: var(--font-body);
  font-size: var(--fs-base);
  line-height: var(--lh-body);
  color: var(--ink-900);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

img, picture, svg, video { display: block; max-width: 100%; height: auto; }
input, button, textarea, select { font: inherit; color: inherit; }
button { background: none; border: 0; cursor: pointer; }
p, li { overflow-wrap: break-word; }
/* Los titulares nunca parten palabras por la mitad */
h1, h2, h3, h4 { overflow-wrap: normal; word-break: keep-all; hyphens: manual; }
ul[role="list"], ol[role="list"] { list-style: none; padding: 0; }

/* Titulares en Fraunces con remates suavizados */
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 600;
  font-variation-settings: var(--soft);
  line-height: var(--lh-tight);
  letter-spacing: -.025em;
  text-wrap: balance;
}
h1 { font-size: var(--fs-4xl); }
h2 { font-size: var(--fs-3xl); }
h3 { font-size: var(--fs-xl);  line-height: var(--lh-snug); }
h4 { font-size: var(--fs-lg);  line-height: var(--lh-snug); }

p { text-wrap: pretty; }
strong, b { font-weight: 600; color: var(--ink-900); }
em { font-style: italic; }

a { color: var(--brand-700); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--brand-600); }

/* Cifras siempre alineadas */
.num { font-variant-numeric: tabular-nums; }

/* --- Accesibilidad --- */
:focus-visible {
  outline: 2px solid var(--brand-600);
  outline-offset: 3px;
  border-radius: 4px;
}
.skip-link {
  position: absolute; left: var(--sp-4); top: -100px;
  background: var(--ink-900); color: #fff;
  padding: var(--sp-3) var(--sp-5); border-radius: var(--r-sm);
  z-index: var(--z-modal); transition: top var(--t-base) var(--ease);
}
.skip-link:focus { top: var(--sp-4); }
.visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}


/* =============================================================
   3. UTILIDADES
   ============================================================= */
.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
.wrap--narrow { max-width: var(--wrap-narrow); }

.section { padding-block: var(--section-y); position: relative; }
.section--alt  { background: var(--paper-2); }
.section--mint { background: var(--brand-50); }
.section--ink  { background: var(--ink-900); color: var(--white); }
.section--ink h2, .section--ink h3 { color: var(--white); }
.section--ink p { color: rgba(255,255,255,.68); }

.section__head { max-width: 60ch; margin-bottom: var(--sp-9); }
.section__head--center { margin-inline: auto; text-align: center; }
.section__head p { margin-top: var(--sp-4); color: var(--ink-500); font-size: var(--fs-lg); }

.eyebrow {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  font-size: var(--fs-xs); font-weight: 500;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--brand-600); margin-bottom: var(--sp-4);
}
.eyebrow::before { content: ""; width: 24px; height: 1px; background: currentColor; opacity: .5; }
.section__head--center .eyebrow::before { display: none; }

.lead { font-size: var(--fs-lg); color: var(--ink-500); max-width: var(--measure); }
.measure { max-width: var(--measure); }
.text-center { text-align: center; }
.mx-auto { margin-inline: auto; }
.stack > * + * { margin-top: var(--sp-4); }

/* Rejillas */
.grid { display: grid; gap: var(--sp-5); }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }

/* --- Decoración de fondo --- */
.blob { position: absolute; border-radius: 50%; filter: blur(120px); pointer-events: none; z-index: 0; }
.grain::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .028; z-index: 1;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* --- Aparición al hacer scroll (ver enfa.js) --- */
[data-reveal] {
  opacity: 0; transform: translateY(24px);
  transition: opacity .75s var(--ease), transform .75s var(--ease);
  will-change: opacity, transform;
}
[data-reveal="left"]  { transform: translateX(-28px); }
[data-reveal="right"] { transform: translateX(28px); }
[data-reveal="scale"] { transform: scale(.96); }
[data-reveal].is-visible { opacity: 1; transform: none; will-change: auto; }
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; transition: none; }
}

/* Barra de progreso de lectura */
.read-progress {
  position: fixed; top: 0; left: 0; right: 0; height: 2px;
  z-index: calc(var(--z-nav) + 1); pointer-events: none;
}
.read-progress > i {
  display: block; height: 100%; background: var(--brand-600);
  transform: scaleX(0); transform-origin: 0 50%;
}


/* =============================================================
   BOTONES
   ============================================================= */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-2);
  padding: .95rem 1.9rem;
  border-radius: var(--r-pill);
  font-size: 1rem; font-weight: 500; letter-spacing: .005em;
  text-decoration: none; white-space: nowrap; cursor: pointer;
  border: 1px solid transparent;
  transition: transform var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease),
              background var(--t-base) var(--ease), border-color var(--t-base) var(--ease),
              color var(--t-base) var(--ease);
}
.btn:disabled, .btn[aria-disabled="true"] { opacity: .55; pointer-events: none; }

.btn--primary { background: var(--brand-700); color: var(--white); box-shadow: var(--sh-2); }
.btn--primary:hover { background: var(--ink-900); color: var(--white);
  transform: translateY(-2px); box-shadow: var(--sh-3); }

.btn--ghost { background: var(--white); color: var(--ink-900); border-color: var(--line); }
.btn--ghost:hover { border-color: var(--ink-300); color: var(--ink-900);
  transform: translateY(-2px); box-shadow: var(--sh-2); }

.btn--link { padding: 0; color: var(--brand-700); background: none; }
.btn--link:hover { color: var(--ink-900); }

.section--ink .btn--ghost { background: transparent; color: var(--white); border-color: rgba(255,255,255,.28); }
.section--ink .btn--ghost:hover { border-color: rgba(255,255,255,.6); background: rgba(255,255,255,.08); color: #fff; }

.btn--sm { padding: .6rem 1.25rem; font-size: var(--fs-sm); }
.nav__cta { padding: .52rem 1.05rem; font-size: 13px; }
.btn--lg { padding: 1.1rem 2.4rem; font-size: 1.08rem; }
.btn--block { width: 100%; }
.btn .arrow { transition: transform var(--t-base) var(--ease); }
.btn:hover .arrow { transform: translateX(4px); }
.btn-group { display: flex; flex-wrap: wrap; gap: var(--sp-3); }

/* WhatsApp flotante */
.wa-float {
  position: fixed; right: var(--sp-5); bottom: var(--sp-5);
  width: 52px; height: 52px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--white); border: 1px solid var(--line);
  box-shadow: var(--sh-3); z-index: var(--z-nav);
  transition: transform var(--t-base) var(--ease);
}
.wa-float:hover { transform: scale(1.08); }
.wa-float svg { width: 24px; height: 24px; fill: #25D366; }


/* =============================================================
   4. CABECERA
   ============================================================= */
.nav {
  position: fixed; inset: 0 0 auto 0; z-index: var(--z-nav);
  background: transparent; border: 0;
  padding-top: clamp(10px, 1.4vw, 18px);
  transition: padding var(--t-base);
}
.nav__inner {
  max-width: min(1280px, calc(100% - clamp(1.5rem, 4vw, 3rem)));
  margin-inline: auto; padding: 0 clamp(.9rem, 1.6vw, 1.5rem);
  height: var(--nav-bar); display: flex; align-items: center; gap: clamp(.75rem, 1.6vw, 2rem);
  background: rgba(255,255,255,.82);
  backdrop-filter: saturate(190%) blur(18px);
  -webkit-backdrop-filter: saturate(190%) blur(18px);
  border: 1px solid rgba(255,255,255,.85);
  border-radius: var(--r-pill);
  box-shadow: 0 10px 34px rgba(35,31,32,.09), 0 2px 8px rgba(35,31,32,.05);
  transition: background var(--t-base), box-shadow var(--t-base);
}
.nav.is-stuck { padding-top: clamp(8px, 1vw, 12px); }
.nav.is-stuck .nav__inner {
  background: rgba(255,255,255,.94);
  box-shadow: 0 14px 40px rgba(35,31,32,.13), 0 2px 8px rgba(35,31,32,.06);
}
.nav__logo { display: flex; align-items: center; flex: 1 1 0; }
.nav__logo img { height: 46px; width: auto; }

/* El menú se estira y reparte por toda la barra */
.nav__menu {
  display: flex; align-items: center; flex: 0 1 auto;
  justify-content: center; gap: clamp(6px, 1.8vw, 30px);
}
.nav__menu > li { position: relative; }
.nav__link {
  display: inline-flex; align-items: center; gap: 6px;
  padding: .55rem clamp(.4rem, .9vw, 1rem); border-radius: var(--r-sm);
  font-size: clamp(11.5px, .78vw, 13px); font-weight: 600;
  letter-spacing: .085em; text-transform: uppercase;
  color: var(--ink-900); text-decoration: none; white-space: nowrap;
  transition: color var(--t-fast), background var(--t-fast);
}
.nav__link:hover { color: var(--brand-700); background: var(--brand-100); }
.nav__link[aria-current="page"] { color: var(--brand-700); font-weight: 700; }
.nav__item[data-activo] > .nav__link { color: var(--brand-700); font-weight: 700; }
.nav__link .chev { width: 12px; height: 12px; transition: transform var(--t-fast); }
.nav__item.is-open .chev { transform: rotate(180deg); }

.nav__sub {
  position: absolute; top: calc(100% + 10px); left: 50%; min-width: 300px;
  background: var(--white);
  border: 1px solid rgba(35,31,32,.06);
  border-radius: var(--r-md);
  box-shadow: 0 20px 48px rgba(35,31,32,.10), 0 4px 12px rgba(35,31,32,.05);
  padding: var(--sp-3);
  opacity: 0; visibility: hidden; transform: translate(-50%, -8px) scale(.98);
  transform-origin: top center;
  transition: opacity .22s var(--ease), transform .22s var(--ease), visibility .22s;
}
/* Puntita que enlaza con el botón */
.nav__sub::before {
  content: ""; position: absolute; top: -6px; left: 50%; width: 12px; height: 12px;
  background: var(--white); transform: translateX(-50%) rotate(45deg);
  border-left: 1px solid rgba(35,31,32,.06); border-top: 1px solid rgba(35,31,32,.06);
  border-radius: 2px;
}
/* Zona invisible que evita que el menú se cierre al bajar el ratón */
.nav__sub::after { content: ""; position: absolute; top: -12px; left: 0; right: 0; height: 12px; }
.nav__item.is-open > .nav__sub { opacity: 1; visibility: visible; transform: translate(-50%, 0) scale(1); }

.nav__sub a {
  display: block; padding: .7rem .85rem; border-radius: 12px;
  color: var(--ink-700); text-decoration: none;
  transition: background .18s, transform .18s var(--ease);
}
.nav__sub a b {
  display: block; font-family: var(--font-body); font-size: var(--fs-sm);
  font-weight: 500; color: var(--ink-900); line-height: 1.35;
}
.nav__sub a span {
  display: block; font-size: var(--fs-xs); color: var(--ink-300);
  line-height: 1.45; margin-top: 1px;
}
.nav__sub a:hover { background: var(--brand-50); }
.nav__sub a:hover b { color: var(--brand-700); }
.nav__sub a[aria-current="page"] { background: var(--brand-100); }
.nav__sub a[aria-current="page"] b { color: var(--brand-700); }

.nav__actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--sp-3); flex: 1 1 0; }
.nav__menu-cta { display: none; }   /* solo se muestra en el menú móvil */

/* Selector de idioma */
.lang { position: relative; }
.lang__btn {
  display: inline-flex; align-items: center; gap: 5px;
  padding: .42rem .7rem; border: 1px solid var(--line); border-radius: var(--r-pill);
  background: var(--white); color: var(--ink-700);
  font-size: var(--fs-xs); font-weight: 500; letter-spacing: .04em;
  cursor: pointer; transition: border-color var(--t-fast);
}
.lang__btn:hover { border-color: var(--ink-300); }
.lang__list {
  position: absolute; right: 0; top: calc(100% + 8px);
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-md); box-shadow: var(--sh-3);
  padding: var(--sp-2); min-width: 160px;
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity var(--t-base) var(--ease), transform var(--t-base) var(--ease), visibility var(--t-base);
}
.lang.is-open .lang__list { opacity: 1; visibility: visible; transform: none; }
.lang__list a {
  display: flex; width: 100%; align-items: center; justify-content: space-between;
  padding: .5rem .7rem; border-radius: 10px; text-decoration: none;
  font-size: var(--fs-sm); color: var(--ink-700);
}
.lang__list a:hover { background: var(--paper-2); }
.lang__list a[aria-current="true"] { color: var(--brand-700); font-weight: 500; }
.lang__list a[aria-current="true"]::after { content: "✓"; }

/* Hamburguesa: dos trazos que se cruzan al abrir */
.nav__burger {
  display: none; flex: none; width: 44px; height: 44px;
  border: 0; border-radius: 50%; background: transparent; cursor: pointer;
  padding: 0; place-items: center;
  transition: background var(--t-base);
}
.nav__burger:hover { background: var(--brand-100); }
.nav__burger-lines { display: block; width: 22px; height: 14px; position: relative; }
.nav__burger-lines i {
  position: absolute; left: 0; right: 0; height: 2px; border-radius: 2px;
  background: var(--ink-900);
  transition: transform var(--t-base) var(--ease), width var(--t-base) var(--ease);
}
.nav__burger-lines i:nth-child(1) { top: 0; }
.nav__burger-lines i:nth-child(2) { bottom: 0; width: 70%; }
.nav__burger:hover .nav__burger-lines i:nth-child(2) { width: 100%; }
.nav__burger[aria-expanded="true"] .nav__burger-lines i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nav__burger[aria-expanded="true"] .nav__burger-lines i:nth-child(2) { width: 100%; transform: translateY(-6px) rotate(-45deg); }

/* =============================================================
   5. HERO
   ============================================================= */
.escena {
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, var(--brand-100) 0%, #F6FBF9 46%, var(--paper) 100%);
}
.escena__glow {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(48% 40% at 78% 40%, var(--marca-suave) 0%, transparent 72%);
  opacity: .7;
}
.escena__bg {
  position: absolute; top: 0; left: 0; right: 0; height: min(100%, 860px);
  pointer-events: none; z-index: 0;
  background-repeat: no-repeat; background-position: 78% 40%; background-size: auto 138%;
  -webkit-mask-image: radial-gradient(54% 58% at 78% 40%, #000 18%, transparent 74%);
  mask-image: radial-gradient(54% 58% at 78% 40%, #000 18%, transparent 74%);
}
.escena .blob.b1 { width: 620px; height: 620px; background: var(--marca); top: -280px; right: -190px; opacity: .26; }
.escena .blob.b2 { width: 520px; height: 520px; background: var(--marca-suave); bottom: -220px; left: -170px; opacity: .55; }

.hero { position: relative; z-index: 2; padding: calc(var(--nav-h) + clamp(3rem,7vw,5.5rem)) 0 clamp(3rem,7vw,5rem); }
.hero__txt { max-width: min(820px, 66%); }
.hero h1 { margin-bottom: var(--sp-7); }
.hero .lead { max-width: 44ch; font-size: clamp(1.06rem, .98rem + .4vw, 1.26rem); }
.hero .btn-group { margin-top: var(--sp-8); }

/* Hero interior, para el resto de páginas */
.hero--page { padding-block: calc(var(--nav-h) + clamp(2.5rem,5vw,4rem)) clamp(2.5rem,5vw,4rem); }
.hero--page h1 { font-size: var(--fs-3xl); margin-bottom: var(--sp-5); }


/* =============================================================
   6. SECCIONES
   ============================================================= */
/* --- Tarjeta --- */
.card {
  position: relative; background: var(--white);
  border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: var(--sp-6); overflow: hidden;
  transition: transform var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease),
              border-color var(--t-base) var(--ease);
}
.card:hover { transform: translateY(-4px); box-shadow: var(--sh-3); border-color: transparent; }
/* Halo que sigue al ratón */
.card::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0;
  background: radial-gradient(420px 220px at var(--mx,50%) var(--my,0%), var(--brand-100), transparent 70%);
  transition: opacity var(--t-base);
}
.card:hover::after { opacity: .85; }
.card > * { position: relative; z-index: 1; }

.card__icon {
  width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center;
  background: var(--brand-100); color: var(--brand-700); margin-bottom: var(--sp-5);
  transition: background var(--t-base), transform var(--t-base) var(--ease);
}
.card:hover .card__icon { background: var(--marca); color: var(--white); transform: scale(1.06); }
.card__icon svg { width: 26px; height: 26px; }
.card h3 { margin-bottom: var(--sp-3); }
.card p  { color: var(--ink-500); font-size: var(--fs-sm); }

.card--media { padding: 0; }
.card--media img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.card--media .card__body { padding: var(--sp-6); }

/* --- Cifras de medidas --- */
.measures { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-4); }
.measure-item {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-md); padding: var(--sp-5);
  transition: border-color var(--t-base), transform var(--t-base) var(--ease);
}
.measure-item:hover { border-color: var(--brand-300); transform: translateY(-3px); }
.measure-item b { display: block; font-family: var(--font-display); font-variation-settings: var(--soft);
  font-size: var(--fs-2xl); color: var(--ink-900); }
.measure-item span { font-size: var(--fs-sm); color: var(--ink-500); }

/* --- Timeline --- */
.timeline { position: relative; padding-left: var(--sp-8); }
.timeline::before { content: ""; position: absolute; left: 15px; top: 8px; bottom: 8px; width: 2px; background: var(--line); }
.timeline__fill { position: absolute; left: 15px; top: 8px; width: 2px; height: 0;
  background: var(--brand-600); transition: height .2s linear; }
.timeline__item { position: relative; padding-bottom: var(--sp-8); }
.timeline__item:last-child { padding-bottom: 0; }
.timeline__dot {
  position: absolute; left: calc(var(--sp-8) * -1); top: 2px;
  width: 32px; height: 32px; border-radius: 50%;
  background: var(--white); border: 2px solid var(--line);
  display: grid; place-items: center;
  font-size: var(--fs-xs); font-weight: 600; color: var(--ink-300);
  transition: border-color var(--t-base), color var(--t-base), background var(--t-base);
}
.timeline__item.is-in .timeline__dot { border-color: var(--brand-600); color: var(--brand-700); background: var(--brand-100); }
.timeline__item h3 { font-size: var(--fs-lg); margin-bottom: var(--sp-3); }
.timeline__item p { color: var(--ink-500); font-size: var(--fs-sm); max-width: 64ch; }

/* --- Contadores --- */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-6); text-align: center; }
.stat b {
  display: block; font-family: var(--font-display); font-variation-settings: var(--soft);
  font-size: clamp(2.4rem, 1.6rem + 3vw, 3.6rem); line-height: 1;
  color: var(--brand-600); letter-spacing: -.02em; font-variant-numeric: tabular-nums;
}
.stat span { display: block; margin-top: var(--sp-3); font-size: var(--fs-sm); color: var(--ink-500); }
.section--ink .stat b { color: var(--marca); }
.section--ink .stat span { color: rgba(255,255,255,.62); }

/* --- Carta / cita --- */
.letter {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: clamp(1.75rem, 4vw, 3.25rem); box-shadow: var(--sh-2);
}
.letter p { color: var(--ink-700); }
.letter p + p { margin-top: var(--sp-4); }
.letter__sign {
  display: flex; align-items: center; gap: var(--sp-4);
  margin-top: var(--sp-7); padding-top: var(--sp-6); border-top: 1px solid var(--line);
}
.letter__sign img { width: 68px; height: 68px; border-radius: 50%; object-fit: cover; flex: none; }
.letter__sign b { display: block; font-family: var(--font-display); font-variation-settings: var(--soft); font-size: var(--fs-lg); }
.letter__sign span { font-size: var(--fs-xs); color: var(--ink-500); line-height: 1.5; display: block; }

/* --- Precio --- */
.price { background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: var(--sp-7); box-shadow: var(--sh-3); }
.price__amount { font-family: var(--font-display); font-variation-settings: var(--soft);
  font-size: var(--fs-3xl); color: var(--ink-900); letter-spacing: -.02em; }
.price ul { list-style: none; margin: var(--sp-6) 0; padding: 0; }
.price li {
  display: flex; align-items: flex-start; gap: var(--sp-3);
  padding: var(--sp-3) 0; font-size: var(--fs-sm); color: var(--ink-700);
  border-bottom: 1px solid var(--line);
}
.price li:last-child { border-bottom: 0; }
.price li::before {
  content: ""; flex: none; width: 18px; height: 18px; margin-top: 3px;
  border-radius: 50%; background: var(--brand-100);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E7A66' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
  background-size: 11px; background-position: center; background-repeat: no-repeat;
}

/* --- Lista con marca --- */
.ticks { list-style: none; padding: 0; display: grid; gap: var(--sp-4); }
.ticks li { display: flex; gap: var(--sp-3); align-items: flex-start; color: var(--ink-700); }
.ticks li::before {
  content: ""; flex: none; width: 22px; height: 22px; margin-top: 2px;
  border-radius: 50%; background: var(--brand-100);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E7A66' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
  background-size: 12px; background-position: center; background-repeat: no-repeat;
}

/* --- CTA final --- */
.cta { position: relative; overflow: hidden; border-radius: var(--r-xl); background: var(--ink-900); }
.cta__inner { position: relative; z-index: 1; text-align: center; padding: clamp(3rem,7vw,5.5rem) var(--gutter); }
.cta h2 { color: var(--white); max-width: 22ch; margin-inline: auto; }
.cta p { color: rgba(255,255,255,.7); max-width: 64ch; margin: var(--sp-5) auto var(--sp-8); }
.cta .blob { filter: blur(110px); }

/* --- Perfil (referentes) --- */
.person { text-align: center; }
.person img { width: 110px; height: 110px; border-radius: 50%; object-fit: cover; margin: 0 auto var(--sp-4); }
.person h3 { font-size: var(--fs-lg); margin-bottom: 2px; }
.person__role { font-size: var(--fs-sm); color: var(--brand-700); margin-bottom: var(--sp-4); }
.person__links { display: flex; gap: var(--sp-2); justify-content: center; }
.person__links a {
  width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center;
  border: 1px solid var(--line); color: var(--ink-500);
  transition: border-color var(--t-base), color var(--t-base), transform var(--t-base);
}
.person__links a:hover { border-color: var(--brand-300); color: var(--brand-700); transform: translateY(-2px); }
.person__links svg { width: 16px; height: 16px; fill: currentColor; }


/* =============================================================
   7. COMPARADOR
   ============================================================= */
.comp {
  background: var(--white); border: 1px solid rgba(255,255,255,.9);
  border-radius: var(--r-lg); box-shadow: var(--sh-card); overflow: hidden;
}
.comp__head { padding: var(--sp-5) var(--sp-6); border-bottom: 1px solid var(--line); background: var(--white); }
.comp__head h2 { font-size: var(--fs-xl); }
.comp__nota { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--ink-300); margin-top: 6px; }
.comp__nota i {
  width: 24px; height: 9px; border-radius: 3px; flex: none;
  background: repeating-linear-gradient(45deg, var(--ink-200) 0 2px, transparent 2px 5px);
  box-shadow: inset 1px 0 0 var(--ink-300), inset -1px 0 0 var(--ink-300);
}
.comp__pats { display: grid; grid-template-columns: 1fr 1fr; }
.pat { padding: var(--sp-5) var(--sp-5) var(--sp-6); }
.pat + .pat { border-left: 1px solid var(--line); }
.pat__top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.pat__id { font-size: 12.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-900); }
.pat__hueso {
  font-size: 10.5px; color: var(--brand-700); background: var(--brand-100);
  padding: 3px 10px; border-radius: var(--r-pill); font-weight: 500;
}
.pat__imc { display: flex; gap: 22px; margin: 14px 0 18px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.pat__imc div { display: flex; flex-direction: column; gap: 1px; }
.pat__imc span { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-300); }
.pat__imc b { font-family: var(--font-display); font-variation-settings: var(--soft);
  font-size: 1rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.pat__imc em {
  font-style: normal; font-size: 10.5px; font-weight: 600; letter-spacing: .04em;
  text-transform: uppercase; padding: 2px 8px; border-radius: var(--r-pill);
  margin-top: 3px; align-self: flex-start;
}
.imc--alerta { background: var(--warn-bg); color: var(--warn); }
.imc--ok { background: var(--ok-bg); color: var(--brand-700); }

.bars { list-style: none; display: grid; gap: 15px; padding: 0; }
.bar {
  display: grid; grid-template-columns: 1fr auto; gap: 3px 10px; align-items: baseline;
  opacity: 0; transform: translateY(6px);
  transition: opacity .5s var(--ease), transform .5s var(--ease);
}
.bar.on { opacity: 1; transform: none; }
.bar__lbl { font-size: 12px; color: var(--ink-500); }
.bar__val { font-family: var(--font-display); font-variation-settings: var(--soft);
  font-size: 14.5px; font-weight: 600; text-align: right; font-variant-numeric: tabular-nums; }
.bar__track {
  grid-column: 1 / -1; position: relative; height: 12px; margin-top: 2px;
  border-radius: var(--r-pill); background: var(--paper-2); overflow: hidden;
}
.bar__fill { position: absolute; inset: 0 auto 0 0; width: 0; border-radius: var(--r-pill);
  transition: width 1s var(--ease) .15s; }
.bar.on .bar__fill { width: var(--w); }
.band {
  position: absolute; top: 0; bottom: 0; border-radius: 3px; z-index: 2; opacity: .55;
  background: repeating-linear-gradient(45deg, var(--ink-200) 0 2px, transparent 2px 5px);
  box-shadow: inset 1px 0 0 var(--ink-300), inset -1px 0 0 var(--ink-300);
}
.need { grid-column: 1 / -1; display: flex; align-items: center; gap: 5px;
  font-size: 11px; font-weight: 500; margin-top: 3px; white-space: nowrap; }
.need svg { width: 11px; height: 11px; flex: none; stroke: currentColor; stroke-width: 2.6;
  fill: none; stroke-linecap: round; stroke-linejoin: round; }
.need--ok { color: var(--brand-700); } .need--bad { color: var(--error); }

.pat__rows { display: grid; gap: 8px; font-size: 12px; padding-top: 14px; margin-top: 16px; border-top: 1px solid var(--line); }
.pat__rows > div { display: flex; justify-content: space-between; color: var(--ink-500); }
.pat__rows b { font-family: var(--font-display); font-variation-settings: var(--soft);
  font-weight: 600; color: var(--ink-900); font-variant-numeric: tabular-nums; }
.pat__rows b.low { color: var(--error); }

.dx { margin-top: 14px; padding: 10px 13px; border-radius: 12px;
  font-size: 12px; font-weight: 500; display: flex; align-items: center; gap: 9px; line-height: 1.35; }
.dx svg { width: 15px; height: 15px; flex: none; stroke: currentColor; stroke-width: 2.2;
  fill: none; stroke-linecap: round; stroke-linejoin: round; }
.dx--ok { background: var(--ok-bg); color: var(--brand-700); }
.dx--bad { background: var(--error-bg); color: var(--error); }

.comp__foot { padding: var(--sp-4) var(--sp-6); border-top: 1px solid var(--line);
  background: var(--paper-2); font-size: 12.5px; color: var(--ink-500); text-align: center; }
.comp__foot b { color: var(--ink-900); font-weight: 600; }


/* =============================================================
   8. ACORDEÓN
   ============================================================= */
.acc { border-top: 1px solid var(--line); }
.acc__item { border-bottom: 1px solid var(--line); }
.acc__btn {
  display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-5);
  width: 100%; padding: var(--sp-6) 0; background: none; border: 0; cursor: pointer; text-align: left;
  font-family: var(--font-display); font-variation-settings: var(--soft); font-weight: 600;
  font-size: var(--fs-lg); color: var(--ink-900); transition: color var(--t-fast);
}
.acc__btn:hover { color: var(--brand-700); }
.acc__btn .plus { flex: none; width: 22px; height: 22px; position: relative; margin-top: 6px; }
.acc__btn .plus::before, .acc__btn .plus::after {
  content: ""; position: absolute; inset: 50% 0 auto 0; height: 1.8px;
  background: var(--brand-600); border-radius: 2px;
  transition: transform var(--t-base) var(--ease);
}
.acc__btn .plus::after { transform: rotate(90deg); }
.acc__btn[aria-expanded="true"] .plus::after { transform: rotate(0deg); }
.acc__panel { overflow: hidden; max-height: 0; transition: max-height var(--t-slow) var(--ease); }
.acc__panel > div { padding: 0 0 var(--sp-6); max-width: var(--measure); }
.acc__panel p + p, .acc__panel ol, .acc__panel ul { margin-top: var(--sp-4); }
.acc__panel p, .acc__panel li { color: var(--ink-500); font-size: var(--fs-sm); }
.acc__panel ol, .acc__panel ul { padding-left: 1.2rem; }
.acc__panel li + li { margin-top: var(--sp-2); }


/* =============================================================
   9. FORMULARIOS
   ============================================================= */
.form {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: clamp(1.5rem, 4vw, 2.75rem); box-shadow: var(--sh-2);
}
.form__steps { display: flex; gap: var(--sp-2); margin-bottom: var(--sp-5); }
.form__steps i { height: 3px; flex: 1; border-radius: 2px; background: var(--line);
  transition: background var(--t-slow) var(--ease); }
.form__steps i.is-on { background: var(--brand-600); }
.form__step-label { font-size: var(--fs-xs); color: var(--ink-500);
  letter-spacing: .08em; text-transform: uppercase; margin-bottom: var(--sp-5); }

.form__panel { display: none; }
.form__panel.is-active { display: block; animation: panelIn var(--t-slow) var(--ease); }
@keyframes panelIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .form__panel.is-active { animation: none; } }

.field { margin-bottom: var(--sp-5); }
.field > label { display: block; font-size: var(--fs-sm); font-weight: 500;
  color: var(--ink-700); margin-bottom: var(--sp-2); }
.field .req { color: var(--error); margin-left: 2px; }
.field input, .field select, .field textarea {
  width: 100%; padding: .85rem .95rem;
  border: 1px solid var(--line); border-radius: var(--r-sm);
  background: var(--paper); font-size: var(--fs-sm);
  transition: border-color var(--t-base), box-shadow var(--t-base), background var(--t-base);
}
.field textarea { min-height: 130px; resize: vertical; }
.field input::placeholder, .field textarea::placeholder { color: var(--ink-300); }
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none; border-color: var(--brand-600); background: var(--white);
  box-shadow: 0 0 0 4px var(--brand-100);
}
.field select {
  appearance: none; padding-right: 2.4rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B6869' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right .9rem center; background-size: 16px;
}
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); }

.field.has-error input, .field.has-error select, .field.has-error textarea {
  border-color: var(--error); background: var(--error-bg);
}
.field.is-valid input, .field.is-valid select { border-color: var(--brand-300); }
.field__error {
  display: flex; align-items: center; gap: 6px;
  font-size: var(--fs-xs); color: var(--error); margin-top: var(--sp-2);
  opacity: 0; max-height: 0; overflow: hidden;
  transition: opacity var(--t-base) var(--ease), max-height var(--t-base) var(--ease);
}
.field.has-error .field__error { opacity: 1; max-height: 60px; }

.field--check { display: flex; align-items: flex-start; gap: var(--sp-3); }
.field--check input { width: 18px; height: 18px; flex: none; margin-top: 3px; accent-color: var(--brand-600); }
.field--check label { font-size: var(--fs-xs); color: var(--ink-500); line-height: 1.55; margin: 0; font-weight: 400; }

.btn .spinner {
  width: 15px; height: 15px; flex: none; display: none;
  border: 2px solid rgba(255,255,255,.35); border-top-color: currentColor;
  border-radius: 50%; animation: spin .7s linear infinite;
}
.btn.is-loading .spinner { display: block; }
.btn.is-loading .btn__label { opacity: .7; }
@keyframes spin { to { transform: rotate(360deg); } }

.form__success { display: none; text-align: center; padding: var(--sp-8) var(--sp-4); }
.form__success.is-active { display: block; animation: panelIn var(--t-slow) var(--ease); }
.form__success .tick {
  width: 64px; height: 64px; margin: 0 auto var(--sp-5); border-radius: 50%;
  background: var(--brand-100); display: grid; place-items: center;
}
.form__success .tick svg { width: 28px; height: 28px; stroke: var(--brand-700);
  stroke-width: 2.4; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.form__success h3 { margin-bottom: var(--sp-3); }
.form__success p { color: var(--ink-500); max-width: 46ch; margin-inline: auto; }
.form__nav { display: flex; gap: var(--sp-3); margin-top: var(--sp-6); }
.form__nav .btn--primary { flex: 1; }


/* =============================================================
   10. PIE DE PÁGINA
   ============================================================= */
.footer {
  position: relative;
  background: linear-gradient(180deg, var(--brand-50) 0%, var(--brand-100) 100%);
  color: var(--ink-500); padding: var(--sp-10) 0 var(--sp-6);
  border-top: 1px solid var(--line);
}
.footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: var(--sp-7); }
.footer img.logo { height: 72px; width: auto; margin-bottom: var(--sp-5); }
.footer h4 {
  color: var(--ink-900); font-family: var(--font-body); font-size: var(--fs-xs);
  font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin-bottom: var(--sp-4);
}
.footer ul { list-style: none; padding: 0; }
.footer li + li { margin-top: var(--sp-3); }
.footer a { color: var(--ink-500); text-decoration: none; font-size: var(--fs-sm);
  transition: color var(--t-fast); }
.footer a:hover { color: var(--brand-700); }
.footer__social { display: flex; gap: var(--sp-3); margin-top: var(--sp-5); }
.footer__social a {
  width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center;
  background: var(--white); color: var(--brand-700);
  border: 1px solid var(--line);
  transition: background var(--t-base), border-color var(--t-base), transform var(--t-base), color var(--t-base);
}
.footer__social a:hover { background: var(--brand-700); color: var(--white);
  border-color: var(--brand-700); transform: translateY(-2px); }
.footer__social svg { width: 17px; height: 17px; fill: currentColor; }
.footer__bottom {
  display: flex; flex-wrap: wrap; gap: var(--sp-3) var(--sp-6);
  justify-content: space-between; align-items: center;
  margin-top: var(--sp-9); padding-top: var(--sp-5);
  border-top: 1px solid var(--line); font-size: var(--fs-xs);
  line-height: 1.6;
}
.footer__bottom ul { display: flex; flex-wrap: wrap; align-items: center; gap: 0; }
.footer__bottom li { margin: 0; line-height: 1.6; }
/* Separador entre enlaces, sin descuadrar la línea base */
.footer__bottom li + li { border-left: 1px solid var(--ink-200); }
.footer__bottom li a { display: inline-block; padding: 0 var(--sp-4); }
.footer__bottom li:first-child a { padding-left: 0; }
.footer__bottom li:last-child a { padding-right: 0; }
.footer__bottom > span { line-height: 1.6; }
@media (max-width: 620px) {
  .footer__bottom { flex-direction: column; align-items: flex-start; text-align: left; }
}


/* =============================================================
   11. RESPONSIVE
   ============================================================= */
@media (max-width: 1000px) {
  .nav__burger { display: grid; }
  .nav__menu {
    position: absolute; top: 100%; left: 0; right: 0;
    height: calc(100dvh - var(--nav-h));
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--paper); padding: var(--sp-5) var(--gutter) var(--sp-9);
    overflow-y: auto; transform: translateX(100%);
    transition: transform var(--t-slow) var(--ease);
  }
  .nav__menu.is-open { transform: none; }
  .nav__menu { justify-content: flex-start; }
  .nav__link { padding: .95rem .25rem; font-size: 15px; letter-spacing: .06em;
    justify-content: space-between; white-space: normal; }
  .nav__menu > li + li { border-top: 1px solid var(--line); }
  .nav__sub {
    position: static; opacity: 1; visibility: visible; transform: none;
    border: 0; box-shadow: none; background: none; padding: 0 0 var(--sp-3) var(--sp-4);
    max-height: 0; overflow: hidden; transition: max-height var(--t-slow) var(--ease);
  }
  .nav__item.is-open > .nav__sub { max-height: 340px; }
  /* La hamburguesa manda en el extremo derecho */
  .nav__inner { gap: var(--sp-3); }
  .nav__actions { margin-left: auto; flex: none; }
  .nav__logo { flex: none; }
  .nav__cta { display: none; }
  .nav__burger { order: 99; }

  /* El menú desplegado incluye el botón de asesoría */
  .nav__menu-cta { display: block; border-top: 0; padding-top: var(--sp-6); }
  .hero__txt { max-width: 100%; }
}

@media (max-width: 940px) {
  .grid--3, .grid--4 { grid-template-columns: repeat(2, 1fr); }
  .footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  .measures { grid-template-columns: repeat(2, 1fr); }
  .stats { grid-template-columns: repeat(2, 1fr); gap: var(--sp-7); }
}

@media (max-width: 640px) {
  .comp__pats { grid-template-columns: 1fr; }
  .pat + .pat { border-left: 0; border-top: 1px solid var(--line); }
  .field-row { grid-template-columns: 1fr; gap: 0; }
}

@media (max-width: 560px) {
  .grid--2, .grid--3, .grid--4 { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: 1fr; }
  .letter__sign { flex-direction: column; align-items: flex-start; }
}

/* Impresión */
@media print {
  .nav, .footer, .wa-float, .read-progress { display: none; }
  body { background: #fff; }
  [data-reveal] { opacity: 1; transform: none; }
}


/* =============================================================
   12. CUESTIONARIO DE ASESORÍA 1:1
   Cuatro pasos: tres preguntas que avanzan solas al elegir y un
   último paso con los datos de contacto.
   ============================================================= */
.quiz-sec { position: relative; overflow: hidden; background: var(--brand-50); }
.quiz-sec .wrap { position: relative; z-index: 1; }

.quiz {
  display: grid; grid-template-columns: 300px 1fr;
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-lg); box-shadow: var(--sh-card); overflow: hidden;
}

/* --- Columna de la Dra. Witriw --- */
.quiz__side {
  padding: var(--sp-7) var(--sp-6);
  background: var(--ink-900); color: rgba(255,255,255,.66);
}
.quiz__side img {
  width: 100%; max-width: 190px; aspect-ratio: 1; border-radius: var(--r-md);
  object-fit: cover; object-position: center top;
  margin: 0 auto var(--sp-5); display: block;
  border: 1px solid rgba(255,255,255,.14);
}
.quiz__side b {
  display: block; font-family: var(--font-display); font-variation-settings: var(--soft);
  font-size: var(--fs-lg); color: var(--white); margin-bottom: var(--sp-2);
}
.quiz__side > span { display: block; font-size: var(--fs-xs); line-height: 1.6; }
.quiz__side ul {
  list-style: none; padding: 0; margin-top: var(--sp-6);
  padding-top: var(--sp-5); border-top: 1px solid rgba(255,255,255,.12);
  display: grid; gap: var(--sp-3);
}
.quiz__side li {
  display: flex; align-items: flex-start; gap: var(--sp-3);
  font-size: var(--fs-xs); color: rgba(255,255,255,.8);
}
.quiz__side li::before {
  content: ""; flex: none; width: 16px; height: 16px; margin-top: 2px;
  border-radius: 50%; background: rgba(102,202,177,.18);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2366CAB1' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
  background-size: 10px; background-position: center; background-repeat: no-repeat;
}

/* --- Formulario --- */
.quiz__form { padding: var(--sp-7) var(--sp-6); position: relative; }

.quiz__bar { display: flex; gap: 6px; margin-bottom: var(--sp-3); }
.quiz__bar i {
  height: 4px; flex: 1; border-radius: 2px; background: var(--line);
  transition: background var(--t-slow) var(--ease);
}
.quiz__bar i.is-on { background: var(--brand-600); }
.quiz__count {
  font-size: var(--fs-xs); color: var(--ink-300);
  letter-spacing: .08em; text-transform: uppercase; margin-bottom: var(--sp-6);
}

.quiz__step { display: none; }
.quiz__step.is-active { display: block; animation: quizIn .45s var(--ease); }
@keyframes quizIn { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .quiz__step.is-active { animation: none; } }

.quiz__q { font-size: var(--fs-xl); margin-bottom: var(--sp-2); }
.quiz__help { font-size: var(--fs-sm); color: var(--ink-500); margin-bottom: var(--sp-5); }

/* --- Opciones --- */
.quiz__opts { display: grid; gap: var(--sp-3); }
.quiz__opt {
  position: relative; display: flex; align-items: center; gap: var(--sp-4);
  padding: var(--sp-4) var(--sp-5); cursor: pointer;
  border: 1px solid var(--line); border-radius: var(--r-md); background: var(--white);
  transition: border-color var(--t-base), background var(--t-base),
              transform var(--t-base) var(--ease), box-shadow var(--t-base);
}
.quiz__opt:hover { border-color: var(--brand-300); background: var(--brand-50); transform: translateX(3px); }
.quiz__opt input { position: absolute; opacity: 0; width: 0; height: 0; }
.quiz__opt-body { flex: 1; min-width: 0; }
.quiz__opt-tit { display: block; font-size: var(--fs-sm); font-weight: 500; color: var(--ink-900); }
.quiz__opt-sub { display: block; font-size: var(--fs-xs); color: var(--ink-500); margin-top: 1px; }
.quiz__opt-check {
  flex: none; width: 22px; height: 22px; border-radius: 50%;
  border: 2px solid var(--ink-200); transition: border-color var(--t-base), background var(--t-base);
}
.quiz__opt:has(input:checked) { border-color: var(--brand-600); background: var(--brand-100); }
.quiz__opt:has(input:checked) .quiz__opt-check {
  border-color: var(--brand-600); background: var(--brand-600);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
  background-size: 12px; background-position: center; background-repeat: no-repeat;
}
.quiz__opt:has(input:focus-visible) { outline: 2px solid var(--brand-600); outline-offset: 3px; }

.quiz__nav { display: flex; gap: var(--sp-3); margin-top: var(--sp-6); align-items: center; }
.quiz__nav [type="submit"] { margin-left: auto; }
.quiz__step[data-step="0"] [data-quiz-prev] { visibility: hidden; }

/* --- Pantalla final --- */
.quiz__done { display: none; text-align: center; padding: var(--sp-8) var(--sp-4); }
.quiz__done.is-active { display: block; animation: quizIn .5s var(--ease); }
.quiz__done .tick {
  width: 64px; height: 64px; margin: 0 auto var(--sp-5); border-radius: 50%;
  background: var(--brand-100); display: grid; place-items: center;
}
.quiz__done .tick svg { width: 28px; height: 28px; stroke: var(--brand-700);
  stroke-width: 2.4; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.quiz__done h3 { margin-bottom: var(--sp-3); }
.quiz__done p { color: var(--ink-500); max-width: 44ch; margin-inline: auto; }

@media (max-width: 880px) {
  .quiz { grid-template-columns: 1fr; }
  .quiz__side {
    display: flex; flex-direction: column; align-items: center; text-align: center;
    padding: var(--sp-6) var(--sp-5);
  }
  .quiz__side img { max-width: 128px; margin: 0 0 var(--sp-4); }
  .quiz__side > span { max-width: 34ch; }
  .quiz__side ul {
    width: 100%; display: flex; flex-wrap: wrap; justify-content: center;
    gap: var(--sp-3) var(--sp-5); margin-top: var(--sp-5); padding-top: var(--sp-4);
  }
  .quiz__side li { font-size: 11.5px; }
  .quiz__form { padding: var(--sp-6) var(--sp-5); }
  .quiz__opt { padding: var(--sp-4); gap: var(--sp-3); }
  .quiz__side ul { grid-column: 1 / -1; margin-top: 0; }
}


/* =============================================================
   13. TABLA COMPARATIVA
   ============================================================= */
.tabla-wrap { overflow-x: auto; border-radius: var(--r-lg); box-shadow: var(--sh-3); background: var(--white); }
.tabla { width: 100%; border-collapse: collapse; min-width: 780px; }
.tabla th, .tabla td {
  padding: var(--sp-5); text-align: left; vertical-align: top;
  border-bottom: 1px solid var(--line); font-size: var(--fs-sm);
}
.tabla thead th {
  font-family: var(--font-display); font-variation-settings: var(--soft);
  font-size: var(--fs-base); color: var(--ink-900);
  background: var(--paper-2); border-bottom: 2px solid var(--line);
  position: sticky; top: 0;
}
.tabla thead .th--enfa { background: var(--brand-100); color: var(--brand-700); }
.tabla tbody th {
  font-family: var(--font-body); font-weight: 500; color: var(--ink-900);
  width: 22%; background: var(--paper-2);
}
.tabla td { color: var(--ink-500); }
.tabla .td--enfa { background: var(--brand-50); color: var(--ink-700); }
.tabla tbody tr:last-child th, .tabla tbody tr:last-child td { border-bottom: 0; }
.tabla .t-si, .tabla .t-no { width: 18px; height: 18px; display: inline-block; vertical-align: -3px; margin-right: 6px; }
.tabla .t-si { color: var(--brand-600); }
.tabla .t-no { color: var(--error); }
.tabla-nota { margin-top: var(--sp-4); font-size: var(--fs-xs); color: var(--ink-300); text-align: center; }


/* =============================================================
   14. PÁGINA DE VENTA DEL E-BOOK
   ============================================================= */
.ebook-hero { display: grid; grid-template-columns: 1fr 340px; gap: clamp(2rem,5vw,4rem); align-items: center; }
.ebook-hero__txt h1 { font-size: var(--fs-3xl); margin-bottom: var(--sp-3); }
.ebook-hero__autor {
  font-family: var(--font-display); font-variation-settings: var(--soft);
  font-size: var(--fs-lg); color: var(--brand-700); margin-bottom: var(--sp-5);
}
.ebook-hero__img img {
  width: 100%; border-radius: var(--r-md);
  box-shadow: 0 30px 60px rgba(35,31,32,.24), 0 8px 20px rgba(35,31,32,.12);
}
.ebook-precio {
  display: flex; align-items: baseline; gap: var(--sp-4); flex-wrap: wrap;
  margin: var(--sp-7) 0 var(--sp-6);
}
.ebook-precio__val {
  font-family: var(--font-display); font-variation-settings: var(--soft);
  font-size: var(--fs-3xl); color: var(--ink-900); letter-spacing: -.02em;
}
.ebook-precio__mon { font-size: var(--fs-sm); color: var(--ink-500); }
.ebook-precio__nota { font-size: var(--fs-sm); color: var(--ink-500); }

/* --- Índice de capítulos --- */
.caps { list-style: none; padding: 0; margin-top: var(--sp-6); }
.cap {
  display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-4);
  padding: var(--sp-4) 0; border-bottom: 1px solid var(--line);
  transition: padding-left var(--t-base) var(--ease);
}
.cap:hover { padding-left: var(--sp-3); }
.cap:last-child { border-bottom: 0; }
.cap__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cap__num {
  font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--brand-600);
  font-weight: 600;
}
.cap__tit { font-size: var(--fs-sm); color: var(--ink-900); }
.cap__pag { font-size: var(--fs-xs); color: var(--ink-300); flex: none; }

/* --- Ficha técnica --- */
.ficha { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--sp-6); }
.ficha h3 { font-size: var(--fs-lg); margin-bottom: var(--sp-5); }
.ficha__row {
  display: flex; justify-content: space-between; gap: var(--sp-4);
  padding: var(--sp-3) 0; border-bottom: 1px solid var(--line); font-size: var(--fs-sm);
}
.ficha__row:last-child { border-bottom: 0; }
.ficha__row span { color: var(--ink-500); }
.ficha__row b { color: var(--ink-900); text-align: right; font-weight: 500; }

/* --- Pasos de compra --- */
.pasos { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-5); }
.pasos li {
  background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: var(--sp-6); text-align: center;
}
.pasos__n {
  display: grid; place-items: center; width: 38px; height: 38px; margin: 0 auto var(--sp-4);
  border-radius: 50%; background: var(--brand-100); color: var(--brand-700);
  font-family: var(--font-display); font-variation-settings: var(--soft); font-weight: 600;
}
.pasos b { display: block; margin-bottom: var(--sp-2); }
.pasos span:not(.pasos__n) { font-size: var(--fs-sm); color: var(--ink-500); }

/* --- Datos bancarios (solo tras enviar el formulario) --- */
.banco {
  background: var(--brand-50); border: 1px solid var(--brand-300);
  border-radius: var(--r-lg); padding: var(--sp-5); text-align: left;
}
.banco__head {
  display: flex; align-items: center; gap: var(--sp-3);
  padding-bottom: var(--sp-4); margin-bottom: var(--sp-3);
  border-bottom: 1px solid var(--brand-300);
  font-size: var(--fs-xs); font-weight: 600; letter-spacing: .1em;
  text-transform: uppercase; color: var(--brand-700);
}
.banco__head svg { width: 20px; height: 20px; flex: none; }
.banco__row {
  display: grid; grid-template-columns: 92px 1fr auto; gap: var(--sp-3);
  align-items: center; padding: var(--sp-3) 0;
}
.banco__row + .banco__row { border-top: 1px solid rgba(190,219,205,.6); }
.banco__row > span { font-size: var(--fs-xs); color: var(--ink-500); }
.banco__row > b { font-size: var(--fs-sm); color: var(--ink-900); word-break: break-all; }
.banco__copy {
  font-size: 11px; padding: 5px 12px; border-radius: var(--r-pill);
  border: 1px solid var(--brand-300); background: var(--white); color: var(--brand-700);
  transition: background var(--t-fast), color var(--t-fast);
}
.banco__copy:hover { background: var(--brand-600); color: var(--white); border-color: var(--brand-600); }
.banco__copy.is-copiado { background: var(--brand-700); color: var(--white); border-color: var(--brand-700); }
.banco__envio { margin-top: var(--sp-6); }
.banco__envio p { font-size: var(--fs-sm); margin-bottom: var(--sp-4); }
.ebook-form .form__success { text-align: left; }
.ebook-form .form__success .tick, .ebook-form .form__success h3 { margin-inline: auto; text-align: center; }
.ebook-form .form__success > p { text-align: center; margin-inline: auto; }

@media (max-width: 900px) {
  .ebook-hero { grid-template-columns: 1fr; }
  .ebook-hero__img { max-width: 260px; }
}
@media (max-width: 720px) {
  .pasos { grid-template-columns: 1fr; }
  .banco__row { grid-template-columns: 1fr auto; }
  .banco__row > span { grid-column: 1 / -1; }
}


/* =============================================================
   13. REDISEÑO 2026 — CONTRASTE, ICONOS Y MOVIMIENTO
   Bloque nuevo: tarjetas de metodología con foto real, iconos
   propios, fondos con relieve y animaciones suaves.
   ============================================================= */

/* --- Fondos decorativos reutilizables ------------------------ */
.fondo { position: relative; overflow: hidden; isolation: isolate; }
.fondo > .wrap { position: relative; z-index: 2; }

/* Malla de puntos muy tenue */
.fondo--puntos::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: radial-gradient(currentColor 1px, transparent 1px);
  background-size: 26px 26px; color: var(--brand-600); opacity: .10;
  -webkit-mask-image: radial-gradient(70% 60% at 50% 40%, #000 20%, transparent 80%);
          mask-image: radial-gradient(70% 60% at 50% 40%, #000 20%, transparent 80%);
}
/* Curvas anchas tipo “relieve” */
.fondo--curvas::before {
  content: ""; position: absolute; inset: -20% -10% auto -10%; height: 130%; z-index: 0;
  background:
    radial-gradient(38% 30% at 12% 18%, var(--brand-100) 0%, transparent 70%),
    radial-gradient(42% 34% at 88% 12%, var(--marca-suave) 0%, transparent 72%),
    radial-gradient(50% 40% at 60% 96%, var(--brand-50) 0%, transparent 75%);
  opacity: .9; pointer-events: none;
}
/* Degradado diagonal de marca, para bandas fuertes */
.fondo--marca {
  background: linear-gradient(135deg, var(--brand-700) 0%, var(--brand-600) 48%, var(--brand-500) 100%);
  color: var(--white);
}
.fondo--marca h2, .fondo--marca h3, .fondo--marca b { color: var(--white); }
.fondo--marca p { color: rgba(255,255,255,.82); }
.fondo--marca .eyebrow { color: var(--marca); }

/* Línea ondulada divisoria entre secciones */
.onda { display: block; width: 100%; height: clamp(38px, 5vw, 74px); }
.onda path { fill: currentColor; }

/* Halos que flotan despacio */
.flota { animation: flota 14s var(--ease-in-out, ease-in-out) infinite alternate; }
.flota--lento { animation-duration: 22s; }
@keyframes flota {
  from { transform: translate3d(0,0,0) scale(1); }
  to   { transform: translate3d(0,-26px,0) scale(1.06); }
}
@media (prefers-reduced-motion: reduce) { .flota { animation: none; } }


/* --- Iconos propios ENFA ------------------------------------- */
.ico {
  --ico-bg: var(--brand-100);
  --ico-fg: var(--brand-700);
  --ico-ac: var(--marca);
  width: 64px; height: 64px; border-radius: 20px;
  display: grid; place-items: center; flex: none;
  background: var(--ico-bg); color: var(--ico-fg);
  box-shadow: inset 0 0 0 1px rgba(46,122,102,.10);
  transition: transform var(--t-base) var(--ease), background var(--t-base), color var(--t-base);
}
.ico svg { width: 34px; height: 34px; }
.ico svg .ac { color: var(--ico-ac); }
.ico--grasa { --ico-bg: #FDEAE3; --ico-fg: #B4553A; --ico-ac: var(--c-grasa); }
.ico--hueso { --ico-bg: #E8F0FB; --ico-fg: #2F5E96; --ico-ac: var(--c-esq); }
.ico--musc  { --ico-bg: #E6F7EB; --ico-fg: #2A7A46; --ico-ac: var(--c-mus); }
.ico--talla { --ico-bg: #FCF4D9; --ico-fg: #8A6A11; --ico-ac: var(--c-res); }
.ico--lg { width: 76px; height: 76px; border-radius: 24px; }
.ico--lg svg { width: 42px; height: 42px; }


/* --- Tarjeta de metodología con foto -------------------------- */
.mgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-5); }
.mcard {
  position: relative; display: flex; flex-direction: column; overflow: hidden;
  background: var(--white); border-radius: var(--r-lg);
  border: 1px solid var(--line);
  box-shadow: 0 2px 6px rgba(35,31,32,.04);
  transition: transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s var(--ease);
}
.mcard:hover { transform: translateY(-8px);
  box-shadow: 0 30px 60px rgba(35,31,32,.14), 0 8px 18px rgba(35,31,32,.06);
  border-color: transparent; }
/* Barra de color superior, distinta por tarjeta */
.mcard::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; z-index: 3;
  background: var(--mc, var(--marca));
  transform: scaleX(0); transform-origin: 0 50%;
  transition: transform .5s var(--ease);
}
.mcard.is-visible::before, .mcard:hover::before { transform: none; }

.mcard__foto { position: relative; aspect-ratio: 4/3; overflow: hidden; background: var(--paper-2); }
.mcard__foto img {
  width: 100%; height: 100%; object-fit: cover;
  transform: scale(1.04); transition: transform 1.1s var(--ease), filter .5s;
  filter: saturate(.95);
}
.mcard:hover .mcard__foto img { transform: scale(1.14); filter: saturate(1.05); }
.mcard__foto::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(35,31,32,0) 40%, rgba(35,31,32,.55) 100%);
}
/* Cifra grande sobre la foto */
.mcard__num {
  position: absolute; left: var(--sp-5); bottom: -6px; z-index: 2;
  font-family: var(--font-display); font-variation-settings: var(--soft);
  font-size: clamp(3.2rem, 5vw, 4.4rem); line-height: .85; font-weight: 700;
  color: var(--white); letter-spacing: -.04em;
  text-shadow: 0 6px 26px rgba(0,0,0,.45);
}
.mcard__ico {
  position: absolute; right: var(--sp-4); top: var(--sp-4); z-index: 2;
  width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center;
  background: rgba(255,255,255,.94); color: var(--mc, var(--brand-700));
  box-shadow: 0 6px 18px rgba(35,31,32,.18);
  transition: transform var(--t-base) var(--ease);
}
.mcard:hover .mcard__ico { transform: rotate(-6deg) scale(1.08); }
.mcard__ico svg { width: 28px; height: 28px; }

.mcard__body { padding: var(--sp-5) var(--sp-5) var(--sp-6); display: flex; flex-direction: column; gap: var(--sp-3); }
.mcard__body h3 { font-size: var(--fs-lg); color: var(--ink-900); letter-spacing: -.02em; }
.mcard__body p { font-size: var(--fs-sm); color: var(--ink-700); line-height: 1.6; }
.mcard__body p b { color: var(--ink-900); }

@media (max-width: 1000px) { .mgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .mgrid { grid-template-columns: 1fr; } }


/* --- Fichas de las 25 medidas (más contraste) ---------------- */
.measures { grid-template-columns: repeat(3, 1fr); }
.measure-item {
  position: relative; overflow: hidden;
  background: var(--white);
  border: 1px solid var(--line); border-left: 4px solid var(--mc, var(--brand-500));
  box-shadow: var(--sh-1);
}
.measure-item:hover { transform: translateY(-4px); border-color: var(--line);
  border-left-color: var(--mc, var(--brand-600)); box-shadow: var(--sh-2); }
.measure-item b { color: var(--mc, var(--brand-700)); font-size: clamp(1.7rem, 1.2rem + 1.6vw, 2.5rem); line-height: 1; }
.measure-item span { display: block; margin-top: 4px; color: var(--ink-700); font-weight: 500; }


/* --- Banda de cifras destacadas ------------------------------ */
.tira {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 1px; background: rgba(255,255,255,.22);
  border-radius: var(--r-lg); overflow: hidden;
}
.tira > div { background: transparent; padding: var(--sp-6) var(--sp-4); text-align: center; }
.tira b { display: block; font-family: var(--font-display); font-variation-settings: var(--soft);
  font-size: clamp(2rem, 1.4rem + 2vw, 3rem); line-height: 1; color: var(--white); }
.tira span { display: block; margin-top: var(--sp-2); font-size: var(--fs-sm); color: rgba(255,255,255,.78); }


/* --- Cabecera de landing con foto ---------------------------- */
.hero--foto { position: relative; }
.hero__grid {
  display: grid; grid-template-columns: 1.05fr .95fr;
  gap: clamp(1.5rem, 4vw, 4rem); align-items: center;
}
.hero__media {
  position: relative; border-radius: var(--r-xl); overflow: hidden;
  box-shadow: var(--sh-card); background: var(--white);
}
.hero__media img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4/5; }
.hero__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(160deg, rgba(102,202,177,.20), transparent 45%);
}
.hero__media--wide img { aspect-ratio: 16/10; }
/* Etiqueta flotante sobre la foto */
.hero__tag {
  position: absolute; left: var(--sp-5); bottom: var(--sp-5); z-index: 2;
  display: inline-flex; align-items: center; gap: var(--sp-2);
  background: rgba(255,255,255,.95); color: var(--ink-900);
  padding: .55rem .95rem; border-radius: var(--r-pill);
  font-size: var(--fs-xs); font-weight: 600; letter-spacing: .04em;
  box-shadow: 0 8px 24px rgba(35,31,32,.16);
}
.hero__tag i { width: 8px; height: 8px; border-radius: 50%; background: var(--marca); flex: none; }
@media (max-width: 860px) {
  .hero__grid { grid-template-columns: 1fr; }
  .hero__media img { aspect-ratio: 16/10; }
}


/* --- Timeline con más presencia ------------------------------ */
.timeline__dot { font-size: var(--fs-sm); font-weight: 700; }
.timeline__item.is-in .timeline__dot { transform: scale(1.08); box-shadow: 0 0 0 6px var(--brand-50); }
.timeline__item h3 { color: var(--ink-900); }
.timeline__item p { color: var(--ink-700); }
.timeline__fill { background: linear-gradient(180deg, var(--marca), var(--brand-700)); width: 3px; }


/* --- Tarjeta “próximamente” con más vida --------------------- */
.pronto {
  position: relative; overflow: hidden; text-align: center;
  border-radius: var(--r-xl); border: 1px solid var(--line);
  background: linear-gradient(180deg, var(--white) 0%, var(--brand-50) 100%);
  box-shadow: var(--sh-3); padding: clamp(2.25rem, 5vw, 3.75rem);
}
.pronto::before {
  content: ""; position: absolute; width: 380px; height: 380px; border-radius: 50%;
  background: var(--marca); filter: blur(120px); opacity: .28;
  top: -180px; right: -120px; pointer-events: none;
}
.pronto__pulso { position: relative; width: 84px; height: 84px; margin: 0 auto var(--sp-5); }
.pronto__pulso > span:not(.ico) {
  position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--marca);
  animation: pulso 2.8s var(--ease) infinite; opacity: 0;
}
.pronto__pulso > span:nth-child(2) { animation-delay: .9s; }
.pronto__pulso > span:nth-child(3) { animation-delay: 1.8s; }
.pronto__pulso .ico { position: absolute; inset: 10px; width: auto; height: auto; }
@keyframes pulso {
  0%   { transform: scale(.72); opacity: .65; }
  100% { transform: scale(1.35); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .pronto__pulso > span:not(.ico) { animation: none; opacity: 0; } }


/* --- Píldoras de contenido ----------------------------------- */
.pills { display: flex; flex-wrap: wrap; gap: var(--sp-3); }
.pill {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  padding: .5rem 1rem; border-radius: var(--r-pill);
  background: var(--white); border: 1px solid var(--line);
  font-size: var(--fs-sm); color: var(--ink-700); font-weight: 500;
  transition: border-color var(--t-base), transform var(--t-base) var(--ease), color var(--t-base);
}
.pill:hover { border-color: var(--brand-300); color: var(--brand-700); transform: translateY(-2px); }
.pill svg { width: 16px; height: 16px; color: var(--brand-600); }
.fondo--marca .pill { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.24); color: #fff; }
.fondo--marca .pill svg { color: var(--marca); }


/* --- Galería en mosaico -------------------------------------- */
.mosaico { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-4); }
.mosaico figure { position: relative; margin: 0; border-radius: var(--r-md); overflow: hidden; box-shadow: var(--sh-2); }
.mosaico img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 3/4;
  transition: transform .9s var(--ease); }
.mosaico figure:hover img { transform: scale(1.08); }
.mosaico figcaption {
  position: absolute; left: 0; right: 0; bottom: 0; padding: var(--sp-4);
  font-size: var(--fs-xs); font-weight: 600; letter-spacing: .04em; color: #fff;
  background: linear-gradient(180deg, transparent, rgba(35,31,32,.72));
}
.mosaico figure:nth-child(odd) { transform: translateY(var(--sp-5)); }
@media (max-width: 860px) { .mosaico { grid-template-columns: repeat(2, 1fr); }
  .mosaico figure:nth-child(odd) { transform: none; } }


/* --- Más contraste general ----------------------------------- */
.section__head p, .lead { color: var(--ink-700); }
.card p { color: var(--ink-700); }
.card { border-color: #DDE3E0; }
.eyebrow { color: var(--brand-700); font-weight: 600; }

/* --- Los 5 componentes --------------------------------------- */
.comp5 { display: grid; gap: var(--sp-4); }
.comp5__item { display: flex; align-items: flex-start; gap: var(--sp-4); }
.comp5__punto {
  flex: none; width: 16px; height: 16px; border-radius: 50%; margin-top: 4px;
  background: var(--mc); box-shadow: 0 0 0 5px color-mix(in srgb, var(--mc) 22%, transparent);
}
.comp5__item > div > b { display: block; color: var(--white); font-family: var(--font-display);
  font-variation-settings: var(--soft); font-size: var(--fs-lg); }
.comp5__item > div > span { display: block; font-size: var(--fs-sm); color: rgba(255,255,255,.66);
  margin-top: 3px; line-height: 1.6; }
.comp5__item > div > span b { display: inline; font-family: inherit; font-size: inherit;
  font-weight: 600; color: rgba(255,255,255,.92); }
.comp5__fig { margin: 0; position: relative; }
.comp5__fig img {
  width: 100%; max-width: 380px; margin-inline: auto; display: block;
  filter: drop-shadow(0 30px 60px rgba(0,0,0,.45));
  -webkit-mask-image: radial-gradient(68% 62% at 50% 45%, #000 62%, transparent 100%);
          mask-image: radial-gradient(68% 62% at 50% 45%, #000 62%, transparent 100%);
  animation: respira 9s ease-in-out infinite alternate;
}
@keyframes respira { from { transform: translateY(0) } to { transform: translateY(-14px) } }
@media (prefers-reduced-motion: reduce) { .comp5__fig img { animation: none; } }

/* El <nav> intermedio también debe estirarse */
.nav__inner > nav { flex: 0 1 auto; min-width: 0; display: flex; }

/* Encuadre de las fotos de metodología (originales verticales) */
.mcard__foto { aspect-ratio: 1/1; }
.mcard__foto img { object-position: var(--pos, 50% 42%); }
@media (max-width: 560px) { .mcard__foto { aspect-ratio: 16/10; } }

/* Los bloques blancos dentro de una banda de marca conservan su color */
.fondo--marca .letter, .fondo--marca .card, .fondo--marca .price, .fondo--marca .comp {
  color: var(--ink-700);
}
.fondo--marca .letter p, .fondo--marca .card p, .fondo--marca .price p { color: var(--ink-700); }
.fondo--marca .letter h2, .fondo--marca .letter h3,
.fondo--marca .card h2, .fondo--marca .card h3 { color: var(--ink-900); }
.fondo--marca .letter b, .fondo--marca .letter strong,
.fondo--marca .card b, .fondo--marca .card strong { color: var(--ink-900); }
.fondo--marca .letter .eyebrow, .fondo--marca .card .eyebrow { color: var(--brand-700); }

/* El icono de la tarjeta usa un tono legible, no el pastel de la barra */
.mcard__ico { color: var(--mci, var(--brand-700)); }

/* Titular del hero, 2 puntos más pequeño */
.hero h1 { font-size: calc(var(--fs-4xl) - 2px); }
.hero--page h1 { font-size: calc(var(--fs-3xl) - 2px); }


/* =============================================================
   14. BLOQUE DE LA APP ENFA®
   ============================================================= */
.app-showcase {
  position: relative; overflow: hidden;
  background: var(--white); border: 1px solid var(--line);
  border-radius: clamp(20px, 2.4vw, 34px);
  box-shadow: 0 30px 70px rgba(35,31,32,.09), 0 4px 14px rgba(35,31,32,.04);
  display: grid; grid-template-columns: 1.08fr .92fr;
  gap: clamp(1.5rem, 3vw, 3.5rem); align-items: center;
  padding: clamp(1.5rem, 3vw, 3rem);
}
.app-showcase__media { position: relative; }
/* Marco de navegador */
.ventana {
  border-radius: 14px; overflow: hidden; background: #F3F5F4;
  border: 1px solid #DDE3E0;
  box-shadow: 0 24px 54px rgba(35,31,32,.20), 0 4px 12px rgba(35,31,32,.08);
  transition: transform .6s var(--ease);
}
.app-showcase:hover .ventana { transform: translateY(-6px); }
.ventana__barra {
  display: flex; align-items: center; gap: 6px;
  padding: 9px 12px; background: #E9EDEB; border-bottom: 1px solid #DDE3E0;
}
.ventana__barra i { width: 9px; height: 9px; border-radius: 50%; background: #C6CDC9; flex: none; }
.ventana__barra i:nth-child(1) { background: #E8837A; }
.ventana__barra i:nth-child(2) { background: #E9C46A; }
.ventana__barra i:nth-child(3) { background: #7BC49A; }
.ventana__barra span {
  margin-left: 8px; font-size: 11px; color: var(--ink-300);
  background: var(--white); border-radius: var(--r-pill); padding: 3px 12px;
  letter-spacing: .02em;
}
.ventana img { width: 100%; display: block; background: var(--white); }

.app-showcase__txt h2 { font-size: var(--fs-2xl); margin-bottom: var(--sp-4); }
.app-showcase__txt p { color: var(--ink-700); }
.app-showcase__txt .btn { padding: .85rem 1.45rem; font-size: .95rem; }
.app-mini { display: grid; gap: var(--sp-3); margin-top: var(--sp-6); }
.app-mini > div {
  display: flex; align-items: flex-start; gap: var(--sp-4);
  background: var(--paper-2); border-radius: var(--r-md); padding: var(--sp-4) var(--sp-5);
  transition: background var(--t-base);
}
.app-mini > div:hover { background: var(--brand-50); }
.app-mini .ico { width: 40px; height: 40px; border-radius: 13px; flex: none; }
.app-mini .ico svg { width: 21px; height: 21px; }
.app-mini b { display: block; font-family: var(--font-body); font-size: var(--fs-sm);
  font-weight: 600; color: var(--ink-900); margin-bottom: 2px; }
.app-mini > div > span:last-child { display: block; font-size: var(--fs-sm);
  color: var(--ink-500); line-height: 1.5; }
@media (max-width: 900px) { .app-showcase { grid-template-columns: 1fr; } }

/* --- Flujo de 3 pasos con miniaturas ------------------------- */
.flujo {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start;
  position: relative;
}
.paso { position: relative; text-align: center; }
.paso__shot {
  border-radius: 14px; overflow: hidden; background: var(--white);
  border: 1px solid var(--line);
  box-shadow: 0 18px 40px rgba(35,31,32,.12), 0 2px 6px rgba(35,31,32,.05);
  aspect-ratio: 4/3; display: grid; place-items: center;
  transition: transform .5s var(--ease), box-shadow .5s var(--ease);
}
.paso:hover .paso__shot { transform: translateY(-8px);
  box-shadow: 0 30px 60px rgba(35,31,32,.18); }
.paso__shot { padding: 10px; background: var(--white); }
.paso__shot img { width: 100%; height: 100%; object-fit: contain; border-radius: 6px; }
.paso__n {
  display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%;
  background: var(--brand-700); color: var(--white);
  font-size: var(--fs-xs); font-weight: 700; margin: var(--sp-5) 0 var(--sp-3);
}
.paso h3 { font-size: var(--fs-lg); margin-bottom: var(--sp-2); }
.paso p { font-size: var(--fs-sm); color: var(--ink-500); max-width: 30ch; margin-inline: auto; }
/* Flecha punteada entre pasos */
.paso__flecha {
  position: absolute; top: 30%; right: calc(-1 * clamp(1.5rem, 4vw, 3.5rem) - 6px);
  width: clamp(1.5rem, 4vw, 3.5rem); height: 40px; color: var(--brand-300);
  pointer-events: none;
}
.paso__flecha svg { width: 100%; height: 100%; }
@media (max-width: 860px) {
  .flujo { grid-template-columns: 1fr; }
  .paso__flecha { display: none; }
}

/* --- Ajustes de la barra flotante ---------------------------- */
.nav__inner > nav { min-width: 0; }
/* En móvil el panel desplegable cuelga de la píldora */
@media (max-width: 1000px) {
  .nav__menu {
    top: calc(var(--nav-bar) + clamp(10px, 1.4vw, 18px));
    height: calc(100dvh - var(--nav-h));
    border-top: 1px solid var(--line);
  }
  .nav__logo img { height: 42px; }
}

/* Titular del hero: 4 px menos y subtítulo en dos frases sin cortes */
.hero h1 { font-size: calc(var(--fs-4xl) - 4px); }
.hero--page h1 { font-size: calc(var(--fs-3xl) - 4px); }
.hero .lead, .hero--page .lead {
  max-width: 54ch; text-wrap: pretty; overflow-wrap: normal; hyphens: manual;
  font-size: clamp(1.02rem, .96rem + .32vw, 1.18rem); line-height: 1.6;
}
.hero__grid .lead { max-width: 46ch; }

/* --- Flechas del flujo, mucho más visibles ------------------- */
.paso__flecha {
  top: 34%; height: 54px; color: var(--brand-500);
  right: calc(-1 * clamp(1.5rem, 4vw, 3.5rem) - 2px);
  width: clamp(1.75rem, 4.4vw, 3.9rem);
  opacity: .95;
}
.paso__flecha svg { overflow: visible; }
.paso__flecha svg path { stroke-width: 2.6; }

/* Las capturas del flujo se ven enteras */
.paso__shot { aspect-ratio: 1/1; padding: 14px; }
.paso__shot img { object-position: center; }

/* La miniatura del paso ocupa exactamente su marco, sin recortes */
.paso__shot { display: block; position: relative; place-items: initial; }
.paso__shot img {
  position: absolute; inset: 12px;
  width: calc(100% - 24px); height: calc(100% - 24px);
  object-fit: contain; object-position: center;
}

/* Flechas del flujo: trazo más marcado */
.paso__flecha { color: var(--brand-600); opacity: 1; top: 30%; height: 60px; }
.paso__flecha svg path { stroke-width: 3.2; stroke-dasharray: 6 8; }
.paso__flecha svg path + path { stroke-dasharray: none; }

/* Panel móvil: tarjeta flotante a juego con la píldora */
@media (max-width: 1000px) {
  .nav__menu {
    left: clamp(.75rem, 2vw, 1.5rem); right: clamp(.75rem, 2vw, 1.5rem);
    top: calc(var(--nav-bar) + clamp(10px, 1.4vw, 18px) + 10px);
    height: auto; max-height: calc(100dvh - var(--nav-h) - 24px);
    background: #FFFFFF;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    box-shadow: 0 22px 54px rgba(35,31,32,.16), 0 3px 10px rgba(35,31,32,.06);
    padding: var(--sp-4) var(--sp-5) var(--sp-6);
    transform: translateY(-14px) scale(.98); opacity: 0; visibility: hidden;
    transition: transform .35s var(--ease), opacity .28s var(--ease), visibility .35s;
  }
  .nav__menu.is-open { transform: none; opacity: 1; visibility: visible; }
}

/* Sin barra de color sobre las tarjetas de metodología */
.mcard::before { display: none; }

/* --- Nota de teoría bajo los 5 componentes ------------------- */
.nota-teoria {
  display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(1.5rem, 4vw, 3.5rem);
  margin-top: clamp(3rem, 6vw, 4.5rem); padding-top: clamp(2rem, 4vw, 3rem);
  border-top: 1px solid rgba(255,255,255,.14);
}
.nota-teoria p { color: rgba(255,255,255,.72); font-size: var(--fs-sm); line-height: 1.7; }
.reserva { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); margin-top: var(--sp-5); }
.reserva > div {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--r-md); padding: var(--sp-5);
}
.reserva b { display: block; font-family: var(--font-display); font-variation-settings: var(--soft);
  font-size: var(--fs-lg); color: var(--white); }
.reserva span { display: block; font-size: var(--fs-xs); color: rgba(255,255,255,.6); margin-top: 4px; }
.reserva i { display: block; font-style: normal; margin-top: var(--sp-3);
  font-size: var(--fs-sm); font-weight: 600; color: var(--marca); font-variant-numeric: tabular-nums; }
@media (max-width: 860px) {
  .nota-teoria { grid-template-columns: 1fr; }
  .reserva { grid-template-columns: 1fr; }
}

/* --- Barra: logo mayor y fondo más blanco -------------------- */
:root { --nav-h: 100px; --nav-bar: 72px; }
.nav__logo img { height: 56px; }
.nav__inner { background: rgba(255,255,255,.93); border-color: rgba(255,255,255,.95); }
.nav.is-stuck .nav__inner { background: rgba(255,255,255,.985); }
@media (max-width: 1000px) { .nav__logo img { height: 48px; } }

/* El titular del hero de la home, al mismo tamaño que el resto */
.hero h1 { font-size: calc(var(--fs-3xl) - 4px); }

/* Flecha del flujo: curva punteada + punta limpia */
.paso__flecha svg path { stroke-width: 3; }
.paso__flecha svg path:first-child { stroke-dasharray: 7 9; }
.paso__flecha svg path:last-child { stroke-dasharray: none; stroke-width: 3.2; }
/* Marcos del flujo un poco más grandes para que se lea la app */
.paso__shot { aspect-ratio: 4/3.1; padding: 10px; }
.paso__shot img { inset: 10px; width: calc(100% - 20px); height: calc(100% - 20px);
  image-rendering: -webkit-optimize-contrast; }

/* Texto de cabecera legible sobre fondos oscuros o de marca */
.section--ink .section__head p,
.section--ink .lead,
.fondo--marca .section__head p,
.fondo--marca .lead { color: rgba(255,255,255,.82); }
.section--ink p { color: rgba(255,255,255,.78); }

/* =============================================================
   15. BOTONES — forma compacta tipo píldora
   Primario: sólido, texto corto en seminegrita y flecha.
   Secundario: blanco con punto de marca, sin flecha.
   ============================================================= */
.btn {
  padding: .72rem 1.45rem;
  font-size: 14px; font-weight: 600; letter-spacing: .005em;
  border-radius: var(--r-pill); gap: var(--sp-2);
}
.btn--lg { padding: .88rem 1.8rem; font-size: 15px; }
.btn--sm { padding: .52rem 1.05rem; font-size: 13px; }
.nav__cta { padding: .5rem 1.15rem; font-size: 13px; }
.btn--block { width: 100%; }

.btn--primary { box-shadow: 0 4px 14px rgba(35,31,32,.14); }
.btn--primary:hover { box-shadow: 0 10px 26px rgba(35,31,32,.20); }
.btn .arrow { font-size: 1.05em; }

/* Secundario: punto de marca delante, sin flecha */
.btn--ghost {
  background: var(--white); color: var(--ink-700);
  border-color: var(--line); box-shadow: 0 1px 2px rgba(35,31,32,.05);
}
.btn--ghost::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%;
  background: var(--marca); flex: none; margin-right: 2px;
  transition: background var(--t-base);
}
.btn--ghost:hover { color: var(--ink-900); border-color: var(--ink-200); }
.btn--ghost:hover::before { background: var(--brand-600); }
.btn--ghost .arrow { display: none; }

.section--ink .btn--ghost, .fondo--marca .btn--ghost, .cta .btn--ghost {
  background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.24);
}
.section--ink .btn--ghost::before, .fondo--marca .btn--ghost::before, .cta .btn--ghost::before {
  background: var(--marca);
}
.btn--link { padding: 0; border: 0; background: none; box-shadow: none; }
.btn--link::before { display: none; }

/* --- Flujo escalonado, flechas alternas (una baja, otra alta) -- */
.flujo { align-items: start; }
.paso:nth-child(2) { margin-top: clamp(1.75rem, 4.5vw, 4rem); }
.paso__flecha {
  position: absolute; z-index: 3; pointer-events: none;
  color: var(--brand-500); opacity: 1;
  width: calc(clamp(1.5rem, 4vw, 3.5rem) + 34px);
  right: calc(-1 * clamp(1.5rem, 4vw, 3.5rem) - 17px);
  height: 56px; top: auto;
}
.paso__flecha--baja { top: 58%; }
.paso__flecha--sube { top: -6%; }
.paso__flecha svg { width: 100%; height: 100%; overflow: visible; }
.paso__flecha svg path { stroke-width: 3; }
.paso__flecha svg path:last-child { stroke-dasharray: none; stroke-width: 3.2; }
@media (max-width: 860px) {
  .paso:nth-child(2) { margin-top: 0; }
}

/* Los enlaces legales del pie, todos a la misma altura */
.footer__bottom li, .footer__bottom li + li { margin: 0; }
.footer__bottom ul { align-items: center; }

/* --- Bloques de argumento (landing del curso) ---------------- */
.claim {
  position: relative; overflow: hidden;
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: clamp(1.75rem, 3.5vw, 2.75rem);
  box-shadow: var(--sh-1);
  transition: transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s;
}
.claim::before {
  content: ""; position: absolute; width: 260px; height: 260px; border-radius: 50%;
  background: var(--marca); filter: blur(90px); opacity: .16;
  top: -140px; right: -90px; transition: opacity .5s;
}
.claim:hover { transform: translateY(-6px); border-color: transparent;
  box-shadow: 0 28px 58px rgba(35,31,32,.12), 0 6px 14px rgba(35,31,32,.05); }
.claim:hover::before { opacity: .3; }
.claim > * { position: relative; z-index: 1; }
.claim .ico { margin-bottom: var(--sp-5); }
.claim .ico--ciencia { --ico-bg: #E8F0FB; --ico-fg: #2F5E96; }
.claim h3 { font-size: var(--fs-xl); margin-bottom: var(--sp-3); }
.claim p { color: var(--ink-700); line-height: 1.7; }

/* --- Marco de vídeo ------------------------------------------ */
.video-marco {
  position: relative; border-radius: var(--r-xl); overflow: hidden;
  background: var(--ink-900);
  box-shadow: 0 34px 74px rgba(35,31,32,.20), 0 6px 16px rgba(35,31,32,.08);
  max-width: 960px; margin-inline: auto;
  transition: transform .5s var(--ease);
}
.video-marco:hover { transform: translateY(-4px); }
.video-marco video { display: block; width: 100%; height: auto; aspect-ratio: 16/9; background: #000; }
.eyebrow svg { width: 15px; height: 15px; }

/* --- Flujo: aparición encadenada tarjeta → flecha → tarjeta --- */
.flujo[data-reveal] { opacity: 1; transform: none; transition: none; }
.flujo .paso { opacity: 0; transform: translateY(28px); }
.flujo .paso__flecha { clip-path: inset(0 100% 0 0); }

@keyframes surge { to { opacity: 1; transform: none; } }
@keyframes dibuja { to { clip-path: inset(0 -12% 0 0); } }

.flujo.is-visible .paso { animation: surge .7s var(--ease) forwards; }
.flujo.is-visible .paso:nth-child(1) { animation-delay: 0s; }
.flujo.is-visible .paso:nth-child(2) { animation-delay: .85s; }
.flujo.is-visible .paso:nth-child(3) { animation-delay: 1.7s; }

.flujo.is-visible .paso__flecha { animation: dibuja .75s var(--ease) forwards; }
.flujo.is-visible .paso:nth-child(1) .paso__flecha { animation-delay: .45s; }
.flujo.is-visible .paso:nth-child(2) .paso__flecha { animation-delay: 1.3s; }

@media (prefers-reduced-motion: reduce) {
  .flujo .paso { opacity: 1; transform: none; }
  .flujo .paso__flecha { clip-path: none; }
}

/* --- Tarjeta de requisito numerada --------------------------- */
.requisito {
  position: relative; overflow: hidden;
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: var(--sp-6);
  box-shadow: var(--sh-1);
  transition: transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s;
}
.requisito::after {
  content: ""; position: absolute; inset: auto -40px -50px auto;
  width: 180px; height: 180px; border-radius: 50%;
  background: var(--marca); filter: blur(70px); opacity: .12; transition: opacity .5s;
}
.requisito:hover { transform: translateY(-7px); border-color: transparent;
  box-shadow: 0 28px 58px rgba(35,31,32,.13), 0 6px 14px rgba(35,31,32,.05); }
.requisito:hover::after { opacity: .28; }
.requisito > * { position: relative; z-index: 1; }
.requisito__n {
  display: block; font-family: var(--font-display); font-variation-settings: var(--soft);
  font-size: var(--fs-2xl); font-weight: 700; line-height: 1;
  color: var(--brand-300); letter-spacing: -.03em; margin-bottom: var(--sp-4);
  transition: color .4s;
}
.requisito:hover .requisito__n { color: var(--brand-600); }
.requisito .ico { width: 46px; height: 46px; border-radius: 15px; margin-bottom: var(--sp-4); }
.requisito .ico svg { width: 25px; height: 25px; }
.requisito h3 { font-size: var(--fs-lg); margin-bottom: var(--sp-3); }
.requisito p { font-size: var(--fs-sm); color: var(--ink-700); line-height: 1.6; }

/* Ficha de persona con más vida */
.person.card { transition: transform .45s var(--ease), box-shadow .45s var(--ease); }
.person.card:hover { transform: translateY(-6px); }
.person img { transition: transform .5s var(--ease); box-shadow: 0 10px 26px rgba(35,31,32,.14); }
.person.card:hover img { transform: scale(1.06); }

/* --- Lista de destino (telegram) ----------------------------- */
.destino { display: grid; gap: var(--sp-4); margin-top: var(--sp-5); }
.destino li {
  display: flex; align-items: flex-start; gap: var(--sp-4);
  background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.16);
  border-radius: var(--r-md); padding: var(--sp-5);
  transition: background .4s, transform .4s var(--ease);
}
.destino li:hover { background: rgba(255,255,255,.16); transform: translateX(5px); }
.destino .ico { width: 42px; height: 42px; border-radius: 14px; flex: none;
  background: rgba(255,255,255,.16); color: #fff; box-shadow: none; }
.destino .ico svg { width: 22px; height: 22px; }
.destino b { display: block; color: var(--white); font-family: var(--font-body);
  font-size: var(--fs-sm); font-weight: 600; margin-bottom: 3px; }
.destino span:last-child { display: block; font-size: var(--fs-sm);
  color: rgba(255,255,255,.7); line-height: 1.55; }

/* Antetítulos legibles sobre la banda de marca */
.fondo--marca .eyebrow { color: rgba(255,255,255,.9); }

/* --- Itinerario en tarjetas (certificación) ------------------ */
.timeline--tarjetas { padding-left: clamp(2.75rem, 5vw, 3.5rem); }
.timeline--tarjetas::before,
.timeline--tarjetas .timeline__fill { left: 19px; }
.timeline--tarjetas .timeline__item {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: var(--sp-6) var(--sp-6) var(--sp-6);
  box-shadow: var(--sh-1); margin-bottom: var(--sp-5); padding-bottom: var(--sp-6);
  transition: transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s;
}
.timeline--tarjetas .timeline__item:last-child { margin-bottom: 0; }
.timeline--tarjetas .timeline__item:hover {
  transform: translateX(6px); border-color: transparent;
  box-shadow: 0 24px 52px rgba(35,31,32,.12), 0 5px 12px rgba(35,31,32,.05);
}
.timeline--tarjetas .timeline__dot {
  left: calc(-1 * clamp(2.75rem, 5vw, 3.5rem) - 3px); top: var(--sp-6);
  width: 40px; height: 40px; font-size: var(--fs-sm); font-weight: 700;
  background: var(--white); border: 2px solid var(--brand-300); color: var(--brand-700);
}
.timeline--tarjetas .timeline__item.is-in .timeline__dot {
  background: var(--brand-700); border-color: var(--brand-700); color: #fff;
  box-shadow: 0 0 0 7px var(--brand-50);
}
.timeline__ico {
  width: 44px; height: 44px; border-radius: 14px; margin-bottom: var(--sp-4);
}
.timeline__ico svg { width: 24px; height: 24px; }
.timeline--tarjetas .timeline__item p { max-width: none; }
@media (max-width: 620px) {
  .timeline--tarjetas { padding-left: 0; }
  .timeline--tarjetas::before, .timeline--tarjetas .timeline__fill { display: none; }
  .timeline--tarjetas .timeline__dot { position: static; margin-bottom: var(--sp-4); }
}

/* La animación de opacidad crea contexto de apilado en cada .paso:
   sin esto, la tarjeta siguiente tapa la punta de la flecha. */
.flujo .paso { position: relative; }
.flujo .paso:nth-child(1) { z-index: 5; }
.flujo .paso:nth-child(2) { z-index: 4; }
.flujo .paso:nth-child(3) { z-index: 3; }

/* --- Pila de pantallas de la app (acceso → panel) ------------- */
.app-pila { position: relative; padding-bottom: 17%; }

.app-pila__acceso {
  position: absolute; left: -5%; bottom: 0; width: 40%; z-index: 3;
  transform: rotate(-2.5deg); transition: transform .6s var(--ease);
}
.app-showcase:hover .app-pila__acceso { transform: rotate(-1deg) translateY(-7px); }
.app-pila .ventana--acceso {
  box-shadow: 0 30px 62px rgba(35,31,32,.26), 0 6px 16px rgba(35,31,32,.10);
}
.app-pila .ventana--acceso .ventana__barra { padding: 6px 9px; }
.app-pila .ventana--acceso .ventana__barra i { width: 6px; height: 6px; }
.app-pila .ventana--acceso img { aspect-ratio: 76/86; object-fit: cover; object-position: top center; }

.app-pila__tag {
  position: absolute; z-index: 6; white-space: nowrap;
  display: inline-flex; align-items: center;
  background: var(--ink-900); color: #fff;
  padding: .38rem .8rem; border-radius: var(--r-pill);
  font-size: 11px; font-weight: 600; letter-spacing: .02em;
  box-shadow: 0 8px 20px rgba(35,31,32,.24);
  left: 50%; top: -13px; transform: translateX(-50%);
}
.app-pila__tag--der {
  background: var(--brand-700); left: auto; right: 10px; top: auto;
  bottom: calc(17% - 13px); transform: none;
}

.app-pila__flecha {
  position: absolute; z-index: 5; left: 36%; bottom: 9%;
  width: clamp(58px, 8vw, 96px); height: clamp(44px, 6vw, 72px);
  color: var(--brand-600); pointer-events: none;
}
.app-pila__flecha svg { width: 100%; height: 100%; overflow: visible; }

@media (max-width: 900px) {
  .app-pila { padding-bottom: 22%; }
  .app-pila__acceso { width: 46%; left: -2%; }
}
@media (max-width: 520px) {
  .app-pila { padding-bottom: 0; }
  .app-pila__acceso { position: static; width: 76%; margin: var(--sp-7) auto 0; transform: none; }
  .app-pila__flecha, .app-pila__tag { display: none; }
}

/* --- Las 4 condiciones de la OMS: más peso y entrada una a una -- */
.condiciones {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: clamp(.75rem, 1.6vw, 1.25rem);
  margin-top: clamp(2rem, 4vw, 3rem);
}
.condicion {
  display: flex; flex-direction: column; align-items: center; gap: var(--sp-3);
  text-align: center; padding: var(--sp-6) var(--sp-4);
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.26);
  border-radius: var(--r-lg);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  transition: transform .5s var(--ease), background .5s, border-color .5s, box-shadow .5s;
}
.condicion:hover {
  transform: translateY(-8px);
  background: rgba(255,255,255,.22); border-color: rgba(255,255,255,.5);
  box-shadow: 0 20px 44px rgba(0,0,0,.18);
}
.condicion__ico {
  width: 58px; height: 58px; border-radius: 18px; display: grid; place-items: center;
  background: rgba(255,255,255,.9); color: var(--brand-700);
  box-shadow: 0 8px 22px rgba(0,0,0,.14);
  transition: transform .5s var(--ease);
}
.condicion:hover .condicion__ico { transform: scale(1.08) rotate(-5deg); }
.condicion__ico svg { width: 30px; height: 30px; }
.condicion b {
  color: #fff; font-family: var(--font-display); font-variation-settings: var(--soft);
  font-size: clamp(1.02rem, .92rem + .45vw, 1.3rem); font-weight: 600;
  letter-spacing: -.01em; line-height: 1.25;
}
@media (max-width: 860px) { .condiciones { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .condiciones { grid-template-columns: 1fr; } }
/* El bloque de condiciones respira más ancho que el texto */
/* Sale del contenedor estrecho pero queda centrado en la página */
.condiciones { width: min(1060px, 92vw); margin-left: 50%; transform: translateX(-50%); }

/* --- Menú móvil: el submenú se desplazaba fuera de pantalla --- */
@media (max-width: 1000px) {
  .nav__sub { transform: none !important; left: auto; right: auto; min-width: 0; width: 100%; }
  .nav__item.is-open > .nav__sub { transform: none !important; }
  .nav__sub::before, .nav__sub::after { display: none; }
  .nav__sub a { padding: .7rem .2rem; }
  .nav__sub a b { font-size: 14px; line-height: 1.4; }
  .nav__menu { overflow-y: auto; -webkit-overflow-scrolling: touch; }
  .nav__item.is-open > .nav__sub { max-height: 420px; }
  .nav__link { letter-spacing: .05em; }
}

/* Velo detrás del panel móvil, para que no se vea la página al lado */
@media (max-width: 1000px) {
  .nav:has(.nav__menu.is-open)::after {
    content: ""; position: fixed; inset: 0; z-index: -1;
    background: rgba(35,31,32,.42);
    backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
  }
}
