/* ============================================================
   UCI 25 AÑOS — HRDT  |  Design System
   ============================================================ */

:root {
  --navy:     #003366;
  --navy-dk:  #001a33;
  --navy-lt:  #004080;
  --cyan:     #00AEEF;
  --cyan-lt:  #33c3f8;
  --gold:     #C9A84C;
  --gold-lt:  #dfc278;
  --white:    #ffffff;
  --bg-light: #F5F7FA;
  --bg-card:  #ffffff;
  --text:     #1a2535;
  --text-muted: #5a6a80;
  --radius:   8px;
  --radius-lg: 12px;
  --shadow:   0 4px 24px rgba(0,51,102,.10);
  --shadow-lg:0 8px 40px rgba(0,51,102,.18);
  --transition: .25s ease;
  --transition-slow: .65s cubic-bezier(.2,.75,.2,1);
  --font-head: 'Montserrat', system-ui, sans-serif;
  --font-body: 'Inter', system-ui, sans-serif;
}

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body { font-family: var(--font-body); color: var(--text); background: var(--bg-light); line-height: 1.6; }
img  { max-width: 100%; display: block; }
a    { color: var(--cyan); text-decoration: none; }
a:hover { color: var(--gold); }

/* ── Container ── */
.container { width: min(1200px, 92%); margin-inline: auto; }

/* ── Buttons ── */
.btn {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .75rem 1.75rem; border-radius: 999px; font-family: var(--font-head);
  font-weight: 700; font-size: .95rem; cursor: pointer; border: none;
  transition: transform var(--transition), box-shadow var(--transition), background var(--transition);
  text-decoration: none;
}
.btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.btn--primary   { background: var(--cyan); color: var(--white); }
.btn--primary:hover { background: var(--cyan-lt); color: var(--white); }
.btn--gold      { background: var(--gold); color: var(--white); }
.btn--gold:hover{ background: var(--gold-lt); color: var(--white); }
.btn--outline   { background: transparent; color: var(--white); border: 2px solid var(--white); }
.btn--outline:hover { background: rgba(255,255,255,.15); color: var(--white); }
.btn--navy      { background: var(--navy); color: var(--white); }
.btn--whatsapp  { background: #25D366; color: var(--white); }
.btn--sm        { padding: .5rem 1.25rem; font-size: .85rem; }

/* ── Section ── */
.section { padding: 5rem 0; }
.section--dark,
.section--navy,
.video-strip,
.map-section,
.site-footer {
  position: relative;
  overflow: hidden;
}
.section--dark::before,
.section--navy::before,
.video-strip::before,
.map-section::before,
.site-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(115deg, transparent 0 38%, rgba(0,174,239,.08) 48%, transparent 58%),
    radial-gradient(circle at 8% 12%, rgba(201,168,76,.12), transparent 20rem);
  opacity: .55;
  transform: translateX(-10%);
  animation: ambientSweep 18s ease-in-out infinite alternate;
}
.section--dark > .container,
.section--navy > .container,
.video-strip > .container,
.map-section > .container,
.site-footer > * {
  position: relative;
  z-index: 1;
}
.section--dark  { background: var(--navy); color: var(--white); }
.section--navy  { background: var(--navy-dk); color: var(--white); }
.section--light { background: var(--bg-light); }
.section--white { background: var(--white); }

.section-label {
  font-family: var(--font-head); font-size: .8rem; font-weight: 700;
  letter-spacing: .15em; text-transform: uppercase; color: var(--cyan);
  margin-bottom: .5rem;
}
.section-title {
  font-family: var(--font-head); font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 800; line-height: 1.15; color: var(--navy); margin-bottom: 1rem;
}
.section--dark .section-title,
.section--navy .section-title { color: var(--white); }
.section-subtitle { color: var(--text-muted); font-size: 1.05rem; max-width: 600px; }
.section--dark .section-subtitle,
.section--navy .section-subtitle { color: rgba(255,255,255,.7); }

/* ── Cards ── */
.card {
  position: relative;
  background: var(--bg-card); border-radius: var(--radius-lg);
  box-shadow: var(--shadow); overflow: hidden;
  transition: transform var(--transition-slow), box-shadow var(--transition-slow), border-color var(--transition);
}
.card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.card-body { padding: 1.75rem; }

/* ── Grid helpers ── */
.grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap: 1.5rem; }
.grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px,1fr)); gap: 1.5rem; }
.grid-4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); gap: 1.25rem; }
.section-row {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1.5rem;
  margin-bottom: 2rem;
}

/* ── Prose gold divider ── */
.gold-divider { width: 60px; height: 4px; background: var(--gold); border-radius: 2px; margin: 1rem 0 1.5rem; }

/* ============================================================
   NAV
   ============================================================ */
.site-header {
  position: sticky; top: 0; z-index: 1000;
  background: rgba(0,26,51,.95); backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(0,174,239,.15);
}
.nav-inner {
  display: flex; align-items: center; justify-content: space-between;
  padding: .875rem 0;
}
.brand { display: flex; align-items: center; gap: .75rem; text-decoration: none; overflow: visible; }
.brand-hrdt {
  height: 56px; object-fit: contain;
  filter: brightness(1.4) drop-shadow(0 0 4px rgba(255,255,255,.2));
  opacity: .9;
}
.brand-icon {
  width: 86px; height: 58px; object-fit: contain; margin: -6px 0; display: block;
  filter: drop-shadow(0 0 6px rgba(0,174,239,.42));
}
.brand-text { font-family: var(--font-head); color: var(--white); line-height: 1.2; }
.brand-text strong { font-size: 1.05rem; color: var(--cyan); }
.brand-text small { display: block; font-size: .7rem; color: var(--gold); font-weight: 600; letter-spacing: .05em; }

.main-nav { display: flex; align-items: center; gap: .25rem; }
.nav-link {
  padding: .5rem .9rem; border-radius: 50px; font-family: var(--font-head);
  font-size: .875rem; font-weight: 600; color: rgba(255,255,255,.8);
  transition: all var(--transition); text-decoration: none;
}
.nav-link:hover, .nav-link.active { color: var(--white); background: rgba(0,174,239,.15); }
.nav-link--cta {
  background: var(--cyan); color: var(--white) !important; margin-left: .5rem;
  padding: .5rem 1.25rem;
}
.nav-link--cta:hover { background: var(--cyan-lt); color: var(--white); transform: none; }

.nav-toggle {
  display: none; flex-direction: column; gap: 5px;
  background: none; border: none; cursor: pointer; padding: .5rem;
}
.nav-toggle span { display: block; width: 24px; height: 2px; background: var(--white); border-radius: 2px; transition: var(--transition); }

/* ============================================================
   HERO (Home)
   ============================================================ */
.hero {
  position: relative; min-height: clamp(430px, 56vh, 610px);
  display: flex; align-items: center; overflow: hidden;
  background:
    linear-gradient(90deg, rgba(0,13,26,.96) 0%, rgba(0,26,51,.88) 38%, rgba(0,51,102,.55) 70%, rgba(0,26,51,.35) 100%),
    url('/assets/img/gen/home_hero.jpg') center right / cover no-repeat,
    var(--navy-dk);
}
.hero::after,
.curso-hero::after,
.voces-hero--image::after,
.hist-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(100deg, transparent 0 42%, rgba(255,255,255,.10) 49%, transparent 56%),
    radial-gradient(circle at 18% 24%, rgba(0,174,239,.14), transparent 18rem);
  transform: translateX(-120%);
  animation: heroLightPass 8s ease-in-out infinite;
  opacity: .78;
}
.hero-ecg {
  position: absolute; inset: 0; pointer-events: none; overflow: hidden; opacity: .18;
}
.hero-ecg svg { width: 100%; height: 100%; }
.hero-particles {
  position: absolute; inset: 0; pointer-events: none;
  background-image:
    radial-gradient(circle, var(--gold) 1px, transparent 1px),
    radial-gradient(circle, var(--cyan) 1px, transparent 1px);
  background-size: 120px 120px, 80px 80px;
  background-position: 0 0, 40px 40px;
  opacity: .07; animation: particlesDrift 20s linear infinite;
}
@keyframes particlesDrift { to { background-position: 120px 120px, 160px 160px; } }
@keyframes heroLightPass {
  0%, 34% { transform: translateX(-120%); opacity: 0; }
  48% { opacity: .72; }
  70%, 100% { transform: translateX(120%); opacity: 0; }
}
@keyframes ambientSweep {
  from { transform: translateX(-12%) translateY(0); }
  to { transform: translateX(12%) translateY(-2%); }
}
@keyframes fadeRise {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes softFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-7px); }
}
@keyframes clinicalPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0,174,239,.22), var(--shadow); }
  50% { box-shadow: 0 0 0 10px rgba(0,174,239,0), var(--shadow-lg); }
}
@keyframes pinBreath {
  0%, 100% { transform: translate(-50%, -50%) scale(1); }
  50% { transform: translate(-50%, -50%) scale(1.08); }
}
@keyframes rowLive {
  from { opacity: 0; transform: translateX(-12px); }
  to { opacity: 1; transform: translateX(0); }
}

.hero-content {
  position: relative; z-index: 2; text-align: left;
  width: min(1200px, 92%); padding: 3.1rem 0 2.7rem;
  animation: fadeRise .8s ease .1s both;
}
.hero-badge {
  display: inline-block; background: rgba(201,168,76,.2); color: var(--gold);
  border: 1px solid var(--gold); border-radius: 50px;
  padding: .3rem 1rem; font-size: .72rem; font-weight: 700;
  letter-spacing: .11em; text-transform: uppercase; margin-bottom: 1rem;
}
.hero-logo { width: 156px; margin: 0 0 1rem; filter: drop-shadow(0 0 22px rgba(0,174,239,.36)); }
.hero-title {
  font-family: var(--font-head); font-size: clamp(2.15rem, 4.8vw, 4.1rem);
  font-weight: 800; color: var(--white); line-height: 1.04; margin-bottom: .75rem;
  max-width: 650px;
}
.hero-title span { color: var(--gold); }
.hero-subtitle {
  font-size: clamp(.98rem, 1.7vw, 1.14rem); color: rgba(255,255,255,.82);
  margin-bottom: 0; max-width: 540px;
}
.hero-slogan {
  font-family: var(--font-head); font-size: .82rem; color: var(--cyan);
  letter-spacing: .08em; margin-bottom: 1.6rem;
}
.hero-actions { display: flex; gap: .85rem; justify-content: flex-start; flex-wrap: wrap; margin-bottom: 1.2rem; }

/* ── Countdown ── */
.countdown { display: flex; gap: .7rem; justify-content: flex-start; flex-wrap: wrap; margin-bottom: 1.1rem; }
.countdown-item {
  text-align: center; min-width: 68px;
  background: rgba(255,255,255,.08); border: 1px solid rgba(0,174,239,.25);
  border-radius: var(--radius); padding: .72rem .6rem; backdrop-filter: blur(8px);
  transition: transform var(--transition-slow), border-color var(--transition), background var(--transition);
}
.countdown-item:hover { transform: translateY(-5px); border-color: rgba(201,168,76,.45); background: rgba(255,255,255,.12); }
.countdown-num {
  display: block; font-family: var(--font-head); font-size: 1.85rem;
  font-weight: 800; color: var(--white); line-height: 1;
}
.countdown-label { font-size: .62rem; color: var(--cyan); letter-spacing: .1em; text-transform: uppercase; margin-top: .28rem; }
.hero-countdown-note {
  color: rgba(255,255,255,.64);
  font-size: .8rem;
  margin-top: -.35rem;
  margin-bottom: 1.45rem;
}

/* ── Stats strip ── */
.stats-strip {
  background: var(--navy-dk); border-top: 2px solid rgba(0,174,239,.2);
  border-bottom: 2px solid rgba(0,174,239,.2); padding: 1.75rem 0;
}
.stats-grid { display: flex; justify-content: center; gap: 3rem; flex-wrap: wrap; }
.stat-item { text-align: center; transition: transform var(--transition-slow); }
.stat-item:hover { transform: translateY(-4px); }
.stat-num {
  font-family: var(--font-head); font-size: 2.25rem; font-weight: 800;
  color: var(--cyan); line-height: 1; display: block;
}
.stat-label { font-size: .8rem; color: rgba(255,255,255,.65); letter-spacing: .05em; margin-top: .25rem; }

/* ── Event Cards (Home) ── */
.event-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px,1fr)); gap: 1.5rem; }
.event-card {
  position: relative;
  background: var(--white); border-radius: var(--radius-lg); overflow: hidden;
  box-shadow: var(--shadow); border-top: 4px solid var(--cyan);
  transition: transform var(--transition-slow), box-shadow var(--transition-slow);
  text-decoration: none; color: var(--text);
}
.event-card::after,
.value-card::after,
.workshop-card::after,
.costo-card::after,
.sponsor-card::after,
.historia-card::after,
.autoridad-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(135deg, rgba(255,255,255,.28), transparent 38%);
  opacity: 0;
  transition: opacity var(--transition);
}
.event-card:hover { transform: translateY(-7px); box-shadow: var(--shadow-lg); color: var(--text); }
.event-card:hover::after,
.value-card:hover::after,
.workshop-card:hover::after,
.costo-card:hover::after,
.sponsor-card:hover::after,
.historia-card:hover::after,
.autoridad-card:hover::after { opacity: 1; }
.event-card--gold { border-top-color: var(--gold); }
.event-card--navy { border-top-color: var(--navy); }
.event-card-icon {
  width: 44px; height: 44px; border-radius: 50%;
  display: grid; place-items: center; margin-bottom: .9rem;
  background: rgba(0,174,239,.12); color: var(--cyan);
  font-family: var(--font-head); font-size: .78rem; font-weight: 800;
}
.event-card--gold .event-card-icon { background: rgba(201,168,76,.16); color: var(--gold); }
.event-card--navy .event-card-icon { background: rgba(0,51,102,.12); color: var(--navy); }
.event-card-body { padding: 1.75rem; }
.event-card-date { font-size: .78rem; color: var(--text-muted); font-weight: 600; letter-spacing: .05em; margin-bottom: .35rem; }
.event-card-title { font-family: var(--font-head); font-size: 1.15rem; font-weight: 700; color: var(--navy); margin-bottom: .5rem; }
.event-card-desc { font-size: .9rem; color: var(--text-muted); }
.event-card-cta { display: inline-flex; align-items: center; gap: .35rem; font-size: .85rem; font-weight: 700; color: var(--cyan); margin-top: 1rem; }

/* ── Voces Preview ── */
.voces-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap: 1.5rem; }
.voce-card {
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--navy-dk);
  box-shadow: var(--shadow-lg);
  transition: transform var(--transition-slow), box-shadow var(--transition-slow);
}
.voce-card:hover { transform: translateY(-6px); box-shadow: 0 18px 48px rgba(0,13,26,.22); }
.voce-thumb { position: relative; aspect-ratio: 16/9; }
.voce-thumb iframe { width: 100%; height: 100%; border: none; }
.voce-info { padding: 1rem 1.25rem; }
.voce-name { font-family: var(--font-head); font-weight: 700; color: var(--white); font-size: .95rem; }
.voce-cargo { font-size: .8rem; color: var(--cyan); margin-top: .2rem; }

/* ── Home narrative ── */
.home-memory {
  background: var(--white);
  padding: clamp(2.7rem, 5vw, 4.5rem) 0;
}
.home-memory__grid {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(320px, 1.08fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}
.home-memory__copy h2,
.home-media h2,
.home-stories__head h2 {
  font-family: var(--font-head);
  color: var(--navy);
  font-size: clamp(1.8rem, 4vw, 3rem);
  line-height: 1.1;
  font-weight: 800;
}
.home-memory__copy p:not(.section-label) {
  color: #34445a;
  line-height: 1.82;
  margin-bottom: 1rem;
  max-width: 680px;
}
.home-memory__copy .btn { margin-top: 1rem; }
.home-memory__photo {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  background: var(--navy-dk);
  min-height: 420px;
}
.home-memory__photo img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
}
.home-memory__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 48%, rgba(0,13,26,.9) 100%);
}
.home-memory__photo figcaption {
  position: absolute;
  left: 1.25rem;
  right: 1.25rem;
  bottom: 1rem;
  z-index: 1;
  color: rgba(255,255,255,.84);
  font-size: .88rem;
  font-weight: 600;
}
.home-media {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 80% 12%, rgba(0,174,239,.16), transparent 26rem),
    linear-gradient(135deg, var(--navy-dk), var(--navy));
  padding: clamp(3.5rem, 7vw, 6rem) 0;
  color: var(--white);
}
.home-media__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: stretch;
}
.home-media h2 { color: var(--white); }
.home-media__feature,
.home-media__voices {
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.06);
  box-shadow: 0 18px 50px rgba(0,0,0,.25);
}
.home-media__feature {
  padding: clamp(1.25rem, 3vw, 2rem);
}
.home-media__feature p:not(.section-label),
.home-media__voices p {
  color: rgba(255,255,255,.72);
  line-height: 1.7;
  margin: .9rem 0 1.25rem;
}
.home-media__embed,
.home-voice-embed {
  border: 1px solid rgba(0,174,239,.26);
  box-shadow: 0 18px 48px rgba(0,0,0,.25);
}
.home-video-placeholder {
  min-height: 340px;
  border-radius: var(--radius);
  border: 1px solid rgba(0,174,239,.26);
  background:
    linear-gradient(135deg, rgba(0,13,26,.7), rgba(0,51,102,.5)),
    url('/assets/img/fotos/equipo/equipo_hrdt_letras.jpg') center / cover;
  display: grid;
  place-items: center;
  align-content: center;
  gap: .55rem;
  text-align: center;
  padding: 2rem;
}
.home-video-placeholder span {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--gold);
  color: var(--navy-dk);
  font-family: var(--font-head);
  font-weight: 800;
}
.home-video-placeholder strong {
  font-family: var(--font-head);
  color: var(--white);
  font-size: 1.25rem;
}
.home-video-placeholder small { color: rgba(255,255,255,.62); }
.home-media__voices {
  padding: 1.35rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1rem;
}
.home-media__voices strong {
  color: var(--white);
  font-family: var(--font-head);
  font-size: 1rem;
}
.home-media__voices span {
  color: var(--gold-lt);
  font-size: .85rem;
}
.home-media__voices .btn {
  align-self: flex-start;
  margin-top: auto;
}
.home-stories {
  background: var(--bg-light);
  padding: clamp(3.5rem, 7vw, 6rem) 0;
}
.home-stories__head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1.5rem;
  margin-bottom: 2rem;
}
.home-stories__head h2 {
  max-width: 760px;
}
.home-stories__empty {
  border: 1px solid rgba(0,51,102,.08);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(90deg, rgba(255,255,255,.94), rgba(255,255,255,.78)),
    url('/assets/img/fotos/equipo/equipo_uci_entrada.jpg') center / cover;
  padding: clamp(1.5rem, 4vw, 3rem);
  box-shadow: var(--shadow);
}
.home-stories__empty h3 {
  font-family: var(--font-head);
  color: var(--navy);
  font-size: clamp(1.3rem, 3vw, 2rem);
  margin-bottom: .7rem;
}
.home-stories__empty p {
  color: var(--text-muted);
  max-width: 560px;
  line-height: 1.7;
  margin-bottom: 1.4rem;
}

/* ============================================================
   PAGE HEADER (subpáginas genéricas)
   ============================================================ */
.page-header {
  background: linear-gradient(135deg, var(--navy-dk) 0%, var(--navy) 100%);
  padding: 2.5rem 0 2rem; border-bottom: 3px solid var(--gold); color: var(--white);
}
.page-header__title {
  font-family: var(--font-head); font-size: clamp(1.6rem, 3.5vw, 2.4rem);
  font-weight: 800; line-height: 1.15; margin-bottom: .5rem;
}
.page-header__title span { color: var(--gold); }
.page-header__sub { font-size: .95rem; color: rgba(255,255,255,.6); max-width: 520px; }
.historia-hero { display: none; }

/* ============================================================
   HISTORIA — HERO CINEMATOGRÁFICO
   ============================================================ */
.hist-hero {
  position: relative; min-height: 38vh;
  display: flex; align-items: center; overflow: hidden; color: var(--white);
}
.hist-hero__bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  transform: scale(1.05); animation: heroZoom 18s ease-in-out infinite alternate;
}
@keyframes heroZoom { to { transform: scale(1.0); } }
.hist-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,13,26,.92) 0%, rgba(0,51,102,.75) 60%, rgba(0,85,153,.5) 100%);
}
.hist-hero__ecg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 120px;
  pointer-events: none;
}
.hist-hero__ecg svg { width: 100%; height: 100%; }
.hist-hero__content {
  position: relative; z-index: 2; padding: 3rem 0 3.5rem;
}
.hist-hero__tag {
  display: inline-block; background: rgba(201,168,76,.2); color: var(--gold);
  border: 1px solid var(--gold); border-radius: 50px;
  padding: .4rem 1.5rem; font-size: .78rem; font-weight: 700;
  letter-spacing: .15em; text-transform: uppercase; margin-bottom: 1.5rem;
  animation: fadeInDown .8s ease both;
}
.hist-hero__title {
  font-family: var(--font-head); font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 800; line-height: 1.1; margin-bottom: .6rem;
  animation: fadeInDown .9s .1s ease both;
}
.hist-hero__title span { color: var(--gold); display: inline; }
.hist-hero__sub {
  font-size: .95rem; color: rgba(255,255,255,.65);
  line-height: 1.6; margin-bottom: 1.75rem; max-width: 480px;
  animation: fadeInDown 1s .2s ease both;
}
.hist-hero__stats {
  display: flex; gap: 2.5rem; flex-wrap: wrap;
  animation: fadeInDown 1s .35s ease both;
}
.hist-hero__stat strong {
  display: block; font-family: var(--font-head); font-size: 1.9rem;
  font-weight: 800; color: var(--gold); line-height: 1;
}
.hist-hero__stat span { font-size: .73rem; color: rgba(255,255,255,.5); letter-spacing: .08em; text-transform: uppercase; }
.hist-hero__scroll { display: none; }
@keyframes fadeInDown { from{opacity:0;transform:translateY(-20px)} to{opacity:1;transform:translateY(0)} }

/* ── Reseña histórica ── */
.historia-resena {
  position: relative;
  overflow: hidden;
}
.historia-resena::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0,51,102,.04), transparent 38%),
    radial-gradient(circle at 92% 12%, rgba(201,168,76,.14), transparent 28rem);
  pointer-events: none;
}
.resena-layout {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(360px, .95fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}
.resena-prose { max-width: 820px; }
.resena-lead {
  font-size: clamp(1.08rem, 2vw, 1.28rem);
  line-height: 1.75;
  color: var(--navy);
  font-weight: 600;
  margin-bottom: 1.5rem;
}
.resena-prose p:not(.section-label):not(.resena-lead) {
  color: #34445a;
  line-height: 1.86;
  margin-top: 1.15rem;
  text-align: justify;
  text-justify: inter-word;
}
.resena-panel {
  position: sticky;
  top: 7rem;
}
.resena-pullquote {
  background: var(--navy);
  color: var(--white);
  border-radius: var(--radius);
  padding: 1.6rem;
  box-shadow: var(--shadow-lg);
  border: 1px solid rgba(255,255,255,.08);
}
.resena-pullquote span {
  display: block;
  color: var(--gold);
  font-family: Georgia, serif;
  font-size: 3.6rem;
  line-height: .7;
  margin-bottom: .6rem;
}
.resena-pullquote p {
  font-family: var(--font-head);
  font-size: 1.02rem;
  line-height: 1.62;
  font-weight: 700;
}
.resena-video-card {
  position: relative;
  background: var(--navy);
  color: var(--white);
  border-radius: var(--radius);
  padding: 1.35rem;
  box-shadow: var(--shadow-lg);
  border: 1px solid rgba(255,255,255,.08);
  overflow: hidden;
  animation: softFloat 7s ease-in-out infinite;
}
.resena-video-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 80% 12%, rgba(0,174,239,.16), transparent 12rem);
  pointer-events: none;
}
.resena-video-card > * { position: relative; z-index: 1; }
.resena-video-card h3 {
  color: var(--white);
  font-family: var(--font-head);
  font-size: 1.35rem;
  line-height: 1.2;
  margin-bottom: 1rem;
}
.resena-video-card p:not(.section-label) {
  color: rgba(255,255,255,.68);
  font-size: .92rem;
  line-height: 1.6;
  margin: 1rem 0;
}
.resena-video-frame {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 9;
  border-radius: var(--radius);
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(0,13,26,.35), rgba(0,51,102,.86)),
    url('/assets/img/fotos/equipo/equipo_hrdt_letras.jpg') center / cover;
  border: 1px solid rgba(0,174,239,.32);
  cursor: pointer;
  transition: transform var(--transition-slow), border-color var(--transition), box-shadow var(--transition);
}
.resena-video-frame:hover {
  transform: translateY(-3px);
  border-color: rgba(201,168,76,.45);
  box-shadow: 0 18px 44px rgba(0,0,0,.22);
}
.resena-video-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(0,174,239,.22), transparent 55%);
}
.resena-video-play {
  border: 0;
  cursor: pointer;
  position: relative;
  z-index: 1;
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--gold);
  color: var(--navy-dk);
  font-size: 1.35rem;
  font-weight: 800;
  padding-left: 5px;
  box-shadow: 0 12px 34px rgba(0,0,0,.35);
  transition: transform var(--transition), box-shadow var(--transition);
}
.resena-video-frame:hover .resena-video-play {
  transform: scale(1.08);
  box-shadow: 0 16px 44px rgba(0,0,0,.45);
}
.resena-facts {
  display: grid;
  gap: .75rem;
  margin-top: 1rem;
}
.resena-facts div {
  position: relative;
  display: grid;
  grid-template-columns: 4.8rem 1fr;
  gap: .85rem;
  align-items: center;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(0,51,102,.10);
  border-radius: var(--radius);
  padding: .9rem 1rem;
  box-shadow: 0 8px 26px rgba(0,51,102,.07);
  transition: transform var(--transition-slow), box-shadow var(--transition-slow), border-color var(--transition);
}
.resena-facts div:hover {
  transform: translateX(5px);
  border-color: rgba(0,174,239,.24);
  box-shadow: 0 14px 34px rgba(0,51,102,.12);
}
.resena-facts strong {
  color: var(--gold);
  font-family: var(--font-head);
  font-size: 1.15rem;
}
.resena-facts span {
  color: var(--text-muted);
  font-size: .88rem;
  line-height: 1.45;
}

/* ── Reveal on scroll ── */
.reveal {
  opacity: 0;
  transform: translateY(34px) scale(.985);
  transition:
    opacity .75s ease var(--reveal-delay, 0ms),
    transform .75s cubic-bezier(.2,.75,.2,1) var(--reveal-delay, 0ms);
}
.reveal.visible { opacity: 1; transform: none; }

/* ── Autoridades ── */
.autoridades-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px,1fr)); gap: 2rem; max-width: 780px; }
.autoridad-card {
  border-radius: var(--radius-lg); overflow: hidden;
  box-shadow: var(--shadow-lg); background: var(--white);
  transition: transform var(--transition), box-shadow var(--transition);
}
.autoridad-card:hover { transform: translateY(-6px); box-shadow: 0 16px 48px rgba(0,51,102,.18); }
.autoridad-card__stripe { height: 5px; background: var(--gold); }
.autoridad-card__stripe--cyan { background: var(--cyan); }
.autoridad-card__body { padding: 2rem; text-align: center; }
.autoridad-card__avatar {
  width: 80px; height: 80px; border-radius: 50%; background: var(--bg-light);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-head); font-size: 1.2rem; font-weight: 800; color: var(--navy);
  margin: 0 auto 1rem;
  box-shadow: 0 0 0 4px var(--gold);
}
.autoridad-card--current .autoridad-card__avatar { box-shadow: 0 0 0 4px var(--gold), 0 0 20px rgba(201,168,76,.3); }
.autoridad-card__badge {
  display: inline-block; border-radius: 50px; padding: .25rem 1rem;
  font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin-bottom: .75rem;
}
.autoridad-card__badge--gold { background: rgba(201,168,76,.15); color: var(--gold); border: 1px solid var(--gold); }
.autoridad-card__badge--cyan { background: rgba(0,174,239,.12); color: var(--cyan); border: 1px solid var(--cyan); }
.autoridad-card__name { font-family: var(--font-head); font-size: 1.2rem; font-weight: 800; color: var(--navy); margin-bottom: .3rem; }
.autoridad-card__role { font-size: .82rem; color: var(--cyan); font-weight: 600; margin-bottom: .75rem; }
.autoridad-card__desc { font-size: .85rem; color: var(--text-muted); line-height: 1.6; }

/* ── Timeline ── */
.htimeline-wrap {
  width: 100%;
  overflow: visible;
  padding: 1rem 0 0;
  cursor: default;
}
.htimeline-wrap:active { cursor: default; }
.htimeline {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.1rem;
  width: min(1200px, 92%);
  margin-inline: auto;
  min-width: 0;
  padding: 0;
  position: relative;
}
.htimeline__line {
  display: none;
}
.htimeline__item {
  display: block;
  min-width: 0;
  position: relative;
}
.htimeline__card {
  width: 100%;
  height: 100%;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1); border-radius: var(--radius);
  padding: 1.2rem 1rem;
  margin-bottom: 0;
  text-align: left;
  transition: background var(--transition), transform var(--transition), box-shadow var(--transition);
  cursor: default;
}
.htimeline__card:hover {
  background: rgba(255,255,255,.12); transform: translateY(-6px);
  box-shadow: 0 12px 32px rgba(0,0,0,.4);
}
.htimeline__card--gold { border-color: rgba(201,168,76,.5); background: rgba(201,168,76,.08); }
.htimeline__card--cyan { border-color: rgba(0,174,239,.4); background: rgba(0,174,239,.07); }
.htimeline__icon {
  width: 40px; height: 40px; border-radius: 50%;
  display: inline-grid; place-items: center; margin-bottom: .7rem;
  background: rgba(255,255,255,.08); color: var(--cyan);
  font-family: var(--font-head); font-size: .75rem; font-weight: 800;
}
.htimeline__card--gold .htimeline__icon { color: var(--gold); background: rgba(201,168,76,.16); }
.htimeline__year {
  font-family: var(--font-head); font-size: 1.3rem; font-weight: 800;
  color: var(--gold); margin-bottom: .2rem; line-height: 1;
}
.htimeline__card--cyan .htimeline__year { color: var(--cyan); }
.htimeline__title {
  font-family: var(--font-head); font-size: .82rem; font-weight: 700;
  color: var(--white); margin-bottom: .4rem;
}
.htimeline__desc { font-size: .72rem; color: rgba(255,255,255,.55); line-height: 1.5; }
.htimeline__dot {
  display: none;
}
.htimeline__dot--gold {
  background: var(--gold); border-color: var(--gold);
  box-shadow: 0 0 14px rgba(201,168,76,.7);
}
.htimeline__dot--cyan {
  background: var(--cyan); border-color: var(--cyan);
  box-shadow: 0 0 14px rgba(0,174,239,.7);
}

/* Equipo slider */
.team-section-note { color: var(--text-muted); margin-bottom: 2rem; }
.team-slider-wrap { overflow-x: auto; padding: 1rem 0; cursor: grab; scrollbar-width: thin; }
.team-slider-wrap:active { cursor: grabbing; }
.team-slider { display: flex; gap: 1.5rem; min-width: max-content; padding: 0 1rem; }
.team-year-card {
  width: 340px; border-radius: var(--radius-lg); overflow: hidden;
  box-shadow: var(--shadow-lg); flex-shrink: 0; position: relative;
  transition: transform var(--transition-slow), box-shadow var(--transition-slow);
}
.team-year-card:hover { transform: translateY(-6px); box-shadow: 0 18px 52px rgba(0,13,26,.24); }
.team-year-card img { width: 100%; height: 240px; object-fit: cover; display: block; }
.team-year-label {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: linear-gradient(transparent, rgba(0,13,26,.95));
  color: var(--white); padding: 2rem 1.25rem .9rem;
  font-family: var(--font-head); font-weight: 700; font-size: 1rem;
}

/* Gallery */
.gallery-filters { display: flex; gap: .6rem; flex-wrap: wrap; margin-bottom: 2rem; }
.filter-btn {
  padding: .45rem 1.25rem; border-radius: 50px; border: 2px solid var(--navy);
  background: transparent; color: var(--navy); font-family: var(--font-head);
  font-size: .83rem; font-weight: 600; cursor: pointer; transition: all var(--transition);
}
.filter-btn:hover, .filter-btn.active { background: var(--navy); color: var(--white); }
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px,1fr)); gap: 1rem; }
.gallery-item {
  border-radius: var(--radius); overflow: hidden;
  position: relative; display: block; height: 210px;
  background: var(--navy-dk);
  transition: transform var(--transition-slow), box-shadow var(--transition-slow);
}
.gallery-item img {
  width: 100%; height: 100%; object-fit: cover;
  display: block; transition: transform .5s ease;
}
.gallery-item__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 28%, rgba(0,13,26,.88) 100%);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  gap: .35rem;
  padding: 1rem;
  opacity: 0;
  transition: opacity var(--transition);
}
.gallery-item__overlay strong {
  color: var(--white);
  font-family: var(--font-head);
  font-size: .92rem;
  line-height: 1.25;
}
.gallery-item__overlay span {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: var(--gold);
  color: var(--navy-dk);
  padding: .25rem .7rem;
  font-family: var(--font-head);
  font-size: .72rem;
  font-weight: 800;
}
.gallery-item:hover img { transform: scale(1.08); }
.gallery-item:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.gallery-item:hover .gallery-item__overlay { opacity: 1; }
.gallery-item[data-cat].hidden { display: none; }

/* Video strip */
.video-strip {
  background: linear-gradient(135deg, var(--navy-dk), var(--navy));
  color: var(--white);
  padding: 2.2rem 0;
}
.video-strip__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.video-strip h2 {
  color: var(--white);
  font-family: var(--font-head);
  font-size: clamp(1.3rem, 3vw, 2rem);
  line-height: 1.2;
  margin-bottom: .5rem;
}
.video-strip p:not(.section-label) {
  color: rgba(255,255,255,.68);
  max-width: 680px;
}

/* Video conmemorativo */
.video-feature {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(0,13,26,.98), rgba(0,51,102,.92)),
    var(--navy-dk);
  color: var(--white);
}
.video-feature--page {
  min-height: calc(100vh - 84px);
  display: flex;
  align-items: center;
}
.video-feature::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(201,168,76,.13), transparent 34%),
    radial-gradient(circle at 88% 18%, rgba(0,174,239,.24), transparent 26rem);
  pointer-events: none;
}
.video-feature__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}
.video-feature__title {
  font-family: var(--font-head);
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1.05;
  font-weight: 800;
  color: var(--white);
  margin-bottom: 1rem;
}
.video-feature__copy p:not(.section-label) {
  color: rgba(255,255,255,.74);
  line-height: 1.75;
  margin-top: 1rem;
}
.video-feature__badge {
  display: inline-flex;
  margin-top: 1.5rem;
  border: 1px solid rgba(201,168,76,.45);
  border-radius: 999px;
  padding: .55rem 1rem;
  color: var(--gold-lt);
  font-size: .8rem;
  font-weight: 700;
}
.video-feature__stage {
  position: relative;
  border-radius: var(--radius-lg);
  padding: .75rem;
  background: linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.03));
  box-shadow: 0 22px 70px rgba(0,0,0,.36);
  border: 1px solid rgba(255,255,255,.12);
  overflow: hidden;
  transition: transform var(--transition-slow), box-shadow var(--transition-slow);
}
.video-feature__stage::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(130deg, rgba(255,255,255,.16), transparent 32%);
  opacity: .55;
}
.video-feature__stage:hover { transform: translateY(-5px); box-shadow: 0 28px 80px rgba(0,0,0,.42); }
.video-placeholder {
  width: 100%;
  aspect-ratio: 16 / 9;
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid rgba(0,174,239,.28);
  background:
    linear-gradient(135deg, rgba(0,26,51,.82), rgba(0,13,26,.95)),
    radial-gradient(circle at 50% 45%, rgba(0,174,239,.22), transparent 18rem);
}
.video-placeholder__inner {
  min-height: 100%;
  padding: 3rem 2rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem;
  position: relative;
}
.video-placeholder__pulse {
  position: absolute; width: 90px; height: 90px; border-radius: 50%;
  background: rgba(0,174,239,.15); animation: pulse 2s infinite;
}
@keyframes pulse { 0%,100%{transform:scale(1);opacity:.6} 50%{transform:scale(1.4);opacity:0} }
.video-placeholder__icon {
  position: relative; width: 64px; height: 64px; border-radius: 50%;
  background: var(--cyan); display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem; color: white; padding-left: 4px;
}
.video-placeholder__label { color: rgba(255,255,255,.6); font-size: .95rem; line-height: 1.7; }
.video-placeholder__label small { color: rgba(255,255,255,.35); }

/* ============================================================
   VOCES UCI
   ============================================================ */
.voces-hero {
  background: linear-gradient(135deg, #001a33 0%, #003366 70%, #004499 100%);
  padding: 5rem 0; text-align: center; color: var(--white); position: relative; overflow: hidden;
}
.voces-hero--image {
  min-height: 48vh; display: flex; align-items: center; text-align: left;
  background:
    linear-gradient(90deg, rgba(0,13,26,.96) 0%, rgba(0,26,51,.88) 42%, rgba(0,51,102,.45) 72%, rgba(0,26,51,.18) 100%),
    url('/assets/img/fotos/equipo/equipo_hrdt_letras.jpg') center right / cover no-repeat,
    var(--navy-dk);
}
.voces-hero__content { position: relative; z-index: 1; }
.voces-hero--image .page-header__title { font-size: clamp(2.4rem, 7vw, 4.8rem); margin-bottom: .75rem; }
.voces-hero--image .page-header__sub { color: rgba(255,255,255,.76); max-width: 560px; }
.voces-waves {
  position: absolute; bottom: 0; left: 0; right: 0; opacity: .15;
}
.voces-playlist { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px,1fr)); gap: 1.5rem; }
.voce-full-card {
  background: var(--white); border-radius: var(--radius-lg); overflow: hidden;
  box-shadow: var(--shadow); border-left: 4px solid var(--cyan);
  transition: transform var(--transition-slow), box-shadow var(--transition-slow), border-color var(--transition);
}
.voce-full-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
  border-left-color: var(--gold);
}
.embed-wrap { aspect-ratio: 16/9; width: 100%; overflow: hidden; border-radius: var(--radius); background: var(--navy-dk); }
.embed-wrap iframe { width: 100%; height: 100%; border: none; display: block; }
.voce-full-card .embed-wrap { border-radius: 0; }
.resena-video-embed { margin-bottom: 1rem; border: 1px solid rgba(0,174,239,.32); }
.voce-full-card .voce-meta { padding: 1.25rem; }
.voce-full-card .voce-tema {
  font-size: .75rem; color: var(--cyan); font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; margin-bottom: .35rem;
}
.voce-full-card .voce-nombre { font-family: var(--font-head); font-weight: 700; color: var(--navy); }
.voce-full-card .voce-rol { font-size: .85rem; color: var(--text-muted); margin-top: .2rem; }

/* ============================================================
   CURSO
   ============================================================ */
.curso-hero {
  background:
    linear-gradient(90deg, rgba(0,13,26,.97) 0%, rgba(0,26,51,.9) 42%, rgba(0,51,102,.55) 72%, rgba(0,26,51,.35) 100%),
    url('/assets/img/gen/curso_hero_critico.png') center right / cover no-repeat,
    var(--navy-dk);
  padding: 5rem 0; color: var(--white); position: relative; overflow: hidden;
}
.curso-hero::before {
  content: "";
  position: absolute;
  inset: auto -10% 12% -10%;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(0,174,239,.2), rgba(201,168,76,.55), rgba(0,174,239,.2), transparent);
  box-shadow: 0 0 24px rgba(0,174,239,.28);
  animation: ambientSweep 9s ease-in-out infinite alternate;
}
.curso-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:3rem; align-items:center; }
.curso-hero-title {
  font-family:var(--font-head); font-size:clamp(1.35rem,2.6vw,2.4rem);
  font-weight:800; line-height:1.2; margin-bottom:1rem; max-width:860px;
}
.curso-meta { color:rgba(255,255,255,.78); font-size:1rem; margin-bottom:1.5rem; max-width:760px; }
.curso-stats { display: flex; gap: 2rem; flex-wrap: wrap; margin-top: 2rem; }
.curso-stat {
  background: rgba(255,255,255,.08); border: 1px solid rgba(0,174,239,.25);
  border-radius: var(--radius); padding: .875rem 1.5rem; text-align: center;
  transition: transform var(--transition-slow), background var(--transition), border-color var(--transition);
}
.curso-stat:hover { transform: translateY(-5px); background: rgba(255,255,255,.12); border-color: rgba(201,168,76,.46); }
.curso-stat-num { font-family: var(--font-head); font-size: 1.6rem; font-weight: 800; color: var(--gold); }
.curso-stat-lbl { font-size: .75rem; color: rgba(255,255,255,.7); }
.curso-countdown {
  background:rgba(0,26,51,.55); border:1px solid rgba(0,174,239,.28);
  border-radius:var(--radius-lg); padding:2rem; text-align:center; min-width:220px;
  backdrop-filter: blur(8px);
  animation: softFloat 8s ease-in-out infinite;
}
.value-grid, .workshop-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1.25rem; }
.value-card, .workshop-card {
  position: relative;
  overflow: hidden;
  background:var(--white); border:1px solid #dde3ee; border-radius:var(--radius-lg);
  padding:1.5rem; box-shadow:var(--shadow);
  transition: transform var(--transition-slow), box-shadow var(--transition-slow), border-color var(--transition);
}
.value-card:hover, .workshop-card:hover {
  transform: translateY(-6px);
  border-color: rgba(0,174,239,.26);
  box-shadow: var(--shadow-lg);
}
.value-card strong, .workshop-card strong {
  display:block; font-family:var(--font-head); color:var(--navy); font-size:1rem; margin-bottom:.45rem;
}
.value-card span, .workshop-card span { color:var(--text-muted); font-size:.9rem; line-height:1.65; }
.workshop-card { border-top:4px solid var(--gold); }

/* Speakers */
.speaker-showcase {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.25rem;
}
.speaker-showcase--national { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.speaker-card {
  background: var(--white); border-radius: var(--radius-lg); overflow: hidden;
  box-shadow: var(--shadow); text-align: center; padding: 1.75rem 1.25rem;
  transition: transform var(--transition-slow), box-shadow var(--transition-slow), border-color var(--transition);
}
.speaker-card--pending .speaker-photo { filter:saturate(.75); border-color:var(--gold); }
.speaker-card:hover { transform: translateY(-7px); box-shadow: var(--shadow-lg); }
.speaker-card--pro {
  padding: 0;
  text-align: left;
  border: 1px solid rgba(0,51,102,.08);
}
.speaker-media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(0,51,102,.08), rgba(201,168,76,.12)),
    var(--bg-light);
}
.speaker-card--pro .speaker-photo {
  width: 100%;
  height: 100%;
  border-radius: 0;
  border: 0;
  margin: 0;
  object-fit: cover;
  object-position: center;
  transition: transform .75s cubic-bezier(.2,.75,.2,1), filter var(--transition);
}
.speaker-card--pro:hover .speaker-photo { transform: scale(1.045); filter: saturate(1.05) contrast(1.03); }
.speaker-country {
  position: absolute;
  left: .9rem;
  bottom: .9rem;
  background: rgba(0,26,51,.86);
  color: var(--white);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  padding: .35rem .75rem;
  font-size: .78rem;
  font-weight: 700;
  transition: transform var(--transition), background var(--transition);
}
.speaker-card--pro:hover .speaker-country { transform: translateY(-3px); background: rgba(0,26,51,.94); }
.speaker-info { padding: 1.2rem; }
.speaker-info p {
  color: var(--text-muted);
  font-size: .86rem;
  line-height: 1.55;
  margin-top: .55rem;
}
.speaker-initials {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  color: var(--navy);
  font-family: var(--font-head);
  font-size: 3rem;
  font-weight: 800;
  background:
    radial-gradient(circle at 35% 28%, rgba(0,174,239,.22), transparent 14rem),
    linear-gradient(135deg, rgba(201,168,76,.18), rgba(0,51,102,.08));
}
.speaker-initials--sm {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  margin: 0 auto 1rem;
  font-size: 1.25rem;
  border: 2px solid rgba(201,168,76,.5);
}
.speaker-card--national { border-top: 4px solid var(--gold); }
.speaker-card--pro.speaker-card--national { border-top: 0; }
.speaker-card--pro.speaker-card--national .speaker-media { aspect-ratio: 1 / 1; }
.speaker-source {
  display: inline-block;
  margin-top: .75rem;
  color: var(--gold);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.speaker-photo {
  width: 100px; height: 100px; border-radius: 50%;
  object-fit: cover; margin: 0 auto 1rem;
  border: 3px solid var(--cyan); background: var(--bg-light);
}
.speaker-flag { font-size: 1.5rem; margin-bottom: .35rem; }
.speaker-name { font-family: var(--font-head); font-weight: 700; color: var(--navy); font-size: .95rem; }
.speaker-pais { font-size: .8rem; color: var(--text-muted); margin-top: .25rem; }

/* Mapa Latinoamérica */
.map-section {
  background:
    radial-gradient(circle at 75% 30%, rgba(0,174,239,.12), transparent 34%),
    linear-gradient(180deg, var(--navy-dk), #001426);
  padding: 4.5rem 0;
}
.map-container { position: relative; max-width: 1080px; margin: 0 auto; }
.latam-map-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 1.5rem;
  align-items: stretch;
}
.latam-map-board {
  position: relative;
  min-height: 560px;
  border: 1px solid rgba(0,174,239,.22);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03)),
    rgba(0,26,51,.58);
  overflow: hidden;
  box-shadow: 0 18px 46px rgba(0,0,0,.28);
}
.latam-map-board::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(120deg, transparent 0 38%, rgba(255,255,255,.08) 47%, transparent 56%),
    radial-gradient(circle at 72% 28%, rgba(201,168,76,.16), transparent 13rem);
  opacity: .55;
}
.latam-map-image {
  position: absolute;
  inset: 4% 12% 4% 10%;
  width: 78%;
  height: 92%;
  object-fit: contain;
  filter: sepia(1) saturate(.13) hue-rotate(150deg) brightness(1.35) contrast(.9) drop-shadow(0 16px 24px rgba(0,0,0,.32));
  opacity: .96;
}
.latam-pin {
  position: absolute;
  z-index: 3;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 2px solid var(--white);
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: 0 0 0 6px rgba(201,168,76,.14), 0 10px 26px rgba(0,0,0,.35);
  transition: transform .2s ease, box-shadow .2s ease;
  animation: pinBreath 3.2s ease-in-out infinite;
}
.latam-pin span {
  font-family: var(--font-head);
  font-size: .72rem;
  font-weight: 800;
  color: var(--navy-dk);
}
.latam-pin--gold { background: var(--gold); }
.latam-pin--cyan { background: var(--cyan); box-shadow: 0 0 0 6px rgba(0,174,239,.16), 0 10px 26px rgba(0,0,0,.35); }
.latam-pin:hover,
.latam-pin:focus,
.latam-pin.active {
  transform: translate(-50%, -50%) scale(1.14);
  outline: none;
  box-shadow: 0 0 0 12px rgba(255,255,255,.08), 0 0 30px rgba(201,168,76,.55);
}
.latam-detail {
  border: 1px solid rgba(201,168,76,.3);
  border-radius: var(--radius-lg);
  background: rgba(0,26,51,.78);
  padding: 1.5rem;
  color: var(--white);
  box-shadow: 0 18px 46px rgba(0,0,0,.24);
}
.latam-detail__eyebrow {
  color: var(--cyan);
  font-family: var(--font-head);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: .65rem;
}
.latam-detail h3 {
  font-family: var(--font-head);
  color: var(--gold);
  font-size: 1.7rem;
  margin-bottom: .35rem;
}
.latam-detail p { color: rgba(255,255,255,.68); font-size: .9rem; margin-bottom: 1rem; }
.latam-detail ul { list-style: none; display: grid; gap: .6rem; }
.latam-detail li {
  padding: .65rem .75rem;
  border-radius: var(--radius);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.88);
  font-size: .88rem;
}
.map-actions { display: flex; justify-content: center; margin-top: 1.5rem; }
.map-country-list {
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
  margin-top:2rem;
  justify-content:center;
}
.map-country-chip {
  position: relative;
  min-width: 132px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(201,168,76,.3);
  border-radius:var(--radius);
  padding:.75rem 1rem;
  text-align:center;
  transition: transform var(--transition-slow), background var(--transition), border-color var(--transition);
}
.map-country-chip:hover {
  transform: translateY(-5px);
  background: rgba(255,255,255,.09);
  border-color: rgba(201,168,76,.55);
}
.map-country-chip div { font-size:1.35rem; margin-bottom:.25rem; }
.map-country-chip strong {
  display:block;
  font-family:var(--font-head);
  font-weight:800;
  color:var(--gold);
  font-size:.88rem;
}
.map-country-chip span {
  display:block;
  font-size:.73rem;
  color:rgba(255,255,255,.62);
  margin-top:.2rem;
}
.map-country-chip--peru { border-color: rgba(0,174,239,.35); }
.map-country-chip--peru strong { color: var(--cyan); }

/* Programa Acordeón */
.programa-tabs { display: flex; gap: .75rem; margin-bottom: 2rem; flex-wrap: wrap; }
.programa-tab {
  padding: .65rem 1.5rem; border-radius: 50px; font-family: var(--font-head);
  font-weight: 700; font-size: .88rem; cursor: pointer; border: 2px solid var(--navy);
  background: transparent; color: var(--navy); transition: all var(--transition);
}
.programa-tab.active, .programa-tab:hover { background: var(--navy); color: var(--white); transform: translateY(-2px); }
.programa-day { display: none; }
.programa-day.active { display: block; }
.programa-row {
  display: grid; grid-template-columns: 150px 1fr;
  gap: 1rem; padding: .875rem 0; border-bottom: 1px solid rgba(0,51,102,.08);
  align-items: start;
  transition: transform var(--transition), background var(--transition), padding var(--transition);
}
.programa-row:hover { transform: translateX(5px); background: rgba(0,174,239,.045); padding-inline: .75rem; }
.programa-row.row-live { animation: rowLive .35s ease var(--row-delay, 0ms) both; }
.programa-hora { font-family: var(--font-head); font-size: .8rem; font-weight: 700; color: var(--cyan); white-space: nowrap; }
.programa-titulo { font-size: .92rem; color: var(--text); }
.programa-titulo.taller { color: var(--navy); font-weight: 700; }

/* Costos */
.costos-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px,1fr)); gap: 1.25rem; }
.costo-card {
  position: relative;
  overflow: hidden;
  background: var(--white); border-radius: var(--radius-lg); padding: 1.75rem;
  text-align: center; box-shadow: var(--shadow); border-top: 4px solid var(--cyan);
  transition: transform var(--transition-slow), box-shadow var(--transition-slow), border-color var(--transition);
}
.costo-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.costo-card--featured { border-top-color: var(--gold); transform: scale(1.03); }
.costo-card--featured:hover { transform: scale(1.03) translateY(-6px); }
.costo-cat { font-size: .8rem; color: var(--text-muted); font-weight: 600; letter-spacing: .05em; margin-bottom: .5rem; text-transform: uppercase; }
.costo-precio { font-family: var(--font-head); font-size: 2rem; font-weight: 800; color: var(--navy); }
.costo-moneda { font-size: 1rem; font-weight: 600; }
.curso-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  max-width: 880px;
  margin: 0 auto;
}
.curso-contact-card {
  position: relative;
  display: grid;
  align-content: start;
  background: var(--white);
  border: 1px solid rgba(0,51,102,.12);
  border-radius: var(--radius);
  padding: 1.25rem;
  box-shadow: var(--shadow);
}
.curso-contact-card--primary {
  border-color: rgba(201,168,76,.32);
  box-shadow: 0 12px 32px rgba(0,51,102,.08);
}
.curso-contact-card h3 {
  font-family: var(--font-head);
  color: var(--navy);
  font-size: 1rem;
  margin: .15rem 2.5rem .25rem 0;
}
.contact-step {
  position: absolute;
  top: .95rem;
  right: .95rem;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(0,174,239,.12);
  color: var(--navy);
  font-family: var(--font-head);
  font-size: .8rem;
  font-weight: 800;
}
.contact-number {
  font-family: var(--font-head);
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--navy);
  line-height: 1.2;
  margin: .35rem 0 .75rem;
  letter-spacing: .02em;
}
.curso-contact-card p:not(.section-label) {
  color: var(--text-muted);
  margin-bottom: 1rem;
  font-size: .9rem;
  line-height: 1.6;
}
.curso-contact-card .btn {
  align-self: end;
  justify-content: center;
  padding: .7rem 1rem;
  font-size: .86rem;
}
.payment-steps {
  max-width: 880px;
  margin: 1.4rem auto 0;
  display: grid;
  gap: .5rem;
  padding: 1.25rem;
  border-radius: var(--radius);
  background: rgba(0,51,102,.06);
  color: var(--text-muted);
}
.payment-steps strong {
  color: var(--navy);
  font-family: var(--font-head);
}
.course-payment-panel {
  display: grid;
  grid-template-columns: 1.05fr 1.45fr auto;
  gap: 1rem;
  align-items: center;
  margin-bottom: 1.35rem;
  padding: 1rem;
  border: 1px solid rgba(201,168,76,.3);
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(201,168,76,.08), rgba(0,174,239,.04));
}
.course-payment-panel .section-label {
  margin-bottom: .25rem;
  font-size: .68rem;
}
.course-payment-panel h3 {
  margin: 0;
  color: var(--navy);
  font-family: var(--font-head);
  font-size: 1rem;
  line-height: 1.25;
}
.payment-contact-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
}
.payment-contact-item {
  min-width: 0;
  padding: .72rem .85rem;
  border: 1px solid rgba(0,51,102,.08);
  border-radius: calc(var(--radius) - 2px);
  background: rgba(255,255,255,.92);
}
.payment-contact-item span {
  display: block;
  color: var(--text-muted);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1.2;
  text-transform: uppercase;
}
.payment-contact-item strong {
  display: block;
  margin: .18rem 0 .08rem;
  color: var(--navy);
  font-family: var(--font-head);
  font-size: 1.08rem;
  line-height: 1.1;
}
.payment-contact-item small {
  display: block;
  color: var(--text-muted);
  font-size: .76rem;
  line-height: 1.25;
}
.payment-panel-actions {
  display: flex;
  flex-direction: column;
  gap: .45rem;
  min-width: 132px;
}
.payment-panel-actions .btn {
  justify-content: center;
  padding: .56rem .8rem;
  font-size: .78rem;
  white-space: nowrap;
}
/* ============================================================
   PÁGINA INSCRIPCIÓN
   ============================================================ */
.page-header--inscripcion {
  padding: 3rem 0 2.5rem;
}
.inscripcion-back {
  display: inline-block;
  margin-bottom: 1rem;
  font-size: .82rem;
  font-weight: 600;
  color: var(--cyan);
  text-decoration: none;
  letter-spacing: .03em;
}
.inscripcion-back:hover { text-decoration: underline; }
.inscripcion-layout {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 3rem;
  align-items: start;
}
.inscripcion-aside { position: sticky; top: 5rem; }
.inscripcion-summary {
  background: var(--white);
  border-radius: var(--radius);
  padding: 1.75rem;
  box-shadow: var(--shadow);
  border-top: 4px solid var(--gold);
}
.inscripcion-summary h2 {
  font-family: var(--font-head);
  font-size: 1.05rem;
  color: var(--navy);
  margin: .35rem 0 1.25rem;
  line-height: 1.3;
}
.inscripcion-details {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
  display: grid;
  gap: .55rem;
  font-size: .88rem;
  color: var(--text-muted);
  border-bottom: 1px solid rgba(0,51,102,.08);
  padding-bottom: 1.25rem;
}
.inscripcion-details strong { color: var(--navy); }
.inscripcion-selected-cat {
  margin-bottom: 1.25rem;
  padding: 1rem;
  background: rgba(201,168,76,.08);
  border-radius: var(--radius);
  border: 1px solid rgba(201,168,76,.3);
}
.inscripcion-cat-name {
  font-weight: 700;
  color: var(--navy);
  font-size: 1rem;
  margin: .3rem 0 .2rem;
}
.inscripcion-cat-price {
  font-family: var(--font-head);
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--navy);
}
.inscripcion-cat-price strong { font-size: 2rem; }
.inscripcion-yape-box {
  padding: 1rem;
  background: rgba(0,174,239,.07);
  border-radius: var(--radius);
  border: 1px solid rgba(0,174,239,.2);
}
.inscripcion-yape-num {
  font-family: var(--font-head);
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--navy);
  margin: .3rem 0 .1rem;
  letter-spacing: .03em;
}
.inscripcion-yape-name {
  font-size: .85rem;
  color: var(--text-muted);
}
.inscripcion-form-col {
  background: var(--white);
  border-radius: var(--radius);
  padding: clamp(1.5rem, 3vw, 2.25rem);
  box-shadow: var(--shadow);
}
@media (max-width: 860px) {
  .inscripcion-layout {
    grid-template-columns: 1fr;
  }
  .inscripcion-aside { position: static; }
}

/* ============================================================
   SPEAKER SLIDER
   ============================================================ */
.speaker-slider-wrap {
  position: relative;
  padding: 0 2.5rem;
}
.speaker-showcase.speaker-slider {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  gap: 1.25rem;
  padding: .5rem .25rem 1.5rem;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.speaker-showcase.speaker-slider::-webkit-scrollbar { display: none; }
.speaker-showcase.speaker-slider .speaker-card {
  flex: 0 0 260px;
  scroll-snap-align: start;
}
.speaker-showcase.speaker-slider.speaker-showcase--national .speaker-card {
  flex: 0 0 240px;
}
.speaker-slider-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-60%);
  z-index: 2;
  background: var(--white);
  border: 2px solid var(--navy);
  color: var(--navy);
  border-radius: 50%;
  width: 40px;
  height: 40px;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow);
  transition: background var(--transition), color var(--transition);
  padding: 0;
}
.speaker-slider-btn:hover { background: var(--navy); color: var(--white); }
.speaker-slider-btn--prev { left: 0; }
.speaker-slider-btn--next { right: 0; }

/* ============================================================
   PRICING TABLE (estilo SOPEMI)
   ============================================================ */
.pricing-table {
  max-width: 760px;
  margin: 2rem auto 0;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
  border: 1px solid rgba(0,51,102,.1);
}
.pricing-table-head {
  display: grid;
  grid-template-columns: 1fr 130px 140px;
  gap: 1rem;
  align-items: center;
  background: var(--navy);
  color: var(--white);
  padding: .9rem 1.5rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.pricing-table-row {
  display: grid;
  grid-template-columns: 1fr 130px 140px;
  gap: 1rem;
  align-items: center;
  padding: 1.1rem 1.5rem;
  border-bottom: 1px solid rgba(0,51,102,.07);
  background: var(--white);
  transition: background var(--transition);
}
.pricing-table-row:last-child { border-bottom: none; }
.pricing-table-row:hover { background: rgba(0,174,239,.04); }
.pricing-table-row--featured { background: rgba(201,168,76,.06); }
.pricing-table-row--featured:hover { background: rgba(201,168,76,.1); }
.pricing-table-cat {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-weight: 600;
  color: var(--navy);
  font-size: .95rem;
}
.pricing-badge {
  background: var(--gold);
  color: var(--white);
  font-size: .62rem;
  font-weight: 800;
  padding: .18rem .55rem;
  border-radius: 50px;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.pricing-table-price {
  font-family: var(--font-head);
  font-size: 1.2rem;
  color: var(--navy);
  white-space: nowrap;
}
.pricing-table-price strong { font-size: 1.5rem; }
.badge-preliminar {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  background: rgba(201,168,76,.15);
  color: #8a6800;
  border: 1px solid rgba(201,168,76,.5);
  border-radius: 50px;
  padding: .22rem .75rem;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.badge-preliminar::before {
  content: '⚠';
  font-size: .75rem;
}
.pricing-note {
  max-width: 760px;
  margin: 1rem auto 0;
  text-align: center;
  color: var(--text-muted);
  font-size: .88rem;
  line-height: 1.7;
}
.pricing-note a { color: var(--navy); font-weight: 600; }

/* Descuento grupal */
.grupo-banner {
  max-width: 760px;
  margin: 2rem auto 1.25rem;
  background: linear-gradient(135deg, rgba(0,51,102,.03), rgba(0,174,239,.06));
  border: 1px solid rgba(0,174,239,.22);
  border-radius: var(--radius);
  padding: 1rem 1.4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.grupo-discounts {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}
.grupo-item {
  display: flex;
  align-items: baseline;
  gap: .4rem;
}
.grupo-pct {
  font-family: var(--font-head);
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--navy);
  line-height: 1;
}
.grupo-item span {
  color: var(--text-muted);
  font-size: .84rem;
}
.grupo-divider {
  color: var(--text-muted);
  font-size: 1.2rem;
}

/* Paso 2 en inscripción */
.inscripcion-step {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  margin-bottom: 1.75rem;
}
.step-num {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--white);
  font-family: var(--font-head);
  font-size: 1.4rem;
  font-weight: 800;
}

.yape-hint {
  margin-bottom: .5rem;
  padding: .5rem .75rem;
  background: rgba(201,168,76,.1);
  border-left: 3px solid var(--gold);
  border-radius: 4px;
  font-size: .88rem;
  color: var(--navy);
  line-height: 1.4;
}
.yape-hint strong {
  font-size: 1rem;
  letter-spacing: .02em;
}
.course-form-wrap {
  margin-top: 1.6rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  max-width: 880px;
  background: var(--white);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

/* Sponsors */
.sponsor-heading {
  font-family: var(--font-head);
  color: var(--navy);
  font-size: 1rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin: 1.5rem 0 1.25rem;
}
.sponsor-heading--commercial { margin-top: 2.5rem; }
/* ============================================================
   CARRUSEL DE AUSPICIADORES
   ============================================================ */
.sponsor-carrusel-wrap {
  overflow: hidden;
  padding: 2rem 0 1.5rem;
  position: relative;
}
.sponsor-carrusel-wrap::before,
.sponsor-carrusel-wrap::after {
  content: '';
  position: absolute;
  top: 0;
  width: 140px;
  height: 100%;
  z-index: 2;
  pointer-events: none;
}
.sponsor-carrusel-wrap::before {
  left: 0;
  background: linear-gradient(to right, var(--white) 30%, transparent);
}
.sponsor-carrusel-wrap::after {
  right: 0;
  background: linear-gradient(to left, var(--white) 30%, transparent);
}
.sponsor-carrusel {
  display: flex;
  align-items: center;
  gap: 3.5rem;
  width: max-content;
  animation: scroll-sponsors 28s linear infinite;
}
.sponsor-carrusel:hover { animation-play-state: paused; }
.sponsor-carrusel-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-width: 130px;
}
.sponsor-carrusel-item img {
  max-height: 56px;
  max-width: 140px;
  width: auto;
  object-fit: contain;
  filter: grayscale(20%) opacity(.85);
  transition: filter .3s, transform .3s;
}
.sponsor-carrusel-item:hover img {
  filter: none;
  transform: scale(1.05);
}
.sponsor-carrusel-item span {
  font-size: .72rem;
  color: var(--text-muted);
  text-align: center;
  line-height: 1.3;
}
.sponsor-carrusel-mark {
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .5rem 1.1rem;
  border: 2px solid rgba(0,51,102,.14);
  border-radius: var(--radius);
  font-family: var(--font-head);
  font-weight: 800;
  font-size: .95rem;
  color: var(--navy);
  white-space: nowrap;
  transition: border-color .3s, color .3s;
}
.sponsor-carrusel-item:hover .sponsor-carrusel-mark {
  border-color: var(--cyan);
  color: var(--cyan);
}
@keyframes scroll-sponsors {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.sponsor-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
}
.sponsor-grid--academic { margin-bottom: 2rem; }
.sponsor-card {
  position: relative;
  overflow: hidden;
  min-height: 126px;
  background: linear-gradient(180deg, var(--white), #f9fbfd);
  border: 1px solid #dde3ee;
  border-radius: var(--radius-lg);
  padding: 1.1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  box-shadow: 0 8px 24px rgba(0,51,102,.06);
  transition: transform var(--transition-slow), box-shadow var(--transition-slow), border-color var(--transition);
}
.sponsor-card:hover {
  transform: translateY(-5px);
  border-color: rgba(0,174,239,.24);
  box-shadow: 0 16px 38px rgba(0,51,102,.12);
}
.sponsor-card--commercial { background: var(--white); }
.sponsor-logo {
  width: 100%;
  max-width: 145px;
  height: 62px;
  object-fit: contain;
}
.sponsor-logo--plastimedic {
  max-width: 168px;
  transform: scale(1.85);
}
.sponsor-logo--b-braun { max-width: 150px; }
.sponsor-logo--sopemi { max-width: 160px; }
.sponsor-card span {
  color: var(--text-muted);
  font-size: .76rem;
  line-height: 1.3;
  text-align: center;
}
.sponsor-mark {
  min-width: 88px;
  min-height: 52px;
  padding: .55rem .85rem;
  border-radius: var(--radius);
  display: grid;
  place-items: center;
  background: rgba(0,51,102,.08);
  color: var(--navy);
  font-family: var(--font-head);
  font-weight: 800;
  text-align: center;
}
.sponsor-mark--text {
  background: rgba(201,168,76,.12);
  color: var(--navy);
  font-size: .9rem;
}

/* ============================================================
   DEJA TU HISTORIA
   ============================================================ */
.historia-form-wrap { max-width: 680px; margin: 0 auto; }
.form-group { margin-bottom: 1.5rem; }
.form-label { display: block; font-weight: 600; color: var(--navy); margin-bottom: .5rem; font-size: .9rem; }
.form-control {
  width: 100%; padding: .875rem 1.1rem; border: 2px solid #dde3ee;
  border-radius: var(--radius); font-family: var(--font-body); font-size: .95rem;
  color: var(--text); background: var(--white);
  transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}
.form-control:focus {
  outline: none;
  border-color: var(--cyan);
  box-shadow: 0 0 0 4px rgba(0,174,239,.10);
  transform: translateY(-1px);
}
textarea.form-control { min-height: 160px; resize: vertical; }
.form-select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23003366'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .875rem center; background-size: 20px; }
.form-errors { background: #fee; border: 1px solid #fcc; border-radius: var(--radius); padding: 1rem 1.25rem; margin-bottom: 1.5rem; }
.form-errors li { color: #c00; font-size: .88rem; margin-left: 1rem; }
.form-success { background: #efffef; border: 1px solid #9de; border-radius: var(--radius); padding: 1.25rem; text-align: center; color: #2a6a2a; font-weight: 600; }

/* Muro de historias */
.historias-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px,1fr)); gap: 1.5rem; }
.historias-grid--featured { grid-template-columns: repeat(auto-fill, minmax(320px,1fr)); }
.historia-card {
  position: relative;
  overflow: hidden;
  background: var(--white); border-radius: var(--radius-lg); padding: 1.75rem;
  box-shadow: var(--shadow); border-left: 4px solid var(--gold);
  transition: transform var(--transition-slow), box-shadow var(--transition-slow), border-color var(--transition);
}
.historia-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.historia-card--paciente { border-left-color: var(--cyan); }
.historia-rol-badge {
  display: inline-block; padding: .25rem .75rem; border-radius: 50px;
  font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
  background: rgba(201,168,76,.12); color: var(--gold); margin-bottom: .75rem;
}
.historia-rol-badge--paciente { background: rgba(0,174,239,.12); color: var(--cyan); }
.historia-texto { font-size: .92rem; color: var(--text); line-height: 1.7; margin-bottom: 1rem; }
.historia-autor { font-family: var(--font-head); font-weight: 700; color: var(--navy); font-size: .88rem; }
.historia-fecha { font-size: .76rem; color: var(--text-muted); margin-top: .2rem; }
.historias-empty {
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: clamp(2rem, 5vw, 4rem);
  text-align: center;
  box-shadow: var(--shadow);
  border: 1px solid rgba(0,51,102,.08);
}
.historias-empty--compact {
  padding: 2rem;
  text-align: left;
}
.historias-empty h2,
.historias-empty h3 {
  font-family: var(--font-head);
  color: var(--navy);
  margin-bottom: .75rem;
}
.historias-empty p {
  color: var(--text-muted);
  line-height: 1.7;
  max-width: 620px;
  margin: 0 auto 1.5rem;
}
.historias-empty--compact p { margin-inline: 0; }

/* ============================================================
   ADMIN
   ============================================================ */
.admin-page {
  min-height: 100vh;
  background: var(--bg-light);
  padding: 2rem 0;
}
.admin-curso-page { padding: 1.5rem 0 3rem; }
/* ============================================================
   ADMIN CURSO
   ============================================================ */
.container-wide { max-width: 1200px; margin: 0 auto; padding: 0 clamp(1rem,3vw,2rem); }
.admin-curso-page { padding: 2.5rem 0 4rem; }
.curso-admin-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 2rem;
}
.curso-admin-head h1 { font-family: var(--font-head); color: var(--navy); font-size: 1.4rem; margin: .25rem 0 0; }
/* Transmisión en vivo */
.live-banner {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 1.5rem;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #0a1a2e, #003366);
  border: 1px solid rgba(201,168,76,.4);
  animation: live-pulse 2.5s ease-in-out infinite;
}
@keyframes live-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(201,168,76,.25); }
  50%       { box-shadow: 0 0 0 8px rgba(201,168,76,.0); }
}
.live-banner__dot {
  width: 12px; height: 12px; flex-shrink: 0;
  border-radius: 50%;
  background: #ef4444;
  box-shadow: 0 0 0 0 rgba(239,68,68,.6);
  animation: live-dot 1.4s ease-in-out infinite;
}
@keyframes live-dot {
  0%   { box-shadow: 0 0 0 0 rgba(239,68,68,.6); }
  70%  { box-shadow: 0 0 0 8px rgba(239,68,68,.0); }
  100% { box-shadow: 0 0 0 0 rgba(239,68,68,.0); }
}
.live-banner__body { flex: 1; }
.live-banner__body strong { display: block; color: #ef4444; font-size: .72rem; font-weight: 800; letter-spacing: .1em; }
.live-banner__body span   { color: var(--white); font-size: .95rem; font-weight: 600; }
.live-link-row {
  display: grid;
  grid-template-columns: 2fr 1fr auto;
  gap: .75rem;
  align-items: end;
}
@media (max-width: 680px) {
  .live-link-row { grid-template-columns: 1fr; }
  .live-banner { flex-wrap: wrap; }
}
.reporte-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
  margin-top: 1.25rem;
}
.reporte-card {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.35rem;
  border-radius: var(--radius);
  border: 2px solid rgba(0,51,102,.12);
  background: var(--white);
  text-decoration: none;
  transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition-slow);
}
.reporte-card:hover {
  border-color: var(--navy);
  box-shadow: var(--shadow-lg);
  transform: translateY(-3px);
}
.reporte-card--gold { border-color: rgba(201,168,76,.4); background: rgba(201,168,76,.04); }
.reporte-card--gold:hover { border-color: var(--gold); }
.reporte-card__icon { font-size: 2rem; flex-shrink: 0; }
.reporte-card strong { display: block; color: var(--navy); font-family: var(--font-head); font-size: .95rem; margin-bottom: .35rem; }
.reporte-card p { color: var(--text-muted); font-size: .84rem; line-height: 1.55; margin-bottom: .5rem; }
.reporte-card span { font-size: .78rem; font-weight: 700; color: var(--navy); background: rgba(0,51,102,.07); border-radius: 50px; padding: .18rem .7rem; }
.export-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  background: linear-gradient(135deg, #001a33, #003366);
  border-radius: var(--radius);
  padding: 1.1rem 1.5rem;
  margin-bottom: 1.5rem;
}
.export-bar strong {
  display: block;
  color: var(--white);
  font-family: var(--font-head);
  font-size: .95rem;
}
.export-bar span {
  color: rgba(255,255,255,.6);
  font-size: .78rem;
}
.curso-section-tabs {
  display: flex;
  gap: .4rem;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
}
.curso-section-tab {
  padding: .6rem 1.25rem;
  border-radius: var(--radius);
  border: 1px solid rgba(0,51,102,.15);
  background: var(--white);
  color: var(--text-muted);
  font-size: .88rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--transition);
}
.curso-section-tab:hover { color: var(--navy); border-color: var(--navy); }
.curso-section-tab.active { background: var(--navy); color: var(--white); border-color: var(--navy); }
.curso-section-panel--hidden { display: none; }
.curso-stats-bar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 1rem;
  margin-bottom: 1.75rem;
}
.curso-stat-box {
  background: var(--white);
  border-radius: var(--radius);
  padding: 1.1rem 1.25rem;
  box-shadow: var(--shadow);
  border-left: 4px solid rgba(0,51,102,.15);
}
.curso-stat-box--pending  { border-left-color: #f59e0b; }
.curso-stat-box--confirmed { border-left-color: #10b981; }
.curso-stat-box--observed  { border-left-color: #ef4444; }
.curso-stat-box--money    { border-left-color: var(--gold); }
.stat-num { display: block; font-family: var(--font-head); font-size: 1.6rem; font-weight: 800; color: var(--navy); line-height: 1; }
.stat-lbl { display: block; font-size: .75rem; color: var(--text-muted); margin-top: .3rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.curso-filter-tabs {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
  border-bottom: 2px solid rgba(0,51,102,.08);
  padding-bottom: .75rem;
}
.curso-filter-tab {
  padding: .45rem 1.1rem;
  border-radius: 50px;
  font-size: .82rem;
  font-weight: 600;
  color: var(--text-muted);
  text-decoration: none;
  border: 1px solid transparent;
  transition: all var(--transition);
}
.curso-filter-tab:hover { color: var(--navy); border-color: rgba(0,51,102,.2); }
.curso-filter-tab.active { background: var(--navy); color: var(--white); border-color: var(--navy); }
.inscripcion-table { display: grid; gap: 1rem; }
.inscripcion-row {
  background: var(--white);
  border-radius: var(--radius);
  padding: 1.4rem 1.6rem;
  box-shadow: var(--shadow);
  border: 1px solid rgba(0,51,102,.07);
}
.inscripcion-row__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: .75rem;
}
.inscripcion-row__head h3 {
  font-family: var(--font-head);
  color: var(--navy);
  font-size: 1rem;
  margin: .25rem 0 .2rem;
}
.inscripcion-row__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem 1.5rem;
  font-size: .84rem;
  color: var(--text-muted);
  margin-bottom: .5rem;
}
.inscripcion-row__meta strong { color: var(--navy); }
.inscripcion-badge {
  display: inline-block;
  padding: .2rem .7rem;
  border-radius: 50px;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-bottom: .3rem;
}
.badge--pending  { background: #fef3c7; color: #92400e; }
.badge--confirmed { background: #d1fae5; color: #065f46; }
.badge--observed  { background: #fee2e2; color: #991b1b; }
.inscripcion-obs {
  font-size: .84rem;
  color: #92400e;
  background: #fef3c7;
  border-radius: 4px;
  padding: .4rem .75rem;
  margin: .4rem 0 0;
}
.voucher-link {
  font-size: .84rem;
  font-weight: 600;
  color: var(--navy);
  text-decoration: none;
}
.voucher-link:hover { text-decoration: underline; }

.admin-login,
.admin-panel {
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 2rem;
  box-shadow: var(--shadow);
  border: 1px solid rgba(0,51,102,.08);
  transition: transform var(--transition-slow), box-shadow var(--transition-slow);
}
.admin-panel:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.admin-login {
  max-width: 420px;
  margin: 6rem auto;
}
.admin-login h1,
.admin-head h1,
.admin-panel h2,
.admin-panel h3 {
  font-family: var(--font-head);
  color: var(--navy);
}
.admin-login p,
.admin-muted {
  color: var(--text-muted);
  margin: .5rem 0 1.5rem;
}
.admin-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
}
.admin-head .btn--outline,
.admin-danger {
  color: var(--navy);
  border-color: rgba(0,51,102,.25);
}
.admin-panel { margin-bottom: 1.5rem; }
.admin-video-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.3fr) repeat(3, minmax(140px, 1fr));
  gap: .75rem;
  margin-bottom: .75rem;
}
.exam-config-bar {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1.5rem;
  flex-wrap: wrap;
  padding-bottom: 1.25rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid rgba(0,51,102,.08);
}
.exam-config-bar h2 { font-family: var(--font-head); color: var(--navy); margin: 0; }
.exam-config-bar__controls {
  display: flex;
  align-items: flex-end;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.exam-percent-wrap { display: flex; flex-direction: column; }
/* Tarjetas de acción en aula */
.lms-action-card {
  background: var(--white);
  border-radius: var(--radius);
  padding: 1.35rem;
  border: 1px solid rgba(0,51,102,.1);
  box-shadow: var(--shadow);
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  opacity: .75;
}
.lms-action-card--active { opacity: 1; border-color: rgba(201,168,76,.35); }
.lms-action-card__icon { font-size: 1.8rem; flex-shrink: 0; }
.lms-action-card__body h3 { font-family: var(--font-head); color: var(--navy); font-size: .98rem; margin-bottom: .4rem; }
.lms-action-card__body p  { color: var(--text-muted); font-size: .86rem; line-height: 1.5; }

/* Página de examen */
.exam-page-header {
  margin-bottom: 1.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid rgba(0,51,102,.08);
}
.exam-page-header h1 { font-family: var(--font-head); color: var(--navy); font-size: 1.5rem; margin-bottom: .3rem; }
.exam-page-header p  { color: var(--text-muted); font-size: .9rem; }
.exam-submit-bar {
  margin-top: 2rem;
  padding: 1.25rem 1.5rem;
  background: rgba(0,51,102,.04);
  border-radius: var(--radius);
  border: 1px solid rgba(0,51,102,.1);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.exam-submit-bar p { color: var(--text-muted); font-size: .88rem; }

/* Resultado del examen */
.exam-result-page {
  background: var(--white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}
.exam-result-page__header {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 2rem;
}
.exam-result-page__header--ok   { background: linear-gradient(135deg, #065f46, #059669); color: white; }
.exam-result-page__header--fail { background: linear-gradient(135deg, #7f1d1d, #b91c1c); color: white; }
.exam-result-page__icon { font-size: 3rem; flex-shrink: 0; }
.exam-result-page__header h1 { font-family: var(--font-head); font-size: 1.5rem; margin-bottom: .25rem; }
.exam-result-page__header p  { opacity: .85; font-size: .9rem; }
.exam-result-page__body { padding: 2rem; }
.exam-score-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 1rem;
}
.exam-score-box {
  text-align: center;
  padding: 1rem;
  border-radius: var(--radius);
  background: rgba(0,51,102,.04);
  border: 1px solid rgba(0,51,102,.08);
}
.exam-score-box span { display: block; font-family: var(--font-head); font-size: 1.8rem; font-weight: 800; color: var(--navy); }
.exam-score-box p    { color: var(--text-muted); font-size: .78rem; margin-top: .25rem; }

/* Examen en aula virtual */
.exam-questions { display: grid; gap: 1.25rem; }
.exam-q-card {
  background: #f8fafc;
  border: 1px solid rgba(0,51,102,.09);
  border-radius: var(--radius);
  padding: 1.25rem;
}
.exam-q-text {
  color: var(--navy);
  font-size: .98rem;
  line-height: 1.55;
  margin-bottom: 1rem;
}
.exam-q-options { display: grid; gap: .5rem; }
.exam-q-option {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .6rem .85rem;
  border-radius: var(--radius);
  border: 1px solid rgba(0,51,102,.1);
  background: var(--white);
  cursor: pointer;
  transition: border-color var(--transition), background var(--transition);
}
.exam-q-option:hover { border-color: var(--cyan); background: rgba(0,174,239,.04); }
.exam-q-option input[type="radio"] { accent-color: var(--navy); width: 16px; height: 16px; flex-shrink: 0; }
.exam-q-letter {
  display: grid; place-items: center;
  width: 26px; height: 26px; flex-shrink: 0;
  border-radius: 50%;
  background: rgba(0,51,102,.08);
  color: var(--navy);
  font-family: var(--font-head); font-weight: 800; font-size: .8rem;
}
.exam-q-option span:last-child { color: var(--navy); font-size: .9rem; line-height: 1.4; }
.exam-result {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  padding: 1.5rem;
  border-radius: var(--radius);
  border: 2px solid;
}
.exam-result--aprobado  { background: rgba(16,185,129,.06); border-color: rgba(16,185,129,.3); }
.exam-result--desaprobado { background: rgba(239,68,68,.05); border-color: rgba(239,68,68,.2); }
.exam-result__icon { font-size: 2.5rem; flex-shrink: 0; }
.exam-result h3 { font-family: var(--font-head); color: var(--navy); margin-bottom: .35rem; font-size: 1.2rem; }
.exam-result p  { color: var(--text-muted); font-size: .9rem; line-height: 1.6; }
.exam-add-wrap {
  margin-top: 1rem;
  padding: 1rem;
  border: 2px dashed rgba(0,51,102,.2);
  border-radius: var(--radius);
  text-align: center;
  background: rgba(0,51,102,.02);
}
.exam-add-btn {
  font-size: 1rem !important;
  padding: .75rem 2rem !important;
  letter-spacing: .03em;
}
.exam-actions { display: flex; gap: .75rem; margin-top: 1.25rem; flex-wrap: wrap; }
.exam-textarea { width: 100%; font-size: .95rem; line-height: 1.55; resize: vertical; }
.exam-option-label {
  display: grid;
  grid-template-columns: 28px 1fr;
  align-items: center;
  gap: .5rem;
}
.exam-option-letter {
  display: grid; place-items: center;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: rgba(0,51,102,.08);
  color: var(--navy);
  font-family: var(--font-head); font-weight: 800; font-size: .85rem;
  flex-shrink: 0;
}
.exam-option-letter--correct { background: var(--gold); color: var(--white); }
.exam-q-num { color: var(--navy); font-family: var(--font-head); font-size: .9rem; }
.exam-remove-btn { padding: .25rem .6rem !important; }
.admin-exam-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
  margin-bottom: 1.25rem;
}
.admin-switch {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: var(--navy);
  font-size: .86rem;
  font-weight: 800;
  white-space: nowrap;
  cursor: pointer;
}
.admin-switch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.admin-switch span {
  position: relative;
  width: 42px;
  height: 24px;
  border-radius: 999px;
  background: rgba(0,51,102,.16);
  transition: background var(--transition);
}
.admin-switch span::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 4px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--white);
  box-shadow: 0 2px 8px rgba(0,0,0,.18);
  transition: transform var(--transition);
}
.admin-switch input:checked + span {
  background: var(--gold);
}
.admin-switch input:checked + span::after {
  transform: translateX(18px);
}
.admin-exam-settings {
  display: grid;
  grid-template-columns: minmax(180px, 260px) minmax(180px, 1fr);
  gap: 1rem;
  align-items: end;
  margin-bottom: 1.25rem;
}
.admin-percent-input {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  max-width: 180px;
}
.admin-percent-input .form-control {
  border-radius: var(--radius) 0 0 var(--radius);
}
.admin-percent-input span {
  display: grid;
  place-items: center;
  min-height: 44px;
  padding: 0 .9rem;
  border: 1px solid #dde3ee;
  border-left: 0;
  border-radius: 0 var(--radius) var(--radius) 0;
  background: #f8fafc;
  color: var(--navy);
  font-weight: 900;
}
.admin-exam-summary {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  min-height: 44px;
  padding: .7rem 1rem;
  border-radius: var(--radius);
  background: rgba(0,174,239,.08);
  color: var(--text-muted);
}
.admin-exam-summary strong {
  color: var(--navy);
  font-family: var(--font-head);
  font-size: 1.4rem;
  line-height: 1;
}
.admin-exam-list {
  display: grid;
  gap: 1rem;
}
.admin-exam-question {
  padding: 1rem;
  border: 1px solid rgba(0,51,102,.1);
  border-radius: var(--radius);
  background: #fbfcfe;
}
.admin-exam-question__top {
  display: grid;
  grid-template-columns: 1fr minmax(170px, 210px);
  gap: .9rem;
  align-items: end;
  margin-bottom: .75rem;
}
.admin-exam-question__top > span {
  color: var(--navy);
  font-family: var(--font-head);
  font-weight: 900;
}
.admin-exam-question__top label {
  display: grid;
  gap: .25rem;
  color: var(--text-muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.admin-exam-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: .75rem;
  margin-top: .75rem;
}
.admin-exam-options label {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: .5rem;
  align-items: center;
}
.admin-exam-options label > span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(201,168,76,.14);
  color: var(--navy);
  font-family: var(--font-head);
  font-weight: 900;
}
.admin-historias {
  display: grid;
  gap: 1rem;
}
.admin-historia {
  border: 1px solid rgba(0,51,102,.10);
  border-radius: var(--radius);
  padding: 1.25rem;
  background: var(--bg-light);
}
.admin-historia p {
  color: var(--text);
  line-height: 1.7;
  margin: .75rem 0;
}
.admin-historia small {
  display: block;
  color: var(--text-muted);
  margin-top: .25rem;
}
.admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1rem;
}
.admin-inscripcion__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}
.admin-observe-form {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto;
  gap: .6rem;
  align-items: center;
}

/* ============================================================
   AULA — GATE (pantalla de login full-page)
   ============================================================ */
.aula-gate {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100vh;
}
.aula-gate__brand {
  background: linear-gradient(160deg, #001a33 0%, #003366 60%, #00508a 100%);
  padding: 3rem clamp(2rem, 5vw, 4rem);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
}
.aula-gate__brand::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 20% 80%, rgba(201,168,76,.18), transparent 55%),
              radial-gradient(ellipse at 80% 10%, rgba(0,174,239,.12), transparent 45%);
}
.aula-gate__brand-inner { position: relative; z-index: 1; }
.aula-gate__logo { max-width: 160px; height: auto; margin-bottom: 2.5rem; filter: drop-shadow(0 2px 8px rgba(0,0,0,.35)); }
.aula-gate__label {
  display: inline-block;
  background: rgba(201,168,76,.2);
  border: 1px solid rgba(201,168,76,.5);
  color: var(--gold);
  border-radius: 50px;
  padding: .28rem 1rem;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 1.1rem;
}
.aula-gate__title {
  font-family: var(--font-head);
  font-size: clamp(2rem, 4vw, 2.8rem);
  color: var(--white);
  line-height: 1.1;
  margin-bottom: .85rem;
}
.aula-gate__sub { color: rgba(255,255,255,.65); font-size: .95rem; line-height: 1.6; margin-bottom: 1.5rem; }
.aula-gate__chips { display: flex; gap: .6rem; flex-wrap: wrap; }
.aula-gate__chips span {
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.82);
  border-radius: 50px;
  padding: .28rem .85rem;
  font-size: .78rem;
  font-weight: 600;
}
.aula-gate__disclaimer { position: relative; z-index: 1; color: rgba(255,255,255,.4); font-size: .78rem; }
.aula-gate__panel {
  background: #f5f7fb;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3rem clamp(1.5rem, 5vw, 4rem);
}
.aula-gate__forms { width: 100%; max-width: 420px; }
.aula-gate__card {
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: clamp(1.5rem, 4vw, 2.25rem);
  box-shadow: 0 8px 40px rgba(0,51,102,.1);
  border: 1px solid rgba(0,51,102,.07);
  margin-bottom: 1.25rem;
}
.aula-gate__card h2 { font-family: var(--font-head); color: var(--navy); margin-bottom: .4rem; }
.aula-gate__card p  { color: var(--text-muted); font-size: .88rem; margin-bottom: 1.25rem; line-height: 1.6; }
.aula-gate__recover {
  background: var(--white);
  border-radius: var(--radius);
  padding: 1.1rem 1.25rem;
  border: 1px solid rgba(0,51,102,.08);
}
.aula-gate__recover > p { color: var(--text-muted); font-size: .85rem; margin-bottom: .65rem; font-weight: 600; }
.aula-gate__recover-form { display: grid; grid-template-columns: 1fr auto; gap: .5rem; align-items: center; }

/* ============================================================
   AULA — LMS LAYOUT (dashboard)
   ============================================================ */
.lms-layout {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: #f0f2f7;
}
.lms-topbar {
  position: sticky;
  top: 0;
  z-index: 100;
  height: 58px;
  background: var(--navy);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1.5rem;
  box-shadow: 0 2px 12px rgba(0,0,0,.2);
}
.lms-topbar__left  { display: flex; align-items: center; gap: .75rem; }
.lms-topbar__icon  { width: 36px; height: 36px; object-fit: contain; border-radius: 50%; }
.lms-topbar__name  { color: var(--white); font-weight: 700; font-size: .95rem; }
.lms-topbar__sep   { color: rgba(255,255,255,.4); margin: 0 .2rem; }
.lms-topbar__right { display: flex; align-items: center; gap: 1rem; }
.lms-topbar__user  { color: rgba(255,255,255,.75); font-size: .85rem; }
.lms-logout { border-color: rgba(255,255,255,.35) !important; color: rgba(255,255,255,.85) !important; }
.lms-logout:hover { background: rgba(255,255,255,.1) !important; }
.lms-body {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  flex: 1;
  min-height: 0;
}
.lms-sidebar {
  background: var(--white);
  border-right: 1px solid rgba(0,51,102,.1);
  padding: 1.5rem 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: sticky;
  top: 58px;
  height: calc(100vh - 58px);
  overflow-y: auto;
}
.lms-sidebar__student {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: 0 1.25rem 1.25rem;
  border-bottom: 1px solid rgba(0,51,102,.07);
  margin-bottom: .75rem;
}
.lms-sidebar__avatar {
  flex-shrink: 0;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--navy), var(--cyan));
  color: var(--white);
  display: grid; place-items: center;
  font-family: var(--font-head); font-weight: 800; font-size: 1.1rem;
}
.lms-sidebar__student strong { display: block; color: var(--navy); font-size: .9rem; line-height: 1.3; }
.lms-sidebar__student span   { font-size: .75rem; color: var(--text-muted); }
.lms-sidebar__code {
  margin: 0 1rem .75rem;
  padding: .7rem .85rem;
  background: rgba(0,174,239,.07);
  border: 1px solid rgba(0,174,239,.2);
  border-radius: var(--radius);
}
.lms-sidebar__code p { font-size: .68rem; color: var(--text-muted); font-weight: 700; text-transform: uppercase; letter-spacing: .07em; margin-bottom: .2rem; }
.lms-sidebar__code code { color: var(--navy); font-weight: 800; font-size: .88rem; letter-spacing: .06em; }
.lms-nav { padding: 0 .75rem; }
.lms-nav-link {
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: .75rem .85rem;
  border-radius: var(--radius);
  font-size: .9rem;
  font-weight: 600;
  color: var(--text-muted);
  text-decoration: none;
  margin-bottom: .2rem;
  transition: background var(--transition), color var(--transition);
  cursor: pointer;
}
.lms-nav-link:hover { background: rgba(0,51,102,.05); color: var(--navy); }
.lms-nav-link--active { background: rgba(0,51,102,.08); color: var(--navy); }
.lms-nav-link--locked { opacity: .6; cursor: not-allowed; }
.lms-nav-icon { font-size: .9rem; flex-shrink: 0; }
.lms-nav-badge {
  margin-left: auto;
  background: var(--cyan);
  color: var(--white);
  border-radius: 50px;
  padding: .12rem .5rem;
  font-size: .68rem;
  font-weight: 800;
}
.lms-nav-tag {
  margin-left: auto;
  background: rgba(0,51,102,.08);
  color: var(--text-muted);
  border-radius: 50px;
  padding: .12rem .5rem;
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.lms-sidebar__info {
  margin-top: auto;
  padding: 1.25rem 1.25rem 0;
  border-top: 1px solid rgba(0,51,102,.07);
  display: grid; gap: .55rem;
}
.lms-sidebar__info div { display: flex; justify-content: space-between; font-size: .82rem; }
.lms-sidebar__info span { color: var(--text-muted); }
.lms-sidebar__info strong { color: var(--navy); }
.lms-main {
  padding: clamp(1.25rem, 3vw, 2rem);
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
/* Hero */
.lms-hero {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, #001a33, #003d7a);
  color: var(--white);
  box-shadow: var(--shadow-lg);
}
.lms-hero__label { color: var(--gold); font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; margin-bottom: .5rem; }
.lms-hero__title { font-family: var(--font-head); font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.15; margin-bottom: .5rem; }
.lms-hero__sub   { color: rgba(255,255,255,.65); font-size: .88rem; }
.lms-progress-ring { position: relative; width: 90px; height: 90px; flex-shrink: 0; }
.lms-progress-ring svg { width: 90px; height: 90px; }
.lms-progress-ring__text { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.lms-progress-ring__text strong { color: var(--gold); font-family: var(--font-head); font-size: 1.5rem; font-weight: 800; line-height: 1; }
.lms-progress-ring__text span   { color: rgba(255,255,255,.6); font-size: .65rem; font-weight: 700; text-transform: uppercase; }
/* Etapas */
.lms-stages {
  display: flex;
  align-items: center;
  gap: .75rem;
  background: var(--white);
  border-radius: var(--radius);
  padding: 1.1rem 1.5rem;
  box-shadow: var(--shadow);
  border: 1px solid rgba(0,51,102,.07);
  flex-wrap: wrap;
}
.lms-stage { display: flex; align-items: center; gap: .75rem; }
.lms-stage__num {
  width: 32px; height: 32px; flex-shrink: 0;
  border-radius: 50%;
  background: rgba(0,51,102,.08);
  color: var(--navy);
  font-family: var(--font-head); font-weight: 800;
  display: grid; place-items: center; font-size: .9rem;
}
.lms-stage--active .lms-stage__num { background: var(--gold); color: var(--white); }
.lms-stage h3 { font-family: var(--font-head); color: var(--navy); font-size: .9rem; margin-bottom: .1rem; }
.lms-stage p  { color: var(--text-muted); font-size: .78rem; }
.lms-stage-arrow { color: var(--text-muted); font-size: 1.1rem; flex-shrink: 0; }
/* Sección de contenido */
.lms-section {
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: clamp(1.25rem, 3vw, 1.75rem);
  box-shadow: var(--shadow);
  border: 1px solid rgba(0,51,102,.07);
}
.lms-section__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.25rem;
  gap: 1rem;
}
.lms-section__head h2 { font-family: var(--font-head); color: var(--navy); font-size: 1.15rem; }
.lms-section__head span { color: var(--text-muted); font-size: .82rem; font-weight: 600; }
/* Grid de videos */
.lms-video-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 1.1rem;
}
.lms-video-card {
  overflow: hidden;
  border-radius: var(--radius);
  border: 1px solid rgba(0,51,102,.08);
  background: #f8fafc;
  transition: box-shadow var(--transition), transform var(--transition-slow);
}
.lms-video-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.lms-video-card .embed-wrap { border-radius: 0; }
.lms-video-meta { padding: .85rem 1rem; }
.lms-video-tag {
  color: var(--cyan);
  font-size: .68rem; font-weight: 900;
  letter-spacing: .08em; text-transform: uppercase;
}
.lms-video-meta h3 { font-family: var(--font-head); color: var(--navy); font-size: .95rem; margin-top: .3rem; }
/* Empty state */
.lms-empty {
  text-align: center;
  padding: 3rem 1rem;
  border: 1px dashed rgba(0,174,239,.35);
  border-radius: var(--radius);
  background: rgba(0,174,239,.03);
}
.lms-empty__icon {
  display: inline-grid; place-items: center;
  width: 52px; height: 52px;
  border-radius: 50%;
  background: rgba(0,51,102,.07);
  color: var(--navy);
  font-size: 1.4rem;
  margin-bottom: .85rem;
}
.lms-empty h3 { font-family: var(--font-head); color: var(--navy); margin-bottom: .45rem; }
.lms-empty p  { color: var(--text-muted); font-size: .88rem; line-height: 1.65; max-width: 480px; margin: 0 auto; }
/* Bloqueados */
.lms-locked-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; }
.lms-locked-card {
  background: var(--white);
  border-radius: var(--radius);
  padding: 1.35rem;
  border: 1px solid rgba(0,51,102,.07);
  box-shadow: var(--shadow);
  opacity: .75;
}
.lms-locked-card__icon { font-size: 1.6rem; margin-bottom: .65rem; }
.lms-locked-card h3 { font-family: var(--font-head); color: var(--navy); font-size: .98rem; margin-bottom: .4rem; }
.lms-locked-card p  { color: var(--text-muted); font-size: .84rem; line-height: 1.6; margin-bottom: .85rem; }
.lms-locked-badge {
  display: inline-block;
  background: rgba(0,51,102,.07);
  color: var(--text-muted);
  border-radius: 50px;
  padding: .22rem .75rem;
  font-size: .7rem; font-weight: 800;
  letter-spacing: .06em; text-transform: uppercase;
}
/* Responsive aula */
@media (max-width: 860px) {
  .aula-gate { grid-template-columns: 1fr; }
  .aula-gate__brand { min-height: 260px; padding: 2rem; }
  .aula-gate__title { font-size: 1.8rem; }
  .lms-body { grid-template-columns: 1fr; }
  .lms-sidebar { position: static; height: auto; flex-direction: row; flex-wrap: wrap; padding: 1rem; gap: .75rem; }
  .lms-sidebar__student { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }
  .lms-nav { display: flex; flex-direction: row; padding: 0; width: 100%; gap: .35rem; }
  .lms-sidebar__info { margin-top: 0; padding-top: 0; border-top: none; flex-direction: row; flex-wrap: wrap; gap: .75rem; }
  .lms-hero { flex-direction: column; }
  .lms-progress-ring { display: none; }
  .lms-stages { gap: .4rem; }
  .lms-stage-arrow { display: none; }
}
/* Mantener estas clases para el admin */
.aula-welcome {
  display: flex; justify-content: space-between; gap: 1rem; align-items: center;
  background: var(--white); border-radius: var(--radius); padding: 2rem;
  box-shadow: var(--shadow); border-left: 4px solid var(--gold);
}
.aula-welcome h2 { font-family: var(--font-head); color: var(--navy); margin-bottom: .25rem; }
.aula-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.25rem; }
.aula-card {
  position: relative; overflow: hidden; background: var(--white);
  border-radius: var(--radius); padding: 1.5rem; box-shadow: var(--shadow);
  border: 1px solid rgba(0,51,102,.08);
  transition: transform var(--transition-slow), box-shadow var(--transition-slow);
}
.aula-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.aula-card span  { font-family: var(--font-head); color: var(--gold); font-size: 1.8rem; font-weight: 800; display: block; margin-bottom: .75rem; }
.aula-card h3    { font-family: var(--font-head); color: var(--navy); margin-bottom: .5rem; }
.aula-card p     { color: var(--text-muted); line-height: 1.65; font-size: .92rem; }
.admin-inscripcion h3 { font-family: var(--font-head); color: var(--navy); margin-top: .5rem; }
.admin-code {
  background: rgba(0,174,239,.12); border: 1px solid rgba(0,174,239,.28);
  color: var(--navy); border-radius: var(--radius); padding: .65rem .85rem;
  font-family: var(--font-head); font-weight: 800; white-space: nowrap;
}
.aula-access {
  display: grid;
  grid-template-columns: minmax(280px, .85fr) minmax(0, 1.35fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
}
.aula-access-intro {
  position: sticky;
  top: 5rem;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, rgba(0,51,102,.95), rgba(0,86,142,.9)),
    var(--navy);
  color: var(--white);
  box-shadow: var(--shadow-lg);
}
.aula-access-intro .section-label { color: var(--gold); }
.aula-access-intro h2 {
  margin: .35rem 0 .85rem;
  font-family: var(--font-head);
  font-size: clamp(1.7rem, 4vw, 2.45rem);
  line-height: 1.08;
}
.aula-access-intro p {
  color: rgba(255,255,255,.72);
  line-height: 1.75;
}
.aula-access-steps {
  display: grid;
  gap: .7rem;
  margin-top: 1.5rem;
}
.aula-access-steps span {
  display: flex;
  align-items: center;
  gap: .65rem;
  color: rgba(255,255,255,.86);
  font-size: .9rem;
  font-weight: 700;
}
.aula-access-steps span::before {
  content: "";
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 0 5px rgba(201,168,76,.16);
}
.aula-access-card {
  border: 1px solid rgba(0,51,102,.08);
  box-shadow: var(--shadow);
}
.aula-access-card h2 {
  color: var(--navy);
  font-family: var(--font-head);
  margin-bottom: .45rem;
}
.aula-access-card p {
  color: var(--text-muted);
  line-height: 1.65;
  margin-bottom: 1.2rem;
}
.aula-dashboard {
  display: grid;
  gap: 2rem;
}
.aula-shell {
  display: grid;
  grid-template-columns: 310px minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 2.5rem);
  align-items: start;
}
.aula-student-card {
  position: sticky;
  top: 5rem;
  overflow: hidden;
  padding: 1.45rem;
  border-radius: var(--radius-lg);
  background: var(--white);
  border: 1px solid rgba(0,51,102,.08);
  box-shadow: var(--shadow);
}
.aula-student-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg, var(--gold), var(--cyan));
}
.aula-student-card__mark {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  margin-bottom: 1rem;
  border-radius: 14px;
  background: rgba(0,51,102,.08);
  color: var(--navy);
  font-family: var(--font-head);
  font-weight: 900;
}
.aula-student-card h2 {
  color: var(--navy);
  font-family: var(--font-head);
  font-size: 1.35rem;
  line-height: 1.2;
  margin-bottom: 1.25rem;
}
.aula-student-card dl {
  display: grid;
  gap: .7rem;
  margin: 0 0 1.25rem;
}
.aula-student-card dl div {
  padding: .75rem .85rem;
  border-radius: var(--radius);
  background: rgba(0,51,102,.045);
}
.aula-student-card dt {
  color: var(--text-muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.aula-student-card dd {
  margin: .2rem 0 0;
  color: var(--navy);
  font-weight: 800;
  line-height: 1.25;
}
.aula-main {
  display: grid;
  gap: 1.25rem;
}
.aula-panel-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.4rem;
  align-items: center;
  padding: clamp(1.4rem, 3vw, 2rem);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, rgba(0,51,102,.96), rgba(0,86,142,.88)),
    var(--navy);
  color: var(--white);
  box-shadow: var(--shadow-lg);
}
.aula-panel-hero .section-label { color: var(--gold); }
.aula-panel-hero h2 {
  margin: .25rem 0 .6rem;
  font-family: var(--font-head);
  font-size: clamp(1.65rem, 4vw, 2.45rem);
  line-height: 1.08;
}
.aula-panel-hero p {
  max-width: 680px;
  color: rgba(255,255,255,.72);
  line-height: 1.75;
}
.aula-status-ring {
  display: grid;
  place-items: center;
  width: 132px;
  height: 132px;
  border-radius: 50%;
  border: 10px solid rgba(201,168,76,.28);
  background: rgba(255,255,255,.08);
  text-align: center;
}
.aula-status-ring strong {
  display: block;
  color: var(--gold);
  font-family: var(--font-head);
  font-size: 2.2rem;
  line-height: 1;
}
.aula-status-ring span {
  display: block;
  color: rgba(255,255,255,.72);
  font-size: .76rem;
  font-weight: 700;
  line-height: 1.2;
  text-transform: uppercase;
}
.aula-progress {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .9rem;
}
.aula-progress-card {
  display: flex;
  gap: .85rem;
  align-items: flex-start;
  padding: 1rem;
  border-radius: var(--radius);
  background: var(--white);
  border: 1px solid rgba(0,51,102,.08);
  box-shadow: var(--shadow);
}
.aula-progress-card span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 50%;
  background: rgba(0,51,102,.08);
  color: var(--navy);
  font-family: var(--font-head);
  font-weight: 900;
}
.aula-progress-card--active {
  border-color: rgba(201,168,76,.35);
}
.aula-progress-card--active span {
  background: var(--gold);
  color: var(--navy);
}
.aula-progress-card h3 {
  color: var(--navy);
  font-family: var(--font-head);
  font-size: .98rem;
  margin-bottom: .25rem;
}
.aula-progress-card p {
  color: var(--text-muted);
  font-size: .84rem;
  line-height: 1.45;
}
.aula-section {
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border-radius: var(--radius-lg);
  background: var(--white);
  border: 1px solid rgba(0,51,102,.08);
  box-shadow: var(--shadow);
}
.aula-section-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: end;
  margin-bottom: 1.2rem;
}
.aula-section-head h2 {
  color: var(--navy);
  font-family: var(--font-head);
}
.aula-section-head > span {
  color: var(--text-muted);
  font-size: .82rem;
  font-weight: 800;
}
.aula-video-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
}
.aula-video-card {
  overflow: hidden;
  border-radius: var(--radius);
  border: 1px solid rgba(0,51,102,.08);
  background: #f8fafc;
}
.aula-video-card .embed-wrap {
  border-radius: 0;
}
.aula-video-meta {
  padding: 1rem;
}
.aula-video-meta span {
  color: var(--cyan);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.aula-video-meta h3 {
  color: var(--navy);
  font-family: var(--font-head);
  font-size: 1rem;
  margin: .35rem 0;
}
.aula-video-meta p {
  color: var(--text-muted);
  font-size: .84rem;
}
.aula-empty-state {
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border: 1px dashed rgba(0,174,239,.38);
  border-radius: var(--radius);
  background: rgba(0,174,239,.045);
  text-align: center;
}
.aula-empty-state span {
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 48px;
  margin-bottom: .85rem;
  border-radius: 50%;
  background: rgba(0,51,102,.08);
  color: var(--gold);
  font-family: var(--font-head);
  font-weight: 900;
}
.aula-empty-state h3 {
  color: var(--navy);
  font-family: var(--font-head);
  margin-bottom: .45rem;
}
.aula-empty-state p {
  max-width: 560px;
  margin-inline: auto;
  color: var(--text-muted);
  line-height: 1.65;
}
.aula-tools-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.aula-tool-card {
  padding: 1.25rem;
  border-radius: var(--radius);
  background: var(--white);
  border: 1px solid rgba(0,51,102,.08);
  box-shadow: var(--shadow);
}
.aula-tool-card--locked {
  opacity: .82;
}
.aula-tool-card__icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-bottom: .8rem;
  border-radius: 12px;
  background: rgba(201,168,76,.14);
  color: var(--navy);
  font-family: var(--font-head);
  font-weight: 900;
}
.aula-tool-card h3 {
  color: var(--navy);
  font-family: var(--font-head);
  margin-bottom: .45rem;
}
.aula-tool-card p {
  color: var(--text-muted);
  font-size: .9rem;
  line-height: 1.6;
  margin-bottom: 1rem;
}
.aula-welcome {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  background: var(--white);
  border-radius: var(--radius);
  padding: 2rem;
  box-shadow: var(--shadow);
  border-left: 4px solid var(--gold);
}
.aula-welcome h2 {
  font-family: var(--font-head);
  color: var(--navy);
  margin-bottom: .25rem;
}
.aula-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.25rem;
}
.aula-card {
  position: relative;
  overflow: hidden;
  background: var(--white);
  border-radius: var(--radius);
  padding: 1.5rem;
  box-shadow: var(--shadow);
  border: 1px solid rgba(0,51,102,.08);
  transition: transform var(--transition-slow), box-shadow var(--transition-slow), border-color var(--transition);
}
.aula-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
  border-color: rgba(0,174,239,.22);
}
.aula-card span {
  font-family: var(--font-head);
  color: var(--gold);
  font-size: 1.8rem;
  font-weight: 800;
  display: block;
  margin-bottom: .75rem;
}
.aula-card h3 {
  font-family: var(--font-head);
  color: var(--navy);
  margin-bottom: .5rem;
}
.aula-card p {
  color: var(--text-muted);
  line-height: 1.65;
  font-size: .92rem;
}
.admin-inscripcion h3 {
  font-family: var(--font-head);
  color: var(--navy);
  margin-top: .5rem;
}
.admin-code {
  background: rgba(0,174,239,.12);
  border: 1px solid rgba(0,174,239,.28);
  color: var(--navy);
  border-radius: var(--radius);
  padding: .65rem .85rem;
  font-family: var(--font-head);
  font-weight: 800;
  white-space: nowrap;
}

/* ============================================================
   GALA / CEREMONIA / AULA — Próximamente
   ============================================================ */
.pronto-hero {
  min-height: 70vh; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--navy-dk) 0%, var(--navy) 100%);
  text-align: center; color: var(--white);
}
.pronto-icon { font-size: 4rem; margin-bottom: 1.5rem; display: block; }
.pronto-title { font-family: var(--font-head); font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 800; margin-bottom: 1rem; }
.pronto-badge {
  display: inline-block; background: var(--gold); color: var(--white);
  border-radius: 50px; padding: .5rem 1.5rem; font-weight: 700;
  font-size: .9rem; letter-spacing: .08em; margin-bottom: 1.5rem;
}
.pronto-date { color: var(--cyan); font-size: 1.1rem; font-weight: 600; margin-bottom: 2rem; }

/* ============================================================
   WHATSAPP FLOAT
   ============================================================ */
.whatsapp-float {
  position: fixed; bottom: 2rem; right: 2rem; z-index: 999;
  width: 60px; height: 60px; border-radius: 50%;
  background: #25D366; color: var(--white);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 20px rgba(37,211,102,.5);
  transition: transform var(--transition), box-shadow var(--transition);
  text-decoration: none;
}
.whatsapp-float:hover { transform: scale(1.1); box-shadow: 0 6px 28px rgba(37,211,102,.65); color: var(--white); }
.whatsapp-tooltip {
  position: absolute; right: 70px; background: var(--navy-dk); color: var(--white);
  padding: .4rem .9rem; border-radius: 50px; font-size: .8rem; font-weight: 600;
  white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .2s;
}
.whatsapp-float:hover .whatsapp-tooltip { opacity: 1; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer { background: var(--navy-dk); color: rgba(255,255,255,.8); padding: 4rem 0 0; }
.footer-inner { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.5fr; gap: 3rem; padding-bottom: 3rem; }
.footer-logo { width: 165px; margin-bottom: 1rem; opacity: .95; filter: drop-shadow(0 0 8px rgba(0,174,239,.3)); }
.footer-slogan { font-size: .88rem; line-height: 1.6; color: rgba(255,255,255,.6); }
.footer-slogan em { color: var(--gold); }
.footer-links { display: flex; flex-direction: column; gap: .35rem; }
.footer-links h4 { font-family: var(--font-head); color: var(--white); font-size: .88rem; letter-spacing: .06em; text-transform: uppercase; margin-bottom: .5rem; }
.footer-links a { font-size: .88rem; color: rgba(255,255,255,.6); transition: color var(--transition); }
.footer-links a:hover { color: var(--cyan); }
.footer-contact p { font-size: .85rem; line-height: 1.7; margin-bottom: 1rem; color: rgba(255,255,255,.6); }
.footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .85rem;
}
.footer-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  overflow: hidden;
  border: 1px solid rgba(0,174,239,.28);
  border-radius: 50%;
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.78);
  transition: transform var(--transition), background var(--transition), color var(--transition), border-color var(--transition);
}
.site-footer .footer-social img {
  width: 24px !important;
  height: 24px !important;
  max-width: 24px !important;
  max-height: 24px !important;
  min-width: 24px;
  min-height: 24px;
  display: block;
  object-fit: contain;
  flex: 0 0 24px;
}
.footer-social a:hover {
  transform: translateY(-2px);
  background: rgba(0,174,239,.16);
  border-color: rgba(0,174,239,.5);
  color: var(--white);
}
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.08); padding: 1.25rem 0;
}
.footer-bottom .container { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.footer-bottom p { font-size: .8rem; color: rgba(255,255,255,.45); }
.footer-bottom a { color: rgba(255,255,255,.6); }
.hrdt-logo-footer { height: 40px; opacity: .90; filter: brightness(1.4) drop-shadow(0 0 4px rgba(255,255,255,.3)); }

/* Legal pages */
.legal-page {
  min-height: 72vh;
  padding: 8rem 0 5rem;
  background:
    linear-gradient(135deg, rgba(5, 20, 38, .95), rgba(10, 46, 70, .9)),
    radial-gradient(circle at 18% 8%, rgba(0, 174, 239, .22), transparent 32%);
  color: var(--white);
}
.legal-container { max-width: 920px; }
.legal-page h1 {
  font-family: var(--font-head);
  font-size: clamp(2.2rem, 5vw, 4rem);
  margin-bottom: .75rem;
}
.legal-updated {
  color: rgba(255,255,255,.58);
  margin-bottom: 2rem;
}
.legal-card {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 8px;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  box-shadow: 0 24px 70px rgba(0,0,0,.22);
}
.legal-card h2 {
  font-family: var(--font-head);
  font-size: 1.15rem;
  margin: 1.8rem 0 .65rem;
  color: var(--gold);
}
.legal-card h2:first-of-type { margin-top: 1rem; }
.legal-card p {
  color: rgba(255,255,255,.78);
  line-height: 1.8;
  margin-bottom: .8rem;
}
.legal-card a { color: var(--cyan); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 900px) {
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .home-memory__grid,
  .home-media__grid { grid-template-columns: 1fr; }
  .home-media__voices { min-height: auto; }
  .curso-hero-grid { grid-template-columns:1fr; gap:2rem; }
  .curso-countdown { max-width:100%; }
  .latam-map-shell { grid-template-columns: 1fr; }
  .latam-map-board { min-height: 520px; }
  .resena-layout { grid-template-columns: 1fr; }
  .resena-panel { position: static; }
  .video-feature__grid { grid-template-columns: 1fr; }
  .video-strip__inner { flex-direction: column; align-items: flex-start; }
  .admin-head { flex-direction: column; align-items: flex-start; }
  .admin-video-row { grid-template-columns: 1fr; }
  .admin-exam-head {
    flex-direction: column;
  }
  .admin-exam-settings,
  .admin-exam-question__top,
  .admin-exam-options {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .section-row { flex-direction: column; align-items: flex-start; }
  .nav-toggle { display: flex; }
  .main-nav {
    display: none; flex-direction: column; position: absolute;
    top: 100%; left: 0; right: 0;
    background: var(--navy-dk); padding: 1rem; gap: .25rem;
    border-top: 1px solid rgba(0,174,239,.15);
  }
  .main-nav.open { display: flex; }
  .nav-link { padding: .75rem 1.25rem; border-radius: var(--radius); }
  .site-header { position: sticky; }
  .nav-inner { min-height: 72px; }
  .brand { min-width: 0; gap: .45rem; }
  .brand-hrdt { height: 40px; max-width: 150px; }
  .brand-icon { width: 72px; height: 48px; margin: -4px 0; }
  .brand-text { max-width: 58px; overflow: hidden; }
  .brand-text strong { font-size: .9rem; }
  .brand-text small { font-size: .58rem; white-space: nowrap; }

  .hero {
    min-height: auto;
    background:
      linear-gradient(180deg, rgba(0,13,26,.95) 0%, rgba(0,26,51,.86) 54%, rgba(0,51,102,.84) 100%),
      url('/assets/img/gen/home_hero.jpg') 62% top / auto 100% no-repeat,
      var(--navy-dk);
  }
  .hero-content { padding: 2rem 0 1.9rem; }
  .hero-logo { width: 64px; margin-bottom: .7rem; }
  .hero-title { font-size: clamp(1.85rem, 9.5vw, 2.65rem); max-width: 360px; }
  .hero-subtitle { font-size: .95rem; max-width: 340px; }
  .hero-slogan { margin-bottom: 1.25rem; }
  .countdown { gap: .55rem; margin-bottom: .9rem; }
  .countdown-item { min-width: 62px; padding: .62rem .42rem; }
  .countdown-num { font-size: 1.55rem; }
  .hero-countdown-note { font-size: .76rem; margin-bottom: 1.2rem; }
  .home-memory,
  .home-media,
  .home-stories { padding: 3rem 0; }
  .home-memory__photo,
  .home-memory__photo img { min-height: 270px; }
  .team-slider-wrap {
    overflow-x: visible;
    padding: .5rem 0 0;
    cursor: default;
  }
  .team-slider {
    display: grid;
    grid-template-columns: 1fr;
    min-width: 0;
    padding: 0;
    gap: 1rem;
  }
  .team-year-card {
    width: 100%;
    min-height: 0;
  }
  .team-year-card img {
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
  }
  .team-year-card:hover {
    transform: none;
  }
  .home-media__feature,
  .home-media__voices { padding: 1rem; }
  .home-video-placeholder { min-height: 240px; }
  .home-stories__head {
    flex-direction: column;
    align-items: flex-start;
  }
  .home-stories__head .btn { width: 100%; justify-content: center; }

  .stats-grid { gap: 1.5rem; }
  .stat-num { font-size: 1.75rem; }

  .programa-row { grid-template-columns: 1fr; }
  .programa-hora { font-size: .75rem; }
  .curso-hero {
    padding: 3rem 0;
    background:
      linear-gradient(180deg, rgba(0,13,26,.96) 0%, rgba(0,26,51,.88) 58%, rgba(0,51,102,.78) 100%),
      url('/assets/img/gen/curso_hero_critico.png') 63% top / auto 100% no-repeat,
      var(--navy-dk);
  }
  .curso-hero-title { font-size: clamp(1.2rem, 6vw, 1.8rem); }
  .curso-meta { font-size: .95rem; }
  .curso-stats { gap:.75rem; }
  .curso-stat { flex:1 1 calc(50% - .75rem); padding:.85rem .75rem; }
  .curso-countdown .countdown { flex-direction: row !important; justify-content:center; }
  .latam-map-board { min-height: 470px; }
  .latam-map-image { inset: 5% 5% 5% 5%; width: 90%; height: 90%; }
  .latam-pin { width: 36px; height: 36px; }
  .latam-detail { padding: 1.1rem; }
  .page-home .section--white .container[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }
  .voces-hero--image {
    min-height: auto; padding: 4rem 0;
    background:
      linear-gradient(180deg, rgba(0,13,26,.96) 0%, rgba(0,26,51,.88) 58%, rgba(0,51,102,.78) 100%),
      url('/assets/img/fotos/equipo/equipo_hrdt_letras.jpg') center top / cover no-repeat,
      var(--navy-dk);
  }

  .footer-inner { grid-template-columns: 1fr; gap: 2rem; }
  .footer-bottom .container { flex-direction: column; text-align: center; }
}

@media (max-width: 900px) {
  .aula-access,
  .aula-shell {
    grid-template-columns: 1fr;
  }
  .aula-access-intro,
  .aula-student-card {
    position: static;
  }
  .aula-panel-hero {
    grid-template-columns: 1fr;
  }
  .aula-status-ring {
    width: 112px;
    height: 112px;
  }
  .aula-progress,
  .aula-tools-grid {
    grid-template-columns: 1fr;
  }
  .course-payment-panel {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .payment-panel-actions {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .payment-panel-actions .btn {
    flex: 1 1 150px;
  }
}

@media (max-width: 480px) {
  .section { padding: 3rem 0; }
  .container { width: min(100% - 32px, 1200px); }
  .hero-logo { width: 120px; }
  .hero-badge { font-size:.68rem; padding:.35rem .85rem; }
  .hero-actions .btn, .curso-hero .btn { width:100%; justify-content:center; }
  .event-cards { grid-template-columns: 1fr; }
  .costos-grid { grid-template-columns: repeat(2,1fr); }
  .costo-card--featured { transform: none; }
  .curso-contact-grid { grid-template-columns: 1fr; }
  .pricing-table-head { grid-template-columns: 1fr auto; }
  .pricing-table-head span:last-child { display: none; }
  .pricing-table-row { grid-template-columns: 1fr auto; gap: .6rem; padding: .9rem 1rem; }
  .pricing-table-row > div:last-child { grid-column: 1 / -1; }
  .pricing-table-price { font-size: 1rem; }
  .pricing-table-price strong { font-size: 1.2rem; }
  .grupo-banner { flex-direction: column; align-items: flex-start; }
  .speaker-slider-wrap { padding: 0 2rem; }
  .inscripcion-step { gap: .85rem; }
  .step-num { width: 42px; height: 42px; font-size: 1.1rem; }
  .course-payment-panel { padding: .85rem; }
  .payment-contact-list { grid-template-columns: 1fr; }
  .payment-panel-actions .btn { flex-basis: 100%; }
  .aula-access-intro,
  .aula-panel-hero,
  .aula-student-card,
  .aula-section {
    border-radius: var(--radius);
  }
  .aula-section-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .curso-countdown { padding:1.25rem; }
  .curso-countdown .countdown-item { min-width: 78px; }
  .hist-hero__stats { gap:1.25rem; }
  .resena-facts div { grid-template-columns: 1fr; gap: .2rem; }
  .gallery-filters {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
  }
  .filter-btn {
    width: 100%;
    padding: .6rem .55rem;
    font-size: .76rem;
  }
  .gallery-grid { grid-template-columns: 1fr; gap: 1rem; }
  .gallery-item {
    height: auto;
    min-height: 245px;
    aspect-ratio: 4 / 3;
    opacity: 1 !important;
    transform: none !important;
  }
  .gallery-item__overlay { opacity: 1; }
  .gallery-item__overlay strong { font-size: .95rem; }
  .sponsor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sponsor-card { min-height: 118px; padding: .9rem; }
  .sponsor-logo { height: 52px; max-width: 120px; }
  .latam-map-board { min-height: 390px; }
  .latam-pin { width: 32px; height: 32px; }
  .latam-pin span { font-size: .62rem; }
  .map-country-chip { min-width: calc(50% - .5rem); }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
  .reveal { opacity: 1; transform: none; }
}
