/* Educapedia Móvil: estilos del portal.
   Cabecera y portada azul marino, acento naranjo para los botones principales, banda gris para el buscador,
   tarjetas blancas con borde suave y tarjetas de video estilo MUBI. Cambio a móvil bajo 720 px. */

:root {
  --navy: #1E2340;
  --navy-2: #2A3140;
  --navy-3: #3A4366;
  --pie: #131829;
  --ficha: #1D2026;
  --naranjo: #D9601F;
  --naranjo-osc: #BF5219;
  --naranjo-claro: #F08A4B;
  --naranjo-suave: #FBEADF;
  --pizarra-suave: #E8EBF3;
  --gris-banda: #F1F2F6;
  --texto: #1F2430;
  --texto-2: #4A5162;
  --texto-3: #6B7283;
  --linea: #DADDE6;
  --linea-2: #E8EAF0;
  --blanco: #FFFFFF;
  --verde: #2E7D32;
  --verde-suave: #E4F2E5;
  --peligro: #8E2B1E;
  --f-titulo: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-texto: 'Open Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --r-s: 8px;
  --r-m: 14px;
  --r-l: 24px;
  --sombra: 0 10px 30px rgba(20, 24, 41, .12);
  --gutter: 48px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 90px; }
body {
  margin: 0;
  font-family: var(--f-texto);
  font-size: 16px;
  line-height: 1.5;
  color: var(--texto);
  background: var(--blanco);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  -webkit-font-smoothing: antialiased;
}
main { flex: 1; outline: none; }
img { max-width: 100%; display: block; }
a { color: inherit; }
button, input, select { font: inherit; color: inherit; }
h1, h2, h3, p { margin: 0; }
:focus-visible { outline: 3px solid var(--naranjo-claro); outline-offset: 2px; }
main:focus-visible { outline: none; }

.oculto-visual {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.saltar { position: absolute; left: 16px; top: -60px; z-index: 200; padding: 10px 16px; border-radius: var(--r-s); background: var(--naranjo); color: #fff; font-weight: 700; text-decoration: none; }
.saltar:focus { top: 12px; }

.envoltura { width: 100%; max-width: 1536px; margin: 0 auto; padding: 0 var(--gutter); }

/* ---------- Botones ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 26px; border-radius: 999px; border: 2px solid transparent;
  font-family: var(--f-texto); font-weight: 800; font-size: 16px; line-height: 1.2;
  text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: background-color .15s, border-color .15s, color .15s, transform .1s;
}
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: .6; cursor: default; }
.btn-naranjo { background: var(--naranjo); color: #fff; }
.btn-naranjo:hover { background: var(--naranjo-osc); }
.btn-navy { background: var(--navy); color: #fff; }
.btn-navy:hover { background: var(--navy-3); }
.btn-borde { background: #fff; border-color: var(--navy); color: var(--navy); }
.btn-borde:hover { background: var(--gris-banda); }
.btn-borde-claro { background: transparent; border-color: rgba(255, 255, 255, .55); color: #fff; }
.btn-borde-claro:hover { border-color: #fff; background: rgba(255, 255, 255, .08); }
.btn-borde-peligro { background: #fff; border-color: var(--peligro); color: var(--peligro); }
.btn-borde-peligro:hover { background: #FBF0EE; }
.btn-grande { min-height: 60px; padding: 0 32px; font-size: 17px; }
.btn-grande[data-ver] { text-transform: uppercase; letter-spacing: .5px; font-size: 19px; }
.btn-bloque { width: 100%; }
.btn-ico { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 20px; border: 0; background: transparent; cursor: pointer; color: var(--texto-2); }
.btn-ico:hover { background: var(--gris-banda); color: var(--texto); }
.btn-texto-peligro { border: 0; background: none; padding: 8px 4px; cursor: pointer; color: var(--peligro); font-weight: 800; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
.enlace-subrayado { color: var(--navy); font-weight: 800; text-decoration: none; border-bottom: 2.5px solid var(--navy); padding-bottom: 2px; white-space: nowrap; }
.enlace-subrayado:hover { color: var(--naranjo); border-color: var(--naranjo); }
.enlace-fuerte { color: var(--navy); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 2px; }
.ico { flex-shrink: 0; }

/* ---------- Cabecera ---------- */
.cabecera { position: sticky; top: 0; z-index: 50; background: var(--navy-2); color: #fff; }
.cabecera-in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 84px; }
.logo { position: relative; display: inline-flex; flex-direction: column; align-items: flex-end; text-decoration: none; color: #fff; line-height: 1; }
.logo img { height: 56px; width: auto; }
.nav { display: flex; align-items: center; gap: 14px; }
.nav-btn {
  display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 20px;
  border-radius: 999px; border: 2px solid transparent; color: #fff; text-decoration: none;
  font-weight: 800; font-size: 17px; transition: background-color .15s, border-color .15s;
}
.nav-btn:hover { background: rgba(255, 255, 255, .08); }
.nav-btn-borde { border-color: rgba(255, 255, 255, .85); }
.nav-btn.activo { background: var(--naranjo); border-color: var(--naranjo); }
.nav-ico { display: inline-flex; }

/* ---------- Pie ---------- */
.pie { background: var(--pie); color: #fff; margin-top: 64px; }
.pie-in { display: flex; align-items: center; justify-content: space-between; gap: 20px 32px; flex-wrap: wrap; padding-top: 36px; padding-bottom: 36px; }
.logo-pie img { height: 48px; }
.pie-links { display: flex; flex-wrap: wrap; gap: 10px 32px; }
.pie-links a { color: #D7DAE4; text-decoration: none; font-weight: 600; font-size: 16px; }
.pie-links a:hover { color: #fff; text-decoration: underline; }

/* ---------- Títulos de página ---------- */
.pagina { padding-top: 56px; }
.pagina-angosta { max-width: 912px; }
.pagina-titulo { font-family: var(--f-titulo); font-weight: 700; font-size: 60px; line-height: 1.08; letter-spacing: -1px; color: var(--texto); }
.pagina-bajada { margin-top: 14px; font-size: 21px; color: var(--texto-2); }
.titulo-mayus { font-family: var(--f-texto); font-weight: 800; text-transform: uppercase; font-size: 56px; line-height: 1.05; letter-spacing: .5px; }
.etiqueta-naranja { color: var(--naranjo); font-weight: 800; text-transform: uppercase; letter-spacing: 1px; font-size: 14px; margin-bottom: 10px; }
.seccion { padding-top: 64px; }
.seccion-enc { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; margin-bottom: 28px; }
.seccion-titulo { font-family: var(--f-titulo); font-weight: 700; font-size: 40px; line-height: 1.15; letter-spacing: -.5px; }
.titulo-mayus-chico { font-family: var(--f-texto); font-weight: 800; text-transform: uppercase; font-size: 30px; letter-spacing: .5px; }

/* ---------- Hero ---------- */
.hero { background: var(--navy); color: #fff; }
.hero-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; padding-top: 68px; padding-bottom: 76px; }
.hero-titulo { font-family: var(--f-titulo); font-weight: 700; font-size: 64px; line-height: 1.06; letter-spacing: -1.2px; max-width: 12ch; }
.hero-bajada { margin-top: 26px; font-size: 21px; line-height: 1.55; color: #E3E6EF; max-width: 34ch; }
.hero-acciones { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.hero-foto { position: relative; border-radius: var(--r-l); overflow: hidden; aspect-ratio: 4 / 3; background: #E6E9F1; }
.hero-foto img, .hero-ilu { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* ---------- Buscador ---------- */
.banda-busqueda { background: var(--gris-banda); padding: 72px 0; }
.banda-busqueda-in { display: flex; flex-direction: column; align-items: center; gap: 20px; }
.banda-busqueda-izq { max-width: 1060px; align-items: stretch; }
.banda-busqueda-izq .banda-titulo { text-align: left; }
.banda-titulo { font-family: var(--f-titulo); font-weight: 700; font-size: 44px; line-height: 1.15; letter-spacing: -.5px; color: var(--navy); text-align: center; }
.buscador { width: 100%; max-width: 1000px; display: flex; flex-direction: column; gap: 10px; }
.banda-busqueda-izq .buscador { max-width: none; }
.buscador-etiqueta { font-weight: 700; font-size: 17px; color: var(--texto); }
.buscador-caja { display: flex; align-items: stretch; height: 76px; border: 2px solid var(--navy); border-radius: 999px; background: #fff; overflow: hidden; }
.buscador-caja:focus-within { box-shadow: 0 0 0 4px rgba(217, 96, 31, .25); }
.buscador-caja input { flex: 1; min-width: 0; border: 0; outline: none; padding: 0 30px; font-size: 20px; background: transparent; }
.buscador-caja input::placeholder { color: #7D8494; }
.buscador-caja input::-webkit-search-cancel-button { cursor: pointer; }
.buscador-btn { display: inline-flex; align-items: center; gap: 10px; border: 0; padding: 0 34px; background: var(--naranjo); color: #fff; font-weight: 800; font-size: 20px; cursor: pointer; }
.buscador-btn:hover { background: var(--naranjo-osc); }
.sugeridas { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px; margin-top: 14px; }
.sugeridas-etiqueta { font-weight: 700; font-size: 16px; }
.chip {
  display: inline-flex; align-items: center; min-height: 46px; padding: 0 20px; border-radius: 999px;
  border: 2px solid var(--navy); background: #fff; color: var(--navy); text-decoration: none;
  font-weight: 700; font-size: 16px; white-space: nowrap; transition: background-color .15s, color .15s;
}
.chip:hover { background: var(--navy); color: #fff; }
.chip[aria-current] { background: var(--navy); color: #fff; }
.banda-busqueda-compacta { padding: 44px 0 40px; }
.banda-busqueda-compacta .buscador { max-width: 1000px; }

/* ---------- Temáticas ---------- */
.grilla-tematicas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.grilla-tematicas-detalle { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 40px; }
.tcard {
  display: flex; align-items: center; gap: 18px; min-height: 96px; padding: 18px 22px;
  border: 2px solid var(--linea); border-radius: var(--r-m); background: #fff; text-decoration: none;
  transition: border-color .15s, box-shadow .15s, transform .15s;
}
.tcard:hover { border-color: var(--naranjo); box-shadow: var(--sombra); transform: translateY(-2px); }
.tcard-detalle { min-height: 136px; padding: 26px 28px; gap: 22px; }
.tcard-ico { width: 54px; height: 54px; border-radius: 12px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: var(--naranjo-suave); color: var(--naranjo-osc); }
.tcard-detalle .tcard-ico { width: 76px; height: 76px; border-radius: 16px; }
.tcard-detalle .tcard-ico .ico { width: 28px; height: 28px; }
.tcard-ico[data-icono="libro"], .tcard-ico[data-icono="olla"] { background: var(--pizarra-suave); color: var(--navy); }
.tcard-txt { flex: 1; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.tcard-nombre { font-weight: 800; font-size: 20px; line-height: 1.25; color: var(--texto); }
.tcard-detalle .tcard-nombre { font-size: 25px; }
.tcard-sub { font-size: 18px; color: var(--texto-2); }
.tcard-flecha { color: var(--naranjo); display: flex; }

/* ---------- Página de temática ---------- */
.migas { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 17px; color: var(--texto-2); font-weight: 600; }
.migas a { text-decoration: none; }
.migas a:hover { color: var(--naranjo); text-decoration: underline; }
.migas [aria-current] { color: var(--texto); }
.migas-sep { color: var(--texto-3); }
.tematica-enc { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px 32px; margin-top: 40px; }
.tematica-bajada { margin-top: 12px; font-size: 21px; color: var(--texto-2); }
.tematica-rango { display: inline-block; margin-left: 8px; padding: 2px 12px; border-radius: 999px; background: var(--naranjo-suave); color: var(--naranjo-osc); font-weight: 700; font-size: 16px; vertical-align: 2px; }
.tematica-cuenta { font-weight: 800; font-size: 18px; color: var(--texto-2); white-space: nowrap; }
.pestanas { margin-top: 44px; border-bottom: 2px solid var(--linea-2); }
.pestanas-in { display: flex; gap: 34px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.pestanas-in::-webkit-scrollbar { display: none; }
.pestana {
  flex-shrink: 0; padding: 14px 0 16px; margin-bottom: -2px; border-bottom: 4px solid transparent;
  font-weight: 800; font-size: 18px; text-transform: uppercase; letter-spacing: .4px; color: #5B6272; text-decoration: none; white-space: nowrap;
}
.pestana:hover { color: var(--texto); }
.pestana[aria-current] { color: var(--texto); border-bottom-color: var(--naranjo); }
.controles { display: flex; align-items: center; justify-content: space-between; gap: 14px 24px; flex-wrap: wrap; margin: 34px 0 34px; }
.chips-filtro { display: flex; flex-wrap: wrap; gap: 10px; }
.chips-filtro .chip { min-height: 44px; font-size: 15px; }
.selector-orden select {
  appearance: none; -webkit-appearance: none; min-height: 60px; min-width: 210px; padding: 0 48px 0 22px;
  border: 2px solid var(--linea); border-radius: var(--r-s); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231F2430' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 18px center;
  font-weight: 800; font-size: 18px; cursor: pointer;
}
.selector-orden select:hover { border-color: var(--texto-3); }
.cargar-mas { display: flex; justify-content: center; margin-top: 48px; }
.cargar-mas .btn { min-height: 64px; padding: 0 40px; font-size: 19px; }
.cargar-mas[hidden] { display: none; }
.vacio { padding: 40px 0; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; font-size: 18px; color: var(--texto-2); }

/* ---------- Tarjeta de video (estilo MUBI) ---------- */
.grilla-videos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px 22px; }
.vcard {
  position: relative; display: block; aspect-ratio: 3 / 2; border-radius: var(--r-s); overflow: hidden;
  background: linear-gradient(180deg, var(--tono, #3A4146) 0%, #16181D 100%); color: #fff; text-decoration: none;
  isolation: isolate; box-shadow: 0 1px 2px rgba(0, 0, 0, .12);
}
.vcard-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .4s ease; }
.vcard::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(14, 16, 22, 0) 30%, rgba(14, 16, 22, .55) 58%, rgba(14, 16, 22, .94) 100%); }
.vcard:hover .vcard-img, .vcard:focus-visible .vcard-img { transform: scale(1.04); }
.vcard-texto { position: absolute; left: 0; right: 0; bottom: 0; padding: 18px 22px 20px; display: flex; flex-direction: column; gap: 6px; }
.vcard-titulo {
  font-weight: 800; font-size: 21px; line-height: 1.15; text-transform: uppercase; letter-spacing: .2px;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
}
.vcard-meta { font-weight: 800; font-size: 13px; letter-spacing: .7px; text-transform: uppercase; color: #E9EAEE; }
.vcard-tematica { position: absolute; top: 14px; left: 14px; padding: 5px 12px; border-radius: 999px; background: #fff; color: var(--navy); font-weight: 800; font-size: 14px; max-width: calc(100% - 64px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vcard-candado { position: absolute; top: 12px; right: 12px; width: 32px; height: 32px; border-radius: 16px; display: flex; align-items: center; justify-content: center; background: rgba(14, 16, 22, .7); color: #fff; }

/* ---------- Ficha del video ---------- */
.ficha { position: relative; background: var(--ficha); color: #fff; overflow: hidden; isolation: isolate; }
.ficha-media { position: absolute; top: 0; right: 0; bottom: 0; width: 62%; z-index: -2; background: linear-gradient(135deg, var(--tono, #3A4146), #2B2F37); }
.ficha-media img { width: 100%; height: 100%; object-fit: cover; }
.ficha-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, var(--ficha) 0%, rgba(29, 32, 38, .82) 22%, rgba(29, 32, 38, .2) 60%, rgba(29, 32, 38, .05) 100%), linear-gradient(0deg, rgba(29, 32, 38, .5), transparent 35%); }
.ficha-in { min-height: 640px; display: flex; align-items: center; padding-top: 64px; padding-bottom: 72px; }
.ficha-texto { max-width: 640px; }
.ficha-tematica { display: inline-flex; align-items: center; gap: 6px; color: var(--naranjo-claro); font-weight: 800; text-transform: uppercase; letter-spacing: .8px; font-size: 17px; text-decoration: none; }
.ficha-tematica:hover { color: #fff; }
.ficha-titulo { margin-top: 14px; font-weight: 800; font-size: 64px; line-height: 1.03; text-transform: uppercase; letter-spacing: .3px; overflow-wrap: anywhere; }
.ficha-datos { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; margin-top: 24px; font-size: 18px; }
.ficha-especialista { font-weight: 800; text-transform: uppercase; letter-spacing: .4px; }
.ficha-duracion { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; }
.ficha-subtema { padding: 2px 10px; border: 1.5px solid rgba(255, 255, 255, .8); border-radius: 4px; font-weight: 800; font-size: 13px; text-transform: uppercase; letter-spacing: .5px; }
.ficha-desc { margin-top: 22px; font-size: 20px; line-height: 1.6; color: #E4E6EC; }
.ficha-acciones { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 34px; }
.ficha-nota { display: flex; align-items: center; gap: 8px; margin-top: 18px; font-size: 15px; color: #C9CDD8; }

/* ---------- Reproductor ---------- */
.reproductor { position: fixed; inset: 0; z-index: 120; background: #000; display: flex; flex-direction: column; animation: fundido .2s ease both; }
.reproductor-barra { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 16px 12px 24px; color: #fff; }
.reproductor-titulo { font-weight: 800; text-transform: uppercase; letter-spacing: .4px; font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.reproductor-cerrar { display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 0 18px; border-radius: 999px; border: 2px solid rgba(255, 255, 255, .6); background: transparent; color: #fff; font-weight: 800; cursor: pointer; flex-shrink: 0; }
.reproductor-cerrar:hover { background: rgba(255, 255, 255, .12); border-color: #fff; }
.reproductor-marco { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; padding: 0 0 16px; }
.reproductor-marco iframe { width: min(100vw, calc((100vh - 86px) * 16 / 9)); aspect-ratio: 16 / 9; border: 0; background: #000; }
body.reproduciendo { overflow: hidden; }

/* ---------- Resultados ---------- */
.pagina-resultados { padding-top: 44px; }
.resultados-enc { display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; margin-bottom: 34px; }
.resultados-titulo { font-family: var(--f-texto); font-weight: 800; font-size: 40px; line-height: 1.15; overflow-wrap: anywhere; }
.vacio-busqueda { padding: 0 0 28px; }
.vacio-busqueda p { max-width: 60ch; }

/* ---------- Perfil ---------- */
.perfil-caja { margin-top: 40px; padding: 38px 38px 34px; border: 2px solid var(--linea); border-radius: var(--r-l); }
.perfil-fila { display: flex; align-items: center; gap: 24px; padding-bottom: 28px; border-bottom: 1.5px solid var(--linea-2); }
.perfil-ico { width: 86px; height: 86px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: var(--naranjo-suave); color: var(--naranjo-osc); }
.perfil-numero { flex: 1; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.perfil-etiqueta { font-weight: 700; font-size: 17px; color: var(--texto-2); }
.perfil-numero b { font-weight: 800; font-size: 34px; line-height: 1.15; letter-spacing: .5px; }
.perfil-numero .perfil-inv-titulo { font-size: 26px; letter-spacing: 0; }
.estado-sus { display: inline-flex; align-items: center; gap: 8px; padding: 8px 18px; border-radius: 999px; font-weight: 800; font-size: 16px; white-space: nowrap; }
.estado-sus > span { width: 9px; height: 9px; border-radius: 50%; background: currentColor; }
.estado-activa { background: var(--verde-suave); color: #1F5E24; }
.estado-proceso { background: var(--naranjo-suave); color: #8A3A10; }
.estado-cancelada { background: var(--gris-banda); color: var(--texto-2); }
.perfil-nota { margin-top: 26px; font-size: 18px; line-height: 1.6; color: var(--texto-2); }
.perfil-acciones { display: flex; align-items: center; flex-wrap: wrap; gap: 16px 36px; margin-top: 34px; }
.perfil-acciones .btn { min-height: 64px; padding: 0 34px; font-size: 18px; }
.perfil-error { display: flex; gap: 12px; align-items: flex-start; margin-top: 20px; padding: 14px 18px; border-radius: var(--r-m); background: #FBF0EE; color: var(--peligro); }

/* ---------- Páginas informativas ---------- */
.info-cuerpo { margin-top: 30px; font-size: 18px; line-height: 1.65; color: var(--texto-2); }
.info-cuerpo h2 { margin: 34px 0 10px; font-family: var(--f-titulo); font-size: 26px; color: var(--texto); }
.info-cuerpo p + p { margin-top: 12px; }
.info-cuerpo ul { padding-left: 22px; margin: 10px 0 14px; }
.no-encontrado { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.no-encontrado .btn { margin-top: 24px; }

/* ---------- Modales ---------- */
.modal-capa { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(20, 24, 33, .62); animation: fundido .18s ease both; }
.modal-capa.saliendo { animation: fundido .18s reverse both; }
.modal { width: min(var(--ancho, 560px), 100%); max-height: calc(100vh - 48px); display: flex; flex-direction: column; border-radius: var(--r-l); background: #fff; box-shadow: 0 24px 60px rgba(0, 0, 0, .3); animation: aparecer .22s ease both; }
.modal-enc { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 40px 42px 12px; }
.modal-enc h2 { font-family: var(--f-titulo); font-weight: 700; font-size: 34px; line-height: 1.18; letter-spacing: -.3px; }
.modal-cerrar { margin: -6px -10px 0 0; }
.modal-cuerpo { padding: 6px 42px 40px; overflow-y: auto; display: flex; flex-direction: column; gap: 18px; }
.modal-texto { font-size: 19px; line-height: 1.6; color: var(--texto-2); }
.modal-botones { display: flex; flex-direction: column; gap: 14px; margin-top: 12px; }
.modal-botones .btn { min-height: 64px; font-size: 18px; }
body.modal-abierto { overflow: hidden; }
.muro { display: flex; flex-direction: column; gap: 16px; }
.muro-etiqueta { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px; background: var(--naranjo-suave); color: #8A3A10; font-size: 13px; font-weight: 800; order: -1; }
.muro-texto { font-size: 17px; color: var(--texto-2); line-height: 1.55; }
.muro-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.muro-lista li { display: flex; align-items: center; gap: 12px; font-size: 16px; font-weight: 600; }
.muro-lista li > span { width: 32px; height: 32px; border-radius: 16px; background: var(--naranjo-suave); color: var(--naranjo-osc); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.muro-pie { font-size: 14px; color: var(--texto-3); text-align: center; }

/* ---------- Avisos y carga ---------- */
.toast { position: fixed; left: 50%; bottom: 24px; z-index: 130; max-width: calc(100% - 32px); padding: 14px 22px; border-radius: 999px; background: var(--navy); color: #fff; font-weight: 700; font-size: 15px; box-shadow: var(--sombra); transform: translate(-50%, 160%); transition: transform .3s ease; pointer-events: none; }
.toast.visible { transform: translate(-50%, 0); }
.cargando-portal { min-height: 50vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; font-weight: 700; color: var(--texto-2); text-align: center; }
.cargando-portal small { font-weight: 400; max-width: 34ch; }
.cargando-anillo { width: 34px; height: 34px; border-radius: 50%; border: 3px solid var(--linea); border-top-color: var(--naranjo); animation: girar .8s linear infinite; }
.aviso-previa { position: sticky; top: 0; z-index: 60; padding: 8px 16px; text-align: center; font-size: 14px; font-weight: 700; background: var(--naranjo); color: #fff; }
.aviso-previa a { text-decoration: underline; }
body:has(.aviso-previa) .cabecera { top: 37px; }

@keyframes fundido { from { opacity: 0; } to { opacity: 1; } }
@keyframes aparecer { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes subir { from { transform: translateY(100%); } to { transform: none; } }
@keyframes girar { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ---------- Pantallas medianas ---------- */
@media (max-width: 1180px) {
  :root { --gutter: 32px; }
  .grilla-tematicas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grilla-tematicas-detalle { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grilla-videos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hero-titulo { font-size: 52px; }
  .ficha-titulo { font-size: 52px; }
  .pagina-titulo, .titulo-mayus { font-size: 48px; }
}
@media (max-width: 960px) {
  .hero-in { gap: 36px; }
  .hero-titulo { font-size: 44px; }
  .ficha-media { width: 75%; }
}

/* ---------- Móvil (bajo 720 px) ---------- */
@media (max-width: 719.98px) {
  :root { --gutter: 16px; }
  html { scroll-padding-top: 76px; }
  .cabecera-in { min-height: 64px; }
  .logo img { height: 44px; }
  .nav { gap: 6px; }
  .nav-txt { display: none; }
  .nav-btn { min-height: 44px; padding: 0 12px; }
  .nav-btn-borde { padding: 0 20px; }
  .pie { margin-top: 48px; }
  .pie-in { flex-direction: column; align-items: flex-start; gap: 16px; padding-top: 28px; padding-bottom: 32px; }
  .logo-pie { align-items: flex-start; }
  .pie-links { gap: 8px 24px; }
  .pie-links a { font-size: 15px; }

  .pagina { padding-top: 32px; }
  .pagina-titulo { font-size: 36px; }
  .pagina-bajada { font-size: 17px; margin-top: 10px; }
  .titulo-mayus { font-size: 32px; }
  .seccion { padding-top: 40px; }
  .seccion-enc { flex-direction: column; align-items: flex-start; gap: 8px; margin-bottom: 20px; }
  .seccion-titulo { font-size: 26px; }
  .titulo-mayus-chico { font-size: 24px; }

  .hero-in { grid-template-columns: 1fr; gap: 28px; padding-top: 32px; padding-bottom: 40px; }
  .hero-titulo { font-size: 34px; letter-spacing: -.6px; max-width: none; }
  .hero-bajada { margin-top: 16px; font-size: 17px; }
  .hero-acciones { flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 22px; }
  .hero-acciones .btn { min-height: 48px; font-size: 15px; }
  .hero-foto { aspect-ratio: 5 / 4; border-radius: 18px; }

  .banda-busqueda { padding: 36px 0 40px; }
  .banda-busqueda-in { gap: 14px; }
  .banda-titulo { font-size: 26px; }
  .buscador-etiqueta { font-size: 14px; }
  .buscador-caja { height: 54px; }
  .buscador-caja input { padding: 0 16px; font-size: 16px; }
  .buscador-btn { padding: 0 16px; font-size: 15px; gap: 6px; }
  .sugeridas { gap: 8px; margin-top: 8px; }
  .sugeridas-etiqueta { font-size: 14px; }
  .chip { min-height: 40px; padding: 0 14px; font-size: 14px; }
  .banda-busqueda-compacta { padding: 24px 0 28px; }

  .grilla-tematicas, .grilla-tematicas-detalle { grid-template-columns: 1fr; gap: 12px; }
  .grilla-tematicas-detalle { margin-top: 24px; }
  .tcard { min-height: 72px; padding: 12px 16px; gap: 14px; }
  .tcard-ico { width: 44px; height: 44px; border-radius: 10px; }
  .tcard-ico .ico { width: 20px; height: 20px; }
  .tcard-nombre { font-size: 16px; }
  .tcard-detalle { min-height: 0; padding: 16px; }
  .tcard-detalle .tcard-ico { width: 56px; height: 56px; }
  .tcard-detalle .tcard-nombre { font-size: 19px; }
  .tcard-sub { font-size: 15px; }

  .migas { font-size: 14px; gap: 6px; }
  .tematica-enc { flex-direction: column; align-items: flex-start; gap: 10px; margin-top: 20px; }
  .tematica-bajada { font-size: 16px; margin-top: 8px; }
  .tematica-cuenta { font-size: 15px; }
  .pestanas { margin-top: 24px; margin-left: calc(-1 * var(--gutter)); margin-right: calc(-1 * var(--gutter)); }
  .pestanas-in { gap: 22px; padding: 0 var(--gutter); }
  .pestana { font-size: 14px; padding: 10px 0 12px; }
  .controles { flex-direction: column; align-items: flex-start; margin: 20px 0 20px; gap: 12px; }
  .chips-filtro { flex-wrap: nowrap; overflow-x: auto; max-width: 100%; scrollbar-width: none; }
  .chips-filtro .chip { min-height: 38px; }
  .selector-orden select { min-height: 46px; min-width: 0; font-size: 15px; padding: 0 40px 0 14px; }
  .cargar-mas { margin-top: 28px; }
  .cargar-mas .btn { min-height: 52px; font-size: 16px; padding: 0 30px; }

  .grilla-videos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 10px; }
  .vcard { aspect-ratio: 8 / 7; border-radius: 6px; }
  .vcard-texto { padding: 10px 12px 12px; gap: 4px; }
  .vcard-titulo { font-size: 14px; line-height: 1.15; }
  .vcard-meta { font-size: 10px; letter-spacing: .4px; }
  .vcard-tematica { top: 8px; left: 8px; padding: 3px 9px; font-size: 11px; max-width: calc(100% - 48px); }
  .vcard-candado { top: 8px; right: 8px; width: 26px; height: 26px; }
  .vcard-candado .ico { width: 12px; height: 12px; }

  .ficha-media { position: relative; width: 100%; aspect-ratio: 16 / 9; }
  .ficha-media::after { background: linear-gradient(0deg, var(--ficha) 0%, rgba(29, 32, 38, 0) 45%); }
  .ficha-in { min-height: 0; padding-top: 22px; padding-bottom: 36px; }
  .ficha-tematica { font-size: 14px; }
  .ficha-titulo { margin-top: 10px; font-size: 30px; }
  .ficha-datos { margin-top: 14px; font-size: 15px; gap: 8px 16px; }
  .ficha-desc { margin-top: 16px; font-size: 16px; }
  .ficha-acciones { flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 24px; }
  .btn-grande { min-height: 52px; padding: 0 26px; font-size: 16px; }
  .btn-grande[data-ver] { font-size: 17px; padding: 0 34px; }

  .reproductor-barra { padding: 8px 8px 8px 16px; }
  .reproductor-titulo { font-size: 14px; }
  .reproductor-marco iframe { width: 100vw; }

  .resultados-titulo { font-size: 24px; }
  .resultados-enc { flex-direction: column; align-items: flex-start; margin-bottom: 20px; gap: 12px; }
  .pagina-resultados { padding-top: 24px; }

  .perfil-caja { margin-top: 24px; padding: 22px 18px; border-radius: 18px; }
  .perfil-fila { flex-wrap: wrap; gap: 14px; padding-bottom: 20px; }
  .perfil-ico { width: 56px; height: 56px; }
  .perfil-ico .ico { width: 22px; height: 22px; }
  .perfil-numero { flex-basis: calc(100% - 72px); }
  .perfil-etiqueta { font-size: 14px; }
  .perfil-numero b { font-size: 24px; }
  .perfil-numero .perfil-inv-titulo { font-size: 20px; }
  .estado-sus { font-size: 14px; padding: 6px 14px; }
  .perfil-nota { margin-top: 18px; font-size: 16px; }
  .perfil-acciones { flex-direction: column; align-items: flex-start; gap: 18px; margin-top: 24px; }
  .perfil-acciones .btn { min-height: 52px; font-size: 16px; }

  .info-cuerpo { font-size: 16px; }
  .info-cuerpo h2 { font-size: 21px; }

  .modal-capa { align-items: flex-end; padding: 0; }
  .modal { width: 100%; max-height: 92vh; border-radius: 22px 22px 0 0; animation: subir .3s ease both; }
  .modal-enc { padding: 26px 20px 8px; }
  .modal-enc h2 { font-size: 26px; }
  .modal-cuerpo { padding: 4px 20px calc(24px + env(safe-area-inset-bottom)); }
  .modal-texto { font-size: 16px; }
  .modal-botones .btn { min-height: 54px; font-size: 16px; }
  .toast { bottom: 16px; border-radius: 16px; }
}
