:root {
    --lv2-bg: #f7f3ef;
    --lv2-card: #ffffff;
    --lv2-text: #1e2330;
    --lv2-muted: #667085;
    --lv2-primary: #ed6b35;
    --lv2-primary-dark: #c94f20;
    --lv2-border: #eadfd6;
    --lv2-shadow: 0 18px 50px rgba(30, 35, 48, .12);
}

body.lv2-skin-default {
    --lv2-bg: #f7f3ef;
    --lv2-primary: #ed6b35;
    --lv2-primary-dark: #c94f20;
    --lv2-border: #eadfd6;
}

body.lv2-skin-wup {
    --lv2-bg: #eef8f7;
    --lv2-primary: #00a09a;
    --lv2-primary-dark: #007f7a;
    --lv2-border: #cfe8e6;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    color: var(--lv2-text);
    background: var(--lv2-bg);
}

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

.lv2-page {
    width: min(1180px, 100%);
    margin: 0 auto;
    padding: 18px;
}

.lv2-brand--hero {
    display: inline-block;
    margin-bottom: 28px;
}

.lv2-brand--hero img {
    width: auto;
    max-width: min(280px, 65vw);
    max-height: 80px;
    object-fit: contain;
}

.lv2-hero-shell {
    background: var(--lv2-hero-bg, #16213a);
}

.lv2-hero {
    display: grid;
    grid-template-columns: 1fr;
    max-width: 1440px;
    margin-inline: auto;
}

.lv2-eyebrow {
    margin: 0 0 12px;
    color: var(--lv2-primary-dark);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .78rem;
}

.lv2-hero h1 {
    margin: 0;
    font-size: clamp(2.15rem, 12vw, 4.8rem);
    line-height: .96;
    letter-spacing: -.05em;
}

.lv2-subtitle {
    margin: 18px 0 0;
    max-width: 60ch;
    color: var(--lv2-muted);
    font-size: clamp(1.05rem, 4vw, 1.35rem);
    line-height: 1.45;
}

.lv2-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 24px;
}

.lv2-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 13px 20px;
    border: 0;
    border-radius: 999px;
    background: var(--lv2-primary);
    color: #fff;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    transition: transform .18s ease, background .18s ease;
}

.lv2-button:hover,
.lv2-button:focus {
    background: var(--lv2-primary-dark);
    transform: translateY(-1px);
}

.lv2-button--ghost {
    background: transparent;
    color: var(--lv2-primary-dark);
    border: 2px solid var(--lv2-primary);
}

.lv2-button--ghost:hover,
.lv2-button--ghost:focus {
    color: #fff;
}

.lv2-button--full { width: 100%; }

.lv2-hero__copy {
    padding: clamp(28px, 5vw, 72px) clamp(20px, 5vw, 64px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0;
}

.lv2-hero__image {
    margin: 0;
    border-radius: 0;
    overflow: hidden;
    box-shadow: none;
    background: transparent;
    aspect-ratio: 1 / 1;
}

.lv2-hero__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 1 / 1;
    display: block;
}

.lv2-content {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    padding-bottom: 32px;
}

.lv2-card,
.lv2-form-card {
    background: var(--lv2-card);
    border: 1px solid var(--lv2-border);
    border-radius: 26px;
    padding: clamp(20px, 5vw, 34px);
    box-shadow: 0 10px 30px rgba(30, 35, 48, .07);
}

.lv2-richtext,
.lv2-benefits {
    font-size: 1.05rem;
    line-height: 1.65;
}

.lv2-benefits {
    margin-top: 16px;
}

.lv2-coupon {
    margin-top: 22px;
    position: relative;
}

.lv2-coupon--ticket {
    background: linear-gradient(135deg, #fff7f2 0%, #fff 100%);
    border: 2px solid var(--lv2-primary);
    border-radius: 12px;
    padding: 16px 20px 14px;
    /* Notch effect on left and right */
    overflow: visible;
}

.lv2-coupon--ticket::before,
.lv2-coupon--ticket::after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    background: var(--lv2-bg);
    border-radius: 50%;
    border: 2px solid var(--lv2-primary);
}

.lv2-coupon--ticket::before { left: -10px; }
.lv2-coupon--ticket::after  { right: -10px; }

.lv2-coupon__ahorro {
    margin: 0 0 6px;
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--lv2-primary-dark);
    background: var(--lv2-primary);
    color: #fff;
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
}

.lv2-coupon__label {
    margin: 6px 0 4px;
    color: var(--lv2-muted);
    font-size: .88rem;
}

.lv2-coupon__separator {
    border: none;
    border-top: 2px dashed var(--lv2-border);
    margin: 8px 0;
}

.lv2-coupon__codigo {
    display: block;
    font-size: 1.9rem;
    letter-spacing: .12em;
    font-weight: 900;
    color: var(--lv2-primary-dark);
    text-align: center;
    padding: 6px 0;
}

.lv2-coupon details {
    margin-top: 10px;
    font-size: .82rem;
    color: var(--lv2-muted);
}

.lv2-form-card {
    position: relative;
}

.lv2-form-card h2 {
    margin: 0 0 6px;
    font-size: clamp(1.55rem, 8vw, 2.3rem);
    letter-spacing: -.03em;
}

.lv2-form-card h2 + p {
    margin: 0 0 18px;
}

.lv2-form-card form {
    display: grid;
    gap: 22px;
    margin-top: 18px;
}

.lv2-form-card label:not(.lv2-rgpd__check) {
    display: grid;
    gap: 10px;
    font-weight: 800;
}

.lv2-form-card input,
.lv2-form-card select {
    width: 100%;
    min-height: 48px;
    border: 1px solid var(--lv2-border);
    border-radius: 14px;
    padding: 14px 16px;
    font: inherit;
    font-weight: normal;
    background: #fff;
}

.lv2-form-card input:focus,
.lv2-form-card select:focus {
    outline: 3px solid rgba(237, 107, 53, .2);
    border-color: var(--lv2-primary);
}

.lv2-form-message {
    min-height: 24px;
    color: var(--lv2-primary-dark);
    font-weight: 800;
}

.lv2-form-message.is-error { color: #b42318; }

@media (min-width: 620px) {
    .lv2-page { padding: 28px; }
    .lv2-actions {
        display: flex;
        flex-wrap: wrap;
    }
    .lv2-button { min-width: 190px; }
}

/* DARK mode */
.lv2-hero--dark .lv2-eyebrow             { color: var(--lv2-primary); }
.lv2-hero--dark .lv2-hero__copy h1       { color: #fff; }
.lv2-hero--dark .lv2-subtitle            { color: rgba(255,255,255,.65); }
.lv2-hero--dark .lv2-button--ghost       { border-color: rgba(255,255,255,.5); color: #fff; }
.lv2-hero--dark .lv2-button--ghost:hover { background: rgba(255,255,255,.12); color: #fff; }

/* LIGHT mode */
.lv2-hero--light .lv2-eyebrow             { color: var(--lv2-primary-dark); }
.lv2-hero--light .lv2-hero__copy h1       { color: var(--lv2-text); }
.lv2-hero--light .lv2-subtitle            { color: var(--lv2-muted); }
.lv2-hero--light .lv2-button--ghost       { border-color: var(--lv2-primary); color: var(--lv2-primary-dark); }
.lv2-hero--light .lv2-button--ghost:hover { background: transparent; color: #fff; }

@media (max-width: 899px) {
    .lv2-hero__copy { order: 2; }
    .lv2-hero__image { order: 1; }
}

/* Sección del formulario — debajo del hero */
.lv2-form-section {
    background: var(--lv2-bg);
    padding: 28px 18px;
}

.lv2-form-section__inner {
    width: min(560px, 100%);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

@media (min-width: 900px) {
    .lv2-page { padding: 42px 28px; }
    .lv2-hero {
        grid-template-columns: 1fr 1fr;
        min-height: 520px;
        align-items: stretch;
    }
    .lv2-hero__image {
        mask-image: linear-gradient(to right, transparent 0%, black 28%);
        -webkit-mask-image: linear-gradient(to right, transparent 0%, black 28%);
        aspect-ratio: auto;
    }
    .lv2-hero__image img {
        height: 100%;
        aspect-ratio: auto;
    }
    .lv2-form-section {
        padding: 42px 28px;
    }
    .lv2-form-section__inner {
        width: min(600px, 100%);
    }
}

.lv2-coupon {
    margin-top: 0;
}

/* RGPD */
.lv2-rgpd {
    display: grid;
    gap: 8px;
    font-size: .82rem;
    color: var(--lv2-muted);
}

.lv2-rgpd__check {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-weight: normal;
    cursor: pointer;
}

.lv2-rgpd__check input[type="checkbox"] {
    width: auto;
    min-height: auto;
    flex-shrink: 0;
    margin-top: 2px;
}

.lv2-rgpd__toggle {
    background: none;
    border: none;
    padding: 0;
    color: var(--lv2-primary-dark);
    text-decoration: underline;
    cursor: pointer;
    font: inherit;
    font-size: inherit;
}

.lv2-rgpd__clauses {
    padding: 10px 12px;
    background: var(--lv2-bg);
    border-radius: 10px;
    line-height: 1.5;
    font-size: .78rem;
}

.lv2-rgpd__clauses[hidden] { display: none; }

/* Cookie banner */
.lv2-cookie-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 999;
    background: var(--lv2-card);
    border-top: 1px solid var(--lv2-border);
    padding: 16px 20px;
    box-shadow: 0 -4px 20px rgba(30, 35, 48, .10);
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.lv2-cookie-banner[hidden] { display: none; }

.lv2-cookie-banner p {
    margin: 0;
    flex: 1;
    font-size: .88rem;
    color: var(--lv2-muted);
    min-width: 200px;
}

.lv2-cookie-banner__actions {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}

.lv2-cookie-banner__actions .lv2-button {
    min-width: 130px;
    min-height: 40px;
    padding: 9px 16px;
    font-size: .88rem;
}

/* M27 — Beneficios como lista */
.lv2-benefits {
    margin: 0;
    margin-top: 16px;
    padding-left: 1.4em;
    line-height: 1.7;
    color: var(--lv2-text);
}
.lv2-benefits li {
    margin-bottom: 4px;
}

/* M28 — Urgencia */
.lv2-urgencia {
    background: #fff3cd;
    border-left: 4px solid #e6a817;
    padding: 12px 16px;
    border-radius: 6px;
    font-weight: 600;
    font-size: .95rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 8px;
    margin-bottom: 16px;
}

/* M29 — Garantía */
.lv2-garantia {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 8px;
    padding: 10px 0;
    font-size: .88rem;
    color: var(--lv2-muted);
    border-top: 1px solid var(--lv2-border);
    margin-top: 12px;
}
.lv2-garantia__icon::before {
    font-size: 1.1em;
}
.lv2-icon--shield::before       { content: "\1F6E1\FE0F"; }
.lv2-icon--check-circle::before { content: "\2705"; }
.lv2-icon--star::before         { content: "\2B50"; }
.lv2-icon--thumbs-up::before    { content: "\1F44D"; }
.lv2-icon--lock::before         { content: "\1F512"; }

/* M24 — Badges/USPs */
.lv2-badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    padding: 20px 18px;
    background: var(--lv2-card);
    border-bottom: 1px solid var(--lv2-border);
}

.lv2-badge {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    flex: 1 1 180px;
    max-width: 240px;
    padding: 14px;
    border-radius: 10px;
    background: var(--lv2-bg);
    border: 1px solid var(--lv2-border);
}

.lv2-badge__icon::before {
    font-size: 1.6em;
    display: block;
    margin-top: 2px;
}

.lv2-badge--star .lv2-badge__icon::before          { content: "\2B50"; }
.lv2-badge--cambridge .lv2-badge__icon::before      { content: "\1F393"; }
.lv2-badge--native .lv2-badge__icon::before         { content: "\1F5E3\FE0F"; }
.lv2-badge--small-group .lv2-badge__icon::before    { content: "\1F465"; }
.lv2-badge--certified .lv2-badge__icon::before      { content: "\2705"; }
.lv2-badge--trial-free .lv2-badge__icon::before     { content: "\1F381"; }
.lv2-badge--check .lv2-badge__icon::before          { content: "\2714\FE0F"; }
.lv2-badge--award .lv2-badge__icon::before          { content: "\1F3C6"; }

.lv2-badge strong {
    display: block;
    font-size: .9rem;
    font-weight: 700;
    color: var(--lv2-text);
}
.lv2-badge p {
    margin: 4px 0 0;
    font-size: .8rem;
    color: var(--lv2-muted);
    line-height: 1.4;
}

/* M26 — FAQ */
.lv2-faq {
    margin-top: 32px;
    padding: 0 18px;
}

.lv2-faq h2 {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 16px;
    color: var(--lv2-text);
}

.lv2-faq__item {
    border: 1px solid var(--lv2-border);
    border-radius: 8px;
    margin-bottom: 8px;
    overflow: hidden;
}

.lv2-faq__item summary {
    padding: 14px 16px;
    cursor: pointer;
    font-weight: 600;
    font-size: 1.02rem;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--lv2-card);
}

.lv2-faq__item summary::-webkit-details-marker { display: none; }

.lv2-faq__item summary::after {
    content: "+";
    font-size: 1.2em;
    font-weight: 400;
    color: var(--lv2-primary);
    transition: transform .2s;
}

.lv2-faq__item[open] summary::after {
    transform: rotate(45deg);
}

.lv2-faq__respuesta {
    padding: 14px 16px 16px;
    font-size: 1rem;
    line-height: 1.6;
    color: var(--lv2-text);
    background: var(--lv2-card);
    border-top: 1px solid var(--lv2-border);
}

/* M25 — Testimonios */
.lv2-testimonios {
    margin-top: 32px;
    padding: 0 18px;
}

.lv2-testimonios h2 {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 20px;
    color: var(--lv2-text);
}

.lv2-testimonios__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
}

.lv2-testimonio {
    background: var(--lv2-card);
    border: 1px solid var(--lv2-border);
    border-radius: 10px;
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.lv2-testimonio__header {
    display: flex;
    align-items: center;
    gap: 12px;
}

.lv2-testimonio__foto {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.lv2-testimonio__nombre {
    display: block;
    font-size: .9rem;
    font-weight: 700;
    color: var(--lv2-text);
}

.lv2-testimonio__contexto {
    display: block;
    font-size: .78rem;
    color: var(--lv2-muted);
}

.lv2-testimonio__estrellas {
    font-size: 1rem;
    letter-spacing: .1em;
    line-height: 1;
}

.lv2-star--filled { color: #f5a623; }
.lv2-star--empty  { color: #ddd; }

.lv2-testimonio__texto {
    margin: 0;
    font-size: .88rem;
    line-height: 1.55;
    color: var(--lv2-muted);
    font-style: italic;
}

/* M32 — Formulario en 2 pasos */
.lv2-form-step {
    display: grid;
    gap: 22px;
}

.lv2-form-step[data-step="2"] {
    display: none;
}

.lv2-form-step--visible {
    display: grid;
    -webkit-animation: lv2FadeIn .3s ease;
            animation: lv2FadeIn .3s ease;
}

@-webkit-keyframes lv2FadeIn {
    from { opacity: 0; -webkit-transform: translateY(6px); transform: translateY(6px); }
    to   { opacity: 1; -webkit-transform: translateY(0);   transform: translateY(0); }
}

@keyframes lv2FadeIn {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* M33 — Microcopy */
.lv2-microcopy {
    display: block;
    font-size: .78rem;
    color: var(--lv2-muted);
    margin-top: 4px;
}

@-webkit-keyframes lv2FabIn {
    from { opacity: 0; -webkit-transform: scale(0.7); transform: scale(0.7); }
    to   { opacity: 1; -webkit-transform: scale(1);   transform: scale(1); }
}
@keyframes lv2FabIn {
    from { opacity: 0; transform: scale(0.7); }
    to   { opacity: 1; transform: scale(1); }
}

/* M40 — FAB WhatsApp */
.lv2-wa-fab {
    position: fixed;
    bottom: 20px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #25d366;
    box-shadow: 0 4px 12px rgba(0,0,0,.25);
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    text-decoration: none;
    opacity: 0;
    -webkit-transform: scale(0.7);
    transform: scale(0.7);
    z-index: 9999;
}
.lv2-wa-fab--bottom-right { right: 20px; }
.lv2-wa-fab--bottom-left  { left: 20px; }
.lv2-wa-fab--visible {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-animation: lv2FabIn .3s ease forwards;
            animation: lv2FabIn .3s ease forwards;
}
.lv2-wa-fab svg {
    width: 32px;
    height: 32px;
    fill: #fff;
}
.lv2-wa-fab__badge {
    position: absolute;
    top: 0;
    right: 0;
    background: #e53e3e;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    line-height: 1;
}
@media (prefers-reduced-motion: reduce) {
    .lv2-wa-fab--visible {
        -webkit-animation: none;
                animation: none;
        -webkit-transition: opacity .3s ease, -webkit-transform .3s ease;
                transition: opacity .3s ease, transform .3s ease;
    }
}

@media (min-width: 1440px) {
    .lv2-wa-fab--bottom-right { right: calc((100vw - 1440px) / 2 + 20px); }
    .lv2-wa-fab--bottom-left  { left:  calc((100vw - 1440px) / 2 + 20px); }
}

/* M41a — Asistente virtual */
.lv2-chat { position: fixed; bottom: 20px; left: 20px; z-index: 9998; }
@media (min-width: 1440px) {
    .lv2-chat { left: calc((100vw - 1440px) / 2 + 20px); }
}
.lv2-chat__tooltip {
    position: absolute; bottom: 64px; left: 0;
    background: #fff; border-radius: 12px 12px 12px 2px;
    padding: 7px 10px 7px 12px; font-size: 13px; white-space: nowrap;
    -webkit-box-shadow: 0 2px 10px rgba(0,0,0,.18); box-shadow: 0 2px 10px rgba(0,0,0,.18);
    color: #333; display: -webkit-box; display: -ms-flexbox; display: flex;
    -webkit-box-align: center; -ms-flex-align: center; align-items: center; gap: 6px;
    -webkit-animation: lv2TooltipLife 10s 2s both; animation: lv2TooltipLife 10s 2s both;
    pointer-events: auto;
}
.lv2-chat__tooltip::after {
    content: ''; position: absolute; bottom: -6px; left: 14px;
    border: 6px solid transparent; border-top-color: #fff; border-bottom: 0;
}
.lv2-chat__tooltip-close {
    cursor: pointer; color: #aaa; font-size: 15px; line-height: 1; padding: 0 2px;
    -webkit-transition: color .15s; transition: color .15s;
}
.lv2-chat__tooltip-close:hover { color: #555; }
.lv2-chat__tooltip--hidden { display: none !important; }
@-webkit-keyframes lv2TooltipLife {
    0%   { opacity: 0; -webkit-transform: translateY(4px); transform: translateY(4px); }
    12%  { opacity: 1; -webkit-transform: translateY(0);   transform: translateY(0); }
    75%  { opacity: 1; }
    100% { opacity: 0; }
}
@keyframes lv2TooltipLife {
    0%   { opacity: 0; -webkit-transform: translateY(4px); transform: translateY(4px); }
    12%  { opacity: 1; -webkit-transform: translateY(0);   transform: translateY(0); }
    75%  { opacity: 1; }
    100% { opacity: 0; }
}
@-webkit-keyframes lv2FabPulse {
    0%, 100% { -webkit-transform: scale(1); transform: scale(1); }
    50% { -webkit-transform: scale(1.1); transform: scale(1.1);
          -webkit-box-shadow: 0 4px 12px rgba(0,0,0,.25), 0 0 0 8px rgba(0,74,173,.15);
          box-shadow: 0 4px 12px rgba(0,0,0,.25), 0 0 0 8px rgba(0,74,173,.15); }
}
@keyframes lv2FabPulse {
    0%, 100% { -webkit-transform: scale(1); transform: scale(1); }
    50% { -webkit-transform: scale(1.1); transform: scale(1.1);
          -webkit-box-shadow: 0 4px 12px rgba(0,0,0,.25), 0 0 0 8px rgba(0,74,173,.15);
          box-shadow: 0 4px 12px rgba(0,0,0,.25), 0 0 0 8px rgba(0,74,173,.15); }
}
.lv2-chat__fab {
    width: 52px; height: 52px; border-radius: 50%;
    background: var(--lv2-color-primary, #004aad);
    border: none; cursor: pointer; display: -webkit-box; display: -ms-flexbox; display: flex;
    -webkit-box-align: center; -ms-flex-align: center; align-items: center;
    -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center;
    -webkit-box-shadow: 0 4px 12px rgba(0,0,0,.25); box-shadow: 0 4px 12px rgba(0,0,0,.25);
    -webkit-animation: lv2FabPulse 1.8s ease-in-out 3s 3; animation: lv2FabPulse 1.8s ease-in-out 3s 3;
}
.lv2-chat__fab svg { width: 28px; height: 28px; fill: #fff; }
.lv2-chat__panel {
    position: absolute; bottom: 64px; left: 0;
    width: 320px; max-height: 460px;
    background: #fff; border-radius: 12px;
    -webkit-box-shadow: 0 8px 32px rgba(0,0,0,.18); box-shadow: 0 8px 32px rgba(0,0,0,.18);
    display: -webkit-box; display: -ms-flexbox; display: flex;
    -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column;
    overflow: hidden;
}
.lv2-chat__panel[hidden] { display: none; }
.lv2-chat__header {
    display: -webkit-box; display: -ms-flexbox; display: flex;
    -webkit-box-align: center; -ms-flex-align: center; align-items: center;
    gap: 10px; padding: 12px 16px;
    background: var(--lv2-color-primary, #004aad); color: #fff;
}
.lv2-chat__avatar { width: 36px; height: 36px; border-radius: 50%; -o-object-fit: cover; object-fit: cover; }
.lv2-chat__header-text { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; }
.lv2-chat__nombre { display: block; font-size: 14px; }
.lv2-chat__subtitulo { font-size: 11px; opacity: .8; }
.lv2-chat__close {
    background: transparent; border: none; color: #fff;
    font-size: 20px; cursor: pointer; line-height: 1; padding: 0 4px;
}
.lv2-chat__messages {
    -webkit-box-flex: 1; -ms-flex: 1; flex: 1; overflow-y: auto; padding: 12px;
    display: -webkit-box; display: -ms-flexbox; display: flex;
    -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column;
    gap: 8px;
}
.lv2-chat__burbuja {
    max-width: 80%; padding: 8px 12px; border-radius: 16px;
    font-size: 14px; line-height: 1.4;
}
.lv2-chat__burbuja--bot {
    background: #f0f2f5; color: #333;
    -ms-flex-item-align: start; align-self: flex-start; border-bottom-left-radius: 4px;
}
.lv2-chat__burbuja--user {
    background: var(--lv2-color-primary, #004aad); color: #fff;
    -ms-flex-item-align: end; align-self: flex-end; border-bottom-right-radius: 4px;
}
.lv2-chat__typing {
    display: -webkit-box; display: -ms-flexbox; display: flex;
    gap: 4px; -webkit-box-align: center; -ms-flex-align: center; align-items: center;
    -ms-flex-item-align: start; align-self: flex-start;
    background: #f0f2f5; padding: 10px 14px; border-radius: 16px; border-bottom-left-radius: 4px;
}
.lv2-chat__typing span {
    width: 6px; height: 6px; border-radius: 50%; background: #999;
    -webkit-animation: lv2TypingDot 1.2s infinite ease-in-out;
            animation: lv2TypingDot 1.2s infinite ease-in-out;
}
.lv2-chat__typing span:nth-child(2) { -webkit-animation-delay: .2s; animation-delay: .2s; }
.lv2-chat__typing span:nth-child(3) { -webkit-animation-delay: .4s; animation-delay: .4s; }
@-webkit-keyframes lv2TypingDot {
    0%, 60%, 100% { -webkit-transform: translateY(0); transform: translateY(0); }
    30% { -webkit-transform: translateY(-6px); transform: translateY(-6px); }
}
@keyframes lv2TypingDot {
    0%, 60%, 100% { -webkit-transform: translateY(0); transform: translateY(0); }
    30% { -webkit-transform: translateY(-6px); transform: translateY(-6px); }
}
.lv2-chat__opciones {
    display: -webkit-box; display: -ms-flexbox; display: flex;
    -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column;
    gap: 6px; -ms-flex-item-align: stretch; align-self: stretch; padding: 0 4px;
}
.lv2-chat__opcion-btn {
    background: #fff; border: 2px solid var(--lv2-color-primary, #004aad);
    color: var(--lv2-color-primary, #004aad); border-radius: 20px;
    padding: 6px 14px; cursor: pointer; font-size: 13px; text-align: left;
    -webkit-transition: background .15s, color .15s; transition: background .15s, color .15s;
}
.lv2-chat__opcion-btn:hover,
.lv2-chat__opcion-btn--selected {
    background: var(--lv2-color-primary, #004aad); color: #fff;
}
.lv2-chat__opcion-btn:disabled { opacity: .6; cursor: default; }
.lv2-chat__cta {
    display: -webkit-box; display: -ms-flexbox; display: flex;
    -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column;
    gap: 8px; padding: 4px;
}
.lv2-chat__cta-btn {
    padding: 10px 16px; border-radius: 8px; font-size: 14px; font-weight: 600;
    cursor: pointer; text-align: center; text-decoration: none; display: block; border: none;
}
.lv2-chat__cta-btn--wa { background: #25d366; color: #fff; }
.lv2-chat__cta-btn--form { background: var(--lv2-color-primary, #004aad); color: #fff; }
@media (max-width: 360px) {
    .lv2-chat__panel { width: 280px; }
}

/* M42 — CTA final */
.lv2-cta-final {
    background: var(--lv2-primary);
    padding: clamp(32px, 6vw, 64px) 20px;
    text-align: center;
}

.lv2-cta-final__inner {
    width: min(560px, 100%);
    margin: 0 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 20px;
}

.lv2-cta-final__lead {
    margin: 0;
    color: #fff;
    font-size: clamp(1.4rem, 5vw, 2rem);
    font-weight: 800;
    letter-spacing: -.03em;
    opacity: .92;
}

.lv2-cta-final .lv2-button {
    background: #fff;
    color: var(--lv2-primary-dark);
    font-size: 1.05rem;
    min-width: 220px;
}

.lv2-cta-final .lv2-button:hover,
.lv2-cta-final .lv2-button:focus {
    background: var(--lv2-primary-dark);
    color: #fff;
}

/* Datos de contacto de la academia */
.lv2-contact-info {
    background: #f4f6f9;
    padding: clamp(40px, 6vw, 64px) 20px;
    text-align: center;
}
.lv2-contact-info__inner {
    max-width: 760px;
    margin: 0 auto;
}
.lv2-contact-info__title {
    font-size: 1.2rem;
    font-weight: 700;
    color: #2c3e58;
    margin: 0 0 6px;
}
.lv2-contact-info__sub {
    font-size: 0.88rem;
    color: #6b7a8d;
    margin: 0 0 28px;
}
.lv2-contact-info__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
}
.lv2-contact-info__item {
    background: #fff;
    border: 1px solid #dde3eb;
    border-radius: 14px;
    padding: 18px 22px;
    min-width: 150px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 5px;
    text-decoration: none;
    color: inherit;
    -webkit-transition: box-shadow .18s, -webkit-transform .18s;
    transition: box-shadow .18s, transform .18s;
}
a.lv2-contact-info__item:hover {
    box-shadow: 0 6px 20px rgba(44,62,88,.13);
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
    text-decoration: none;
    color: inherit;
}
.lv2-contact-info__item--wa {
    background: #25d366;
    border-color: #25d366;
    color: #fff;
}
a.lv2-contact-info__item--wa:hover {
    background: #1fbe5a;
    border-color: #1fbe5a;
    color: #fff;
}
.lv2-contact-info__icon {
    width: 26px;
    height: 26px;
    fill: #2c3e58;
    opacity: .8;
    margin-bottom: 2px;
}
.lv2-contact-info__item--wa .lv2-contact-info__icon {
    fill: #fff;
    opacity: 1;
}
.lv2-contact-info__label {
    font-size: 0.67rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: #8898aa;
}
.lv2-contact-info__item--wa .lv2-contact-info__label {
    color: rgba(255,255,255,.75);
}
.lv2-contact-info__value {
    font-size: 0.9rem;
    font-weight: 600;
    color: #2c3e58;
    line-height: 1.35;
}
.lv2-contact-info__item--wa .lv2-contact-info__value {
    color: #fff;
}

/* M42 — Footer legal */
.lv2-footer {
    background: var(--lv2-text);
    color: rgba(255, 255, 255, .55);
    font-size: .8rem;
    padding: 20px 18px;
}

.lv2-footer__inner {
    width: min(960px, 100%);
    margin: 0 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 10px;
}

.lv2-footer__legal-id {
    margin: 0;
    line-height: 1.5;
}

.lv2-footer__links {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 4px 16px;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

.lv2-footer__link {
    color: rgba(255, 255, 255, .7);
    text-decoration: underline;
    text-underline-offset: 2px;
    background: none;
    border: none;
    padding: 0;
    font: inherit;
    font-size: .8rem;
    cursor: pointer;
    -webkit-transition: color .15s;
    transition: color .15s;
}

.lv2-footer__link:hover,
.lv2-footer__link:focus {
    color: #fff;
}

@media (min-width: 620px) {
    .lv2-footer__inner {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
    }
}

/* M42 — Modal de política de cookies */
.lv2-cookie-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    padding: 16px;
}

.lv2-cookie-modal[hidden] { display: none; }

.lv2-cookie-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(30, 35, 48, .6);
    cursor: pointer;
}

.lv2-cookie-modal__panel {
    position: relative;
    background: var(--lv2-card);
    border-radius: 16px;
    width: min(520px, 100%);
    max-height: 80vh;
    overflow-y: auto;
    padding: clamp(20px, 4vw, 32px);
    box-shadow: var(--lv2-shadow);
    z-index: 1;
}

.lv2-cookie-modal__header {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}

.lv2-cookie-modal__title {
    margin: 0;
    font-size: 1.25rem;
    letter-spacing: -.03em;
}

.lv2-cookie-modal__close {
    background: none;
    border: none;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
    color: var(--lv2-muted);
    padding: 0 4px;
    -webkit-transition: color .15s;
    transition: color .15s;
    -ms-flex-negative: 0;
    flex-shrink: 0;
}

.lv2-cookie-modal__close:hover { color: var(--lv2-text); }

.lv2-cookie-modal__intro {
    margin: 0 0 18px;
    color: var(--lv2-muted);
    font-size: .88rem;
    line-height: 1.5;
}

.lv2-cookie-modal__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 12px;
}

.lv2-cookie-modal__item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 12px;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    padding: 12px 14px;
    background: var(--lv2-bg);
    border-radius: 10px;
    border: 1px solid var(--lv2-border);
}

.lv2-cookie-modal__cat {
    display: inline-block;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    white-space: nowrap;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    margin-top: 2px;
}

.lv2-cookie-cat--necesarias  { background: #d1fae5; color: #065f46; }
.lv2-cookie-cat--analíticas  { background: #dbeafe; color: #1e40af; }
.lv2-cookie-cat--marketing   { background: #fce7f3; color: #9d174d; }

.lv2-cookie-modal__info strong {
    display: block;
    font-size: .9rem;
    margin-bottom: 4px;
    color: var(--lv2-text);
}

.lv2-cookie-modal__info p {
    margin: 0;
    font-size: .82rem;
    color: var(--lv2-muted);
    line-height: 1.5;
}
