/* ============================================================
   KEISER UNIVERSITY EL SALVADOR — Sistema de Landing Pages
   v2.0 · Alineado al Brand Guidelines (junio 2026)
   ------------------------------------------------------------
   Paleta oficial únicamente. Tipografía oficial únicamente.
   Regla 60-30-10 aplicada:
     60% Keiser Blue + Dark Blue   → héroe, secciones oscuras
     30% Teal + White + Light Gray → fondos, soportes, tipografía
     10% Yellow + Dark Gray + Black→ CTA, subrayados, detalles
   ============================================================ */

:root{
  /* ── PRIMARIOS ── */
  --ku-blue:#16315A;        /* Keiser Blue      · Pantone 648C */
  --ku-dark:#0F223E;        /* Keiser Dark Blue · Pantone 289C */
  /* ── SECUNDARIOS ── */
  --ku-teal:#1075DB;        /* Keiser Teal      · Pantone 285C */
  --ku-white:#FFFFFF;
  --ku-gray-light:#F2F2F2;  /* Keiser Light Gray· Pantone 663C */
  /* ── ACENTO Y NEUTRALES ── */
  --ku-yellow:#EBCF55;      /* Keiser Yellow    · Pantone 610C */
  --ku-gray-dark:#BCBEC0;   /* Keiser Dark Gray · Cool Gray 4C */
  --ku-black:#000000;

  /* Tintes de los primarios — permitidos por el manual (Tints) */
  --tint-blue-70:#4A5A7B;
  --tint-blue-50:#8A98AC;
  --tint-blue-08:#E8EBF0;

  --ink:var(--ku-dark);
  --body-text:#16315A;
  --muted:var(--tint-blue-70);
  --line:rgba(22,49,90,.16);
  --line-onDark:rgba(255,255,255,.22);

  /* ── TIPOGRAFÍA OFICIAL ── */
  --display:"Barlow Condensed",Arial,Helvetica,sans-serif;  /* Primaria */
  --body:"Roboto",Arial,Helvetica,sans-serif;               /* Secundaria */

  /* ── RITMO · márgenes del manual: 20px / 40px ── */
  --wrap:1160px;
  --gutter:20px;
  --radius:6px;
  --radius-pill:999px;
  --shadow-plate:0 24px 60px -28px rgba(15,34,62,.5);
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}
body{
  margin:0;background:var(--ku-white);color:var(--body-text);
  font-family:var(--body);font-size:17px;line-height:1.4;font-weight:400;
  letter-spacing:.005em;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
h1,h2,h3,h4{margin:0;font-family:var(--display);line-height:.94;color:var(--ink)}
/* Titulares: Barlow Condensed Bold, MAYÚSCULAS (manual · Type Hierarchy) */
h1,h2{font-weight:700;text-transform:uppercase;letter-spacing:.015em}
/* Subtítulos: Barlow Condensed SemiBold, caja baja */
h3,h4{font-weight:600;line-height:1.04;letter-spacing:.015em}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
ul,ol{margin:0;padding:0;list-style:none}

/* ---------- utilidades ---------- */
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.wrap--narrow{max-width:820px}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:0;background:var(--ku-yellow);color:var(--ku-dark);padding:12px 20px;z-index:200;font-weight:700}
.skip:focus{left:12px;top:12px}
:focus-visible{outline:2px solid var(--ku-teal);outline-offset:3px;border-radius:var(--radius)}

/* ---------- eyebrow ---------- */
.eyebrow{
  font-family:var(--display);font-size:.9rem;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ku-teal);margin:0 0 16px;
  display:flex;align-items:center;gap:12px;
}
.eyebrow::after{content:"";flex:1;height:3px;background:var(--ku-yellow);max-width:80px;border-radius:var(--radius-pill)}
.eyebrow--onDark{color:var(--ku-white)}
.eyebrow--center{justify-content:center}
.eyebrow--center::after{display:none}

/* ============================================================
   NAVEGACIÓN
   ============================================================ */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;
  transition:background .3s ease,box-shadow .3s ease,border-color .3s ease;
  border-bottom:1px solid transparent}
.nav.is-stuck{background:rgba(15,34,62,.96);backdrop-filter:blur(14px);border-bottom-color:var(--ku-teal)}
.nav__inner{display:flex;align-items:center;gap:24px;height:78px}

/* Logo · tamaño mínimo del manual: 30 mm = 80 px de ancho */
.nav__brand{display:flex;align-items:center;gap:14px;flex-shrink:0;text-decoration:none;line-height:0}
.nav__shield{height:40px;width:auto;display:block;flex-shrink:0}
.nav__logo{width:120px;height:auto;display:block;flex-shrink:0}

.nav__ctx{display:flex;align-items:center;gap:12px;min-width:0;flex:1;
  padding-left:18px;border-left:1px solid var(--line-onDark)}
.nav__ctxName{font-family:var(--display);font-size:1.12rem;font-weight:600;color:var(--ku-white);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.015em}
.nav__ctxKind{font-family:var(--display);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ku-yellow);font-weight:600;flex-shrink:0}
.nav__links{display:flex;gap:26px;margin-left:auto;align-items:center}

/* ═══ Selector de idioma · toggle real de dos estados ═══
   Válido en este sitio porque toda página que existe ya es bilingüe
   por construcción — nunca promete una traducción que no está. */
.langswitch{display:flex;align-items:center;gap:2px;margin-left:4px;flex-shrink:0;
  border:1px solid var(--line-onDark);border-radius:999px;padding:3px}
.langswitch__opt{
  font-family:var(--display);font-size:.8rem;font-weight:600;letter-spacing:.08em;
  padding:5px 12px;border-radius:999px;text-decoration:none;line-height:1.1;
  color:rgba(255,255,255,.68);transition:background .2s,color .2s}
.langswitch__opt:hover{color:#fff;background:rgba(255,255,255,.12)}
.langswitch__opt.is-active{background:var(--ku-yellow);color:var(--ku-dark)}
.langswitch__opt.is-active:hover{background:var(--ku-yellow);color:var(--ku-dark)}
.nav__link{color:rgba(255,255,255,.88);text-decoration:none;font-size:.88rem;font-weight:400;
  padding:6px 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.nav__link:hover{color:var(--ku-white);border-bottom-color:var(--ku-yellow)}
.nav__toggle{display:none;background:none;border:1px solid var(--line-onDark);color:#fff;
  width:44px;height:44px;margin-left:auto;border-radius:var(--radius);cursor:pointer;font-size:1.1rem;line-height:1}

/* ---------- botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 30px;border-radius:var(--radius);text-decoration:none;
  font-family:var(--display);font-size:1.02rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  border:2px solid transparent;cursor:pointer;transition:transform .18s ease,background .2s,color .2s,border-color .2s}
.btn:hover{transform:translateY(-2px)}
.btn--gold{background:var(--ku-teal);color:var(--ku-white)}      /* CTA principal */
.btn--gold:hover{background:#0B5CB0}
.btn--ghost{border-color:rgba(255,255,255,.5);color:var(--ku-white)}
.btn--ghost:hover{border-color:var(--ku-yellow);color:var(--ku-yellow)}
.btn--navy{background:var(--ku-teal);color:var(--ku-white)}
.btn--navy:hover{background:#0B5CB0}
.btn--outline{border-color:var(--ku-blue);color:var(--ku-blue)}
.btn--outline:hover{background:var(--ku-blue);color:var(--ku-white)}
.btn--block{width:100%}

/* ============================================================
   HÉROE — filtro azul 60-80 % sobre fotografía (manual · Color Usage)
   ============================================================ */
.hero{position:relative;background:var(--ku-dark);color:var(--ku-white);overflow:hidden;padding:154px 0 84px}
.hero__bg{position:absolute;inset:0;object-fit:cover;width:100%;height:100%;opacity:1}
.hero__bg--top{object-position:center top}
.hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(105deg,rgba(15,34,62,.94) 0%,rgba(22,49,90,.86) 48%,rgba(16,117,219,.62) 100%)}
/* Motivo de marca: formas geométricas suaves, no textura */
.hero::after{content:"";position:absolute;z-index:1;pointer-events:none;
  right:-8%;top:-18%;width:52%;height:150%;
  background:rgba(16,117,219,.16);
  border-radius:0 0 0 42%;transform:skewX(-12deg)}
.hero__inner{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:start}
.hero__title{font-size:clamp(2.5rem,5.4vw,4.2rem);color:var(--ku-white);letter-spacing:.012em}
.hero__title em{font-style:normal;color:var(--ku-yellow)}
.hero__deck{font-size:1.06rem;color:rgba(255,255,255,.9);margin-top:24px;max-width:56ch;line-height:1.5}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.hero__note{margin-top:22px;font-size:.84rem;color:rgba(255,255,255,.7);max-width:48ch;line-height:1.5}

/* --- ficha del programa --- */
.plate{background:rgba(255,255,255,.07);border:1px solid var(--line-onDark);
  box-shadow:var(--shadow-plate);backdrop-filter:blur(6px);border-radius:var(--radius)}
.plate__head{padding:18px 24px;border-bottom:1px solid var(--line-onDark);
  display:flex;justify-content:space-between;align-items:center;gap:12px}
.plate__title{font-family:var(--display);font-size:1rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ku-white);font-weight:600;line-height:1.1}
.plate__seal{font-family:var(--display);font-size:.86rem;color:var(--ku-yellow);text-transform:uppercase;
  letter-spacing:.1em;font-weight:600;flex-shrink:0}
.plate__rows{padding:4px 24px 20px}
.plate__row{display:flex;justify-content:space-between;align-items:baseline;gap:18px;
  padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.plate__row:last-child{border-bottom:none}
.plate__k{font-family:var(--display);font-size:.88rem;letter-spacing:.08em;text-transform:uppercase;
  color:rgba(255,255,255,.68);font-weight:400;flex-shrink:0}
.plate__v{font-size:.93rem;font-weight:400;text-align:right;color:var(--ku-white);line-height:1.35}
.plate__v strong{font-family:var(--display);font-size:1.5rem;font-weight:700;color:var(--ku-yellow);letter-spacing:.01em}
.plate__foot{padding:15px 24px;background:rgba(16,117,219,.22);border-top:1px solid var(--line-onDark);
  font-size:.79rem;color:rgba(255,255,255,.85);line-height:1.45;border-radius:0 0 var(--radius) var(--radius)}

/* ============================================================
   BARRA DE CREDENCIALES
   ============================================================ */
.creds{background:var(--ku-blue);border-top:3px solid var(--ku-yellow);color:var(--ku-white)}
.creds__inner{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 40px;padding:18px 0}
.creds__item{display:flex;align-items:center;gap:9px;font-size:.85rem;color:rgba(255,255,255,.94)}
.creds__dot{width:8px;height:8px;background:var(--ku-yellow);border-radius:50%;flex-shrink:0}

/* ============================================================
   SECCIONES
   ============================================================ */
.section{padding:88px 0}
.section--tint{background:var(--ku-gray-light)}
.section--navy{background:var(--ku-blue);color:var(--ku-white)}
.section--paper{background:var(--ku-white)}
.section__head{max-width:740px;margin-bottom:48px}
.section__head--center{margin-left:auto;margin-right:auto;text-align:center}
.section__title{font-size:clamp(2rem,3.8vw,3rem)}
.section--navy .section__title{color:var(--ku-white)}
.section__lede{margin-top:16px;font-size:1.04rem;color:var(--muted);line-height:1.5}
.section--navy .section__lede{color:rgba(255,255,255,.82)}

/* ---------- rejilla ---------- */
.grid{display:grid;gap:2px;background:var(--line)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}
.cell{background:var(--ku-white);padding:32px 28px}
.section--tint .cell{background:var(--ku-gray-light)}
.cell__num{font-family:var(--display);font-size:1.05rem;font-weight:700;color:var(--ku-teal);
  text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px}
.cell__title{font-size:1.3rem;margin-bottom:9px}
.cell__body{font-size:.94rem;color:var(--muted);margin:0;line-height:1.5}

/* ============================================================
   ESPINA CURRICULAR
   ============================================================ */
.spine{border-top:1px solid var(--line)}
.mod{display:grid;grid-template-columns:96px 1fr 220px;gap:30px;
  padding:30px 0;border-bottom:1px solid var(--line);align-items:start}
.section--navy .mod,.section--navy .spine{border-color:var(--line-onDark)}
.mod__idx{font-family:var(--display);font-size:2.6rem;font-weight:700;color:var(--ku-teal);
  line-height:.9;padding-top:2px;letter-spacing:.01em}
.section--navy .mod__idx{color:var(--ku-yellow)}
.mod__idx span{display:block;font-size:.78rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--muted);margin-top:7px;font-weight:600}
.section--navy .mod__idx span{color:rgba(255,255,255,.62)}
.mod__title{font-size:1.35rem;margin-bottom:9px}
.section--navy .mod__title{color:var(--ku-white)}
.mod__code{font-family:var(--display);font-size:.88rem;letter-spacing:.1em;color:var(--ku-teal);
  font-weight:600;display:block;margin-bottom:6px;text-transform:uppercase}
.section--navy .mod__code{color:var(--ku-yellow)}
.mod__body{font-size:.94rem;color:var(--muted);margin:0;line-height:1.5}
.section--navy .mod__body{color:rgba(255,255,255,.8)}
.mod__meta{font-family:var(--display);font-size:.98rem;color:var(--muted);text-align:right;
  text-transform:uppercase;letter-spacing:.06em;line-height:1.3}
.section--navy .mod__meta{color:rgba(255,255,255,.66)}
.mod__topics{margin-top:13px;display:flex;flex-wrap:wrap;gap:8px}
.chip{font-size:.8rem;padding:5px 14px;border:1px solid var(--line);
  color:var(--muted);background:var(--ku-white);border-radius:var(--radius-pill)}
.section--navy .chip{background:rgba(255,255,255,.09);border-color:var(--line-onDark);color:rgba(255,255,255,.9)}

.track{margin-bottom:58px}
.track:last-child{margin-bottom:0}
.track__head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;
  padding-bottom:12px;border-bottom:3px solid var(--ku-yellow);margin-bottom:6px}
.track__name{font-size:1.6rem}
.section--navy .track__name{color:var(--ku-white)}
.track__credits{font-family:var(--display);font-size:.95rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ku-teal);font-weight:600;flex-shrink:0}
.section--navy .track__credits{color:var(--ku-yellow)}

/* ============================================================
   RUTA DE VALOR
   ============================================================ */
.route{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line-onDark);margin-bottom:2px}
.route__step{background:var(--ku-dark);padding:28px 26px;position:relative;text-decoration:none;
  color:var(--ku-white);display:block;transition:background .2s}
.route__step:hover{background:var(--ku-teal)}
.route__step.is-current{background:var(--ku-yellow);color:var(--ku-dark)}
.route__step.is-current .route__name{color:var(--ku-dark)}
.route__stage{font-family:var(--display);font-size:.85rem;letter-spacing:.13em;text-transform:uppercase;
  font-weight:600;opacity:.82;margin-bottom:10px}
.route__name{font-size:1.3rem;margin-bottom:8px;color:var(--ku-white)}
.route__desc{font-size:.88rem;opacity:.84;margin:0;line-height:1.45}
.route__parallel{background:var(--ku-dark);border:1px solid var(--line-onDark);border-radius:var(--radius);
  padding:24px;display:flex;gap:20px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.route__parallel p{color:rgba(255,255,255,.86);font-size:.94rem;max-width:62ch;line-height:1.5}
.route__parallel strong{color:var(--ku-yellow);font-weight:500}

/* ============================================================
   DOCENTES
   ============================================================ */
.faculty{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line)}
.prof{background:var(--ku-white);padding:24px}
.section--tint .prof{background:var(--ku-gray-light)}
.prof__name{font-family:var(--display);font-size:1.22rem;font-weight:600;margin-bottom:6px;color:var(--ink)}
.prof__deg{font-size:.86rem;color:var(--muted);line-height:1.5}
.prof__deg span{display:block}

/* ============================================================
   TABLA
   ============================================================ */
.table{width:100%;border-collapse:collapse;font-size:.93rem}
.table th{text-align:left;font-family:var(--display);font-size:.95rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ku-teal);font-weight:600;padding:0 18px 12px 0;
  border-bottom:3px solid var(--ku-yellow)}
.table td{padding:16px 18px 16px 0;border-bottom:1px solid var(--line);vertical-align:top;
  color:var(--muted);line-height:1.5}
.table td:first-child{color:var(--ink);font-weight:500}
.table__qty{font-family:var(--display);font-size:1.7rem;color:var(--ku-teal);font-weight:700}

/* ============================================================
   LISTAS
   ============================================================ */
.checks{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px}
.checks li{display:flex;gap:13px;padding:12px 0;border-bottom:1px solid var(--line);
  font-size:.95rem;align-items:flex-start;line-height:1.5}
.checks li::before{content:"";width:9px;height:9px;background:var(--ku-teal);
  border-radius:50%;margin-top:8px;flex-shrink:0}

/* ============================================================
   FAQ
   ============================================================ */
.faq__item{border-bottom:1px solid var(--line)}
.faq__q{cursor:pointer;list-style:none;padding:22px 44px 22px 0;position:relative;
  font-family:var(--display);font-size:1.24rem;font-weight:600;color:var(--ink);line-height:1.15}
.faq__q::-webkit-details-marker{display:none}
.faq__q::after{content:"+";position:absolute;right:6px;top:18px;font-family:var(--body);
  font-size:1.5rem;color:var(--ku-teal);font-weight:300;transition:transform .25s}
.faq__item[open] .faq__q::after{transform:rotate(45deg)}
.faq__a{padding:0 44px 24px 0;color:var(--muted);font-size:.95rem;line-height:1.55}

/* ============================================================
   MIGAS Y NAVEGACIÓN CONTEXTUAL
   ============================================================ */
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:9px;
  font-family:var(--display);font-size:.92rem;letter-spacing:.05em;margin-bottom:20px;text-transform:uppercase}
.crumbs a{color:rgba(255,255,255,.72);text-decoration:none;border-bottom:2px solid transparent;
  transition:color .2s,border-color .2s}
.crumbs a:hover{color:var(--ku-white);border-bottom-color:var(--ku-yellow)}
.crumbs span[aria-current]{color:var(--ku-yellow);font-weight:600}
.crumbs i{color:rgba(255,255,255,.42);font-style:normal}

.backlink{display:inline-flex;align-items:center;gap:9px;margin-bottom:24px;
  font-family:var(--display);font-size:.95rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ku-dark);background:var(--ku-yellow);text-decoration:none;
  padding:9px 18px;border-radius:var(--radius);transition:background .2s}
.backlink:hover{background:#F3DC7C}

.switch{background:var(--ku-gray-light);padding:52px 0;border-top:1px solid var(--line)}
.switch__head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;
  flex-wrap:wrap;margin-bottom:24px}
.switch__title{font-size:1.5rem}
.switch__all{font-family:var(--display);font-size:1rem;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ku-teal);text-decoration:none;border-bottom:2px solid var(--ku-yellow)}
.switch__pair{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line)}
.switch__item{background:var(--ku-white);padding:24px 26px;text-decoration:none;color:inherit;
  display:block;transition:background .2s}
.switch__item:hover{background:var(--tint-blue-08)}
.switch__dir{font-family:var(--display);font-size:.88rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ku-teal);font-weight:600;margin-bottom:8px}
.switch__name{font-family:var(--display);font-size:1.25rem;font-weight:600;line-height:1.1;color:var(--ink)}
.switch__item--next{text-align:right}

/* ============================================================
   SOLICITUD
   ============================================================ */
.apply{background:var(--ku-dark);color:var(--ku-white);position:relative;overflow:hidden;padding:88px 0}
.apply::after{content:"";position:absolute;left:-10%;bottom:-40%;width:46%;height:120%;
  background:rgba(16,117,219,.16);border-radius:46% 46% 0 0;pointer-events:none;transform:skewX(9deg)}
.apply__inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.apply__title{font-size:clamp(2rem,3.8vw,2.9rem);color:var(--ku-white)}
.apply__lede{margin-top:18px;color:rgba(255,255,255,.86);font-size:1.02rem;line-height:1.5}
.contact{margin-top:32px;display:grid;gap:2px;background:var(--line-onDark)}
.contact__row{background:var(--ku-dark);padding:16px 20px;display:flex;gap:16px;align-items:flex-start}
.contact__k{font-family:var(--display);font-size:.88rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--ku-yellow);width:92px;flex-shrink:0;padding-top:2px;font-weight:600}
.contact__v{font-size:.93rem;color:rgba(255,255,255,.94);line-height:1.45;
  min-width:0;overflow-wrap:anywhere}
.contact__v a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4)}

.formbox{background:var(--ku-white);color:var(--body-text);padding:36px;box-shadow:var(--shadow-plate);border-radius:var(--radius)}
.formbox__title{font-size:1.75rem;margin-bottom:6px}
.formbox__sub{font-size:.9rem;color:var(--muted);margin-bottom:24px}
.field{margin-bottom:15px}
.field__label{display:block;font-family:var(--display);font-size:.92rem;letter-spacing:.07em;
  text-transform:uppercase;font-weight:600;color:var(--ku-blue);margin-bottom:6px}
.field__input,.field__select{width:100%;padding:12px 14px;border:1px solid var(--line);
  border-radius:var(--radius);font-family:var(--body);font-size:.95rem;
  background:var(--ku-white);color:var(--body-text)}
.field__input:focus,.field__select:focus{border-color:var(--ku-teal);outline:none;
  box-shadow:0 0 0 3px rgba(16,117,219,.18)}
.field--half{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.formbox__legal{font-size:.78rem;color:var(--muted);margin-top:14px;line-height:1.5}
.zoho-slot{border:1px dashed var(--ku-teal);border-radius:var(--radius);padding:9px 14px;margin-bottom:18px;
  font-size:.76rem;color:var(--ku-teal);background:rgba(16,117,219,.07);letter-spacing:.03em}

/* ============================================================
   PIE — sin logo: el manual limita el logo a una vez por
   composición y prohíbe la esquina inferior izquierda.
   ============================================================ */
.foot{background:var(--ku-dark);color:rgba(255,255,255,.76);padding:60px 0 36px;
  border-top:3px solid var(--ku-yellow);font-size:.88rem;line-height:1.5}
.foot__top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:44px;padding-bottom:36px;
  border-bottom:1px solid var(--line-onDark)}
.foot__brand{font-family:var(--display);font-size:1.5rem;font-weight:700;color:var(--ku-white);
  margin-bottom:12px;text-transform:uppercase;letter-spacing:.05em;line-height:1.05}
.foot__h{font-family:var(--display);font-size:.95rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ku-yellow);margin-bottom:14px;font-weight:600}
.foot__list li{padding:5px 0}
.foot__list a{text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s,color .2s}
.foot__list a:hover{color:var(--ku-white);border-bottom-color:var(--ku-yellow)}
.foot__legal{padding-top:24px;font-size:.76rem;line-height:1.55;color:rgba(255,255,255,.56)}
.foot__legal p{margin-bottom:.8em}

/* ============================================================
   TARJETAS
   ============================================================ */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line)}
.card{background:var(--ku-white);padding:30px 26px;text-decoration:none;color:inherit;
  display:flex;flex-direction:column;transition:background .2s}
.card:hover{background:var(--tint-blue-08)}
.section--tint .card{background:var(--ku-gray-light)}
.section--tint .card:hover{background:var(--ku-white)}
.card--major{grid-column:span 3;background:var(--ku-blue);color:var(--ku-white);
  display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center}
.card--major:hover{background:var(--ku-teal)}
.card__kind{font-family:var(--display);font-size:.88rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ku-teal);font-weight:600;margin-bottom:10px}
.card--major .card__kind{color:var(--ku-yellow)}
.card__name{font-size:1.5rem;margin-bottom:9px}
.card--major .card__name{font-size:2.1rem;color:var(--ku-white);text-transform:uppercase}
.card__desc{font-size:.93rem;color:var(--muted);margin:0 0 16px;line-height:1.5}
.card--major .card__desc{color:rgba(255,255,255,.88);font-size:1rem;max-width:60ch}
.card__facts{margin-top:auto;display:flex;flex-wrap:wrap;gap:8px 16px;
  font-family:var(--display);font-size:.9rem;color:var(--ku-teal);letter-spacing:.05em;text-transform:uppercase}
.card--major .card__facts{color:var(--ku-yellow)}
.card__go{font-family:var(--display);font-size:.95rem;font-weight:600;color:var(--ku-teal);
  margin-top:14px;letter-spacing:.06em;text-transform:uppercase}
.card--major .card__go{color:var(--ku-yellow);margin-top:0;white-space:nowrap}
.card--soon{opacity:.76}
.card--soon .card__go{color:var(--muted)}

/* ============================================================
   MOVIMIENTO
   ============================================================ */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
  .btn:hover{transform:none}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1000px){
  .hero__inner{grid-template-columns:1fr;gap:40px}
  .hero__inner > *{min-width:0}
  .apply__inner{grid-template-columns:1fr;gap:40px}
  .apply__inner > *{min-width:0}
  .grid--3,.grid--4,.faculty,.cards,.route{grid-template-columns:repeat(2,1fr)}
  .card--major{grid-column:span 2;grid-template-columns:1fr}
  .foot__top{grid-template-columns:1fr 1fr}
  .mod{grid-template-columns:64px 1fr;gap:20px}
  .mod__meta{grid-column:2;text-align:left;padding-top:4px}
}
@media (max-width:900px){ .nav__ctx{display:none} }
@media (max-width:720px){
  body{font-size:16px}
  .nav__links{display:none;position:absolute;top:78px;left:0;right:0;background:rgba(15,34,62,.98);
    flex-direction:column;gap:0;padding:12px 20px 22px;border-bottom:1px solid var(--ku-teal)}
  .nav__links.is-open{display:flex}
  .nav__link{width:100%;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12)}
  .langswitch{margin-left:auto}
  .nav__toggle{margin-left:10px}
  .nav__toggle{display:block}
  .nav__shield{height:32px}
  .nav__logo{width:92px}   /* > 80 px: mínimo del manual */
  .hero{padding:120px 0 60px}
  .section,.apply{padding:64px 0}
  .grid--3,.grid--2,.grid--4,.faculty,.cards,.route,.checks,.field--half,.switch__pair{grid-template-columns:1fr}
  .card--major{grid-column:span 1}
  .switch__item--next{text-align:left}
  .foot__top{grid-template-columns:1fr;gap:28px}
  .formbox{padding:24px 20px}
  .track__head{flex-direction:column;align-items:flex-start;gap:8px}
  .creds__inner{gap:10px 22px}
  .crumbs{font-size:.82rem;gap:7px}
}


/* ═══ v3.1 · Navegación de dos niveles ═══ */
.pagenav{position:fixed;top:78px;left:0;right:0;z-index:99;
  background:rgba(22,49,90,.97);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line-onDark)}
.pagenav__inner{display:flex;gap:4px;align-items:center;height:50px;overflow-x:auto;
  scrollbar-width:none}
.pagenav__inner::-webkit-scrollbar{display:none}
.pagenav__link{
  font-family:var(--display);font-size:.95rem;font-weight:500;letter-spacing:.05em;
  text-transform:uppercase;color:rgba(255,255,255,.72);text-decoration:none;
  padding:6px 14px;border-radius:var(--radius-pill);white-space:nowrap;
  transition:color .2s,background .2s}
.pagenav__link:hover{color:var(--ku-white);background:rgba(255,255,255,.1)}
.pagenav__link[aria-current]{color:var(--ku-dark);background:var(--ku-yellow);font-weight:600}

/* estado activo en el menú principal */
.nav__link[aria-current]{color:var(--ku-white);border-bottom-color:var(--ku-yellow)}

/* enlaces de sección dentro del menú móvil */
.nav__link--sub{display:none}
.nav__sep{display:none;font-family:var(--display);font-size:.8rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ku-yellow);padding:16px 0 6px;font-weight:600}

/* ═══ v3.1 · Fotografía ═══
   Filtro azul dentro del 60-80 % que exige el manual, con más peso
   sobre la columna de texto para garantizar contraste. */
.hero{padding:204px 0 88px}
.hero::before{background:
  linear-gradient(180deg,rgba(15,34,62,.55) 0%,transparent 26%),
  linear-gradient(100deg,rgba(15,34,62,.80) 0%,rgba(15,34,62,.74) 34%,rgba(22,49,90,.64) 62%,rgba(16,117,219,.60) 100%)}
.hero__bg{filter:saturate(1.06) contrast(1.04)}
/* video de fondo */
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* banda de fotografía */
.band{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:190px 190px;gap:2px;
  background:var(--line)}
.band figure{margin:0;position:relative;overflow:hidden}
.band figure:first-child{grid-row:span 2}
.band img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.band figure:hover img{transform:scale(1.04)}
.band figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;
  background:linear-gradient(transparent,rgba(15,34,62,.92));
  font-family:var(--display);font-size:.95rem;letter-spacing:.05em;text-transform:uppercase;
  color:var(--ku-white);font-weight:500}

@media (max-width:900px){
  .band{grid-template-columns:1fr 1fr;grid-template-rows:170px 170px 170px}
  .band figure:first-child{grid-row:span 1;grid-column:span 2}
}
@media (max-width:720px){
  .pagenav{display:none}
  .nav__link--sub{display:block;padding-left:14px}
  .nav__sep{display:block}
  .hero{padding:132px 0 64px}
  .band{grid-template-columns:1fr;grid-template-rows:none}
  .band figure{height:200px}
  .band figure:first-child{grid-column:span 1}
}/* ═══ Página de inicio · componentes propios (sistema v2.0) ═══ */

/* iconos del sistema: trazo limpio, dos tonos (primario + acento) */
.ico{width:38px;height:38px;display:block;margin-bottom:14px;
  stroke:var(--ku-blue);stroke-width:1.6;fill:none;
  stroke-linecap:round;stroke-linejoin:round}
.ico .acc{stroke:var(--ku-teal)}
.ico .fill{fill:var(--ku-teal);stroke:none}
.section--navy .ico{stroke:var(--ku-white)}
.section--navy .ico .acc{stroke:var(--ku-yellow)}
.section--navy .ico .fill{fill:var(--ku-yellow)}
.ico--sm{width:26px;height:26px;margin-bottom:0;flex-shrink:0}

/* cifras */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--line-onDark)}
.stat{background:rgba(255,255,255,.06);padding:22px 20px;text-align:center}
.stat__n{font-family:var(--display);font-size:2.1rem;font-weight:700;color:var(--ku-yellow);
  line-height:1;letter-spacing:.01em}
.stat__l{font-family:var(--display);font-size:.88rem;letter-spacing:.08em;text-transform:uppercase;
  color:rgba(255,255,255,.78);margin-top:7px;line-height:1.2}
.stats--light{background:var(--line)}
.stats--light .stat{background:var(--ku-white)}
.stats--light .stat__n{color:var(--ku-teal)}
.stats--light .stat__l{color:var(--muted)}

/* bloque partido: texto + imagen */
.split{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.split__media{position:relative;border-radius:var(--radius);overflow:hidden}
.split__media img{width:100%;height:100%;object-fit:cover}
.split__cap{position:absolute;left:0;right:0;bottom:0;padding:20px 22px;
  background:linear-gradient(transparent,rgba(15,34,62,.94));color:var(--ku-white)}
.split__cap h3{color:var(--ku-white);font-size:1.24rem;margin-bottom:5px}
.split__cap p{font-size:.86rem;color:rgba(255,255,255,.86);margin:0;line-height:1.4}

/* acreditaciones */
.acc{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line)}
.acc__item{background:var(--ku-white);padding:30px 28px}
.acc__logo{height:64px;width:auto;margin-bottom:18px;object-fit:contain}
.acc__body{font-size:.86rem;color:var(--muted);line-height:1.55;margin:0}

/* video */
.videobox{border-radius:var(--radius);overflow:hidden;background:var(--ku-dark);
  border:1px solid var(--line-onDark)}
.videobox video{width:100%;display:block}

/* rankings */
.ranks{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--line)}
.rank{background:var(--ku-white);padding:26px 22px;display:flex;flex-direction:column;height:100%}
.rank__logo{height:38px;width:auto;object-fit:contain;object-position:left;margin-bottom:16px}
.rank__src{font-family:var(--display);font-size:.9rem;letter-spacing:.07em;text-transform:uppercase;
  color:var(--ku-teal);font-weight:600;margin-bottom:6px}
.rank__what{font-size:.86rem;color:var(--muted);margin:0 0 14px;line-height:1.4}
.rank__pos{margin-top:auto;font-family:var(--display);font-size:1.7rem;font-weight:700;
  color:var(--ku-dark);line-height:1}

/* pasos de admisión */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--line-onDark)}
.step{background:var(--ku-dark);padding:26px 24px}
.step__n{font-family:var(--display);font-size:2.4rem;font-weight:700;color:var(--ku-yellow);
  line-height:.9;margin-bottom:12px}
.step h3{color:var(--ku-white);font-size:1.2rem;margin-bottom:7px}
.step p{font-size:.88rem;color:rgba(255,255,255,.8);margin:0;line-height:1.45}

/* logos de empresas */
/* ═══ Slider de logos · dos filas, loop infinito, sin JS ═══ */
.marquee-wrap{display:flex;flex-direction:column;gap:2px;background:var(--line);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.marquee{overflow:hidden;background:var(--ku-white);padding:20px 0}
.marquee__track{display:flex;align-items:center;width:max-content;
  animation:marquee-scroll 52s linear infinite}
.marquee--reverse .marquee__track{animation-direction:reverse}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__logo{display:flex;align-items:center;justify-content:center;
  width:150px;height:64px;margin:0 24px;flex-shrink:0}
.marquee__logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;
  filter:grayscale(1);opacity:.6;transition:filter .2s,opacity .2s}
.marquee__logo:hover img{filter:none;opacity:1}
@keyframes marquee-scroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
@media (max-width:720px){
  .marquee__logo{width:110px;height:48px;margin:0 16px}
  .marquee{padding:14px 0}
}

/* lista con icono */
.iconlist li{display:flex;gap:14px;align-items:flex-start;padding:14px 0;
  border-bottom:1px solid var(--line-onDark)}
.iconlist li:last-child{border-bottom:none}
.iconlist strong{display:block;color:var(--ku-white);font-family:var(--display);
  font-size:1.1rem;font-weight:600;margin-bottom:3px}
.iconlist span{font-size:.9rem;color:rgba(255,255,255,.8);line-height:1.45}
.iconlist .ico{stroke:var(--ku-white)}

/* aviso de trabajo pendiente (no publicar) */
.pending{border:1px dashed var(--ku-teal);border-radius:var(--radius);
  background:rgba(16,117,219,.07);padding:18px 22px;margin-top:26px}
.pending p{font-size:.86rem;color:var(--ku-teal);margin:0;line-height:1.5}

@media (max-width:1000px){
  .stats,.ranks,.steps{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr;gap:32px}
  .split > *{min-width:0}
  .acc{grid-template-columns:1fr}
  .logos{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:720px){
  .stats,.ranks,.steps{grid-template-columns:1fr}
  .logos{grid-template-columns:repeat(2,1fr)}
}


/* ═══ v3.1 · Navegación de dos niveles ═══ */
.pagenav{position:fixed;top:78px;left:0;right:0;z-index:99;
  background:rgba(22,49,90,.97);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line-onDark)}
.pagenav__inner{display:flex;gap:4px;align-items:center;height:50px;overflow-x:auto;
  scrollbar-width:none}
.pagenav__inner::-webkit-scrollbar{display:none}
.pagenav__link{
  font-family:var(--display);font-size:.95rem;font-weight:500;letter-spacing:.05em;
  text-transform:uppercase;color:rgba(255,255,255,.72);text-decoration:none;
  padding:6px 14px;border-radius:var(--radius-pill);white-space:nowrap;
  transition:color .2s,background .2s}
.pagenav__link:hover{color:var(--ku-white);background:rgba(255,255,255,.1)}
.pagenav__link[aria-current]{color:var(--ku-dark);background:var(--ku-yellow);font-weight:600}

/* estado activo en el menú principal */
.nav__link[aria-current]{color:var(--ku-white);border-bottom-color:var(--ku-yellow)}

/* enlaces de sección dentro del menú móvil */
.nav__link--sub{display:none}
.nav__sep{display:none;font-family:var(--display);font-size:.8rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ku-yellow);padding:16px 0 6px;font-weight:600}

/* ═══ v3.1 · Fotografía ═══
   Filtro azul dentro del 60-80 % que exige el manual, con más peso
   sobre la columna de texto para garantizar contraste. */
.hero{padding:204px 0 88px}
.hero::before{background:
  linear-gradient(180deg,rgba(15,34,62,.55) 0%,transparent 26%),
  linear-gradient(100deg,rgba(15,34,62,.80) 0%,rgba(15,34,62,.74) 34%,rgba(22,49,90,.64) 62%,rgba(16,117,219,.60) 100%)}
.hero__bg{filter:saturate(1.06) contrast(1.04)}
/* video de fondo */
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* banda de fotografía */
.band{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:190px 190px;gap:2px;
  background:var(--line)}
.band figure{margin:0;position:relative;overflow:hidden}
.band figure:first-child{grid-row:span 2}
.band img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.band figure:hover img{transform:scale(1.04)}
.band figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;
  background:linear-gradient(transparent,rgba(15,34,62,.92));
  font-family:var(--display);font-size:.95rem;letter-spacing:.05em;text-transform:uppercase;
  color:var(--ku-white);font-weight:500}

@media (max-width:900px){
  .band{grid-template-columns:1fr 1fr;grid-template-rows:170px 170px 170px}
  .band figure:first-child{grid-row:span 1;grid-column:span 2}
}
@media (max-width:720px){
  .pagenav{display:none}
  .nav__link--sub{display:block;padding-left:14px}
  .nav__sep{display:block}
  .hero{padding:132px 0 64px}
  .band{grid-template-columns:1fr;grid-template-rows:none}
  .band figure{height:200px}
  .band figure:first-child{grid-column:span 1}
}