:root {
    color-scheme: light;
    --bg: #f3f3f4;
    --surface: #ffffff;
    --surface-soft: #f8f8f9;
    --text: #1f2124;
    --muted: #666b73;
    --primary: #4f5259;
    --primary-strong: #373a40;
    --accent: #7d8088;
    --border: #d8dbe0;
    --error: #8b3a3a;
    --success: #4e6656;
    --shadow-soft: 0 14px 35px rgba(33, 35, 39, 0.12);
    --shadow-card: 0 12px 26px rgba(47, 50, 56, 0.09);
    --radius-lg: 22px;
    --radius-md: 14px;
    --wave-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

* { box-sizing: border-box; }

html,
body { min-height: 100%; }

body {
    margin: 0;
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
    background:
        radial-gradient(circle at 10% -5%, rgba(154, 158, 166, 0.2), transparent 24%),
        radial-gradient(circle at 100% 5%, rgba(114, 118, 127, 0.18), transparent 31%),
        linear-gradient(180deg, #fcfcfd 0%, #f4f5f7 45%, #eceef1 100%);
    color: var(--text);
    line-height: 1.5;
}

body::before,
body::after {
    content: '';
    position: fixed;
    inset: auto -8vw -10vh -8vw;
    height: 35vh;
    pointer-events: none;
    z-index: -1;
    border-radius: 50%;
    background: radial-gradient(ellipse at center, rgba(146, 150, 158, 0.18), rgba(146, 150, 158, 0));
    animation: waveFloat 12s var(--wave-ease) infinite alternate;
}

body::after {
    bottom: -15vh;
    opacity: .35;
    animation-duration: 16s;
    animation-delay: .2s;
}

@keyframes waveFloat {
    from { transform: translateX(-2%) translateY(0px); }
    to { transform: translateX(2%) translateY(-8px); }
}

header,
main,
footer {
    max-width: 1120px;
    margin: 0 auto;
    padding: 1rem;
}

.site-header {
    padding-top: 1.2rem;
}

.site-header-inner {
    background: rgba(255, 255, 255, 0.74);
    backdrop-filter: blur(14px);
    border: 1px solid rgba(180, 184, 191, 0.5);
    border-radius: 999px;
    padding: .75rem 1.1rem;
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 8px 18px rgba(46, 49, 54, .12);
}

.brand-overline {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: .09em;
    color: var(--muted);
    font-weight: 600;
    font-size: .73rem;
}

.brand-name {
    margin: .1rem 0 0;
    font-size: clamp(1.15rem, 2vw, 1.35rem);
    letter-spacing: .08em;
}

.nav-link,
.text-link {
    color: var(--primary);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
    transition: color .25s ease;
}

.nav-link:hover,
.nav-link:focus-visible,
.text-link:hover,
.text-link:focus-visible {
    color: var(--primary-strong);
}

.nav-link {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: .45rem .9rem;
    text-decoration: none;
    background: #fff;
}

.card {
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.98) 0%, rgba(250, 253, 255, 0.98) 100%);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
    box-shadow: var(--shadow-card);
}

.hero-card {
    position: relative;
    overflow: hidden;
    background: linear-gradient(125deg, #3e4148 5%, #61656d 46%, #9a9ea6 100%);
    color: #fff;
    border: 0;
    box-shadow: var(--shadow-soft);
}

.hero-card::after {
    content: '';
    position: absolute;
    width: 160%;
    height: 160%;
    left: -30%;
    bottom: -95%;
    background: radial-gradient(circle, rgba(255, 255, 255, .22) 0%, rgba(255, 255, 255, 0) 55%);
    animation: heroWave 9s var(--wave-ease) infinite alternate;
}

@keyframes heroWave {
    from { transform: translateX(-2.5%) translateY(0); }
    to { transform: translateX(2.5%) translateY(-1.5%); }
}

.hero-content {
    position: relative;
    z-index: 1;
    max-width: 760px;
}

.eyebrow {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: .13em;
    font-size: .76rem;
    font-weight: 700;
    opacity: .95;
}

.hero-card h2 {
    margin: .5rem 0 .65rem;
    font-size: clamp(1.65rem, 4vw, 2.6rem);
    line-height: 1.2;
    font-family: "Playfair Display", Georgia, serif;
}

.hero-copy {
    margin: 0;
    max-width: 62ch;
    color: rgba(255, 255, 255, .95);
}

.hero-actions {
    margin-top: 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
}

.hero-badges {
    margin-top: 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.hero-badges span {
    background: rgba(255, 255, 255, .17);
    border: 1px solid rgba(255, 255, 255, .35);
    padding: .36rem .75rem;
    border-radius: 999px;
    font-size: .86rem;
}

.btn,
button {
    --btn-bg: var(--primary);
    --btn-fg: #fff;
    --btn-shadow: 0 9px 20px rgba(47, 50, 56, .2);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid transparent;
    border-radius: 12px;
    padding: .62rem 1rem;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: var(--btn-fg);
    background: linear-gradient(145deg, color-mix(in srgb, var(--btn-bg), white 8%) 0%, var(--btn-bg) 100%);
    box-shadow: var(--btn-shadow);
    transition: transform .35s var(--wave-ease), box-shadow .35s var(--wave-ease), filter .25s ease;
}

.btn:hover,
button:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(47, 50, 56, .27);
    filter: saturate(1.06);
}

.btn:active,
button:active {
    transform: translateY(0);
    box-shadow: 0 6px 12px rgba(47, 50, 56, .2);
}

.btn:focus-visible,
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid rgba(125, 128, 136, .42);
    outline-offset: 2px;
}

.btn-secondary,
.button-muted {
    --btn-bg: #f6f6f7;
    --btn-fg: #35383f;
    --btn-shadow: 0 8px 18px rgba(47, 50, 56, .12);
    border-color: #c7ccd3;
}

.split-card {
    margin-top: 1rem;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.1rem;
}

.split-card article {
    background: var(--surface-soft);
    border-radius: 16px;
    border: 1px solid var(--border);
    padding: 1.15rem;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.6);
}

.split-card h3,
.form-card h2 {
    margin: 0;
    font-size: clamp(1.3rem, 2.3vw, 1.9rem);
}

.split-card ol { margin: .6rem 0 1rem; padding-left: 1.2rem; }
.muted { color: var(--muted); }

form {
    display: grid;
    gap: .5rem;
    margin-top: 1rem;
}

label {
    font-weight: 600;
    margin-top: .35rem;
}

input,
textarea,
select {
    width: 100%;
    font: inherit;
    color: var(--text);
    background: #fff;
    border: 1px solid #c9ccd3;
    border-radius: 11px;
    padding: .7rem .75rem;
    transition: border-color .25s ease, box-shadow .25s ease, background-color .25s ease;
}

input:hover,
textarea:hover,
select:hover { border-color: #9ea3ac; }

input:focus,
textarea:focus,
select:focus {
    border-color: #7d8088;
    box-shadow: 0 0 0 3px rgba(125, 128, 136, .2);
    background: #fdfdfe;
}

input:user-invalid,
textarea:user-invalid,
select:user-invalid {
    border-color: #cf5e5e;
    background: #fff8f8;
}

.status {
    display: block;
    margin: .3rem 0;
    font-weight: 500;
}

.status.error { color: var(--error); }
.status.success { color: var(--success); }

.magic-box {
    background: #f5f6f8;
    border: 1px solid #c7cbd3;
    padding: .9rem;
    border-radius: 12px;
    margin-bottom: .7rem;
}

small { display: block; }

.wizard-shell { margin-top: 1rem; }

.external-form-shortcuts {
    margin-top: 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.wizard-layout {
    display: grid;
    grid-template-columns: 290px 1fr;
    gap: 1rem;
}

.wizard-summary {
    display: grid;
    gap: .5rem;
    align-content: start;
}


.wizard-layout > * {
    min-width: 0;
}

.wizard-summary-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    width: 100%;
    min-width: 0;
    gap: .2rem;
    padding: .7rem .8rem;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
    color: var(--text);
    box-shadow: none;
    transform: none;
}

.wizard-summary-item small,
.wizard-summary-item strong {
    white-space: normal;
    overflow-wrap: anywhere;
}

.wizard-summary-item:hover,
.wizard-summary-item:active {
    transform: none;
    box-shadow: none;
}

.wizard-summary-item.is-current {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(125, 128, 136, .2);
}

.wizard-content form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}

.wizard-field.width-full { grid-column: 1 / -1; }
.wizard-field.width-half { grid-column: span 1; }

.wizard-actions {
    margin-top: 1rem;
    display: flex;
    justify-content: space-between;
    gap: .6rem;
}

.wizard-error { color: #b91c1c; }
.wizard-help { color: #6b7280; }
.wizard-feedback.is-error { color: #b91c1c; }
.is-required { color: #b91c1c; }
.is-ok { color: #15803d; }
.is-missing { color: #b45309; }

.repeatable-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .5rem;
    margin-bottom: .4rem;
}

.radio-group {
    display: flex;
    gap: .8rem;
    flex-wrap: wrap;
}

.wizard-summary-item.is-complete { border-left: 4px solid #15803d; }
.wizard-summary-item.is-incomplete { border-left: 4px solid #b45309; }
.wizard-summary-item.is-not-started { border-left: 4px solid #9ca3af; }
.wizard-actions-right { display:flex; gap:.5rem; flex-wrap: wrap; }
.wizard-global-progress { font-weight: 600; margin-top: .4rem; }
.wizard-feedback.is-saving { color: #4f5259; }
.wizard-wave-transition {
    animation: wizardWave .55s var(--wave-ease) both;
}

@keyframes wizardWave {
    0% { opacity: 0; transform: translateY(10px) scale(.995); filter: blur(.2px); }
    60% { opacity: .96; transform: translateY(-4px) scale(1.002); filter: blur(0); }
    100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}


.admin-header-block h2 {
    margin: .2rem 0 .35rem;
    font-size: clamp(1.25rem, 2.1vw, 1.7rem);
}

.admin-header-block p {
    margin: 0;
    color: var(--muted);
}

.admin-eyebrow {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .72rem;
    font-weight: 700;
    color: #4b5563;
}

.admin-dashboard-card,
.admin-detail-card {
    display: grid;
    gap: 1rem;
}

.admin-grid--kpi {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.admin-grid--detail {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.admin-stat {
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    border: 1px solid #dbe1e8;
    border-radius: 12px;
    padding: .9rem;
}

.admin-stat h3,
.admin-stat h4 {
    margin: 0 0 .5rem;
}

.admin-stat p {
    margin: .15rem 0;
}

.admin-stat--highlight {
    background: linear-gradient(140deg, #3f4653 0%, #5b6577 100%);
    color: #fff;
    border: 0;
}

.admin-stat--highlight small {
    color: rgba(255, 255, 255, .84);
}

.admin-kpi-value {
    margin: .35rem 0;
    font-size: clamp(1.5rem, 2.6vw, 2rem);
    font-weight: 700;
    line-height: 1.1;
}

.admin-stat-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
}

.admin-status-breakdown {
    display: grid;
    gap: .75rem;
}

.progress-track {
    width: 100%;
    height: 10px;
    background: #e5e7eb;
    border-radius: 999px;
    overflow: hidden;
}

.progress-track span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #4f5259 0%, #7d8088 100%);
    border-radius: inherit;
}

.progress-track--small {
    height: 8px;
}

.admin-chip {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .28rem .68rem;
    font-size: .78rem;
    font-weight: 700;
    color: #374151;
    background: #e5e7eb;
    border: 1px solid #d1d5db;
}

.admin-progress-inline {
    min-width: 140px;
    display: grid;
    gap: .25rem;
}

.admin-table--elevated {
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid #dbe1e8;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}

.admin-table--elevated th {
    background: #f3f4f6;
    color: #374151;
    font-weight: 700;
}

.admin-empty {
    color: #6b7280;
    text-align: center;
    padding: .75rem;
}

.admin-muted {
    color: #6b7280;
}

.admin-progress-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .65rem;
}

.admin-progress-list li {
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: .7rem;
    background: #fff;
}
.admin-nav {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-bottom: 1rem;
}

.admin-nav .btn {
    text-decoration: none;
}

.admin-table .btn {
    padding: .4rem .75rem;
    border-radius: 10px;
    font-size: .88rem;
}

.admin-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: .75rem;
}


.admin-table { width: 100%; border-collapse: collapse; }
.admin-table th,
.admin-table td {
    border-bottom: 1px solid #e5e7eb;
    padding: .5rem;
    text-align: left;
    vertical-align: top;
}

.table-wrap { overflow-x: auto; }
.admin-filters { grid-template-columns: 1fr; margin-bottom: .75rem; }
.admin-pagination { margin-top: .8rem; display: flex; gap: .8rem; align-items: center; }
.admin-json { margin: 0; white-space: pre-wrap; word-break: break-word; font-size: .85rem; }

.site-footer {
    color: var(--muted);
    text-align: center;
    padding-bottom: 1.5rem;
}

.reveal-on-load {
    animation: sectionRise .8s var(--wave-ease) both;
}

@keyframes sectionRise {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 960px) {
    .split-card,
    .wizard-layout,
    .wizard-content form { grid-template-columns: 1fr; }

    .site-header-inner {
        border-radius: 18px;
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 640px) {
    header,
    main,
    footer { padding: .8rem; }

    .card { padding: 1rem; border-radius: 16px; }

    .hero-actions .btn,
    .wizard-actions button,
    form .btn,
    form button {
        width: 100%;
        justify-content: center;
    }
}

.referral-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem 1rem;
}

.referral-form-grid > div {
    min-width: 0;
}

.referral-consent,
.referral-actions-full {
    grid-column: 1 / -1;
}

.referral-consent label {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    font-weight: 500;
    margin-top: .4rem;
}

.referral-status-shortcuts {
    display: grid;
    gap: .5rem;
    align-content: start;
}

.status-chip {
    --chip-bg: #eceff3;
    --chip-border: #c8cdd4;
    --chip-text: #2f3338;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin: 0;
    padding: .4rem .75rem;
    border-radius: 999px;
    border: 1px solid var(--chip-border);
    background: var(--chip-bg);
    color: var(--chip-text);
    font-weight: 700;
    width: fit-content;
}

.status-chip.is-large {
    font-size: 1rem;
    padding: .5rem .9rem;
}

.status-chip.is-pendiente {
    --chip-bg: #eff3f8;
    --chip-border: #ccd7e6;
    --chip-text: #334155;
}

.status-chip.is-cupon-generado {
    --chip-bg: #eef8ee;
    --chip-border: #bfdfc0;
    --chip-text: #1f6a35;
}

.status-chip.is-pago-pendiente {
    --chip-bg: #fff8e8;
    --chip-border: #f1d89c;
    --chip-text: #7a5200;
}

.status-chip.is-confirmado {
    --chip-bg: #eaf7f2;
    --chip-border: #bde2d2;
    --chip-text: #166245;
}

.status-chip.is-cancelado {
    --chip-bg: #fdeeee;
    --chip-border: #f3c4c4;
    --chip-text: #8a2b2b;
}

.referral-status-card {
    display: grid;
    gap: .8rem;
}

.referral-status-message {
    margin: 0;
    font-weight: 500;
}

.status-timeline {
    margin: .35rem 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: .55rem;
}

.status-timeline li {
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: .55rem .75rem;
    background: #fff;
}

.status-timeline li.is-done {
    border-color: #bde2d2;
    background: #f4fbf8;
}

.status-timeline li.is-current {
    box-shadow: 0 0 0 3px rgba(125, 128, 136, .16);
}

.referral-qr-box {
    background: #f8f9fb;
    border-radius: 16px;
    padding: 1rem;
}

.referral-qr-box h3 {
    margin-top: 0;
}

.referral-qr-image {
    width: min(230px, 100%);
    border-radius: 8px;
    border: 1px solid #d2d8e1;
    background: #fff;
    padding: .4rem;
}

@media (max-width: 960px) {
    .referral-form-grid {
        grid-template-columns: 1fr;
    }
}

/* Home aesthetic refresh */
body {
    background: #e6e6e8;
}

body::before,
body::after {
    display: none;
}

header,
main,
footer {
    max-width: none;
    padding: 0;
}

.top-accent-line {
    width: 100%;
    height: 10px;
    background: #0ca3a7;
}

.public-home-main {
    min-height: 100vh;
}

.home-hero {
    position: relative;
    min-height: 620px;
    display: grid;
    place-items: center;
    text-align: center;
    color: #fff;
    overflow: hidden;
    background:
        linear-gradient(rgba(41, 34, 31, 0.25), rgba(41, 34, 31, 0.25)),
        radial-gradient(circle at 15% 20%, rgba(82, 39, 35, 0.4) 0 22%, transparent 22.5%),
        radial-gradient(circle at 65% 75%, rgba(29, 89, 164, 0.42) 0 18%, transparent 18.5%),
        radial-gradient(circle at 85% 45%, rgba(32, 120, 187, 0.4) 0 24%, transparent 24.5%),
        linear-gradient(125deg, #b5938b 0%, #bc9d94 44%, #ae8f86 100%);
}

.home-hero::before,
.home-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.home-hero::before {
    background-image: repeating-linear-gradient(
        72deg,
        rgba(255, 255, 255, 0.08) 0,
        rgba(255, 255, 255, 0.08) 1px,
        transparent 1px,
        transparent 9px
    );
    opacity: 0.35;
}

.home-hero::after {
    background: radial-gradient(circle at 50% 50%, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.35));
}

.home-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.08) 0%, rgba(0, 0, 0, 0.24) 100%);
}

.home-hero-content {
    position: relative;
    z-index: 2;
    max-width: 920px;
    padding: 2rem 1rem;
}

.home-hero-eyebrow {
    margin: 0 0 .8rem;
    text-transform: uppercase;
    letter-spacing: .26em;
    font-size: clamp(1.2rem, 2.8vw, 2rem);
    font-weight: 700;
}

.home-hero h2 {
    margin: 0;
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(3rem, 7vw, 5.8rem);
    font-weight: 400;
    line-height: 1.05;
}

.home-hero p {
    max-width: 760px;
    margin: 1rem auto 0;
    font-size: clamp(1rem, 1.8vw, 1.35rem);
}

.btn-hero {
    margin-top: 1.5rem;
    background: rgba(255, 255, 255, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.48);
    backdrop-filter: blur(3px);
}

.home-contact-section {
    background: #e3e3e5;
    padding: 2.1rem 1rem 4rem;
}

.home-contact-section h3 {
    margin: 0 0 1.2rem;
    text-align: center;
    font-size: clamp(2.7rem, 6vw, 4.8rem);
    line-height: 1.05;
    color: #6d6d73;
    font-family: "Playfair Display", Georgia, serif;
    font-weight: 400;
}

.home-contact-form {
    max-width: 1120px;
    margin: 0 auto;
    display: grid;
    gap: 1.4rem;
}

.home-contact-form input,
.home-contact-form textarea {
    border: 1px solid #c5c5c7;
    border-radius: 10px;
    padding: 1.9rem 1.8rem;
    font-size: clamp(1.2rem, 2.4vw, 2rem);
    background: #ececee;
    color: #2f4156;
}

.home-contact-form textarea {
    min-height: 320px;
    resize: vertical;
}

.home-contact-form input::placeholder,
.home-contact-form textarea::placeholder {
    color: #3a4d64;
    opacity: 1;
}

.home-submit {
    width: fit-content;
    justify-self: center;
    min-width: 200px;
}

.home-contact-help {
    text-align: center;
    margin-top: 1rem;
    font-size: 1rem;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.site-footer {
    padding: 1rem;
    background: #e3e3e5;
}

@media (max-width: 768px) {
    .home-hero {
        min-height: 500px;
    }

    .home-contact-form input,
    .home-contact-form textarea {
        padding: 1.1rem;
        font-size: 1.2rem;
    }

    .home-contact-form textarea {
        min-height: 210px;
    }
}


:root {
  --color-navy: #071B3A;
  --color-navy-2: #0B2E5E;
  --color-gold: #D8A526;
  --color-gold-soft: #FFF3D6;
  --color-orange: #FF8A00;
  --color-green: #16A34A;
  --color-danger: #E11D48;
  --color-white: #FFFFFF;
  --color-bg: #F6F8FB;
  --color-text: #111827;
  --color-muted: #6B7280;
  --shadow-soft: 0 18px 45px rgba(7, 27, 58, 0.12);
}
.marketing-shell{background:linear-gradient(135deg,var(--color-navy),var(--color-navy-2));color:#fff;border-radius:24px;padding:1.5rem;overflow:hidden}
.hero-section h1,.hero-section h2{font-family:"Playfair Display",serif;color:#fff}.gold{color:var(--color-gold)}
.cta-primary{background:linear-gradient(145deg,#ff9500,#ff7a00)!important;color:#fff!important}
.cta-secondary{background:#fff!important;color:var(--color-navy)!important;border:1px solid #c8d1e0}
.trust-badge{display:inline-flex;gap:.45rem;align-items:center;background:rgba(20,113,89,.18);color:#d6ffe9;border:1px solid rgba(118,224,183,.35);border-radius:999px;padding:.5rem .85rem;font-size:.92rem}
.form-card{border-radius:16px;box-shadow:var(--shadow-soft)}
.progress-sticky{position:sticky;top:.5rem;z-index:10;background:#fff7e8;border:1px solid #ffe1ab;padding:.65rem .8rem;border-radius:12px;margin-bottom:.6rem}
.section-card{border:1px solid #dbe4f1;border-radius:14px;padding:.75rem;background:#fff}
.floating-whatsapp{position:fixed;right:18px;bottom:18px;z-index:40}
.floating-whatsapp a{background:#25D366;color:#fff;padding:.75rem .95rem;border-radius:999px;text-decoration:none;font-weight:700;box-shadow:0 12px 30px rgba(0,0,0,.2)}
.urgency-banner{background:var(--color-gold-soft);color:#7a5508;padding:.5rem .75rem;border-radius:10px;font-weight:600}
.site-footer{padding-bottom:4.5rem}
@media (max-width: 768px){.hero-actions .btn{width:100%;justify-content:center}.floating-whatsapp{bottom:80px}}


.landing-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.brand-lockup .brand-overline{color:#d7e5ff;font-size:1.05rem;letter-spacing:.08em}
.landing-menu{display:flex;flex-wrap:wrap;gap:.75rem}
.hero-split{display:grid;grid-template-columns:1.15fr .85fr;gap:1.25rem;align-items:start;margin-top:1rem}
.hero-left h1{font-family:"Playfair Display",serif;font-size:clamp(2rem,4vw,4rem);line-height:1.05;margin:.1rem 0 .6rem}
.hero-left h1 span{color:#ffc24a}
.hero-left p{max-width:58ch;color:#d5e3f9;font-size:1.08rem}
.mini-progress{display:flex;justify-content:space-between;background:#fff;color:#12366b;border-radius:14px;padding:.75rem 1rem;font-weight:700;margin:1rem 0}
.home-contact-form{gap:.75rem}
.home-contact-form input{background:#fff;border:1px solid #d5dbe8;border-radius:12px;padding:1rem 1rem;font-size:1.12rem}
.home-submit{width:100%;justify-content:center;min-height:56px;font-size:1.8rem;border-radius:12px}
.benefits-card{background:#eef2f8;color:#173f78;border-radius:18px;padding:1.5rem}
.benefits-card h3{font-family:"Playfair Display",serif;font-size:2rem;line-height:1.1;margin:0 0 1.15rem}
.benefits-card ul{list-style:none;padding:0;margin:0;display:grid;gap:1rem}
.benefits-card li{display:grid;gap:.25rem}
.benefits-card strong{font-size:1.9rem}
.benefits-card span{font-size:1.05rem;color:#34547d}
.trust-inline{margin-top:1.4rem;background:#dff4e8;color:#1d7f4b;padding:.8rem 1rem;border-radius:12px;font-weight:700}
.cta-dark{background:transparent!important;border:1px solid rgba(255,255,255,.35);color:#fff!important}
.hero-image-card{min-height:340px;border-radius:20px;background-size:cover;background-position:center;box-shadow:var(--shadow-soft)}
.hero-stock .hero-image-card{
  background-image:
    linear-gradient(rgba(7,27,58,.24),rgba(7,27,58,.42)),
    radial-gradient(circle at 18% 18%, rgba(216,165,38,.35), transparent 42%),
    radial-gradient(circle at 76% 28%, rgba(255,138,0,.22), transparent 36%),
    linear-gradient(140deg, #0b2e5e 0%, #0a2750 45%, #071b3a 100%);
  position: relative;
  overflow: hidden;
}
.hero-stock .hero-image-card::before{
  content:'PASSPORT';
  position:absolute;
  right:8%;
  bottom:10%;
  transform:rotate(-14deg);
  background:#0d2346;
  border:1px solid rgba(216,165,38,.55);
  color:#d8a526;
  letter-spacing:.12em;
  font-weight:700;
  padding:1.35rem 1.1rem;
  border-radius:10px;
  box-shadow:0 20px 40px rgba(0,0,0,.35);
}
.hero-stock .hero-image-card::after{
  content:'✈';
  position:absolute;
  left:12%;
  top:10%;
  font-size:2.3rem;
  opacity:.9;
}
.hero-microcopy{opacity:.95}
.process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
@media(max-width:900px){.hero-split{grid-template-columns:1fr}.process-grid{grid-template-columns:1fr}.benefits-card strong{font-size:1.4rem}.home-submit{font-size:1.2rem}}

/* Visa form premium refresh */
.visa-form-hero{background:linear-gradient(135deg,#0b3366,#164885);color:#fff;border:0}
.visa-form-hero h2,.visa-form-hero p,.visa-form-hero strong{color:#fff}
.visa-form-shell{border-color:#cfdced;box-shadow:0 20px 45px rgba(14,42,79,.16)}
.visa-form-shell .wizard-header{background:#f7faff;border:1px solid #d9e6f6;border-radius:14px;padding:1rem}
.visa-form-shell .wizard-actions button[data-js="wizard-next"]{background:linear-gradient(90deg,#ff8600,#ff9f1f);border:none;color:#fff}
.visa-form-shell .wizard-summary{background:#f8fbff;border-right:1px solid #dce7f6}
@media (max-width:900px){.visa-form-shell .wizard-summary{border-right:0;border-bottom:1px solid #dce7f6}}

/* Formulario externo comercial + fondo rotativo desenfocado */
.visa-form-hero--rotating{position:relative;overflow:hidden;isolation:isolate;background:transparent;transition:opacity .25s ease}
.visa-form-hero--rotating::before{content:"";position:absolute;inset:0;background-image:var(--hero-bg-image);background-size:cover;background-position:center;filter:blur(7px) saturate(1.08);transform:scale(1.08);opacity:.45;z-index:0;transition:opacity .35s ease,background-image .45s ease}
.visa-form-hero--rotating::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(5,31,67,.86),rgba(7,42,89,.82));z-index:1}
.visa-form-hero--rotating > *{position:relative;z-index:2}
.visa-form-hero--rotating.is-switching::before{opacity:.2}
.visa-form-hero .external-form-shortcuts .btn{background:#ffffffea;color:#18365f;border:1px solid #d2deef}
.visa-form-hero .external-form-shortcuts .btn:hover{background:#fff}
.visa-form-shell{position:relative;overflow:hidden;isolation:isolate;background:transparent;border:1px solid rgba(189,210,232,.75);border-radius:30px;box-shadow:0 24px 48px rgba(7,25,51,.25);padding:1.45rem 1rem 1rem}
.visa-form-shell::before{content:"";position:absolute;inset:0;background-image:var(--hero-bg-image);background-size:cover;background-position:center 35%;filter:blur(4px) saturate(1.15) contrast(1.05);transform:scale(1.03);opacity:.62;z-index:0}
.visa-form-shell::after{content:"";position:absolute;inset:0;background:linear-gradient(130deg,rgba(9,32,61,.48),rgba(9,46,79,.44));z-index:1}
.visa-form-shell > *{position:relative;z-index:2}
.visa-form-shell .wizard-layout{gap:0}
.visa-form-shell .wizard-summary{background:rgba(255,255,255,.78);border-right:1px solid rgba(220,231,246,.12);border-radius:24px;backdrop-filter:blur(8px)}
.visa-form-shell .wizard-content{background:rgba(255,255,255,.55);border:1px solid rgba(217,228,244,.78);border-radius:26px;padding:1.25rem;backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.visa-form-shell .wizard-header{background:rgba(255,255,255,.84);border:1px solid rgba(217,230,246,.85);border-radius:22px;backdrop-filter:blur(8px);box-shadow:0 10px 24px rgba(10,37,70,.08)}
.visa-form-shell .wizard-summary-item{border-radius:22px;border:1px solid rgba(171,186,206,.9);box-shadow:0 4px 10px rgba(7,25,51,.07)}
.visa-form-shell .wizard-summary-item.is-current{box-shadow:0 0 0 3px rgba(255,134,0,.22),0 8px 18px rgba(7,25,51,.12)}
.visa-form-shell select,.visa-form-shell input,.visa-form-shell textarea{border-radius:12px;border:1px solid #cfddee;background:#fff;color:#1f2a37}

/* Resend access premium section */
.resend-premium-shell{position:relative;overflow:hidden;padding:0}
.resend-premium-shell__bg{position:absolute;inset:0;background:
  linear-gradient(120deg,rgba(5,31,67,.92),rgba(8,44,88,.9)),
  url('/assets/img/hero-vacaciones-2.svg') center/cover no-repeat;filter:blur(1px) saturate(1.05)}
.resend-premium-shell__content{position:relative;z-index:1;padding:1.45rem;color:#fff}
.resend-kicker{text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;color:#c8dcff;margin:0 0 .4rem}
.resend-premium-shell h2{font-family:"Playfair Display",serif;font-size:clamp(1.9rem,3.8vw,2.8rem);margin:.2rem 0 .5rem}
.resend-premium-shell > *{color:#fff}
.resend-premium-shell .status.error,.resend-premium-shell .status.success{color:#fff}
.resend-premium-shell > p .text-link{color:#fff}
.resend-premium-shell .magic-box .text-link{color:#0b3366}
.resend-premium-shell .magic-box .text-link:hover,.resend-premium-shell .magic-box .text-link:focus-visible{color:#164885}
.resend-form-grid{display:grid;gap:.65rem;background:#ffffffeb;padding:1rem;border-radius:14px;border:1px solid #d7e1ef;margin-top:1rem}
.resend-form-grid label{color:#15345f;font-weight:700}
.resend-form-grid input{border:1px solid #cfdcec;border-radius:11px;padding:.84rem 1rem;font-size:1.03rem}
.resend-form-grid .btn{justify-content:center;background:linear-gradient(90deg,#ff8600,#ff9a14);border:none}
