/* ==========================================================================
   Variables & Reset
   ========================================================================== */

:root {
    /* Colores */
    --color-violeta: #440099;
    --color-rosa: #EF426F;
    --color-celeste: #00A9E0;
    --color-amarillo: #F1C400;
    --color-plomo: #DDE5ED;
    --color-blanco: #FFFFFF;
    --color-negro: #000000;

    /* Tipografía */
    --font-family: 'Gilroy', sans-serif;
    --fw-regular: 400;
    --fw-medium: 500;
    --fw-bold: 700;
    --fw-extrabold: 800;
    --fw-heavy: 900;
    --fw-black: 950;

    /* Layout */
    --container-width: clamp(320px, 76.875vw, 1476px);
    --container-padding: 24px;
}

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-family);
    font-weight: var(--fw-regular);
    color: var(--color-negro);
    background-color: var(--color-blanco);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

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

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

ul, ol {
    list-style: none;
}

/* ==========================================================================
   Utilidades
   ========================================================================== */

.c-rojo {
    color: var(--color-rosa);
    font-weight: var(--fw-bold);
}

.c-morado {
    color: #4E009C;
    font-weight: var(--fw-bold);
}

.link-rosa {
    color: #FF4071;
    font-weight: var(--fw-bold);
}

.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;
}

/* ==========================================================================
   Layout
   ========================================================================== */

.container {
    width: 100%;
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
}

.full-width {
    width: 100%;
}

/* ==========================================================================
   Animaciones scroll
   ========================================================================== */

.fade-in {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-in.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.fade-in-stagger .fade-in-item {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.fade-in-stagger .fade-in-item.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@keyframes decoFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

.becas__card:nth-child(1) .becas__card-deco { animation-delay: 0s; }
.becas__card:nth-child(2) .becas__card-deco { animation-delay: -0.7s; animation-duration: 3.4s; }
.becas__card:nth-child(3) .becas__card-deco { animation-delay: -1.5s; animation-duration: 2.8s; }
.becas__card:nth-child(4) .becas__card-deco { animation-delay: -2.2s; animation-duration: 3.6s; }

/* ==========================================================================
   Header & Navegación
   ========================================================================== */

.site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    height: clamp(73px, 7.604vw, 146px); /* 146px @1920 */
    display: flex;
    align-items: stretch;
    background-color: var(--color-violeta);
    transition: background-color 0.3s ease, height 0.3s ease;
}

.site-header.is-scrolled {
    background-color: var(--color-violeta);
    height: clamp(55px, 5.208vw, 100px);
}

.site-header.is-scrolled .site-logo img {
    width: clamp(38px, 5.208vw, 100px);
}

.site-header.is-scrolled .main-nav a {
    font-size: clamp(0.45rem, 0.885vw, 1.063rem); /* ~17px @1920 */
    line-height: clamp(0.45rem, 0.885vw, 1.063rem);
}

.site-header.is-scrolled .main-nav .nav-dropdown__menu a {
    font-size: clamp(0.45rem, 0.885vw, 1.063rem); /* ~17px @1920 */
    line-height: clamp(0.45rem, 0.885vw, 1.063rem);
    padding: clamp(5px, 1.042vw, 20px) clamp(6px, 1.198vw, 23px);
}


.site-header > .container {
    height: 100%;
}

.header-main {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
}

.site-header .site-logo img {
    width: clamp(42px, 5.99vw, 115px); /* 115px @1920, 42px móvil */
    height: auto;
}

.main-nav {
    display: flex;
    align-items: center;
    gap: clamp(30px, 5.208vw, 100px); /* 100px @1920 */
    height: 100%;
}

.site-header .main-nav a {
    color: var(--color-blanco);
    font-size: clamp(0.5rem, 1.042vw, 1.25rem); /* 20px @1920 */
    font-weight: var(--fw-medium);
    line-height: clamp(0.5rem, 1.042vw, 1.25rem); /* 20px @1920 */
    transition: color 0.3s ease;
    position: relative;
}

.main-nav a:hover,
.main-nav a.active {
    color: var(--color-amarillo);
}


/* Dropdown */
.nav-dropdown {
    position: static;
    align-self: stretch;
    display: flex;
    align-items: center;
}

.nav-dropdown__trigger {
    cursor: pointer;
}

.nav-dropdown__trigger .fa-chevron-down {
    font-size: 0.6em;
    margin-left: 6px;
}

.nav-dropdown__menu {
    display: none;
    position: absolute;
    top: 100%;
    left: auto;
    background-color: var(--color-blanco);
    padding: 0;
    border-radius: 0;
    width: clamp(80px, 11.146vw, 214px); /* 214px @1920 */
    flex-direction: column;
    gap: 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    z-index: 101;
}

.nav-dropdown:hover .nav-dropdown__menu {
    display: flex;
}

.site-header .main-nav .nav-dropdown__menu a {
    color: var(--color-violeta);
    font-size: clamp(0.5rem, 1.042vw, 1.25rem); /* 20px @1920 */
    font-weight: var(--fw-medium);
    line-height: clamp(0.5rem, 1.042vw, 1.25rem); /* 20px @1920 */
    padding: clamp(6px, 1.198vw, 23px) clamp(7px, 1.406vw, 27px); /* 23px 27px @1920 */
    transition: color 0.3s ease;
}

.site-header .main-nav .nav-dropdown__menu a:hover {
    color: var(--color-rosa);
}

/* Menú móvil */
.menu-close {
    display: none;
}

.menu-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
}

.menu-toggle span {
    display: block;
    width: 28px;
    height: 3px;
    background-color: var(--color-blanco);
    margin: 5px 0;
    border-radius: 2px;
    transition: all 0.3s ease;
}

/* ==========================================================================
   Hero Banner
   ========================================================================== */

.hero {
    position: relative;
    width: 100%;
    aspect-ratio: 1920 / 940;
    overflow: hidden;
}

.hero > .container {
    display: flex;
    align-items: center;
    height: 100%;
}

.hero > picture {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.hero .hero__bg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

.hero .hero__content {
    position: relative;
    z-index: 2;
    max-width: clamp(216px, 26.979vw, 518px); /* 518px @1920 */
}

.hero .hero__title {
    font-size: clamp(1.5rem, 3.56vw, 4.274rem); /* 68.38px @1920 */
    font-weight: var(--fw-black);
    color: var(--color-blanco);
    line-height: 1.05;
    margin-bottom: 20px;
}

.hero .hero__title .highlight {
    color: var(--color-amarillo);
}

.hero .hero__subtitle {
    font-size: clamp(0.75rem, 1.78vw, 2.137rem); /* 34.19px @1920 */
    font-weight: var(--fw-black);
    color: var(--color-amarillo);
    line-height: 1.2em;
    margin-bottom: 12px;
}

.hero .hero__text {
    font-size: clamp(0.625rem, 1.336vw, 1.603rem); /* 25.64px @1920 */
    font-weight: var(--fw-medium);
    color: var(--color-blanco);
    line-height: 1.3em;
}

.hero .hero__text strong {
    font-weight: var(--fw-extrabold);
}

/* Botón WhatsApp flotante */
.whatsapp-float {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 999;
    display: flex;
    align-items: center;
    gap: 0;
    background-color: #25D366;
    color: var(--color-blanco);
    padding: 14px;
    border-radius: 50px;
    font-weight: var(--fw-bold);
    font-size: 0.9rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: padding 0.3s ease, gap 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
    overflow: hidden;
}

.whatsapp-float span {
    max-width: 0;
    overflow: hidden;
    white-space: nowrap;
    transition: max-width 0.3s ease, opacity 0.3s ease;
    opacity: 0;
}

.whatsapp-float:hover {
    padding: 14px 20px;
    gap: 10px;
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

.whatsapp-float:hover span {
    max-width: 150px;
    opacity: 1;
}

.whatsapp-float svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
    flex-shrink: 0;
}

/* ==========================================================================
   Sección: Actividades de Inducción
   ========================================================================== */

.section-induccion {
    padding: clamp(40px, 4.17vw, 80px) 0;
    background-color: var(--color-blanco);
    position: relative;
    overflow: hidden;
}

.section-induccion__deco {
    position: absolute;
    top: clamp(55px, 8.594vw, 165px);
    right: 0;
    width: clamp(105px, 16.406vw, 315px);
    height: auto;
    pointer-events: none;
    z-index: 0;
}

.section-induccion .section-induccion__title {
    font-size: clamp(2rem, 2.5vw, 3rem); /* 48px @1920 */
    font-weight: var(--fw-black);
    line-height: 1.15;
    margin-bottom: clamp(10px, 1.04vw, 20px);
    text-align: center;
}

.section-induccion .section-induccion__title span {
    color: var(--color-rosa);
}

.section-induccion .section-induccion__title em {
    color: var(--color-violeta);
    font-style: normal;
}

/* Timeline - la ruta ES el contenedor de referencia */
.section-induccion .timeline {
    position: relative;
    width: 68.15%; /* 1006/1476 */
    margin: 0 auto;
}

.section-induccion .timeline__ruta {
    display: block;
    width: 100%;
}

.section-induccion .timeline > picture {
    display: block;
    width: 100%;
}

/* Steps: posición absoluta basada en coordenadas Figma */
.section-induccion .timeline__step {
    position: absolute;
    display: flex;
    align-items: flex-start;
    gap: 0;
    z-index: 2;
}

.section-induccion .timeline__step-number {
    width: clamp(41px, 4.333vw, 83.19px); /* 83.19x83.19 */
    height: clamp(41px, 4.333vw, 83.19px);
    border-radius: 50%;
    background-color: var(--color-rosa);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: var(--fw-black);
    font-size: clamp(1.2rem, 3.036vw, 3.643rem); /* 58.29px @1920 */
    color: var(--color-blanco);
    flex-shrink: 0;
}

.section-induccion .timeline__step-text {
    width: clamp(160px, 21.35vw, 410px); /* 410px @1920 */
    flex-shrink: 0;
}

.section-induccion .timeline__step-text h3 {
    font-size: clamp(0.75rem, 1.25vw, 1.5rem); /* 24px @1920 */
    font-weight: var(--fw-black);
    color: var(--color-violeta);
    margin-bottom: clamp(10px, 1.042vw, 20px); /* 20px @1920 */
    line-height: clamp(14px, 1.458vw, 28px); /* 28px @1920 */
}

.section-induccion .timeline__step-text p {
    font-size: clamp(0.625rem, 0.833vw, 1rem); /* 16px @1920 */
    font-weight: var(--fw-medium);
    color: var(--color-violeta);
    line-height: clamp(10px, 1.042vw, 20px); /* 20px @1920 */
    margin-bottom: clamp(15px, 1.5625vw, 30px); /* 30px @1920 */
}

.section-induccion .timeline__step-text p:last-child {
    margin-bottom: 0;
}

.section-induccion .timeline__step-text a {
    text-decoration: underline;
}

.section-induccion .timeline__step-text strong {
    font-weight: var(--fw-bold);
}

.section-induccion .timeline__step-icon {
    flex-shrink: 0;
    object-fit: contain;
}

/* Tamaños de íconos por paso */
.section-induccion .timeline__step--1 .timeline__step-icon {
    width: clamp(153px, 15.99vw, 307px); /* 307x278 @1920 */
    height: clamp(139px, 14.479vw, 278px);
}

.section-induccion .timeline__step--2 .timeline__step-icon {
    width: clamp(175px, 18.281vw, 351px); /* 351x351 @1920 */
    height: clamp(175px, 18.281vw, 351px);
}

.section-induccion .timeline__step--3 .timeline__step-icon {
    width: clamp(52px, 5.469vw, 105px); /* 105x312 @1920 */
    height: clamp(156px, 16.25vw, 312px);
}

.section-induccion .timeline__step--4 .timeline__step-icon {
    width: clamp(111px, 11.615vw, 223px); /* 223x254 @1920 */
    height: clamp(127px, 13.229vw, 254px);
}

/* ---- Posiciones exactas Figma (% de la ruta 1006x1932) ---- */

/* Paso 1: info | número | icono */
.section-induccion .timeline__step--1 {
    top: 10.37%;
    left: 11%;
}

.section-induccion .timeline__step--1 .timeline__step-text {
    text-align: right;
    margin-right: clamp(25px, 2.604vw, 50px); /* 50px @1920 */
    margin-top: 0;
    width: clamp(150px, 15.625vw, 300px) !important; /* 300px @1920 */
}

.section-induccion .timeline__step--1 .timeline__step-number {
    margin-top: clamp(14px, 1.458vw, 28px); /* 28px @1920 */
}

.section-induccion .timeline__step--1 .timeline__step-icon {
    margin-top: clamp(10px, 1.042vw, 20px); /* 20px @1920 */
}

/* Paso 2: icono | número | info */
.section-induccion .timeline__step--2 {
    top: 32.64%;
    left: -17%;
}

.section-induccion .timeline__step--2 .timeline__step-icon {
    order: -1;
    margin-top: 0;
    margin-right: clamp(-70px, -3.646vw, -35px); /* -70px @1920, número se monta sobre imagen */
}

.section-induccion .timeline__step--2 .timeline__step-number {
    margin-top: clamp(30px, 3.125vw, 60px); /* 60px @1920 */
    margin-right: clamp(25px, 2.604vw, 50px); /* 50px separación número-texto */
}

.section-induccion .timeline__step--2 .timeline__step-text {
    margin-top: clamp(30px, 3.125vw, 60px); /* 60px @1920 */
    width: clamp(150px, 15.625vw, 300px) !important; /* 300px @1920 */
}

/* Paso 3: info | número | icono */
.section-induccion .timeline__step--3 {
    top: 48.5%;
    left: 34%;
}

.section-induccion .timeline__step--3 .timeline__step-text {
    text-align: right;
    margin-right: clamp(25px, 2.604vw, 50px); /* 50px separación texto-número */
    margin-top: clamp(75px, 7.8125vw, 150px); /* 150px @1920 */
    width: clamp(200px, 20.833vw, 400px) !important; /* 400px @1920 */
}

.section-induccion .timeline__step--3 .timeline__step-number {
    margin-top: clamp(100px, 10.417vw, 200px); /* 200px @1920 */
    margin-right: clamp(18px, 1.875vw, 36px); /* 36px separación número-imagen */
}

.section-induccion .timeline__step--3 .timeline__step-icon {
    margin-top: 0;
}

/* Paso 4: info | número | icono */
.section-induccion .timeline__step--4 {
    top: 76.14%;
    left: 21%;
}

.section-induccion .timeline__step--4 .timeline__step-text {
    margin-right: clamp(10px, 1.042vw, 20px); /* 20px separación texto-número */
    margin-top: clamp(46.5px, 4.844vw, 93px); /* 93px @1920 */
    width: clamp(115px, 11.979vw, 230px) !important; /* 230px @1920 */
}

.section-induccion .timeline__step--4 .timeline__step-number {
    margin-top: clamp(70px, 7.292vw, 140px); /* 140px @1920 */
    margin-right: clamp(25px, 2.604vw, 50px); /* 50px separación número-imagen */
}

.section-induccion .timeline__step--4 .timeline__step-icon {
    margin-top: 0;
}

/* ==========================================================================
   Sección: Becas
   ========================================================================== */

.section-becas {
    padding: clamp(26px, 4.167vw, 80px) 0;
    background-color: var(--color-blanco);
}

.becas__title {
    text-align: center;
    color: #FF4071;
    font-size: clamp(16px, 2.5vw, 48px); /* 48/1920 */
    font-weight: var(--fw-black);
    line-height: normal;
    margin-bottom: clamp(20px, 3.646vw, 70px);
}

/* Viewport que contiene el carrusel */
.section-becas .becas__viewport {
    overflow: hidden;
}

/* Grid de cards — flexbox carrusel */
.section-becas .becas__grid {
    --becas-gap: clamp(10px, 1.302vw, 25px);
    display: flex;
    gap: var(--becas-gap);
    align-items: stretch;
    transition: transform 0.4s ease;
}

/* Card base */
.section-becas .becas__card {
    flex: 0 0 calc((100% - 3 * var(--becas-gap)) / 4);
    border-radius: clamp(8px, 0.833vw, 16px);
    transition: flex 0.4s ease;
}

/* Card expandida: ocupa 2 columnas */
.section-becas .becas__card.is-expanded {
    flex: 0 0 calc((100% - 3 * var(--becas-gap)) / 4 * 2 + var(--becas-gap));
}

/* Card cerrada */
.section-becas .becas__card-closed {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background-color: rgba(78, 0, 156, 0.12);
    border-radius: clamp(9px, 0.976vw, 18.73px);
    padding: clamp(12px, 1.563vw, 30px);
    min-height: clamp(180px, 25.417vw, 488px); /* 478+10 */
    height: 100%;
    position: relative;
    overflow: hidden;
}

.section-becas .becas__card-closed .becas__card-title {
    color: var(--color-violeta);
    font-size: clamp(0.4rem, 1.042vw, 1.25rem);
    font-weight: var(--fw-bold);
    line-height: 1.2;
}

/* Decoración SVG */
.section-becas .becas__card-deco {
    position: absolute;
    bottom: clamp(15px, 2.344vw, 45px);
    left: 0;
    width: clamp(26px, 4.072vw, 78.18px);
    height: auto;
    animation: decoFloat 3s ease-in-out infinite;
}

/* Botón Ver más */
.section-becas .becas__card-btn {
    display: flex;
    align-items: center;
    gap: clamp(4px, 0.521vw, 10px);
    background: none;
    border: none;
    color: var(--color-rosa);
    font-family: var(--font-family);
    font-size: clamp(0.4rem, 1.042vw, 1.25rem);
    font-weight: var(--fw-black);
    cursor: pointer;
    align-self: flex-end;
    z-index: 1;
    transition: opacity 0.3s ease;
}

.section-becas .becas__card-btn:hover {
    opacity: 0.7;
}

.section-becas .becas__card-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(15px, 2.341vw, 44.94px);
    height: clamp(15px, 2.341vw, 44.94px);
    background-color: var(--color-rosa);
    color: var(--color-blanco);
    border-radius: 50%;
    font-size: clamp(0.5rem, 1.042vw, 1.25rem);
}

/* Card abierta (estado expandido) — carrusel */
.section-becas .becas__card-open {
    display: none;
    grid-template-columns: 1fr clamp(88px, 13.75vw, 264px);
    gap: clamp(10px, 1.563vw, 30px);
    background-color: rgba(218, 229, 237, 0.2);
    border-radius: clamp(9px, 0.976vw, 18.73px);
    padding: clamp(15px, 2.083vw, 40px);
    height: clamp(180px, 24.896vw, 478px);
    overflow: hidden;
    position: relative;
}

.section-becas .becas__card-open .becas__card-title {
    color: var(--color-violeta);
    font-size: clamp(0.5rem, 1.563vw, 1.875rem);
    font-weight: var(--fw-bold);
    line-height: 1.2;
    margin-bottom: clamp(7px, 1.042vw, 20px);
}

.section-becas .becas__card-open .becas__card-info {
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}

.section-becas .becas__card-open .becas__card-info p {
    font-size: clamp(0.4rem, 0.938vw, 1.125rem);
    font-weight: var(--fw-medium);
    line-height: clamp(0.5rem, 1.25vw, 1.5rem);
    color: var(--color-negro);
}

.section-becas .becas__card-open .becas__card-info p strong {
    font-weight: var(--fw-bold);
}

.section-becas .becas__card-open .becas__card-img-wrap {
    border-radius: clamp(10px, 1.042vw, 20px);
    overflow: hidden;
}

.section-becas .becas__card-open .becas__card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Botón cerrar (oculto temporalmente) */
.section-becas .becas__card-close {
    display: none;
    /* position: absolute;
    top: clamp(8px, 0.833vw, 16px);
    right: clamp(8px, 0.833vw, 16px);
    width: clamp(24px, 2.083vw, 40px);
    height: clamp(24px, 2.083vw, 40px);
    align-items: center;
    justify-content: center;
    background-color: var(--color-rosa);
    color: var(--color-blanco);
    border: none;
    border-radius: 50%;
    font-size: clamp(0.6rem, 0.833vw, 1rem);
    cursor: pointer;
    transition: opacity 0.3s ease; */
}

/* Estado expandido */
.section-becas .becas__card.is-expanded .becas__card-closed {
    display: none;
}

.section-becas .becas__card.is-expanded .becas__card-open {
    display: grid;
}

.section-becas .becas__card.is-expanded .becas__card-info {
    animation: becaFadeIn 0.25s ease 0.25s both;
}

@keyframes becaFadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* ==========================================================================
   Sección: Kit de Herramientas
   ========================================================================== */

.section-kit {
    padding: clamp(26px, 4.167vw, 80px) 0;
    background-color: rgba(218, 229, 237, 0.3);
}

.section-kit .section-kit__title {
    font-size: clamp(0.5rem, 2.5vw, 3rem);
    font-weight: var(--fw-black);
    line-height: 1.15;
    margin-bottom: clamp(17px, 2.604vw, 50px);
    text-align: center;
}

.section-kit .section-kit__title span {
    color: var(--color-rosa);
}

.section-kit .section-kit__title em {
    color: var(--color-violeta);
    font-style: normal;
}

/* Carrusel wrapper */
.section-kit .section-kit__carousel {
    display: flex;
    align-items: center;
    gap: clamp(10px, 1.563vw, 30px);
}

/* Viewport del carrusel */
.section-kit .section-kit__viewport {
    overflow: hidden;
    flex: 1;
}

/* Grid de cards — flex row */
.section-kit .section-kit__grid {
    --kit-gap: clamp(18px, 2.865vw, 55px);
    display: flex;
    gap: var(--kit-gap);
    transition: transform 0.4s ease;
}

/* Flechas de navegación */
.section-kit .section-kit__arrow {
    flex-shrink: 0;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    transition: opacity 0.3s ease;
}

.section-kit .section-kit__arrow img {
    width: clamp(15px, 1.823vw, 35px);
    height: auto;
}

.section-kit .section-kit__arrow:hover {
    opacity: 0.6;
}

/* Dots de navegación */
.section-kit .section-kit__dots {
    display: flex;
    justify-content: center;
    gap: clamp(6px, 0.521vw, 10px);
    margin-top: clamp(18px, 2.76vw, 53px);
}

.section-kit .section-kit__dot {
    width: clamp(10px, 0.938vw, 18px);
    height: clamp(10px, 0.938vw, 18px);
    border-radius: 50%;
    border: 2px solid var(--color-rosa);
    background: transparent;
    cursor: pointer;
    padding: 0;
    transition: background-color 0.3s ease;
}

.section-kit .section-kit__dot.is-active {
    background-color: var(--color-rosa);
}

.section-kit .section-kit__card {
    flex: 0 0 calc((100% - 2 * var(--kit-gap)) / 3);
    background-color: var(--color-blanco);
    border-radius: clamp(11.53px, 2.031vw, 39px);
    min-height: clamp(120px, 18.958vw, 364px);
    padding: clamp(15px, 2.083vw, 40px) clamp(10px, 1.563vw, 30px);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 9px #DAE5ED;
}

.section-kit .section-kit__card-icon {
    width: clamp(35px, 5.208vw, 100px);
    height: clamp(35px, 5.208vw, 100px);
    object-fit: contain;
    object-position: center bottom;
    margin-bottom: clamp(8px, 1.042vw, 20px);
}

.section-kit .section-kit__card h3 {
    font-size: clamp(0.35rem, 0.938vw, 1.125rem);
    font-weight: var(--fw-bold);
    text-transform: uppercase;
    margin-bottom: clamp(6px, 0.938vw, 18px);
    color: var(--color-negro);
}

.section-kit .section-kit__card p {
    font-size: clamp(0.3rem, 0.833vw, 1rem);
    font-weight: var(--fw-regular);
    color: var(--color-negro);
    line-height: 1.5;
    overflow-wrap: break-word;
    word-break: break-word;
}

.section-kit .section-kit__card p a {
    text-decoration: none;
}

.section-kit .section-kit__card-link {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: clamp(6px, 0.833vw, 16px);
    width: clamp(84px, 13.177vw, 253px);
    height: clamp(14px, 2.188vw, 42px);
    background-color: var(--color-rosa);
    color: var(--color-blanco);
    font-size: clamp(0.3rem, 0.833vw, 1rem);
    font-weight: var(--fw-black);
    border-radius: clamp(13px, 2.09vw, 40.12px);
    transition: opacity 0.3s ease;
}

.section-kit .section-kit__card-link:hover {
    opacity: 0.8;
}

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
    background-color: var(--color-violeta);
    padding: clamp(20px, 3.125vw, 60px) 0;
    color: var(--color-blanco);
}

.site-footer .footer__grid {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.site-footer .footer__logo img {
    width: clamp(47px, 7.344vw, 141px); /* 141/1920 */
    height: auto;
}

.site-footer .footer__redes h3 {
    font-size: clamp(8px, 1.25vw, 24px); /* 24/1920 */
    font-weight: var(--fw-black);
    margin-bottom: clamp(10px, 1.563vw, 30px);
}

.site-footer .footer__links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(10px, 1.563vw, 30px) clamp(30px, 4.688vw, 90px);
}

.site-footer .footer__links a {
    display: flex;
    align-items: center;
    gap: clamp(6px, 0.625vw, 12px);
    color: var(--color-blanco);
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    font-weight: var(--fw-medium);
    transition: color 0.3s ease;
}

.site-footer .footer__links a:hover {
    color: var(--color-amarillo);
}

.site-footer .footer__links a svg,
.site-footer .footer__links a i {
    width: clamp(14px, 1.042vw, 20px);
    height: clamp(14px, 1.042vw, 20px);
    font-size: clamp(14px, 1.042vw, 20px);
    flex-shrink: 0;
}

/* ==========================================================================
   Página: Información del Estudiante
   ========================================================================== */

/* --- Sección principal --- */
.section-estudiante {
    padding-top: clamp(130px, 14.115vw, 271px); /* 146 header + 125 gap = 271/1920 */
}

.section-estudiante .estudiante__title {
    text-align: center;
    color: #FF4071;
    font-size: clamp(16px, 2.5vw, 48px); /* 48/1920 */
    font-weight: var(--fw-black);
    line-height: clamp(17px, 2.604vw, 50px); /* 50/1920 */
    margin-bottom: clamp(23px, 3.646vw, 70px); /* 70/1920 */
}

/* Wrapper página estudiante */
.page-estudiante-wrap {
    position: relative;
    overflow-x: clip;
}

/* Decorativos globales */
.page-deco {
    position: absolute;
    z-index: -1;
    pointer-events: none;
}

.page-deco--right {
    top: clamp(74px, 11.615vw, 223px); /* header 146 + 77 = 223/1920 */
    right: 0;
    width: clamp(100px, 15.625vw, 300px); /* 300/1920 */
    height: auto;
}

.page-deco--left {
    bottom: clamp(48px, 7.552vw, 145px); /* 145 desde el footer */
    left: 0;
    width: clamp(93px, 14.583vw, 280px); /* 280/1920 */
    height: auto;
}

.page-deco--right-mid {
    top: clamp(264px, 41.302vw, 793px); /* header 146 + 647 = 793/1920 */
    right: 0;
    width: clamp(84px, 13.122vw, 251.93px); /* 251.93/1920 */
    height: auto;
}

.page-deco--left-bottom {
    bottom: clamp(143px, 22.292vw, 428px); /* 428 desde el footer */
    left: clamp(-58px, -3.021vw, -19px); /* -58/1920 desplazado fuera */
    width: clamp(91px, 14.189vw, 272.43px); /* 272.43/1920 */
    height: auto;
}

/* Código del Estudiante */
.estudiante__codigo {
    display: flex;
    align-items: center;
    gap: clamp(20px, 3.125vw, 60px);
    padding: 0 clamp(34px, 5.313vw, 102px); /* 102/1920 */
    position: relative;
    z-index: 1;
}

.estudiante__codigo-img {
    flex: 0 0 clamp(193px, 30.208vw, 580px); /* 580/1920 */
    height: clamp(95px, 14.896vw, 286px); /* 286/1920 */
}

.estudiante__codigo-img img {
    width: 100%;
    height: 100%;
    border-radius: clamp(6px, 0.521vw, 10px);
    object-fit: cover;
}

.estudiante__codigo-info {
    flex: 0 0 clamp(157px, 24.531vw, 471px); /* 471/1920 */
}

.estudiante__codigo-info h2 {
    color: var(--color-violeta);
    font-size: clamp(8px, 1.25vw, 24px); /* 24/1920 */
    font-weight: var(--fw-black);
    line-height: 1.3em;
    text-align: center;
    margin-bottom: clamp(8px, 0.833vw, 16px);
}

.estudiante__codigo-info p,
.estudiante__codigo-info-text p {
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    line-height: clamp(7px, 1.042vw, 20px); /* 20/1920 */
    color: #333;
    text-align: center;
}

/* .estudiante__codigo-info a → usa .link-rosa */

/* --- Sección Credenciales --- */
.section-credenciales {
    padding-top: clamp(27px, 4.167vw, 80px); /* 80/1920 */
}

.credenciales__title {
    text-align: center;
    color: #4E009C;
    font-size: clamp(16px, 2.5vw, 48px); /* 48/1920 */
    font-weight: var(--fw-black);
    line-height: clamp(18px, 2.865vw, 55px); /* 55/1920 */
    margin-bottom: clamp(27px, 4.167vw, 80px); /* 80/1920 */
}

.credenciales__grid {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(27px, 4.167vw, 80px); /* 80/1920 */
}

.credenciales__pasos {
    display: flex;
    flex-direction: column;
    gap: clamp(20px, 3.125vw, 60px); /* 60/1920 */
}

.credenciales__paso {
    display: flex;
    align-items: flex-start;
    gap: clamp(10px, 1.563vw, 30px); /* 30/1920 */
}

.credenciales__paso-num {
    font-size: clamp(27px, 4.167vw, 80px); /* 80/1920 */
    font-weight: var(--fw-black);
    color: #EF426F;
    line-height: 1;
    flex-shrink: 0;
}

.credenciales__paso-text {
    max-width: clamp(110px, 17.188vw, 330px); /* 330/1920 */
}

.credenciales__paso-text p {
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    line-height: 1.5;
    color: #4E009C;
    font-weight: var(--fw-regular);
    margin-bottom: clamp(7px, 1.042vw, 20px); /* 20/1920 */
}

.credenciales__paso-text p:last-child {
    margin-bottom: 0;
}

.credenciales__paso-text p strong {
    font-weight: var(--fw-bold);
    line-height: clamp(7px, 1.042vw, 20px); /* 20/1920 */
}

/* Alerta - caja gris */
.credenciales__alerta {
    flex: 0 0 clamp(130px, 20.26vw, 389px); /* 389/1920 */
    min-height: clamp(130px, 20.365vw, 391px); /* 391/1920 */
    background-color: rgba(78, 0, 156, 0.12);
    border-radius: clamp(5px, 0.781vw, 15px); /* 15/1920 */
    padding: 0 clamp(14px, 2.135vw, 41px); /* 41/1920 */
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.credenciales__alerta h3 {
    color: var(--color-violeta);
    font-size: clamp(8px, 1.25vw, 24px); /* 24/1920 */
    font-weight: var(--fw-black);
    margin-bottom: clamp(10px, 1.563vw, 30px); /* 30/1920 */
    text-align: center;
}

.credenciales__alerta p,
.credenciales__alerta-text p {
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    line-height: 1.5;
    color: #4E009C;
    text-align: center;
    font-weight: var(--fw-regular);
}

.credenciales__alerta strong {
    color: var(--color-violeta);
}

/* .credenciales__alerta a → usa .link-rosa */

/* --- Sección Compromisos --- */
.section-compromisos {
    padding-top: clamp(30px, 4.688vw, 90px); /* 90/1920 */
    padding-bottom: clamp(40px, 6.25vw, 120px); /* 120/1920 */
}

.compromisos-deco--lines-yellow {
    position: absolute;
    bottom: 20%;
    left: -2%;
    width: clamp(40px, 5.208vw, 100px);
    height: clamp(100px, 13.021vw, 250px);
    border-left: 3px solid var(--color-amarillo);
    border-right: 3px solid var(--color-amarillo);
    border-radius: 0 0 0 60%;
    opacity: 0.3;
    z-index: 0;
}

.compromisos__title {
    text-align: center;
    color: #EF426F;
    font-size: clamp(16px, 2.5vw, 48px); /* 48/1920 */
    font-weight: var(--fw-black);
    line-height: clamp(18px, 2.865vw, 55px); /* 55/1920 */
    margin-bottom: clamp(16px, 2.604vw, 50px);
    position: relative;
    z-index: 1;
}

.compromisos__grid {
    display: flex;
    justify-content: center;
    gap: clamp(10px, 1.563vw, 30px); /* 30/1920 */
    position: relative;
    z-index: 1;
}

.compromisos__card {
    flex: 0 0 clamp(169px, 26.458vw, 508px); /* 508/1920 */
    min-height: clamp(130px, 20.365vw, 391px); /* 391/1920 */
    border: 1.5px solid #440099;
    border-radius: clamp(7px, 1.042vw, 20px); /* 20/1920 */
    padding: clamp(16px, 2.5vw, 48px); /* 48/1920 */
    background: #fff;
    text-align: center;
}

.compromisos__card-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(7px, 1.042vw, 20px); /* 20/1920 */
    margin-bottom: clamp(10px, 1.302vw, 25px);
}

.compromisos__card-header h3 {
    color: #440099;
    font-size: clamp(8px, 1.25vw, 24px); /* 24/1920 */
    line-height: clamp(9px, 1.458vw, 28px); /* 28/1920 */
    font-weight: var(--fw-black);
}

.compromisos__card-header img {
    width: clamp(18px, 2.865vw, 55px); /* 55/1920 */
    height: clamp(18px, 2.865vw, 55px);
}

.compromisos__card p {
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    line-height: 1.5;
    color: #333;
    font-weight: var(--fw-regular);
    margin-bottom: clamp(7px, 1.042vw, 20px); /* 20/1920 */
}

.compromisos__card p:last-of-type {
    margin-bottom: 0;
}

/* .compromisos__card a → usa .link-rosa */

.compromisos__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: clamp(10px, 1.563vw, 30px); /* 30/1920 */
    min-width: clamp(91px, 14.288vw, 274px); /* 274/1920 */
    height: clamp(14px, 2.188vw, 42px); /* 42/1920 */
    background-color: #EF426F;
    color: var(--color-blanco);
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    font-weight: var(--fw-black);
    border-radius: clamp(13px, 2.083vw, 40px); /* 40/1920 */
    transition: background-color 0.3s ease;
}

.compromisos__btn:hover {
    background-color: var(--color-rosa);
}

/* ==========================================================================
   Página: Fechas Importantes
   ========================================================================== */

.page-fechas-wrap {
    position: relative;
    overflow-x: clip;
}

/* --- Sección título + timeline --- */
.section-fechas {
    padding-top: clamp(130px, 14.115vw, 271px); /* header 146 + 125 gap = 271/1920 */
    position: relative;
    z-index: 1;
}

.fechas__title {
    text-align: center;
    color: #FF4071;
    font-size: clamp(16px, 2.5vw, 48px); /* 48/1920 */
    font-weight: var(--fw-black);
    line-height: clamp(17px, 2.604vw, 50px); /* 50/1920 */
    margin-bottom: clamp(23px, 3.646vw, 70px); /* 70/1920 */
}

/* Timeline horizontal */
.fechas__timeline {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 0;
    margin-bottom: clamp(20px, 2.604vw, 50px);
    min-width: clamp(600px, 52.083vw, 1000px);
}

.fechas__timeline-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.timeline-line {
    position: absolute;
    height: clamp(2px, 0.26vw, 5px); /* 5/1920 */
    background-color: #4E009C;
    z-index: 0;
}

.timeline-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
    z-index: 1;
    width: 0;
    flex-shrink: 0;
    overflow: visible;
    white-space: nowrap;
}

.timeline-item__label {
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    line-height: clamp(7px, 1.042vw, 20px); /* 20/1920 */
    font-weight: var(--fw-bold);
    color: #4E009C;
    margin-bottom: clamp(7px, 1.042vw, 20px); /* 20/1920 */
}

.timeline-item__icon {
    width: clamp(19px, 2.917vw, 56px);
    height: clamp(19px, 2.917vw, 56px); /* 56/1920 */
    margin-bottom: clamp(10px, 1.563vw, 30px); /* 30/1920 */
    flex-shrink: 0;
}

.timeline-item__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.timeline-item__dot {
    width: clamp(6px, 0.99vw, 19px); /* 19/1920 */
    height: clamp(6px, 0.99vw, 19px);
    background-color: #4E009C;
    border-radius: 50%;
    margin-bottom: clamp(12px, 1.823vw, 35px); /* 35/1920 - distancia a la fecha */
    position: relative;
    z-index: 1;
}

.timeline-item__date {
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    color: #4E009C;
    font-weight: var(--fw-medium);
    line-height: normal;
}

.timeline-item--first {
    align-items: flex-start;
}

.timeline-item--last {
    align-items: flex-end;
}

/* Botones */
.fechas__btn-wrap {
    text-align: center;
    margin-top: clamp(20px, 3.125vw, 60px); /* 60/1920 */
}

.fechas__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: clamp(160px, 25vw, 480px); /* 480/1920 */
    height: clamp(21px, 3.229vw, 62px); /* 62/1920 */
    font-size: clamp(8px, 1.25vw, 24px); /* 24/1920 */
    font-weight: var(--fw-black);
    color: var(--color-blanco);
    line-height: normal;
    border-radius: clamp(21px, 3.333vw, 64px); /* 64/1920 */
    transition: opacity 0.3s ease;
    background-color: #FF4071;
}

.fechas__btn:hover {
    opacity: 0.85;
}

.fechas__btn--morado {
    background-color: #4E009C;
}

.fechas__btn--rojo {
    background-color: #FF4071;
}

/* --- Sección Trámites / Pagos --- */
.section-tramites {
    padding-top: clamp(27px, 4.167vw, 80px); /* 80/1920 */
    position: relative;
    z-index: 1;
}

.section-pagos {
    padding-top: clamp(22px, 3.438vw, 66px); /* 66/1920 */
    padding-bottom: clamp(32px, 4.948vw, 95px); /* 95/1920 */
    position: relative;
    z-index: 1;
}

.tramites__title {
    text-align: center;
    color: #FF4071;
    font-size: clamp(16px, 2.5vw, 48px); /* 48/1920 */
    font-weight: var(--fw-black);
    line-height: normal;
    margin-bottom: clamp(6px, 0.521vw, 10px);
}

.pagos__title {
    text-align: center;
    color: #FF4071;
    font-size: clamp(16px, 2.5vw, 48px); /* 48/1920 */
    font-weight: var(--fw-black);
    line-height: normal;
    margin-bottom: clamp(6px, 0.521vw, 10px);
}

.tramites__subtitle {
    text-align: center;
    color: #333;
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    font-weight: var(--fw-medium);
    line-height: normal;
    max-width: clamp(178px, 27.76vw, 533px); /* 533/1920 */
    margin: 0 auto clamp(16px, 2.083vw, 40px);
}

.pagos__subtitle {
    text-align: center;
    color: #333;
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    font-weight: var(--fw-medium);
    line-height: normal;
    max-width: clamp(178px, 27.76vw, 533px); /* 533/1920 */
    margin: 0 auto clamp(16px, 2.083vw, 40px);
}

/* Tabla de fechas */
.tabla-fechas {
    width: 100%;
}

.tabla-fechas__header {
    display: grid;
    grid-template-columns: 1fr 1fr 2fr;
    background-color: #FF4071;
    color: var(--color-blanco);
    font-size: clamp(8px, 1.25vw, 24px); /* 24/1920 */
    font-weight: var(--fw-bold);
    line-height: normal;
    border-radius: clamp(8px, 1.299vw, 24.94px); /* 24.94/1920 */
    padding: clamp(8px, 1.042vw, 20px) clamp(10px, 1.302vw, 25px);
    text-align: center;
    position: relative;
    z-index: 1;
    margin-bottom: clamp(-16px, -1.302vw, -5px); /* se superpone sobre la 1era fila */
}

.tabla-fechas__row {
    display: grid;
    grid-template-columns: 1fr 1fr 2fr;
    min-height: clamp(37px, 5.729vw, 110px); /* 110/1920 */
    padding: 0 clamp(10px, 1.302vw, 25px);
    background-color: #EFEBF4; /* equivalente sólido de rgba(78,0,156,0.08) sobre blanco */
    margin-bottom: clamp(1px, 0.208vw, 4px); /* 4/1920 separación blanca */
    align-items: center;
    text-align: center;
}

.tabla-fechas__header + .tabla-fechas__row {
    padding-top: clamp(16px, 1.823vw, 35px); /* extra arriba por superposición */
    padding-bottom: clamp(10px, 1.042vw, 20px);
}

.tabla-fechas__row span {
    font-size: clamp(7px, 1.042vw, 20px); /* 20/1920 */
    line-height: clamp(7px, 1.042vw, 20px); /* 20/1920 */
    color: #440099;
    font-weight: var(--fw-medium);
    max-width: clamp(149px, 23.229vw, 446px); /* 446/1920 */
    margin: 0 auto;
}

.tabla-fechas__row span:nth-child(3),
.tabla-fechas__header span:nth-child(3),
.tabla-fechas__row--2col span:nth-child(2) {
    padding-left: clamp(10px, 2.083vw, 40px);
}

.tabla-fechas__row span strong {
    font-weight: var(--fw-bold);
}

.tabla-fechas__row--2col {
    grid-template-columns: 1fr 1fr;
}

/* Nota al pie */
.pagos__nota-pie {
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    font-weight: var(--fw-medium);
    line-height: normal;
    color: #333;
    margin-top: clamp(17px, 2.708vw, 52px); /* 52/1920 */
    margin-bottom: clamp(13px, 2.083vw, 40px); /* 40/1920 */
}

/* Toma nota */
.pagos__toma-nota {
    background-color: #440099;
    color: var(--color-blanco);
    border-radius: clamp(7px, 1.143vw, 21.95px); /* 21.95/1920 */
    min-height: clamp(46px, 7.135vw, 137px); /* 137/1920 */
    padding: clamp(12px, 1.563vw, 30px) clamp(20px, 2.604vw, 50px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-bottom: clamp(13px, 2.083vw, 40px); /* 40/1920 */
}

.toma-nota__header {
    display: flex;
    align-items: center;
    gap: clamp(1px, 0.13vw, 2.5px); /* 2.5/1920 */
    margin-bottom: clamp(3px, 0.521vw, 10px); /* 10/1920 */
}

.toma-nota__header img {
    width: clamp(10px, 1.615vw, 31px); /* 31/1920 */
    height: clamp(11px, 1.771vw, 34px); /* 34/1920 */
}

.toma-nota__header p {
    font-size: clamp(8px, 1.25vw, 24px); /* 24/1920 */
    font-weight: var(--fw-black);
}

.toma-nota__text,
.toma-nota__text-wrap p {
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    line-height: clamp(7px, 1.042vw, 20px); /* 20/1920 */
    font-weight: var(--fw-medium);
    text-align: center;
    max-width: clamp(220px, 34.323vw, 659px); /* 659/1920 */
}

/* ==========================================================================
   Página: Bienestar y Servicios al Estudiante
   ========================================================================== */

.page-bienestar-wrap {
    position: relative;
    overflow-x: clip;
}

/* --- Sección principal --- */
.section-bienestar {
    padding-top: clamp(130px, 14.115vw, 271px); /* header 146 + 125 gap = 271/1920 */
    position: relative;
    z-index: 1;
}

.bienestar__title {
    text-align: center;
    color: #FF4071;
    font-size: clamp(16px, 2.5vw, 48px); /* 48/1920 */
    font-weight: var(--fw-black);
    line-height: clamp(17px, 2.604vw, 50px); /* 50/1920 */
    margin-bottom: clamp(23px, 3.646vw, 70px); /* 70/1920 */
}

.bienestar__content {
    display: flex;
    align-items: flex-start;
    gap: clamp(17px, 2.604vw, 50px); /* 50/1920 */
}

.bienestar__img {
    flex: 0 0 clamp(194px, 30.365vw, 583px); /* 583/1920 */
    height: clamp(95px, 14.896vw, 286px); /* 286/1920 */
}

.bienestar__img img {
    width: 100%;
    height: 100%;
    border-radius: clamp(6px, 0.521vw, 10px);
    object-fit: cover;
}

/* Acordeón */
.bienestar__accordion {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: clamp(7px, 1.042vw, 20px); /* 20/1920 */
}

.accordion-item__header {
    width: 100%;
    min-height: clamp(29px, 4.533vw, 87.04px); /* 87.04/1920 */
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(8px, 1.042vw, 20px);
    padding: 0 clamp(16px, 2.083vw, 40px);
    background-color: #FFFFFF;
    border: none;
    border-radius: clamp(18px, 2.873vw, 55.17px); /* 55.17/1920 */
    box-shadow: 0 clamp(1px, 0.177vw, 3.4px) clamp(6px, 0.907vw, 17.41px) 0 #DAE5ED;
    cursor: pointer;
    transition: box-shadow 0.3s ease;
    position: relative;
}

.accordion-item__header span {
    font-size: clamp(7px, 1.042vw, 20px); /* 20/1920 */
    font-weight: var(--fw-bold);
    color: #4E009C;
    line-height: normal;
}

.accordion-item__header i {
    width: clamp(5px, 0.82vw, 15.74px); /* 15.74/1920 */
    font-size: clamp(5px, 0.82vw, 15.74px);
    color: #4E009C;
    transition: transform 0.3s ease;
    position: absolute;
    right: clamp(15px, 2.396vw, 46px); /* 46/1920 */
}

.accordion-item.is-open .accordion-item__header i {
    transform: rotate(180deg);
}

.accordion-item.is-open .accordion-item__header {
    border-bottom: none;
    border-radius: clamp(18px, 2.873vw, 55.17px) clamp(18px, 2.873vw, 55.17px) 0 0;
    box-shadow: 0 0 clamp(6px, 0.907vw, 17.41px) 0 #DAE5ED;
}

.accordion-item__body {
    display: none;
    padding: clamp(16px, 2.083vw, 40px) clamp(20px, 3.125vw, 60px);
    text-align: center;
    position: relative;
    background-color: #FFFFFF;
    box-shadow: 0 clamp(1px, 0.177vw, 3.4px) clamp(6px, 0.907vw, 17.41px) 0 #DAE5ED;
    border-radius: 0 0 clamp(18px, 2.873vw, 55.17px) clamp(18px, 2.873vw, 55.17px);
}

.accordion-item.is-open .accordion-item__body {
    display: block;
}

.accordion-item__body p {
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    line-height: 1.5;
    color: #333;
    font-weight: var(--fw-regular);
    margin-bottom: clamp(10px, 1.563vw, 30px);
}

.accordion-item__body ul {
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    line-height: 1.5;
    color: #333;
    font-weight: var(--fw-regular);
    margin-bottom: clamp(10px, 1.563vw, 30px);
    list-style: disc;
    padding-left: clamp(10px, 1.042vw, 20px);
    text-align: left;
}

/* .accordion-item__body a → usa .link-rosa */

.accordion-item__link {
    font-size: clamp(6px, 0.833vw, 16px);
    font-weight: var(--fw-black);
    color: #FF4071;
}

/* --- Sección requisitos --- */
.section-requisitos {
    position: relative;
    z-index: 1;
    padding-bottom: clamp(32px, 4.948vw, 95px);
}

.section-requisitos .fechas__btn-wrap {
    margin-top: 0;
}

/* ==========================================================================
   Página: Autoridades Académicas
   ========================================================================== */

.page-autoridades-wrap {
    position: relative;
    overflow-x: clip;
}

.section-autoridades {
    padding-top: clamp(130px, 14.115vw, 271px); /* header 146 + 125 gap = 271/1920 */
    padding-bottom: clamp(32px, 4.948vw, 95px);
    position: relative;
    z-index: 1;
}

.autoridades__title {
    text-align: center;
    color: #FF4071;
    font-size: clamp(16px, 2.5vw, 48px); /* 48/1920 */
    font-weight: var(--fw-black);
    line-height: clamp(17px, 2.604vw, 50px); /* 50/1920 */
    margin-bottom: clamp(6px, 0.521vw, 10px);
}

.autoridades__subtitle {
    text-align: center;
    color: #4E009C;
    font-size: clamp(8px, 1.25vw, 24px); /* 24/1920 */
    font-weight: var(--fw-bold);
    line-height: normal;
    margin-bottom: clamp(17px, 2.604vw, 50px); /* 50/1920 */
}

/* Grids */
.autoridades__grid {
    display: grid;
    justify-items: center;
}

.autoridades__grid--3col {
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(20px, 3.125vw, 60px) clamp(65px, 10.156vw, 195px); /* 60 vertical, 195 horizontal */
    margin-bottom: clamp(41px, 6.406vw, 123px); /* 123/1920 */
}

.autoridades__grid--4col {
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(7px, 1.042vw, 20px); /* 20/1920 */
    margin-bottom: clamp(41px, 6.406vw, 123px); /* 123/1920 */
}

/* Card de autoridad */
.autoridad-card {
    text-align: center;
}

.autoridad-card__img {
    width: clamp(110px, 17.134vw, 328.97px); /* 328.97/1920 */
    height: clamp(123px, 19.224vw, 369.09px); /* 369.09/1920 */
    border-radius: clamp(6px, 0.938vw, 18px); /* 18/1920 */
    overflow: hidden;
    margin: 0 auto clamp(6px, 0.833vw, 16px);
}

.autoridad-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.autoridad-card__name {
    font-size: clamp(8px, 1.25vw, 24px); /* 24/1920 */
    font-weight: var(--fw-extrabold);
    color: #4E009C;
    line-height: normal;
    margin-bottom: clamp(5px, 0.781vw, 15px); /* 15/1920 */
}

.autoridad-card__role {
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    font-weight: var(--fw-medium);
    color: #4E009C;
    line-height: normal;
}

/* ==========================================================================
   Página: Consultora InHaus
   ========================================================================== */

.page-inhaus-wrap {
    position: relative;
    overflow-x: clip;
}

/* Hero InHaus */
.inhaus-hero {
    position: relative;
    width: 100%;
    aspect-ratio: 1920 / 716;
    overflow: hidden;
    margin-top: clamp(73px, 7.604vw, 146px); /* compensa header fixed */
}

.inhaus-hero > picture {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.inhaus-hero__bg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

.inhaus-hero > .container {
    display: flex;
    align-items: center;
    height: 100%;
}

.inhaus-hero__content {
    position: relative;
    z-index: 1;
}


.inhaus-hero__title {
    margin: 0;
}

.inhaus-hero__logo {
    width: clamp(175px, 27.292vw, 524px); /* 524/1920 */
    height: auto;
    margin-bottom: clamp(10px, 1.563vw, 30px);
}

.inhaus-hero__text,
.inhaus-hero__text p {
    font-size: clamp(8px, 1.25vw, 24px); /* 24/1920 */
    font-weight: var(--fw-regular);
    color: var(--color-blanco);
    line-height: clamp(12px, 1.875vw, 36px); /* 36/1920 */
    max-width: clamp(219px, 34.271vw, 658px); /* 658/1920 */
}

.inhaus-hero__text strong {
    font-weight: var(--fw-bold);
}

/* Sección Mensaje */
.section-mensaje {
    padding-top: clamp(42px, 6.51vw, 125px); /* 125/1920 — mismo gap que h1 en otras páginas */
    position: relative;
    z-index: 1;
}

.mensaje__title {
    text-align: center;
    color: #EF426F;
    font-size: clamp(16px, 2.5vw, 48px);
    font-weight: var(--fw-black);
    line-height: clamp(17px, 2.604vw, 50px);
    margin-bottom: clamp(20px, 2.604vw, 50px);
}


.mensaje__card {
    background-color: rgba(218, 229, 237, 0.5); /* 218,229,237 50% */
    border-radius: clamp(11px, 1.667vw, 32px); /* 32/1920 */
    padding: clamp(20px, 2.604vw, 50px) clamp(30px, 4.167vw, 80px);
    text-align: center;
    width: 100%;
}

.mensaje__card-title {
    font-size: clamp(8px, 1.25vw, 24px); /* 24/1920 */
    font-weight: var(--fw-bold);
    color: #440099;
    margin-bottom: clamp(10px, 1.563vw, 30px); /* 30/1920 */
}

.mensaje__card p {
    font-size: clamp(7px, 1.042vw, 20px); /* 20/1920 */
    font-weight: var(--fw-regular);
    color: #440099;
    line-height: normal;
    margin-bottom: clamp(6px, 0.833vw, 16px);
    max-width: clamp(381px, 59.479vw, 1142px); /* 1142/1920 */
    margin-left: auto;
    margin-right: auto;
}

.mensaje__card p strong {
    font-weight: var(--fw-bold);
}

.mensaje__card p:last-child {
    margin-bottom: 0;
}

/* .mensaje__card-link a → usa .link-rosa */

/* Sección Equipo */
.section-equipo {
    padding-top: clamp(23px, 3.646vw, 70px); /* 70/1920 */
    position: relative;
    z-index: 1;
}

.equipo__title {
    text-align: center;
    color: #FF4071;
    font-size: clamp(8px, 1.25vw, 24px); /* 24/1920 */
    font-weight: var(--fw-black);
    line-height: normal;
    margin-bottom: clamp(17px, 2.604vw, 50px); /* 50/1920 */
}

.equipo__text,
.equipo__text-wrap p {
    text-align: center;
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    font-weight: var(--fw-medium);
    color: #333;
    line-height: normal;
    max-width: clamp(400px, 45.833vw, 880px);
    margin: 0 auto clamp(6px, 0.521vw, 10px);
}

.equipo__destacado,
.equipo__text-wrap p:last-child {
    text-align: center;
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    color: #333;
    margin-bottom: clamp(20px, 3.125vw, 60px); /* 60/1920 */
}

.equipo__grid {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: clamp(20px, 3.125vw, 60px) clamp(35px, 5.469vw, 105px); /* 60 vertical, 105 horizontal */
}

/* Sección Clientes */
.section-clientes {
    padding: clamp(20px, 2.604vw, 50px) 0 clamp(32px, 4.948vw, 95px);
    background-color: var(--color-blanco);
    position: relative;
    z-index: 1;
}

.clientes__text-wrap p {
    text-align: center;
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    font-weight: var(--fw-medium);
    color: #333;
    line-height: normal;
    max-width: clamp(400px, 45.833vw, 880px);
    margin: 0 auto clamp(6px, 0.521vw, 10px);
}

.clientes__text-wrap p:last-child {
    margin-bottom: clamp(17px, 2.604vw, 50px); /* 50/1920 */
}

.clientes__title {
    text-align: center;
    color: #FF4071;
    font-size: clamp(8px, 1.25vw, 24px); /* 24/1920 */
    font-weight: var(--fw-black);
    line-height: normal;
    margin-bottom: clamp(10px, 1.042vw, 20px);
}

.clientes__carousel-wrap {
    overflow: hidden;
}

.clientes__grid {
    display: flex;
    gap: clamp(20px, 3.125vw, 60px); /* 60/1920 */
}

.clientes__carousel-wrap:hover .clientes__grid {
    animation-play-state: paused;
}

.clientes__grid .cliente-card {
    flex: 0 0 clamp(100px, 14.583vw, 280px);
}

.cliente-card {
    text-align: center;
    text-decoration: none;
    color: inherit;
    display: block;
}

.cliente-card:hover {
    opacity: 0.8;
}

.cliente-card__logo {
    height: clamp(30px, 4.167vw, 80px);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: clamp(6px, 0.833vw, 16px);
}

.cliente-card__logo img {
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
}

.cliente-card__desc {
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    font-weight: var(--fw-medium);
    color: #333;
    line-height: 1.4;
    max-width: clamp(66px, 10.313vw, 198px); /* 198/1920 */
    margin: 0 auto;
}

.page-deco--left-footer {
    bottom: clamp(30px, 4.688vw, 90px); /* 90 desde el footer */
    left: 0;
    width: clamp(102px, 15.885vw, 305px); /* 305/1920 */
    height: auto;
}

/* ==========================================================================
   Página: Plataformas Digitales
   ========================================================================== */

.page-plataformas-wrap {
    position: relative;
    overflow-x: clip;
}

.section-plataformas {
    padding-top: clamp(130px, 14.115vw, 271px); /* header 146 + 125 gap */
    padding-bottom: clamp(32px, 4.948vw, 95px);
    position: relative;
    z-index: 1;
}

.plataformas__title {
    text-align: center;
    color: #FF4071;
    font-size: clamp(16px, 2.5vw, 48px); /* 48/1920 */
    font-weight: var(--fw-black);
    line-height: clamp(17px, 2.604vw, 50px); /* 50/1920 */
    margin-bottom: clamp(6px, 0.521vw, 10px);
}

.plataformas__subtitle {
    text-align: center;
    color: #4E009C;
    font-size: clamp(8px, 1.25vw, 24px); /* 24/1920 */
    font-weight: var(--fw-bold);
    line-height: normal;
    margin-bottom: clamp(23px, 3.646vw, 70px); /* 70/1920 */
}

.plataformas__content {
    display: flex;
    align-items: flex-start;
    gap: clamp(25px, 3.854vw, 74px); /* 74/1920 */
    margin-bottom: clamp(23px, 3.646vw, 70px); /* 70/1920 */
}

.plataformas__img {
    flex: 0 0 clamp(237px, 37.083vw, 712px); /* 712/1920 */
    height: clamp(124px, 19.375vw, 372px); /* 372/1920 */
}

.plataformas__img img {
    width: 100%;
    height: 100%;
    border-radius: clamp(6px, 0.938vw, 18px); /* 18/1920 */
    object-fit: cover;
}

/* Accordion plataformas — variaciones */
.page-plataformas-wrap .accordion-item__header {
    background-color: rgba(229, 217, 240, 0.6); /* 229,217,240 60% */
    justify-content: flex-start;
    gap: clamp(7px, 1.146vw, 22px); /* 22/1920 */
    padding-left: clamp(20px, 2.604vw, 50px);
    padding-right: clamp(20px, 2.604vw, 50px);
    max-width: clamp(200px, 31.302vw, 601px); /* 601/1920 */
    width: 100%;
    min-height: clamp(23px, 3.595vw, 69.02px); /* 69.02/1920 */
}

.page-plataformas-wrap .accordion-item__header span {
    flex: 1;
    text-align: left;
}

.page-plataformas-wrap .accordion-item__header i.fa-chevron-down {
    position: static;
    margin-left: auto;
}

.page-plataformas-wrap .accordion-item__body {
    width: 100%;
    max-width: clamp(200px, 31.302vw, 601px); /* mismo que header */
}

.page-plataformas-wrap .bienestar__accordion {
    gap: clamp(10px, 1.563vw, 30px); /* 30/1920 */
}

.page-plataformas-wrap .accordion-item__header span {
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
}

img.accordion-item__icon {
    width: clamp(8px, 1.354vw, 26px); /* ~25-27 promedio */
    height: auto;
    object-fit: contain;
    position: static;
    flex-shrink: 0;
}

/* ==========================================================================
   Página: Aspectos Académicos
   ========================================================================== */

.page-aspectos-wrap {
    position: relative;
    overflow-x: clip;
    background: linear-gradient(
        to bottom,
        rgba(165, 125, 204, 0.23) 0%,
        rgba(175, 139, 209, 0.24) 3%,
        rgba(196, 170, 221, 0.25) 10%,
        rgba(214, 196, 232, 0.27) 18%,
        rgba(229, 217, 240, 0.28) 26%,
        rgba(240, 234, 246, 0.29) 35%,
        rgba(248, 246, 251, 0.29) 45%,
        rgba(253, 252, 254, 0.3) 58%,
        #FFFFFF 78%
    );
}

.section-aspectos {
    padding-top: clamp(130px, 14.115vw, 271px); /* header 146 + 125 gap */
    position: relative;
    z-index: 1;
}

.aspectos__title {
    text-align: center;
    color: #FF4071;
    font-size: clamp(16px, 2.5vw, 48px);
    font-weight: var(--fw-black);
    line-height: clamp(17px, 2.604vw, 50px);
    margin-bottom: clamp(6px, 0.521vw, 10px);
}

.aspectos__subtitle {
    text-align: center;
    color: #4E009C;
    font-size: clamp(8px, 1.25vw, 24px);
    font-weight: var(--fw-bold);
    margin-top: clamp(17px, 2.604vw, 50px); /* 50/1920 */
    margin-bottom: clamp(16px, 2.083vw, 40px);
}

/* Tabs */
.aspectos__tabs {
    display: flex;
    justify-content: center;
    gap: clamp(10px, 1.563vw, 30px);
    margin-bottom: clamp(20px, 2.604vw, 50px);
}

.aspectos__tab {
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    font-weight: var(--fw-medium);
    color: #626263;
    background: none;
    border: none;
    padding: 0 clamp(12px, 1.563vw, 30px);
    height: clamp(13px, 2.083vw, 40px); /* 40/1920 */
    border-radius: clamp(13px, 2.083vw, 40px); /* 40/1920 */
    cursor: pointer;
    transition: all 0.3s ease;
}

.aspectos__tab.is-active {
    border: 1px solid #440099;
    background-color: rgba(68, 0, 153, 0.12); /* 68,0,153 12% */
    color: #4E009C;
    font-weight: var(--fw-bold);
}

.aspectos__tab:hover {
    color: #4E009C;
}

.page-aspectos-wrap .accordion-item__header span {
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    font-weight: var(--fw-bold);
}

/* Tab content */
.aspectos__tab-content {
    display: none;
    max-width: clamp(300px, 41.667vw, 800px);
    margin: 0 auto;
}

.aspectos__tab-content.is-active {
    display: block;
}

/* Sección Bachiller */
.section-bachiller {
    padding: clamp(20px, 3.125vw, 60px) 0 clamp(32px, 4.948vw, 95px);
    position: relative;
    z-index: 1;
}

.bachiller__title {
    text-align: center;
    color: #FF4071;
    font-size: clamp(8px, 1.25vw, 24px);
    font-weight: var(--fw-black);
    line-height: normal;
    margin-bottom: clamp(17px, 2.604vw, 50px); /* 50/1920 */
}

.bachiller__text {
    text-align: center;
    font-size: clamp(7px, 1.042vw, 20px); /* 20/1920 */
    font-weight: var(--fw-medium);
    color: #333;
    line-height: 1.5;
    max-width: clamp(206px, 32.188vw, 618px); /* 618/1920 */
    margin: 0 auto clamp(20px, 2.604vw, 50px);
}

/* Cards modalidad */
.modalidad-card {
    display: flex;
    align-items: stretch;
    gap: 0;
    margin-bottom: clamp(20px, 2.604vw, 50px);
}

.modalidad-card__img-wrap {
    flex: 0 0 clamp(226px, 35.302vw, 677.8px); /* 677.8/1920 */
    position: relative;
    border-radius: clamp(6px, 0.991vw, 19.03px); /* 19.03/1920 */
}

.modalidad-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: clamp(6px, 0.991vw, 19.03px);
}

.modalidad-card__icon {
    position: absolute;
    top: 0;
    left: 0;
    transform: translateY(clamp(-29px, -1.51vw, -10px)); /* sale 29px arriba de la imagen */
    width: clamp(35px, 5.397vw, 103.63px); /* 103.63/1920 */
    height: clamp(35px, 5.397vw, 103.63px);
    background-color: #440099;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}

.modalidad-card__icon img {
    width: 55%;
    height: 55%;
    object-fit: contain;
}

.modalidad-card__btn {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, 50%);
    font-size: clamp(5px, 0.729vw, 14px) !important;
    min-width: auto !important;
    height: clamp(16px, 2.083vw, 40px) !important;
    padding: 0 clamp(12px, 1.563vw, 30px);
    white-space: nowrap;
    white-space: nowrap;
    z-index: 2;
}

.modalidad-card__info {
    flex: 1;
    margin-left: clamp(13px, 2.083vw, 40px);
    position: relative;
    border: 1.59px solid #440099;
    border-radius: clamp(7px, 1.101vw, 21.15px); /* 21.15/1920 */
    padding: clamp(7px, 1.042vw, 20px) clamp(21px, 3.333vw, 64px); /* 20 top/bottom, 64 left/right */
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.modalidad-card__info h3 {
    font-size: clamp(8px, 1.25vw, 24px); /* 24/1920 */
    font-weight: var(--fw-black);
    color: #4E009C;
    margin-bottom: clamp(8px, 1.042vw, 20px);
}

.modalidad-card__info p {
    font-size: clamp(5px, 0.833vw, 16px); /* 16/1920 */
    font-weight: var(--fw-regular);
    color: #333;
    line-height: clamp(7px, 1.094vw, 21px); /* 21/1920 */
    margin-bottom: clamp(7px, 1.042vw, 20px); /* 20/1920 */
}

.modalidad-card__info p:last-child {
    margin-bottom: 0;
}


/* ==========================================================================
   Responsive
   ========================================================================== */

/* --- Tablet --- */
@media (max-width: 1024px) {
    .site-header .main-nav {
        position: fixed;
        top: 0;
        left: 0;
        width: 42vw; /* 151/360 */
        height: auto;
        max-height: 100vh;
        background-color: #FFFFFF;
        flex-direction: column !important;
        align-items: flex-start !important;
        padding: 15vw 5.556vw; /* 54px top, 20px sides */
        gap: 8.333vw; /* 30/360 */
        z-index: 200;
        transform: translateX(-100%);
        transition: transform 0.3s ease;
        overflow-y: auto;
    }

    .site-header .main-nav.is-open {
        transform: translateX(0);
    }

    .site-header .main-nav > a,
    .site-header .main-nav > .nav-dropdown {
        width: 100%;
    }

    .site-header .main-nav a {
        color: #440099;
        font-size: 3.889vw; /* 14/360 */
        font-weight: var(--fw-bold);
        line-height: 1.3;
    }

    /* Overlay oscuro */
    .menu-overlay {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.5);
        z-index: 99;
    }

    .menu-overlay.is-active {
        display: block;
    }

    /* Dropdown en mobile */
    .site-header .main-nav .nav-dropdown {
        position: static !important;
        display: flex !important;
        flex-direction: row !important;
        align-self: auto !important;
        height: auto !important;
        align-items: center !important;
        gap: 1.389vw !important; /* 5/360 */
    }

    .site-header .main-nav .nav-dropdown__trigger {
        padding: 0 !important;
        margin: 0 !important;
        justify-content: flex-start !important;
    }

    .site-header .main-nav .nav-dropdown__menu {
        position: fixed !important;
        top: auto !important;
        left: 42vw !important; /* justo al lado del drawer */
        width: auto !important;
        min-width: 40vw !important;
        height: auto !important;
        background-color: #FFFFFF !important;
        box-shadow: 4px 4px 12px rgba(0, 0, 0, 0.1) !important;
        padding: 5.556vw !important;
        flex-direction: column !important;
        gap: 4.444vw !important;
        display: none !important;
        border-radius: 0 2.778vw 2.778vw 0 !important;
        z-index: 201;
    }

    .site-header .main-nav .nav-dropdown__menu::before {
        display: none !important;
    }

    .site-header .main-nav .nav-dropdown:hover .nav-dropdown__menu {
        display: none !important;
    }

    .site-header .main-nav .nav-dropdown.is-open .nav-dropdown__menu {
        display: none !important; /* el original se oculta, usamos el clon */
    }

    /* Submenú clonado fuera del drawer */
    .nav-dropdown__menu--mobile {
        display: flex;
        flex-direction: column;
        gap: 4.444vw;
        background-color: #FFFFFF;
        box-shadow: 4px 4px 12px rgba(0, 0, 0, 0.1);
        padding: 2.778vw; /* 10/360 */
        border-radius: 0;
        width: 33.333vw; /* 120/360 */
    }

    .nav-dropdown__menu--mobile a {
        color: #440099 !important;
        font-size: 3.333vw !important; /* 12/360 */
        font-weight: var(--fw-medium) !important;
        line-height: 1.3 !important;
        text-decoration: none;
    }

    .site-header .main-nav .nav-dropdown__menu a {
        color: #440099 !important;
        font-size: 4.444vw !important; /* 16/360 */
        font-weight: var(--fw-medium) !important;
        padding: 1.389vw 0 !important;
        line-height: 1.3 !important;
    }

    /* Botón cerrar */
    .menu-close {
        display: block;
        position: absolute;
        top: 4.444vw; /* 16/360 */
        left: 5.556vw; /* 20/360 */
        background: none;
        border: none;
        font-size: 4.444vw; /* 16/360 */
        width: 4.444vw;
        height: 4.444vw;
        color: #440099;
        cursor: pointer;
        padding: 0;
    }

    .site-header,
    .site-header.is-scrolled {
        height: 15vw; /* 54/360 */
    }

    .site-header .site-logo img,
    .site-header.is-scrolled .site-logo img {
        width: 11.769vw; /* 42.37/360 */
    }

    .site-header .menu-toggle {
        display: block;
        padding: 0;
    }

    .menu-toggle span {
        width: 5.292vw; /* 19.05/360 */
        height: 0.556vw; /* 2/360 */
        margin: 1.389vw 0; /* 5/360 */
    }


    .site-footer .footer__grid {
        gap: 30px;
    }
}

/* ==========================================================================
   Página 404
   ========================================================================== */

.page-404-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.section-404 {
    text-align: center;
    padding: clamp(130px, 14.115vw, 271px) 0 clamp(60px, 5.208vw, 100px);
}

.error404__title {
    font-size: clamp(60px, 10.417vw, 200px);
    font-weight: var(--fw-black);
    color: var(--color-violeta);
    line-height: 1;
    margin-bottom: clamp(10px, 1.042vw, 20px);
}

.error404__subtitle {
    font-size: clamp(16px, 1.667vw, 32px);
    font-weight: var(--fw-bold);
    color: #FF4071;
    margin-bottom: clamp(10px, 1.042vw, 20px);
}

.error404__text {
    font-size: clamp(10px, 0.833vw, 16px);
    color: #333;
    font-weight: var(--fw-regular);
    max-width: clamp(250px, 31.25vw, 600px);
    margin: 0 auto clamp(20px, 2.083vw, 40px);
    line-height: 1.5;
}

/* --- Mobile --- */
@media (max-width: 768px) {
    :root {
        --container-padding: 16px;
    }


    /* Hero mobile */
    .hero {
        aspect-ratio: auto;
        min-height: 100svh;
    }

    .hero > .container {
        justify-content: center;
    }

    .hero .hero__content {
        text-align: center;
        padding-top: 80px;
        max-width: none;
    }

    .hero .hero__title {
        font-size: 7.778vw; /* 28/360 */
    }

    .hero .hero__subtitle {
        font-size: 4.444vw; /* 16/360 */
    }

    .hero .hero__text {
        font-size: 3.889vw; /* 14/360 */
    }

    .hero .hero__bg {
        object-position: center bottom;
    }

    /* Inducción mobile */
    .section-induccion__deco {
        top: 29.722vw; /* 107/360 */
        width: 21.944vw; /* 79/360 */
    }

    .section-induccion .section-induccion__title {
        font-size: 4.444vw; /* 16/360 */
    }

    .section-induccion .timeline {
        width: 93.611%; /* 337/360 */
    }

    .section-induccion .timeline__step--1 { left: 0%; top: 5%; }
    .section-induccion .timeline__step--1 .timeline__step-text { width: 31.944vw !important; } /* 115/360 */
    .section-induccion .timeline__step--2 { left: -2%; top: 23%; }
    .section-induccion .timeline__step--2 .timeline__step-text { width: 40.278vw !important; } /* 145/360 */
    .section-induccion .timeline__step--3 { left: 2%; top: 51.5%; }
    .section-induccion .timeline__step--3 .timeline__step-text { width: 50.556vw !important; } /* 182/360 */
    .section-induccion .timeline__step--4 { left: 7%; top: 80%; }
    .section-induccion .timeline__step--4 .timeline__step-text { width: 29.444vw !important; } /* 106/360 */

    .section-induccion .timeline__step-text h3 { font-size: 3.333vw; line-height: 3.333vw; margin-bottom: 1.389vw; } /* 12/360, lh 12/360, mb 5/360 */
    .section-induccion .timeline__step-text p { font-size: 2.778vw; line-height: 3.056vw; font-weight: var(--fw-medium); margin-bottom: 1.389vw; } /* 10/360, lh 11/360, mb 5/360 */
    .section-induccion .timeline__step-number { width: 8.25vw; height: 8.25vw; font-size: 6.117vw; } /* 29.7/360, 22.02/360 */

    .section-induccion .timeline__step--1 .timeline__step-text { margin-top: 5vw !important; margin-right: 4.444vw !important; } /* 18/360, gap 16/360 */
    .section-induccion .timeline__step--1 .timeline__step-number { margin-top: 5vw !important; margin-right: 2.222vw !important; } /* 18/360, gap 8/360 */
    .section-induccion .timeline__step--1 .timeline__step-icon { width: 20.556vw; height: 18.611vw; margin-top: 0 !important; } /* 74/360, 67/360 */
    .section-induccion .timeline__step--2 .timeline__step-text { margin-top: 15.278vw !important; } /* 55/360 */
    .section-induccion .timeline__step--2 .timeline__step-number { margin-top: 23.056vw !important; margin-right: 6.944vw !important; } /* 83/360, gap 25/360 */
    .section-induccion .timeline__step--2 .timeline__step-icon { width: 23.333vw; height: 23.611vw; margin-top: 0 !important; margin-right: -12.5vw !important; } /* 84/360, 85/360, -45/360 */
    .section-induccion .timeline__step--3 .timeline__step-text { margin-top: 3.611vw !important; margin-right: 8.333vw !important; } /* 13/360, gap 30/360 */
    .section-induccion .timeline__step--3 .timeline__step-number { margin-top: 13.333vw !important; margin-right: 0 !important; } /* 48/360 */
    .section-induccion .timeline__step--3 .timeline__step-icon { width: 6.944vw; height: 20.833vw; margin-top: 0 !important; } /* 25/360, 75/360 */
    .section-induccion .timeline__step--4 .timeline__step-text { margin-top: 5vw !important; margin-right: 1.111vw !important; } /* 18/360, gap 4/360 */
    .section-induccion .timeline__step--4 .timeline__step-number { margin-top: 5vw !important; margin-right: 1.944vw !important; } /* 18/360, gap 7/360 */
    .section-induccion .timeline__step--4 .timeline__step-icon { width: 15vw; height: 16.944vw; margin-top: 0 !important; } /* 54/360, 61/360 */

    /* Secciones */
    .section-kit {
        padding-top: 12.222vw; /* 44/360 */
    }

    .section-kit .section-kit__title {
        font-size: 4.444vw;
        margin-bottom: 8.333vw; /* 30/360 */
    }

    .section-kit .section-kit__viewport {
        overflow: hidden;
    }

    .section-kit .section-kit__grid {
        --kit-gap: 3.333vw;
        gap: var(--kit-gap);
    }

    .section-kit .section-kit__arrow {
        display: none;
    }

    .section-kit .section-kit__card {
        min-width: 0;
        border-radius: 3.203vw;
        padding: 4.167vw 2.778vw;
    }

    .section-kit .section-kit__card h3 {
        font-size: 3.889vw; /* 14/360 */
    }

    .section-kit .section-kit__card p {
        font-size: 3.333vw; /* 12/360 */
    }

    .section-kit .section-kit__card-link {
        font-size: 3.056vw; /* 11/360 */
        border-radius: 3.631vw;
        width: 38.889vw; /* 140/360 */
        height: 8.333vw; /* 30/360 */
    }

    .section-kit .section-kit__dots {
        margin-top: 4.167vw;
    }

    .section-kit .section-kit__dot {
        width: 1.389vw; /* 5/360 */
        height: 1.389vw;
    }

    /* Becas mobile — columna vertical */
    .becas__title {
        font-size: 4.444vw; /* 16/360 */
    }

    .section-becas .becas__grid {
        flex-direction: column;
        align-items: center;
        gap: 5.556vw; /* 20/360 */
    }

    .section-becas .becas__card {
        flex: none;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .section-becas .becas__card.is-expanded {
        flex: none;
        width: 100%;
    }

    .section-becas .becas__card-closed {
        width: 75vw; /* 270/360 */
        height: 16.667vw; /* 60/360 */
        min-height: 16.667vw;
        padding: 0 4.167vw;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        border-radius: 1.717vw; /* 6.18/360 */
    }

    .section-becas .becas__card-closed .becas__card-title {
        font-size: 3.333vw; /* 12/360 */
        line-height: normal;
        text-align: center;
        flex: 1;
    }

    .section-becas .becas__card-btn {
        font-size: 2.778vw; /* 10/360 */
        line-height: normal;
        font-weight: var(--fw-black);
        position: absolute;
        bottom: 2.778vw;
        right: 4.167vw;
    }

    .section-becas .becas__card-arrow {
        width: 5.556vw; /* 20/360 */
        height: 5.556vw;
        font-size: 2.778vw; /* 10/360 */
    }

    .section-becas .becas__card-arrow i {
        transform: rotate(90deg); /* apunta hacia abajo */
    }

    .section-becas .becas__card-deco {
        width: 6.039vw;
        bottom: auto;
        top: 50%;
        transform: translateY(-50%);
        left: 0;
    }

    .section-becas .becas__card-open {
        grid-template-columns: 1fr 22.283vw; /* 1fr + 80.22/360 */
        height: auto;
        padding: 5.556vw;
        width: 75vw; /* 270/360 */
        border-radius: 1.717vw; /* 6.18/360 */
    }

    .section-becas .becas__card-open .becas__card-title {
        font-size: 3.333vw; /* 12/360 */
        line-height: normal;
    }

    .section-becas .becas__card-open .becas__card-info {
        overflow-y: visible;
    }

    .section-becas .becas__card-open .becas__card-info p {
        font-size: 2.778vw; /* 10/360 */
        line-height: normal;
    }

    .section-becas .becas__card-open .becas__card-img-wrap {
        max-height: 31.739vw; /* 114.26/360 */
    }

    /* Estudiante mobile */
    .section-estudiante {
        padding-top: 21.667vw; /* header 54(15vw) + 24 gap = 78/360 */
    }

    .section-estudiante .estudiante__title {
        font-size: 4.444vw; /* 16/360 */
        margin-bottom: 5.556vw; /* 20/360 */
    }

    .estudiante__codigo {
        flex-direction: column;
        gap: 6.389vw; /* 23/360 */
        padding: 0;
    }

    .estudiante__codigo-img {
        flex: none;
        width: 72.222vw; /* 260/360 */
        height: 26.667vw; /* 96/360 */
        margin: 0 auto;
    }

    .estudiante__codigo-info {
        flex: none;
        margin: 0 auto;
    }

    .estudiante__codigo-info p,
    .estudiante__codigo-info-text p {
        max-width: 60vw; /* 216/360 */
        margin-left: auto;
        margin-right: auto;
    }

    .estudiante__codigo-info h2 {
        font-size: 3.889vw; /* 14/360 */
        line-height: 1.3;
    }

    .estudiante__codigo-info p,
    .estudiante__codigo-info-text p {
        font-size: 3.333vw; /* 12/360 */
        line-height: 3.889vw; /* 14/360 */
    }

    .section-credenciales {
        padding-top: 6.667vw;
    }

    .credenciales__title {
        font-size: 4.444vw; /* 16/360 */
        margin-bottom: 5.556vw;
        max-width: 60vw; /* 216/360 */
        margin-left: auto;
        margin-right: auto;
    }

    .credenciales__grid {
        flex-direction: column;
        gap: 5.556vw;
        padding: 0;
        max-width: 60vw; /* 216/360 */
        margin-left: auto;
        margin-right: auto;
    }

    .credenciales__alerta {
        flex: none;
        width: 60vw; /* 216/360 */
        min-height: 51.944vw; /* 187/360 */
        border-radius: 1.869vw; /* 6.73/360 */
        padding: 5.556vw 4.444vw; /* 20/360 16/360 */
        margin: 0 auto;
    }

    .credenciales__paso-num {
        font-size: 9.722vw; /* 35/360 */
    }

    .credenciales__paso-text {
        max-width: none;
    }

    .credenciales__paso-text p {
        font-size: 3.333vw; /* 12/360 */
        line-height: 3.889vw; /* 14/360 */
    }

    .credenciales__alerta h3 {
        font-size: 3.889vw; /* 14/360 */
    }

    .credenciales__alerta p,
    .credenciales__alerta-text p {
        font-size: 3.333vw; /* 12/360 */
    }

    .section-compromisos {
        padding-bottom: 13.889vw; /* 50/360 */
    }

    .compromisos__title {
        font-size: 4.444vw; /* 16/360 */
        line-height: normal;
        margin-bottom: 5.556vw;
        max-width: 60vw; /* 216/360 */
        margin-left: auto;
        margin-right: auto;
    }

    .compromisos__grid {
        flex-direction: column;
        gap: 5.556vw;
        max-width: 60vw; /* 216/360 */
        margin-left: auto;
        margin-right: auto;
    }

    .compromisos__card {
        flex: none;
        padding: 5.556vw;
    }

    .compromisos__card-header h3 {
        font-size: 3.889vw; /* 14/360 */
        line-height: 3.889vw; /* 14/360 */
    }

    .compromisos__card-header img {
        width: 6.858vw; /* 24.69/360 */
        height: 6.858vw;
    }

    .compromisos__card p {
        font-size: 3.333vw; /* 12/360 */
        line-height: 3.889vw; /* 14/360 */
    }

    .compromisos__btn {
        font-size: 3.056vw; /* 11/360 */
        min-width: 36.111vw; /* 130/360 */
        height: 6.667vw; /* 24/360 */
        border-radius: 5.003vw; /* 18.01/360 */
    }

    /* Decorativos mobile */
    .page-deco--right {
        width: 18.333vw; /* 66/360 */
        top: 71.944vw; /* header 73px(20.278vw) + 186(51.667vw) = 259/360 */
    }

    .page-deco--left {
        width: 18.392vw; /* 66.21/360 */
        bottom: 14.444vw; /* 52/360 */
    }

    .page-deco--right-mid {
        display: none;
    }

    .page-deco--left-footer {
        width: 18vw; /* ~65/360 */
        bottom: 14.444vw; /* ~52/360 */
    }

    .page-deco--left-bottom {
        width: 18.056vw; /* 65/360 */
        bottom: 33.333vw; /* 120/360 */
    }

    /* Fechas mobile */
    .section-fechas {
        padding-top: 21.667vw; /* header 54(15vw) + 24 gap = 78/360 */
    }

    .fechas__title {
        font-size: 4.444vw; /* 16/360 */
    }

    .fechas__timeline-wrap {
        overflow-x: visible;
    }

    .fechas__timeline {
        flex-direction: column;
        align-items: center;
        gap: 8.333vw; /* 30/360 */
        padding: 0;
        min-width: 0;
        max-width: 60vw;
        margin-left: auto;
        margin-right: auto;
    }

    .timeline-item,
    .timeline-item--first,
    .timeline-item--last {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        grid-template-rows: auto auto;
        align-items: center;
        column-gap: 2.778vw; /* 10/360 */
        row-gap: 0;
        width: 100%;
        white-space: normal;
        flex-shrink: 1;
    }

    .timeline-item__icon {
        grid-column: 1;
        grid-row: 1 / 3;
        justify-self: end;
        width: 5.556vw; /* 20/360 */
        height: 5.556vw;
        margin-bottom: 0;
    }

    .timeline-item__dot {
        grid-column: 2;
        grid-row: 1 / 3;
        width: 2.222vw; /* 8/360 */
        height: 2.222vw;
        margin-bottom: 0;
    }

    .timeline-item__label {
        grid-column: 3;
        grid-row: 1;
        font-size: 3.333vw; /* 12/360 */
        line-height: 3.889vw; /* 14/360 */
        font-weight: var(--fw-black);
        margin-bottom: 0;
        text-align: left;
    }

    .timeline-item__date {
        grid-column: 3;
        grid-row: 2;
        font-size: 3.333vw; /* 12/360 */
        line-height: 3.889vw; /* 14/360 */
        text-align: left;
    }

    .tramites__title {
        font-size: 4.444vw; /* 16/360 */
    }

    .tramites__subtitle {
        font-size: 3.333vw; /* 12/360 */
    }

    .pagos__title {
        font-size: 4.444vw; /* 16/360 */
    }

    .pagos__subtitle {
        font-size: 3.333vw; /* 12/360 */
    }

    .fechas__btn {
        min-width: 72.222vw; /* 260/360 */
        height: 8.333vw; /* 30/360 */
        font-size: 3.056vw; /* 11/360 */
        border-radius: 5.556vw; /* 20/360 */
        padding: 0 5.556vw; /* 20/360 */
        white-space: nowrap;
    }

    .pagos__nota-pie {
        font-size: 3.056vw; /* 11/360 */
    }

    .toma-nota__header img {
        width: 2.5vw; /* 9/360 */
        height: 2.708vw; /* 9.75/360 */
    }

    .toma-nota__header p {
        font-size: 3.333vw; /* 12/360 */
    }

    .toma-nota__text,
    .toma-nota__text-wrap p {
        font-size: 2.778vw; /* 10/360 */
        line-height: normal;
    }

    .pagos__toma-nota {
        border-radius: 1.731vw; /* 6.23/360 */
    }

    /* Tablas mobile */
    .tabla-fechas__header {
        font-size: 3.056vw; /* 11/360 */
        min-height: 6.667vw; /* 24/360 */
        padding: 2.222vw 2.778vw; /* 8/360 */
        gap: 2.778vw; /* 10/360 */
    }

    .tabla-fechas__row {
        min-height: 11.111vw; /* 40/360 */
        padding: 2.778vw; /* 10/360 */
        gap: 2.778vw; /* 10/360 */
    }

    .tabla-fechas__row span {
        font-size: 2.778vw; /* 10/360 */
        line-height: normal;
    }

    /* Línea: JS controla posición, CSS solo el grosor */

    /* Autoridades mobile */
    .section-autoridades {
        padding-top: 21.667vw; /* header 54(15vw) + 24 gap = 78/360 */
    }

    .autoridades__title {
        font-size: 4.444vw; /* 16/360 */
        margin-bottom: 5.556vw; /* 20/360 */
    }

    .autoridades__subtitle {
        font-size: 3.333vw; /* 12/360 */
        margin-bottom: 5.556vw; /* 20/360 */
    }

    .autoridades__grid--3col,
    .autoridades__grid--4col {
        grid-template-columns: repeat(2, 1fr);
        gap: 6.667vw 4.167vw; /* 24/360 vertical, 15/360 horizontal */
    }

    .autoridad-card__img {
        width: 28.889vw; /* 104/360 */
        height: 34.722vw; /* 125/360 */
        border-radius: 1.536vw; /* 5.53/360 */
    }

    .autoridad-card__name {
        font-size: 3.333vw; /* 12/360 */
    }

    .autoridad-card__role {
        font-size: 3.056vw; /* 11/360 */
    }

    /* InHaus mobile */
    .inhaus-hero {
        aspect-ratio: 720 / 612;
        margin-top: 15vw; /* 54/360 — compensa header mobile */
    }

    .inhaus-hero__content {
        max-width: none;
    }

    .inhaus-hero__logo {
        width: 33.611vw; /* 121/360 */
    }

    .inhaus-hero__text,
    .inhaus-hero__text p {
        font-size: 3.333vw; /* 12/360 */
        line-height: normal;
        max-width: 50vw; /* 180/360 */
    }

    .section-mensaje {
        padding-top: 6.667vw; /* 24/360 — mismo gap que h1 en otras páginas mobile */
    }

    .mensaje__title {
        font-size: 4.444vw; /* 16/360 */
        line-height: normal;
    }

    .mensaje__card {
        border-radius: 2.694vw; /* 9.7/360 */
        max-width: 66.944vw; /* 241/360 */
        margin: 0 auto;
    }

    .mensaje__card-title {
        font-size: 3.333vw; /* 12/360 */
    }

    .mensaje__card p {
        font-size: 2.778vw; /* 10/360 */
        line-height: normal;
        max-width: 54.722vw; /* 197/360 */
    }

    .mensaje__card p {
        font-size: 3.333vw; /* 12/360 */
    }

    .equipo__title {
        font-size: 3.889vw; /* 14/360 */
    }

    .equipo__text,
    .equipo__text-wrap p {
        font-size: 3.333vw; /* 12/360 */
        max-width: 66.667vw; /* 240/360 */
    }

    .equipo__destacado,
    .equipo__text-wrap p:last-child {
        font-size: 2.778vw; /* 10/360 */
    }

    .equipo__grid {
        flex-wrap: wrap;
        justify-content: center;
        gap: 4.444vw; /* 16/360 */
    }

    .equipo__grid .autoridad-card__img {
        width: 27.697vw; /* 99.71/360 */
        height: 31.075vw; /* 111.87/360 */
    }

    .equipo__grid .autoridad-card__name {
        font-size: 3.333vw; /* 12/360 */
        max-width: 26.769vw; /* 96.37/360 */
    }

    .equipo__grid .autoridad-card__role {
        font-size: 3.056vw; /* 11/360 */
        max-width: 26.769vw; /* 96.37/360 */
    }

    .clientes__title {
        font-size: 3.889vw; /* 14/360 */
    }

    .clientes__text-wrap p {
        font-size: 3.333vw; /* 12/360 */
        max-width: 66.667vw; /* 240/360 */
    }

    .clientes__grid .cliente-card {
        flex: 0 0 30vw; /* ~108/360 */
    }

    .cliente-card__desc {
        font-size: 2.778vw; /* 10/360 */
    }

    /* Aspectos académicos mobile */
    .page-aspectos-wrap .accordion-item__header span {
        font-size: 3.333vw; /* 12/360 */
    }

    .page-aspectos-wrap .accordion-item__header {
        border-radius: 4.131vw; /* 14.87/360 */
        width: 75vw; /* 270/360 */
        min-height: 11.111vw; /* 40/360 */
        padding: 2.778vw 4.444vw; /* 10/360 16/360 */
    }

    .page-aspectos-wrap .bienestar__accordion {
        align-items: center;
        margin: 0 auto;
        gap: 4.444vw; /* 16/360 */
    }

    .page-aspectos-wrap .accordion-item {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .page-aspectos-wrap .accordion-item__body {
        width: 75vw; /* mismo ancho que header */
    }

    .section-aspectos {
        padding-top: 21.667vw; /* header 54 + 24 gap */
    }

    .aspectos__title {
        font-size: 4.444vw; /* 16/360 */
        line-height: normal;
    }

    .aspectos__subtitle {
        font-size: 3.333vw; /* 12/360 */
    }

    .aspectos__tabs {
        flex-wrap: wrap;
        gap: 2.222vw;
    }

    .aspectos__tab {
        font-size: 2.778vw; /* 10/360 */
        padding: 1.389vw 2.778vw;
        border-radius: 1.947vw; /* 7.01/360 */
        height: auto;
        min-width: 0;
        max-width: 25vw;
        line-height: 1.3;
    }

    .modalidad-card {
        flex-direction: column;
        align-items: center;
        gap: 5.556vw; /* 20/360 */
        margin-bottom: 13.889vw; /* 50/360 */
    }

    .modalidad-card__img-wrap {
        flex: none;
        width: 71.111vw; /* 256/360 */
        height: 20.556vw; /* 74/360 */
        margin: 0 auto;
    }

    .modalidad-card__img {
        object-position: center top;
    }

    .modalidad-card__info {
        border-width: 0.6px;
    }

    .modalidad-card__info {
        text-align: center;
        padding: 5.556vw 4.444vw; /* 20 top/bottom, 16 left/right */
        width: 71.111vw; /* 256/360 — mismo que imagen */
        margin: 0 auto;
    }

    .modalidad-card__info h3 {
        font-size: 3.333vw; /* 12/360 */
    }

    .modalidad-card__info p {
        font-size: 3.333vw; /* 12/360 */
        line-height: normal;
    }

    .modalidad-card__info {
        position: relative;
        padding-bottom: 5.556vw; /* espacio extra para el botón */
    }

    .modalidad-card__btn {
        position: absolute !important;
        bottom: 0 !important;
        left: 50% !important;
        transform: translate(-50%, 50%) !important;
        font-size: 3.056vw !important; /* 11/360 */
        min-width: 66.667vw !important; /* 240/360 */
        min-height: 8.333vw !important; /* 30/360 */
        height: auto !important;
        padding: 2.222vw 4.444vw !important; /* 8/360 16/360 */
        border-radius: 5.556vw !important; /* 20/360 */
        white-space: nowrap;
        white-space: normal;
        z-index: 2;
    }

    .bachiller__title {
        font-size: 3.889vw; /* 14/360 */
    }

    .bachiller__text {
        font-size: 3.333vw; /* 12/360 */
    }

    /* Plataformas mobile */
    .section-plataformas {
        padding-top: 21.667vw; /* header 54 + 24 gap = 78/360 */
    }

    .plataformas__title {
        font-size: 4.444vw; /* 16/360 */
        line-height: normal;
    }

    .plataformas__subtitle {
        font-size: 3.333vw; /* 12/360 */
    }

    .plataformas__content {
        flex-direction: column;
        align-items: center;
    }

    .plataformas__img {
        flex: none;
        width: 70.833vw; /* 255/360 */
        height: 31.111vw; /* 112/360 */
    }

    .page-plataformas-wrap .accordion-item__header {
        max-width: 75vw; /* 270/360 */
        min-height: 9.722vw; /* 35/360 */
        gap: 1.944vw; /* 7/360 */
        padding-left: 3.333vw;
        padding-right: 3.333vw;
    }

    .page-plataformas-wrap .accordion-item__body {
        max-width: 75vw; /* mismo que header */
    }

    .page-plataformas-wrap .accordion-item__header span {
        font-size: 3.333vw; /* 12/360 */
    }

    img.accordion-item__icon {
        width: 4.444vw; /* 16/360 */
        height: auto;
    }

    /* Bienestar mobile */
    .section-bienestar {
        padding-top: 21.667vw; /* header 54(15vw) + 24 gap = 78/360 */
    }

    .bienestar__title {
        font-size: 4.444vw; /* 16/360 */
        line-height: normal;
    }

    .bienestar__content {
        flex-direction: column;
        align-items: center;
        gap: 8.333vw; /* 30/360 */
    }

    .bienestar__img {
        flex: none;
        width: 70.833vw; /* 255/360 */
        height: 31.111vw; /* 112/360 */
    }

    .accordion-item__header span {
        font-size: 3.333vw; /* 12/360 */
    }

    .accordion-item__header i {
        width: 1.111vw; /* 4/360 */
        font-size: 2.778vw; /* 10/360 */
        right: 3.056vw; /* 11/360 */
    }

    .accordion-item__header {
        min-height: 9.722vw; /* 35/360 */
    }

    .bienestar__accordion {
        width: 72vw; /* 259/360 */
    }

    .accordion-item__body {
        padding: 4.444vw 5.556vw; /* 16/360 20/360 */
    }

    .accordion-item__body p {
        font-size: 3.333vw; /* 12/360 */
        line-height: normal;
    }

    .accordion-item__body ul {
        font-size: 3.333vw; /* 12/360 */
        line-height: normal;
        padding-left: 4.444vw; /* 16/360 */
    }

    .accordion-item__link {
        font-size: 3.333vw; /* 12/360 */
    }

    /* WhatsApp mobile */
    .whatsapp-float {
        bottom: 4.444vw; /* 16/360 */
        right: 4.444vw;
        padding: 2.778vw; /* 10/360 */
        font-size: 2.222vw; /* 8/360 */
        gap: 0;
    }

    .whatsapp-float span {
        display: none;
    }

    .whatsapp-float svg {
        width: 4.444vw; /* 16/360 */
        height: 4.444vw;
    }

    /* Footer mobile */
    .site-footer {
        padding: 8.333vw 0; /* 30/360 */
    }

    .site-footer .footer__grid {
        flex-direction: column;
        align-items: flex-start;
        gap: 6.667vw; /* 24/360 */
    }

    .site-footer .footer__logo img {
        width: 12.253vw; /* 44.11/360 */
    }

    .site-footer .footer__redes h3 {
        font-size: 3.889vw; /* 14/360 */
        margin-bottom: 4.444vw; /* 16/360 */
    }

    .site-footer .footer__links {
        gap: 4.444vw 11.111vw; /* 16/360  40/360 */
    }

    .site-footer .footer__links a {
        font-size: 3.333vw; /* 12/360 */
        gap: 2.222vw; /* 8/360 */
    }

    .site-footer .footer__links a svg {
        width: 4.444vw; /* 16/360 */
        height: 4.444vw;
    }
}

/* --- Mobile grande (iPhone Pro Max, etc.) --- */
@media (min-width: 400px) and (max-width: 768px) {
    .section-induccion .timeline__step--1 { left: -8.5%; top: 4%; }
    .section-induccion .timeline__step--2 { left: -2%; top: 25%; }
    .section-induccion .timeline__step--3 { left: -14%; top: 51.5%; }
    .section-induccion .timeline__step--4 { left: 0%; top: 77%; }
}
