/* ============================================================
   FAEO · UJED — Hoja de estilos principal
   Paleta derivada del logotipo del 80 aniversario
   ============================================================ */

:root{
  --tinta:      #0B1B2B;
  --marino:     #033C69;
  --marino-alt: #0A5089;
  --rojo:       #EC3237;
  --rojo-ujed:  #DA0C15;
  --hueso:      #F5F4F1;
  --hueso-alt:  #EAE8E3;
  --gris:       #6B7688;
  --gris-claro: #D8D6D1;
  --blanco:     #FFFFFF;

  --hilo: linear-gradient(90deg, var(--rojo) 0%, #8A2450 48%, var(--marino) 100%);
  --hilo-v: linear-gradient(180deg, var(--rojo) 0%, #8A2450 48%, var(--marino) 100%);

  --display: 'Archivo', system-ui, sans-serif;
  --serif:   'Instrument Serif', Georgia, serif;
  --mono:    'IBM Plex Mono', ui-monospace, monospace;

  --ancho: 1240px;
  --nav-h: 76px;
}

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

html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-h) + 20px); }

body{
  margin:0;
  font-family:var(--display);
  font-size:17px;
  line-height:1.62;
  color:var(--tinta);
  background:var(--blanco);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

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

.contenedor{ width:100%; max-width:var(--ancho); margin:0 auto; padding:0 24px; }

/* ---------- Tipografía ---------- */
h1,h2,h3,h4{ font-family:var(--display); font-weight:800; letter-spacing:-0.03em; line-height:1.03; margin:0; }
h1{ font-size:clamp(2.6rem, 6.2vw, 5rem); }
h2{ font-size:clamp(2rem, 4vw, 3.1rem); }
h3{ font-size:clamp(1.15rem, 1.7vw, 1.45rem); letter-spacing:-0.02em; }
p{ margin:0 0 1.1em; }

em.acento{ font-family:var(--serif); font-style:italic; font-weight:400; letter-spacing:-0.01em; }

.rotulo{
  font-family:var(--mono);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gris);
  display:flex; align-items:center; gap:14px;
  margin-bottom:22px;
}
.rotulo::after{ content:''; flex:1; height:2px; background:var(--hilo); opacity:.55; max-width:120px; }
.rotulo.centro{ justify-content:center; }
.rotulo.centro::before{ content:''; flex:1; height:2px; background:var(--hilo); opacity:.55; max-width:120px; }

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--display); font-weight:700; font-size:.94rem; letter-spacing:-0.01em;
  padding:14px 26px; border-radius:2px; border:2px solid transparent;
  text-decoration:none; cursor:pointer; transition:.18s ease;
}
.btn-rojo{ background:var(--rojo); color:#fff; }
.btn-rojo:hover{ background:#c9262b; }
.btn-marino{ background:var(--marino); color:#fff; }
.btn-marino:hover{ background:#022c4e; }
.btn-linea{ background:transparent; color:var(--tinta); border-color:var(--tinta); }
.btn-linea:hover{ background:var(--tinta); color:#fff; }
.btn-linea-claro{ background:transparent; color:#fff; border-color:rgba(255,255,255,.5); }
.btn-linea-claro:hover{ background:#fff; color:var(--tinta); }

/* ============================================================
   NAVEGACIÓN
   ============================================================ */
.nav{
  position:sticky; top:0; z-index:100;
  background:#fff;
  border-bottom:1px solid var(--gris-claro);
}
.nav::after{ content:''; display:block; height:3px; background:var(--hilo); }
.nav .contenedor{ display:flex; align-items:center; gap:12px; min-height:var(--nav-h); }
.nav .menu{ margin-left:auto; }

.marca{ display:flex; align-items:center; gap:14px; text-decoration:none; flex-shrink:0; }
.marca img{ height:52px; width:auto; }
.marca-txt{ line-height:1.15; }
.marca-txt strong{ display:block; font-size:.94rem; font-weight:800; letter-spacing:-0.025em; color:var(--tinta); }
.marca-txt span{ display:block; font-family:var(--mono); font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gris); }

.menu{ display:flex; align-items:center; gap:0; list-style:none; margin:0; padding:0; }
.menu > li{ position:relative; }
.menu > li > a,
.menu > li > button{
  white-space:nowrap;
  font-family:var(--display); font-size:.86rem; font-weight:600; letter-spacing:-0.01em;
  color:var(--tinta); background:none; border:0; cursor:pointer;
  padding:12px 11px; text-decoration:none; display:inline-flex; align-items:center; gap:6px;
  border-bottom:2px solid transparent; transition:.15s;
}
.menu > li > a:hover, .menu > li > button:hover,
.menu > li.abierto > button{ color:var(--rojo); border-bottom-color:var(--rojo); }
.menu .flecha{ width:9px; height:9px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:.2s; }
.menu > li.abierto .flecha{ transform:rotate(-135deg) translateY(-2px); }

.submenu{
  position:absolute; top:100%; left:0; min-width:290px;
  background:#fff; border:1px solid var(--gris-claro); border-top:3px solid var(--rojo);
  box-shadow:0 18px 44px rgba(11,27,43,.14);
  list-style:none; margin:0; padding:8px 0;
  opacity:0; visibility:hidden; transform:translateY(8px); transition:.18s ease;
}
.menu > li.abierto .submenu{ opacity:1; visibility:visible; transform:translateY(0); }
.submenu a{
  display:block; padding:9px 20px; font-size:.87rem; font-weight:500;
  text-decoration:none; color:var(--tinta); line-height:1.35; transition:.14s;
}
.submenu a:hover{ background:var(--hueso); color:var(--rojo); padding-left:26px; }
.submenu li.sep{ height:1px; background:var(--gris-claro); margin:8px 20px; }

.nav-cta{ display:flex; align-items:center; gap:7px; flex-shrink:0; margin-left:12px; }
.nav-cta .btn{ padding:10px 13px; font-size:.79rem; }

.hamburguesa{ display:none; background:none; border:0; cursor:pointer; padding:10px; }
.hamburguesa span{ display:block; width:24px; height:2px; background:var(--tinta); margin:5px 0; transition:.22s; }
.hamburguesa.activo span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hamburguesa.activo span:nth-child(2){ opacity:0; }
.hamburguesa.activo span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ============================================================
   HERO
   ============================================================ */
.hero{ position:relative; background:var(--tinta); color:#fff; overflow:hidden; }
.hero-img{ position:absolute; inset:0; }
.hero-img img{ width:100%; height:100%; object-fit:cover; opacity:.42; }
.hero-img::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(11,27,43,.95) 0%, rgba(11,27,43,.82) 42%, rgba(3,60,105,.55) 100%);
}
.hero .contenedor{ position:relative; z-index:2; padding-top:100px; padding-bottom:100px; }
.hero-grid{ display:grid; grid-template-columns:1.35fr .65fr; gap:56px; align-items:center; }

.hero-anio{
  font-family:var(--mono); font-size:.8rem; font-weight:500; letter-spacing:.34em;
  color:#fff; opacity:.85; display:flex; align-items:center; gap:16px; margin-bottom:26px;
}
.hero-anio::after{ content:''; width:80px; height:2px; background:var(--hilo); }
.hero h1{ color:#fff; margin-bottom:26px; }
.hero h1 em.acento{ color:#fff; }
.hero-bajada{ font-size:1.12rem; color:rgba(255,255,255,.8); max-width:53ch; margin-bottom:34px; }
.hero-acciones{ display:flex; gap:14px; flex-wrap:wrap; }
.hero-marca img{ width:100%; max-width:330px; margin:0 auto; filter:drop-shadow(0 14px 40px rgba(0,0,0,.5)); }

/* Cifras */
.cifras{ background:var(--hueso); border-bottom:1px solid var(--gris-claro); }
.cifras .contenedor{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.cifra{ padding:34px 26px; border-right:1px solid var(--gris-claro); }
.cifra:first-child{ padding-left:0; }
.cifra:last-child{ border-right:0; }
.cifra b{ display:block; font-size:2.5rem; font-weight:800; letter-spacing:-0.045em; line-height:1; color:var(--marino); }
.cifra span{ display:block; font-family:var(--mono); font-size:.68rem; letter-spacing:.15em; text-transform:uppercase; color:var(--gris); margin-top:10px; }

/* ============================================================
   SECCIONES
   ============================================================ */
.seccion{ padding:96px 0; }
.seccion-hueso{ background:var(--hueso); }
.seccion-tinta{ background:var(--tinta); color:#fff; }
.seccion-tinta h2, .seccion-tinta h3{ color:#fff; }
.seccion-tinta .rotulo{ color:rgba(255,255,255,.6); }

.cabecera{ max-width:720px; margin-bottom:52px; }
.cabecera.centro{ margin-left:auto; margin-right:auto; text-align:center; }
.cabecera p{ color:var(--gris); font-size:1.06rem; margin-top:18px; margin-bottom:0; }
.seccion-tinta .cabecera p{ color:rgba(255,255,255,.72); }

/* ---------- Congreso ---------- */
.congreso{ background:var(--rojo); color:#fff; position:relative; overflow:hidden; }
.congreso::before{
  content:''; position:absolute; right:-90px; top:-90px; width:340px; height:340px;
  border:44px solid rgba(255,255,255,.11); border-radius:50%;
}
.congreso::after{
  content:''; position:absolute; left:-60px; bottom:-120px; width:230px; height:230px;
  border:30px solid rgba(11,27,43,.13); border-radius:50%;
}
.congreso .contenedor{ position:relative; z-index:2; padding-top:80px; padding-bottom:80px; }
.congreso-grid{ display:grid; grid-template-columns:1.25fr .75fr; gap:56px; align-items:center; }
.congreso .rotulo{ color:rgba(255,255,255,.85); }
.congreso .rotulo::after{ background:#fff; opacity:.4; }
.congreso h2{ color:#fff; margin-bottom:20px; }
.congreso .congreso-fecha{
  display:inline-flex; align-items:baseline; gap:12px;
  background:#fff; color:var(--rojo); padding:10px 20px; margin-bottom:24px;
  font-weight:800; font-size:1.22rem; letter-spacing:-0.02em;
}
.congreso .congreso-fecha small{ font-family:var(--mono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--tinta); font-weight:500; }
.congreso p{ color:rgba(255,255,255,.9); max-width:56ch; }
.congreso-datos{ list-style:none; margin:0 0 30px; padding:0; display:grid; gap:10px; }
.congreso-datos li{ display:flex; gap:12px; font-size:.97rem; color:rgba(255,255,255,.92); }
.congreso-datos b{ font-family:var(--mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; opacity:.7; min-width:96px; padding-top:4px; }
.congreso-acciones{ display:flex; gap:14px; flex-wrap:wrap; }
.congreso-sede img{ width:100%; height:300px; object-fit:cover; }
.congreso-sede figcaption{ font-family:var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.8); padding-top:12px; }

/* ---------- Tarjetas de oferta ---------- */
.rejilla{ display:grid; gap:2px; background:var(--gris-claro); border:1px solid var(--gris-claro); }
.rejilla-3{ grid-template-columns:repeat(3,1fr); }
.rejilla-2{ grid-template-columns:repeat(2,1fr); }

.tarjeta{
  background:#fff; padding:34px 30px 30px; text-decoration:none; color:inherit;
  display:flex; flex-direction:column; gap:12px; position:relative; transition:.2s;
}
.tarjeta::before{ content:''; position:absolute; left:0; top:0; width:100%; height:3px; background:var(--hilo); transform:scaleX(0); transform-origin:left; transition:.28s; }
.tarjeta:hover{ background:var(--hueso); }
.tarjeta:hover::before{ transform:scaleX(1); }
.tarjeta .nivel{ font-family:var(--mono); font-size:.65rem; letter-spacing:.18em; text-transform:uppercase; color:var(--rojo); font-weight:500; }
.tarjeta h3{ color:var(--tinta); }
.tarjeta p{ font-size:.93rem; color:var(--gris); margin:0; }
.tarjeta .ir{ margin-top:auto; padding-top:16px; font-family:var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--marino); display:flex; align-items:center; gap:8px; }
.tarjeta .ir::after{ content:'→'; transition:.2s; }
.tarjeta:hover .ir::after{ transform:translateX(5px); }

/* ---------- 80 años ---------- */
.historia-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.historia-fotos{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.historia-fotos img{ width:100%; height:225px; object-fit:cover; }
.historia-fotos img:first-child{ grid-column:1 / -1; height:270px; }

.linea{ list-style:none; margin:30px 0 0; padding:0; border-left:2px solid var(--gris-claro); }
.linea li{ position:relative; padding:0 0 24px 26px; }
.linea li::before{ content:''; position:absolute; left:-7px; top:7px; width:12px; height:12px; border-radius:50%; background:var(--rojo); }
.linea li:last-child::before{ background:var(--marino); }
.linea b{ display:block; font-family:var(--mono); font-size:.74rem; letter-spacing:.16em; color:var(--rojo); margin-bottom:5px; }
.linea li:last-child b{ color:var(--marino); }
.linea span{ font-size:.95rem; color:var(--gris); }

/* ---------- Video ---------- */
.video-bloque{ position:relative; background:var(--tinta); }
.video-marco{ position:relative; max-width:1000px; margin:0 auto; }
.video-marco video{ width:100%; display:block; background:#000; }
.video-poster{ position:relative; cursor:pointer; }
.video-poster img{ width:100%; }
.video-poster::after{ content:''; position:absolute; inset:0; background:rgba(11,27,43,.42); transition:.2s; }
.video-poster:hover::after{ background:rgba(11,27,43,.28); }
.play{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:3;
  width:88px; height:88px; border-radius:50%; background:var(--rojo); border:0; cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition:.22s;
}
.play:hover{ transform:translate(-50%,-50%) scale(1.09); }
.play::before{ content:''; border-left:24px solid #fff; border-top:15px solid transparent; border-bottom:15px solid transparent; margin-left:6px; }

/* ---------- Enlaces de interés ---------- */
.enlaces{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:2px; background:var(--gris-claro); border:1px solid var(--gris-claro); }
.enlace{
  background:#fff; padding:26px 28px; text-decoration:none; color:inherit;
  display:flex; align-items:center; justify-content:space-between; gap:16px; transition:.18s;
}
.enlace:hover{ background:var(--hueso); }
.enlace strong{ display:block; font-size:1rem; font-weight:700; letter-spacing:-0.015em; }
.enlace small{ display:block; font-family:var(--mono); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gris); margin-top:5px; }
.enlace .flecha-e{ color:var(--rojo); font-size:1.2rem; transition:.2s; }
.enlace:hover .flecha-e{ transform:translateX(5px); }
.enlace.destacado{ background:var(--marino); color:#fff; }
.enlace.destacado small{ color:rgba(255,255,255,.7); }
.enlace.destacado .flecha-e{ color:#fff; }
.enlace.destacado:hover{ background:#022c4e; }

/* ============================================================
   PIE
   ============================================================ */
.pie{ background:var(--tinta); color:rgba(255,255,255,.72); padding:72px 0 0; }
.pie-grid{ display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:44px; padding-bottom:56px; }
.pie h4{ font-size:.72rem; font-family:var(--mono); font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:#fff; margin-bottom:20px; }
.pie ul{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.pie a{ text-decoration:none; color:rgba(255,255,255,.72); font-size:.9rem; transition:.15s; }
.pie a:hover{ color:var(--rojo); }
.pie-marca img{ width:140px; margin-bottom:22px; }
.pie-dir{ font-size:.9rem; line-height:1.75; font-style:normal; }
.pie-dir a{ color:#fff; font-weight:600; }
.pie-logos{ display:flex; align-items:center; gap:26px; flex-wrap:wrap; padding:28px 0; border-top:1px solid rgba(255,255,255,.14); }
.pie-logos img{ height:34px; width:auto; opacity:.85; }
.pie-logos img.femafee{ height:48px; background:#fff; padding:3px; border-radius:2px; }
.pie-legal{ border-top:1px solid rgba(255,255,255,.14); padding:22px 0; font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; color:rgba(255,255,255,.45); display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }

/* ============================================================
   RESPONSIVO
   ============================================================ */
@media (max-width:1100px){
  .hero-grid{ grid-template-columns:1fr; gap:44px; }
  .hero-marca{ order:-1; }
  .hero-marca img{ max-width:210px; }
  .congreso-grid, .historia-grid{ grid-template-columns:1fr; gap:40px; }
  .rejilla-3{ grid-template-columns:repeat(2,1fr); }
  .pie-grid{ grid-template-columns:1fr 1fr; gap:36px; }
  .cifras .contenedor{ grid-template-columns:repeat(2,1fr); }
  .cifra{ border-bottom:1px solid var(--gris-claro); padding-left:0; }
  .cifra:nth-child(2n){ border-right:0; padding-left:26px; }
}

@media (max-width:1100px){
  .hamburguesa{ display:block; margin-left:auto; }
  .nav-cta{ display:none; }
  .menu{
    position:fixed; top:var(--nav-h); left:0; right:0; bottom:0;
    background:#fff; flex-direction:column; align-items:stretch; gap:0;
    padding:16px 0 60px; overflow-y:auto;
    transform:translateX(100%); transition:transform .28s ease; z-index:99;
  }
  .menu.abierta{ transform:translateX(0); }
  .menu > li > a, .menu > li > button{
    width:100%; justify-content:space-between; padding:16px 24px; font-size:1rem;
    border-bottom:1px solid var(--hueso-alt);
  }
  .submenu{
    position:static; opacity:1; visibility:visible; transform:none;
    border:0; border-top:0; box-shadow:none; background:var(--hueso);
    display:none; padding:6px 0;
  }
  .menu > li.abierto .submenu{ display:block; }
  .submenu a{ padding:12px 38px; }
}

@media (max-width:640px){
  body{ font-size:16px; }
  .rotulo{ font-size:.64rem; letter-spacing:.16em; gap:10px; }
  .rotulo::after{ max-width:50px; }
  .seccion{ padding:64px 0; }
  .hero .contenedor{ padding-top:64px; padding-bottom:64px; }
  .rejilla-3, .rejilla-2{ grid-template-columns:1fr; }
  .pie-grid{ grid-template-columns:1fr; }
  .historia-fotos img{ height:170px; }
  .historia-fotos img:first-child{ height:210px; }
  .marca img{ height:42px; }
  .marca-txt strong{ font-size:.82rem; }
  .play{ width:64px; height:64px; }
  .play::before{ border-left-width:18px; border-top-width:11px; border-bottom-width:11px; }
}

/* Accesibilidad */
a:focus-visible, button:focus-visible{ outline:3px solid var(--rojo); outline-offset:3px; }
@media (prefers-reduced-motion:reduce){
  *{ animation:none!important; transition:none!important; }
  html{ scroll-behavior:auto; }
}

/* ============================================================
   PÁGINA DEL CONGRESO
   ============================================================ */
.hero-congreso{ background:var(--rojo); color:#fff; position:relative; overflow:hidden; }
.hero-congreso::before{ content:''; position:absolute; right:-120px; top:-120px; width:420px; height:420px; border:56px solid rgba(255,255,255,.1); border-radius:50%; }
.hero-congreso::after{ content:''; position:absolute; left:-70px; bottom:-140px; width:280px; height:280px; border:36px solid rgba(11,27,43,.12); border-radius:50%; }
.hero-congreso .contenedor{ position:relative; z-index:2; padding:84px 24px; }
.hero-congreso .rotulo{ color:rgba(255,255,255,.85); }
.hero-congreso .rotulo::after{ background:#fff; opacity:.4; }
.hero-congreso h1{ color:#fff; max-width:16ch; margin-bottom:18px; }
.hero-congreso .lema{ font-size:1.12rem; color:rgba(255,255,255,.92); max-width:48ch; margin-bottom:30px; }
.hero-congreso .btn-linea-claro{ border-color:#fff; }

.franja-datos{ display:flex; flex-wrap:wrap; gap:0; border:2px solid rgba(255,255,255,.35); margin-bottom:32px; max-width:840px; }
.franja-datos div{ flex:1 1 190px; padding:18px 22px; border-right:2px solid rgba(255,255,255,.35); }
.franja-datos div:last-child{ border-right:0; }
.franja-datos b{ display:block; font-family:var(--mono); font-size:.64rem; letter-spacing:.16em; text-transform:uppercase; opacity:.75; margin-bottom:6px; }
.franja-datos span{ display:block; font-size:1.02rem; font-weight:700; letter-spacing:-0.015em; line-height:1.3; }

.tira-logos{ display:flex; align-items:center; gap:28px; flex-wrap:wrap; padding:22px 0; background:#fff; }
.tira-logos img{ height:52px; width:auto; }
.tira-logos img.alto{ height:64px; }

/* ---- Pestañas de días ---- */
.dias{ display:flex; gap:2px; flex-wrap:wrap; margin-bottom:0; }
.dia-tab{
  font-family:var(--display); font-weight:700; font-size:.95rem; letter-spacing:-0.015em;
  background:var(--hueso-alt); color:var(--gris); border:0; cursor:pointer;
  padding:16px 28px; display:flex; flex-direction:column; gap:3px; text-align:left; transition:.18s;
}
.dia-tab small{ font-family:var(--mono); font-size:.63rem; letter-spacing:.15em; text-transform:uppercase; font-weight:500; }
.dia-tab:hover{ background:var(--gris-claro); color:var(--tinta); }
.dia-tab.activo{ background:var(--tinta); color:#fff; }
.dia-tab.activo small{ color:var(--rojo); }

.dia-panel{ display:none; border:1px solid var(--gris-claro); border-top:3px solid var(--tinta); }
.dia-panel.activo{ display:block; }

.agenda{ width:100%; border-collapse:collapse; font-size:.93rem; }
.agenda th{
  background:var(--tinta); color:#fff; text-align:left; padding:13px 18px;
  font-family:var(--mono); font-size:.64rem; letter-spacing:.16em; text-transform:uppercase; font-weight:500;
}
.agenda td{ padding:15px 18px; border-bottom:1px solid var(--gris-claro); vertical-align:top; line-height:1.45; }
.agenda tr:last-child td{ border-bottom:0; }
.agenda tbody tr:hover{ background:var(--hueso); }
.agenda .hora{ font-family:var(--mono); font-size:.8rem; font-weight:500; color:var(--rojo); white-space:nowrap; }
.agenda .act{ font-weight:600; letter-spacing:-0.01em; color:var(--tinta); }
.agenda .act em{ display:block; font-style:normal; font-weight:400; font-size:.85rem; color:var(--gris); margin-top:4px; }
.agenda .pon{ color:var(--tinta); }
.agenda .pon small{ display:block; color:var(--gris); font-size:.82rem; line-height:1.35; margin-top:3px; }
.agenda .lugar{ font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; color:var(--gris); white-space:nowrap; }
.agenda tr.pausa td{ background:var(--hueso); color:var(--gris); font-style:italic; }
.agenda tr.bloque td{ background:#FDF3F3; }

.pais{ display:inline-block; font-family:var(--mono); font-size:.62rem; letter-spacing:.1em; font-weight:500;
  border:1px solid var(--gris-claro); padding:2px 7px; color:var(--gris); border-radius:2px; }

.nota-tabla{ font-size:.85rem; color:var(--gris); margin-top:16px; }

/* ---- Ponentes ---- */
.ponentes{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:2px; background:var(--gris-claro); border:1px solid var(--gris-claro); }
.ponente{ background:#fff; padding:26px 24px; }
.ponente b{ display:block; font-size:1.02rem; font-weight:700; letter-spacing:-0.02em; color:var(--tinta); margin-bottom:6px; }
.ponente span{ display:block; font-size:.86rem; color:var(--gris); line-height:1.45; }
.ponente .pais{ margin-top:12px; }

/* ---- Hoteles / bloques informativos ---- */
.bloques{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:2px; background:var(--gris-claro); border:1px solid var(--gris-claro); }
.bloque{ background:#fff; padding:28px 26px; }
.bloque h3{ margin-bottom:10px; }
.bloque p{ font-size:.92rem; color:var(--gris); margin-bottom:8px; }
.bloque a{ font-weight:700; color:var(--marino); text-decoration:none; }
.bloque a:hover{ color:var(--rojo); }
.bloque .clave{ font-family:var(--mono); font-size:.78rem; background:var(--hueso); border-left:3px solid var(--rojo); padding:10px 12px; color:var(--tinta); display:block; margin-top:10px; line-height:1.5; }

@media (max-width:1100px){
  .agenda, .agenda tbody, .agenda tr, .agenda td{ display:block; width:100%; }
  .agenda thead{ display:none; }
  .agenda tr{ border-bottom:1px solid var(--gris-claro); padding:14px 0; }
  .agenda tr:last-child{ border-bottom:0; }
  .agenda td{ border:0; padding:3px 16px; }
  .agenda .hora{ font-size:.75rem; }
  .dia-tab{ flex:1 1 auto; padding:13px 18px; font-size:.88rem; }
  .franja-datos div{ flex:1 1 100%; border-right:0; border-bottom:2px solid rgba(255,255,255,.35); }
  .franja-datos div:last-child{ border-bottom:0; }
}

/* ============================================================
   PÁGINA "LA FACULTAD"
   ============================================================ */
.hero-int{ background:var(--tinta); color:#fff; position:relative; overflow:hidden; }
.hero-int::after{ content:''; position:absolute; right:-100px; bottom:-160px; width:360px; height:360px; border:48px solid rgba(236,50,55,.14); border-radius:50%; }
.hero-int .contenedor{ position:relative; z-index:2; padding:76px 24px; }
.hero-int h1{ color:#fff; max-width:14ch; }
.hero-int .rotulo{ color:rgba(255,255,255,.62); }
.hero-int p.bajada{ color:rgba(255,255,255,.78); font-size:1.08rem; max-width:56ch; margin-top:20px; margin-bottom:0; }

.mv{ display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--gris-claro); border:1px solid var(--gris-claro); }
.mv article{ background:#fff; padding:44px 40px; position:relative; }
.mv article::before{ content:''; position:absolute; left:0; top:0; width:100%; height:4px; background:var(--hilo); }
.mv h2{ font-size:clamp(1.6rem,2.4vw,2.1rem); margin-bottom:20px; }
.mv p{ font-size:1.04rem; line-height:1.7; color:var(--tinta); margin:0; }
.mv .fuente{ display:block; font-family:var(--mono); font-size:.66rem; letter-spacing:.13em; text-transform:uppercase; color:var(--gris); margin-top:22px; }

.objetivos{ counter-reset:obj; list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); gap:2px; background:var(--gris-claro); border:1px solid var(--gris-claro); }
.objetivos li{ background:#fff; padding:28px 26px; display:flex; gap:16px; align-items:flex-start; font-size:.96rem; line-height:1.55; }
.objetivos li::before{
  counter-increment:obj; content:counter(obj,decimal-leading-zero);
  font-family:var(--mono); font-size:.78rem; color:var(--rojo); font-weight:500;
  padding-top:2px; flex-shrink:0;
}

.desplegable{ border:1px solid var(--gris-claro); margin-top:36px; }
.desplegable summary{
  cursor:pointer; padding:20px 26px; list-style:none;
  font-weight:700; font-size:1rem; letter-spacing:-0.015em; color:var(--tinta);
  display:flex; align-items:center; justify-content:space-between; gap:16px; background:var(--hueso);
}
.desplegable summary::-webkit-details-marker{ display:none; }
.desplegable summary::after{ content:'+'; font-family:var(--mono); font-size:1.4rem; color:var(--rojo); line-height:1; }
.desplegable[open] summary::after{ content:'–'; }
.desplegable .cuerpo{ padding:30px 26px; }
.desplegable .cuerpo h3{ font-size:1.1rem; margin:26px 0 12px; }
.desplegable .cuerpo h3:first-child{ margin-top:0; }
.desplegable .cuerpo p{ font-size:.97rem; color:var(--gris); line-height:1.75; }

.aviso{ background:var(--hueso); border-left:4px solid var(--rojo); padding:22px 26px; font-size:.94rem; color:var(--gris); }
.aviso b{ color:var(--tinta); }

@media (max-width:1100px){
  .mv{ grid-template-columns:1fr; }
  .mv article{ padding:32px 26px; }
}

/* ============================================================
   POSGRADO
   ============================================================ */
.programa{ border:1px solid var(--gris-claro); background:#fff; margin-bottom:2px; }
.programa-cab{ padding:38px 40px 30px; border-bottom:1px solid var(--gris-claro); position:relative; }
.programa-cab::before{ content:''; position:absolute; left:0; top:0; width:100%; height:4px; background:var(--hilo); }
.programa-cab .nivel{ font-family:var(--mono); font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--rojo); font-weight:500; display:block; margin-bottom:10px; }
.programa-cab h2{ font-size:clamp(1.7rem,2.8vw,2.4rem); margin-bottom:0; }

.programa-cuerpo{ display:grid; grid-template-columns:1.4fr .9fr; gap:0; }
.programa-txt{ padding:34px 40px; }
.programa-txt h3{ font-size:.72rem; font-family:var(--mono); font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--gris); margin:0 0 14px; }
.programa-txt h3 + p, .programa-txt h3 + ul{ margin-top:0; }
.programa-txt p{ font-size:1rem; line-height:1.7; }
.programa-txt .bloque-permite{ background:var(--hueso); border-left:4px solid var(--marino); padding:20px 24px; margin-top:28px; }
.programa-txt .bloque-permite p{ margin:0; font-size:.97rem; color:var(--tinta); }

.lgac{ list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.lgac li{ display:flex; gap:12px; font-size:.97rem; line-height:1.55; }
.lgac li::before{ content:'»'; color:var(--rojo); font-weight:700; flex-shrink:0; }

.especialidades-lista{ list-style:none; margin:0; padding:0; display:grid; gap:2px; }
.especialidades-lista li{ background:var(--hueso); }
.especialidades-lista a{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:16px 22px; text-decoration:none; color:var(--tinta);
  font-weight:600; font-size:.97rem; letter-spacing:-0.01em; transition:.16s;
}
.especialidades-lista a::after{ content:'PDF'; font-family:var(--mono); font-size:.62rem; letter-spacing:.12em; color:var(--rojo); flex-shrink:0; }
.especialidades-lista a:hover{ background:var(--tinta); color:#fff; }
.especialidades-lista a:hover::after{ color:#fff; }

.ficha{ background:var(--tinta); color:#fff; padding:34px 34px; }
.ficha dl{ margin:0; display:grid; gap:0; }
.ficha dt{ font-family:var(--mono); font-size:.63rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.55); padding-top:16px; }
.ficha dd{ margin:5px 0 0; font-size:.97rem; font-weight:600; letter-spacing:-0.01em; line-height:1.45; padding-bottom:16px; border-bottom:1px solid rgba(255,255,255,.12); }
.ficha dd:last-of-type{ border-bottom:0; padding-bottom:0; }
.ficha dt:first-of-type{ padding-top:0; }

.aviso-pre{
  display:inline-flex; align-items:center; gap:10px; background:var(--teal,#18836C);
  background:var(--marino); color:#fff; padding:9px 18px; margin-bottom:20px;
  font-family:var(--mono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; font-weight:500;
}
.aviso-pre::before{ content:''; width:8px; height:8px; border-radius:50%; background:#fff; }

@media (max-width:960px){
  .programa-cuerpo{ grid-template-columns:1fr; }
  .programa-cab{ padding:30px 26px 24px; }
  .programa-txt{ padding:28px 26px; }
  .ficha{ padding:28px 26px; }
}

/* ============================================================
   PLAN DE DESARROLLO
   ============================================================ */
.ejes{ counter-reset:eje; display:grid; grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); gap:2px; background:var(--gris-claro); border:1px solid var(--gris-claro); }
.eje{ background:#fff; padding:34px 30px; position:relative; }
.eje .num{
  font-family:var(--mono); font-size:.72rem; letter-spacing:.16em; color:var(--rojo);
  font-weight:500; display:block; margin-bottom:14px;
}
.eje h3{ margin-bottom:12px; }
.eje p{ font-size:.94rem; color:var(--gris); line-height:1.6; margin:0; }

.valores{ display:flex; flex-wrap:wrap; gap:2px; background:var(--gris-claro); border:1px solid var(--gris-claro); }
.valores span{
  background:#fff; padding:16px 22px; flex:1 1 auto;
  font-weight:700; font-size:.95rem; letter-spacing:-0.015em; color:var(--tinta); text-align:center;
}

.datos-clave{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:2px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.14); }
.dato{ background:var(--tinta); padding:30px 26px; }
.dato b{ display:block; font-size:2.1rem; font-weight:800; letter-spacing:-0.04em; line-height:1; color:#fff; }
.dato span{ display:block; font-size:.88rem; color:rgba(255,255,255,.66); margin-top:10px; line-height:1.45; }

.doc-descarga{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  border:1px solid var(--gris-claro); border-left:4px solid var(--rojo); background:#fff; padding:28px 30px; }
.doc-descarga .info b{ display:block; font-size:1.05rem; letter-spacing:-0.02em; }
.doc-descarga .info span{ display:block; font-family:var(--mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gris); margin-top:6px; }

/* ============================================================
   DIRECTIVOS
   ============================================================ */
.organigrama{ padding:8px 0 0; text-align:center; }

.persona{ display:block; text-align:center; }
.persona figure{ margin:0 auto 20px; position:relative; width:104px; height:104px; }
.persona figure::after{ content:''; position:absolute; inset:-7px; border-radius:50%;
  border:1px solid var(--gris-claro); transition:border-color .35s ease; }
.persona img{ width:104px; height:104px; border-radius:50%; object-fit:cover; display:block;
  filter:grayscale(1) contrast(1.04); transition:filter .5s ease; }
.persona:hover img{ filter:grayscale(0) contrast(1); }
.persona:hover figure::after{ border-color:var(--rojo); }

.persona .cargo{ display:block; font-family:var(--mono); font-size:.6rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--rojo); margin-bottom:9px; }
.persona .nombre{ display:block; font-weight:700; font-size:.98rem; letter-spacing:-0.025em;
  line-height:1.35; color:var(--tinta); max-width:19ch; margin:0 auto; }
.persona .grado{ display:block; font-family:var(--mono); font-size:.62rem; letter-spacing:.12em;
  color:var(--gris); margin-top:8px; }

.persona.raiz figure{ width:136px; height:136px; margin-bottom:24px; }
.persona.raiz img{ width:136px; height:136px; }
.persona.raiz figure::after{ inset:-9px; border-color:var(--rojo); }
.persona.raiz .nombre{ font-size:1.16rem; max-width:17ch; }

.org-nivel{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:44px; max-width:860px; margin:0 auto; }

/* Líneas del organigrama: ángulos rectos */
.org-lineas{ position:relative; max-width:860px; margin:0 auto; height:76px; }
.org-lineas::before{ content:''; position:absolute; left:50%; top:0; width:1px; height:38px; background:#C4C0B9; }
.org-lineas::after{ content:''; position:absolute; top:38px;
  left:calc((100% - 88px) / 6); right:calc((100% - 88px) / 6); height:1px; background:#C4C0B9; }
.org-lineas i{ position:absolute; top:38px; width:1px; height:38px; background:#C4C0B9; }
.org-lineas i:nth-of-type(1){ left:calc((100% - 88px) / 6); }
.org-lineas i:nth-of-type(2){ left:50%; }
.org-lineas i:nth-of-type(3){ right:calc((100% - 88px) / 6); }
.org-lineas b{ position:absolute; top:35px; width:7px; height:7px; border-radius:50%;
  background:var(--rojo); transform:translateX(-3px); }
.org-lineas b:nth-of-type(1){ left:calc((100% - 88px) / 6); }
.org-lineas b:nth-of-type(2){ left:50%; }
.org-lineas b:nth-of-type(3){ left:calc(100% - (100% - 88px) / 6); }

@media (max-width:860px){
  .org-nivel{ grid-template-columns:1fr; gap:44px; }
  .org-lineas{ height:40px; }
  .org-lineas::before{ height:40px; }
  .org-lineas::after, .org-lineas i, .org-lineas b{ display:none; }
  .persona img{ filter:grayscale(.3) contrast(1.02); }
}

/* ============================================================
   CENTRO COMUNITARIO
   ============================================================ */
.cc-intro{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
.cc-intro p{ font-size:1.06rem; color:var(--gris); }
.cc-intro .destacado{ font-size:1.16rem; color:var(--tinta); font-weight:500; letter-spacing:-0.015em; line-height:1.55; }
.cc-fotos{ display:grid; gap:12px; }
.cc-fotos img{ width:100%; height:250px; object-fit:cover; display:block; }

.proposito{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:2px;
  background:var(--gris-claro); border:1px solid var(--gris-claro); }
.proposito > div{ background:#fff; padding:32px 30px; position:relative; }
.proposito > div::before{ content:''; position:absolute; left:0; top:0; width:100%; height:3px; background:var(--hilo); }
.proposito h3{ margin-bottom:12px; }
.proposito p{ font-size:.95rem; color:var(--gris); line-height:1.62; margin:0; }

.funciones{ counter-reset:fn; display:grid; gap:2px; background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.14); }
.funcion{ background:var(--tinta); padding:30px 32px; display:grid;
  grid-template-columns:auto 1fr; gap:22px; align-items:start; }
.funcion::before{ counter-increment:fn; content:counter(fn,decimal-leading-zero);
  font-family:var(--mono); font-size:.8rem; color:var(--rojo); font-weight:500; padding-top:4px; }
.funcion h3{ color:#fff; margin-bottom:9px; }
.funcion p{ font-size:.95rem; color:rgba(255,255,255,.68); line-height:1.62; margin:0; }

@media (max-width:860px){
  .cc-intro{ grid-template-columns:1fr; gap:36px; }
  .cc-fotos img{ height:210px; }
  .funcion{ grid-template-columns:1fr; gap:10px; padding:26px 24px; }
}

/* ============================================================
   NORMATIVIDAD
   ============================================================ */
.docs-lista{ display:grid; gap:2px; background:var(--gris-claro); border:1px solid var(--gris-claro); }
.doc{
  background:#fff; padding:28px 30px; text-decoration:none; color:inherit;
  display:flex; align-items:center; gap:26px; transition:.18s; position:relative;
}
.doc::before{ content:''; position:absolute; left:0; top:0; width:4px; height:100%; background:var(--hilo-v); transform:scaleY(0); transform-origin:top; transition:.26s; }
.doc:hover{ background:var(--hueso); }
.doc:hover::before{ transform:scaleY(1); }
.doc .icono{
  flex-shrink:0; width:46px; height:56px; border:2px solid var(--gris-claro); border-radius:2px;
  display:flex; align-items:flex-end; justify-content:center; padding-bottom:7px;
  font-family:var(--mono); font-size:.56rem; letter-spacing:.08em; color:var(--rojo); font-weight:500;
  background:#fff; position:relative;
}
.doc .icono::before{ content:''; position:absolute; right:-2px; top:-2px; border-width:0 12px 12px 0; border-style:solid; border-color:var(--hueso) var(--gris-claro); }
.doc:hover .icono{ border-color:var(--rojo); }
.doc .txt{ flex:1; min-width:0; }
.doc .txt b{ display:block; font-size:1.06rem; font-weight:700; letter-spacing:-0.022em; line-height:1.35; color:var(--tinta); }
.doc .txt span{ display:block; font-size:.9rem; color:var(--gris); margin-top:6px; line-height:1.5; }
.doc .txt code{ font-family:var(--mono); font-size:.74rem; color:var(--gris); }
.doc .bajar{
  flex-shrink:0; font-family:var(--mono); font-size:.66rem; letter-spacing:.15em; text-transform:uppercase;
  color:var(--marino); font-weight:500; display:flex; align-items:center; gap:9px;
}
.doc .bajar::after{ content:'↓'; font-size:1.1rem; transition:.2s; }
.doc:hover .bajar{ color:var(--rojo); }
.doc:hover .bajar::after{ transform:translateY(4px); }

@media (max-width:640px){
  .doc{ flex-wrap:wrap; gap:16px; padding:24px 22px; }
  .doc .txt{ flex:1 1 100%; order:2; }
  .doc .bajar{ order:3; }
}

/* Tarjeta informativa, sin enlace */
.tarjeta.estatica{ cursor:default; }
.tarjeta.estatica:hover{ background:#fff; }
.tarjeta.estatica:hover::before{ transform:scaleX(0); }


/* ---------- Menú unificado ---------- */
.marca-ujed{ display:flex; align-items:center; flex-shrink:0; padding-left:18px; border-left:1px solid var(--gris-claro); }
.marca-ujed img{ height:27px; width:auto; }

.btn-pago{
  background:var(--marino); color:#fff; gap:8px;
  box-shadow:0 0 0 0 rgba(3,60,105,.5);
  animation:latido 3.4s ease-out infinite;
}
.btn-pago:hover{ background:#022c4e; animation:none; }
@keyframes latido{
  0%{ box-shadow:0 0 0 0 rgba(3,60,105,.5); }
  55%{ box-shadow:0 0 0 11px rgba(3,60,105,0); }
  100%{ box-shadow:0 0 0 0 rgba(3,60,105,0); }
}

.cta-movil{ display:none; }

@media (max-width:1300px){
  .marca-ujed{ display:none; }
}
@media (max-width:1100px){
  .cta-movil{ display:block; }
  .menu .cta-movil > a{ color:var(--rojo); font-weight:700; }
  .menu .cta-pago > a{ color:var(--marino); }
  .menu{ top:var(--nav-h); }
}

/* Video dentro del bloque del congreso */
.congreso-video{ position:relative; }
.congreso-video .video-poster{ border:3px solid rgba(255,255,255,.35); }
.congreso-video .video-poster img{ width:100%; height:330px; object-fit:cover; display:block; }
.congreso-video video{ width:100%; display:block; background:#000; border:3px solid rgba(255,255,255,.35); }
@media (max-width:1040px){ .congreso-video .video-poster img{ height:240px; } }

/* ============================================================
   PLAN DE ESTUDIOS
   ============================================================ */
.semestres{ columns:3; column-gap:36px; }
.sem{ break-inside:avoid; display:block; margin:0 0 36px; background:#fff; border:1px solid var(--gris-claro); }
.sem-cab{ background:var(--tinta); color:#fff; padding:15px 20px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.sem-cab .n{ font-family:var(--mono); font-size:.72rem; color:var(--rojo); font-weight:500; }
.sem-cab b{ font-size:.94rem; font-weight:700; letter-spacing:-0.02em; flex:1; }
.sem-cab span{ font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; color:rgba(255,255,255,.6); white-space:nowrap; }
.sem table{ width:100%; border-collapse:collapse; font-size:.9rem; }
.sem td{ padding:10px 20px; border-bottom:1px solid var(--hueso-alt); line-height:1.4; vertical-align:top; }
.sem td:last-child{ text-align:right; font-family:var(--mono); font-size:.8rem; color:var(--gris); white-space:nowrap; width:1%; }
.sem tr.optativa td{ color:var(--gris); }
.sem tr.optativa td:first-child::before{ content:'○'; color:var(--rojo); margin-right:8px; font-size:.7rem; vertical-align:1px; }
.sem tr.total td{ border-bottom:0; border-top:2px solid var(--tinta); font-weight:700; color:var(--tinta); background:var(--hueso); }
.sem tr.total td:last-child{ color:var(--tinta); font-weight:700; font-size:.92rem; }

.leyenda{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:2px;
  background:var(--gris-claro); border:1px solid var(--gris-claro); margin-bottom:40px; }
.leyenda div{ background:#fff; padding:18px 22px; }
.leyenda b{ display:block; font-family:var(--mono); font-size:.68rem; letter-spacing:.16em; color:var(--rojo); margin-bottom:6px; }
.leyenda span{ font-size:.9rem; color:var(--gris); line-height:1.45; }

.total-creditos{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  background:var(--tinta); color:#fff; padding:28px 34px; margin-top:2px; }
.total-creditos span{ font-family:var(--mono); font-size:.7rem; letter-spacing:.17em; text-transform:uppercase; color:rgba(255,255,255,.65); }
.total-creditos b{ font-size:2.6rem; font-weight:800; letter-spacing:-0.045em; line-height:1; }

.area{ background:#fff; border:1px solid var(--gris-claro); margin-bottom:2px; }
.area-cab{ padding:18px 24px; border-bottom:1px solid var(--gris-claro); display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; }
.area-cab b{ font-size:1rem; letter-spacing:-0.02em; }
.area-cab em{ font-style:normal; font-family:var(--mono); font-size:.64rem; letter-spacing:.15em; text-transform:uppercase; color:var(--rojo); }
.area ol{ margin:0; padding:0; list-style:none; counter-reset:opt; }
.area li{ counter-increment:opt; display:flex; align-items:baseline; gap:14px; padding:11px 24px; border-bottom:1px solid var(--hueso-alt); font-size:.94rem; }
.area li:last-child{ border-bottom:0; }
.area li::before{ content:counter(opt,decimal-leading-zero); font-family:var(--mono); font-size:.72rem; color:var(--gris); flex-shrink:0; }
.area li .cr{ margin-left:auto; font-family:var(--mono); font-size:.8rem; color:var(--rojo); white-space:nowrap; }

@media (max-width:1040px){ .semestres{ columns:2; column-gap:28px; } }
@media (max-width:700px){ .semestres{ columns:1; } .sem{ margin-bottom:24px; } }
@media (max-width:640px){
  .sem td{ padding:9px 16px; }
  .total-creditos{ padding:22px 20px; }
  .total-creditos b{ font-size:2.1rem; }
}

/* ============================================================
   SERVICIOS A LA COMUNIDAD
   ============================================================ */
.programa-com{ display:grid; grid-template-columns:.88fr 1.12fr; gap:0;
  border:1px solid var(--gris-claro); background:#fff; margin-bottom:56px; }
.programa-com:nth-child(even){ grid-template-columns:1.12fr .88fr; }
.programa-com:nth-child(even) .pc-foto{ order:2; }
.programa-com .pc-foto{ background:var(--hueso); }
.programa-com .pc-foto img{ width:100%; height:100%; min-height:360px; object-fit:cover; display:block; }
.programa-com .pc-foto.contener img{ object-fit:contain; padding:38px; background:#fff; }
.pc-txt{ padding:40px 44px; }
.pc-txt .sigla{ display:block; font-family:var(--mono); font-size:.66rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--rojo); margin-bottom:14px;
  padding-bottom:14px; border-bottom:2px solid var(--hueso-alt); }
.pc-txt h3{ font-size:clamp(1.2rem,1.9vw,1.55rem); margin-bottom:7px; }
.pc-txt .lema{ font-family:var(--serif); font-style:italic; font-size:1.06rem; color:var(--marino);
  margin-bottom:18px; display:block; }
.pc-txt p{ font-size:.96rem; color:var(--gris); line-height:1.7; margin-bottom:1.1em; }
.pc-datos{ list-style:none; margin:26px 0 0; padding:20px 0 0; border-top:1px solid var(--gris-claro); display:grid; gap:9px; }
.pc-datos li{ display:flex; gap:14px; font-size:.9rem; color:var(--tinta); }
.pc-datos b{ font-family:var(--mono); font-size:.64rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gris); min-width:96px; padding-top:3px; font-weight:500; }

@media (max-width:860px){
  .programa-com, .programa-com:nth-child(even){ grid-template-columns:1fr; }
  .programa-com:nth-child(even) .pc-foto{ order:0; }
  .programa-com .pc-foto img{ min-height:230px; }
  .pc-txt{ padding:28px 24px; }
  .pc-datos b{ min-width:0; }
}

/* ============================================================
   INVESTIGACIÓN
   ============================================================ */
.ca-tabla{ width:100%; border-collapse:collapse; font-size:.93rem;
  border:1px solid var(--gris-claro); background:#fff; }
.ca-tabla th{ background:var(--tinta); color:#fff; text-align:left; padding:14px 20px;
  font-family:var(--mono); font-size:.63rem; letter-spacing:.16em; text-transform:uppercase; font-weight:500; }
.ca-tabla td{ padding:17px 20px; border-bottom:1px solid var(--gris-claro); vertical-align:top; line-height:1.5; }
.ca-tabla tr:last-child td{ border-bottom:0; }
.ca-tabla tbody tr:hover{ background:var(--hueso); }
.ca-tabla .nombre-ca{ font-weight:700; color:var(--tinta); letter-spacing:-0.015em; }
.ca-tabla .lider{ font-size:.88rem; }
.grado-ca{ display:inline-block; font-family:var(--mono); font-size:.6rem; letter-spacing:.12em;
  text-transform:uppercase; padding:4px 10px; border-radius:2px; white-space:nowrap; }
.grado-ca.consolidado{ background:var(--marino); color:#fff; }
.grado-ca.en-consolidacion{ background:var(--hueso-alt); color:var(--gris); }

.redes{ display:grid; gap:2px; background:var(--gris-claro); border:1px solid var(--gris-claro); }
.red{ background:#fff; padding:24px 28px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.red span{ font-weight:600; letter-spacing:-0.015em; color:var(--tinta); line-height:1.4; }
.red em{ font-style:normal; font-family:var(--mono); font-size:.64rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--rojo); white-space:nowrap; }

@media (max-width:760px){
  .ca-tabla, .ca-tabla tbody, .ca-tabla tr, .ca-tabla td{ display:block; width:100%; }
  .ca-tabla thead{ display:none; }
  .ca-tabla tr{ border-bottom:1px solid var(--gris-claro); padding:8px 0; }
  .ca-tabla td{ border:0; padding:5px 20px; }
  .red{ flex-direction:column; align-items:flex-start; gap:9px; }
}

/* Congreso destacado dentro del menú */
.menu > li.cta-congreso > a{ color:var(--rojo); font-weight:700; }
.menu > li.cta-congreso > a:hover{ border-bottom-color:var(--rojo); }

/* ============================================================
   MENÚ EN DOS FILAS cuando no cabe en una sola
   ============================================================ */
@media (min-width:1101px) and (max-width:1780px){
  .nav .contenedor{ flex-wrap:wrap; justify-content:space-between;
    padding-top:12px; padding-bottom:0; min-height:0; }
  .marca{ order:1; }
  .nav-cta{ order:2; margin-left:0; }
  .menu{ order:3; flex-basis:100%; flex-wrap:wrap; justify-content:center;
    margin-top:10px; border-top:1px solid var(--hueso-alt); padding-top:2px; }
  .menu > li > a, .menu > li > button{ padding:11px 12px; font-size:.86rem; }
  .marca-ujed{ display:none; }
}
@media (min-width:1781px){
  .menu > li > a, .menu > li > button{ padding:12px 10px; font-size:.84rem; }
}
