/* Estilos y distribución responsive de Ayuni. */
:root {
  --azul-principal: #123d9b;
  --azul-oscuro: #071d48;
  --azul-suave: #eef6ff;
  --aqua: #14c7d5;
  --teal: #087f96;
  --texto: #0a1733;
  --texto-secundario: #5e6b84;
  --borde: #dce5f0;
  --sombra: 0 10px 30px rgb(7 29 72 / 8%);
  --radio: 16px;
  --unit: min(.0976086vw, 1.333333px);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Ayuni Poppins', 'Poppins', Arial, sans-serif; color: #111; background: #fff; line-height: 1.4; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; }
button { cursor: pointer; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid var(--aqua); outline-offset: 4px; }
summary:focus-visible { outline: 3px solid var(--aqua); outline-offset: -3px; }
.icon { display: inline-block; width: 1.25em; height: 1.25em; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; vertical-align: middle; flex: 0 0 auto; }
.skip-link { position: fixed; top: -80px; left: 16px; z-index: 1000; background: white; color: var(--azul-principal); padding: 12px; }
.skip-link:focus { top: 8px; }
.page-section { display: none; }
.page-section.active { display: block; }
.page-section[hidden] { display: none !important; }
.frame { width: min(100%, 1366px); margin-inline: auto; }
.content { width: 80%; max-width: 1093px; margin-inline: auto; }
.accent { color: var(--aqua); }
.blue { color: var(--azul-principal); }

/* Acceso a WhatsApp */
.whatsapp-float { position: fixed; bottom: 25px; right: 25px; width: 65px; height: 65px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #25d366; color: #fff; box-shadow: 0 6px 20px rgb(37 211 102 / 30%); z-index: 999; transition: background .3s, box-shadow .3s; animation: whatsapp-float 3s ease-in-out infinite; }
.whatsapp-float img { width: 32px; height: 32px; filter: brightness(0) invert(1); }
.whatsapp-float:hover, .whatsapp-float:focus-visible { background: #1da851; box-shadow: 0 8px 25px rgb(37 211 102 / 40%); animation-play-state: paused; }
.whatsapp-tooltip { position: absolute; right: 80px; background: var(--azul-oscuro); color: #fff; padding: 8px 15px; border-radius: 8px; font-size: 14px; white-space: nowrap; opacity: 0; transform: translateX(10px); transition: opacity .3s, transform .3s; pointer-events: none; box-shadow: 0 4px 12px rgb(0 0 0 / 10%); }
.whatsapp-tooltip::after { content: ''; position: absolute; right: -6px; top: 50%; transform: translateY(-50%); border-left: 6px solid var(--azul-oscuro); border-top: 6px solid transparent; border-bottom: 6px solid transparent; }
.whatsapp-float:hover .whatsapp-tooltip, .whatsapp-float:focus-visible .whatsapp-tooltip { opacity: 1; transform: translateX(0); }
@keyframes whatsapp-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
@media (max-width: 768px) {
  .whatsapp-float { width: 55px; height: 55px; right: 20px; bottom: max(20px, calc(env(safe-area-inset-bottom, 0px) + 16px)); }
  .whatsapp-float img { width: 28px; height: 28px; }
  .whatsapp-tooltip { display: none; }
}

/* Filas de logos: desplazamiento continuo con pausa al pasar el cursor. */
.logo-marquee-row { overflow: hidden; min-width: 0; }
.logo-marquee-track { display: flex; width: 200%; animation: logos-scroll 24s linear infinite; animation-play-state: running; }
.logo-marquee-row:nth-child(even) .logo-marquee-track { animation-direction: reverse; }
.logo-marquee-group { display: grid; grid-template-columns: repeat(var(--logo-columns), minmax(0, 1fr)); align-items: center; flex: 0 0 50%; width: 50%; min-width: 0; }
.home-universities.logo-marquee-ready { display: block; }
.home-universities .logo-marquee-row, .home-universities .logo-marquee-track { height: 100%; }
.home-universities .logo-marquee-group { display: flex; align-items: center; justify-content: space-around; gap: 5%; }
.university-grid.logo-marquee-ready { grid-template-columns: minmax(0, 1fr); }
.university-grid img[data-logo-index='5'] { object-position: center 39%; }
@keyframes logos-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (hover: hover) and (pointer: fine) {
  .logo-marquee-ready:hover .logo-marquee-track { animation-play-state: paused; }
}
@media (max-width: 600px) {
  .home-universities.logo-marquee-ready { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .home-universities .logo-marquee-row, .home-universities .logo-marquee-track { height: auto; }
  .home-universities .logo-marquee-group { justify-content: center; gap: 7%; }
  .home-universities img[data-logo-index='4'], .home-universities img[data-logo-index='5'] { width: 26%; height: 58px; }
  .university-grid .logo-marquee-group { column-gap: 6px; }
}

/* Cabecera compartida */
#header { position: sticky; top: 0; z-index: 100; width: 100%; background: #fff; height: calc(57.6 * var(--unit)); min-height: 64px; }
.header-inner { height: 100%; padding-inline: 3%; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.logo-container { display: block; width: calc(41.25 * var(--unit)); height: calc(41.25 * var(--unit)); min-width: 42px; min-height: 42px; }
.logo-image { display: block; width: 100%; height: 100%; object-fit: contain; }
#mainNav { display: flex; align-items: center; gap: calc(29.5 * var(--unit)); color: #545454; font-size: max(14px, calc(12 * var(--unit))); font-weight: 500; }
#mainNav a { white-space: nowrap; }
#mainNav a:hover { color: var(--azul-principal); }
.nav-btn-ingresar { display: inline-flex; align-items: center; justify-content: center; color: #fff !important; background: #071d48; border-radius: 19px; min-height: 44px; padding: 10px 29px; }
.nav-btn-ingresar:hover { background: var(--azul-principal); }
.mobile-menu-btn { display: none; background: transparent; border: 0; color: var(--azul-oscuro); width: 44px; height: 44px; }

/* Home */
.home-hero { position: relative; isolation: isolate; background: #12357d; color: #fff; }
.home-hero-inner { min-height: calc(620 * var(--unit)); padding: calc(76 * var(--unit)) 7.66% calc(13 * var(--unit)); }
.home-hero-grid { position: relative; }
.home-copy { width: calc(515 * var(--unit)); max-width: 62%; }
.home-hero-visual { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.home-hero-art { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.home-eyebrow { font-family: 'Ayuni Archivo', 'Archivo Black', sans-serif; color: #d9d9d9; font-size: calc(13.995 * var(--unit)); line-height: 1.2; margin-bottom: calc(7.3 * var(--unit)); white-space: nowrap; }
.home-title { font-size: calc(41.995 * var(--unit)); font-weight: 700; line-height: 1.393; letter-spacing: 0; margin: 0; }
.home-title span { display: block; }
.home-lead { font-size: calc(12 * var(--unit)); line-height: 1.375; font-weight: 400; margin-top: calc(20 * var(--unit)); }
.home-actions { display: flex; flex-wrap: wrap; gap: calc(15 * var(--unit)); margin-top: calc(23 * var(--unit)); }
.home-actions a { display: inline-flex; align-items: center; justify-content: center; width: calc(163.5 * var(--unit)); min-height: max(44px, calc(39.75 * var(--unit))); padding: 9px 12px; border: 1px solid #91a8cc; border-radius: calc(6 * var(--unit)); color: #fff; font-size: calc(12 * var(--unit)); font-weight: 500; transition: background .2s, border-color .2s; }
.home-actions a:hover { background: rgb(255 255 255 / 10%); border-color: #fff; }
.home-universities-note { margin-top: calc(34 * var(--unit)); color: #d9d9d9; text-align: center; font-size: calc(12 * var(--unit)); line-height: 1.4; }
.home-universities { margin-top: calc(13 * var(--unit)); height: calc(93 * var(--unit)); display: flex; align-items: center; justify-content: space-around; gap: 5%; padding-inline: 3%; }
.home-universities img { object-fit: contain; width: 17%; height: calc(53 * var(--unit)); }
.home-universities img:nth-child(3) { width: 21%; }
.home-universities img:nth-child(4) { width: 12%; }
.home-universities img:nth-child(5) { width: 13%; height: calc(80 * var(--unit)); }
.numbers-section { min-height: calc(262.4 * var(--unit)); padding-top: calc(20.5 * var(--unit)); }
.numbers-heading { color: var(--azul-principal); text-align: center; font-size: calc(20 * var(--unit)); font-weight: 400; letter-spacing: -.045em; }
.numbers-heading strong { font-weight: 600; }
.numbers-grid { width: 84%; max-width: 1148px; margin: calc(43 * var(--unit)) auto 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stat { text-align: center; padding-inline: 12px; border-right: 3px solid var(--azul-principal); }
.stat:last-child { border-right: none; }
.stat strong { display: block; color: var(--azul-principal); font-family: 'Ayuni Montserrat', 'Montserrat', sans-serif; font-size: calc(34.995 * var(--unit)); font-weight: 800; line-height: 1.08; }
.stat p { font-size: calc(16 * var(--unit)); line-height: 1.36; margin-top: calc(7 * var(--unit)); }
.home-services { min-height: calc(572.75 * var(--unit)); display: grid; grid-template-columns: 34.4% 65.6%; padding-block: calc(24 * var(--unit)) calc(66 * var(--unit)); }
.split-heading { font-size: calc(25 * var(--unit)); font-weight: 700; line-height: 1.42; color: #000; }
.split-heading span { display: block; color: var(--azul-principal); }
.home-services > .split-heading { padding-top: calc(22 * var(--unit)); padding-left: 3%; }
.services-cards { display: flex; flex-direction: column; align-items: flex-end; gap: calc(34 * var(--unit)); }
.service-card { position: relative; display: block; width: 100%; min-height: calc(224 * var(--unit)); border: 1px solid #a4b8d7; border-radius: calc(15 * var(--unit)); background: #173e99; box-shadow: 9px 12px 10px rgb(0 0 0 / 23%); color: #fff; padding: calc(30 * var(--unit)) calc(30 * var(--unit)) calc(28 * var(--unit)) calc(168 * var(--unit)); }
.service-icon { position: absolute; left: calc(23.25 * var(--unit)); top: 50%; transform: translateY(-50%); width: calc(116.5 * var(--unit)); height: auto; filter: brightness(0) invert(1); }
.service-card.teal { background: #087f94; }
.service-card .service-label { font-size: calc(12 * var(--unit)); font-weight: 600; }
.service-card h3 { font-size: calc(20 * var(--unit)); font-weight: 700; line-height: 1.4; margin-top: calc(6 * var(--unit)); }
.service-card p:last-child { font-size: calc(12 * var(--unit)); line-height: 1.4; text-align: justify; font-weight: 300; margin-top: calc(12 * var(--unit)); }

/* De la universidad a la vida profesional */
.journey-section { --journey-unit: min(.0976086vw, 1.333333px); position: relative; width: 100%; max-width: none; margin-bottom: calc(67 * var(--journey-unit)); }
.journey-image { display: block; width: 100%; height: auto; }
.journey-section h2 { position: absolute; top: 6.55%; left: 10.07%; font-size: calc(30.5025 * var(--journey-unit)); line-height: 1.377; font-weight: 700; }
.journey-section h2 span { color: #0b9fbe; }
/* Experiencias Ayuni */
.quote-section { text-align: center; background: url('assets/fondo4azul.png') center/cover !important; max-width: none; margin: auto; padding: 100px max(6vw, 28px); line-height: 1.6; }
.quote-section, .quote-section * { color: #ffffff !important; }
.quote-section .eyebrow { color: #14c7d5 !important; font-size: 14px !important; font-weight: 700; letter-spacing: .1em; line-height: 1.4; text-transform: uppercase; margin: 0 0 17px; }
.quote-section .reviews-heading { margin: 0 0 calc(28 * var(--unit)); font-size: calc(20 * var(--unit)); font-weight: 600; line-height: 1.4; }
.quote-section .reviews-heading span { color: #14c7d5 !important; }
.quote-section blockquote { font-size: clamp(24px, 3.6vw, 45px); line-height: 1.45; max-width: 1000px; margin: 25px auto; font-weight: 500; }
.quote-section .quote-author { font-size: 11px; }
.quote-section .quote-author span { display: block; color: #14c7d5 !important; margin-top: 5px; }
@media (max-width: 992px) {
  .quote-section { padding-left: 25px; padding-right: 25px; }
}
@media (max-width: 768px) {
  .quote-section { padding: 70px 16px; }
}
.faq-section { padding: calc(55 * var(--unit)) 0 calc(44 * var(--unit)); }
.faq-box { width: 80%; max-width: 1093px; margin-inline: auto; }
.faq-box h2 { font-size: calc(20 * var(--unit)); font-weight: 400; color: var(--azul-principal); letter-spacing: -.03em; text-align: center; }
.faq-box h2 strong { font-weight: 700; }
.faq-list { margin-top: calc(31 * var(--unit)); }
.faq-intro { display: flex; align-items: center; justify-content: center; min-height: calc(57 * var(--unit)); padding: 16px 20px; background: #00217e; color: #fff; font-size: calc(14 * var(--unit)); font-weight: 400; text-align: center; }
.faq-item { border: 1px solid #d6d6d6; border-top: 0; }
.faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: calc(57 * var(--unit)); padding: calc(16 * var(--unit)) calc(19 * var(--unit)); font-size: calc(12 * var(--unit)); font-weight: 400; cursor: pointer; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::marker { content: ''; }
.faq-item summary .icon { width: calc(23 * var(--unit)); height: calc(23 * var(--unit)); color: var(--azul-principal); transform: rotate(90deg); transition: transform .2s; }
.faq-item[open] summary .icon { transform: rotate(-90deg); }
.faq-item summary:hover { background: #f6f9fd; }
.faq-item > p { padding: 0 calc(19 * var(--unit)) calc(20 * var(--unit)); font-size: calc(12 * var(--unit)); line-height: 1.6; }
.faq-item > p a { color: var(--azul-principal); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* Banners interiores */
.page-banner { color: white; background-size: cover; background-repeat: no-repeat; }
.banner-content { padding-top: calc(51 * var(--unit)); }
.page-banner .banner-kicker { font-size: calc(20 * var(--unit)); font-weight: 500; color: var(--aqua); margin-bottom: calc(10 * var(--unit)); letter-spacing: -.035em; }
.page-banner h1 { font-size: calc(25 * var(--unit)); line-height: 1.38; font-weight: 700; letter-spacing: -.045em; }
.page-banner .banner-description { font-size: calc(14 * var(--unit)); font-weight: 500; line-height: 1.4; margin-top: calc(24 * var(--unit)); max-width: calc(570 * var(--unit)); }
.banner-about { min-height: calc(172.32 * var(--unit)); background-image: linear-gradient(to right, rgb(7 29 72 / 94%), rgb(18 61 155 / 72%)), url('assets/nosotros-banner.png'); background-position: center 29.86%; }
.banner-about .banner-content { padding-top: calc(39 * var(--unit)); }
.banner-students { min-height: calc(344.915 * var(--unit)); background-image: linear-gradient(to right, rgb(7 29 72 / 90%), rgb(18 61 155 / 90%)), url('assets/universitarios-banner.png'); background-position: center 48.3%; }
.banner-students .banner-content { padding-top: calc(62.5 * var(--unit)); }
.banner-students .banner-kicker { font-size: calc(15 * var(--unit)); color: #d9d9d9; }
.banner-students .banner-description { margin-top: calc(12 * var(--unit)); }
.banner-students .request-class { margin-top: calc(34.5 * var(--unit)); }
.banner-professionals { min-height: calc(280 * var(--unit)); background-image: linear-gradient(to right, rgb(7 29 72 / 90%), rgb(18 61 155 / 90%)), url('assets/profesionales-banner.png'); background-size: cover, 123% auto; background-position: center, right 10.8%; }
.banner-professionals .banner-content { padding-top: calc(62.5 * var(--unit)); }
.banner-professionals .banner-kicker { font-size: calc(15 * var(--unit)); color: #d9d9d9; }
.banner-professionals .banner-description { margin-top: calc(12 * var(--unit)); }
.request-class { display: inline-flex; align-items: center; justify-content: center; background: var(--teal); color: white; padding: calc(6 * var(--unit)) calc(11 * var(--unit)); font-size: calc(12 * var(--unit)); border-radius: 4px; margin-top: calc(26 * var(--unit)); min-height: 38px; }
.request-class:hover { background: #069ab0; }

/* Nosotros */
.about-story { display: grid; grid-template-columns: 50% 45.4%; gap: 4.6%; align-items: start; padding-top: calc(31 * var(--unit)); min-height: calc(383 * var(--unit)); }
.story-copy { padding-top: calc(17 * var(--unit)); }
.story-copy h2 { font-size: calc(20 * var(--unit)); font-weight: 700; letter-spacing: -.04em; line-height: 1.4; color: var(--azul-principal); margin-bottom: calc(22 * var(--unit)); }
.story-copy p { font-size: calc(12 * var(--unit)); line-height: 1.375; font-weight: 300; text-align: justify; }
.story-copy p + p { margin-top: calc(17 * var(--unit)); }
.team-photo { display: block; width: 100%; aspect-ratio: 371 / 256; object-fit: cover; border: 1px solid #aaa; box-shadow: 10px 12px 12px rgb(0 0 0 / 19%); }
.mission-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(27 * var(--unit)); }
.mission-card { min-height: calc(184 * var(--unit)); border: 1px solid #93abc8; border-radius: calc(16 * var(--unit)); background: #173e99; box-shadow: 9px 12px 11px rgb(0 0 0 / 22%); padding: calc(18 * var(--unit)) calc(26 * var(--unit)) calc(22 * var(--unit)); color: white; }
.mission-card.teal { background: #087f94; }
.mission-card h2 { text-align: center; font-size: calc(20 * var(--unit)); line-height: 1.4; margin-bottom: calc(19 * var(--unit)); }
.mission-card h3 { font-size: calc(12 * var(--unit)); font-weight: 600; letter-spacing: -.03em; margin-bottom: calc(6 * var(--unit)); }
.mission-card p { font-size: calc(12 * var(--unit)); line-height: 1.375; font-weight: 300; text-align: justify; }
.values-section { display: grid; grid-template-columns: 22% 1fr; gap: 5%; padding-top: calc(105 * var(--unit)); padding-bottom: calc(85 * var(--unit)); }
.values-section .split-heading { font-size: calc(20 * var(--unit)); text-align: center; padding-top: calc(22 * var(--unit)); }
.values-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: calc(42 * var(--unit)); row-gap: calc(46 * var(--unit)); }
.value-card { border: 2px solid #1a3565; border-radius: calc(16 * var(--unit)); padding: calc(11 * var(--unit)) calc(24 * var(--unit)); min-height: calc(99 * var(--unit)); box-shadow: 5px 7px 12px rgb(7 29 72 / 19%); }
.value-card h3 { font-size: calc(14 * var(--unit)); font-weight: 700; margin-bottom: calc(10 * var(--unit)); }
.value-card p { font-size: calc(12 * var(--unit)); font-weight: 300; line-height: 1.375; }

/* Para universitarios */
.university-section { min-height: calc(473 * var(--unit)); padding-top: calc(69 * var(--unit)); }
.university-section h2 { font-size: calc(14 * var(--unit)); font-weight: 700; text-align: center; }
.university-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 0; margin-top: calc(18 * var(--unit)); }
.university-grid img { width: calc(165 * var(--unit)); height: calc(93 * var(--unit)); object-fit: cover; object-position: center; justify-self: center; }
.university-grid img:nth-child(5) { object-position: center 39%; }
.process-section { position: relative; }
.process-section::before { content: ''; position: absolute; inset: calc(128 * var(--unit)) 0 calc(82 * var(--unit)); background: linear-gradient(to right, #071d48, #123d9b); z-index: 0; }
.process-cards { position: relative; display: grid; gap: calc(54.75 * var(--unit)); }
.process-card { min-height: calc(256 * var(--unit)); display: grid; grid-template-columns: minmax(0, 312fr) minmax(0, 430fr); gap: calc(26 * var(--unit)); align-items: center; padding: calc(13 * var(--unit)) calc(13 * var(--unit)) calc(13 * var(--unit)) calc(37 * var(--unit)); background: white; border: 2px solid #a6a6a6; border-radius: calc(15 * var(--unit)); box-shadow: 4px 7px 10px rgb(7 29 72 / 17%); }
.process-card.reverse { grid-template-columns: minmax(0, 430fr) minmax(0, 312fr); padding-inline: calc(13 * var(--unit)) calc(37 * var(--unit)); }
.process-card h2 { color: var(--azul-principal); font-size: calc(20 * var(--unit)); line-height: 1.4; font-weight: 700; letter-spacing: -.045em; margin-bottom: calc(12 * var(--unit)); }
.process-card.reverse h2 { color: var(--teal); }
.process-card p { font-size: calc(12 * var(--unit)); font-weight: 300; line-height: 1.375; text-align: justify; }
.process-media { width: 100%; height: auto; display: block; }
.orientation-section { padding-top: calc(98 * var(--unit)); padding-bottom: calc(54 * var(--unit)); }
.orientation-section > h2 { font-size: calc(20 * var(--unit)); text-align: center; font-weight: 700; margin-bottom: calc(31 * var(--unit)); }
.orientation-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(20 * var(--unit)); }
.orientation-card { border: 2px solid #1a3565; border-radius: calc(15 * var(--unit)); min-height: calc(331 * var(--unit)); padding: calc(22 * var(--unit)) calc(25 * var(--unit)); box-shadow: 6px 7px 11px rgb(7 29 72 / 21%); }
.orientation-card > img { display: block; margin: 0 auto calc(12 * var(--unit)); width: calc(57 * var(--unit)); height: calc(54 * var(--unit)); object-fit: contain; }
.orientation-card h3 { color: var(--azul-principal); text-align: center; font-size: calc(16 * var(--unit)); font-weight: 600; margin-bottom: calc(16 * var(--unit)); white-space: nowrap; }
.orientation-card ul { font-size: calc(12 * var(--unit)); line-height: 1.4; font-weight: 300; padding-left: calc(13 * var(--unit)); }
.orientation-contact { margin-top: calc(43 * var(--unit)); color: #545454; text-align: center; font-size: calc(12 * var(--unit)); line-height: 1.4; }
.orientation-contact a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; }
.orientation-contact a:hover { color: var(--azul-principal); text-decoration: underline; text-underline-offset: 3px; }

/* Para profesionales */
.courses-section { padding-top: calc(78 * var(--unit)); padding-bottom: calc(128 * var(--unit)); width: 82.4%; max-width: 1126px; margin-inline: auto; }
.courses-section > h2 { font-size: calc(14 * var(--unit)); color: var(--azul-principal); font-weight: 700; margin-left: calc(13 * var(--unit)); }
.courses-announcement { margin-top: calc(81 * var(--unit)); text-align: center; color: #b4b4b4; font-size: calc(20 * var(--unit)); font-weight: 600; line-height: 1.4; }
.course-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: calc(14 * var(--unit)); row-gap: calc(20 * var(--unit)); }
.course-card { min-width: 0; border: 2px solid #193665; border-radius: calc(17 * var(--unit)); box-shadow: 5px 6px 9px rgb(7 29 72 / 22%); overflow: hidden; display: flex; flex-direction: column; background: white; }
.course-image { width: 100%; height: calc(87 * var(--unit)); object-fit: cover; display: block; }
.course-body { padding: calc(9 * var(--unit)) calc(10 * var(--unit)) calc(14 * var(--unit)); display: flex; flex-direction: column; flex: 1; }
.course-body h3 { font-size: calc(10 * var(--unit)); font-weight: 600; line-height: 1.35; margin-bottom: calc(12 * var(--unit)); }
.course-info { list-style: none; display: grid; gap: calc(4 * var(--unit)); }
.course-info li { display: flex; align-items: center; gap: calc(8 * var(--unit)); font-size: calc(8 * var(--unit)); font-weight: 300; line-height: 1.4; }
.course-info .icon { color: var(--teal); width: calc(14 * var(--unit)); height: calc(14 * var(--unit)); }
.course-actions { display: grid; grid-template-columns: 1fr calc(32 * var(--unit)); gap: calc(7 * var(--unit)); margin-top: calc(10 * var(--unit)); }
.course-upcoming { border: none; background: var(--teal); color: white; border-radius: calc(6 * var(--unit)); padding: calc(5 * var(--unit)); font-size: calc(10 * var(--unit)); font-weight: 500; cursor: default; opacity: 1; }
.course-consult { display: flex; align-items: center; justify-content: center; width: calc(32 * var(--unit)); min-height: calc(28 * var(--unit)); border: 1px solid var(--teal); color: var(--teal); border-radius: calc(5 * var(--unit)); }
.course-consult:hover { background: #e5f8fc; }
.course-consult .icon { width: calc(21 * var(--unit)); height: calc(21 * var(--unit)); }

/* Contacto y pie de página */
.footer-logo-img { filter: brightness(0) invert(1); }
.reclamo-imagen { flex-shrink: 0; filter: brightness(0) invert(1) drop-shadow(0 3px 6px rgb(0 0 0 / 20%)); }
.footer-links a { cursor: pointer; }
.reclamo-imagen-container { text-align: left; font: inherit; color: #fff; }
.reclamo-texto p, .reclamo-texto small { color: #fff; opacity: 1; }
.reclamo-imagen-container > .icon { color: #fff; }
.form-status { margin-top: 16px; font-size: 14px; line-height: 1.5; color: var(--azul-principal); }
.form-status a { text-decoration: underline; }
.form-status:empty { display: none; }
.contacto-form-card, .contacto-left-canva { min-width: 0; }
.contacto-form-card input, .contacto-form-card textarea, .contacto-form-card select { min-width: 0; max-width: 100%; }
.reclamo-modal[hidden] { display: none; }
.reclamo-modal .close { background: none; border: 0; }

@media (min-width: 901px) and (max-width: 1150px) {
  #mainNav { gap: 20px; }
  .nav-btn-ingresar { padding: 10px 23px; }
  .story-copy p, .mission-card p, .value-card p, .process-card p, .orientation-card ul, .service-card p:last-child { font-size: 14px; }
  .about-story { padding-bottom: 64px; }
  .mission-card { min-height: 230px; }
  .service-card { padding-left: calc(138 * var(--unit)); }
  .service-icon { left: calc(14.6 * var(--unit)); width: calc(103.75 * var(--unit)); }
  .course-body h3 { font-size: 13px; }
  .course-info li { font-size: 11px; }
  .course-upcoming { font-size: 12px; }
  .course-image { height: 100px; }
}
@media (max-width: 900px) {
  :root { --unit: 1px; }
  #header { height: 72px; }
  .header-inner { padding-inline: 24px; }
  .logo-container { width: 48px; height: 48px; }
  .mobile-menu-btn { display: inline-flex; align-items: center; justify-content: center; font-size: 24px; }
  #mainNav { display: none; position: absolute; top: 72px; left: 0; right: 0; background: white; border-top: 1px solid var(--borde); box-shadow: 0 10px 20px rgb(7 29 72 / 12%); padding: 16px 24px 24px; }
  #mainNav.active { display: flex; flex-direction: column; align-items: stretch; gap: 2px; }
  #mainNav a { padding: 12px; font-size: 16px; }
  #mainNav .nav-btn-ingresar { margin-top: 8px; }
  .content { width: calc(100% - 48px); }
  .home-hero-inner { padding: 48px 24px 28px; min-height: 0; }
  .home-copy { width: 62%; max-width: 560px; }
  .home-eyebrow { font-size: 12px; white-space: normal; margin-bottom: 12px; }
  .home-title { font-size: clamp(28px, 4.1vw, 36px); line-height: 1.3; }
  .home-lead { font-size: 14px; margin-top: 22px; line-height: 1.5; }
  .home-actions { gap: 12px; margin: 26px 0 0; }
  .home-actions a { width: calc(50% - 6px); min-width: 130px; max-width: 220px; font-size: 12px; }
  .home-universities-note { margin-top: 34px; font-size: 13px; }
  .home-universities { margin-top: 16px; height: 80px; padding: 0; gap: 16px; }
  .home-universities img { height: 50px; }
  .numbers-section { min-height: 0; padding: 38px 0 50px; }
  .numbers-heading { font-size: 20px; padding-inline: 20px; }
  .numbers-grid { width: 94%; margin-top: 36px; }
  .stat strong { font-size: 32px; }
  .stat p { font-size: 16px; }
  .home-services { min-height: 0; grid-template-columns: 28% 72%; padding: 24px 0 64px; }
  .split-heading { font-size: 24px; }
  .service-card { width: 95%; padding: 28px 30px; min-height: 0; }
  .service-icon { position: static; transform: none; display: block; width: 80px; margin: -10px 0 8px -8px; }
  .service-card .service-label { font-size: 14px; }
  .service-card h3 { font-size: 22px; }
  .service-card p:last-child { font-size: 16px; text-align: left; }
  .faq-section { padding: 55px 0; }
  .faq-box { width: calc(100% - 48px); }
  .faq-box h2 { font-size: 22px; }
  .faq-intro, .faq-item summary, .faq-item > p { font-size: 16px; }
  .page-banner h1 { font-size: 30px; }
  .page-banner .banner-kicker { font-size: 22px; }
  .banner-students .banner-kicker, .banner-professionals .banner-kicker { font-size: 15px; }
  .page-banner .banner-description { font-size: 16px; max-width: 600px; }
  .page-banner .banner-content { padding-top: 44px; padding-bottom: 48px; }
  .banner-about { min-height: 0; }
  .banner-students, .banner-professionals { min-height: 0; }
  .banner-professionals { background-size: cover; background-position: center; }
  .request-class { font-size: 16px; min-height: 44px; padding: 10px 16px; }
  .about-story { grid-template-columns: 1fr 1fr; gap: 26px; min-height: 0; padding-block: 48px 64px; align-items: center; }
  .story-copy { padding-top: 0; }
  .story-copy h2 { font-size: 24px; }
  .story-copy p, .mission-card p, .value-card p { font-size: 16px; text-align: left; line-height: 1.5; }
  .mission-grid { gap: 24px; }
  .mission-card { padding: 26px; }
  .mission-card h2 { font-size: 24px; }
  .mission-card h3 { font-size: 16px; }
  .values-section { grid-template-columns: 1fr; gap: 30px; padding-block: 64px; }
  .values-section .split-heading { font-size: 24px; text-align: left; padding: 0; }
  .values-grid { gap: 24px; }
  .value-card { padding: 22px 24px; }
  .value-card h3 { font-size: 18px; }
  .university-section { min-height: 0; padding: 48px 0 56px; }
  .university-section h2 { font-size: 16px; }
  .university-grid { margin-top: 30px; row-gap: 12px; }
  .university-grid img { width: 145px; height: 85px; }
  .process-cards { gap: 36px; }
  .process-card, .process-card.reverse { min-height: 0; grid-template-columns: 1fr 1fr; padding: 28px; gap: 24px; }
  .process-card h2 { font-size: 23px; }
  .process-card p { font-size: 16px; text-align: left; line-height: 1.5; }
  .orientation-section { padding: 64px 0; }
  .orientation-section > h2 { font-size: 24px; }
  .orientation-grid { gap: 16px; }
  .orientation-card { padding: 24px 18px; }
  .orientation-card h3 { font-size: 16px; white-space: normal; min-height: 44px; }
  .orientation-card ul { font-size: 16px; }
  .orientation-contact { margin-top: 32px; font-size: 16px; }
  .courses-section { width: calc(100% - 48px); padding: 48px 0 70px; }
  .courses-section > h2 { font-size: 18px; margin-left: 0; }
  .courses-announcement { margin-top: 56px; font-size: 20px; }
  .course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .course-image { height: auto; aspect-ratio: 197 / 86; }
  .course-body { padding: 16px; }
  .course-body h3 { font-size: 17px; }
  .course-info { gap: 8px; }
  .course-info li { font-size: 14px; }
  .course-info .icon { width: 18px; height: 18px; }
  .course-actions { grid-template-columns: 1fr 44px; gap: 10px; margin-top: 16px; }
  .course-upcoming { font-size: 16px; padding: 10px; }
  .course-consult { width: 44px; min-height: 44px; }
  .course-consult .icon { width: 26px; height: 26px; }
}
@media (max-width: 600px) {
  .home-hero-inner { padding-top: 38px; }
  .home-copy { width: 100%; max-width: none; }
  .home-title { font-size: clamp(24px, 6.7vw, 38px); line-height: 1.35; }
  .home-eyebrow { font-size: 12px; margin-bottom: 14px; }
  .home-lead { font-size: 16px; }
  .home-actions a { font-size: 13px; }
  .home-hero-visual { position: relative; inset: auto; z-index: 0; width: calc(100% + 48px); height: min(360px, 92vw); margin: 24px -24px 0; -webkit-mask-image: linear-gradient(to bottom, transparent, #000 14%, #000 82%, transparent); mask-image: linear-gradient(to bottom, transparent, #000 14%, #000 82%, transparent); }
  .home-hero-art { position: absolute; right: 0; top: 0; width: auto; height: 150%; max-width: none; object-fit: initial; }
  .home-universities-note { margin-top: 24px; }
  .home-universities { height: auto; min-height: 95px; flex-wrap: wrap; justify-content: center; column-gap: 7%; row-gap: 16px; }
  .home-universities img, .home-universities img:nth-child(3) { width: 26%; height: 42px; }
  .home-universities img:nth-child(4), .home-universities img:nth-child(5) { width: 26%; height: 58px; }
  .numbers-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 32px; }
  .stat:nth-child(2) { border-right: none; }
  .home-services { grid-template-columns: 1fr; gap: 30px; }
  .home-services > .split-heading { padding: 0; }
  .services-cards { gap: 28px; }
  .service-card { width: 100%; padding: 26px; }
  .service-card h3 br { display: none; }
  .journey-section { margin-bottom: 40px; padding-top: 92px; }
  .journey-section h2 { top: 0; left: 24px; right: 24px; font-size: clamp(21px, 5.5vw, 28px); line-height: 1.35; }
  .page-banner h1 { font-size: 28px; }
  .desktop-break { display: none; }
  .about-story { grid-template-columns: 1fr; gap: 28px; }
  .team-photo { margin-bottom: 12px; }
  .mission-grid, .values-grid { grid-template-columns: 1fr; }
  .values-section { padding-top: 58px; }
  .university-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .university-grid img { width: 100%; height: 78px; object-fit: cover; }
  .process-section::before { top: 100px; bottom: 100px; }
  .process-card, .process-card.reverse { grid-template-columns: 1fr; padding: 25px; gap: 28px; }
  .process-card.reverse .process-copy { order: -1; }
  .process-card h2 { font-size: 22px; }
  .orientation-grid { grid-template-columns: 1fr; gap: 25px; }
  .orientation-card { padding: 28px; min-height: 0; }
  .orientation-card > img { width: 65px; height: 65px; }
  .orientation-card h3 { font-size: 20px; min-height: 0; }
  .orientation-card ul { line-height: 1.6; }
  .course-grid { grid-template-columns: 1fr; max-width: 420px; margin-inline: auto; }
  .course-body { padding: 18px; }
  .course-body h3 { font-size: 18px; }
  .course-info li { font-size: 16px; }
  .contacto-section { padding: 42px 24px; }
  .contacto-inner, .canva-stats-grid { grid-template-columns: 1fr; }
  .contacto-form-card { padding: 24px; }
  .contacto-left-canva h1 { font-size: 28px; }
  .reclamo-modal-content { padding: 24px; }
  .reclamo-form-grid { grid-template-columns: 1fr; }
  .reclamo-form-grid .full-width { grid-column: auto; }
  footer { padding: 44px 24px 24px; }
  .footer-content { grid-template-columns: 1fr; gap: 30px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media print {
  #header { position: static; }
  footer { break-before: auto; }
  .skip-link, .mobile-menu-btn, .whatsapp-float { display: none; }
  .logo-marquee-track { animation: none; transform: none; width: 100%; }
  .logo-marquee-group { width: 100%; flex-basis: 100%; }
  .logo-marquee-group[aria-hidden='true'] { display: none; }
}
