/* =========================================================================
   AELE · Hoja de estilos de la plataforma web
   Construida a partir del Manual de marca AELE v1.0 (octubre 2026):
   - Paleta: Azul AELE #01356E (60 %), blanco/crema (30 %), dorado #D6AE76 (10 %)
   - Tipografía editable: Montserrat (títulos) + Nunito Sans (textos)
   - Recursos: franja dorada, etiqueta de sección, tarjeta translúcida,
     nota con filete dorado, sticker de dato clave, botón de acción
   ========================================================================= */

:root {
  /* Paleta institucional */
  --azul: #01356E;
  --azul-profundo: #0A1C3F;
  --dorado: #D6AE76;
  --dorado-claro: #E3BC82;
  --crema: #F6F3EE;
  --blanco: #FFFFFF;
  --tinta: #14202E;
  --rojo: #C20A1E;
  /* Revistas */
  --laboral: #034988;
  --tributario: #C70410;
  --publico: #42235A;
  /* Derivados */
  --gris-texto: #4A5566;
  --gris-linea: #E6E1D8;
  --gris-suave: #F9F7F3;
  --sombra: 0 10px 30px rgba(1, 53, 110, 0.08);
  --sombra-2: 0 18px 44px rgba(1, 53, 110, 0.14);
  --radio: 14px;
  --radio-sm: 8px;
  /* Tipografía */
  --f-titulo: "Montserrat", "Segoe UI", Arial, sans-serif;
  --f-texto: "Nunito Sans", "Segoe UI", Arial, sans-serif;
  --ancho: 1240px;
  --gutter: 24px;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--f-texto);
  font-size: 17px;
  line-height: 1.6;
  color: var(--tinta);
  background: var(--crema);
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--azul); text-decoration: none; }
a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
h1, h2, h3, h4 { font-family: var(--f-titulo); color: var(--azul); line-height: 1.15; margin: 0 0 .5em; letter-spacing: -0.01em; }
h1 { font-weight: 800; font-size: clamp(2rem, 4.2vw, 3.4rem); }
h2 { font-weight: 800; font-size: clamp(1.6rem, 3vw, 2.4rem); }
h3 { font-weight: 700; font-size: 1.25rem; }
p { margin: 0 0 1em; }
.muted { color: var(--gris-texto); }
.gold { color: var(--dorado); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: -999px; top: 0; background: var(--dorado); color: var(--tinta); padding: 8px 14px; z-index: 100; }
.skip-link:focus { left: 8px; top: 8px; }

.container { width: min(100% - 2 * var(--gutter), var(--ancho)); margin-inline: auto; }

/* ---------- Etiquetas y antetítulos ---------- */
.eyebrow {
  display: inline-block;
  font-family: var(--f-titulo);
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--dorado);
  margin-bottom: .9rem;
}
.eyebrow--azul { color: var(--azul); }
.tag {
  display: inline-flex; align-items: center; gap: .4em;
  border: 1.5px solid var(--dorado);
  color: var(--dorado);
  font-family: var(--f-titulo); font-weight: 700; font-size: .68rem;
  letter-spacing: .2em; text-transform: uppercase;
  padding: .35em .9em; border-radius: 999px;
}
.tag--light { border-color: var(--azul); color: var(--azul); }
.tag--rev { border-color: var(--rev, var(--azul)); color: var(--rev, var(--azul)); }
.pill {
  display: inline-block; padding: .2em .8em; border-radius: 999px;
  font-family: var(--f-titulo); font-weight: 700; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase;
  background: #E7F1FF; color: var(--azul);
}
.pill--rojo { background: var(--rojo); color: #fff; }
.pill--dorado { background: #F6E7CB; color: #7A5A2B; }
.pill--rev { background: var(--rev, var(--azul)); color: #fff; }

/* ---------- Botones ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .55em;
  font-family: var(--f-titulo); font-weight: 700; font-size: .95rem;
  padding: .8em 1.5em; border-radius: 999px; border: 2px solid transparent;
  cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  text-decoration: none !important; line-height: 1.2;
}
.btn:hover { transform: translateY(-1px); box-shadow: var(--sombra); }
.btn--sm { font-size: .85rem; padding: .6em 1.2em; }
.btn--lg { font-size: 1.05rem; padding: 1em 1.9em; }
.btn--primary { background: var(--azul); color: #fff; }
.btn--primary:hover { background: #02407f; }
.btn--gold { background: var(--dorado); color: var(--tinta); }
.btn--gold:hover { background: var(--dorado-claro); }
.btn--outline { border-color: var(--azul); color: var(--azul); background: transparent; }
.btn--outline:hover { background: var(--azul); color: #fff; }
.btn--outline-light { border-color: rgba(255,255,255,.7); color: #fff; background: transparent; }
.btn--outline-light:hover { background: #fff; color: var(--azul); }
.btn--rojo { background: var(--rojo); color: #fff; }
.btn--rojo:hover { background: #a70818; }
.btn--whatsapp { background: var(--rojo); color: #fff; }
.btn--rev { background: var(--rev, var(--azul)); color: #fff; }

/* ---------- Barra superior y cabecera ---------- */
.topbar { background: var(--azul-profundo); color: rgba(255,255,255,.78); font-size: .8rem; }
.topbar__inner { display: flex; justify-content: space-between; align-items: center; min-height: 36px; gap: 16px; }
.topbar a { color: #fff; }
.topbar__since { color: var(--dorado); font-family: var(--f-titulo); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: .7rem; }
.topbar__sep { margin: 0 .6em; opacity: .5; }
@media (max-width: 760px) { .topbar__left { display: none; } .topbar__inner { justify-content: center; } }

.header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.96);
  backdrop-filter: saturate(1.2) blur(6px);
  border-bottom: 1px solid var(--gris-linea);
}
.header__inner { display: flex; align-items: center; justify-content: space-between; min-height: 82px; gap: 24px; }
.header__logo img { width: 150px; height: auto; }
.nav { display: flex; align-items: center; gap: 16px; }
.nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 2px; align-items: center; }
.nav__cta { display: flex; align-items: center; flex: none; white-space: nowrap; }
.nav__item { position: relative; }
.nav__link {
  display: inline-flex; align-items: center; gap: .35em;
  font-family: var(--f-titulo); font-weight: 600; font-size: .88rem;
  color: var(--tinta); padding: .55em .7em; border-radius: 8px; white-space: nowrap;
}
.nav__link:hover, .nav__link.is-active { color: var(--azul); text-decoration: none; background: var(--gris-suave); }
.nav__link.is-active { box-shadow: inset 0 -3px 0 var(--dorado); border-radius: 8px 8px 0 0; background: transparent; }
.nav__caret { opacity: .6; }
.nav__sub {
  list-style: none; margin: 0; padding: 8px;
  position: absolute; top: calc(100% + 6px); left: 0; min-width: 240px;
  background: #fff; border: 1px solid var(--gris-linea); border-radius: 12px; box-shadow: var(--sombra-2);
  opacity: 0; visibility: hidden; transform: translateY(6px); transition: all .18s ease;
}
.nav__item--has-sub:hover .nav__sub, .nav__item--has-sub:focus-within .nav__sub { opacity: 1; visibility: visible; transform: none; }
.nav__sublink { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 8px; font-weight: 600; font-size: .92rem; color: var(--tinta); }
.nav__sublink:hover { background: var(--gris-suave); text-decoration: none; color: var(--rev); }
.nav__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--rev); flex: none; }
.nav-toggle { display: none; background: none; border: 0; padding: 8px; cursor: pointer; }
.nav-toggle__bar { display: block; width: 24px; height: 2.5px; background: var(--azul); margin: 5px 0; border-radius: 2px; transition: .2s; }

@media (max-width: 1180px) {
  .nav-toggle { display: block; }
  .nav {
    position: fixed; inset: 0; top: 0; background: var(--azul); padding: 100px 28px 40px;
    flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 16px;
    transform: translateX(100%); transition: transform .25s ease; overflow-y: auto; z-index: 60;
  }
  .nav.is-open { transform: none; }
  .nav__list { flex-direction: column; align-items: stretch; gap: 2px; }
  .nav__link { color: #fff; font-size: 1.15rem; padding: .7em .6em; }
  .nav__link:hover, .nav__link.is-active { background: rgba(255,255,255,.08); color: var(--dorado); box-shadow: none; }
  .nav__sub { position: static; opacity: 1; visibility: visible; transform: none; background: transparent; border: 0; box-shadow: none; padding: 0 0 0 16px; }
  .nav__sublink { color: rgba(255,255,255,.85); }
  .nav__sublink:hover { color: #fff; background: rgba(255,255,255,.08); }
  .nav__cta { margin-top: 12px; }
  .nav__cta .btn { width: 100%; background: var(--dorado); color: var(--tinta); }
  body.nav-open { overflow: hidden; }
  body.nav-open .nav-toggle { position: relative; z-index: 70; }
  body.nav-open .nav-toggle__bar { background: #fff; }
  body.nav-open .nav-toggle__bar:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
  body.nav-open .nav-toggle__bar:nth-child(2) { opacity: 0; }
  body.nav-open .nav-toggle__bar:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }
}

/* ---------- Secciones y bloques ---------- */
.section { padding: 72px 0; }
.section--tight { padding: 48px 0; }
.section--white { background: #fff; }
.section--azul { background: var(--azul); color: #fff; }
.section--azul h2, .section--azul h3 { color: #fff; }
.section--profundo { background: var(--azul-profundo); color: #fff; }
.section--profundo h2, .section--profundo h3 { color: #fff; }
.section__head { max-width: 760px; margin-bottom: 40px; }
.section__head--center { margin-inline: auto; text-align: center; }
.section__head p { color: var(--gris-texto); font-size: 1.1rem; }
.section--azul .section__head p, .section--profundo .section__head p { color: rgba(255,255,255,.8); }
.section__head--row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; max-width: none; }
@media (max-width: 700px) { .section__head--row { flex-direction: column; align-items: flex-start; } }

.grid { display: grid; gap: 24px; }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 980px) { .grid--3, .grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .grid--2, .grid--3, .grid--4 { grid-template-columns: 1fr; } }

/* Tarjeta blanca con borde superior de color (manual p. 39) */
.card {
  background: #fff; border-radius: var(--radio); box-shadow: var(--sombra);
  border-top: 5px solid var(--rev, var(--azul)); padding: 28px; position: relative;
  display: flex; flex-direction: column; gap: 10px;
  transition: transform .15s ease, box-shadow .15s ease;
}
.card:hover { transform: translateY(-3px); box-shadow: var(--sombra-2); }
.card--gold { --rev: var(--dorado); }
.card--flat { box-shadow: none; border: 1px solid var(--gris-linea); border-top-width: 5px; }
.card__meta { font-size: .85rem; color: var(--gris-texto); }
.card h3 a { color: inherit; }
.card .btn { align-self: flex-start; margin-top: auto; }

/* Franja dorada diagonal (cierre de marca) */
.franja { position: relative; overflow: hidden; }
.franja::after {
  content: ""; position: absolute; right: -40px; top: -20%; height: 140%; width: 46px;
  background: var(--dorado); transform: rotate(18deg); opacity: .95; pointer-events: none;
}
.franja::before {
  content: ""; position: absolute; right: -96px; top: -20%; height: 140%; width: 14px;
  background: rgba(214,174,118,.35); transform: rotate(18deg); pointer-events: none;
}

/* Nota con filete dorado */
.nota { border-left: 4px solid var(--dorado); background: var(--gris-suave); padding: 16px 20px; border-radius: 0 var(--radio-sm) var(--radio-sm) 0; }
.nota strong { color: var(--azul); }
.section--azul .nota, .section--profundo .nota { background: rgba(255,255,255,.06); color: rgba(255,255,255,.9); }
.section--azul .nota strong, .section--profundo .nota strong { color: var(--dorado); }

/* Tarjeta translúcida sobre azul */
.glass { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: var(--radio); padding: 20px 24px; color: #fff; }

/* Sticker de dato clave */
.sticker {
  width: 128px; height: 128px; border-radius: 50%; background: var(--rojo); color: #fff;
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  transform: rotate(-8deg); box-shadow: 0 10px 24px rgba(194,10,30,.3); flex: none;
}
.sticker small { font-family: var(--f-titulo); font-weight: 700; font-size: .55rem; letter-spacing: .14em; text-transform: uppercase; }
.sticker strong { font-family: var(--f-titulo); font-weight: 800; font-size: 1.5rem; line-height: 1; }

/* ---------- Hero portada ---------- */
.hero {
  position: relative; overflow: hidden; color: #fff;
  background: radial-gradient(1200px 600px at 80% 20%, #0b4a8c 0%, var(--azul) 45%, var(--azul-profundo) 100%);
}
.hero__symbol {
  position: absolute; right: -4%; top: -12%; width: 46%; max-width: 640px; opacity: .07; pointer-events: none;
  transform: rotate(-8deg);
}
.hero__inner { position: relative; display: grid; grid-template-columns: 1.15fr .85fr; gap: 48px; align-items: center; padding: 88px 0 96px; }
.hero h1 { color: #fff; margin-bottom: .5em; }
.hero__lead { font-size: 1.2rem; color: rgba(255,255,255,.82); max-width: 560px; margin-bottom: 2em; }
.hero__actions { display: flex; gap: 14px; flex-wrap: wrap; }
.hero__since { display: flex; gap: 28px; margin-top: 40px; flex-wrap: wrap; }
.hero__stat strong { display: block; font-family: var(--f-titulo); font-weight: 800; font-size: 1.9rem; color: var(--dorado); line-height: 1; }
.hero__stat span { font-size: .85rem; color: rgba(255,255,255,.7); }
.hero__panel { display: grid; gap: 14px; }
.hero__rev {
  display: flex; align-items: center; gap: 16px; padding: 16px 18px;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); border-radius: var(--radio);
  color: #fff; transition: background .15s, transform .15s;
}
.hero__rev:hover { background: rgba(255,255,255,.13); text-decoration: none; transform: translateX(4px); }
.hero__rev img { height: 34px; width: auto; flex: none; }
.hero__rev span { font-size: .9rem; color: rgba(255,255,255,.78); }
.hero__rev::after { content: "→"; margin-left: auto; color: var(--dorado); font-weight: 700; }
@media (max-width: 980px) {
  .hero__inner { grid-template-columns: 1fr; padding: 64px 0 72px; }
  .hero__symbol { width: 70%; right: -20%; top: 40%; }
}
.hero.franja::after { right: -60px; }
@media (max-width: 640px) {
  .hero__rev { flex-direction: column; align-items: flex-start; gap: 10px; }
  .hero__rev::after { display: none; }
  .hero__lead { font-size: 1.05rem; }
}
@media (max-width: 640px) { .franja::after, .franja::before { display: none; } }

/* Hero interior (página de sección) */
.page-hero { background: var(--azul); color: #fff; position: relative; overflow: hidden; }
.page-hero--rev { background: var(--rev, var(--azul)); }
.page-hero__inner { padding: 64px 0 60px; position: relative; }
.page-hero__inner > * { max-width: 820px; }
.page-hero h1 { color: #fff; }
.page-hero p { color: rgba(255,255,255,.82); font-size: 1.15rem; margin: 0; }
.page-hero .eyebrow { color: var(--dorado); }
.page-hero__logo { height: 54px; width: auto; margin-bottom: 20px; background: #fff; padding: 6px 10px; border-radius: 8px; }
.page-hero__symbol { position: absolute; right: -2%; bottom: -30%; width: 34%; max-width: 440px; opacity: .08; transform: rotate(-8deg); pointer-events: none; }
.page-hero__actions { margin-top: 28px; display: flex; gap: 12px; flex-wrap: wrap; }

.breadcrumb { font-size: .82rem; color: rgba(255,255,255,.65); margin-bottom: 18px; }
.breadcrumb a { color: rgba(255,255,255,.85); }

/* ---------- Revistas ---------- */
.rev-card { --rev: var(--azul); }
.rev-card__logo { height: 44px; width: auto; margin-bottom: 8px; }
.rev-card__desc { color: var(--gris-texto); }
.rev-card .btn--rev { background: var(--rev); }
.rev-card__since { font-size: .8rem; color: var(--gris-texto); display: flex; gap: 14px; flex-wrap: wrap; }
.rev-card__since b { color: var(--rev); }

.rev-ficha { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
@media (max-width: 900px) { .rev-ficha { grid-template-columns: 1fr; } }
.ficha { background: #fff; border-radius: var(--radio); padding: 28px; box-shadow: var(--sombra); border-top: 5px solid var(--rev); }
.ficha dl { display: grid; grid-template-columns: auto 1fr; gap: 8px 18px; margin: 0; }
.ficha dt { font-family: var(--f-titulo); font-weight: 700; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rev); padding-top: 4px; }
.ficha dd { margin: 0; }
.list-check { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.list-check li { display: flex; gap: 12px; align-items: flex-start; }
.list-check li::before {
  content: ""; flex: none; width: 22px; height: 22px; border-radius: 50%; margin-top: 3px;
  background: var(--rev, var(--azul));
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-3 10 2.2 2.2L15.5 9.5'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-3 10 2.2 2.2L15.5 9.5'/%3E%3C/svg%3E") center/contain no-repeat;
}
.section--azul .list-check li::before, .section--profundo .list-check li::before { background: var(--dorado); }

.ejes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 800px) { .ejes { grid-template-columns: 1fr; } }
.eje { background: #fff; border-radius: var(--radio); padding: 24px; border-left: 5px solid var(--rev); box-shadow: var(--sombra); }
.eje h3 { color: var(--rev); }
.eje__num { font-family: var(--f-titulo); font-weight: 800; color: var(--dorado); font-size: 1.6rem; line-height: 1; margin-bottom: 10px; }

.ediciones { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 900px) { .ediciones { grid-template-columns: 1fr; } }
.edicion { position: relative; background: #fff; border-radius: var(--radio); overflow: hidden; box-shadow: var(--sombra); }
.edicion__cover {
  aspect-ratio: 4 / 3; background: linear-gradient(135deg, var(--rev) 0%, color-mix(in srgb, var(--rev) 70%, #000) 100%);
  display: flex; align-items: flex-end; padding: 20px; color: #fff; position: relative; overflow: hidden;
}
.edicion__cover img { height: 30px; width: auto; background: #fff; padding: 4px 8px; border-radius: 6px; position: absolute; top: 16px; left: 16px; }
.edicion__cover strong { font-family: var(--f-titulo); font-weight: 800; font-size: 1.05rem; line-height: 1.2; }
.edicion__cover::after { content: ""; position: absolute; right: -30px; bottom: -40px; width: 34px; height: 160px; background: var(--dorado); transform: rotate(35deg); }
.edicion__body { padding: 16px 20px 20px; }
.edicion__body .eyebrow { margin-bottom: .4rem; }

/* ---------- Programas ---------- */
.prog { display: grid; grid-template-columns: 1fr; background: #fff; border-radius: var(--radio); box-shadow: var(--sombra); overflow: hidden; border-top: 5px solid var(--rev); }
.prog__top { padding: 24px 26px 0; }
.prog__body { padding: 16px 26px 26px; display: flex; flex-direction: column; gap: 14px; }
.prog__title { font-size: 1.3rem; }
.prog__title a { color: inherit; }
.prog__price { display: flex; align-items: center; gap: 16px; background: var(--gris-suave); border-radius: var(--radio-sm); padding: 14px 16px; border: 1px solid var(--gris-linea); }
.prog__price small { display: block; font-family: var(--f-titulo); font-weight: 700; font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rojo); }
.prog__price strong { font-family: var(--f-titulo); font-weight: 800; font-size: 1.9rem; color: var(--azul); line-height: 1.1; }
.prog__price del { color: var(--gris-texto); font-size: .9rem; }
.prog__date { margin-left: auto; text-align: center; background: #fff; border: 1px solid var(--gris-linea); border-radius: 8px; overflow: hidden; min-width: 72px; }
.prog__date span { display: block; background: var(--rojo); color: #fff; font-family: var(--f-titulo); font-weight: 700; font-size: .6rem; letter-spacing: .14em; text-transform: uppercase; padding: 3px 6px; }
.prog__date strong { display: block; font-family: var(--f-titulo); font-weight: 800; font-size: 1.5rem; color: var(--azul); line-height: 1.1; padding: 4px 6px 0; }
.prog__date em { display: block; font-style: normal; font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; color: var(--gris-texto); padding: 0 6px 6px; }
.prog__meta { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .9rem; color: var(--gris-texto); }
.prog__meta b { color: var(--tinta); }
.prog__actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: auto; }

.prog-detail { display: grid; grid-template-columns: 1.2fr .8fr; gap: 40px; align-items: start; }
@media (max-width: 900px) { .prog-detail { grid-template-columns: 1fr; } }
.sticky { position: sticky; top: 100px; }
.temario { list-style: none; margin: 0; padding: 0; counter-reset: t; }
.temario li { padding: 12px 0 12px 46px; border-bottom: 1px solid var(--gris-linea); position: relative; counter-increment: t; }
.temario li::before { content: counter(t, decimal-leading-zero); position: absolute; left: 0; top: 12px; font-family: var(--f-titulo); font-weight: 800; color: var(--dorado); }

/* ---------- Libros ---------- */
.libro { display: grid; grid-template-columns: 120px 1fr; gap: 20px; background: #fff; border-radius: var(--radio); box-shadow: var(--sombra); padding: 22px; border-top: 5px solid var(--rev); }
.libro__cover {
  aspect-ratio: 3 / 4; border-radius: 6px; background: linear-gradient(160deg, var(--rev) 0%, color-mix(in srgb, var(--rev) 65%, #000) 100%);
  color: #fff; padding: 12px; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden;
  box-shadow: inset 6px 0 10px -6px rgba(0,0,0,.5), 0 8px 18px rgba(0,0,0,.18);
}
.libro__cover::after { content: ""; position: absolute; right: -20px; bottom: -30px; width: 22px; height: 110px; background: var(--dorado); transform: rotate(35deg); }
.libro__cover img { height: 14px; width: auto; background: #fff; padding: 2px 4px; border-radius: 3px; }
.libro__cover strong { font-family: var(--f-titulo); font-weight: 800; font-size: .8rem; line-height: 1.2; }
.libro__cover--lg { width: 280px; max-width: 100%; padding: 22px; }
.libro__cover--lg img { height: 24px; padding: 3px 6px; }
.libro__cover--lg strong { font-size: 1.3rem; }
.libro h3 { margin-bottom: .2em; }
.libro__sub { color: var(--gris-texto); font-size: .95rem; margin-bottom: .6em; }
.libro__meta { font-size: .85rem; color: var(--gris-texto); display: flex; gap: 14px; flex-wrap: wrap; }
@media (max-width: 520px) { .libro { grid-template-columns: 1fr; } .libro__cover { width: 140px; } }

/* ---------- AELE TV ---------- */
.tv-hero { background: linear-gradient(110deg, var(--azul-profundo) 0%, var(--azul) 70%); color: #fff; position: relative; overflow: hidden; }
.tv-hero__inner { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; padding: 72px 0; }
@media (max-width: 900px) { .tv-hero__inner { grid-template-columns: 1fr; } }
.tv-hero__logo { height: 56px; width: auto; margin-bottom: 24px; }
.tv-hero h1 { color: #fff; font-size: clamp(1.8rem, 3.4vw, 2.8rem); }
.tv-hero__slot { display: inline-block; background: var(--rojo); color: #fff; font-family: var(--f-titulo); font-weight: 700; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; padding: .5em 1em; border-radius: 4px; margin-top: 10px; }
.video { position: relative; aspect-ratio: 16 / 9; background: #000; border-radius: var(--radio); overflow: hidden; box-shadow: var(--sombra-2); }
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video__placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; color: #fff; background: radial-gradient(600px 300px at 50% 60%, #0b4a8c, var(--azul-profundo)); text-align: center; padding: 20px; }
.video__play { width: 72px; height: 72px; border-radius: 50%; background: var(--rojo); display: grid; place-items: center; box-shadow: 0 10px 24px rgba(194,10,30,.4); }
.video__play::after { content: ""; border-left: 24px solid #fff; border-top: 14px solid transparent; border-bottom: 14px solid transparent; margin-left: 6px; }
.ep { background: #fff; border-radius: var(--radio); overflow: hidden; box-shadow: var(--sombra); display: flex; flex-direction: column; }
.ep__thumb { aspect-ratio: 16 / 9; background: linear-gradient(120deg, var(--azul-profundo), var(--azul)); position: relative; display: flex; align-items: flex-end; padding: 16px; color: #fff; }
.ep__thumb img.ep__logo { position: absolute; top: 12px; left: 12px; height: 18px; width: auto; }
.ep__thumb strong { font-family: var(--f-titulo); font-weight: 800; font-size: 1.05rem; text-transform: uppercase; line-height: 1.15; letter-spacing: .01em; }
.ep__thumb strong em { font-style: normal; color: var(--dorado); }
.ep__thumb .video__play { position: absolute; right: 16px; top: 16px; width: 44px; height: 44px; }
.ep__thumb .video__play::after { border-left-width: 14px; border-top-width: 8px; border-bottom-width: 8px; margin-left: 4px; }
.ep__body { padding: 16px 20px 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.ep__meta { display: flex; justify-content: space-between; gap: 12px; font-size: .82rem; color: var(--gris-texto); }

/* ---------- Noticias ---------- */
.news { background: #fff; border-radius: var(--radio); box-shadow: var(--sombra); padding: 24px; display: flex; flex-direction: column; gap: 10px; border-top: 5px solid var(--rev, var(--dorado)); }
.news__meta { display: flex; justify-content: space-between; gap: 12px; align-items: center; font-size: .82rem; color: var(--gris-texto); }
.news h3 { font-size: 1.1rem; line-height: 1.3; }
.news p { color: var(--gris-texto); margin: 0; }
.news__more { font-family: var(--f-titulo); font-weight: 700; font-size: .85rem; color: var(--azul); margin-top: auto; }
.news__more { border-bottom: 2px solid var(--dorado); align-self: flex-start; }
.article { max-width: 760px; }
.article__body { font-size: 1.08rem; }
.article__body p { margin-bottom: 1.2em; }
.article__footer { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--gris-linea); display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }

/* ---------- Bloques de la portada ---------- */
.pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 900px) { .pillars { grid-template-columns: 1fr; } }
.pillar { background: #fff; border-radius: var(--radio); padding: 28px; box-shadow: var(--sombra); border-top: 5px solid var(--azul); }
.pillar:nth-child(2) { border-top-color: var(--dorado); }
.pillar__num { font-family: var(--f-titulo); font-weight: 800; font-size: 2rem; color: var(--dorado); line-height: 1; margin-bottom: 14px; }
.pillar p { color: var(--gris-texto); margin: 0; }

.band { background: var(--azul); color: #fff; border-radius: var(--radio); padding: 22px 28px; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 36px; font-family: var(--f-titulo); font-weight: 700; }
.band .gold { color: var(--dorado); }

.lineas { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
@media (max-width: 980px) { .lineas { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .lineas { grid-template-columns: 1fr; } }
.linea { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: var(--radio); padding: 26px; color: #fff; display: flex; flex-direction: column; gap: 10px; transition: background .15s, transform .15s; }
.linea:hover { background: rgba(255,255,255,.12); transform: translateY(-3px); text-decoration: none; }
.linea__icon { width: 44px; height: 44px; border-radius: 12px; background: rgba(214,174,118,.15); display: grid; place-items: center; color: var(--dorado); }
.linea h3 { color: #fff; margin: 0; }
.linea p { color: rgba(255,255,255,.75); margin: 0; font-size: .95rem; }
.linea__more { margin-top: auto; color: var(--dorado); font-family: var(--f-titulo); font-weight: 700; font-size: .85rem; }

.cta-box { background: #fff; border-radius: var(--radio); box-shadow: var(--sombra-2); padding: 36px 40px; display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; border-left: 6px solid var(--dorado); }
@media (max-width: 800px) { .cta-box { grid-template-columns: 1fr; padding: 28px; } }
.cta-box h2 { margin-bottom: .3em; }
.cta-box p { color: var(--gris-texto); margin: 0; }
.cta-box__actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* ---------- Nosotros ---------- */
.timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; position: relative; }
.timeline::before { content: ""; position: absolute; left: 11px; top: 8px; bottom: 8px; width: 2px; background: var(--dorado); opacity: .5; }
.timeline li { position: relative; padding: 0 0 26px 40px; }
.timeline li::before { content: ""; position: absolute; left: 4px; top: 6px; width: 16px; height: 16px; border-radius: 50%; background: var(--azul); border: 3px solid var(--dorado); }
.timeline strong { font-family: var(--f-titulo); color: var(--azul); display: block; }
.attr { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
@media (max-width: 980px) { .attr { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .attr { grid-template-columns: 1fr; } }
.attr__item { background: #fff; border-radius: var(--radio); padding: 22px; box-shadow: var(--sombra); }
.attr__item .pillar__num { font-size: 1.4rem; margin-bottom: 8px; }
.attr__item h3 { font-size: 1.05rem; }
.attr__item p { color: var(--gris-texto); font-size: .92rem; margin: 0; }

/* ---------- Formularios ---------- */
.form { display: grid; gap: 16px; }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 640px) { .form__row { grid-template-columns: 1fr; } }
.form label { display: block; font-family: var(--f-titulo); font-weight: 700; font-size: .8rem; letter-spacing: .04em; color: var(--azul); margin-bottom: 6px; }
.form input, .form select, .form textarea {
  width: 100%; font: inherit; padding: 12px 14px; border: 1.5px solid var(--gris-linea); border-radius: var(--radio-sm); background: #fff; color: var(--tinta);
}
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-color: var(--azul); box-shadow: 0 0 0 3px rgba(1,53,110,.12); }
.form textarea { min-height: 130px; resize: vertical; }
.form__hint { font-size: .85rem; color: var(--gris-texto); }
.alert { padding: 16px 20px; border-radius: var(--radio-sm); background: #E8F4EC; color: #1D6B3C; border: 1px solid #BFE0CA; }
.alert--error { background: #FBE9EB; color: #8A0C1A; border-color: #F2C2C8; }

.contact-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: start; }
@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; } }
.contact-card { background: var(--azul); color: #fff; border-radius: var(--radio); padding: 32px; position: relative; overflow: hidden; }
.contact-card h3 { color: #fff; }
.contact-card dl { margin: 0; display: grid; gap: 14px; }
.contact-card dt { font-family: var(--f-titulo); font-weight: 700; font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; color: var(--dorado); }
.contact-card dd { margin: 2px 0 0; }
.contact-card a { color: #fff; }

.plan { background: #fff; border-radius: var(--radio); padding: 30px; box-shadow: var(--sombra); border-top: 5px solid var(--rev); display: flex; flex-direction: column; gap: 14px; }
.plan img { height: 38px; width: auto; }
.plan ul { padding-left: 0; }

/* ---------- Pie ---------- */
.footer { background: var(--azul-profundo); color: rgba(255,255,255,.8); position: relative; overflow: hidden; margin-top: 0; }
.footer__band { background: var(--azul); }
.footer__band-inner { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 30px 0; flex-wrap: wrap; }
.footer__claim { margin: 0; font-family: var(--f-titulo); font-weight: 800; font-size: clamp(1.3rem, 2.6vw, 1.9rem); color: #fff; }
.footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.3fr; gap: 40px; padding: 56px 0 40px; position: relative; z-index: 1; }
@media (max-width: 980px) { .footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .footer__grid { grid-template-columns: 1fr; gap: 28px; } }
.footer__logo { width: 140px; margin-bottom: 16px; }
.footer__desc { font-size: .95rem; max-width: 380px; }
.footer__revistas { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
.footer__revistas img { height: 26px; width: auto; }
.footer__title { color: var(--dorado); font-size: .75rem; letter-spacing: .2em; text-transform: uppercase; margin-bottom: 16px; }
.footer__links, .footer__contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: .95rem; }
.footer a { color: rgba(255,255,255,.85); }
.footer a:hover { color: #fff; }
.footer__social { display: flex; gap: 10px; margin-top: 18px; }
.footer__social a { width: 38px; height: 38px; border-radius: 10px; background: rgba(255,255,255,.08); display: grid; place-items: center; }
.footer__social a:hover { background: var(--dorado); color: var(--tinta); }
.footer__bottom { border-top: 1px solid rgba(255,255,255,.1); font-size: .82rem; position: relative; z-index: 1; }
.footer__bottom-inner { display: flex; justify-content: space-between; gap: 16px; padding: 18px 0 22px; flex-wrap: wrap; }
.footer__franja { position: absolute; right: 40px; bottom: -40px; width: 42px; height: 360px; background: var(--dorado); transform: rotate(32deg); opacity: .9; }
@media (max-width: 980px) { .footer__franja { display: none; } }

/* ---------- Utilidades ---------- */
.text-center { text-align: center; }
.mt-0 { margin-top: 0; } .mt-2 { margin-top: 16px; } .mt-4 { margin-top: 32px; } .mt-6 { margin-top: 48px; }
.mb-2 { margin-bottom: 16px; } .mb-4 { margin-bottom: 32px; }
.flex { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.small { font-size: .88rem; }
.lead { font-size: 1.15rem; color: var(--gris-texto); }
.divider-gold { width: 48px; height: 3px; background: var(--dorado); border-radius: 2px; margin: 18px 0; }
.highlight { background: linear-gradient(transparent 60%, rgba(214,174,118,.45) 60%); }

/* ===================== v2: cuenta, aula, herramientas ===================== */
.header__50{display:inline-grid;place-items:center;margin-left:10px;width:40px;height:40px;border-radius:50%;background:var(--azul);color:var(--dorado);font:800 .95rem/1 var(--f-titulo);vertical-align:middle}.header__50 small{font-size:.45rem;color:#fff;letter-spacing:.1em}
.nav__search{display:flex;align-items:center;border:1.5px solid var(--gris-linea);border-radius:999px;padding:2px 4px 2px 12px;margin-right:10px;background:#fff}.nav__search input{border:0;font:inherit;font-size:.9rem;width:90px;outline:none;background:transparent}.nav__search button{border:0;background:var(--gris-suave);color:var(--azul);width:30px;height:30px;border-radius:50%;cursor:pointer;display:grid;place-items:center}
.nav__sub--wide{min-width:300px}.nav__sublink--desc{flex-direction:column;align-items:flex-start;gap:2px}.nav__sublink--desc span{font-size:.78rem;color:var(--gris-texto);font-weight:400}
@media(max-width:1180px){.nav__cta{flex-direction:column;align-items:stretch;white-space:normal}.nav__search{margin:0 0 10px;width:100%}.nav__search input{width:100%;color:var(--tinta)}}
.footer__boletin{margin-top:18px;max-width:380px}.footer__boletin-row{display:flex;gap:8px}.footer__boletin input{flex:1;padding:9px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;font:inherit}.footer__boletin input::placeholder{color:rgba(255,255,255,.5)}.footer__boletin label.footer__title{display:block}
.banner{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border-radius:var(--radio);padding:18px 24px;box-shadow:var(--sombra);border-left:6px solid var(--b)}.banner__txt{display:flex;align-items:center;gap:18px}.banner__txt b{font-family:var(--f-titulo);color:var(--azul);font-size:1.1rem}.banner__txt span{color:var(--gris-texto)}.banner__cta{display:flex;align-items:center;gap:16px}.banner__count{font-size:.9rem;color:var(--gris-texto)}.banner__count b{font-family:var(--f-titulo);color:var(--rojo);font-size:1.4rem}
.sticker--sm{width:84px;height:84px}.sticker--sm strong{font-size:1rem}.sticker--sm small{font-size:.48rem}
@media(max-width:760px){.banner{flex-direction:column;align-items:flex-start}.banner__txt{flex-direction:column;align-items:flex-start}}
.buscador{display:flex;gap:10px;margin-top:22px;max-width:680px}.buscador input{flex:1;padding:14px 18px;border-radius:999px;border:0;font:inherit;font-size:1rem}
.res{padding:16px 0;border-bottom:1px solid var(--gris-linea)}.res h3{font-size:1.05rem;margin:4px 0}.res.card{border-bottom:0;margin-bottom:14px}
.norma-grid{display:grid;grid-template-columns:300px 1fr;gap:32px;align-items:start}@media(max-width:900px){.norma-grid{grid-template-columns:1fr}}
.norma-indice{position:sticky;top:100px}.norma-cap{font:700 .68rem var(--f-titulo);letter-spacing:.12em;text-transform:uppercase;color:var(--gris-texto);margin:12px 0 4px}
.norma-arts{list-style:none;margin:0;padding:0}.norma-arts li a{display:block;padding:6px 8px;border-radius:6px;font-size:.88rem;color:var(--tinta)}.norma-arts li a:hover{background:var(--gris-suave);text-decoration:none}.norma-arts li.is-active a{background:var(--rev,var(--azul));color:#fff}.norma-arts li.is-derogado a{text-decoration:line-through;color:var(--gris-texto)}
.texto-norma{white-space:normal;line-height:1.75;font-size:1.05rem}.texto-norma.card{display:block}
.comparar{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media(max-width:800px){.comparar{grid-template-columns:1fr}}.comparar__col{background:#fff;border-radius:var(--radio);padding:24px;box-shadow:var(--sombra);border-top:5px solid var(--rev,var(--azul))}
.lista-normas{list-style:none;padding:0;margin:0;display:grid;gap:6px}.lista-normas li{display:flex;justify-content:space-between;gap:12px;padding:8px 12px;background:#fff;border-radius:8px;border:1px solid var(--gris-linea)}
.norma-card{text-decoration:none}.norma-card:hover{text-decoration:none}.norma-card h3{margin:10px 0 4px}
.filtros{list-style:none;margin:0;padding:0;display:grid;gap:2px}.filtros a{display:block;padding:7px 10px;border-radius:6px;color:var(--tinta);font-size:.9rem}.filtros a:hover{background:var(--gris-suave);text-decoration:none}.filtros a.is-active{background:var(--azul);color:#fff}.filtros a.is-active small{color:rgba(255,255,255,.75)}
.tabla{width:100%;border-collapse:collapse;font-size:.92rem}.tabla th{text-align:left;font:700 .7rem var(--f-titulo);letter-spacing:.12em;text-transform:uppercase;color:var(--gris-texto);padding:12px 14px;background:var(--gris-suave);border-bottom:1px solid var(--gris-linea)}.tabla td{padding:10px 14px;border-bottom:1px solid var(--gris-linea);vertical-align:middle}.tabla tr.is-pasado td{opacity:.5}.tabla tr.is-cerca td{background:#FFF6E5}
.pill--ok{background:#E8F4EC;color:#1D6B3C}
.calc{display:flex;flex-direction:column;gap:16px}.calc label{display:block;font:700 .78rem var(--f-titulo);color:var(--azul);margin-bottom:5px}.calc input,.calc select{width:100%;padding:11px 12px;border:1.5px solid var(--gris-linea);border-radius:var(--radio-sm);font:inherit}.calc input:focus,.calc select:focus{outline:none;border-color:var(--azul);box-shadow:0 0 0 3px rgba(1,53,110,.12)}
.calc__out{background:var(--gris-suave);border-radius:var(--radio-sm);padding:16px 20px;border:1px solid var(--gris-linea)}.calc__row{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed var(--gris-linea);font-size:.95rem}.calc__row:last-child{border-bottom:0}.calc__row.is-total{border-top:2px solid var(--dorado);margin-top:6px;padding-top:12px;font-size:1.15rem}.calc__row.is-total b{color:var(--azul);font-family:var(--f-titulo)}
.cuenta-nav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:28px;border-bottom:1px solid var(--gris-linea);padding-bottom:12px}.cuenta-nav a{padding:8px 14px;border-radius:999px;font:700 .85rem var(--f-titulo);color:var(--azul)}.cuenta-nav a:hover{background:var(--gris-suave);text-decoration:none}.cuenta-nav a.is-active{background:var(--azul);color:#fff}
.plan-opt{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1.5px solid var(--gris-linea);border-radius:var(--radio);cursor:pointer;background:#fff}.plan-opt:has(input:checked){border-color:var(--azul);box-shadow:0 0 0 3px rgba(1,53,110,.12)}.plan-opt strong{color:var(--azul);font-family:var(--f-titulo);font-size:1.2rem}.plan-opt input{margin-top:4px}
.aula-grid{display:grid;grid-template-columns:320px 1fr;gap:32px;align-items:start}@media(max-width:900px){.aula-grid{grid-template-columns:1fr}}
.aula-temas{list-style:none;margin:0;padding:0;counter-reset:c}.aula-temas li{counter-increment:c;border-bottom:1px solid var(--gris-linea)}.aula-temas li a{display:block;padding:10px 10px 10px 36px;position:relative;color:var(--tinta);font-size:.92rem}.aula-temas li a::before{content:counter(c,decimal-leading-zero);position:absolute;left:8px;top:10px;font:800 .8rem var(--f-titulo);color:var(--dorado)}.aula-temas li a:hover{background:var(--gris-suave);text-decoration:none}.aula-temas li.is-active a{background:var(--rev,var(--azul));color:#fff;border-radius:8px}.aula-temas li.is-active a::before,.aula-temas li.is-active small{color:rgba(255,255,255,.8)}
.coment__item{background:#fff;border-radius:var(--radio-sm);padding:14px 18px;border:1px solid var(--gris-linea);margin-bottom:10px}.coment__item p{margin:6px 0 0}.coment__resp{margin-top:10px;padding:10px 14px;background:var(--gris-suave);border-left:3px solid var(--rev,var(--dorado));border-radius:0 6px 6px 0}
.news__img{aspect-ratio:16/9;object-fit:cover;border-radius:8px;margin:-8px 0 6px}
.article__body h2,.article__body h3{margin-top:1.4em}.article__body blockquote{border-left:4px solid var(--dorado);margin:1em 0;padding:4px 18px;color:var(--gris-texto)}
