/* Landing de conversión — promo partner (esqueleto reutilizable).
   Sin nav, sin salidas del sitio salvo el CTA — página de un único
   objetivo: llevar al flujo de alta con el cupón/campaña del partner. */

body {
    background-color: var(--color-bg-warm, #F4F3F0);
    font-family: var(--font-body);
    color: var(--color-text, #2A2822);
    margin: 0;
}

/* El tema global fuerza `main { grid-column: 2; }` (grid de ancho de
   contenido de WordPress full-site-editing, style.css) — sin esto el
   <main> y todos los fondos de sus secciones quedan encajados en la
   columna central en vez de ocupar el 100% del viewport. */
.promo-main {
    grid-column: 1 / -1;
}

.promo-section-eyebrow {
    display: inline-block;
    background-color: var(--color-primary-30);
    color: var(--color-neutral-800);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 6px 18px;
    border-radius: 30px;
    margin-bottom: 16px;
}
.promo-section-eyebrow--dark {
    background-color: rgba(255,255,255,0.1);
    color: var(--color-neutral-50);
}

/* HEADER — co-marca, sin navegación */
.promo-header {
    background: var(--color-neutral-50);
    border-bottom: 1px solid var(--color-border);
    padding: 20px 24px;
}
.promo-header__inner {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 16px;
}
.promo-header__logo img {
    width: 140px;
    height: 17px;
    display: block;
}
.promo-header__x {
    color: var(--color-neutral-500);
    font-size: 18px;
}
.promo-header__partner img {
    display: block;
    height: 34px;
    width: auto;
}

/* HERO */
.promo-hero {
    background: radial-gradient(ellipse 80% 60% at 15% 0%, var(--color-primary-30) 0%, transparent 60%),
                radial-gradient(ellipse 60% 50% at 100% 20%, rgba(15,61,62,0.06) 0%, transparent 60%);
    padding: 72px 24px 64px;
}
.promo-hero__grid {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 56px;
    align-items: center;
}
.promo-hero__eyebrow {
    display: block;
    color: #2A2822;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 16px;
}
.promo-hero__title {
    font-family: var(--font-heading);
    font-size: clamp(30px, 4vw, 46px);
    font-weight: 800;
    color: var(--color-neutral-900);
    line-height: 1.15;
    margin: 0 0 20px 0;
}
.promo-hero__title span {
    color: var(--color-brand);
}
.promo-hero__subtitle {
    font-size: 17px;
    line-height: 1.6;
    color: var(--color-text-muted);
    max-width: 480px;
    margin: 0 0 32px;
}
.promo-hero__cta {
    font-size: 16px;
    font-weight: 700;
}
.promo-hero__disclaimer {
    margin: 16px 0 0;
    font-size: 13px;
    color: var(--color-text-light);
}
.promo-hero__media {
    position: relative;
}
.promo-hero__media img {
    width: 100%;
    aspect-ratio: 560 / 620;
    object-fit: cover;
    border-radius: var(--radius-xl, 24px);
    background-color: var(--color-neutral-200);
    box-shadow: 0 20px 50px rgba(29,27,22,0.1);
}
.promo-hero__badge {
    position: absolute;
    left: -20px;
    bottom: 28px;
    background: var(--color-neutral-50);
    border-radius: var(--radius-lg, 16px);
    box-shadow: 0 12px 30px rgba(29,27,22,0.12);
    padding: 14px 20px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 700;
    color: var(--color-neutral-900);
}
.promo-hero__badge svg {
    width: 22px;
    height: 22px;
    color: #0F3D3E;
    flex-shrink: 0;
}

/* NO ES UNA DIETA — banner médico */
.promo-medical {
    background-color: var(--color-primary-30);
    padding: 40px 24px;
}
.promo-medical__inner {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}
.promo-medical__copy {
    display: flex;
    align-items: center;
    gap: 20px;
    flex: 1;
    min-width: 0;
}
.promo-medical__icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background-color: var(--color-neutral-50);
    color: var(--color-brand);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.promo-medical__icon svg {
    width: 24px;
    height: 24px;
}
.promo-medical__copy h2 {
    font-family: var(--font-heading);
    font-size: 19px;
    font-weight: 800;
    color: var(--color-neutral-900);
    margin: 0 0 6px 0;
}
.promo-medical__copy p {
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--color-text-muted);
    margin: 0;
}
.promo-medical__team {
    display: flex;
    gap: 18px;
    flex-shrink: 0;
}
.promo-medical__member {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}
.promo-medical__member img {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--color-neutral-50);
    box-shadow: 0 2px 8px rgba(29,27,22,0.1);
}
.promo-medical__member-rol {
    font-size: 11px;
    font-weight: 700;
    color: var(--color-brand-dark);
    text-align: center;
    white-space: nowrap;
}

/* STEPS */
.promo-steps {
    background: var(--color-neutral-50);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 56px 24px;
}
.promo-steps__grid {
    max-width: 960px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}
.promo-step {
    text-align: left;
}
.promo-step__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: var(--color-brand);
    color: var(--color-neutral-50);
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 14px;
    margin-bottom: 16px;
}
.promo-step h3 {
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 800;
    color: var(--color-neutral-900);
    margin: 0 0 8px 0;
}
.promo-step p {
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--color-text-muted);
    margin: 0;
}

/* EN QUÉ CONSISTE */
.promo-consiste {
    padding: 72px 24px;
}
.promo-consiste__inner {
    max-width: 1000px;
    margin: 0 auto;
    text-align: center;
}
.promo-consiste h2 {
    font-family: var(--font-heading);
    font-size: clamp(26px, 3vw, 34px);
    font-weight: 800;
    color: var(--color-neutral-900);
    margin: 0 0 16px 0;
}
.promo-consiste__intro {
    max-width: 620px;
    margin: 0 auto 48px;
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-text-muted);
}
.promo-consiste__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    text-align: left;
}
.promo-feature {
    background: var(--color-neutral-50);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg, 16px);
    padding: 28px 22px;
}
.promo-feature__icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background-color: var(--color-primary-30);
    color: var(--color-brand);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}
.promo-feature__icon svg {
    width: 22px;
    height: 22px;
}
.promo-feature h3 {
    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: 800;
    color: var(--color-neutral-900);
    margin: 0 0 8px 0;
}
.promo-feature p {
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--color-text-muted);
    margin: 0;
}

/* TESTIMONIOS */
.promo-testimonios {
    background: var(--color-neutral-50);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 72px 24px;
}
.promo-testimonios__inner {
    max-width: 1000px;
    margin: 0 auto;
    text-align: center;
}
.promo-testimonios h2 {
    font-family: var(--font-heading);
    font-size: clamp(24px, 3vw, 30px);
    font-weight: 800;
    color: var(--color-neutral-900);
    margin: 0 0 48px 0;
}
.promo-testimonios__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    text-align: left;
}
.promo-testimonio {
    background: var(--color-bg-warm);
    border-radius: var(--radius-lg, 16px);
    padding: 28px 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.promo-testimonio__stars {
    color: #E5A93B;
    letter-spacing: 2px;
    font-size: 14px;
}
.promo-testimonio__texto {
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--color-text);
    margin: 0;
    flex-grow: 1;
}
.promo-testimonio__autor {
    display: flex;
    align-items: center;
    gap: 12px;
}
.promo-testimonio__autor img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    background-color: var(--color-neutral-200);
    flex-shrink: 0;
}
.promo-testimonio__autor div {
    display: flex;
    flex-direction: column;
}
.promo-testimonio__autor strong {
    font-size: 14px;
    color: var(--color-neutral-900);
}
.promo-testimonio__autor span {
    font-size: 12.5px;
    color: var(--color-text-light);
}

/* FAQ */
.promo-faq {
    padding: 72px 24px;
}
.promo-faq__inner {
    max-width: 760px;
    margin: 0 auto;
    text-align: center;
}
.promo-faq h2 {
    font-family: var(--font-heading);
    font-size: clamp(24px, 3vw, 30px);
    font-weight: 800;
    color: var(--color-neutral-900);
    margin: 0 0 40px 0;
}
.promo-faq__list {
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.promo-faq__item {
    background: var(--color-neutral-50);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 12px);
    padding: 4px 22px;
}
.promo-faq__item summary {
    cursor: pointer;
    list-style: none;
    padding: 18px 28px 18px 0;
    font-weight: 700;
    font-size: 15px;
    color: var(--color-neutral-900);
    position: relative;
}
.promo-faq__item summary::-webkit-details-marker {
    display: none;
}
.promo-faq__item summary::after {
    content: '+';
    position: absolute;
    right: 0;
    top: 16px;
    font-size: 20px;
    font-weight: 700;
    color: var(--color-brand);
    transition: transform var(--transition-fast, 0.2s ease);
}
.promo-faq__item[open] summary::after {
    transform: rotate(45deg);
}
.promo-faq__item p {
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--color-text-muted);
    margin: 0 0 20px 0;
}

/* LEGAL / CONDICIONES */
.promo-legal {
    background-color: var(--color-primary-150);
    padding: 72px 24px;
    color: var(--color-neutral-50);
}
.promo-legal__inner {
    max-width: 1000px;
    margin: 0 auto;
    text-align: center;
}
.promo-legal h2 {
    font-family: var(--font-heading);
    font-size: clamp(24px, 3vw, 30px);
    font-weight: 800;
    color: var(--color-neutral-50);
    margin: 0 0 48px 0;
}
.promo-legal__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    text-align: left;
    margin-bottom: 40px;
}
.promo-legal__item {
    display: flex;
    gap: 14px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: var(--radius-lg, 16px);
    padding: 24px;
}
.promo-legal__icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: rgba(255,255,255,0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--color-neutral-50);
}
.promo-legal__icon svg {
    width: 18px;
    height: 18px;
}
.promo-legal__item h3 {
    font-family: var(--font-heading);
    font-size: 15px;
    font-weight: 700;
    color: var(--color-neutral-50);
    margin: 0 0 8px 0;
}
.promo-legal__item p {
    font-size: 13px;
    line-height: 1.6;
    color: rgba(255,255,255,0.75);
    margin: 0;
}
.promo-legal__footnote {
    max-width: 720px;
    margin: 0 auto;
    font-size: 12px;
    line-height: 1.6;
    color: rgba(255,255,255,0.55);
}
.promo-legal__footnote a {
    color: rgba(255,255,255,0.85);
}

/* CTA FINAL */
.promo-cta-final {
    background-color: var(--color-brand);
    padding: 72px 24px;
    text-align: center;
    color: var(--color-neutral-50);
}
.promo-cta-final h2 {
    font-family: var(--font-heading);
    font-size: clamp(26px, 3.5vw, 36px);
    font-weight: 800;
    color: var(--color-neutral-50);
    margin: 0 0 12px 0;
}
.promo-cta-final p {
    font-size: 16px;
    color: rgba(255,255,255,0.85);
    max-width: 480px;
    margin: 0 auto 32px;
}
.promo-cta-final__btn {
    background-color: var(--color-neutral-50);
    color: var(--color-brand);
    font-size: 16px;
    font-weight: 700;
}
.promo-cta-final__btn:hover {
    background-color: var(--color-neutral-100);
}
.promo-cta-final__btn::after {
    filter: brightness(0) saturate(100%) invert(24%) sepia(70%) saturate(4123%) hue-rotate(229deg) brightness(85%) contrast(89%);
}

/* FOOTER */
.promo-footer {
    background-color: var(--color-neutral-200);
    padding: 28px 24px;
}
.promo-footer__inner {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}
.promo-footer__links {
    font-size: 12.5px;
    color: var(--color-text-muted);
}
.promo-footer__links a {
    color: var(--color-text-muted);
    text-decoration: none;
}
.promo-footer__links a:hover {
    color: var(--color-brand);
}
.promo-footer__links span {
    margin: 0 8px;
}

@media (max-width: 900px) {
    .promo-hero__grid {
        grid-template-columns: 1fr;
    }
    .promo-hero__media {
        order: -1;
        max-width: 360px;
        margin: 0 auto;
    }
    .promo-consiste__grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .promo-testimonios__grid {
        grid-template-columns: 1fr;
    }
    .promo-legal__grid {
        grid-template-columns: 1fr;
    }
    .promo-medical__inner {
        flex-direction: column;
        text-align: center;
    }
    .promo-medical__copy {
        flex-direction: column;
        text-align: center;
    }
}
@media (max-width: 600px) {
    .promo-steps__grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .promo-consiste__grid {
        grid-template-columns: 1fr;
    }
    .promo-hero {
        padding: 48px 20px 36px;
    }
    .promo-hero__badge {
        left: 12px;
        bottom: -20px;
    }
    .promo-medical__inner {
        flex-direction: column;
        text-align: center;
    }
}

/* ── Cobertura de la medicación ───────────────────────────────────────────
   Va bajo el CTA y deliberadamente NO parece una oferta: sin color de acento,
   sin insignia, sin tamaño de titular. Es información sobre lo que cubre la
   póliza, y tratarla visualmente como un reclamo es lo que la convertiría en
   publicidad de un medicamento. Se pinta solo si $mostrar_copago es true. */
.promo-hero__copago {
    margin: 18px 0 0;
    padding: 14px 16px;
    max-width: 52ch;
    border: 1px solid var(--senda-border, #E2DED4);
    border-radius: 12px;
    background: var(--senda-card-bg, #FFFFFF);
    color: var(--senda-text-muted, #635E54);
    font-size: 13.5px;
    line-height: 1.55;
}
.promo-hero__copago strong {
    display: block;
    margin-bottom: 4px;
    color: var(--senda-text, #2A2822);
    font-size: 14.5px;
    font-weight: 600;
}
@media (max-width: 720px) {
    .promo-hero__copago { font-size: 13px; padding: 12px 14px; }
}

/* Nombre del partner en texto mientras no esté su logotipo oficial.
   Se dimensiona como el logo (108x34) para que la cabecera no se mueva
   cuando se suba el archivo. */
.promo-header__partner-text {
    display: inline-flex;
    align-items: center;
    height: 34px;
    font-size: 21px;
    font-weight: 700;
    letter-spacing: .01em;
    color: var(--senda-text, #2A2822);
}

/* ── Precio con su precio anterior ────────────────────────────────────────
   Va debajo del CTA y por encima del bloque de medicación: es la información
   que decide la conversión, y si se anuncia un descuento tiene que verse
   sobre qué se calcula. El tachado se marca de verdad (no solo con estilo)
   con <s>, para que un lector de pantalla lo anuncie como precio anterior. */
.promo-hero__precio {
    margin: 14px 0 0;
    max-width: 52ch;
    color: var(--senda-text-muted, #635E54);
    font-size: 14px;
    line-height: 1.7;
}
.promo-hero__precio strong { color: var(--senda-text, #2A2822); font-weight: 600; }
.promo-precio {
    display: inline-block;
    white-space: nowrap;
}
.promo-precio b {
    color: var(--senda-text, #2A2822);
    font-size: 16px;
    font-weight: 700;
}
.promo-precio s {
    color: var(--senda-text-muted, #635E54);
    opacity: .75;
    text-decoration-thickness: 1px;
}
.promo-precio-o { padding: 0 2px; }
@media (max-width: 720px) {
    .promo-hero__precio { font-size: 13.5px; }
    .promo-precio { display: block; }
    .promo-precio-o { display: none; }
}

/* La rejilla se adapta al número de testimonios: al descartar los que dan
   cifras de kilos pueden quedar dos, y tres columnas fijas dejarían un hueco. */
.promo-testimonios__grid { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }

/* Cierre del bloque de cobertura: evita que alguien pare el proceso para
   llamar a su aseguradora antes de dar el primer paso, que es gratis. */
.promo-hero__copago-calma { display: block; margin-top: 8px; }

/* ═══ Landing de campaña · lo propio de esta página ═══════════════════════ */

/* Pilares bajo el CTA: sustituyen a la insignia de descuento de las landings
   de partner. Son la promesa del servicio, no una oferta. */
.promo-hero__pilares {
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 8px;
    max-width: 46ch;
}
.promo-hero__pilares li {
    position: relative;
    padding-left: 26px;
    color: var(--senda-text-muted, #635E54);
    font-size: 14.5px;
    line-height: 1.5;
}
.promo-hero__pilares li::before {
    content: "";
    position: absolute;
    left: 0; top: 6px;
    width: 14px; height: 8px;
    border-left: 2px solid var(--senda-primary, #334DCF);
    border-bottom: 2px solid var(--senda-primary, #334DCF);
    transform: rotate(-45deg);
}

/* Cuatro pasos en lugar de tres. */
.promo-steps__grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1000px) { .promo-steps__grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .promo-steps__grid--4 { grid-template-columns: 1fr; } }

/* Precios. Van en la landing a propósito: quien no ve el precio aquí lo
   descubre en el paso 4 del test inicial, después del cuestionario clínico
   entero. Eso no evita el abandono, lo retrasa. */
.promo-precios { padding: 72px 20px; background: var(--senda-bg, #F4F3F0); }
.promo-precios__inner { max-width: 1120px; margin: 0 auto; text-align: center; }
.promo-precios__intro {
    max-width: 60ch;
    margin: 10px auto 0;
    color: var(--senda-text-muted, #635E54);
}
.promo-precios__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
    margin-top: 36px;
    text-align: left;
    align-items: stretch;
}
.promo-plan {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--senda-card-bg, #FFFFFF);
    border: 1px solid var(--senda-border, #E2DED4);
    border-radius: 16px;
    padding: 26px 24px;
}
.promo-plan--destacado { border-color: var(--senda-primary, #334DCF); box-shadow: 0 14px 34px rgba(51,77,207,.10); }
.promo-plan__cinta {
    position: absolute; top: -11px; left: 24px;
    background: var(--senda-primary, #334DCF);
    color: #fff;
    border-radius: 999px;
    padding: 4px 12px;
    font-size: 11.5px; font-weight: 700;
    letter-spacing: .05em; text-transform: uppercase;
}
.promo-plan__nombre { margin: 0; font-size: 18px; }
.promo-plan__precio { margin: 10px 0 0; display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; }
.promo-plan__precio b { font-size: 34px; font-weight: 700; letter-spacing: -.02em; line-height: 1; }
.promo-plan__precio span { color: var(--senda-text-muted, #635E54); font-size: 14px; }
.promo-plan__intro { margin: 12px 0 0; color: var(--senda-text-muted, #635E54); font-size: 14.5px; }
.promo-plan__lista { margin: 16px 0 0; padding: 0; list-style: none; display: grid; gap: 9px; }
.promo-plan__lista li { position: relative; padding-left: 24px; font-size: 14.5px; line-height: 1.5; }
.promo-plan__lista li::before {
    content: ""; position: absolute; left: 0; top: 6px;
    width: 13px; height: 7px;
    border-left: 2px solid var(--senda-primary, #334DCF);
    border-bottom: 2px solid var(--senda-primary, #334DCF);
    transform: rotate(-45deg);
}
.promo-precios__nota {
    margin: 26px auto 0;
    max-width: 66ch;
    color: var(--senda-text-muted, #635E54);
    font-size: 13.5px;
}

/* Opiniones de profesionales. Visualmente distintas de las de paciente a
   propósito: son autoridad clínica, no experiencia personal. */
.promo-profesionales { padding: 72px 20px; }
.promo-profesionales__inner { max-width: 1120px; margin: 0 auto; text-align: center; }
.promo-profesionales__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
    gap: 20px;
    margin-top: 32px;
    text-align: left;
}
.promo-profesional {
    margin: 0;
    background: var(--senda-card-bg, #FFFFFF);
    border: 1px solid var(--senda-border, #E2DED4);
    border-radius: 16px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.promo-profesional blockquote { margin: 0; font-size: 16px; line-height: 1.6; }
.promo-profesional figcaption { display: flex; align-items: center; gap: 12px; margin-top: auto; }
/* Tamaño fijo en los dos ejes: el tema pone height:auto a las img y las fotos
   (apaisadas) salían en óvalo de 48×28. */
.promo-profesional figcaption img { width: 48px; height: 48px; aspect-ratio: 1 / 1; border-radius: 50%; object-fit: cover; flex: 0 0 48px; }
.promo-profesional figcaption strong { display: block; font-size: 14.5px; }
.promo-profesional figcaption span {
    display: block;
    color: var(--senda-text-muted, #635E54);
    font-size: 12px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

/* ═══ Evolución de conversión ═════════════════════════════════════════════ */

.promo-hero__subtitle strong { color: var(--senda-text, #2A2822); font-weight: 600; }

/* Botón principal + salida secundaria. La secundaria es un enlace y no un
   botón a propósito: recoge a quien duda sin competir con la acción principal. */
.promo-hero__acciones {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px 22px;
    margin-top: 6px;
}
.promo-hero__cta2,
.promo-cta-final__cta2 {
    color: var(--senda-primary, #334DCF);
    font-weight: 600;
    font-size: 15px;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.promo-hero__cta2:hover,
.promo-cta-final__cta2:hover { color: var(--senda-primary-hover, #0E0E90); }
/* En su propia línea: en escritorio compartía línea con el botón y el
   conjunto se centraba, dejando el botón desplazado a la izquierda. */
.promo-cta-final__cta2 { display: block; width: fit-content; margin: 16px auto 0; }

/* Equipo: nombre y colegiado, legibles aunque la foto sea pequeña. */
.promo-medical__member { text-align: center; }
.promo-medical__member-nombre {
    display: block;
    margin-top: 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--senda-text, #2A2822);
    line-height: 1.3;
}
.promo-medical__member-col {
    display: block;
    margin-top: 2px;
    font-size: 11px;
    color: var(--senda-text-muted, #635E54);
    font-variant-numeric: tabular-nums;
}

/* El paso de la consulta gratuita se distingue: es donde está la promesa. */
.promo-step--clave {
    border-color: var(--senda-primary, #334DCF) !important;
    /* Sin sombra: el paso no tiene relleno y la sombra recortaba pegada al texto. */
}

/* Reversión del riesgo, junto a los pasos: donde se decide. */
.promo-garantia {
    max-width: 720px;
    margin: 26px auto 0;
    padding: 14px 20px;
    border-radius: 12px;
    background: var(--senda-primary-light, #F2F5FC);
    border: 1px solid var(--senda-primary-border, #C8D5F9);
    color: var(--senda-text, #2A2822);
    font-size: 15px;
    line-height: 1.55;
    text-align: center;
}
.promo-garantia strong { color: var(--senda-primary, #334DCF); }

/* Cifras de la casa. */
.promo-cifras { padding: 56px 20px 8px; }
.promo-cifras__inner {
    max-width: 760px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 20px;
}
.promo-cifra {
    display: flex;
    align-items: center;
    gap: 16px;
    background: var(--senda-card-bg, #FFFFFF);
    border: 1px solid var(--senda-border, #E2DED4);
    border-radius: 14px;
    padding: 18px 20px;
}
.promo-cifra b {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: -.02em;
    color: var(--senda-primary, #334DCF);
    font-variant-numeric: tabular-nums;
    line-height: 1;
    flex: 0 0 auto;
}
.promo-cifra span { font-size: 14px; line-height: 1.45; color: var(--senda-text-muted, #635E54); }
.promo-cifras__fuente {
    text-align: center;
    margin: 12px 0 0;
    font-size: 12px;
    color: var(--senda-text-muted, #635E54);
}

/* CTA tras los precios. */
.promo-precios__cta {
    margin-top: 26px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}
.promo-precios__cta span { font-size: 13.5px; color: var(--senda-text-muted, #635E54); }

/* Prensa dentro de la landing: menos aire que en la portada. */
.promo-main .media-marquee-container { margin: 0; padding-top: 28px; padding-bottom: 28px; }

/* ── CTA fijo en móvil ──
   Sale desde abajo al dejar atrás el botón del hero. Arranca a 72 px de la
   izquierda para NO tapar el botón de preferencias de cookies (RGPD). */
.promo-sticky { display: none; }
@media (max-width: 720px) {
    .promo-sticky {
        display: block;
        position: fixed;
        left: 72px;
        right: 12px;
        bottom: 12px;
        z-index: 900;
        transform: translateY(140%);
        transition: transform .25s ease;
        pointer-events: none;
    }
    .promo-sticky.is-visible { transform: translateY(0); pointer-events: auto; }
    .promo-sticky__btn {
        display: block;
        width: 100%;
        text-align: center;
        box-shadow: 0 10px 30px rgba(29,27,22,.22);
    }
    /* Que el pie no quede debajo de la barra. */
    .promo-footer { padding-bottom: 84px; }
}
@media (prefers-reduced-motion: reduce) {
    .promo-sticky { transition: none; }
}

/* El número de colegiado no se parte nunca: "M-21944" se cortaba por el guion
   y quedaba "M-" en una línea. Si no cabe, baja entero a la siguiente. */
.promo-medical__member-num { display: inline-block; white-space: nowrap; }


/* ── HERO EN PAREJA ──
   Dos retratos 3:4 escalonados: la mujer arriba a la izquierda y el hombre
   algo más abajo a la derecha. Los dos miran hacia la izquierda, hacia el
   texto, así que el ojo vuelve al titular. La etiqueta de la consulta queda
   en el hueco que deja el escalón, sobre la foto de ella. */
.promo-hero__media--duo {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    align-items: start;
    padding-bottom: 56px;               /* el escalón del segundo retrato */
}
.promo-hero__media--duo .promo-hero__foto {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    object-position: 50% 30%;
    border-radius: var(--radius-xl, 24px);
    background-color: var(--color-neutral-200);
    box-shadow: 0 18px 44px rgba(29,27,22,0.10);
}
.promo-hero__media--duo .promo-hero__foto--b {
    transform: translateY(56px);
}
.promo-hero__media--duo .promo-hero__badge {
    left: -20px;
    bottom: 0;
    z-index: 1;
}
/* En escritorio la pareja necesita más ancho que la foto única: columnas a
   partes iguales y retratos algo más altos, para que pese lo mismo que el texto. */
@media (min-width: 901px) {
    .promo-hero__grid:has(> .promo-hero__media--duo) {
        grid-template-columns: 1fr 1fr;
        gap: 48px;
    }
    .promo-hero__media--duo .promo-hero__foto { aspect-ratio: 2 / 3; }
}

@media (max-width: 900px) {
    .promo-hero__media.promo-hero__media--duo {
        max-width: 440px;
        width: 100%;
        gap: 12px;
        padding-bottom: 40px;
    }
    .promo-hero__media--duo .promo-hero__foto { border-radius: 18px; }
    /* Menos aire entre la pareja y el titular: el botón tiene que entrar en
       la primera pantalla del móvil. */
    .promo-hero__grid:has(> .promo-hero__media--duo) { gap: 36px; }
    .promo-hero__media--duo .promo-hero__foto--b { transform: translateY(40px); }
}
@media (max-width: 600px) {
    /* En el móvil la pareja va encima del titular: más baja para que el
       titular y el botón sigan viéndose sin mucho desplazamiento. */
    .promo-hero__media.promo-hero__media--duo {
        max-width: 340px;
        gap: 10px;
        padding-bottom: 28px;
        margin-bottom: 0;
    }
    .promo-hero__media--duo .promo-hero__foto { aspect-ratio: 4 / 5; border-radius: 16px; }
    .promo-hero__media--duo .promo-hero__foto--b { transform: translateY(28px); }
    .promo-hero__media--duo .promo-hero__badge {
        left: 50%;
        bottom: -14px;
        transform: translateX(-50%);
        white-space: nowrap;
        padding: 10px 16px;
        font-size: 13px;
    }
}

/* ═════════════ Revisión de diseño (30/09/2026 · «Feedback Landing») ═════════════ */

/* PROGRAMA MÉDICO · foto del equipo a todo el ancho. El fondo es el mismo azul
   que el de la foto (#5071e7), así los bordes de la imagen desaparecen. La
   foto va algo a la derecha y apoyada en el borde inferior; la caja de texto,
   a la izquierda, se monta ligeramente sobre ella. */
.promo-medical.promo-medical--foto {
    background-color: #5071e7;
    padding: 48px 24px 0;
    overflow: hidden;
}
.promo-medical--foto .promo-medical__inner {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    align-items: center;
    gap: 0;
}
.promo-medical--foto .promo-medical__caja {
    position: relative;
    z-index: 1;
    background: #FFFFFF;
    border-radius: 18px;
    padding: 28px 30px;
    margin-right: -48px;                 /* se monta un poco sobre la foto */
    box-shadow: 0 18px 40px rgba(14, 14, 144, 0.18);
    align-self: center;
    margin-bottom: 48px;
}
.promo-medical--foto .promo-medical__caja h2 {
    font-family: var(--font-heading);
    font-size: 22px;
    font-weight: 800;
    color: var(--color-neutral-900);
    margin: 0 0 10px;
}
.promo-medical--foto .promo-medical__caja p {
    font-size: 15px;
    line-height: 1.6;
    color: var(--color-text-muted);
    margin: 0;
}
.promo-medical--foto .promo-medical__foto {
    display: block;
    width: 100%;
    max-width: 640px;
    height: auto;
    margin-left: auto;                   /* alineada hacia la derecha */
    align-self: end;                     /* apoyada en el borde inferior */
}
@media (max-width: 900px) {
    .promo-medical--foto .promo-medical__inner { grid-template-columns: 1fr; }
    .promo-medical--foto .promo-medical__caja { margin: 0 0 -24px; text-align: left; }
    .promo-medical--foto .promo-medical__foto { max-width: 520px; margin: 0 auto; }
}
@media (max-width: 600px) {
    .promo-medical.promo-medical--foto { padding: 36px 16px 0; }
    .promo-medical--foto .promo-medical__caja { padding: 22px 20px; }
    .promo-medical--foto .promo-medical__caja h2 { font-size: 19px; }
}

/* PASOS · cabecera como el resto de secciones. */
.promo-steps__cabecera {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 36px;
}
.promo-steps__cabecera h2 {
    font-family: var(--font-heading);
    font-size: clamp(24px, 3vw, 32px);
    font-weight: 800;
    color: var(--color-neutral-900);
    margin: 0;
}

/* EN QUÉ CONSISTE · componente de la portada; solo se centra el antetítulo. */
.block-propuesta-valor .header-propuesta .promo-section-eyebrow { margin-bottom: 14px; }

/* TESTIMONIOS · tarjetas de la portada, tres en fila en escritorio. */
.promo-testimonios .promo-testimonios__cards {
    /* 2 o 3 tarjetas, siempre centradas (solo salen las que no cuentan kilos). */
    grid-template-columns: repeat(auto-fit, minmax(280px, 350px));
    justify-content: center;
    max-width: 1100px;
    margin-top: 32px;
    text-align: left;
}
@media (max-width: 900px) {
    /* En móvil la portada las pone en carrusel (flex); aquí van una debajo de
       otra: con flex + centrado, la primera se salía por la izquierda. */
    .promo-testimonios .promo-testimonios__cards { display: grid; grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; gap: 20px; max-width: 480px; margin-left: auto; margin-right: auto; overflow: visible; }
}

/* PIE · condiciones del programa (antes, bloque «Antes de empezar»). */
.promo-footer__condiciones {
    margin: 0 0 14px;
    font-size: 12px;
    line-height: 1.55;
    color: var(--color-text-muted);
    text-align: center;
}
