:root {
    --lime: #c8ff00;
    --black: #060807;
    --ink: #0b0d0c;
    --muted: #707572;
    --line: #e5e8e5;
    --off: #f5f7f5;
    --white: #fff;
    --display: "Outfit", sans-serif;
    --body: "Poppins", sans-serif;
    --hand: "Caveat", cursive;
    --ease: cubic-bezier(.2, .75, .25, 1);
    --shadow: 0 22px 60px rgba(5, 12, 8, .12);
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    color: var(--ink);
    background: #fff;
    font-family: var(--body);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

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

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

button {
    font: inherit;
}

.container {
    width: min(1200px, calc(100% - 44px));
    margin: auto;
}

.section-pad {
    padding: 96px 0;
}

.eyebrow {
    margin: 0 0 14px;
    font-family: var(--display);
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .17em;
    text-transform: uppercase;
}

.lime {
    color: var(--lime);
}

/* =========================
   ANNOUNCEMENT
========================= */

.announcement {
    height: 30px;
    background: var(--lime);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    font-family: var(--display);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .19em;
}

.announcement i {
    align-content: center;
    width: 4px;
    height: 4px;
    background: #111;
    border-radius: 50%;
}

/* =========================
   HEADER / NAV
========================= */

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(255, 255, 255, .94);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid #eee;
    transition: .3s var(--ease);
}

.site-header.scrolled {
    box-shadow: 0 12px 35px rgba(0, 0, 0, .08);
}

.nav-wrap {
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
}

.logo-link {
    width: 142px;
}

.main-nav {
    display: flex;
    align-items: center;
    gap: 24px;
    font-size: 15px;
    font-weight: 700;
}

.main-nav > a:not(.nav-pill) {
    position: relative;
    padding: 8px 0;
}

.main-nav > a:not(.nav-pill)::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: 2px;
    height: 2px;
    background: var(--lime);
    transition: right .28s var(--ease);
}

.main-nav > a:hover::after {
    right: 0;
}

.nav-pill {
    padding: 12px 18px;
    border-radius: 999px;
    background: #0a0c0b;
    color: #fff;
    transition: .25s var(--ease);
}

.nav-pill:hover {
    color: #000;
    background: var(--lime);
    transform: translateY(-2px);
}

.menu-btn {
    display: none;
    width: 42px;
    height: 42px;
    border: 0;
    background: none;
}

.menu-btn span {
    display: block;
    width: 24px;
    height: 1.5px;
    margin: 6px auto;
    background: #111;
    transition: .25s;
}

/* =========================
   HERO
========================= */

.hero {
    position: relative;
    min-height: 690px;
    color: #fff;
    background: #050706;
    overflow: hidden;
    scroll-margin-top: 100px;
}

.hero-media {
    position: absolute;
    inset: 0;
    background: url("assets/images/hero-campus-tessa.png") center / cover;
    transform: scale(1.015);
    animation: heroIn 1.3s var(--ease) both;
}

.hero-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
            linear-gradient(
                    90deg,
                    #040605 0%,
                    rgba(4, 6, 5, .95) 28%,
                    rgba(4, 6, 5, .56) 57%,
                    rgba(4, 6, 5, .04) 82%
            ),
            linear-gradient(
                    0deg,
                    rgba(3, 5, 4, .82),
                    transparent 42%
            );
}

.hero-grid-overlay {
    position: absolute;
    inset: 0;
    background-image:
            linear-gradient(rgba(200, 255, 0, .04) 1px, transparent 1px),
            linear-gradient(90deg, rgba(200, 255, 0, .04) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: linear-gradient(90deg, #000, transparent 58%);
}

.hero-inner {
    position: relative;
    z-index: 2;
    min-height: 590px;
    display: flex;
    align-items: center;
}

.hero-copy {
    width: min(590px, 58%);
    padding: 55px 0 85px;
}

.hero h1 {
    margin: 0;
    font-family: var(--display);
    font-size: clamp(58px, 6.2vw, 88px);
    font-weight: 800;
    line-height: .88;
    letter-spacing: -.058em;
}

.hero h1 span {
    color: var(--lime);
    position: relative;
}

.hero h1 span::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -2px;
    height: 3px;
    background: var(--lime);
    transform: rotate(-1deg);
}

.hero-lead {
    max-width: 510px;
    margin: 25px 0 28px;
    color: #d3d6d4;
    font-size: 17px;
}

.hero-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.btn {
    min-height: 50px;
    padding: 0 21px;
    border: 1px solid transparent;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-size: 15px;
    font-weight: 800;
    transition: .28s var(--ease);
}

.btn:hover {
    transform: translateY(-3px);
}

.btn b {
    transition: .25s;
}

.btn:hover b {
    transform: translateX(4px);
}

.btn-lime {
    background: var(--lime);
    color: #050705;
    box-shadow: 0 12px 35px rgba(200, 255, 0, .2);
}

.btn-lime:hover {
    box-shadow: 0 18px 45px rgba(200, 255, 0, .32);
}

.btn-ghost {
    border-color: #ffffff70;
    color: #fff;
    background: #03050455;
    backdrop-filter: blur(8px);
}

.btn-ghost:hover {
    background: #fff;
    color: #000;
}

.hero-note {
    position: absolute;
    right: 1.5%;
    top: 16%;
    font-family: var(--hand);
    font-size: 27px;
    font-weight: 700;
    line-height: 1.05;
    transform: rotate(-5deg);
    text-shadow: 0 3px 18px #000;
}

.hero-note span {
    display: block;
    width: 115px;
    height: 4px;
    margin-top: 9px;
    background: var(--lime);
    transform: rotate(-4deg);
}

.hero-services {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 4;
    border-top: 1px solid #ffffff22;
    background: #030504d9;
    backdrop-filter: blur(14px);
}

.service-tabs {
    min-height: 74px;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-items: center;
}

.service-tabs a {
    height: 34px;
    padding: 0 15px;
    display: flex;
    align-items: center;
    gap: 9px;
    border-right: 1px solid #ffffff25;
    font-size: 17px;
    font-weight: 600;
    transition: .22s;
}

.service-tabs a:last-child {
    border-right: 0;
}

.service-tabs a:hover {
    color: var(--lime);
    background: #c8ff000d;
}

.service-tabs b {
    color: var(--lime);
    font-family: var(--display);
    font-size: 17px;
}

@keyframes heroIn {
    from {
        opacity: 0;
        transform: scale(1.07);
    }

    to {
        opacity: 1;
        transform: scale(1.015);
    }
}

/* =========================
   TRUST / RESPALDO CIENTÍFICO
========================= */

.trust-band {
    padding: 24px 0;
    background: #fff;
    border-bottom: 1px solid var(--line);
}

.trust-grid {
    display: grid;
    grid-template-columns:
        minmax(225px, 1.45fr)
        minmax(190px, 1.15fr)
        repeat(4, minmax(92px, .66fr))
        minmax(150px, .88fr);
    gap: 0;
    align-items: stretch;
}

.trust-intro {
    min-width: 0;
    padding: 8px 20px 8px 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-right: 1px solid var(--line);
}

.trust-intro h2 {
    margin: 0 0 7px;
    font: 800 20px / 1.02 var(--display);
}

.trust-intro p {
    margin: 0;
    color: var(--muted);
    font-size: 17px;
    line-height: 1.55;
}

/* Marca ASCientíficos */
.as-brand {
    min-width: 0;
    padding: 8px 18px;
    display: flex;
    align-items: center;
    gap: 12px;
    border-right: 1px solid var(--line);
}

.as-mark-img {
    display: block;
    width: clamp(46px, 4.2vw, 68px);
    height: auto;
    max-height: 64px;
    object-fit: contain;
    flex: 0 0 auto;
}

.as-brand-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

.as-brand strong {
    display: block;
    margin: 0;
    font-family: var(--display);
    font-size: clamp(14px, 1.15vw, 17px);
    font-weight: 700;
    line-height: 1.05;
    white-space: nowrap;
}

.as-brand small {
    display: block;
    margin-top: 3px;
    color: #777e7a;
    font-size: clamp(9px, .7vw, 10px);
    line-height: 1.25;
}

.trust-stat {
    min-width: 0;
    min-height: 76px;
    padding: 12px 13px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-right: 1px solid var(--line);
}

.trust-stat strong {
    display: block;
    font: 800 22px / 1 var(--display);
}

.trust-stat span {
    display: block;
    margin-top: 6px;
    color: #6f7572;
    font-size: 12px;
    line-height: 1.45;
    !important;
}

.trust-claim {
    min-width: 0;
    margin: 0;
    padding: 10px 0 10px 16px;
    display: flex;
    align-items: center;
    border-left: 3px solid var(--lime);
    font: 900 17px / 1.55 var(--display);
    letter-spacing: .09em;
}

/* =========================
   METHOD
========================= */

.method {
    color: #fff;
    background:
            radial-gradient(
                    circle at 20% 30%,
                    #102017,
                    #070b09 38%,
                    #040605 78%
            );
}

.method-grid {
    display: grid;
    grid-template-columns: .82fr 1.55fr;
    gap: 65px;
    align-items: center;
}

.method-copy h2 {
    margin: 0;
    font: 700 clamp(44px, 4.6vw, 66px) / .94 var(--display);
    letter-spacing: -.05em;
}

.method-copy h2 span {
    color: var(--lime);
}

.method-copy > p:not(.eyebrow) {
    margin: 23px 0;
    color: #aab0ac;
    font-size: 16px;
}

.text-link {
    display: inline-flex;
    gap: 9px;
    margin-top: 8px;
    padding-bottom: 4px;
    border-bottom: 1px solid #69706c;
    font-size: 14px;
    font-weight: 700;
}

.text-link b {
    color: var(--lime);
}

.steps-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 11px;
}

.step-card {
    min-height: 176px;
    padding: 19px;
    border: 1px solid #3a423e;
    border-radius: 12px;
    background: linear-gradient(145deg, #ffffff09, #ffffff02);
    position: relative;
    transition: .32s var(--ease);
}

.step-card:hover {
    transform: translateY(-6px);
    border-color: var(--lime);
    background: #c8ff000e;
}

.step-card span {
    color: var(--lime);
    font: 900 16px var(--display);
}

.step-card i {
    position: absolute;
    right: 17px;
    top: 14px;
    color: var(--lime);
    font-size: 24px;
    font-style: normal;
}

.step-card h3 {
    margin: 21px 0 6px;
    font: 700 15px var(--display);
}

.step-card p {
    margin: 0;
    color: #b2b7b4;
    font-size: 13.5px;
}

/* =========================
   WHY
========================= */

.why {
    padding: 58px 0;
}

.why-grid {
    display: grid;
    grid-template-columns: 1.2fr repeat(4, 1fr);
    align-items: center;
}

.why-title {
    padding-right: 35px;
}

.why-title h2 {
    margin: 0;
    font: 700 42px var(--display);
    letter-spacing: -.05em;
}

.why-title h2 span {
    color: #82a900;
}

.why-title > p:last-child {
    margin: 9px 0;
    color: #777;
    font-size: 14px;
}

.benefit {
    min-height: 155px;
    padding: 9px 23px;
    border-left: 1px solid var(--line);
}

.benefit i {
    width: 39px;
    height: 39px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--lime);
    font-size: 21px;
    font-style: normal;
    transition: .3s var(--ease);
}

.benefit:hover i {
    transform: rotate(8deg) scale(1.08);
}

.benefit h3 {
    margin: 13px 0 7px;
    font: 700 16px var(--display);
}

.benefit p {
    margin: 0;
    color: #777;
    font-size: 14px;
}


/* =========================
   TESTIMONIALS
========================= */

.testimonials {
    position: relative;
    overflow: hidden;
    background:
            radial-gradient(circle at 13% 24%, rgba(200,255,0,.09), transparent 19%),
            radial-gradient(circle at 88% 17%, rgba(200,255,0,.08), transparent 17%),
            linear-gradient(180deg, #ffffff 0%, #fbfcfb 100%);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    scroll-margin-top: 96px;
}

.testimonials::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
            linear-gradient(rgba(9,15,11,.018) 1px, transparent 1px),
            linear-gradient(90deg, rgba(9,15,11,.018) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(180deg, transparent, #000 22%, #000 78%, transparent);
}

.testimonials-orb {
    position: absolute;
    width: 210px;
    aspect-ratio: 1;
    border-radius: 50%;
    background: rgba(200,255,0,.17);
    filter: blur(42px);
    pointer-events: none;
}

.testimonials-orb-one {
    top: 100px;
    left: -85px;
}

.testimonials-orb-two {
    right: -70px;
    bottom: 80px;
}

.testimonials-wrap {
    position: relative;
    z-index: 2;
}

.testimonials-heading {
    max-width: 720px;
    margin: 0 auto 52px;
    text-align: center;
}

.testimonials-heading .eyebrow {
    color: #090909;
}

.testimonials-heading h2 {
    margin: 0;
    font: 800 clamp(38px, 4.5vw, 62px) / .96 var(--display);
    letter-spacing: -.052em;
}

.testimonials-heading h2 span {
    position: relative;
    color: #000000;
}

.testimonials-heading h2 span::after {
    content: "";
    position: absolute;
    left: 3%;
    right: 2%;
    bottom: -7px;
    height: 3px;
    border-radius: 999px;
    background: var(--lime);
    transform: rotate(-1deg);
}

.testimonials-heading > p:last-child {
    max-width: 560px;
    margin: 20px auto 0;
    color: var(--muted);
    font-size: 16px;
}

.testimonials-stage {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    width: min(1180px, 100%);
    margin: 0 auto;
    perspective: 1500px;
    touch-action: pan-y;
}

.testimonial-shell {
    position: relative;
    min-width: 0;
    height: 330px;
    opacity: 0;
    transform: translateX(var(--entry-shift)) translateY(22px) rotate(var(--entry-rotate)) scale(.97);
    transform-origin: center bottom;
    transition: transform .8s cubic-bezier(.175,.885,.32,1.275), opacity .5s ease;
    perspective: 1200px;
}

.testimonials-stage.is-ready .testimonial-shell {
    opacity: 1;
    transform: none;
}

.testimonials-stage.is-ready .testimonial-shell:hover {
    z-index: 3;
    transform: translateY(-6px);
}

.testimonials-stage.is-ready .testimonial-shell:nth-child(2) {
    transition-delay: .1s;
}

.testimonials-stage.is-ready .testimonial-shell:nth-child(3) {
    transition-delay: .2s;
}

.testimonial-shell::after {
    content: "";
    position: absolute;
    inset: 14px 12px -5px;
    z-index: -2;
    border-radius: 24px;
    background: rgba(19,31,23,.16);
    filter: blur(22px);
    opacity: .32;
    transition: opacity .3s var(--ease);
}

.testimonial-shell:hover::after {
    opacity: .48;
}

.testimonial-card {
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 20px;
    transform-style: preserve-3d;
    transition: transform .75s cubic-bezier(.2,.75,.25,1);
}

.testimonial-card.is-flipped {
    transform: rotateY(180deg);
}

.testimonial-face {
    position: absolute;
    inset: 0;
    overflow: hidden;
    border: 1px solid rgba(18,26,20,.07);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 16px 38px rgba(24,35,27,.1);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transform: rotateY(0deg) translateZ(1px);
}

.testimonial-face::before {
    content: "";
    position: absolute;
    top: 0;
    left: 28px;
    width: 52px;
    height: 3px;
    border-radius: 0 0 99px 99px;
    background: var(--lime);
}

.testimonial-back {
    transform: rotateY(180deg) translateZ(1px);
}

.testimonial-content {
    height: 100%;
    display: flex;
    flex-direction: column;
    padding: 29px 28px 24px;
}

.testimonial-title {
    min-height: 64px;
    margin: 0;
    color: #111512;
    font: 700 29px / 1.08 Georgia, "Times New Roman", serif;
    letter-spacing: -.7px;
}

.testimonial-stars {
    margin: 12px 0 16px;
    color: #f2b633;
    font-size: 17px;
    line-height: 1;
    letter-spacing: 4px;
}

.testimonial-text {
    margin: 0;
    color: #5f6662;
    font-size: 15px;
    line-height: 1.58;
    flex: 1;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
    overflow: hidden;
}

.testimonial-person {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    margin-top: 16px;
}

.testimonial-avatar {
    position: relative;
    width: 48px;
    height: 48px;
    overflow: hidden;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: linear-gradient(145deg, #d5ff42, #edf1ee);
    box-shadow: 0 0 0 3px rgba(200,255,0,.2);
}

.testimonial-avatar img {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 20%;
}

.testimonial-avatar img[hidden] {
    display: none;
}

.testimonial-initials {
    position: relative;
    z-index: 1;
    color: #111512;
    font: 800 16px var(--display);
}

.testimonial-name {
    display: block;
    color: #111512;
    font: 800 15px / 1.2 var(--display);
}

.testimonial-career {
    display: block;
    margin-top: 4px;
    color: #8a908d;
    font-size: 14px;
    line-height: 1.3;
}
.testimonials-footer {
    width: min(1180px, 100%);
    margin: 30px auto 0;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 28px;
    align-items: center;
}

.testimonials-copy {
    display: flex;
    align-items: center;
    gap: 12px;
}

.testimonials-copy > span {
    width: 34px;
    height: 3px;
    flex: none;
    border-radius: 99px;
    background: var(--lime);
}

.testimonials-copy p {
    margin: 0;
    color: #737a76;
    font-size: 13.5px;
}

.testimonials-navigation {
    display: flex;
    align-items: center;
    gap: 18px;
}

.testimonials-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 16px;
}

.testimonial-dot {
    width: 7px;
    height: 7px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #d3d8d5;
    cursor: pointer;
    transition: .25s var(--ease);
}

.testimonial-dot.active {
    width: 24px;
    border-radius: 999px;
    background: #9dc900;
}

.testimonials-arrows {
    display: flex;
    gap: 8px;
}

.testimonial-arrow {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid #dfe4e1;
    border-radius: 50%;
    background: rgba(255,255,255,.92);
    color: #141816;
    font-size: 17px;
    cursor: pointer;
    box-shadow: 0 7px 18px rgba(17,29,22,.07);
    transition: .25s var(--ease);
}

.testimonial-arrow:hover,
.testimonial-arrow:focus-visible {
    border-color: #a5d100;
    background: var(--lime);
    transform: translateY(-2px);
    outline: none;
}

.testimonials-swipe {
    display: none;
    margin: 18px 0 0;
    color: #8b918d;
    font-size: 14px;
    text-align: center;
}

@media (max-width: 1023px) {
    .testimonials-stage {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: min(720px, 100%);
    }

    .testimonial-shell:nth-child(3) {
        display: none;
    }

    .testimonials-footer {
        width: min(720px, 100%);
    }
}

@media (max-width: 767px) {
    .testimonials-heading {
        margin-bottom: 38px;
    }

    .testimonials-heading h2 {
        font-size: clamp(36px, 11vw, 47px);
    }

    .testimonials-heading > p:last-child {
        font-size: 14px;
    }

    .testimonials-stage {
        grid-template-columns: 1fr;
        width: min(390px, 100%);
    }

    .testimonial-shell {
        height: 330px;
    }

    .testimonial-shell:nth-child(2),
    .testimonial-shell:nth-child(3) {
        display: none;
    }

    .testimonial-content {
        padding: 27px 24px 22px;
    }

    .testimonial-text {
        font-size: 14.5px;
        -webkit-line-clamp: 5;
    }

    .testimonials-footer {
        width: min(390px, 100%);
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .testimonials-copy {
        justify-content: center;
        text-align: center;
    }

    .testimonials-navigation {
        justify-content: space-between;
    }

    .testimonials-swipe {
        display: block;
    }
}


/* =========================
   GLOBAL REACH
========================= */

.global-reach {
    position: relative;
    background: #edf3f0;
    overflow: hidden;
    scroll-margin-top: 100px;
}

.global-reach::before,
.global-reach::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.global-reach::before {
    width: 550px;
    height: 550px;
    right: -210px;
    top: -270px;
    border: 110px solid #c8ff0034;
}

.global-reach::after {
    width: 430px;
    height: 430px;
    left: -260px;
    bottom: -300px;
    border: 95px solid #c8ff002b;
}

.global-heading {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1.35fr .65fr;
    gap: 65px;
    align-items: end;
    margin-bottom: 34px;
}

.global-heading h2 {
    margin: 0;
    font: 800 clamp(44px, 5.5vw, 75px) / .9 var(--display);
    letter-spacing: -.055em;
}

.global-heading > p {
    margin: 0;
    color: #66716b;
    font-size: 16px;
}

.map-stage {
    position: relative;
    z-index: 2;
    padding: 19px;
    border: 1px solid #12201925;
    border-radius: 27px;
    background: #ffffffc7;
    box-shadow: 0 28px 70px #16302221;
    backdrop-filter: blur(12px);
    overflow: visible;
}

.map-brand {
    position: absolute;
    left: 30px;
    bottom: 27px;
    z-index: 12;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    border: 1px solid rgba(118,155,0,.32);
    border-radius: 12px;
    background: rgba(255,255,255,.9);
    box-shadow: 0 12px 28px rgba(18,32,24,.13);
    backdrop-filter: blur(8px);
    pointer-events: none;
}

.map-brand img {
    width: 92px;
    height: auto;
    display: block;
    /*filter: grayscale(1) contrast(1.15);*/
}

.map-brand span {
    max-width: 90px;
    color: #536159;
    font: 700 13.5px/1.25 var(--display);
    letter-spacing: .06em;
    text-transform: uppercase;
}
.map-glow {
    position: absolute;
    inset: 15% 18%;
    background: radial-gradient(circle, #c8ff0045, transparent 65%);
    filter: blur(35px);
}

#worldMap {
    position: relative;
    z-index: 2;
    height: 510px;
}

.map-fallback {
    padding: 110px 20px;
    text-align: center;
    color: #536159;
}

#worldMap:not(:empty) + .map-fallback {
    display: none;
}

.country-display {
    position: absolute;
    right: 31px;
    top: 31px;
    z-index: 20;
    min-width: 225px;
    padding: 11px 15px;
    display: flex;
    align-items: center;
    gap: 11px;
    border: 1px solid #91bd00;
    border-radius: 13px;
    background: #fffffff5;
    box-shadow: 0 16px 35px #17281f26;
    transition: .26s var(--ease);
}

.country-display.pulse {
    animation: countryPulse .42s var(--ease);
}

.country-flag {
    font-size: 30px;
}

.country-display strong {
    display: block;
    font: 700 15px var(--display);
}

.country-display small {
    display: block;
    color: #6d746f;
    font-size: 14px;
}


.global-points {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(4, 1fr) 1.3fr;
    align-items: center;
    margin-top: 23px;
    padding: 19px 24px;
    border-radius: 18px;
    background: #06100a;
    color: #fff;
}

.global-points > div {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 5px 15px;
    border-right: 1px solid #344037;
}

.global-points i {
    color: var(--lime);
    font-size: 23px;
    font-style: normal;
}

.global-points span {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.global-points p {
    margin: 0;
    padding-left: 23px;
    color: #bec5c0;
    font-size: 15px;
}

.global-points strong {
    display: block;
    color: var(--lime);
}

.jvm-zoom-btn {
    z-index: 8 !important;
    width: 29px !important;
    height: 29px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 50% !important;
    background: #111 !important;
    color: var(--lime) !important;
    font-weight: 900 !important;
}

.jvm-tooltip {
    z-index: 99999 !important;
    pointer-events: none !important;
    background: #fff !important;
    color: #111 !important;
    border: 1px solid #8fb800 !important;
}

@keyframes countryPulse {
    50% {
        transform: scale(1.035);
        box-shadow: 0 18px 44px #82aa0040;
    }
}

/* =========================
   CONTACT
========================= */

.contact {
    --contact-media-width: min(46%, 880px);
    position: relative;
    min-height: 245px;
    color: #fff;
    background: #050807;
    overflow: hidden;
}

/*
   En escritorio el panel de video puede crecer hasta el tamaño visual
   aprobado, pero nunca superar 880px. Así no se estira en pantallas grandes.
*/
.contact-media {
    position: absolute;
    inset: 0 auto 0 0;
    width: var(--contact-media-width);
    overflow: hidden;
    background: #eeecec;
}

.contact-media video {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center 52%;
}

.contact-inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: none;
    margin: 0;
    min-height: 245px;
    padding: 0 clamp(40px, 4vw, 80px) 0 calc(var(--contact-media-width) + clamp(34px, 3vw, 58px));
    display: grid;
    grid-template-columns: minmax(380px, 1fr) minmax(250px, 310px);
    column-gap: clamp(35px, 4vw, 72px);
    align-items: center;
}

.contact-copy {
    width: 100%;
    max-width: 500px;
}

.contact-copy h2 {
    margin: 0;
    font: 700 41px / .95 var(--display);
}

.contact-copy h2 span {
    color: var(--lime);
}

.contact-copy > p:last-child {
    max-width: 460px;
    margin: 11px 0 0;
    color: #a7aeaa;
    font-size: 13.5px;
}

.contact-actions {
    width: 100%;
    justify-self: stretch;
    text-align: center;
}

.contact-actions > div {
    display: flex;
    justify-content: center;
    gap: 17px;
    margin-top: 13px;
}

.contact-actions > div a {
    color: #aeb4b0;
    font-size: 13px;
}

.contact-actions a:hover {
    color: var(--lime);
}

/*
   En escritorio y tablet JavaScript compensa el acercamiento del MP4 hacia el
   final. "contain" es importante: conserva el fotograma completo y permite que
   el transform revele más aire alrededor de la llama al reducir la escala.
   Antes de que JS calcule la escala, el video conserva el comportamiento base
   con object-fit: cover para evitar un salto visual al cargar.
*/
@media (min-width: 781px) {
    .contact-media video.video-zoom-ready {
        object-fit: contain;
        transform: scale(var(--contact-video-scale, 1));
        transform-origin: center center;
        will-change: transform;
    }
}

/* =========================
   CONTACTO FINAL · ESCRITORIO >= 1051px
   La franja completa queda centrada y limitada a 1200px.
   Video, texto y botón permanecen unidos sin huecos exteriores.
========================= */

@media (min-width: 1051px) {
    .contact {
        --contact-video-height: 250px;
        --contact-video-width: 444.444px;

        width: min(1200px, calc(100% - 44px));
        max-width: 1200px;
        min-height: var(--contact-video-height);
        margin-inline: auto;
    }

    /* Se elimina el antiguo bloque claro que reservaba más ancho que el video. */
    .contact::before {
        content: none;
        display: none;
    }

    .contact-media {
        position: absolute;
        top: 0;
        right: auto;
        bottom: auto;
        left: 0;

        width: var(--contact-video-width);
        height: var(--contact-video-height);
        aspect-ratio: 16 / 9;
        transform: none;
        overflow: hidden;
    }

    .contact-media video {
        object-fit: contain;
        object-position: center;
    }

    .contact-inner {
        position: relative;
        z-index: 2;

        width: calc(100% - var(--contact-video-width));
        max-width: none;
        min-height: var(--contact-video-height);
        margin: 0 0 0 var(--contact-video-width);
        padding: 0 28px 0 34px;

        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(200px, 260px);
        column-gap: 24px;
        align-items: center;
    }

    .contact-copy {
        max-width: 430px;
    }

}

/* =========================
   FOOTER
========================= */

.site-footer {
    padding: 44px 0 20px;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.3fr .8fr .6fr;
    gap: 85px;
    padding-bottom: 38px;
}

.footer-brand img {
    width: 158px;
}

.footer-brand p {
    max-width: 330px;
    color: #777;
    font-size: 14px;
}

.footer-grid > div:not(.footer-brand) {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
}

.footer-grid strong {
    font: 700 15px var(--display);
}

.footer-grid a,
.footer-grid span {
    color: #777;
    font-size: 13.5px;
}

.footer-grid a:hover {
    color: #000;
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    padding-top: 19px;
    border-top: 1px solid var(--line);
    color: #888;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .09em;
}

/* =========================
   WHATSAPP
========================= */

.whatsapp-float {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 95;
    width: 57px;
    height: 57px;
    display: grid;
    place-items: center;
    border: 4px solid #fff;
    border-radius: 50%;
    background: var(--lime);
    box-shadow: 0 14px 34px #0000003b;
    transition: .28s var(--ease);
}

.whatsapp-float:hover {
    transform: translateY(-5px) scale(1.04);
}

.whatsapp-float svg {
    width: 28px;
    fill: #000;
}

/* =========================
   REVEAL
========================= */

.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition:
            opacity .78s var(--ease),
            transform .78s var(--ease);
}

.reveal-left {
    transform: translateX(-36px);
}

.reveal-scale {
    transform: scale(.965);
}

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

/* =========================
   FLAGS
========================= */

.flag {
    position: relative;
    display: inline-block;
    flex: 0 0 auto;
    width: 28px;
    height: 19px;
    overflow: hidden;
    border: 1px solid #0002;
    border-radius: 3px;
    box-shadow: 0 1px 3px #0002;
    vertical-align: middle;
}

.country-flag {
    width: 35px;
    height: 24px;
}


.flag-pe {
    background: linear-gradient(
            90deg,
            #d91023 0 33.33%,
            #fff 33.33% 66.66%,
            #d91023 66.66%
    );
}

.flag-us {
    background:
            linear-gradient(#21468b, #21468b) 0 0 / 46% 54% no-repeat,
            repeating-linear-gradient(
                    180deg,
                    #b22234 0 7.69%,
                    #fff 7.69% 15.38%
            );
}

.flag-br {
    background: #009b3a;
}

.flag-br::before {
    content: "";
    position: absolute;
    width: 54%;
    height: 72%;
    left: 23%;
    top: 14%;
    background: #ffdf00;
    transform: rotate(45deg);
}

.flag-br::after {
    content: "";
    position: absolute;
    width: 35%;
    aspect-ratio: 1;
    left: 32.5%;
    top: 22%;
    border-radius: 50%;
    background: #002776;
}

.flag-es {
    background: linear-gradient(
            #aa151b 0 25%,
            #f1bf00 25% 75%,
            #aa151b 75%
    );
}

.flag-de {
    background: linear-gradient(
            #000 0 33.33%,
            #dd0000 33.33% 66.66%,
            #ffce00 66.66%
    );
}

.flag-ru {
    background: linear-gradient(
            #fff 0 33.33%,
            #0039a6 33.33% 66.66%,
            #d52b1e 66.66%
    );
}

.flag-cn {
    background: #de2910;
}

.flag-cn::before {
    content: "★";
    position: absolute;
    left: 2px;
    top: -2px;
    color: #ffde00;
    font-size: 10px;
    line-height: 1;
}

.flag-au {
    background:
            radial-gradient(circle at 72% 27%, #fff 0 5%, transparent 6%),
            radial-gradient(circle at 76% 70%, #fff 0 4%, transparent 5%),
            radial-gradient(circle at 55% 60%, #fff 0 4%, transparent 5%),
            #012169;
}

.flag-au::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 48%;
    height: 52%;
    background:
            linear-gradient(34deg, transparent 42%, #fff 43% 55%, transparent 56%),
            linear-gradient(-34deg, transparent 42%, #fff 43% 55%, transparent 56%),
            linear-gradient(90deg, transparent 39%, #c8102e 40% 58%, transparent 59%),
            linear-gradient(transparent 37%, #c8102e 38% 60%, transparent 61%),
            #21468b;
}

/* =========================
   RESPONSIVE <= 1050px
========================= */

@media (max-width: 1050px) {
    .main-nav {
        gap: 14px;
    }

    .trust-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0;
    }

    .trust-intro {
        grid-column: 1 / 3;
        padding: 14px 20px 14px 0;
        border-right: 1px solid var(--line);
        border-bottom: 1px solid var(--line);
    }

    .as-brand {
        grid-column: 3 / 5;
        padding: 12px 18px;
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .trust-stat {
        min-height: 74px;
        border-right: 1px solid var(--line);
    }

    .trust-stat:nth-of-type(6) {
        border-right: 0;
    }

    .trust-claim {
        grid-column: 1 / -1;
        min-height: 44px;
        margin-top: 10px;
        padding: 8px 12px;
        justify-content: center;
        border-left: 0;
        border-top: 3px solid var(--lime);
        text-align: center;
    }

    .method-grid {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .why-grid {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .why-title {
        grid-column: 1 / -1;
        margin-bottom: 24px;
    }

    .benefit:last-child {
        grid-column: 2 / 3;
    }

    .global-points {
        grid-template-columns: repeat(4, 1fr);
    }

    .global-points p {
        grid-column: 1 / -1;
        padding: 17px 12px 0;
    }
}

/* =========================
   CONTACTO FINAL · TABLET 781–1050px
========================= */

@media (min-width: 781px) and (max-width: 1050px) {
    .contact {
        --contact-media-width: 44%;
    }

    .contact-inner {
        min-height: 245px;
        padding: 0 24px 0 calc(var(--contact-media-width) + 3%);
        grid-template-columns: minmax(0, 1fr) minmax(150px, 190px);
        column-gap: 18px;
    }

    .contact-copy {
        max-width: 100%;
    }

    .contact-copy h2 {
        font-size: clamp(30px, 3.6vw, 36px);
    }

    .contact-copy > p:last-child {
        max-width: 100%;
        font-size: 13px;
    }

    .contact-actions > div {
        gap: 10px;
    }

    .contact-actions > div a {
        font-size: 12px;
    }
}

/* =========================
   RESPONSIVE <= 780px
========================= */

@media (max-width: 780px) {
    .container {
        width: min(100% - 28px, 1200px);
    }

    .section-pad {
        padding: 72px 0;
    }

    .announcement {
        justify-content: center;
        align-items: center;
        padding: 0 10px;
        white-space: nowrap;
        overflow: hidden;
    }

    .nav-wrap {
        height: 65px;
    }

    .logo-link {
        width: 126px;
    }

    .menu-btn {
        display: block;
    }

    .main-nav {
        position: absolute;
        left: 14px;
        right: 14px;
        top: 72px;
        padding: 18px;
        display: none;
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
        border: 1px solid #e2e5e3;
        border-radius: 18px;
        background: #fffffff9;
        box-shadow: var(--shadow);
    }

    .main-nav.open {
        display: flex;
    }

    .main-nav a {
        text-align: center;
        font-size: 15px;
    }

    .menu-btn.open span:first-child {
        transform: translateY(4px) rotate(45deg);
    }

    .menu-btn.open span:last-child {
        transform: translateY(-4px) rotate(-45deg);
    }

    .hero {
        min-height: 710px;
    }

    .hero-media {
        background-position: 68% center;
    }

    .hero-media::after {
        background:
                linear-gradient(90deg, #040605f7, #040605ad),
                linear-gradient(0deg, #040605 5%, transparent 45%);
    }

    .hero-inner {
        min-height: 625px;
        align-items: flex-end;
    }

    .hero-copy {
        width: 100%;
        padding: 70px 0 150px;
    }

    .hero h1 {
        font-size: clamp(50px, 16vw, 69px);
    }

    .hero-lead {
        font-size: 15.5px;
    }

    .hero-note {
        display: none;
    }

    .hero-actions {
        flex-direction: column;
        width: min(100%, 350px);
    }

    .service-tabs {
        min-height: 82px;
        display: flex;
        gap: 10px;
        overflow-x: auto;
        padding: 0 14px;
        scroll-snap-type: x mandatory;
        scroll-behavior: smooth;
        overscroll-behavior-x: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .service-tabs::-webkit-scrollbar {
        display: none;
    }

    .service-tabs a {
        min-width: calc(100% - 64px);
        height: 48px;
        flex: 0 0 auto;
        padding: 0 18px;
        border: 1px solid #ffffff28;
        border-radius: 12px;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }

    .trust-band {
        padding: 22px 0;
    }

    .trust-grid {
        grid-template-columns: 1fr 1fr;
        gap: 0 12px;
        align-items: stretch;
    }

    .trust-intro {
        grid-column: 1 / -1;
        padding: 0 0 16px;
        border: 0;
        text-align: left;
    }

    .trust-intro h2 {
        max-width: 320px;
        margin-bottom: 8px;
        font-size: 21px;
        line-height: 1.02;
    }

    .trust-intro p {
        max-width: 330px;
        font-size: 17px;
        line-height: 1.5;
    }

    .as-brand {
        grid-column: 1 / -1;
        min-height: 72px;
        padding: 12px 0 14px;
        justify-content: flex-start;
        gap: 11px;
        border: 0;
        border-top: 1px solid var(--line);
        border-bottom: 1px solid var(--line);
    }

    .as-mark-img {
        width: 56px;
        max-height: 56px;
    }

    .as-brand strong {
        font-size: 16px;
    }

    .as-brand small {
        margin-top: 3px;
        font-size: 13.5px;
        line-height: 1.25;
    }

    .trust-stat {
        min-height: 82px;
        padding: 14px 8px;
        border: 0;
        border-bottom: 1px solid var(--line);
    }

    .trust-stat:nth-of-type(odd) {
        border-right: 1px solid var(--line);
        padding-right: 14px;
    }

    .trust-stat:nth-of-type(even) {
        padding-left: 14px;
    }

    .trust-stat strong {
        font-size: 21px;
    }

    .trust-stat span {
        margin-top: 6px;
        font-size: 16.5px;
        line-height: 1.35;
    }

    .trust-claim {
        grid-column: 1 / -1;
        min-height: 0;
        margin-top: 14px;
        padding: 10px 12px;
        justify-content: flex-start;
        border: 0;
        border-left: 3px solid var(--lime);
        font-size: 17px;
        line-height: 1.45;
        text-align: left;
    }

    .steps-grid {
        grid-template-columns: 1fr 1fr;
    }

    .why-grid {
        grid-template-columns: 1fr 1fr;
    }

    .benefit:last-child {
        grid-column: auto;
    }

    .why-title {
        padding: 0;
    }

    .global-heading {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .global-heading h2 {
        font-size: 47px;
    }

    .global-heading h2 br {
        display: none;
    }

    .map-stage {
        padding: 11px;
        border-radius: 20px;
    }

    #worldMap {
        height: 355px;
    }

    .country-display {
        right: 19px;
        top: 19px;
        min-width: 190px;
        padding: 8px 10px;
    }

    .country-flag {
        font-size: 24px;
    }

    .global-points {
        grid-template-columns: 1fr 1fr;
    }

    .global-points > div {
        border-bottom: 1px solid #344037;
    }

    .contact {
        min-height: 0;
        display: flex;
        flex-direction: column;
    }

    .contact-media {
        position: relative;
        inset: auto;
        width: 100%;
        height: clamp(220px, 58vw, 300px);
        flex: 0 0 auto;
        opacity: 1;
    }

    .contact-media video {
        transform: none;
    }

    .contact-inner {
        min-height: 0;
        padding: 42px 14px 52px;
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .contact-actions .btn {
        width: 100%;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .footer-bottom {
        flex-direction: column;
        gap: 6px;
    }
}

/* =========================
   RESPONSIVE <= 480px
========================= */

@media (max-width: 480px) {
    .steps-grid,
    .why-grid {
        grid-template-columns: 1fr;
    }

    .benefit {
        min-height: auto;
        padding: 18px 10px;
        border-left: 0;
    }

    .trust-band {
        padding: 20px 0;
    }

    .trust-grid {
        gap: 0 10px;
    }

    .trust-intro h2 {
        font-size: 20px;
    }

    .trust-intro p {
        font-size: 17px;
    }

    .as-brand {
        min-height: 68px;
        gap: 10px;
        padding: 11px 0 13px;
    }

    .as-mark-img {
        width: 50px;
        max-height: 50px;
    }

    .as-brand strong {
        font-size: 15px;
    }

    .as-brand small {
        margin-top: 2px;
        font-size: 13px;
    }

    .trust-stat {
        min-height: 78px;
    }

    .trust-stat strong {
        font-size: 20px;
    }

    .trust-stat span {
        font-size: 16px;
    }

    .global-points {
        grid-template-columns: 1fr;
    }

    .global-points > div {
        border-right: 0;
    }

    .country-display {
        position: relative;
        right: auto;
        top: auto;
        margin-bottom: 8px;
    }

    .country-display + #worldMap {
        height: 300px;
    }

    .faq-intro h2 {
        font-size: 39px;
    }
}

/* =========================
   ACCESSIBILITY / REDUCED MOTION
========================= */

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .hero-media,
    .universities-track,
    .spark {
        animation: none;
    }

    .reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* =========================================================
   AJUSTES MAPA, UNIVERSIDADES Y FORMULARIO
   ========================================================= */

.global-heading h2 span {
    color: #769b00;
}

#worldMap {
    isolation: isolate;
}

.map-flags-layer {
    position: absolute;
    inset: 0;
    z-index: 9;
    overflow: hidden;
    pointer-events: none;
}

.map-flag-marker {
    position: absolute;
    width: 43px;
    height: 32px;
    display: grid;
    place-items: center;
    padding: 4px;
    border: 1px solid #7da500;
    border-radius: 8px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 8px 20px rgba(7,17,11,.25);
    transform: translate(-50%,-50%);
    cursor: pointer;
    pointer-events: auto;
    transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}

.map-flag-marker::after {
    content: attr(data-label);
    position: absolute;
    left: 50%;
    bottom: calc(100% + 8px);
    padding: 6px 9px;
    border-radius: 7px;
    background: #07100b;
    color: #fff;
    font: 700 9px var(--display);
    white-space: nowrap;
    opacity: 0;
    transform: translate(-50%,5px);
    transition: .2s var(--ease);
    pointer-events: none;
}

.map-flag-marker:hover,
.map-flag-marker:focus-visible,
.map-flag-marker.active {
    z-index: 3;
    border-color: #111;
    box-shadow: 0 11px 26px rgba(7,17,11,.34), 0 0 0 4px rgba(200,255,0,.38);
    transform: translate(-50%,-50%) scale(1.12);
    outline: none;
}

.map-flag-marker:hover::after,
.map-flag-marker:focus-visible::after {
    opacity: 1;
    transform: translate(-50%,0);
}

.map-flag-marker .flag {
    width: 31px;
    height: 21px;
    margin: 0;
    border-radius: 3px;
}

.jvm-marker {
    opacity: .22;
}

.universities-carousel {
    position: relative;
    z-index: 3;
    margin-top: 24px;
    padding: 24px 0 21px;
    overflow: hidden;
    border: 1px solid rgba(18,32,25,.12);
    border-radius: 22px;
    background: rgba(255,255,255,.86);
    box-shadow: 0 20px 50px rgba(22,48,34,.12);
}

.universities-heading {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 15px;
    padding: 0 24px 18px;
}

.universities-heading span {
    height: 1px;
    background: linear-gradient(90deg,transparent,#cbd4cf);
}

.universities-heading span:last-child {
    background: linear-gradient(90deg,#cbd4cf,transparent);
}

.universities-heading p {
    margin: 0;
    color: #66716b;
    font: 800 13.5px var(--display);
    letter-spacing: .16em;
    text-align: center;
    text-transform: uppercase;
}

.universities-mask {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
    mask-image: linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
}

.universities-track {
    display: flex;
    width: max-content;
    gap: 12px;
    padding: 2px 6px;
    animation: universitiesMarquee 42s linear infinite;
    will-change: transform;
}

.universities-carousel:hover .universities-track,
.universities-carousel:focus-within .universities-track {
    animation-play-state: paused;
}

.university-logo {
    width: 176px;
    min-height: 98px;
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 13px;
    border: 1px solid #e1e6e3;
    border-radius: 14px;
    background: #fff;
    transition: transform .28s var(--ease), border-color .28s var(--ease), box-shadow .28s var(--ease);
}

.university-logo:hover {
    border-color: #98c400;
    box-shadow: 0 12px 26px rgba(12,29,19,.12);
    transform: translateY(-3px);
}

.university-logo img {
    width: 48px;
    height: 48px;
    object-fit: contain;
    filter: none;
    mix-blend-mode: normal;
    opacity: 1;
}

.university-logo span {
    max-width: 150px;
    color: #222;
    font: 700 13.5px/1.2 var(--display);
    text-align: center;
}

@keyframes universitiesMarquee {
    to { transform: translateX(calc(-50% - 6px)); }
}

/* Formulario de contacto reutilizado de tessa_landingv2 */
.lead-contact {
    position: relative;
    overflow: hidden;
    background:
            radial-gradient(circle at 10% 10%,rgba(200,255,0,.22),transparent 28%),
            linear-gradient(135deg,#f1f6f2,#e8efeb);
    scroll-margin-top: 90px;
}

.lead-contact-decor {
    position: absolute;
    border: 70px solid rgba(200,255,0,.28);
    border-radius: 50%;
    pointer-events: none;
}

.decor-one {
    width: 380px;
    height: 380px;
    left: -245px;
    bottom: -205px;
}

.decor-two {
    width: 280px;
    height: 280px;
    right: -190px;
    top: -150px;
}

.lead-contact-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: .86fr 1.14fr;
    gap: 80px;
    align-items: center;
}

.lead-contact-copy h2 {
    margin: 0;
    font: 800 clamp(45px,5vw,70px)/.92 var(--display);
    letter-spacing: -.055em;
}

.lead-contact-copy h2 span {
    color: #769b00;
    background: linear-gradient(transparent 78%,rgba(132,172,0,.42) 78%);
}

.lead-contact-copy > p:not(.eyebrow) {
    max-width: 430px;
    margin: 23px 0;
    color: #66716b;
    font-size: 16px;
}

.contact-benefits {
    display: grid;
    gap: 10px;
}

.contact-benefits span {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #334039;
    font-size: 15px;
    font-weight: 700;
}

.contact-benefits i {
    width: 25px;
    height: 25px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--lime);
    color: #10150d;
    font-style: normal;
}

.form-card {
    position: relative;
    min-width: 0;
    padding: clamp(28px,4vw,48px);
    border: 1px solid rgba(17,17,17,.08);
    border-radius: 30px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 30px 80px rgba(23,49,35,.16);
}

.form-eyebrow {
    display: block;
    margin-bottom: 12px;
    font: 800 14px var(--display);
    letter-spacing: .18em;
}

.form-card h2 {
    margin: 0;
    font: 800 clamp(42px,4.6vw,63px)/.95 var(--display);
    letter-spacing: -.05em;
}

.spark {
    display: inline-block;
    margin-left: 7px;
    color: var(--lime);
    font-size: .75em;
    animation: sparkFloat 2.4s ease-in-out infinite;
}

@keyframes sparkFloat {
    50% { transform: rotate(18deg) scale(1.12); }
}

.form-intro {
    margin: 14px 0 22px;
    color: #747b77;
    font-size: 17px;
}

.field {
    position: relative;
    margin-bottom: 11px;
}

.field label,
.stages legend {
    display: block;
    margin-bottom: 7px;
    font: 700 15px var(--display);
}

.field input {
    width: 100%;
    height: 52px;
    padding: 0 16px;
    border: 1px solid #d9dedb;
    border-radius: 14px;
    outline: none;
    background: linear-gradient(#fff,#fbfcfb);
    color: #111;
    font: 500 16px var(--body);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.field input::placeholder {
    color: #8b918d;
}

.field input:focus {
    border-color: #89ad0f;
    box-shadow: 0 0 0 4px rgba(200,255,0,.23);
    transform: translateY(-1px);
}

.field input[aria-invalid="true"] {
    border-color: #bb3030;
}

.field-error {
    display: block;
    min-height: 15px;
    margin-top: 3px;
    color: #a12222;
    font-size: 14px;
}

.input-wrap,
.career-field {
    position: relative;
}

.input-wrap input {
    padding-right: 42px;
}

.chevron {
    position: absolute;
    top: 50%;
    right: 15px;
    width: 17px;
    height: 17px;
    transform: translateY(-50%);
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    pointer-events: none;
}

.career-options {
    position: absolute;
    z-index: 35;
    top: 77px;
    left: 0;
    right: 0;
    max-height: 220px;
    overflow: hidden;
    margin: 0;
    padding: 6px;
    list-style: none;
    border: 1px solid #d8ded9;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 15px 34px rgba(0,0,0,.16);
}

.career-options li {
    padding: 9px 11px;
    border-radius: 9px;
    cursor: pointer;
    font-size: 15px;
}

.career-options li[aria-selected="true"],
.career-options li:hover {
    background: #efffc6;
}

.career-options .no-match {
    color: #666;
    cursor: default;
}

.stages {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.stage-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.stage {
    min-height: 55px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px;
    border: 1px solid #d9dedb;
    border-radius: 13px;
    background: #fafbfa;
    cursor: pointer;
    font-size: 15px;
    font-weight: 600;
    transition: .22s var(--ease);
}

.stage:hover {
    border-color: #a3c82b;
    transform: translateY(-2px);
}

.stage:has(input:checked) {
    border-color: #8eb400;
    background: #f0ffc0;
    box-shadow: inset 0 0 0 1px rgba(119,154,11,.22);
}

.stage input {
    width: 15px;
    height: 15px;
    margin: 0;
    accent-color: #779a0b;
    flex: 0 0 auto;
}

.stage-icon {
    width: 23px;
    height: 23px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.stage:focus-within {
    outline: 2px solid #91b321;
    outline-offset: 2px;
}

.btn-submit {
    width: 100%;
    min-height: 62px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 5px;
    padding: 13px 22px;
    border: 0;
    border-radius: 17px;
    background: #111;
    color: #fff;
    box-shadow: 0 10px 22px rgba(17,17,17,.13);
    font: 700 16px var(--display);
    cursor: pointer;
    transition: transform .22s var(--ease), background .22s ease, box-shadow .22s ease;
}

.btn-whatsapp-icon {
    width: 25px;
    height: 25px;
    flex: 0 0 auto;
    fill: var(--lime);
}

.btn-submit-arrow {
    width: 19px;
    height: 19px;
    flex: 0 0 auto;
    fill: none;
    stroke: var(--lime);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .2s ease;
}

.btn-submit:hover {
    background: #273020;
    box-shadow: 0 15px 30px rgba(17,17,17,.2);
    transform: translateY(-3px);
}

.btn-submit:hover .btn-submit-arrow {
    transform: translateX(5px);
}

.btn-submit:focus-visible {
    outline: 3px solid #7f9900;
    outline-offset: 4px;
}

.privacy {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 16px 0 0;
    color: #7b827e;
    font-size: 12.5px;
    text-align: center;
}

.privacy svg {
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
}

@media (max-width: 1023px) {
    .lead-contact-grid {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .lead-contact-copy {
        max-width: 620px;
    }

    .universities-track {
        animation-duration: 34s;
    }
}

@media (max-width: 600px) {
    .map-brand {
        left: 14px;
        bottom: 14px;
        gap: 0;
        padding: 7px 9px;
    }

    .map-brand img {
        width: 68px;
    }

    .map-brand span {
        display: none;
    }
    .map-flag-marker {
        width: 33px;
        height: 25px;
        padding: 3px;
        border-radius: 6px;
    }

    .map-flag-marker[data-code='pe'] { margin-left: -11px; margin-top: -6px; }
    .map-flag-marker[data-code='br'] { margin-left: 12px; margin-top: 8px; }

    .map-flag-marker .flag {
        width: 25px;
        height: 17px;
    }

    .country-display {
        position: absolute;
        right: 12px;
        top: 12px;
        min-width: 0;
        max-width: 165px;
        margin: 0;
    }

    .country-display small {
        display: none;
    }

    .universities-carousel {
        border-radius: 17px;
    }

    .university-logo {
        width: 145px;
        min-height: 88px;
    }

    .university-logo img {
        width: 39px;
        height: 39px;
    }

    .universities-heading {
        grid-template-columns: 1fr;
        padding-inline: 16px;
    }

    .universities-heading span {
        display: none;
    }

    .stage-grid {
        grid-template-columns: 1fr;
    }

    .form-card {
        padding: 25px 20px;
        border-radius: 24px;
    }

    .form-card h2 {
        font-size: 40px;
    }

    .lead-contact-copy h2 {
        font-size: 46px;
    }
}




/* =========================================================
   TRUST BAND · AJUSTE FINAL
   Más ancho en escritorio y mejor lectura global.
   ========================================================= */

.trust-band {
    padding: 30px 0;
}

.trust-band > .container {
    width: min(1440px, calc(100% - 48px));
    max-width: 1440px;
    margin-inline: auto;
}

.trust-grid {
    display: grid;
    grid-template-columns: 1.55fr 1.25fr repeat(4, .72fr) .95fr;
    gap: 12px;
    align-items: center;
}

.trust-intro {
    padding-right: 18px;
}

.as-brand {
    padding-inline: 12px;
}

.trust-stat {
    padding-inline: 12px;
}

.trust-claim {
    display: block;
    padding-left: 14px;
}

@media (min-width: 1201px) {
    .trust-band > .container {
        width: min(1440px, calc(100% - 48px));
        max-width: 1440px;
    }

    .trust-grid {
        grid-template-columns: 1.55fr 1.25fr repeat(4, .72fr) .95fr;
        gap: 12px;
    }
}

@media (min-width: 781px) and (max-width: 1200px) {
    .trust-band > .container {
        width: min(100% - 36px, 1160px);
        max-width: 1160px;
    }

    .trust-grid {
        grid-template-columns: 1.3fr 1.1fr repeat(2, .78fr);
        gap: 14px;
        align-items: center;
    }

    .trust-intro,
    .as-brand {
        grid-column: auto;
    }

    .trust-claim {
        display: block;
        grid-column: 1 / -1;
        margin: 0;
        padding: 12px 0 0 14px;
    }
}

@media (max-width: 780px) {
    .trust-band {
        padding: 28px 0 30px;
    }

    .trust-band > .container {
        width: min(100% - 28px, 1200px);
        max-width: none;
    }

    .trust-grid {
        grid-template-columns: 1fr 1fr;
        gap: 14px 12px;
        align-items: start;
    }

    .trust-intro,
    .as-brand,
    .trust-claim {
        grid-column: 1 / -1;
    }

    .trust-intro {
        padding-right: 0;
        border-right: 0;
    }

    .as-brand {
        padding: 8px 0 12px;
    }

    .trust-stat {
        min-height: 88px;
        padding: 12px 8px;
        border-left: 0;
        border-top: 1px solid var(--line);
    }

    .trust-claim {
        margin: 2px 0 0;
        padding: 12px 0 0 14px;
    }
}

@media (max-width: 480px) {
    .trust-stat {
        min-height: 92px;
    }
}


/* =========================================================
   TRUST BAND · REFINADO FINAL
   -1px aprox. en la tipografía de esta sección.
   Línea verde del claim centrada y con altura controlada.
   ========================================================= */

.trust-intro h2 {
    font-size: 19px;
}

.trust-intro p {
    font-size: 15px;
}

.as-brand strong {
    font-size: clamp(13px, 1.05vw, 16px);
}

.as-brand small {
    font-size: clamp(8px, .65vw, 9px);
}

.trust-stat strong {
    font-size: 21px;
}

.trust-stat span {
    font-size: 14px;
}

.trust-claim {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 0;
    padding: 8px 0 8px 18px;
    border-left: 0;
    font-size: 14px;
    line-height: 1.4;
    letter-spacing: .08em;
}

.trust-claim::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 3px;
    height: 72%;
    border-radius: 999px;
    background: var(--lime);
    transform: translateY(-50%);
}

/* Desktop: mantener la fila equilibrada sin comprimir el claim */
@media (min-width: 1201px) {
    .trust-grid {
        grid-template-columns: 1.55fr 1.25fr repeat(4, .72fr) 1fr;
        gap: 10px;
        align-items: center;
    }

    .trust-claim {
        align-self: center;
    }
}

/* Tablet */
@media (min-width: 781px) and (max-width: 1200px) {
    .trust-intro h2 {
        font-size: 18px;
    }

    .trust-intro p {
        font-size: 14px;
    }

    .as-brand strong {
        font-size: 15px;
    }

    .as-brand small {
        font-size: 12px;
    }

    .trust-stat strong {
        font-size: 20px;
    }

    .trust-stat span {
        font-size: 15px;
    }

    .trust-claim {
        font-size: 15px;
    }
}

/* Mobile */
@media (max-width: 780px) {
    .trust-intro h2 {
        font-size: 20px;
    }

    .trust-intro p {
        font-size: 15px;
    }

    .as-brand strong {
        font-size: 15px;
    }

    .as-brand small {
        font-size: 12.5px;
    }

    .trust-stat strong {
        font-size: 20px;
    }

    .trust-stat span {
        font-size: 15.5px;
    }

    .trust-claim {
        padding-left: 16px;
        font-size: 16px;
        line-height: 1.4;
    }

    .trust-claim::before {
        height: 76%;
    }
}

@media (max-width: 480px) {
    .trust-intro h2 {
        font-size: 19px;
    }

    .trust-intro p {
        font-size: 15px;
    }

    .trust-stat strong {
        font-size: 19px;
    }

    .trust-stat span {
        font-size: 15px;
    }

    .trust-claim {
        font-size: 15px;
    }
}


/* =========================================================
   TRUST BAND · CORRECCIÓN DE SEPARADORES
   Mantiene la línea verde del claim y elimina la gris final.
   ========================================================= */

.trust-grid > .trust-stat:last-of-type {
    border-right: 0 !important;
}

/* Línea verde del claim: se mantiene */
.trust-claim {
    border-left: 0;
}

.trust-claim::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 3px;
    height: 72%;
    border-radius: 999px;
    background: var(--lime);
    transform: translateY(-50%);
    display: block;
}
.announcement-country {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.announcement-country .flag {
    width: 18px;
    height: 12px;
    flex: 0 0 auto;
    border-radius: 2px;
    border: 1px solid rgba(0, 0, 0, .15);
    box-shadow: none;
}
.flag-pe {
    background: linear-gradient(
            90deg,
            #d91023 0 33.33%,
            #fff 33.33% 66.66%,
            #d91023 66.66%
    );
}
/* =========================
   FLYER PROMOCIONAL
========================= */

body.promo-open {
    overflow: hidden;
}

.promo-flyer {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 18px;
    overflow: hidden;
    background: rgba(2, 6, 4, .78);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    overscroll-behavior: contain;
    touch-action: none;
}

.promo-flyer[hidden] {
    display: none;
}

.promo-card {
    position: relative;
    isolation: isolate;
    width: min(560px, 100%);
    max-height: calc(100vh - 36px);
    padding: clamp(24px, 3.5vw, 38px) clamp(20px, 5vw, 42px) 24px;
    overflow-y: auto;
    border: 4px solid var(--lime);
    border-radius: 28px;
    background:
        radial-gradient(circle at 80% 18%, rgba(190, 255, 0, .2), transparent 25%),
        radial-gradient(circle at 20% 82%, rgba(190, 255, 0, .14), transparent 22%),
        linear-gradient(135deg, #171b18 0%, #070908 48%, #141a11 100%);
    box-shadow: 0 32px 90px rgba(0, 0, 0, .6), 0 0 46px rgba(190, 255, 0, .2);
    color: #fff;
    text-align: center;
    touch-action: pan-y;
    animation: promoFlyerIn .45s var(--ease) both;
}

.promo-card::before,
.promo-card::after {
    position: absolute;
    z-index: -1;
    content: '';
    pointer-events: none;
    transform: rotate(-42deg);
}

.promo-card::before {
    width: 130%;
    height: 16%;
    top: 32%;
    left: -28%;
    background: rgba(0, 0, 0, .42);
}

.promo-card::after {
    width: 110%;
    height: 10%;
    right: -32%;
    bottom: 20%;
    background: rgba(190, 255, 0, .08);
}

@keyframes promoFlyerIn {
    from { opacity: 0; transform: translateY(18px) scale(.97); }
    to { opacity: 1; transform: none; }
}

.promo-close {
    position: absolute;
    top: 22px;
    right: 22px;
    width: 45px;
    height: 45px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.promo-close span {
    position: absolute;
    top: 50%;
    left: 4px;
    width: 37px;
    height: 3px;
    border-radius: 4px;
    background: #fff;
}

.promo-close span:first-child { transform: rotate(45deg); }
.promo-close span:last-child { transform: rotate(-45deg); }
.promo-close:focus-visible { outline: 3px solid var(--lime); outline-offset: 3px; }

.promo-logo {
    width: min(210px, 52%);
    height: auto;
    margin: 0 auto 16px;
    filter: invert(1) grayscale(1) brightness(2.4);
}

.promo-kicker {
    width: fit-content;
    margin: 0 auto 16px;
    padding: 10px clamp(22px, 5vw, 52px);
    border: 3px solid var(--lime);
    border-radius: 999px;
    font: 800 clamp(13px, 2vw, 18px) var(--display);
    letter-spacing: .25em;
}

.promo-card h2,
.promo-discount,
.promo-discount-label {
    margin: 0;
    font-family: var(--display);
    font-weight: 900;
    letter-spacing: -.045em;
}

.promo-card h2 {
    font-size: clamp(36px, 6vw, 58px);
    line-height: .92;
}

.promo-discount {
    margin-top: 8px;
    color: var(--lime);
    font-size: clamp(78px, 15vw, 145px);
    line-height: .77;
}

.promo-discount-label {
    margin-top: 8px;
    font-size: clamp(31px, 5.5vw, 50px);
    line-height: .9;
}

.promo-assurance {
    margin: 12px 0 16px;
    font-size: clamp(19px, 3vw, 28px);
    font-weight: 500;
}

.promo-cta {
    display: block;
    padding: 15px 16px;
    border-radius: 999px;
    background: var(--lime);
    box-shadow: 0 12px 30px rgba(190, 255, 0, .27);
    color: #090c08;
    font: 900 clamp(17px, 3vw, 27px) var(--display);
    letter-spacing: -.025em;
}

.promo-national {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin: 18px 0 10px;
    font: 800 clamp(12px, 2.5vw, 18px) var(--display);
    letter-spacing: .38em;
}

.promo-national span {
    width: min(12vw, 62px);
    height: 1px;
    background: #fff;
}

.promo-terms {
    margin: 0;
    color: #e1e5e1;
    font-size: clamp(11px, 2vw, 15px);
    line-height: 1.4;
}

@media (max-width: 600px), (max-height: 850px) {
    .promo-flyer { padding: 10px; }
    .promo-card {
        width: min(520px, 100%);
        max-height: calc(100dvh - 20px);
        padding: clamp(16px, 3vh, 24px) clamp(16px, 4vw, 28px) 16px;
        overflow: hidden;
        border-width: 3px;
        border-radius: 26px;
    }
    .promo-close { top: 8px; right: 8px; transform: scale(.72); }
    .promo-logo { width: min(175px, 45%); margin-bottom: 8px; }
    .promo-kicker { margin-bottom: 10px; padding: 6px 20px; border-width: 2px; font-size: clamp(11px, 2.2vw, 15px); }
    .promo-card h2 { font-size: clamp(32px, 6vw, 48px); }
    .promo-discount { margin-top: 5px; font-size: clamp(72px, 13vh, 110px); }
    .promo-discount-label { margin-top: 5px; font-size: clamp(28px, 5vw, 42px); }
    .promo-assurance { margin: 8px 0 12px; font-size: clamp(18px, 2.8vw, 24px); }
    .promo-cta { padding: 12px 14px; font-size: clamp(16px, 2.8vw, 22px); }
    .promo-national { margin: 12px 0 7px; gap: 10px; font-size: clamp(11px, 2vw, 15px); letter-spacing: .28em; }
    .promo-terms { font-size: clamp(10px, 1.8vw, 13px); }
}

@media (prefers-reduced-motion: reduce) {
    .promo-card { animation: none; }
}
/* Flyer: composición cerrada, sin barras de desplazamiento */
.promo-flyer {
    overflow: clip;
}

.promo-card {
    box-sizing: border-box;
    width: min(560px, calc(100vw - 32px));
    max-height: min(680px, calc(100dvh - 32px));
    overflow: clip !important;
    contain: paint;
}

@media (max-width: 600px), (max-height: 850px) {
    .promo-card {
        width: min(500px, calc(100vw - 24px));
        max-height: calc(100dvh - 24px);
        padding: 16px 22px 14px;
    }
}