:root {
  --nl-ink: #090908;
  --nl-ink-soft: #131311;
  --nl-paper: #f3f0e9;
  --nl-paper-bright: #fffdf8;
  --nl-orange: #f7931e;
  --nl-orange-bright: #ffad40;
  --nl-muted: #afa99e;
  --nl-dark-line: rgba(255, 255, 255, .12);
  --nl-light-line: rgba(9, 9, 8, .14);
  --nl-display: "Poppins", "Arial Black", sans-serif;
  --nl-body: "Poppins", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --nl-max: 1360px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body.nlr-page {
  --nl-page-accent: var(--nl-orange);
  --nl-page-accent-deep: #b95b00;
  --nl-expanded-tint: rgba(247,147,30,.14);
  margin: 0;
  overflow-x: hidden;
  background: var(--nl-ink);
  color: var(--nl-paper);
  font-family: var(--nl-body);
  font-size: 16px;
  line-height: 1.65;
}

body:is(
  .nlr-slug-serie-jugando-aprendemos,
  .nlr-slug-jugando-con-silabas,
  .nlr-slug-jugando-con-figuras,
  .nlr-slug-jugando-con-numeros,
  .nlr-slug-jcf,
  .nlr-slug-jcf-2,
  .nlr-slug-aprender-a-leer-jugando,
  .nlr-slug-conciencia-fonologica-ninos,
  .nlr-slug-como-separar-palabras-en-silabas,
  .nlr-slug-tiempo-de-pantalla-preescolares,
  .nlr-slug-preparar-lectura-primaria,
  .nlr-slug-aprender-formas-colores-tamanos-jugando,
  .nlr-slug-figuras-geometricas-basicas-ninos,
  .nlr-slug-aprender-colores-jugando,
  .nlr-slug-grande-pequeno-aprender-tamanos,
  .nlr-slug-clasificar-forma-color-tamano,
  .nlr-slug-aprender-numeros-jugando,
  .nlr-slug-orden-ascendente-descendente-ninos,
  .nlr-slug-sumas-que-equilibran-cantidades,
  .nlr-slug-mayor-menor-igual-ninos,
  .nlr-slug-juegos-matematicos-cotidianos-0-al-9
) {
  --nl-page-accent: #f2c230;
  --nl-page-accent-deep: #806600;
}

body:is(
  .nlr-slug-serie-aprendo-casual,
  .nlr-slug-quieresiralauni,
  .nlr-slug-silabz,
  .nlr-slug-aventuras-vocales,
  .nlr-slug-living-in-ownflesh,
  .nlr-slug-practicar-silabas-de-forma-autonoma,
  .nlr-slug-contar-silabas-sin-anticipar-respuesta,
  .nlr-slug-autonomia-en-juegos-de-lectoescritura,
  .nlr-slug-usar-retroalimentacion-para-aprender,
  .nlr-slug-cuando-ayudar-en-un-juego-educativo,
  .nlr-slug-aprender-vocales-y-silabas-jugando,
  .nlr-slug-combinar-consonantes-y-vocales,
  .nlr-slug-reconocer-sonido-de-las-vocales,
  .nlr-slug-aprender-con-runner-educativo,
  .nlr-slug-juegos-de-vocales-fuera-de-pantalla,
  .nlr-slug-prepararse-para-examen-de-admision-universidad,
  .nlr-slug-como-usar-trivia-para-estudiar,
  .nlr-slug-crear-plan-estudio-examen-admision,
  .nlr-slug-identificar-fortalezas-y-temas-por-repasar,
  .nlr-slug-practicar-materias-examen-admision,
  .nlr-slug-administrar-ciudad-y-vivir-consecuencias,
  .nlr-slug-evaluar-impacto-decisiones-urbanas,
  .nlr-slug-leer-ciudad-mas-alla-del-mapa,
  .nlr-slug-equilibrar-necesidades-individuales-y-colectivas,
  .nlr-slug-cadenas-consecuencias-simulacion-urbana
) {
  --nl-page-accent: #8a6ce6;
  --nl-page-accent-deep: #6545c9;
}

body:is(
  .nlr-slug-serie-nuevos-sentidos,
  .nlr-slug-eudaimon,
  .nlr-slug-gamma-2
) {
  --nl-page-accent: #55bce8;
  --nl-page-accent-deep: #147ba7;
}

body:is(
  .nlr-slug-serie-casual,
  .nlr-slug-feline-harvest,
  .nlr-slug-red-de-gol-penales,
  .nlr-slug-red-de-gol-aficion,
  .nlr-slug-old-time-trivia
) {
  --nl-page-accent: #5fb47a;
  --nl-page-accent-deep: #2f814b;
}

body.nlr-series-aprendo-casual {
  --nl-page-accent: #8a6ce6;
  --nl-page-accent-deep: #6545c9;
  --nl-expanded-tint: rgba(138,108,230,.16);
}

body.nlr-series-nuevos-sentidos {
  --nl-page-accent: #55bce8;
  --nl-page-accent-deep: #147ba7;
  --nl-expanded-tint: rgba(85,188,232,.16);
}

body.nlr-series-casual {
  --nl-page-accent: #5fb47a;
  --nl-page-accent-deep: #2f814b;
  --nl-expanded-tint: rgba(95,180,122,.16);
}

body.nlr-page.nl-menu-open,
body.nlr-page.nl-dialog-open { overflow: hidden; }

body.nlr-page .wp-site-blocks { padding: 0; }
body.nlr-page .wp-site-blocks > * { margin-block-start: 0; }
body.nlr-page a { color: inherit; }
body.nlr-page button { font: inherit; }
body.nlr-page img { max-width: 100%; height: auto; }
body.nlr-page :where(h1, h2, h3, h4, p) { margin-top: 0; }
body.nlr-page :where(h1, h2, h3) { text-wrap: balance; }

.nl-skip-link {
  position: fixed;
  z-index: 1000;
  top: 12px;
  left: 12px;
  padding: 10px 14px;
  background: var(--nl-paper-bright);
  color: var(--nl-ink) !important;
  transform: translateY(-170%);
  transition: transform .2s ease;
}
.nl-skip-link:focus { transform: translateY(0); }

.nl-site-header {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  height: 86px;
  padding: 0 max(28px, calc((100vw - var(--nl-max)) / 2));
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(9, 9, 8, .82);
  border-bottom: 1px solid transparent;
  backdrop-filter: blur(18px);
  transition: height .25s ease, background .25s ease, border-color .25s ease;
}
.nl-site-header.is-scrolled {
  height: 72px;
  background: rgba(9, 9, 8, .95);
  border-color: var(--nl-dark-line);
}
body.admin-bar .nl-site-header { top: 32px; }

.nl-brand {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: var(--nl-paper-bright) !important;
  font-family: var(--nl-display);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -.05em;
  text-decoration: none;
}
.nl-brand b { color: var(--nl-orange); }
.nl-brand-mark {
  position: relative;
  width: 34px;
  height: 34px;
  display: inline-block;
  flex: 0 0 auto;
  background-image: var(--nl-brand-logo, url("../images/naranja-lab-logo.png"));
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
.nl-brand-mark i { display: none; }

.nl-main-nav { display: flex; align-items: center; gap: 34px; }
.nl-header-social { padding-left: 18px; display: flex; align-items: center; gap: 5px; border-left: 1px solid rgba(255,255,255,.14); }
.nl-main-nav .nl-header-social a { width: 25px; height: 25px; display: grid; place-items: center; color: #aaa49b !important; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; font-size: 8px; letter-spacing: 0; text-decoration: none; }
.nl-main-nav .nl-header-social a::after { display: none; }
.nl-main-nav .nl-header-social a:hover { color: var(--nl-ink) !important; background: var(--nl-orange); border-color: var(--nl-orange); }
.nl-main-nav a {
  position: relative;
  color: #d2cec6 !important;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .03em;
  text-decoration: none;
  transition: color .2s ease, background .2s ease;
}
.nl-main-nav a:not(.nl-nav-cta)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -8px;
  height: 2px;
  background: var(--nl-orange);
  transition: right .25s ease;
}
.nl-main-nav a:hover,
.nl-main-nav a.is-active { color: var(--nl-paper-bright) !important; }
.nl-main-nav a:hover::after,
.nl-main-nav a.is-active::after { right: 0; }
.nl-main-nav .nl-nav-cta {
  padding: 11px 16px;
  border-radius: 2px;
  background: var(--nl-paper);
  color: var(--nl-ink) !important;
}
.nl-main-nav .nl-nav-cta:hover { background: var(--nl-orange); }
.nl-nav-cta span { margin-left: 4px; color: var(--nl-orange); }
.nl-nav-cta:hover span { color: var(--nl-ink); }
.nl-menu-toggle { display: none; }

.nl-page-shell {
  min-height: 70vh;
  padding: 118px max(28px, calc((100vw - var(--nl-max)) / 2)) 110px;
  background:
    radial-gradient(circle at 86% 6%, rgba(247, 147, 30, .12), transparent 28%),
    var(--nl-ink);
}
.nl-page-content { max-width: var(--nl-max); margin: 0 auto; }

.nl-breadcrumb {
  min-height: 42px;
  margin: 0 0 28px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: #777168;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
}
.nl-breadcrumb a {
  color: var(--nl-paper) !important;
  text-decoration-color: var(--nl-page-accent);
  text-underline-offset: 5px;
}
.nl-breadcrumb a:hover { color: var(--nl-page-accent) !important; }
.nl-breadcrumb > span:last-child { max-width: 48ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.nl-eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 20px;
  color: var(--nl-orange-bright);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.nl-eyebrow span { width: 24px; height: 1px; background: currentColor; }

.nl-generated-title {
  position: relative;
  min-height: 330px;
  padding: clamp(56px, 7vw, 94px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  border-bottom: 1px solid var(--nl-page-accent);
  background:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px),
    var(--nl-ink-soft);
  background-size: 64px 64px;
}
.nl-generated-title::after {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  right: -170px;
  top: -180px;
  border: 70px solid color-mix(in srgb, var(--nl-page-accent) 22%, transparent);
  border-radius: 50%;
}
.nl-generated-title h1 {
  position: relative;
  z-index: 1;
  max-width: 1050px;
  margin: 0;
  color: var(--nl-paper-bright);
  font-family: var(--nl-display);
  font-size: clamp(45px, 6vw, 82px);
  line-height: .98;
  letter-spacing: -.065em;
  text-transform: uppercase;
}
.nl-generated-title .nl-eyebrow { color: var(--nl-page-accent); }

.nl-preserved-content:not(.nl-document-content) {
  padding: clamp(38px, 6vw, 86px);
  background: var(--nl-paper);
  color: var(--nl-ink);
}
.nl-preserved-content:not(.nl-document-content) h1 { display: none !important; }
.nl-preserved-content:not(.nl-document-content) > :last-child { margin-bottom: 0; }
.nl-preserved-content:not(.nl-document-content) > p:first-of-type {
  max-width: 820px;
  margin-bottom: 42px;
  color: #4f4b45;
  font-size: clamp(18px, 2vw, 24px);
  line-height: 1.55;
}
.nl-preserved-content:not(.nl-document-content) h2,
.nl-preserved-content:not(.nl-document-content) h3 {
  color: var(--nl-ink);
  font-family: var(--nl-display);
  letter-spacing: -.035em;
}
.nl-preserved-content:not(.nl-document-content) h2 { margin: 58px 0 22px; font-size: clamp(29px, 4vw, 48px); line-height: 1.05; text-transform: uppercase; }
.nl-preserved-content:not(.nl-document-content) h3 { margin: 34px 0 12px; font-size: 22px; }
.nl-preserved-content:not(.nl-document-content) p,
.nl-preserved-content:not(.nl-document-content) li { color: #514d46; }
.nl-preserved-content:not(.nl-document-content) a { text-decoration-color: var(--nl-orange); text-underline-offset: 4px; }

.nl-document-content > .container {
  width: 100% !important;
  max-width: var(--nl-max) !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
.nl-document-content :where(.site-header, .site-footer, .main-footer),
.nl-document-content .back-button { display: none !important; }

/* Encabezados editoriales de series y fichas extensas. */
.nl-document-content .page-header {
  position: relative;
  min-height: 390px;
  margin: 0 !important;
  padding: clamp(62px, 8vw, 108px) !important;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  text-align: left !important;
  background:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
    var(--nl-ink-soft);
  background-size: 64px 64px;
  border-bottom: 1px solid var(--nl-page-accent);
}
.nl-document-content .page-header::before {
  content: "";
  position: absolute;
  width: 480px;
  height: 480px;
  right: -170px;
  top: -210px;
  border: 74px solid color-mix(in srgb, var(--nl-page-accent) 20%, transparent);
  border-radius: 50%;
}
.nl-document-content .page-header::after {
  content: "NARANJA LAB";
  position: absolute;
  right: 30px;
  bottom: 18px;
  color: rgba(255,255,255,.13);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .24em;
}
.nl-document-content .page-title {
  position: relative;
  z-index: 1;
  max-width: 1030px;
  margin: 0 0 20px !important;
  color: var(--nl-paper-bright) !important;
  font-family: var(--nl-display) !important;
  font-size: clamp(47px, 6.5vw, 88px) !important;
  font-weight: 800 !important;
  line-height: .96 !important;
  letter-spacing: -.065em !important;
  text-transform: uppercase;
}
.nl-document-content .page-title::after { display: none !important; }
.nl-document-content .page-subtitle {
  position: relative;
  z-index: 1;
  max-width: 700px;
  margin: 0 !important;
  color: #b7b1a8 !important;
  font-size: clamp(16px, 1.7vw, 20px) !important;
  line-height: 1.6 !important;
}
.nl-document-content .age-badge {
  position: relative;
  z-index: 1;
  align-self: flex-start;
  margin-top: 24px !important;
  padding: 8px 12px !important;
  border: 1px solid var(--nl-page-accent) !important;
  border-radius: 99px !important;
  background: transparent !important;
  color: var(--nl-page-accent) !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* Bloque de apertura. */
.nl-document-content .hero-section {
  min-height: 520px;
  margin: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 0 !important;
  align-items: stretch !important;
  overflow: hidden;
  background: var(--nl-paper) !important;
  color: var(--nl-ink) !important;
  border-radius: 0 !important;
}
.nl-document-content .hero-image {
  min-height: 520px;
  order: 0 !important;
  overflow: hidden;
  border-radius: 0 !important;
}
.nl-document-content .hero-image img {
  width: 100% !important;
  height: 100% !important;
  min-height: 520px;
  display: block;
  object-fit: cover !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.nl-document-content .hero-content {
  padding: clamp(48px, 6vw, 86px) !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: transparent !important;
  border-radius: 0 !important;
}
.nl-document-content .hero-tagline {
  margin: 0 0 26px !important;
  color: var(--nl-ink) !important;
  font-family: var(--nl-display) !important;
  font-size: clamp(34px, 4.6vw, 61px) !important;
  line-height: 1 !important;
  letter-spacing: -.055em !important;
  text-transform: uppercase;
}
.nl-document-content .hero-description {
  max-width: 650px;
  margin: 0 0 18px !important;
  color: #5d5851 !important;
  font-size: 15px !important;
  line-height: 1.75 !important;
}

/* Secciones y títulos compartidos. */
.nl-document-content .section-title {
  margin: 0 0 46px !important;
  color: inherit !important;
  font-family: var(--nl-display) !important;
  font-size: clamp(36px, 4.8vw, 64px) !important;
  line-height: 1 !important;
  letter-spacing: -.055em !important;
  text-align: left !important;
  text-transform: uppercase;
}
.nl-document-content .section-title::after { display: none !important; }

.nl-document-content .philosophy-section {
  margin: 0 !important;
  padding: clamp(68px, 8vw, 112px) !important;
  background: var(--nl-ink-soft) !important;
  color: var(--nl-paper-bright) !important;
}
.nl-document-content .philosophy-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 0 !important;
  border-top: 1px solid var(--nl-dark-line);
  border-bottom: 1px solid var(--nl-dark-line);
}
.nl-document-content .philosophy-card {
  min-height: 285px;
  padding: 32px 34px !important;
  background: transparent !important;
  color: var(--nl-paper) !important;
  border: 0 !important;
  border-right: 1px solid var(--nl-dark-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-align: left !important;
}
.nl-document-content .philosophy-card:last-child { border-right: 0 !important; }
.nl-document-content .philosophy-card:hover { transform: none !important; background: rgba(255,255,255,.025) !important; }
.nl-document-content .philosophy-icon {
  width: 50px !important;
  height: 50px !important;
  margin: 0 0 54px !important;
  display: grid;
  place-items: center;
  border: 1px solid var(--nl-page-accent) !important;
  border-radius: 50% !important;
  background: transparent !important;
  color: var(--nl-page-accent) !important;
  font-size: 0 !important;
}
.nl-document-content .philosophy-icon i::before { content: "✦"; font-family: var(--nl-body) !important; font-size: 16px; }
.nl-document-content .philosophy-card h3 {
  margin: 0 0 13px !important;
  color: var(--nl-paper-bright) !important;
  font-family: var(--nl-display) !important;
  font-size: 20px !important;
  letter-spacing: -.035em;
  text-transform: uppercase;
}
.nl-document-content .philosophy-card p { margin: 0 !important; color: #918c84 !important; font-size: 12px !important; line-height: 1.7 !important; }
.nl-document-content .purpose-statement {
  grid-column: 1 / -1;
  margin: 0 !important;
  padding: 32px !important;
  border: 0 !important;
  border-top: 1px solid var(--nl-dark-line) !important;
  border-radius: 0 !important;
  background: var(--nl-page-accent) !important;
  color: var(--nl-ink) !important;
}
.nl-document-content .purpose-statement :where(h3, p) { color: var(--nl-ink) !important; }

/* Catálogos dentro de las series. */
.nl-document-content .games-section {
  margin: 0 !important;
  padding: clamp(68px, 8vw, 112px) !important;
  background: var(--nl-paper) !important;
  color: var(--nl-ink) !important;
}
.nl-document-content .games-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px !important;
}
.nl-document-content .game-card {
  position: relative;
  padding: 0 0 24px !important;
  overflow: hidden;
  background: var(--nl-paper-bright) !important;
  color: var(--nl-ink) !important;
  border: 1px solid var(--nl-light-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  transition: transform .25s ease, box-shadow .25s ease;
}
.nl-document-content .game-card:hover { transform: translateY(-6px) !important; box-shadow: 0 20px 45px rgba(22,16,8,.13) !important; }
.nl-document-content .image-container,
.nl-document-content .image-wrapper {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 3 !important;
  margin: 0 0 24px !important;
  overflow: hidden;
  border-radius: 0 !important;
}
.nl-document-content .image-container img,
.nl-document-content .image-wrapper img {
  width: 100% !important;
  height: 100% !important;
  display: block;
  object-fit: cover !important;
  border-radius: 0 !important;
}
.nl-document-content .game-info { padding: 0 24px !important; text-align: left !important; }
.nl-document-content .game-title {
  margin: 0 0 8px !important;
  color: var(--nl-ink) !important;
  font-family: var(--nl-display) !important;
  font-size: 21px !important;
  line-height: 1.15 !important;
  letter-spacing: -.035em;
}
.nl-document-content .game-age {
  display: inline-flex !important;
  margin: 0 0 14px !important;
  padding: 5px 8px !important;
  border-radius: 99px !important;
  background: #e5dfd4 !important;
  color: #5c574f !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.nl-document-content .game-description { margin: 0 0 20px !important; color: #666057 !important; font-size: 12px !important; line-height: 1.6 !important; }

.nl-document-content .download-buttons {
  display: flex !important;
  flex-wrap: wrap;
  gap: 9px !important;
  margin: 20px 0 0 !important;
}
.nl-document-content .download-btn,
.nl-preserved-content .wp-element-button {
  min-height: 45px;
  padding: 0 15px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--nl-ink) !important;
  border-radius: 2px !important;
  background: var(--nl-ink) !important;
  color: var(--nl-paper-bright) !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: .04em;
  text-decoration: none !important;
  text-transform: uppercase;
  transition: transform .2s ease, background .2s ease, color .2s ease;
}
.nl-document-content .download-btn:hover,
.nl-preserved-content .wp-element-button:hover { transform: translateY(-2px); background: var(--nl-orange) !important; color: var(--nl-ink) !important; border-color: var(--nl-orange) !important; }
.nl-document-content .download-btn i { display: none !important; }
.nl-document-content .download-btn.nl-is-disabled { cursor: not-allowed; opacity: .48; transform: none !important; }
.nl-document-content .game-page-btn {
  display: inline-block;
  margin-bottom: 8px;
  color: #8e4300 !important;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  text-underline-offset: 4px;
  text-transform: uppercase;
}
.nl-document-content .production-badge {
  position: absolute !important;
  z-index: 3;
  top: 14px !important;
  right: 14px !important;
  padding: 7px 9px !important;
  border-radius: 99px !important;
  background: var(--nl-orange) !important;
  color: var(--nl-ink) !important;
  font-size: 8px !important;
  font-weight: 900 !important;
  letter-spacing: .07em;
  text-transform: uppercase;
}

/* Contenido pedagógico de las fichas extensas. */
.nl-document-content .competence-section,
.nl-document-content .video-section {
  margin: 0 !important;
  padding: clamp(68px, 8vw, 112px) !important;
  background: var(--nl-paper) !important;
  color: var(--nl-ink) !important;
}
.nl-document-content .competence-content {
  display: grid !important;
  grid-template-columns: .82fr 1.18fr !important;
  gap: clamp(42px, 7vw, 96px) !important;
  align-items: center !important;
}
.nl-document-content .competence-image img {
  width: 100% !important;
  display: block;
  border-radius: 0 !important;
  box-shadow: 18px 18px 0 var(--nl-page-accent) !important;
}
.nl-document-content .competence-text h3 {
  margin: 0 0 20px !important;
  color: var(--nl-ink) !important;
  font-family: var(--nl-display) !important;
  font-size: clamp(27px, 3.5vw, 43px) !important;
  line-height: 1.08;
  letter-spacing: -.045em;
}
.nl-document-content .competence-text p { color: #5b564f !important; font-size: 14px !important; line-height: 1.75 !important; }
.nl-document-content .benefits-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0 !important;
  margin-top: 38px !important;
  border: 1px solid var(--nl-light-line);
}
.nl-document-content .benefit-card {
  min-height: 190px;
  padding: 28px !important;
  border: 0 !important;
  border-right: 1px solid var(--nl-light-line) !important;
  border-bottom: 1px solid var(--nl-light-line) !important;
  border-radius: 0 !important;
  background: var(--nl-paper-bright) !important;
  box-shadow: none !important;
}
.nl-document-content .benefit-card:nth-child(even) { border-right: 0 !important; }
.nl-document-content .benefit-icon { margin-bottom: 25px !important; color: var(--nl-page-accent) !important; font-size: 0 !important; }
.nl-document-content .benefit-icon i::before { content: "＋"; font-family: var(--nl-body) !important; font-size: 22px; font-weight: 700; }
.nl-document-content .benefit-card h4 { margin: 0 0 9px !important; color: var(--nl-ink) !important; font-family: var(--nl-display); font-size: 17px !important; }
.nl-document-content .benefit-card p { margin: 0 !important; color: #6b655d !important; font-size: 12px !important; }

.nl-document-content .how-it-works {
  margin: 0 !important;
  padding: clamp(68px, 8vw, 112px) !important;
  background: var(--nl-ink-soft) !important;
  color: var(--nl-paper-bright) !important;
}
.nl-document-content .steps-container {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0 !important;
  border-top: 1px solid var(--nl-dark-line);
  border-bottom: 1px solid var(--nl-dark-line);
}
.nl-document-content .step-card {
  position: relative;
  min-height: 310px;
  padding: 32px 28px !important;
  border: 0 !important;
  border-right: 1px solid var(--nl-dark-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--nl-paper) !important;
  box-shadow: none !important;
  text-align: left !important;
}
.nl-document-content .step-card:last-child { border-right: 0 !important; }
.nl-document-content .step-number {
  position: static !important;
  width: auto !important;
  height: auto !important;
  margin: 0 0 58px !important;
  display: block !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--nl-page-accent) !important;
  font-family: var(--nl-display);
  font-size: 11px !important;
}
.nl-document-content .step-icon { display: none !important; }
.nl-document-content .step-card h3 { margin: 0 0 13px !important; color: var(--nl-paper-bright) !important; font-family: var(--nl-display) !important; font-size: 19px !important; line-height: 1.2; }
.nl-document-content .step-card p { margin: 0 !important; color: #918c84 !important; font-size: 12px !important; line-height: 1.7 !important; }

.nl-document-content .download-section {
  margin: 0 !important;
  padding: clamp(68px, 8vw, 112px) !important;
  background: var(--nl-page-accent) !important;
  color: var(--nl-ink) !important;
  text-align: left !important;
}
.nl-document-content .download-cta { max-width: 850px; margin: 0 !important; text-align: left !important; }
.nl-document-content .download-cta h2 { margin: 0 0 20px !important; color: var(--nl-ink) !important; font-family: var(--nl-display) !important; font-size: clamp(38px, 5vw, 67px) !important; line-height: 1; letter-spacing: -.055em; text-transform: uppercase; }
.nl-document-content .download-cta p { max-width: 720px; color: rgba(9,9,8,.72) !important; }
.nl-document-content .download-section .download-btn { background: var(--nl-ink) !important; border-color: var(--nl-ink) !important; }
.nl-document-content .video-section iframe,
.nl-preserved-content iframe { width: 100% !important; max-width: 920px !important; border: 0; aspect-ratio: 16 / 9; height: auto !important; }

/* Páginas de WordPress anteriores: conserva bloques y los ordena como ficha. */
.nlr-game .nl-preserved-content:not(.nl-document-content) { position: relative; }
.nlr-game .nl-preserved-content:not(.nl-document-content) .wp-block-columns {
  gap: clamp(24px, 5vw, 64px) !important;
  align-items: center !important;
}
.nlr-game .nl-preserved-content:not(.nl-document-content) .wp-block-cover {
  min-height: 240px !important;
  margin-bottom: 38px;
  border-radius: 0 !important;
}
.nlr-game .nl-preserved-content:not(.nl-document-content) figure { margin-block: 24px; }
.nlr-game .nl-preserved-content:not(.nl-document-content) figure img {
  display: block;
  border-radius: 0 !important;
  box-shadow: 0 15px 42px rgba(22,16,8,.14);
}
.nlr-game .nl-preserved-content:not(.nl-document-content) .wp-block-gallery {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 14px !important;
  margin: 42px 0 !important;
}
.nlr-game .nl-preserved-content:not(.nl-document-content) .wp-block-gallery figure { width: 100% !important; margin: 0 !important; }
.nlr-game .nl-preserved-content:not(.nl-document-content) .wp-block-gallery img { width: 100% !important; height: 100% !important; aspect-ratio: 4 / 3; object-fit: cover; }
.nlr-slug-quieresiralauni .nl-preserved-content > .wp-block-columns { align-items: start !important; }
.nlr-slug-quieresiralauni .nl-preserved-content > .wp-block-columns .wp-block-column { min-width: 0; }
.nlr-slug-quieresiralauni .nl-preserved-content > .wp-block-columns img { width: 100%; max-height: 660px; object-fit: contain; background: #e5dfd4; }
.nlr-slug-silabz .nl-preserved-content iframe { min-height: 620px; }

/* Botones de tiendas hechos con imágenes. */
.nl-preserved-content a:has(img[src*="App_Store"]),
.nl-preserved-content a:has(img[src*="Google_Play"]),
.nl-preserved-content a:has(img[src*="app-store"]),
.nl-preserved-content a:has(img[src*="google-play"]) {
  display: inline-flex;
  margin: 6px 8px 6px 0;
  padding: 6px;
  background: var(--nl-ink);
  border-radius: 3px;
}
.nl-preserved-content a:has(img[src*="App_Store"]) img,
.nl-preserved-content a:has(img[src*="Google_Play"]) img,
.nl-preserved-content a:has(img[src*="app-store"]) img,
.nl-preserved-content a:has(img[src*="google-play"]) img { width: auto !important; height: 52px !important; margin: 0 !important; object-fit: contain; box-shadow: none !important; }

/* Centros editoriales y fichas ampliadas de Jugando Aprendemos. */
.nlr-slug-jugando-con-silabas .nl-page-shell,
.nlr-slug-jugando-con-figuras .nl-page-shell,
.nlr-slug-jugando-con-numeros .nl-page-shell,
.nlr-slug-quieresiralauni .nl-page-shell,
.nlr-slug-silabz .nl-page-shell,
.nlr-slug-aventuras-vocales .nl-page-shell,
.nlr-slug-living-in-ownflesh .nl-page-shell,
.nlr-guide .nl-page-shell,
.nlr-hub .nl-page-shell { padding-bottom: 0; }

.nl-jcs,
.nl-guide {
  --nl-content-pad: clamp(56px, 7.5vw, 108px);
  overflow: hidden;
  background: var(--nl-paper);
  color: var(--nl-ink);
}
.nl-jcs *,
.nl-guide * { min-width: 0; }
.nl-jcs :where(h1, h2, h3),
.nl-guide :where(h1, h2, h3) { font-family: var(--nl-display); letter-spacing: -.055em; }
.nl-jcs :where(h1, h2, h3, p, li, a),
.nl-guide :where(h1, h2, h3, p, li, a) { overflow-wrap: anywhere; }
.nl-jcs :where(p, li),
.nl-guide :where(p, li) { color: #565149; }
.nl-jcs a,
.nl-guide a { text-underline-offset: 5px; }
.nl-content-kicker {
  margin: 0 0 20px !important;
  color: var(--nl-page-accent) !important;
  font-size: 10px !important;
  font-weight: 850;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.nl-content-kicker span { color: inherit; }
.nl-section-intro { max-width: 930px; margin-bottom: 54px; }
.nl-section-intro h2,
.nl-jcs-section > h2,
.nl-guide-section > h2 {
  margin: 0 0 22px;
  color: inherit;
  font-size: clamp(36px, 5.2vw, 69px);
  line-height: .98;
  text-transform: uppercase;
}
.nl-section-intro > p:last-child { max-width: 720px; font-size: 16px; line-height: 1.75; }
.nl-button-primary {
  min-height: 54px;
  padding: 0 20px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  border: 1px solid var(--nl-ink);
  border-radius: 2px;
  background: var(--nl-ink);
  color: var(--nl-paper-bright) !important;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform .2s ease, background .2s ease, color .2s ease;
}
.nl-button-primary:hover { transform: translateY(-2px); background: var(--nl-orange); color: var(--nl-ink) !important; border-color: var(--nl-orange); }
.nl-text-link { color: inherit !important; font-size: 11px; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }

.nl-jcs-hero {
  min-height: 680px;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr);
  background: var(--nl-ink-soft);
  color: var(--nl-paper-bright);
}
.nl-jcs-hero-copy {
  padding: clamp(68px, 8vw, 122px) clamp(48px, 6.7vw, 98px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.nl-jcs-hero h1 {
  max-width: 790px;
  margin: 0 0 28px;
  color: var(--nl-paper-bright);
  font-size: clamp(58px, 7.5vw, 108px);
  line-height: .86;
  letter-spacing: -.075em;
  text-transform: uppercase;
}
.nl-jcs-hero h1 em { display: block; color: var(--nl-page-accent); font-style: normal; }
.nl-jcs-lead { max-width: 680px; margin: 0 0 28px !important; color: #cbc5bc !important; font-size: clamp(17px, 1.7vw, 22px); line-height: 1.55; }
.nl-trust-strip { margin: 0 0 32px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.nl-trust-strip li { padding: 7px 10px; border: 1px solid rgba(242,194,48,.42); border-radius: 99px; color: var(--nl-page-accent); font-size: 9px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.nl-store-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }
.nl-store-button {
  min-width: 174px;
  min-height: 58px;
  padding: 9px 16px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 4px;
  background: #050505;
  color: #fff !important;
  text-decoration: none;
  transition: transform .2s ease, border-color .2s ease;
}
.nl-store-button:hover { transform: translateY(-2px); border-color: var(--nl-page-accent); }
.nl-store-button span { font-size: 8px; line-height: 1; letter-spacing: .04em; }
.nl-store-button strong { margin-top: 4px; font-size: 17px; line-height: 1; }
.nl-jcs-hero-copy > .nl-text-link { align-self: flex-start; margin-top: 34px; color: var(--nl-paper) !important; text-decoration-color: var(--nl-page-accent); }
.nl-jcs-hero-visual { position: relative; min-height: 680px; margin: 0; overflow: hidden; }
.nl-jcs-hero-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(19,19,17,.22), transparent 40%), linear-gradient(0deg, rgba(9,9,8,.72), transparent 42%); pointer-events: none; }
.nl-jcs-hero-visual img { width: 100%; height: 100%; min-height: 680px; display: block; object-fit: cover; }
.nl-jcs-hero-visual figcaption { position: absolute; z-index: 2; left: 32px; right: 32px; bottom: 30px; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; color: #fff; font-size: 11px; }
.nl-jcs-hero-visual figcaption strong { color: var(--nl-page-accent); font-size: 25px; }
.nl-jcs-hero-visual figcaption span { max-width: 240px; text-align: right; }

.nl-jcs-subnav,
.nl-guide-subnav {
  position: sticky;
  z-index: 20;
  top: 72px;
  min-height: 58px;
  padding: 0 var(--nl-content-pad);
  display: flex;
  align-items: center;
  gap: 28px;
  overflow-x: auto;
  background: rgba(243,240,233,.96);
  border-bottom: 1px solid var(--nl-light-line);
  backdrop-filter: blur(14px);
  scrollbar-width: none;
}
.nl-jcs-subnav::-webkit-scrollbar,
.nl-guide-subnav::-webkit-scrollbar { display: none; }
.nl-jcs-subnav a,
.nl-guide-subnav a { min-height: 44px; flex: 0 0 auto; display: inline-flex; align-items: center; color: #4f4a43 !important; font-size: 9px; font-weight: 850; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.nl-jcs-subnav a:hover,
.nl-guide-subnav a:hover { color: var(--nl-page-accent-deep) !important; }

.nl-jcs-section,
.nl-guide-section { padding: var(--nl-content-pad); scroll-margin-top: 140px; }
.nl-jcs-learning { background: var(--nl-paper); }
.nl-learning-grid { display: grid; grid-template-columns: minmax(300px,.8fr) minmax(0,1.2fr); gap: clamp(50px,8vw,120px); align-items: center; }
.nl-learning-grid figure { margin: 0; }
.nl-learning-grid img { width: 100%; display: block; box-shadow: 22px 22px 0 var(--nl-page-accent); }
.nl-learning-copy { max-width: 760px; }
.nl-answer { margin-bottom: 22px !important; color: var(--nl-ink) !important; font-size: clamp(20px,2.1vw,28px); line-height: 1.48; }
.nl-syllable-demo { margin: 35px 0; display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.nl-syllable-demo span { min-width: 59px; padding: 13px 10px; border: 1px solid var(--nl-ink); text-align: center; font-weight: 850; }
.nl-syllable-demo b { margin-left: 8px; color: var(--nl-page-accent-deep); font-size: 11px; text-transform: uppercase; }
.nl-note { padding: 18px 20px; border-left: 3px solid var(--nl-page-accent); background: rgba(9,9,8,.055); color: #5e5951 !important; font-size: 12px !important; }

/* Identidad geométrica de Jugando con Figuras. */
.nl-shape-demo { margin: 36px 0; display: flex; flex-wrap: wrap; gap: 10px; }
.nl-shape-demo > span { min-width: 112px; min-height: 112px; padding: 18px 14px; display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid var(--nl-light-line); background: var(--nl-paper-bright); }
.nl-shape-demo b { color: var(--nl-ink); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.nl-shape { width: 52px; height: 52px; display: inline-block; flex: 0 0 auto; background: var(--nl-page-accent); }
.nl-shape-circle { border-radius: 50%; }
.nl-shape-triangle { width: 0; height: 0; background: transparent; border-right: 29px solid transparent; border-bottom: 52px solid var(--nl-page-accent); border-left: 29px solid transparent; }

.nl-jcf-levels { background: #ddd6ca; }
.nl-level-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--nl-light-line); border-left: 1px solid var(--nl-light-line); }
.nl-level-grid article { min-height: 390px; padding: 28px; display: flex; flex-direction: column; border-right: 1px solid var(--nl-light-line); border-bottom: 1px solid var(--nl-light-line); background: rgba(255,253,248,.34); }
.nl-level-grid article.is-included { background: var(--nl-paper-bright); }
.nl-level-topline { display: flex; justify-content: space-between; gap: 16px; color: var(--nl-page-accent-deep); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.nl-level-topline b { color: var(--nl-ink); font-size: inherit; }
.nl-level-symbols { min-height: 112px; margin: 55px 0 34px; display: flex; align-items: center; gap: 13px; }
.nl-level-symbols .nl-shape { width: 43px; height: 43px; }
.nl-level-symbols .nl-shape-triangle { width: 0; height: 0; border-right-width: 24px; border-bottom-width: 43px; border-left-width: 24px; }
.nl-level-color .nl-shape:nth-child(1) { background: #e24f36; }
.nl-level-color .nl-shape:nth-child(2) { background: #3978d4; }
.nl-level-color .nl-shape:nth-child(3) { background: #f2c230; }
.nl-level-size .nl-shape:first-child { width: 32px; height: 32px; }
.nl-level-size .nl-shape:last-child { width: 68px; height: 68px; }
.nl-level-combined { gap: 8px; }
.nl-level-combined .nl-shape:nth-of-type(1) { border-bottom-color: #3978d4; }
.nl-level-combined .nl-shape:nth-of-type(2) { width: 29px; height: 29px; background: #e24f36; }
.nl-level-combined .nl-shape:nth-of-type(3) { width: 58px; height: 58px; background: #f2c230; }
.nl-level-combined > span { color: #716b63; font-size: 16px; font-weight: 850; }
.nl-level-grid h3 { margin: auto 0 13px; color: var(--nl-ink); font-size: clamp(22px,2.2vw,31px); line-height: 1.04; text-transform: uppercase; }
.nl-level-grid p { margin: 0; font-size: 12px; line-height: 1.65; }

/* El circo numérico de Jugando con Números se construye con CSS para no
   presentar arte provisional como una captura del juego en desarrollo. */
.nl-jcn-status { max-width: 570px; padding: 14px 16px; display: flex; align-items: flex-start; gap: 13px; border: 1px solid rgba(242,194,48,.35); background: rgba(242,194,48,.06); }
.nl-jcn-status > span { width: 10px; height: 10px; margin-top: 4px; flex: 0 0 auto; border-radius: 50%; background: var(--nl-page-accent); box-shadow: 0 0 0 5px rgba(242,194,48,.12); }
.nl-jcn-status strong,
.nl-jcn-status small { display: block; }
.nl-jcn-status strong { color: var(--nl-paper-bright); font-size: 11px; letter-spacing: .05em; text-transform: uppercase; }
.nl-jcn-status small { margin-top: 4px; color: #9f998f; font-size: 10px; line-height: 1.45; }
.nl-jcn-hero-visual { isolation: isolate; background: radial-gradient(circle at 50% 56%, rgba(255,211,78,.3), transparent 25%), linear-gradient(180deg,#145f56 0 70%,#1a1712 70%); }
.nl-jcn-hero-visual::after { z-index: 0; background: radial-gradient(circle at 50% 48%,transparent 0 24%,rgba(2,8,7,.55) 70%), linear-gradient(0deg,rgba(4,4,3,.72),transparent 38%); }
.nl-jcn-hero-visual > * { position: absolute; z-index: 1; }
.nl-circus-sign { top: 11%; left: 50%; width: min(78%,430px); padding: 21px 24px 18px; border: 5px solid #efc438; border-radius: 48% 48% 8px 8px; background: #b9382d; color: #fff5d4; text-align: center; transform: translateX(-50%); box-shadow: 0 0 0 7px #5e1e1a,0 16px 35px rgba(0,0,0,.35); }
.nl-circus-sign::before { content: ""; position: absolute; inset: -12px; z-index: -1; border: 2px dashed #fff1a7; border-radius: inherit; opacity: .65; }
.nl-circus-sign span { display: block; font-size: 9px; font-weight: 850; letter-spacing: .2em; text-transform: uppercase; }
.nl-circus-sign strong { display: block; margin-top: 8px; font-family: var(--nl-display); font-size: clamp(25px,3.6vw,48px); line-height: .95; letter-spacing: -.04em; }
.nl-circus-curtain { top: 0; bottom: 18%; width: 34%; background: repeating-linear-gradient(90deg,#741f27 0 17%,#a82d34 17% 34%); box-shadow: inset 0 0 50px rgba(0,0,0,.42); }
.nl-curtain-left { left: -12%; border-bottom-right-radius: 80% 42%; transform: rotate(4deg); }
.nl-curtain-right { right: -12%; border-bottom-left-radius: 80% 42%; transform: rotate(-4deg); }
.nl-circus-stage { z-index: 0; left: 7%; right: 7%; bottom: 0; height: 28%; border-radius: 50% 50% 0 0 / 28% 28% 0 0; background: repeating-linear-gradient(90deg,#a66c2d 0 10%,#c98d42 10% 20%); box-shadow: inset 0 16px 26px rgba(255,220,142,.16),0 -8px 45px rgba(255,194,60,.15); }
.nl-circus-numbers { left: 12%; right: 12%; bottom: 25%; min-height: 170px; display: flex; align-items: flex-end; justify-content: space-around; }
.nl-circus-numbers b { width: clamp(43px,6.5vw,82px); height: clamp(64px,9vw,112px); display: grid; place-items: center; border: 3px solid rgba(255,251,217,.72); border-radius: 50% 50% 44% 44%; background: #f0c33d; color: #181510; font-family: var(--nl-display); font-size: clamp(27px,5vw,62px); line-height: 1; box-shadow: 0 15px 22px rgba(0,0,0,.28); transform: rotate(-7deg); }
.nl-circus-numbers b:nth-child(2n) { background: #ed6846; color: #fff7dc; transform: translateY(22px) rotate(8deg); }
.nl-circus-numbers b:nth-child(3) { background: #5eb5ae; transform: translateY(-24px) rotate(4deg); }
.nl-jcn-hero-visual > p { left: 32px; right: 32px; bottom: 28px; z-index: 2; margin: 0; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; color: #fff; font-size: 11px; }
.nl-jcn-hero-visual > p strong { color: var(--nl-page-accent); font-size: 25px; }
.nl-jcn-hero-visual > p span { max-width: 250px; text-align: right; }
.nl-jcn-learning-grid { align-items: stretch; }
.nl-number-path { padding: 30px; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; align-content: center; background: var(--nl-ink-soft); box-shadow: 22px 22px 0 var(--nl-page-accent); }
.nl-number-path span { aspect-ratio: 1; min-height: 58px; display: grid; place-items: center; border: 1px solid var(--nl-dark-line); background: rgba(255,255,255,.035); color: var(--nl-paper-bright); font-family: var(--nl-display); font-size: clamp(27px,4vw,48px); font-weight: 850; }
.nl-number-path span:nth-child(3n+1) { color: var(--nl-page-accent); }
.nl-number-equation { margin: 34px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.nl-number-equation span { width: 60px; height: 60px; display: grid; place-items: center; background: var(--nl-page-accent); color: var(--nl-ink); font-family: var(--nl-display); font-size: 29px; font-weight: 850; }
.nl-number-equation i { color: var(--nl-ink); font-size: 20px; font-style: normal; font-weight: 850; }
.nl-level-grid-five { grid-template-columns: repeat(5,minmax(0,1fr)); }
.nl-level-grid-five article { min-height: 430px; padding-inline: 24px; }
.nl-level-grid-five h3 { font-size: clamp(20px,1.75vw,27px); }
.nl-level-grid-five .nl-level-symbols { gap: 7px; }
.nl-level-symbols i { font-style: normal; }
.nl-number-order i,
.nl-number-mix i { width: 38px; height: 49px; display: grid; place-items: center; border: 1px solid var(--nl-ink); background: var(--nl-paper-bright); color: var(--nl-ink); font-family: var(--nl-display); font-size: 21px; font-weight: 850; }
.nl-number-order i:nth-child(2n),
.nl-number-mix i:nth-child(2) { background: var(--nl-page-accent); }
.nl-seesaw { position: relative; justify-content: space-between; padding-bottom: 24px; }
.nl-seesaw::before { content: ""; position: absolute; left: 5%; right: 5%; bottom: 26px; height: 5px; background: var(--nl-ink); transform: rotate(-4deg); transform-origin: center; }
.nl-seesaw::after { content: ""; position: absolute; left: 50%; bottom: 3px; width: 0; height: 0; border-right: 22px solid transparent; border-bottom: 32px solid var(--nl-page-accent-deep); border-left: 22px solid transparent; transform: translateX(-50%); }
.nl-seesaw i { position: relative; z-index: 1; padding: 7px; background: var(--nl-paper-bright); color: var(--nl-ink); font-family: var(--nl-display); font-size: 17px; font-weight: 850; }
.nl-trapeze { position: relative; justify-content: center; padding-top: 28px; }
.nl-trapeze::before { content: ""; position: absolute; top: 0; left: 22%; right: 22%; height: 3px; background: var(--nl-ink); }
.nl-trapeze > i { position: absolute; top: 3px; left: 50%; width: 42px; height: 56px; display: grid; place-items: end center; border-inline: 2px solid var(--nl-ink); color: var(--nl-ink); font-family: var(--nl-display); font-size: 24px; font-weight: 850; transform: translateX(-50%); }
.nl-trapeze > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--nl-page-accent); color: var(--nl-ink); font-family: var(--nl-display); font-size: 22px; font-weight: 850; transform: translateY(32px); }
.nl-trapeze > span.is-too-big { background: #b9382d; color: #fff; }
.nl-number-mix i { width: 48px; border-radius: 50%; }
.nl-jcn-final-cta .nl-button-primary { min-width: 220px; }

.nl-jcf-video { background: var(--nl-ink-soft); color: var(--nl-paper-bright); }
.nl-jcf-video-frame { position: relative; overflow: hidden; aspect-ratio: 16 / 9; border: 1px solid var(--nl-dark-line); background: #000; }
.nl-jcf-video-frame iframe { width: 100%; height: 100%; display: block; border: 0; }
.nl-jcf-gallery { background: var(--nl-paper-bright); }
.nl-jcf-gallery-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(260px,.65fr); grid-auto-rows: 230px; gap: 12px; }
.nl-jcf-gallery-grid figure { margin: 0; overflow: hidden; background: #ddd6ca; }
.nl-jcf-gallery-grid figure:first-child { grid-row: span 2; }
.nl-jcf-gallery-grid img { width: 100%; height: 100%; display: block; object-fit: cover; }

/* Quieres ir a la Uni: conserva las capturas publicadas y usa la identidad
   violeta de Aprendo Casual para ordenar práctica, materias y trayectoria. */
.nl-uni-hero-visual { display: flex; align-items: center; justify-content: center; background: radial-gradient(circle at 50% 42%,rgba(247,214,109,.25),transparent 32%),linear-gradient(150deg,#251752,#613ea8 58%,#181126); }
.nl-uni-hero-visual::after { background: linear-gradient(0deg,rgba(16,10,38,.82),transparent 45%); }
.nl-uni-hero-visual img { width: min(76%,500px); height: auto; min-height: 0; aspect-ratio: 1; object-fit: contain; filter: drop-shadow(0 28px 34px rgba(0,0,0,.32)); }
.nl-uni-learning-grid figure { display: flex; justify-content: center; }
.nl-uni-learning-grid figure img { width: min(100%,390px); max-height: 680px; object-fit: contain; background: #241746; }
.nl-uni-question { margin-top: 34px; padding: 25px; border: 1px solid var(--nl-light-line); background: var(--nl-paper-bright); }
.nl-uni-question span { display: block; margin-bottom: 15px; color: var(--nl-page-accent-deep); font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.nl-uni-question strong { display: block; color: var(--nl-ink); font-family: var(--nl-display); font-size: clamp(21px,2.4vw,31px); line-height: 1.1; }
.nl-uni-question i { display: block; margin-top: 13px; color: #6b655d; font-size: 11px; font-style: normal; }
.nl-uni-subjects { background: #ddd6ca; }
.nl-uni-subject-grid,
.nl-uni-guide-subjects { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border-top: 1px solid var(--nl-light-line); border-left: 1px solid var(--nl-light-line); }
.nl-uni-subject-grid article,
.nl-uni-guide-subjects article { min-height: 330px; padding: 27px; display: flex; flex-direction: column; border-right: 1px solid var(--nl-light-line); border-bottom: 1px solid var(--nl-light-line); background: rgba(255,253,248,.3); }
.nl-uni-subject-grid span,
.nl-uni-guide-subjects span { color: var(--nl-page-accent-deep); font-size: 9px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.nl-uni-subject-grid h3,
.nl-uni-guide-subjects h3 { margin: auto 0 14px; color: var(--nl-ink); font-size: clamp(22px,2vw,29px); line-height: 1; text-transform: uppercase; }
.nl-uni-subject-grid p,
.nl-uni-guide-subjects p { margin: 0; font-size: 12px; }
.nl-uni-legacy { background: var(--nl-ink-soft); color: var(--nl-paper-bright); }
.nl-uni-award { display: grid; grid-template-columns: minmax(180px,.45fr) minmax(0,1.55fr); gap: clamp(45px,8vw,120px); align-items: center; }
.nl-uni-award > span { color: var(--nl-page-accent); font-family: var(--nl-display); font-size: clamp(74px,12vw,170px); font-weight: 900; letter-spacing: -.09em; line-height: .8; }
.nl-uni-award h2 { max-width: 880px; margin: 0 0 25px; color: var(--nl-paper-bright); font-size: clamp(39px,5.4vw,72px); line-height: .95; text-transform: uppercase; }
.nl-uni-award p:not(.nl-content-kicker) { max-width: 800px; color: #b8b1a7; }
.nl-uni-award strong { color: var(--nl-paper-bright); }
.nl-uni-gallery { grid-template-columns: repeat(3,minmax(0,1fr)); grid-auto-rows: 590px; }
.nl-uni-gallery figure:first-child { grid-column: auto; grid-row: auto; }
.nl-uni-gallery img { object-fit: contain; background: #1b1236; }

/* Silabz!: el material publicado conserva protagonismo sin perder la identidad
   violeta de Aprendo Casual. */
.nl-silabz-hero-visual { display: flex; align-items: center; justify-content: center; background: radial-gradient(circle at 50% 42%,rgba(255,255,255,.24),transparent 38%),#1875cf; }
.nl-silabz-hero-visual::after { background: linear-gradient(0deg,rgba(8,20,54,.78),transparent 44%); }
.nl-silabz-hero-visual img { width: min(78%,520px); height: auto; min-height: 0; aspect-ratio: 1; object-fit: contain; filter: drop-shadow(0 28px 32px rgba(0,0,0,.25)); }
.nl-silabz-autonomy { background: #ddd6ca; }
.nl-silabz-web { background: var(--nl-ink-soft); color: var(--nl-paper-bright); }
.nl-silabz-web .nl-section-intro > p:last-child { color: #a9a39a; }
.nl-silabz-frame { max-width: 900px; margin-bottom: 22px; overflow: hidden; border: 1px solid var(--nl-dark-line); background: #090908; }
.nl-silabz-frame iframe { width: 100%; min-height: 190px; display: block; border: 0; }
.nl-silabz-web .nl-text-link { color: var(--nl-paper) !important; text-decoration-color: var(--nl-page-accent); }

/* Aventuras Vocales: ilustración editorial hecha con CSS para no presentar
   imágenes conceptuales como capturas de un juego que sigue en producción. */
.nl-av-hero-visual { isolation: isolate; background: radial-gradient(circle at 72% 23%,rgba(255,248,185,.84),transparent 13%),linear-gradient(180deg,#204773 0 52%,#c78b49 52% 78%,#774d2e 78%); }
.nl-av-hero-visual::after { z-index: 0; background: linear-gradient(0deg,rgba(5,10,22,.78),transparent 44%),linear-gradient(90deg,rgba(12,22,41,.24),transparent 45%); }
.nl-av-hero-visual > * { position: absolute; z-index: 1; }
.nl-av-sky { inset: 10% 9% auto; height: 44%; }
.nl-av-sky i { position: absolute; width: clamp(52px,7vw,82px); height: clamp(52px,7vw,82px); display: grid; place-items: center; border-radius: 50%; background: var(--nl-page-accent); color: var(--nl-ink); font-family: var(--nl-display); font-size: clamp(27px,4vw,46px); font-style: normal; font-weight: 900; box-shadow: 0 14px 28px rgba(0,0,0,.22); }
.nl-av-sky i:nth-child(1) { left: 2%; top: 28%; transform: rotate(-8deg); }
.nl-av-sky i:nth-child(2) { left: 23%; top: 4%; transform: rotate(7deg); }
.nl-av-sky i:nth-child(3) { left: 45%; top: 31%; transform: rotate(-5deg); }
.nl-av-sky i:nth-child(4) { right: 17%; top: 0; transform: rotate(9deg); }
.nl-av-sky i:nth-child(5) { right: 0; top: 36%; transform: rotate(-7deg); }
.nl-av-book { left: 50%; bottom: 18%; width: min(54%,330px); height: 155px; display: flex; perspective: 480px; transform: translateX(-50%) rotate(-2deg); filter: drop-shadow(0 20px 18px rgba(0,0,0,.34)); }
.nl-av-book span { width: 50%; border: 5px solid #5d351b; background: repeating-linear-gradient(0deg,#fff1c7 0 16px,#d7c395 17px 18px); }
.nl-av-book span:first-child { border-radius: 8px 0 22px 5px; transform: rotateY(18deg); transform-origin: right; }
.nl-av-book span:last-child { border-radius: 0 8px 5px 22px; transform: rotateY(-18deg); transform-origin: left; }
.nl-av-route { left: -4%; right: -4%; bottom: 9%; height: 78px; border-top: 3px dashed rgba(255,244,199,.75); border-radius: 50%; transform: rotate(-5deg); }
.nl-av-hero-visual > p { left: 32px; right: 32px; bottom: 28px; z-index: 2; margin: 0; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; color: #fff; font-size: 11px; }
.nl-av-hero-visual > p strong { color: var(--nl-page-accent); font-size: 25px; }
.nl-av-hero-visual > p span { max-width: 270px; text-align: right; }
.nl-av-story { background: var(--nl-paper); }
.nl-av-story-grid { display: grid; grid-template-columns: minmax(260px,.7fr) minmax(0,1.3fr); gap: clamp(50px,8vw,120px); align-items: center; }
.nl-av-letter-line { display: grid; grid-template-columns: repeat(5,1fr); border: 1px solid var(--nl-light-line); }
.nl-av-letter-line span { aspect-ratio: .78; display: grid; place-items: center; border-right: 1px solid var(--nl-light-line); background: var(--nl-paper-bright); color: var(--nl-page-accent-deep); font-family: var(--nl-display); font-size: clamp(34px,5vw,68px); font-weight: 900; }
.nl-av-letter-line span:last-child { border-right: 0; }
.nl-av-worlds { background: #ddd6ca; }
.nl-av-world-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border-top: 1px solid var(--nl-light-line); border-left: 1px solid var(--nl-light-line); }
.nl-av-world-grid article { min-height: 330px; padding: 26px; display: flex; flex-direction: column; border-right: 1px solid var(--nl-light-line); border-bottom: 1px solid var(--nl-light-line); }
.nl-av-world-grid span { color: var(--nl-page-accent-deep); font-size: 9px; font-weight: 850; letter-spacing: .09em; }
.nl-av-world-grid i { margin: 42px 0 auto; color: var(--nl-page-accent-deep); font-size: 45px; font-style: normal; line-height: 1; }
.nl-av-world-grid h3 { margin: 34px 0 10px; color: var(--nl-ink); font-size: 24px; line-height: 1; text-transform: uppercase; }
.nl-av-world-grid p { margin: 0; font-size: 12px; }
.nl-av-vehicles { background: var(--nl-paper-bright); }
.nl-av-vehicle-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.nl-av-vehicle-grid article { min-height: 210px; padding: clamp(24px,3vw,38px); display: grid; grid-template-columns: 80px minmax(0,1fr); gap: 24px; align-items: center; border: 1px solid var(--nl-light-line); background: var(--nl-paper); }
.nl-av-vehicle-grid article:last-child { grid-column: 1 / -1; }
.nl-av-vehicle-grid i { width: 72px; height: 72px; display: grid; place-items: center; border-radius: 50%; background: var(--nl-page-accent); color: var(--nl-ink); font-size: 34px; font-style: normal; }
.nl-av-vehicle-grid span { color: var(--nl-page-accent-deep); font-size: 9px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.nl-av-vehicle-grid h3 { margin: 8px 0 9px; color: var(--nl-ink); font-size: clamp(24px,2.4vw,34px); line-height: 1; text-transform: uppercase; }
.nl-av-vehicle-grid p { margin: 0; font-size: 12px; }
.nl-av-commas { background: var(--nl-ink-soft); color: var(--nl-paper-bright); }
.nl-av-commas .nl-section-intro > p:last-child { color: #9f998f; }
.nl-av-comma-meter { max-width: 760px; padding: 26px; display: flex; flex-wrap: wrap; align-items: center; gap: 14px; border: 1px solid var(--nl-dark-line); }
.nl-av-comma-meter span { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 50%; background: var(--nl-page-accent); color: var(--nl-ink); font-family: Georgia,serif; font-size: 55px; font-weight: 900; line-height: .65; }
.nl-av-comma-meter i { margin-left: 12px; color: #b8b1a7; font-size: 10px; font-style: normal; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.nl-av-commas .nl-note { max-width: 760px; margin-top: 20px; background: rgba(255,255,255,.05); color: #b8b1a7 !important; }
.nl-av-final-cta .nl-button-primary { min-width: 220px; }

/* Living in Ownflesh: gestión urbana, información incompleta y consecuencias. */
.nl-living-hero-visual { isolation: isolate; padding: clamp(28px,4vw,55px); display: flex; align-items: center; background: radial-gradient(circle at 80% 18%,rgba(138,108,230,.22),transparent 26%),linear-gradient(135deg,#17151e,#080809 72%); }
.nl-living-hero-visual::before { content: ""; position: absolute; inset: 0; opacity: .15; background-image: linear-gradient(rgba(255,255,255,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.15) 1px,transparent 1px); background-size: 42px 42px; }
.nl-living-hero-visual::after { z-index: 0; background: linear-gradient(0deg,rgba(4,4,5,.78),transparent 48%); }
.nl-living-hero-visual > * { position: relative; z-index: 1; }
.nl-living-dashboard { width: 100%; padding: clamp(18px,3vw,32px); border: 1px solid rgba(138,108,230,.6); background: rgba(12,11,15,.9); box-shadow: 22px 22px 0 rgba(138,108,230,.15); }
.nl-living-dashboard-head { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 22px; color: #b8b1c6; font-size: .78rem; font-weight: 800; letter-spacing: .09em; }
.nl-living-dashboard-head b { color: #f2c230; }
.nl-living-map { position: relative; min-height: 285px; display: grid; grid-template-columns: repeat(3,1fr); grid-template-rows: repeat(3,1fr); gap: 7px; padding: 11px; border: 1px solid rgba(255,255,255,.16); background: #171820; }
.nl-living-map::before,.nl-living-map::after { content: ""; position: absolute; z-index: 2; background: #ded7c7; opacity: .65; }
.nl-living-map::before { left: 38%; top: 0; bottom: 0; width: 7px; transform: skew(-13deg); }
.nl-living-map::after { left: 0; right: 0; top: 58%; height: 7px; transform: rotate(4deg); }
.nl-living-map i { display: block; background: linear-gradient(145deg,rgba(138,108,230,.26),rgba(255,255,255,.045)); border: 1px solid rgba(255,255,255,.08); }
.nl-living-map i:nth-child(3n+2) { background: linear-gradient(145deg,rgba(95,180,122,.18),rgba(255,255,255,.04)); }
.nl-living-map strong { position: absolute; z-index: 3; left: 55%; top: 25%; padding: 8px 10px; background: var(--nl-page-accent); color: var(--nl-ink); font-size: .72rem; letter-spacing: .05em; }
.nl-living-hygiene { margin-top: 22px; display: grid; grid-template-columns: auto auto; gap: 7px 14px; align-items: end; }
.nl-living-hygiene span,.nl-living-hygiene small { color: #aaa4b1; font-size: .78rem; font-weight: 750; letter-spacing: .07em; }
.nl-living-hygiene b { justify-self: end; color: #f7f4ed; font-size: 1.5rem; line-height: 1; }
.nl-living-hygiene i { grid-column: 1 / -1; height: 12px; overflow: hidden; border: 1px solid rgba(255,255,255,.2); background: #26262b; }
.nl-living-hygiene u { display: block; width: 78%; height: 100%; background: linear-gradient(90deg,#f2c230 0 75%,var(--nl-page-accent) 75%); text-decoration: none; }
.nl-living-hygiene small { grid-column: 1 / -1; letter-spacing: 0; }
.nl-living-hero-visual > p { position: absolute; left: clamp(28px,4vw,55px); right: clamp(28px,4vw,55px); bottom: 24px; z-index: 2; margin: 0; display: flex; justify-content: space-between; gap: 22px; color: #eee9f5; font-size: .8rem; }
.nl-living-hero-visual > p strong { color: var(--nl-page-accent); }
.nl-living-hero-visual > p span { max-width: 280px; text-align: right; }
.nl-living-premise { background: var(--nl-paper); }
.nl-living-impact-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid var(--nl-light-line); }
.nl-living-impact-grid article { min-height: 290px; padding: clamp(28px,4vw,48px); display: flex; flex-direction: column; border-right: 1px solid var(--nl-light-line); }
.nl-living-impact-grid article:last-child { border-right: 0; }
.nl-living-impact-grid span { color: var(--nl-page-accent-deep); font-size: .78rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.nl-living-impact-grid h3 { margin: auto 0 14px; color: var(--nl-ink); font-size: clamp(2rem,3.2vw,3.1rem); line-height: .95; text-transform: uppercase; }
.nl-living-impact-grid p { margin: 0; font-size: 1rem; }
.nl-living-deadline { max-width: 840px; margin: 32px 0 0; padding: 22px 25px; border-left: 5px solid #f2c230; background: rgba(255,255,255,.06); color: #c5c0b8; }
.nl-living-deadline strong { color: #fff; }
.nl-living-map-section { background: var(--nl-paper-bright); }
.nl-living-compare { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.nl-living-compare article { min-height: 420px; padding: clamp(31px,5vw,60px); display: flex; flex-direction: column; border: 1px solid var(--nl-light-line); background: var(--nl-paper); }
.nl-living-compare article:last-child { background: var(--nl-ink-soft); color: var(--nl-paper-bright); }
.nl-living-compare span { color: var(--nl-page-accent-deep); font-size: .78rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.nl-living-compare article:last-child span { color: #bcaeff; }
.nl-living-compare h3 { max-width: 470px; margin: 38px 0 22px; color: var(--nl-ink); font-size: clamp(2rem,3.8vw,3.8rem); line-height: .94; text-transform: uppercase; }
.nl-living-compare article:last-child h3 { color: var(--nl-paper-bright); }
.nl-living-compare ul { margin: 0 0 34px; padding-left: 1.2em; font-size: 1rem; }
.nl-living-compare small { margin-top: auto; color: var(--nl-page-accent-deep); font-size: .85rem; font-weight: 750; }
.nl-living-compare article:last-child small { color: #bcaeff; }
.nl-living-decisions { background: #ded8ce; }
.nl-living-decision-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; border: 1px solid var(--nl-light-line); background: var(--nl-light-line); }
.nl-living-decision-grid article { min-height: 395px; padding: clamp(31px,5vw,58px); display: flex; flex-direction: column; background: var(--nl-paper-bright); }
.nl-living-decision-grid article:last-child { background: #24212d; color: var(--nl-paper-bright); }
.nl-living-decision-grid span { color: var(--nl-page-accent-deep); font-size: .78rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.nl-living-decision-grid article:last-child span { color: #bcaeff; }
.nl-living-decision-grid h3 { margin: 38px 0 20px; color: var(--nl-ink); font-size: clamp(2rem,4vw,4rem); line-height: .93; text-transform: uppercase; }
.nl-living-decision-grid article:last-child h3 { color: var(--nl-paper-bright); }
.nl-living-decision-grid p { font-size: 1rem; }
.nl-living-decision-grid b { margin-top: auto; color: var(--nl-page-accent-deep); font-size: .82rem; letter-spacing: .05em; text-transform: uppercase; }
.nl-living-decision-grid article:last-child b { color: #bcaeff; }
.nl-living-decisions .nl-note { max-width: 920px; margin-top: 25px; }
.nl-living-consequences { background: #111014; color: var(--nl-paper-bright); }
.nl-living-consequences .nl-section-intro > p:last-child { color: #aaa4ad; }
.nl-living-chain { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); list-style: none; border-top: 1px solid var(--nl-dark-line); border-left: 1px solid var(--nl-dark-line); }
.nl-living-chain li { position: relative; min-height: 320px; padding: 27px 24px; display: flex; flex-direction: column; border-right: 1px solid var(--nl-dark-line); border-bottom: 1px solid var(--nl-dark-line); }
.nl-living-chain li:not(:last-child)::after { content: "→"; position: absolute; z-index: 2; top: 50%; right: -14px; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--nl-page-accent); color: var(--nl-ink); font-weight: 900; transform: translateY(-50%); }
.nl-living-chain span { color: #bcaeff; font-size: .78rem; font-weight: 850; }
.nl-living-chain h3 { margin: auto 0 14px; color: var(--nl-paper-bright); font-size: clamp(1.55rem,2.3vw,2.3rem); line-height: 1; text-transform: uppercase; }
.nl-living-chain p { margin: 0; color: #aaa4ad; font-size: .92rem; }
.nl-living-quality { background: var(--nl-page-accent); color: var(--nl-ink); }
.nl-living-quality h2,.nl-living-quality p { color: var(--nl-ink); }
.nl-living-quality .nl-check-list li { border-color: rgba(9,9,8,.22); color: var(--nl-ink); }
.nl-living-quality .nl-check-list li::before { color: var(--nl-ink); }
.nl-living-final-cta .nl-button-primary { min-width: 220px; }
.nl-living-guide .nl-guide-hero { background: linear-gradient(135deg,rgba(138,108,230,.17),transparent 45%),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),var(--nl-ink-soft); background-size: auto,62px 62px,62px 62px,auto; }

.nl-jcs-steps { background: var(--nl-ink-soft); color: var(--nl-paper-bright); }
.nl-jcs-steps .nl-section-intro > p:last-child { color: #9e988f; }
.nl-process-grid { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-block: 1px solid var(--nl-dark-line); list-style: none; }
.nl-process-grid li { min-height: 330px; padding: 30px; border-right: 1px solid var(--nl-dark-line); }
.nl-process-grid li:last-child { border-right: 0; }
.nl-process-grid li > span { display: block; margin-bottom: 74px; color: var(--nl-page-accent); font-size: 10px; font-weight: 850; }
.nl-process-grid h3 { margin: 0 0 14px; color: var(--nl-paper-bright); font-size: 21px; line-height: 1.05; text-transform: uppercase; }
.nl-process-grid p { margin: 0; color: #918b82; font-size: 12px; line-height: 1.7; }

.nl-jcs-together,
.nl-guide-caution { display: grid; grid-template-columns: minmax(280px,.85fr) minmax(0,1.15fr); gap: clamp(55px,9vw,130px); background: var(--nl-page-accent); }
.nl-jcs-together h2,
.nl-guide-caution h2 { color: var(--nl-ink); font-size: clamp(39px,5.3vw,72px); line-height: .96; text-transform: uppercase; }
.nl-jcs-together .nl-content-kicker { color: var(--nl-ink) !important; opacity: .72; }
.nl-jcs-together p,
.nl-guide-caution p { color: rgba(9,9,8,.75); }
.nl-check-list { margin: 28px 0 0; padding: 0; list-style: none; }
.nl-check-list li { position: relative; padding: 14px 0 14px 30px; border-bottom: 1px solid rgba(9,9,8,.18); color: inherit; }
.nl-check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--nl-ink); font-weight: 900; }

.nl-jcs-audience { background: var(--nl-paper-bright); }
.nl-jcs-access { background: #e4ded3; }
.nl-jcs-access .nl-age-check { max-width: 900px; margin: 28px 0 0; background: var(--nl-paper-bright); }
.nl-audience-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border: 1px solid var(--nl-light-line); }
.nl-audience-grid article { padding: clamp(32px,4.5vw,62px); }
.nl-audience-grid article + article { border-left: 1px solid var(--nl-light-line); background: #e7e1d7; }
.nl-card-label { color: var(--nl-page-accent-deep) !important; font-size: 9px !important; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.nl-audience-grid h3 { margin: 0 0 27px; color: var(--nl-ink); font-size: clamp(28px,3vw,42px); text-transform: uppercase; }
.nl-audience-grid ul { margin: 0; padding-left: 18px; }
.nl-audience-grid li { margin: 11px 0; }

.nl-jcs-guides,
.nl-guide-start { background: #e4ded3; }
.nl-guide-card-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-top: 1px solid var(--nl-light-line); border-left: 1px solid var(--nl-light-line); }
.nl-guide-card-grid > a { min-height: 270px; padding: clamp(28px,4vw,48px); display: flex; flex-direction: column; border-right: 1px solid var(--nl-light-line); border-bottom: 1px solid var(--nl-light-line); color: var(--nl-ink) !important; text-decoration: none; transition: background .2s ease, transform .2s ease; }
.nl-guide-card-grid > a:hover { z-index: 1; background: var(--nl-paper-bright); transform: translateY(-3px); }
.nl-guide-card-grid span { color: var(--nl-page-accent-deep); font-size: 9px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.nl-guide-card-grid h3 { max-width: 540px; margin: 35px 0 12px; color: var(--nl-ink); font-size: clamp(24px,3vw,39px); line-height: 1.04; text-transform: uppercase; }
.nl-guide-card-grid p { max-width: 520px; margin: 0 0 24px; font-size: 13px; }
.nl-guide-card-grid b { margin-top: auto; color: var(--nl-ink); font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }
.nl-jcs-guides > .nl-text-link { display: inline-block; margin-top: 30px; }

.nl-jcs-faq,
.nl-guide-faq { background: var(--nl-paper-bright); }
.nl-faq-list { border-top: 1px solid var(--nl-light-line); }
.nl-faq-list details { border-bottom: 1px solid var(--nl-light-line); }
.nl-faq-list summary { position: relative; padding: 26px 55px 26px 0; color: var(--nl-ink); cursor: pointer; font-family: var(--nl-display); font-size: clamp(18px,2.2vw,27px); font-weight: 750; letter-spacing: -.035em; list-style: none; }
.nl-faq-list summary::-webkit-details-marker { display: none; }
.nl-faq-list summary::after { content: "+"; position: absolute; right: 10px; top: 22px; color: var(--nl-page-accent-deep); font-family: var(--nl-body); font-size: 25px; }
.nl-faq-list details[open] summary::after { content: "−"; }
.nl-faq-list details p { max-width: 850px; margin: 0; padding: 0 55px 26px 0; }

.nl-jcs-sources,
.nl-guide-sources { background: #ddd6ca; }
.nl-jcs-sources h2,
.nl-guide-sources h2 { max-width: 830px; margin-bottom: 22px; }
.nl-jcs-sources > p:not(.nl-content-kicker),
.nl-guide-sources > p:not(.nl-content-kicker) { max-width: 850px; }
.nl-source-links { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 10px; }
.nl-source-links a { padding: 12px 15px; border: 1px solid var(--nl-light-line); color: var(--nl-ink) !important; font-size: 10px; font-weight: 750; text-decoration: none; }
.nl-source-links a:hover { border-color: var(--nl-page-accent-deep); background: var(--nl-paper); }

.nl-jcs-final-cta,
.nl-guide-product-callout { padding: var(--nl-content-pad); display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 60px; align-items: center; background: var(--nl-page-accent); color: var(--nl-ink); }
.nl-jcs-final-cta h2,
.nl-guide-product-callout h2 { max-width: 850px; margin: 0 0 17px; color: var(--nl-ink); font-size: clamp(40px,5.5vw,75px); line-height: .94; text-transform: uppercase; }
.nl-jcs-final-cta p,
.nl-guide-product-callout p { color: rgba(9,9,8,.72); }
.nl-jcs-final-cta .nl-store-actions { max-width: 370px; }
.nl-jcs-final-cta .nl-privacy-link { width: 100%; margin-top: 6px; color: var(--nl-ink) !important; font-size: 9px; text-align: right; text-transform: uppercase; }

/* Plantillas compartidas por los centros editoriales y sus guías. */
.nl-guide-hero { min-height: 550px; padding: clamp(76px,9vw,130px) var(--nl-content-pad); display: flex; flex-direction: column; justify-content: flex-end; background: linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px), var(--nl-ink-soft); background-size: 62px 62px; color: var(--nl-paper-bright); border-bottom: 1px solid var(--nl-page-accent); }
.nl-guide-hero h1 { max-width: 1050px; margin: 0 0 27px; color: var(--nl-paper-bright); font-size: clamp(50px,7vw,94px); line-height: .9; text-transform: uppercase; }
.nl-guide-lead { max-width: 820px; margin: 0 !important; color: #b8b1a7 !important; font-size: clamp(17px,1.8vw,23px); line-height: 1.55; }
.nl-guide-hero-actions { margin-top: 34px; display: flex; flex-wrap: wrap; gap: 24px; align-items: center; }
.nl-guide-hero .nl-button-primary { background: var(--nl-page-accent); border-color: var(--nl-page-accent); color: var(--nl-ink) !important; }
.nl-guide-hero .nl-text-link { color: var(--nl-paper) !important; text-decoration-color: var(--nl-page-accent); }
.nl-guide-reading { display: grid; grid-template-columns: minmax(270px,.7fr) minmax(0,1.3fr); gap: clamp(55px,9vw,130px); }
.nl-guide-aside { align-self: start; padding-top: 8px; }
.nl-pull-quote { color: var(--nl-ink) !important; font-family: var(--nl-display); font-size: clamp(27px,3.5vw,47px); font-weight: 750; line-height: 1.08; letter-spacing: -.045em; }
.nl-guide-prose { max-width: 780px; }
.nl-guide-prose h2 { margin: 0 0 24px; color: var(--nl-ink); font-size: clamp(34px,4vw,54px); line-height: 1; text-transform: uppercase; }
.nl-guide-prose p,
.nl-guide-prose li { font-size: 16px; line-height: 1.75; }
.nl-observation-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--nl-light-line); }
.nl-observation-grid article { min-height: 255px; padding: 28px; border-right: 1px solid var(--nl-light-line); }
.nl-observation-grid article:last-child { border-right: 0; }
.nl-observation-grid span,
.nl-readiness-grid article > span { color: var(--nl-page-accent-deep); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.nl-observation-grid h3 { margin: 55px 0 12px; color: var(--nl-ink); font-size: 21px; line-height: 1.1; text-transform: uppercase; }
.nl-observation-grid p { margin: 0; font-size: 12px; }
.nl-guide-activity { background: var(--nl-ink-soft); color: var(--nl-paper-bright); }
.nl-guide-activity .nl-section-intro p:last-child { color: #9c968e; }
.nl-activity-list { margin: 0 0 38px; padding: 0; border-top: 1px solid var(--nl-dark-line); list-style: none; }
.nl-activity-list li { padding: 30px 0; display: grid; grid-template-columns: 90px minmax(0,1fr); border-bottom: 1px solid var(--nl-dark-line); }
.nl-activity-list li > span { color: var(--nl-page-accent); font-size: 10px; font-weight: 850; }
.nl-activity-list h3 { margin: 0 0 9px; color: var(--nl-paper-bright); font-size: 25px; text-transform: uppercase; }
.nl-activity-list p { max-width: 770px; margin: 0; color: #9c968e; }
.nl-method-list { margin-bottom: 0; border-color: var(--nl-light-line); }
.nl-method-list li { border-color: var(--nl-light-line); }
.nl-method-list li > span { color: var(--nl-page-accent-deep); }
.nl-method-list h3 { color: var(--nl-ink); }
.nl-method-list p { color: #565149; }
.nl-example { margin-top: 10px !important; color: var(--nl-ink) !important; }
.nl-word-lab { background: var(--nl-ink-soft); color: var(--nl-paper-bright); }
.nl-word-lab .nl-section-intro p:last-child { color: #9c968e; }
.nl-word-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--nl-dark-line); }
.nl-word-grid article { padding: 28px; border-right: 1px solid var(--nl-dark-line); }
.nl-word-grid article:last-child { border-right: 0; }
.nl-word-grid span { display: block; margin-bottom: 28px; color: var(--nl-page-accent); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.nl-word-grid p { margin: 7px 0; color: var(--nl-paper); font-size: 18px; font-weight: 700; }
.nl-guide-caution .nl-content-kicker { color: var(--nl-ink) !important; opacity: .7; }
.nl-principle-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-block: 1px solid var(--nl-light-line); }
.nl-principle-grid article { min-height: 260px; padding: 30px; border-right: 1px solid var(--nl-light-line); }
.nl-principle-grid article:last-child { border-right: 0; }
.nl-principle-grid span { color: var(--nl-page-accent-deep); font-size: 10px; font-weight: 850; }
.nl-principle-grid h3 { margin: 62px 0 12px; color: var(--nl-ink); font-size: 25px; text-transform: uppercase; }
.nl-readiness-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border: 1px solid var(--nl-light-line); }
.nl-readiness-grid article { padding: 35px; border-right: 1px solid var(--nl-light-line); border-bottom: 1px solid var(--nl-light-line); }
.nl-readiness-grid article:nth-child(2n) { border-right: 0; }
.nl-readiness-grid article:nth-last-child(-n+2) { border-bottom: 0; }
.nl-readiness-grid ul { margin: 25px 0 0; padding-left: 18px; }
.nl-readiness-grid li { margin: 8px 0; }
.nl-week-plan { background: var(--nl-ink-soft); color: var(--nl-paper-bright); }
.nl-week-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border: 1px solid var(--nl-dark-line); }
.nl-week-grid article { min-height: 270px; padding: 25px; border-right: 1px solid var(--nl-dark-line); }
.nl-week-grid article:last-child { border-right: 0; }
.nl-week-grid b { color: var(--nl-page-accent); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.nl-week-grid h3 { margin: 60px 0 12px; color: var(--nl-paper-bright); font-size: 19px; line-height: 1.1; text-transform: uppercase; }
.nl-week-grid p { color: #958f86; font-size: 12px; }
.nl-guide-product-callout { background: var(--nl-page-accent); }
.nl-guide-product-callout .nl-button-primary { min-width: 230px; }

/* Refuerzos responsive y táctiles. */
.nl-jcs img,
.nl-guide img { max-inline-size: 100%; block-size: auto; }
.nl-footer-contact a { overflow-wrap: anywhere; }
.nl-menu-toggle,
.nl-store-button,
.nl-button-primary,
.nl-faq-list summary { touch-action: manipulation; }

@media (min-width: 783px) {
  body.admin-bar .nl-jcs-subnav,
  body.admin-bar .nl-guide-subnav { top: 104px; }
}

@media (pointer: coarse) {
  .nl-main-nav a:not(.nl-nav-cta) { min-height: 44px; display: inline-flex; align-items: center; }
  .nl-text-link { min-height: 44px; display: inline-flex; align-items: center; }
}

/* Páginas legales y páginas simples. */
.nlr-legal .nl-generated-title { min-height: 280px; }
.nlr-legal .nl-generated-title h1 { max-width: 950px; font-size: clamp(38px, 5vw, 67px); }
.nlr-legal .nl-preserved-content {
  max-width: 980px;
  margin: 0 auto;
  background: var(--nl-paper-bright);
}
.nlr-legal .nl-preserved-content > p:first-of-type { font-size: 16px; }
.nlr-legal .nl-preserved-content :where(h2, h3, h4) { margin-top: 48px; color: var(--nl-ink); font-family: var(--nl-display); }
.nlr-legal .nl-preserved-content h2 { padding-top: 28px; border-top: 1px solid var(--nl-light-line); }
.nlr-legal .nl-preserved-content p,
.nlr-legal .nl-preserved-content li { font-size: 14px; line-height: 1.8; }
.nlr-standard .nl-preserved-content blockquote { margin: 30px 0; padding: 24px 30px; border-left: 4px solid var(--nl-orange); background: #e7e1d7; }

/* Pie global. */
.nl-global-footer {
  padding: 0 max(28px, calc((100vw - var(--nl-max)) / 2));
  background: var(--nl-ink);
  color: #807b73;
  border-top: 1px solid var(--nl-dark-line);
  font-size: 11px;
}
.nl-footer-inner {
  min-height: 190px;
  display: grid;
  grid-template-columns: 1fr auto minmax(260px, .7fr);
  align-items: center;
  gap: 70px;
}
.nl-footer-inner p { margin: 12px 0 0; }
.nl-footer-inner nav { display: flex; gap: 22px; }
.nl-footer-inner nav a,
.nl-footer-contact a { color: var(--nl-paper) !important; text-decoration-color: rgba(247,147,30,.68); text-underline-offset: 5px; }
.nl-footer-contact { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.nl-footer-contact span { color: #777168; text-transform: uppercase; letter-spacing: .1em; }
.nl-footer-contact a { font-size: 13px; }
.nl-footer-bottom { padding: 20px 0; border-top: 1px solid var(--nl-dark-line); }
.nl-footer-social { padding: 21px 0; display: flex; flex-wrap: wrap; gap: 12px 26px; border-top: 1px solid var(--nl-dark-line); }
.nl-footer-social a { color: #aaa49b !important; font-size: 11px; text-decoration: none; }
.nl-footer-social a:hover { color: var(--nl-orange) !important; }
.nl-footer-social a span { color: var(--nl-orange); }

/* Visor de imágenes. */
.nl-zoomable { cursor: zoom-in; transition: opacity .2s ease; }
.nl-zoomable:hover { opacity: .86; }
.nl-image-dialog {
  width: min(1120px, calc(100vw - 36px));
  max-height: calc(100svh - 36px);
  padding: 18px;
  border: 0;
  overflow: auto;
  background: var(--nl-ink-soft);
  color: var(--nl-paper);
  box-shadow: 0 40px 120px rgba(0,0,0,.72);
}
.nl-image-dialog::backdrop { background: rgba(4,4,3,.88); backdrop-filter: blur(7px); }
.nl-image-dialog img { width: 100%; max-height: calc(100svh - 130px); display: block; object-fit: contain; }
.nl-image-dialog p { margin: 12px 52px 0 2px; color: #aaa49b; font-size: 12px; }
.nl-image-dialog button {
  position: fixed;
  top: max(28px, env(safe-area-inset-top));
  right: max(28px, env(safe-area-inset-right));
  z-index: 2;
  width: 44px;
  height: 44px;
  border: 1px solid var(--nl-orange);
  border-radius: 50%;
  background: var(--nl-ink);
  color: white;
  cursor: pointer;
  font-size: 28px;
  line-height: 1;
}

/* Página 404. */
.nl-404-page {
  position: relative;
  min-height: 78svh;
  padding: 160px max(28px, calc((100vw - 980px) / 2)) 100px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  background:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px),
    var(--nl-ink);
  background-size: 70px 70px;
}
.nl-404-glow { position: absolute; width: 620px; height: 620px; top: -240px; right: -230px; border-radius: 50%; background: var(--nl-orange); filter: blur(150px); opacity: .16; }
.nl-404-number { position: absolute; right: 5vw; bottom: -12vw; margin: 0; color: rgba(247,147,30,.09); font-family: var(--nl-display); font-size: clamp(220px, 33vw, 520px); font-weight: 900; line-height: 1; letter-spacing: -.12em; }
.nl-404-page h1 { position: relative; max-width: 840px; margin: 0 0 25px; color: var(--nl-paper-bright); font-family: var(--nl-display); font-size: clamp(48px, 7vw, 91px); line-height: .95; letter-spacing: -.065em; text-transform: uppercase; }
.nl-404-page > p:not(.nl-eyebrow):not(.nl-404-number) { position: relative; max-width: 650px; color: #aaa49b; font-size: 17px; }
.nl-button { position: relative; align-self: flex-start; min-height: 52px; margin-top: 22px; padding: 0 20px; display: inline-flex; align-items: center; gap: 24px; background: var(--nl-orange); color: var(--nl-ink) !important; font-size: 12px; font-weight: 800; text-decoration: none; }
.nl-button:hover { background: var(--nl-orange-bright); }

/* Aparición progresiva, aplicada por JavaScript. */
.nl-reveal { opacity: 0; transform: translateY(20px); transition: opacity .65s ease, transform .65s cubic-bezier(.2,.8,.2,1); }
.nl-reveal.is-visible { opacity: 1; transform: none; }

body.nlr-page :focus-visible { outline: 2px solid var(--nl-orange); outline-offset: 4px; }

@media (max-width: 1050px) {
  .nl-document-content .philosophy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .nl-document-content .philosophy-card:nth-child(2n) { border-right: 0 !important; }
  .nl-document-content .philosophy-card { border-bottom: 1px solid var(--nl-dark-line) !important; }
  .nl-document-content .games-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .nl-document-content .steps-container { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .nl-document-content .step-card:nth-child(2n) { border-right: 0 !important; }
  .nl-document-content .step-card { border-bottom: 1px solid var(--nl-dark-line) !important; }
  .nl-footer-inner { grid-template-columns: 1fr auto; gap: 35px; }
  .nl-footer-contact { grid-column: 1 / -1; align-items: flex-start; padding-bottom: 34px; }
  .nl-jcs-hero { grid-template-columns: minmax(0,1fr) minmax(360px,.8fr); }
  .nl-process-grid,
  .nl-observation-grid,
  .nl-word-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nl-process-grid li:nth-child(2n),
  .nl-observation-grid article:nth-child(2n),
  .nl-word-grid article:nth-child(2n) { border-right: 0; }
  .nl-process-grid li,
  .nl-observation-grid article,
  .nl-word-grid article { border-bottom: 1px solid var(--nl-dark-line); }
  .nl-observation-grid article { border-bottom-color: var(--nl-light-line); }
  .nl-week-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .nl-week-grid article:nth-child(3n) { border-right: 0; }
  .nl-week-grid article { border-bottom: 1px solid var(--nl-dark-line); }
  .nl-level-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nl-av-world-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .nl-uni-subject-grid,
  .nl-uni-guide-subjects { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .nl-living-chain { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .nl-living-chain li:nth-child(3n)::after { display: none; }
}

@media (max-width: 860px) {
  .nl-site-header { height: 72px; padding-inline: 22px; }
  .nl-menu-toggle {
    position: relative;
    z-index: 102;
    width: 42px;
    height: 42px;
    display: block;
    border: 0;
    background: transparent;
    color: white;
    cursor: pointer;
  }
  .nl-menu-toggle span { position: absolute; left: 9px; width: 24px; height: 2px; background: currentColor; transition: transform .25s ease, top .25s ease; }
  .nl-menu-toggle span:first-child { top: 16px; }
  .nl-menu-toggle span:last-child { top: 24px; }
  .nl-menu-toggle[aria-expanded="true"] span:first-child { top: 21px; transform: rotate(45deg); }
  .nl-menu-toggle[aria-expanded="true"] span:last-child { top: 21px; transform: rotate(-45deg); }
  .nl-main-nav {
    position: fixed;
    inset: 0;
    z-index: 101;
    padding: 120px 28px 40px;
    flex-direction: column;
    align-items: flex-start;
    gap: 26px;
    background: rgba(9,9,8,.985);
    max-height: 100dvh;
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-16px);
    transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
  }
  .nl-main-nav.is-open { opacity: 1; visibility: visible; transform: none; }
  .nl-main-nav a { font-family: var(--nl-display); font-size: 30px; letter-spacing: -.04em; }
  .nl-main-nav .nl-nav-cta { margin-top: 12px; font-family: var(--nl-body); font-size: 13px; }
  .nl-header-social { padding: 16px 0 0; gap: 9px; border-top: 1px solid rgba(255,255,255,.14); border-left: 0; }
  .nl-main-nav .nl-header-social a { width: 38px; height: 38px; font-family: var(--nl-body); font-size: 10px; }
  .nl-page-shell { padding: 102px 22px 80px; }
  .nl-document-content .hero-section { grid-template-columns: 1fr !important; }
  .nl-document-content .hero-image { min-height: 400px; }
  .nl-document-content .hero-image img { min-height: 400px; max-height: 560px; }
  .nl-document-content .competence-content { grid-template-columns: 1fr !important; }
  .nl-document-content .competence-image { max-width: 650px; }
  .nl-footer-inner { min-height: 0; padding: 46px 0 35px; grid-template-columns: 1fr; gap: 28px; }
  .nl-footer-inner nav { flex-wrap: wrap; }
  .nl-footer-contact { grid-column: 1; padding-bottom: 0; }
  .nl-jcs-hero { grid-template-columns: 1fr; }
  .nl-jcs-hero-visual { min-height: 440px; }
  .nl-jcs-hero-visual img { min-height: 440px; max-height: 580px; }
  .nl-silabz-hero-visual img { min-height: 0; max-height: 500px; }
  .nl-uni-hero-visual img { min-height: 0; max-height: 500px; }
  .nl-jcn-hero-visual { min-height: 520px; }
  .nl-learning-grid,
  .nl-guide-reading,
  .nl-jcs-together,
  .nl-guide-caution { grid-template-columns: 1fr; }
  .nl-jcs-final-cta,
  .nl-guide-product-callout { grid-template-columns: 1fr; }
  .nl-jcs-final-cta .nl-store-actions { max-width: none; }
  .nl-jcs-final-cta .nl-privacy-link { text-align: left; }
  .nl-week-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nl-week-grid article,
  .nl-week-grid article:nth-child(3n) { border-right: 1px solid var(--nl-dark-line); }
  .nl-week-grid article:nth-child(2n) { border-right: 0; }
  .nl-jcf-gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nl-jcf-gallery-grid figure:first-child { grid-column: 1 / -1; grid-row: auto; }
  .nl-av-story-grid { grid-template-columns: 1fr; }
  .nl-av-world-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nl-uni-award { grid-template-columns: 1fr; }
  .nl-uni-gallery { grid-template-columns: repeat(3,minmax(0,1fr)); grid-auto-rows: 470px; }
  .nl-living-impact-grid { grid-template-columns: 1fr; }
  .nl-living-impact-grid article { min-height: 230px; border-right: 0; border-bottom: 1px solid var(--nl-light-line); }
  .nl-living-impact-grid article:last-child { border-bottom: 0; }
  .nl-living-compare,.nl-living-decision-grid { grid-template-columns: 1fr; }
  .nl-living-chain { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nl-living-chain li:nth-child(3n)::after { display: grid; }
  .nl-living-chain li:nth-child(2n)::after { display: none; }
}

@media (max-width: 782px) {
  body.admin-bar .nl-site-header { top: 46px; }
  body.admin-bar .nl-jcs-subnav,
  body.admin-bar .nl-guide-subnav { top: 118px; }
}

@media (max-width: 650px) {
  .nl-page-shell { padding-inline: 0; padding-bottom: 56px; }
  .nl-breadcrumb { padding: 0 22px; }
  .nl-breadcrumb > span:last-child { display: none; }
  .nl-generated-title { min-height: 300px; padding: 58px 22px; }
  .nl-generated-title h1 { font-size: clamp(40px, 12vw, 58px); }
  .nl-preserved-content:not(.nl-document-content) { padding: 46px 22px; }
  .nl-document-content .page-header { min-height: 340px; padding: 62px 22px !important; }
  .nl-document-content .page-title { font-size: clamp(42px, 13vw, 61px) !important; }
  .nl-document-content .hero-image,
  .nl-document-content .hero-image img { min-height: 310px; }
  .nl-document-content .hero-content,
  .nl-document-content .philosophy-section,
  .nl-document-content .games-section,
  .nl-document-content .competence-section,
  .nl-document-content .video-section,
  .nl-document-content .how-it-works,
  .nl-document-content .download-section { padding: 56px 22px !important; }
  .nl-document-content .philosophy-grid,
  .nl-document-content .games-grid,
  .nl-document-content .steps-container,
  .nl-document-content .benefits-grid { grid-template-columns: 1fr !important; }
  .nl-document-content .philosophy-card,
  .nl-document-content .step-card,
  .nl-document-content .benefit-card { min-height: 0; border-right: 0 !important; border-bottom: 1px solid var(--nl-dark-line) !important; }
  .nl-document-content .benefit-card { border-bottom-color: var(--nl-light-line) !important; }
  .nl-document-content .philosophy-icon { margin-bottom: 35px !important; }
  .nl-document-content .step-number { margin-bottom: 34px !important; }
  .nlr-game .nl-preserved-content:not(.nl-document-content) .wp-block-gallery { grid-template-columns: 1fr !important; }
  .nlr-slug-quieresiralauni .nl-preserved-content > .wp-block-columns { flex-direction: column !important; }
  .nl-footer-inner nav { flex-direction: column; gap: 13px; }
  .nl-global-footer { padding-inline: 22px; }
  .nl-image-dialog { width: 100vw; max-height: 100svh; margin: 0; padding: 8px; }
  .nl-image-dialog img { max-height: calc(100svh - 100px); }
  .nl-404-page { padding: 140px 22px 80px; }
  .nl-jcs,
  .nl-guide { --nl-content-pad: 54px 22px; }
  .nl-jcs-hero { min-height: 0; }
  .nl-jcs-hero-copy { padding: 65px 22px 58px; }
  .nl-jcs-hero h1 { font-size: clamp(54px,17vw,77px); }
  .nl-jcs-hero-visual,
  .nl-jcs-hero-visual img { min-height: 350px; }
  .nl-silabz-hero-visual img { min-height: 0; max-height: 390px; }
  .nl-uni-hero-visual img { min-height: 0; max-height: 390px; }
  .nl-jcn-hero-visual { min-height: 440px; }
  .nl-jcs-hero-visual figcaption { left: 22px; right: 22px; }
  .nl-store-button { min-width: 0; flex: 1 1 150px; }
  .nl-jcs-subnav,
  .nl-guide-subnav { top: 72px; padding-inline: 22px; gap: 22px; }
  .nl-section-intro { margin-bottom: 38px; }
  .nl-learning-grid img { box-shadow: 12px 12px 0 var(--nl-page-accent); }
  .nl-process-grid,
  .nl-observation-grid,
  .nl-word-grid,
  .nl-guide-card-grid,
  .nl-audience-grid,
  .nl-principle-grid,
  .nl-readiness-grid,
  .nl-week-grid,
  .nl-level-grid { grid-template-columns: 1fr; }
  .nl-av-world-grid,
  .nl-av-vehicle-grid,
  .nl-uni-subject-grid,
  .nl-uni-guide-subjects,
  .nl-uni-gallery { grid-template-columns: 1fr; }
  .nl-uni-gallery { grid-auto-rows: min(150vw,620px); }
  .nl-living-chain { grid-template-columns: 1fr; }
  .nl-living-chain li { min-height: 220px; }
  .nl-living-chain li:not(:last-child)::after { display: none; }
  .nl-living-compare article,.nl-living-decision-grid article { min-height: 0; }
  .nl-av-vehicle-grid article:last-child { grid-column: auto; }
  .nl-process-grid li,
  .nl-observation-grid article,
  .nl-word-grid article,
  .nl-audience-grid article + article,
  .nl-principle-grid article,
  .nl-readiness-grid article,
  .nl-week-grid article,
  .nl-week-grid article:nth-child(3n) { min-height: 0; border-right: 0; border-left: 0; border-bottom: 1px solid var(--nl-light-line); }
  .nl-process-grid li,
  .nl-word-grid article,
  .nl-week-grid article { border-bottom-color: var(--nl-dark-line); }
  .nl-process-grid li > span,
  .nl-observation-grid h3,
  .nl-principle-grid h3,
  .nl-week-grid h3 { margin-top: 0; margin-bottom: 14px; }
  .nl-process-grid li > span { margin-bottom: 36px; }
  .nl-guide-card-grid > a { min-height: 235px; }
  .nl-guide-hero { min-height: 470px; padding: 70px 22px 58px; }
  .nl-guide-hero h1 { font-size: clamp(45px,14vw,68px); }
  .nl-activity-list li { grid-template-columns: 54px minmax(0,1fr); }
  .nl-readiness-grid article:nth-last-child(-n+2) { border-bottom: 1px solid var(--nl-light-line); }
  .nl-level-grid article { min-height: 315px; border-right: 0; }
  .nl-level-symbols { margin: 36px 0 28px; }
  .nl-number-path { padding: 18px; box-shadow: 12px 12px 0 var(--nl-page-accent); }
  .nl-circus-sign { top: 10%; width: min(78%,330px); padding: 17px 15px 14px; }
  .nl-circus-numbers { left: 8%; right: 8%; bottom: 24%; }
  .nl-jcf-gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 220px; }
  .nl-jcf-gallery-grid figure:first-child { grid-column: auto; }
}

@media (max-width: 460px) {
  .nl-jcs-hero-copy { padding-inline: max(20px, env(safe-area-inset-left)); }
  .nl-jcs-hero h1 { font-size: clamp(48px, 16vw, 68px); }
  .nl-store-actions { width: 100%; flex-direction: column; }
  .nl-store-button { width: 100%; min-height: 60px; flex: 0 0 auto; }
  .nl-jcs-hero-visual figcaption { align-items: flex-start; flex-direction: column; }
  .nl-jcs-hero-visual figcaption span { max-width: 100%; text-align: left; }
  .nl-jcn-hero-visual > p { left: 20px; right: 20px; align-items: flex-start; flex-direction: column; gap: 3px; }
  .nl-jcn-hero-visual > p span { max-width: 100%; text-align: left; }
  .nl-jcn-status { align-items: flex-start; }
  .nl-av-hero-visual > p { left: 20px; right: 20px; align-items: flex-start; flex-direction: column; gap: 3px; }
  .nl-av-hero-visual > p span { max-width: 100%; text-align: left; }
  .nl-av-book { width: min(62%,280px); height: 125px; }
  .nl-av-letter-line span { aspect-ratio: 1; }
  .nl-av-vehicle-grid article { min-height: 0; grid-template-columns: 62px minmax(0,1fr); gap: 18px; }
  .nl-av-vehicle-grid i { width: 58px; height: 58px; font-size: 27px; }
  .nl-circus-numbers { left: 3%; right: 3%; }
  .nl-guide-hero-actions { align-items: stretch; flex-direction: column; }
  .nl-guide-hero-actions .nl-button-primary { width: 100%; }
  .nl-activity-list li { grid-template-columns: 1fr; gap: 20px; }
  .nl-source-links { flex-direction: column; }
  .nl-source-links a { width: 100%; }
  .nl-shape-demo > span { min-width: calc(50% - 5px); flex: 1 1 calc(50% - 5px); }
  .nl-level-combined { gap: 6px; }
  .nl-living-dashboard-head,.nl-living-hero-visual > p { flex-direction: column; }
  .nl-living-dashboard-head { gap: 5px; }
  .nl-living-hero-visual > p span { max-width: 100%; text-align: left; }
  .nl-living-map { min-height: 220px; }
}

/* Acerca de Naranja Lab */
.nlr-about .nl-page-shell { padding-bottom: 0; }
.nl-about {
  --nl-content-pad: clamp(56px,7.5vw,108px);
  overflow: hidden;
  background: var(--nl-paper);
  color: var(--nl-ink);
}
.nl-about * { min-width: 0; }
.nl-about :where(h1,h2,h3) { font-family: var(--nl-display); letter-spacing: -.06em; }
.nl-about :where(h1,h2,h3,p,li,a) { overflow-wrap: anywhere; }

.nl-about-hero {
  min-height: min(760px,calc(100vh - 150px));
  display: grid;
  grid-template-columns: minmax(0,1.05fr) minmax(390px,.75fr);
  background: #11110f;
  color: var(--nl-paper-bright);
  border: 1px solid var(--nl-dark-line);
}
.nl-about-hero-copy { padding: clamp(60px,8vw,120px); display: flex; flex-direction: column; justify-content: center; }
.nl-about-hero h1 { max-width: 900px; margin: 0; color: var(--nl-paper-bright); font-size: clamp(58px,7.1vw,112px); line-height: .9; }
.nl-about-hero-copy > p:not(.nl-content-kicker) { max-width: 700px; margin: 30px 0 0; color: #c7c1b8; font-size: clamp(17px,1.6vw,22px); line-height: 1.6; }
.nl-about-hero-actions { margin-top: 38px; display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.nl-about-hero-actions .nl-button-primary { background: var(--nl-orange); border-color: var(--nl-orange); color: var(--nl-ink) !important; }
.nl-about-hero-actions .nl-text-link { color: var(--nl-paper) !important; text-decoration-color: var(--nl-orange); }

.nl-about-manifesto { position: relative; padding: 42px; display: flex; flex-direction: column; justify-content: center; overflow: hidden; background: var(--nl-orange); color: var(--nl-ink); }
.nl-about-manifesto::before { content: "NL"; position: absolute; right: -28px; top: -40px; color: rgba(9,9,8,.09); font-family: var(--nl-display); font-size: 260px; font-weight: 900; line-height: 1; letter-spacing: -.12em; }
.nl-about-manifesto > span,
.nl-about-manifesto > strong { position: relative; display: block; font-family: var(--nl-display); font-size: clamp(46px,6vw,92px); font-weight: 900; letter-spacing: -.08em; line-height: .83; }
.nl-about-manifesto > strong { color: var(--nl-paper-bright); }
.nl-about-manifesto p { position: relative; margin: auto 0 0; padding-top: 25px; border-top: 1px solid rgba(9,9,8,.35); font-size: 14px; font-weight: 750; line-height: 1.5; }

.nl-about-section { padding: var(--nl-content-pad); scroll-margin-top: 140px; }
.nl-about-section h2,
.nl-about-contact h2 { margin: 0; font-size: clamp(40px,5.5vw,76px); line-height: .95; text-transform: uppercase; }
.nl-about-heading { max-width: 980px; margin-bottom: 54px; }
.nl-about-heading > p:last-child { max-width: 720px; margin: 24px 0 0; color: #aca69d; font-size: 16px; line-height: 1.75; }

.nl-about-philosophy { display: grid; grid-template-columns: minmax(300px,.8fr) minmax(0,1.2fr); gap: clamp(55px,9vw,140px); background: var(--nl-paper-bright); }
.nl-about-philosophy > div:last-child { max-width: 800px; }
.nl-about-philosophy p { color: #575149; font-size: 16px; line-height: 1.78; }
.nl-about-philosophy .nl-about-lead { margin-top: 0; color: var(--nl-ink); font-family: var(--nl-display); font-size: clamp(25px,3vw,43px); font-weight: 700; letter-spacing: -.045em; line-height: 1.15; }

.nl-about-principles { background: #151512; color: var(--nl-paper-bright); }
.nl-about-principle-grid { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--nl-dark-line); }
.nl-about-principle-grid article { min-height: 390px; padding: clamp(28px,4vw,48px); display: flex; flex-direction: column; border-right: 1px solid var(--nl-dark-line); }
.nl-about-principle-grid article:last-child { border-right: 0; }
.nl-about-principle-grid span { color: var(--nl-orange); font-size: 12px; font-weight: 900; }
.nl-about-principle-grid h3 { margin: auto 0 18px; color: var(--nl-paper-bright); font-size: clamp(28px,3vw,44px); line-height: .95; text-transform: uppercase; }
.nl-about-principle-grid p { margin: 0; color: #aaa49b; font-size: 15px; line-height: 1.7; }

.nl-about-method { background: var(--nl-orange); color: var(--nl-ink); }
.nl-about-method .nl-content-kicker { color: var(--nl-ink) !important; opacity: .65; }
.nl-about-method .nl-about-heading > p:last-child { color: rgba(9,9,8,.72); }
.nl-about-method ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(9,9,8,.35); }
.nl-about-method li { min-height: 150px; padding: 30px 0; display: grid; grid-template-columns: 100px 1fr; gap: 34px; align-items: center; border-bottom: 1px solid rgba(9,9,8,.35); }
.nl-about-method li > span { font-size: 12px; font-weight: 900; }
.nl-about-method h3 { margin: 0 0 8px; font-size: clamp(24px,3vw,40px); line-height: 1; text-transform: uppercase; }
.nl-about-method li p { max-width: 650px; margin: 0; color: rgba(9,9,8,.72); font-size: 15px; }

.nl-about-ways { background: var(--nl-paper); }
.nl-about-way-grid { display: grid; grid-template-columns: repeat(2,1fr); border: 1px solid var(--nl-light-line); }
.nl-about-way-grid article { min-height: 330px; padding: clamp(30px,5vw,58px); display: flex; flex-direction: column; border-right: 1px solid var(--nl-light-line); border-bottom: 1px solid var(--nl-light-line); }
.nl-about-way-grid article:nth-child(even) { border-right: 0; }
.nl-about-way-grid article:nth-last-child(-n+2) { border-bottom: 0; }
.nl-about-way-grid article > span { color: var(--nl-page-accent-deep); font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.nl-about-way-grid h3 { margin: 42px 0 15px; font-size: clamp(28px,3.5vw,48px); line-height: .95; text-transform: uppercase; }
.nl-about-way-grid p { max-width: 52ch; margin: 0; color: #5b554d; font-size: 15px; line-height: 1.7; }
.nl-about-way-grid b { margin-top: auto; padding-top: 28px; color: var(--nl-page-accent-deep); font-size: 12px; text-transform: uppercase; }

.nl-about-series { background: #11110f; color: var(--nl-paper-bright); }
.nl-about-series-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.nl-about-series-grid a { --series-color: var(--nl-orange); min-height: 350px; padding: 30px; display: flex; flex-direction: column; color: var(--nl-paper-bright) !important; background: rgba(255,255,255,.025); border: 1px solid var(--nl-dark-line); border-right: 0; text-decoration: none; transition: background .2s ease,transform .2s ease; }
.nl-about-series-grid a:last-child { border-right: 1px solid var(--nl-dark-line); }
.nl-about-series-grid a:hover { background: color-mix(in srgb,var(--series-color) 20%,#11110f); transform: translateY(-4px); }
.nl-about-series-grid .is-ja { --series-color: #f2c230; }
.nl-about-series-grid .is-ac { --series-color: #8a6ce6; }
.nl-about-series-grid .is-ns { --series-color: #55bce8; }
.nl-about-series-grid .is-ca { --series-color: #5fb47a; }
.nl-about-series-grid a > span { width: 50px; height: 50px; display: grid; place-items: center; color: #11110f; background: var(--series-color); font-size: 13px; font-weight: 900; }
.nl-about-series-grid h3 { margin: auto 0 14px; color: var(--nl-paper-bright); font-size: clamp(24px,2.5vw,36px); line-height: .95; text-transform: uppercase; }
.nl-about-series-grid p { margin: 0 0 24px; color: #aaa49b; font-size: 14px; }
.nl-about-series-grid b { color: var(--series-color); font-size: 11px; text-transform: uppercase; }

.nl-about-commitment { display: grid; grid-template-columns: minmax(300px,.8fr) minmax(0,1.2fr); gap: clamp(55px,9vw,140px); background: #ded8ce; }
.nl-about-commitment > div:last-child { max-width: 760px; }
.nl-about-commitment p { color: #524d46; font-size: 16px; line-height: 1.75; }
.nl-about-commitment ul { margin: 30px 0 0; padding: 0; list-style: none; }
.nl-about-commitment li { padding: 14px 0; display: flex; gap: 14px; border-bottom: 1px solid var(--nl-light-line); font-weight: 650; }
.nl-about-commitment li::before { content: "✓"; color: var(--nl-page-accent-deep); font-weight: 900; }

.nl-about-contact { padding: clamp(60px,8vw,118px); display: grid; grid-template-columns: minmax(0,1fr) minmax(320px,.65fr); gap: clamp(50px,8vw,120px); background: #11110f; color: var(--nl-paper-bright); }
.nl-about-contact > div > p:not(.nl-content-kicker) { max-width: 620px; margin: 25px 0 32px; color: #aaa49b; font-size: 16px; }
.nl-about-contact .nl-button-primary { background: var(--nl-orange); border-color: var(--nl-orange); color: var(--nl-ink) !important; }
.nl-about-social { align-self: end; display: grid; }
.nl-about-social > span { padding-bottom: 18px; color: #777168; font-size: 11px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.nl-about-social a { min-height: 58px; display: grid; grid-template-columns: 45px 1fr auto; align-items: center; color: var(--nl-paper-bright) !important; border-top: 1px solid var(--nl-dark-line); text-decoration: none; }
.nl-about-social a:last-child { border-bottom: 1px solid var(--nl-dark-line); }
.nl-about-social a:hover { color: var(--nl-orange) !important; }
.nl-about-social a b { color: var(--nl-orange); font-size: 11px; }

@media (max-width: 1050px) {
  .nl-about-hero { grid-template-columns: 1fr; }
  .nl-about-manifesto { min-height: 480px; }
  .nl-about-series-grid { grid-template-columns: repeat(2,1fr); }
  .nl-about-series-grid a:nth-child(2) { border-right: 1px solid var(--nl-dark-line); }
  .nl-about-series-grid a:nth-child(-n+2) { border-bottom: 0; }
}

@media (max-width: 860px) {
  .nl-about-philosophy,
  .nl-about-commitment,
  .nl-about-contact { grid-template-columns: 1fr; }
  .nl-about-principle-grid { grid-template-columns: 1fr; }
  .nl-about-principle-grid article { min-height: 280px; border-right: 0; border-bottom: 1px solid var(--nl-dark-line); }
  .nl-about-principle-grid article:last-child { border-bottom: 0; }
}

@media (max-width: 650px) {
  .nl-about { --nl-content-pad: 54px 22px; }
  .nl-about-hero-copy { padding: 64px 22px; }
  .nl-about-hero h1 { font-size: clamp(48px,14vw,70px); }
  .nl-about-manifesto { min-height: 390px; padding: 32px 22px; }
  .nl-about-hero-actions { align-items: stretch; flex-direction: column; }
  .nl-about-hero-actions .nl-button-primary { width: 100%; }
  .nl-about-method li { grid-template-columns: 48px 1fr; gap: 15px; }
  .nl-about-way-grid,
  .nl-about-series-grid { grid-template-columns: 1fr; }
  .nl-about-way-grid article,
  .nl-about-way-grid article:nth-last-child(-n+2) { min-height: 280px; border-right: 0; border-bottom: 1px solid var(--nl-light-line); }
  .nl-about-way-grid article:last-child { border-bottom: 0; }
  .nl-about-series-grid a,
  .nl-about-series-grid a:nth-child(2),
  .nl-about-series-grid a:nth-child(-n+2) { min-height: 280px; border-right: 1px solid var(--nl-dark-line); border-bottom: 0; }
  .nl-about-series-grid a + a { border-top: 0; }
  .nl-about-contact { padding: 60px 22px; }
  .nl-about-contact .nl-button-primary { width: 100%; }
}

@media (max-width: 860px) and (max-height: 560px) {
  .nl-main-nav { padding-top: 84px; gap: 12px; }
  .nl-main-nav a { font-size: 24px; }
  .nl-main-nav .nl-nav-cta { margin-top: 0; }
}

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

/* Catálogo administrado de Aprendo Casual. */
.nl-series-showcase-hero {
  min-height: 650px;
  padding: clamp(58px,8vw,116px);
  display: grid;
  grid-template-columns: minmax(0,1.4fr) minmax(270px,.6fr);
  align-items: end;
  gap: clamp(45px,8vw,120px);
  background: radial-gradient(circle at 90% 8%,rgba(138,108,230,.22),transparent 36%),#11110f;
  border: 1px solid var(--nl-dark-line);
}
.nl-series-showcase-hero h1 { max-width: 970px; margin: 0; color: var(--nl-paper-bright); font-family: var(--nl-display); font-size: clamp(62px,8vw,126px); letter-spacing: -.075em; line-height: .88; text-transform: uppercase; }
.nl-series-showcase-hero > div > p:not(.nl-content-kicker) { max-width: 690px; margin: 30px 0; color: #c5bfb5; font-size: clamp(16px,1.5vw,21px); }
.nl-series-showcase-hero aside { padding: 34px; background: var(--nl-page-accent); color: #11110f; }
.nl-series-showcase-hero aside span { display: block; font-family: var(--nl-display); font-size: clamp(76px,8vw,124px); font-weight: 900; letter-spacing: -.09em; line-height: .8; }
.nl-series-showcase-hero aside strong { display: block; margin-top: 25px; font-size: 13px; line-height: 1.3; text-transform: uppercase; }
.nl-series-showcase-hero aside p { margin: 10px 0 0; font-size: 11px; }
.nl-series-showcase-philosophy { background: #171714; color: var(--nl-paper); }
.nl-series-showcase-philosophy .nl-section-intro > p:last-child { color: var(--nl-muted); }
.nl-series-showcase-games { background: var(--nl-paper); color: var(--nl-ink); }
.nl-series-catalog-grid { margin-top: clamp(38px,5vw,65px); display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.nl-series-game-card { min-width: 0; display: flex; flex-direction: column; background: var(--nl-paper-bright); color: var(--nl-ink) !important; border: 1px solid var(--nl-light-line); text-decoration: none; transition: transform .25s ease,box-shadow .25s ease; }
.nl-series-game-card:hover { transform: translateY(-6px); box-shadow: 0 22px 48px rgba(25,18,9,.15); }
.nl-series-game-card:focus-visible { outline: 3px solid var(--nl-page-accent); outline-offset: 4px; }
.nl-series-game-art { position: relative; aspect-ratio: 4/3; display: grid; place-items: center; overflow: hidden; isolation: isolate; background: #221a3d; color: #e6dfff; }
.nl-series-game-art::before { content: ""; position: absolute; z-index: -1; width: 190px; height: 190px; right: -70px; top: -78px; border: 34px solid currentColor; border-radius: 50%; opacity: .08; }
.nl-series-game-art > b { max-width: 90%; font-family: var(--nl-display); font-size: clamp(35px,4vw,62px); font-weight: 900; letter-spacing: -.08em; line-height: .9; text-align: center; }
.nl-series-game-art > i { position: absolute; left: 14%; right: 14%; bottom: 20%; height: 2px; background: currentColor; opacity: .28; }
.nl-series-game-art > i::before,
.nl-series-game-art > i::after { content: ""; position: absolute; top: -4px; width: 10px; height: 10px; background: currentColor; border-radius: 50%; }
.nl-series-game-art > i::before { left: 0; }.nl-series-game-art > i::after { right: 0; }
.nl-series-game-art img { width: 100%; height: 100%; display: block; object-fit: cover; }
.nl-series-game-art.has-cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,rgba(0,0,0,.5),transparent 35%); pointer-events: none; }
.nl-series-game-art small { position: absolute; z-index: 2; top: 16px; right: 16px; padding: 6px 8px; background: var(--nl-page-accent); color: #11110f; font-size: 8px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.nl-series-game-copy { min-height: 260px; padding: 25px; display: flex; flex-direction: column; }
.nl-series-game-copy > span { color: var(--nl-page-accent-deep); font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.nl-series-game-copy h3 { margin: 22px 0 12px; color: var(--nl-ink); font-family: var(--nl-display); font-size: 24px; letter-spacing: -.045em; line-height: 1; }
.nl-series-game-copy p { margin: 0; color: #625d55; font-size: 12px; line-height: 1.6; }
.nl-series-game-copy > b { margin-top: auto; padding-top: 25px; font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }
.nl-series-game-copy > b i { color: var(--nl-page-accent-deep); font-style: normal; }

@media (max-width: 980px) {
  .nl-series-showcase-hero { grid-template-columns: 1fr; }
  .nl-series-showcase-hero aside { width: min(100%,420px); }
  .nl-series-catalog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 650px) {
  .nl-series-showcase-hero { min-height: 0; padding: 58px 22px; }
  .nl-series-showcase-hero h1 { font-size: clamp(48px,14vw,70px); }
  .nl-series-showcase-hero aside { width: 100%; }
  .nl-series-catalog-grid { grid-template-columns: 1fr; }
  .nl-series-game-copy { min-height: 230px; }
}

/* Sistema 2.0: fichas y centros editoriales ampliados */
.nlr-expanded-page .nl-page-shell { padding-bottom: 0; }

.nl-expanded-game,
.nl-expanded-hub,
.nl-expanded-guide {
  --nl-content-pad: clamp(56px, 7.5vw, 108px);
  position: relative;
}
.nl-expanded-hub :where(h1,h2,h3),
.nl-expanded-guide :where(h1,h2,h3) { font-family: var(--nl-display); letter-spacing: -.055em; }
.nl-expanded-hub :where(h1,h2,h3,p,li,a),
.nl-expanded-guide :where(h1,h2,h3,p,li,a) { overflow-wrap: anywhere; }
.nl-expanded-hub .nl-jcs-sources,
.nl-expanded-guide .nl-jcs-sources { color: var(--nl-ink); }

.nl-expanded-hero {
  min-height: min(760px, calc(100vh - 150px));
  display: grid;
  grid-template-columns: minmax(0, .93fr) minmax(420px, .82fr);
  background: #11110f;
  border: 1px solid var(--nl-dark-line);
}

.nl-expanded-hero-copy {
  padding: clamp(54px, 7vw, 104px);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.nl-expanded-hero h1,
.nl-expanded-editorial-hero h1,
.nl-expanded-guide-hero h1 {
  margin: 0;
  color: var(--nl-paper-bright);
  font-family: var(--nl-display);
  font-size: clamp(60px, 7.4vw, 126px);
  font-weight: 800;
  letter-spacing: -.075em;
  line-height: .9;
}

.nl-expanded-teaser {
  max-width: 30ch;
  margin: 28px 0 10px;
  color: var(--nl-page-accent);
  font-size: clamp(18px, 1.6vw, 25px);
  font-weight: 800;
  line-height: 1.25;
}

.nl-expanded-hero .nl-jcs-lead { max-width: 660px; margin-bottom: 28px; }

.nl-expanded-status {
  width: min(100%, 620px);
  margin: 30px 0;
  padding: 16px 18px;
  display: flex;
  align-items: center;
  gap: 14px;
  background: rgba(255,255,255,.045);
  border: 1px solid var(--nl-dark-line);
}

.nl-expanded-status > span {
  width: 10px;
  height: 10px;
  flex: 0 0 auto;
  background: var(--nl-page-accent);
  border-radius: 50%;
  box-shadow: 0 0 0 6px var(--nl-expanded-tint);
}

.nl-expanded-status strong,
.nl-expanded-status small { display: block; }
.nl-expanded-status strong { color: var(--nl-paper-bright); font-size: 13px; }
.nl-expanded-status small { margin-top: 2px; color: var(--nl-muted); font-size: 11px; }

.nl-expanded-console {
  position: relative;
  min-height: 650px;
  padding: 30px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  background:
    linear-gradient(var(--nl-expanded-tint), var(--nl-expanded-tint)),
    repeating-linear-gradient(0deg, transparent 0 39px, rgba(255,255,255,.045) 40px),
    #171714;
  border-left: 1px solid var(--nl-dark-line);
}

.nl-expanded-console::after {
  content: "";
  position: absolute;
  width: 260px;
  height: 260px;
  right: -100px;
  bottom: -100px;
  border: 1px solid var(--nl-page-accent);
  border-radius: 50%;
  opacity: .35;
}

.nl-expanded-console-head,
.nl-expanded-console > p {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  color: var(--nl-muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.nl-expanded-console-head b { color: var(--nl-paper-bright); }
.nl-expanded-console > p { margin: 0; padding-top: 20px; align-items: flex-end; border-top: 1px solid var(--nl-dark-line); }
.nl-expanded-console > p b { color: var(--nl-page-accent); font-size: 12px; }
.nl-expanded-console > p span { max-width: 31ch; color: #d5d0c6; font-size: 11px; font-weight: 600; letter-spacing: 0; text-align: right; text-transform: none; }

.nl-magic-scene,
.nl-cat-room {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 110px minmax(0,1fr);
  gap: 26px;
  align-items: center;
}

.nl-magic-character,
.nl-cat-avatar {
  width: 110px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  color: #171714;
  background: var(--nl-page-accent);
  border-radius: 50%;
  box-shadow: 18px 18px 0 rgba(0,0,0,.28);
  font-size: 48px;
}

.nl-magic-scene > div,
.nl-cat-room > div {
  padding: 26px;
  background: #f7f0df;
  color: #16130e;
  box-shadow: 15px 15px 0 rgba(0,0,0,.32);
}

.nl-magic-scene small,
.nl-cat-room small { display: block; margin-bottom: 10px; font-size: 9px; font-weight: 900; letter-spacing: .16em; }
.nl-magic-scene strong,
.nl-cat-room strong { display: block; font-size: clamp(18px,2vw,27px); line-height: 1.25; }
.nl-magic-scene i { margin-top: 24px; display: flex; gap: 8px; }
.nl-magic-scene u { width: 28px; height: 6px; background: var(--nl-page-accent); text-decoration: none; }

.nl-audio-radar {
  position: relative;
  z-index: 1;
  width: min(86%, 440px);
  aspect-ratio: 1;
  margin: auto;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 50%;
}

.nl-audio-radar::before,
.nl-audio-radar::after,
.nl-audio-radar > i {
  content: "";
  position: absolute;
  inset: 16%;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 50%;
}
.nl-audio-radar::after { inset: 34%; }
.nl-audio-radar > i:first-child { inset: 50% 0 auto; border: 0; border-top: 1px solid rgba(255,255,255,.12); border-radius: 0; }
.nl-audio-radar > i:nth-child(2) { inset: 0 auto 0 50%; border: 0; border-left: 1px solid rgba(255,255,255,.12); border-radius: 0; }
.nl-audio-radar > b { position: relative; z-index: 2; color: var(--nl-page-accent); font-size: 30px; }
.nl-audio-radar > span { position: absolute; left: 17%; bottom: 24%; font-size: 22px; }
.nl-audio-radar > span.is-target { left: auto; right: 14%; top: 15%; bottom: auto; width: 62px; height: 62px; display: grid; place-items: center; color: #091015; background: var(--nl-page-accent); border-radius: 50%; box-shadow: 0 0 0 14px var(--nl-expanded-tint); }
.nl-audio-radar > small { position: absolute; left: 0; right: 0; bottom: -45px; color: var(--nl-paper-bright); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-align: center; }

.nl-gamma-panel { position: relative; z-index: 1; display: grid; gap: 14px; }
.nl-gamma-panel > div { padding: 22px; background: rgba(0,0,0,.44); border-left: 4px solid var(--nl-page-accent); }
.nl-gamma-panel small,
.nl-gamma-panel strong { display: block; }
.nl-gamma-panel small { color: var(--nl-page-accent); font-size: 9px; font-weight: 900; letter-spacing: .13em; }
.nl-gamma-panel strong { margin: 5px 0 18px; font-size: 19px; }
.nl-gamma-panel i { display: block; height: 12px; background: repeating-linear-gradient(90deg,var(--nl-page-accent) 0 4px,transparent 4px 10px); opacity: .7; }
.nl-gamma-panel > span { justify-self: end; margin-top: 24px; font-family: var(--nl-display); font-size: clamp(50px,6vw,92px); font-weight: 900; letter-spacing: -.08em; }
.nl-gamma-panel > span b { color: var(--nl-page-accent); }

.nl-cat-avatar { font-size: 24px; white-space: nowrap; }
.nl-cat-room > div i { display: block; margin-top: 14px; color: #635b50; font-size: 12px; font-style: normal; }

.nl-penalty-board { position: relative; z-index: 1; display: grid; gap: 10px; }
.nl-penalty-board > div { padding: 16px; display: grid; grid-template-columns: 50px 110px 1fr; gap: 14px; align-items: center; background: rgba(0,0,0,.42); border: 1px solid var(--nl-dark-line); }
.nl-penalty-board span { width: 44px; height: 44px; display: grid; place-items: center; background: var(--nl-page-accent); color: #071109; border-radius: 50%; font-weight: 900; }
.nl-penalty-board strong { font-size: 10px; letter-spacing: .1em; }
.nl-penalty-board i { height: 5px; background: linear-gradient(90deg,var(--nl-page-accent) 78%,rgba(255,255,255,.12) 78%); }
.nl-penalty-board > div:nth-child(2) i { background: linear-gradient(90deg,#d76154 30%,rgba(255,255,255,.12) 30%); }
.nl-penalty-board > div:nth-child(3) i { background: linear-gradient(90deg,#d9bd56 58%,rgba(255,255,255,.12) 58%); }
.nl-penalty-board small { margin-top: 14px; color: var(--nl-muted); font-size: 9px; letter-spacing: .12em; text-align: center; }

.nl-rhythm-board { position: relative; z-index: 1; padding: 28px 20px; display: grid; gap: 18px; background: rgba(0,0,0,.38); overflow: hidden; }
.nl-rhythm-board > div { display: grid; grid-template-columns: 85px repeat(3,1fr); gap: 14px; align-items: center; }
.nl-rhythm-board span { font-size: 9px; font-weight: 900; letter-spacing: .1em; }
.nl-rhythm-board i { height: 12px; background: var(--nl-page-accent); border-radius: 20px; box-shadow: 0 0 18px var(--nl-expanded-tint); }
.nl-rhythm-board > div:nth-child(2) i:nth-of-type(2),
.nl-rhythm-board > div:nth-child(3) i:first-of-type { opacity: .2; }
.nl-rhythm-board > b { position: absolute; top: 0; bottom: 0; left: 62%; width: 2px; background: #fff; box-shadow: 0 0 16px #fff; }
.nl-rhythm-board small { color: var(--nl-page-accent); font-size: 9px; font-weight: 900; letter-spacing: .12em; text-align: right; }

.nl-beast-case { position: relative; z-index: 1; padding: clamp(18px,3vw,30px); background: #e9dfc8; color: #171510; box-shadow: 15px 15px 0 rgba(0,0,0,.28); }
.nl-beast-case header { display: flex; align-items: end; justify-content: space-between; gap: 18px; padding-bottom: 16px; border-bottom: 4px solid #171510; }
.nl-beast-case header small { font-size: 9px; font-weight: 900; letter-spacing: .13em; }
.nl-beast-case header strong { font-family: var(--nl-display); font-size: clamp(17px,2vw,25px); line-height: 1; text-align: right; text-transform: uppercase; }
.nl-beast-street { position: relative; height: 250px; margin-top: 16px; overflow: hidden; background: linear-gradient(90deg,#777 0 45%,#c4b89e 45% 55%,#777 55%); border: 8px solid #302d28; }
.nl-beast-street::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 38px; background: repeating-linear-gradient(90deg,#eee 0 28px,transparent 28px 49px); transform: translateY(-50%); }
.nl-beast-street::after { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; width: 38px; background: repeating-linear-gradient(0deg,#eee 0 28px,transparent 28px 49px); transform: translateX(-50%); }
.nl-beast-street > i { position: absolute; z-index: 1; background: #f0c936; }
.nl-beast-street > i:first-child { left: 0; right: 0; top: calc(50% - 2px); height: 4px; }
.nl-beast-street > i:nth-child(2) { top: 0; bottom: 0; left: calc(50% - 2px); width: 4px; }
.nl-beast-street > span { position: absolute; z-index: 2; display: grid; place-items: center; font-size: 9px; font-weight: 900; }
.nl-beast-street .is-car { left: 13%; top: 24%; width: 72px; height: 38px; background: #25221d; color: #fff; border-radius: 5px; transform: rotate(4deg); }
.nl-beast-street .is-bike { right: 15%; bottom: 18%; width: 48px; height: 48px; color: #171510; border: 5px solid #171510; border-radius: 50%; }
.nl-beast-street .is-sign { right: 13%; top: 13%; width: 42px; height: 42px; background: var(--nl-page-accent); border: 4px solid #171510; border-radius: 50%; font-size: 19px; }
.nl-beast-street .is-hole { left: 29%; bottom: 14%; width: 57px; height: 24px; background: #24221f; border-radius: 50%; box-shadow: inset 0 5px 0 rgba(0,0,0,.42); }
.nl-beast-suspects { margin-top: 12px; display: grid; grid-template-columns: repeat(4,1fr); gap: 6px; }
.nl-beast-suspects span { min-height: 38px; padding: 7px 5px; display: grid; place-items: center; background: #171510; color: #e9dfc8; font-size: 8px; font-weight: 900; letter-spacing: .05em; text-align: center; }
.nl-beast-suspects .is-office { background: var(--nl-page-accent); color: #171510; }

.nl-trivia-board { position: relative; z-index: 1; padding: 32px; display: grid; grid-template-columns: repeat(5,1fr); gap: 10px; background: #efe4c8; color: #17130c; box-shadow: 16px 16px 0 rgba(0,0,0,.3); }
.nl-trivia-board small,
.nl-trivia-board strong,
.nl-trivia-board div { grid-column: 1/-1; }
.nl-trivia-board small { font-size: 9px; font-weight: 900; letter-spacing: .14em; }
.nl-trivia-board strong { margin: 14px 0 24px; font-family: var(--nl-display); font-size: clamp(22px,2.7vw,38px); line-height: 1.1; }
.nl-trivia-board div { display: flex; gap: 8px; }
.nl-trivia-board div span { width: 42px; height: 42px; display: grid; place-items: center; background: #17130c; color: #efe4c8; font-weight: 900; }
.nl-trivia-board > i { margin-top: 28px; padding-top: 8px; border-top: 4px solid #17130c; font-size: 12px; font-style: normal; font-weight: 900; text-align: center; }
.nl-trivia-board > i:nth-of-type(4) { color: var(--nl-page-accent-deep); border-color: var(--nl-page-accent-deep); }

.nl-expanded-story { display: grid; grid-template-columns: minmax(0,.9fr) minmax(420px,1fr); gap: clamp(50px,8vw,130px); align-items: start; background: #11110f; color: var(--nl-paper-bright); }
.nl-expanded-story .nl-section-intro { max-width: 760px; }
.nl-expanded-story .nl-section-intro > p:not(.nl-content-kicker),
.nl-expanded-mechanics .nl-section-intro > p:not(.nl-content-kicker) { max-width: 62ch; color: #b9b3a9; }
.nl-expanded-pillars { display: grid; }
.nl-expanded-pillars article { min-height: 150px; padding: 28px 0; display: grid; grid-template-columns: 54px 130px 1fr; gap: 20px; align-items: baseline; border-bottom: 1px solid var(--nl-dark-line); }
.nl-expanded-pillars article:first-child { border-top: 1px solid var(--nl-dark-line); }
.nl-expanded-pillars span { color: var(--nl-page-accent); font-size: 11px; font-weight: 900; }
.nl-expanded-pillars h3 { color: var(--nl-paper-bright); font-size: 18px; }
.nl-expanded-pillars p { color: var(--nl-muted); font-size: 13px; }

.nl-expanded-loop { background: var(--nl-paper); color: var(--nl-ink); }
.nl-expanded-loop-grid,
.nl-expanded-guide-steps ol { margin: 54px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4,1fr); list-style: none; border: 1px solid var(--nl-light-line); }
.nl-expanded-loop-grid li,
.nl-expanded-guide-steps li { min-height: 310px; padding: 30px; border-right: 1px solid var(--nl-light-line); }
.nl-expanded-loop-grid li:last-child,
.nl-expanded-guide-steps li:last-child { border-right: 0; }
.nl-expanded-loop-grid li > span,
.nl-expanded-guide-steps li > span { display: block; margin-bottom: 70px; color: var(--nl-page-accent-deep); font-size: 11px; font-weight: 900; }
.nl-expanded-loop-grid h3,
.nl-expanded-guide-steps h3 { font-size: clamp(20px,2vw,28px); }
.nl-expanded-loop-grid p,
.nl-expanded-guide-steps p { color: #625d55; font-size: 13px; }

.nl-expanded-mechanics { background: #11110f; color: var(--nl-paper-bright); }
.nl-expanded-mechanics-grid { margin-top: 54px; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--nl-dark-line); border-bottom: 1px solid var(--nl-dark-line); }
.nl-expanded-mechanics-grid article { min-height: 250px; padding: 30px; border-right: 1px solid var(--nl-dark-line); }
.nl-expanded-mechanics-grid article:last-child { border-right: 0; }
.nl-expanded-mechanics-grid article > span { width: 24px; height: 24px; margin-bottom: 74px; display: block; border: 6px solid var(--nl-page-accent); border-radius: 50%; }
.nl-expanded-mechanics-grid h3 { color: var(--nl-paper-bright); font-size: 21px; }
.nl-expanded-mechanics-grid p { color: var(--nl-muted); font-size: 13px; }
.nl-expanded-chain { margin-top: 70px; padding: clamp(34px,5vw,70px); display: grid; grid-template-columns: minmax(0,.8fr) minmax(520px,1.2fr); gap: 60px; background: var(--nl-page-accent); color: #11110f; }
.nl-expanded-chain small { font-size: 10px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.nl-expanded-chain h3 { margin: 10px 0; font-size: clamp(28px,3vw,48px); line-height: 1; }
.nl-expanded-chain p { max-width: 50ch; margin: 0; }
.nl-expanded-chain ol { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4,1fr); list-style: none; }
.nl-expanded-chain li { position: relative; padding: 48px 12px 12px; border-top: 2px solid #11110f; font-size: 11px; font-weight: 800; text-align: center; }
.nl-expanded-chain li::before { content: ""; position: absolute; top: -6px; left: 50%; width: 10px; height: 10px; background: #11110f; border-radius: 50%; }
.nl-expanded-chain li span { display: block; margin-bottom: 8px; opacity: .62; }

.nl-expanded-final,
.nl-expanded-game-callout,
.nl-expanded-guide-callout { background: var(--nl-page-accent); color: #11110f; }
.nl-expanded-final .nl-content-kicker,
.nl-expanded-game-callout .nl-content-kicker,
.nl-expanded-guide-callout .nl-content-kicker { color: #11110f !important; opacity: .66; }

/* Centros */
.nl-expanded-editorial-hero {
  min-height: 560px;
  padding: clamp(54px,7vw,100px);
  display: grid;
  grid-template-columns: minmax(0,1fr) 270px;
  gap: clamp(40px,7vw,110px);
  align-items: end;
  background: linear-gradient(135deg,#121210 58%,var(--nl-page-accent-deep));
  border: 1px solid var(--nl-dark-line);
}
.nl-expanded-editorial-hero h1 { max-width: 920px; }
.nl-expanded-editorial-hero > div > p:last-child { max-width: 65ch; margin: 30px 0 0; color: #d3cec4; font-size: 17px; }
.nl-expanded-editorial-hero aside { padding: 28px; border: 1px solid rgba(255,255,255,.22); }
.nl-expanded-editorial-hero aside span { display: block; color: var(--nl-page-accent); font-family: var(--nl-display); font-size: 90px; font-weight: 900; line-height: .8; }
.nl-expanded-editorial-hero aside strong { display: block; margin-top: 16px; font-size: 12px; text-transform: uppercase; }
.nl-expanded-editorial-hero aside p { margin: 10px 0 0; color: #cdc7bc; font-size: 12px; }

.nl-expanded-hub-guides { background: var(--nl-paper); color: var(--nl-ink); }
.nl-expanded-hub-card-grid { margin-top: 50px; display: grid; grid-template-columns: repeat(2,1fr); border: 1px solid var(--nl-light-line); }
.nl-expanded-hub-card-grid a { min-height: 330px; padding: clamp(28px,4vw,52px); display: flex; flex-direction: column; color: var(--nl-ink) !important; text-decoration: none; border-right: 1px solid var(--nl-light-line); border-bottom: 1px solid var(--nl-light-line); transition: background .2s ease,color .2s ease; }
.nl-expanded-hub-card-grid a:nth-child(even) { border-right: 0; }
.nl-expanded-hub-card-grid a:nth-last-child(-n+2) { border-bottom: 0; }
.nl-expanded-hub-card-grid a:hover { background: var(--nl-page-accent); }
.nl-expanded-hub-card-grid a > span { color: var(--nl-page-accent-deep); font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.nl-expanded-hub-card-grid h3 { max-width: 23ch; margin: 40px 0 12px; font-size: clamp(25px,3vw,42px); line-height: 1; }
.nl-expanded-hub-card-grid p { max-width: 52ch; color: #5e584f; font-size: 13px; }
.nl-expanded-hub-card-grid b { margin-top: auto; font-size: 12px; }
.nl-expanded-hub-card-grid i { color: var(--nl-page-accent-deep); font-style: normal; }

.nl-expanded-route ol { margin: 50px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3,1fr); list-style: none; border-top: 1px solid var(--nl-dark-line); }
.nl-expanded-route li { padding: 32px 32px 0 0; }
.nl-expanded-route li span { color: var(--nl-page-accent); font-size: 11px; font-weight: 900; }
.nl-expanded-route li h3 { margin: 48px 0 10px; color: var(--nl-paper-bright); font-size: 25px; }
.nl-expanded-route li p { max-width: 38ch; color: var(--nl-muted); font-size: 13px; }
.nl-expanded-game-callout,
.nl-expanded-guide-callout { padding: clamp(44px,6vw,86px); display: flex; align-items: end; justify-content: space-between; gap: 50px; }
.nl-expanded-game-callout h2,
.nl-expanded-guide-callout h2 { font-size: clamp(40px,5vw,80px); }
.nl-expanded-game-callout p,
.nl-expanded-guide-callout p { max-width: 65ch; }
.nl-expanded-game-callout ul { margin: 26px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.nl-expanded-game-callout li { padding: 8px 11px; border: 1px solid rgba(0,0,0,.3); font-size: 10px; font-weight: 800; }
.nl-expanded-game-callout .nl-button-primary,
.nl-expanded-guide-callout .nl-button-primary { flex: 0 0 auto; background: #11110f; color: var(--nl-paper-bright) !important; }

/* Guías */
.nl-expanded-guide-hero { min-height: 610px; padding: clamp(54px,8vw,116px); display: grid; align-content: center; background: radial-gradient(circle at 90% 10%,var(--nl-expanded-tint),transparent 38%),#121210; border: 1px solid var(--nl-dark-line); }
.nl-expanded-guide-hero h1 { max-width: 1050px; }
.nl-expanded-guide-hero > p:not(.nl-content-kicker) { max-width: 64ch; margin: 30px 0 0; color: #d3cec4; font-size: 17px; }
.nl-expanded-guide-hero aside { max-width: 760px; margin-top: 44px; padding: 20px 24px; display: grid; grid-template-columns: 120px 1fr; gap: 24px; align-items: center; background: var(--nl-page-accent); color: #10100e; }
.nl-expanded-guide-hero aside small { font-size: 9px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.nl-expanded-guide-hero aside strong { font-size: 16px; line-height: 1.35; }

.nl-expanded-guide-reading { display: grid; grid-template-columns: minmax(0,1fr) minmax(330px,.55fr); gap: clamp(50px,8vw,120px); }
.nl-expanded-guide-reading > div { max-width: 760px; }
.nl-expanded-guide-reading > div > p:not(.nl-content-kicker) { color: #c6c0b6; }
.nl-expanded-guide-reading aside { align-self: start; padding: 36px; color: #11110f; background: var(--nl-page-accent); }
.nl-expanded-guide-reading aside > span { width: 42px; height: 42px; margin-bottom: 44px; display: grid; place-items: center; color: var(--nl-page-accent); background: #11110f; border-radius: 50%; font-weight: 900; }
.nl-expanded-guide-reading aside h3 { font-size: 23px; }
.nl-expanded-guide-reading aside p { margin: 0; font-size: 13px; }

.nl-expanded-guide-steps { background: var(--nl-paper); color: var(--nl-ink); }
.nl-expanded-activity > div:last-child { margin-top: 48px; display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--nl-dark-line); }
.nl-expanded-activity article { min-height: 240px; padding: 28px; display: grid; grid-template-columns: 54px 1fr; gap: 18px; align-content: start; border-right: 1px solid var(--nl-dark-line); }
.nl-expanded-activity article:last-child { border-right: 0; }
.nl-expanded-activity article > span { width: 46px; height: 46px; display: grid; place-items: center; color: #11110f; background: var(--nl-page-accent); font-weight: 900; }
.nl-expanded-activity h3 { color: var(--nl-paper-bright); font-size: 20px; }
.nl-expanded-activity p { color: var(--nl-muted); font-size: 13px; }
.nl-expanded-guide-actions { display: flex; align-items: center; gap: 24px; }
.nl-expanded-guide-actions .nl-text-link { color: #11110f !important; }
.nl-expanded-sibling-guides { padding: clamp(38px,5vw,70px); display: grid; grid-template-columns: 180px 1fr; gap: 40px; border-top: 1px solid var(--nl-dark-line); }
.nl-expanded-sibling-guides > span { color: var(--nl-page-accent); font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.nl-expanded-sibling-guides > div { display: grid; gap: 14px; }
.nl-expanded-sibling-guides a { padding-bottom: 14px; display: flex; justify-content: space-between; gap: 20px; color: var(--nl-paper-bright) !important; border-bottom: 1px solid var(--nl-dark-line); text-decoration: none; }
.nl-expanded-sibling-guides a:hover { color: var(--nl-page-accent) !important; }

/* Galería administrable: se muestra solamente cuando hay capturas elegidas. */
.nl-managed-media-gallery {
  scroll-margin-top: 86px;
  background: #11110f;
  color: var(--nl-paper);
  border-top: 1px solid var(--nl-dark-line);
}
.nl-managed-media-gallery .nl-section-intro > p:last-child { max-width: 62ch; color: var(--nl-muted); }
.nl-managed-media-grid {
  margin-top: clamp(34px,5vw,62px);
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: clamp(12px,2vw,24px);
}
.nl-managed-media-grid[data-count="1"] { grid-template-columns: minmax(0,920px); }
.nl-managed-media-grid figure {
  margin: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #070706;
  border: 1px solid var(--nl-dark-line);
}
.nl-managed-media-grid img {
  width: 100%;
  aspect-ratio: 16/10;
  display: block;
  object-fit: contain;
  background: #050504;
}
.nl-managed-media-grid figcaption {
  padding: 13px 16px;
  color: #c7c1b7;
  border-top: 3px solid var(--nl-page-accent);
  font-size: 11px;
  line-height: 1.5;
}

@media (max-width: 1050px) {
  .nl-expanded-hero { grid-template-columns: 1fr; }
  .nl-expanded-console { min-height: 560px; border-top: 1px solid var(--nl-dark-line); border-left: 0; }
  .nl-expanded-story { grid-template-columns: 1fr; }
  .nl-expanded-chain { grid-template-columns: 1fr; }
  .nl-expanded-guide-reading { grid-template-columns: 1fr; }
}

@media (max-width: 860px) {
  .nl-expanded-hero h1,
  .nl-expanded-editorial-hero h1,
  .nl-expanded-guide-hero h1 { font-size: clamp(52px,11vw,86px); }
  .nl-expanded-editorial-hero { grid-template-columns: 1fr; align-items: end; }
  .nl-expanded-editorial-hero aside { width: min(100%,360px); }
  .nl-expanded-loop-grid,
  .nl-expanded-guide-steps ol,
  .nl-expanded-mechanics-grid { grid-template-columns: repeat(2,1fr); }
  .nl-expanded-loop-grid li:nth-child(2),
  .nl-expanded-guide-steps li:nth-child(2),
  .nl-expanded-mechanics-grid article:nth-child(2) { border-right: 0; }
  .nl-expanded-loop-grid li:nth-child(-n+2),
  .nl-expanded-guide-steps li:nth-child(-n+2),
  .nl-expanded-mechanics-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--nl-light-line); }
  .nl-expanded-mechanics-grid article:nth-child(-n+2) { border-bottom-color: var(--nl-dark-line); }
  .nl-expanded-route ol { grid-template-columns: 1fr; }
  .nl-expanded-route li { padding-bottom: 28px; border-bottom: 1px solid var(--nl-dark-line); }
  .nl-expanded-route li h3 { margin-top: 22px; }
  .nl-expanded-game-callout,
  .nl-expanded-guide-callout { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 650px) {
  .nl-expanded-game,
  .nl-expanded-hub,
  .nl-expanded-guide { --nl-content-pad: 54px 22px; }
  .nl-expanded-hero-copy,
  .nl-expanded-editorial-hero,
  .nl-expanded-guide-hero { padding: 54px 22px; }
  .nl-expanded-console { min-height: 490px; padding: 22px; }
  .nl-expanded-console-head { flex-direction: column; gap: 4px; }
  .nl-magic-scene,
  .nl-cat-room { grid-template-columns: 1fr; }
  .nl-magic-character,
  .nl-cat-avatar { width: 74px; }
  .nl-expanded-console > p { align-items: flex-start; flex-direction: column; }
  .nl-expanded-console > p span { max-width: 100%; text-align: left; }
  .nl-penalty-board > div { grid-template-columns: 48px 1fr; }
  .nl-penalty-board i { grid-column: 1/-1; }
  .nl-rhythm-board > div { grid-template-columns: 68px repeat(3,1fr); gap: 8px; }
  .nl-beast-case header { align-items: flex-start; flex-direction: column; }
  .nl-beast-case header strong { text-align: left; }
  .nl-beast-street { height: 220px; }
  .nl-beast-suspects { grid-template-columns: repeat(2,1fr); }
  .nl-expanded-pillars article { grid-template-columns: 42px 1fr; }
  .nl-expanded-pillars article p { grid-column: 2; }
  .nl-expanded-loop-grid,
  .nl-expanded-guide-steps ol,
  .nl-expanded-mechanics-grid,
  .nl-expanded-hub-card-grid,
  .nl-expanded-activity > div:last-child { grid-template-columns: 1fr; }
  .nl-expanded-loop-grid li,
  .nl-expanded-guide-steps li,
  .nl-expanded-mechanics-grid article,
  .nl-expanded-hub-card-grid a,
  .nl-expanded-activity article { min-height: 0; border-right: 0; border-bottom: 1px solid var(--nl-light-line); }
  .nl-expanded-hub-card-grid a:nth-last-child(-n+2) { border-bottom: 1px solid var(--nl-light-line); }
  .nl-expanded-mechanics-grid article,
  .nl-expanded-activity article { border-bottom-color: var(--nl-dark-line); }
  .nl-expanded-loop-grid li:last-child,
  .nl-expanded-guide-steps li:last-child,
  .nl-expanded-mechanics-grid article:last-child,
  .nl-expanded-hub-card-grid a:last-child,
  .nl-expanded-activity article:last-child { border-bottom: 0; }
  .nl-expanded-loop-grid li > span,
  .nl-expanded-guide-steps li > span,
  .nl-expanded-mechanics-grid article > span { margin-bottom: 30px; }
  .nl-expanded-chain ol { grid-template-columns: 1fr; }
  .nl-expanded-chain li { padding: 18px 0 18px 34px; border-top: 0; border-left: 2px solid #11110f; text-align: left; }
  .nl-expanded-chain li::before { top: 25px; left: -6px; }
  .nl-expanded-chain li span { display: inline; margin-right: 8px; }
  .nl-expanded-editorial-hero aside { width: 100%; }
  .nl-expanded-guide-hero aside { grid-template-columns: 1fr; gap: 6px; }
  .nl-expanded-game-callout,
  .nl-expanded-guide-callout { padding: 44px 22px; }
  .nl-expanded-game-callout .nl-button-primary,
  .nl-expanded-guide-callout .nl-button-primary { width: 100%; }
  .nl-expanded-guide-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .nl-expanded-sibling-guides { grid-template-columns: 1fr; }
  .nl-managed-media-gallery { scroll-margin-top: 72px; }
  .nl-managed-media-grid,
  .nl-managed-media-grid[data-count="1"] { grid-template-columns: 1fr; }
  .nl-managed-media-grid img { aspect-ratio: 4/3; }
}

@media (max-width: 460px) {
  .nl-expanded-hero h1,
  .nl-expanded-editorial-hero h1,
  .nl-expanded-guide-hero h1 { font-size: clamp(44px,14vw,64px); }
  .nl-expanded-trivia .nl-expanded-console { min-height: 550px; }
  .nl-trivia-board { padding: 22px; gap: 5px; }
  .nl-trivia-board > i { font-size: 9px; }
  .nl-gamma-panel > span { font-size: 52px; }
  .nl-expanded-guide-reading aside { padding: 26px; }
  .nl-expanded-sibling-guides { padding: 38px 22px; }
}
