/* Edición Impresa: archivo, ficha, visor y teaser de portada (04 §7). Solo se encola en plantillas de edición y en la portada con teaser. */

@view-transition { navigation: auto; }
.er-header { view-transition-name: er-header; }
.er-print-cover--current { view-transition-name: er-edicion-cover; }
::view-transition-group(er-edicion-cover) { animation-duration: var(--er-dur-page); animation-timing-function: var(--er-ease-page); }

/* ── Portada como objeto ─────────────────────────────────────────────────── */
.er-print-cover {
  position: relative;
  display: block;
  aspect-ratio: var(--er-print-ratio);
  background: var(--er-paper);
  border-radius: var(--er-radius-cover);
  box-shadow: var(--er-shadow-paper);
  transform-origin: left center;
  transition: transform 400ms var(--er-ease-out), box-shadow 400ms var(--er-ease-out);
}
.er-print-cover::before,
.er-print-cover::after { content: ""; position: absolute; pointer-events: none; }
.er-print-cover::before {
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  background:
    linear-gradient(90deg, rgba(0,0,0,.22) 0, rgba(255,255,255,.18) 1.2%, rgba(0,0,0,.06) 3.2%, transparent 7%),
    linear-gradient(115deg, rgba(255,255,255,.16), transparent 32%);
}
.er-print-cover::after {
  inset-block: 2px;
  inset-inline-end: -5px;
  inline-size: 5px;
  background: repeating-linear-gradient(90deg, var(--er-paper-shade) 0 1px, var(--er-paper-edge) 1px 2px);
  border-radius: 0 2px 2px 0;
}
.er-print-cover__img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; border-radius: inherit; }
.er-print-cover__blank {
  display: grid; place-content: center; justify-items: center; gap: var(--er-space-2);
  block-size: 100%; color: var(--er-text-muted);
  font: var(--er-font-bold) var(--er-text-lg) var(--er-font-headline);
}
.er-print-cover__spade { font-size: 2.5em; line-height: 1; color: var(--er-color-brand-on-paper); }

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  a:hover > .er-print-cover,
  a:focus-visible > .er-print-cover,
  .er-print-card:hover .er-print-cover,
  .er-print-card:focus-within .er-print-cover {
    transform: perspective(1200px) rotateY(-8deg) translateY(-6px);
    box-shadow: var(--er-shadow-paper-lift);
  }
}

/* ── Estructura común ────────────────────────────────────────────────────── */
.er-edicion { background: var(--er-bg-primary); color: var(--er-text-primary); }
.er-edicion-hero { padding-block: var(--er-space-8) var(--er-space-10); border-block-end: 1px solid var(--er-border-subtle); }
.er-edicion-eyebrow {
  margin: 0 0 var(--er-space-3);
  font: var(--er-font-bold) var(--er-text-xs) var(--er-font-mono);
  letter-spacing: var(--er-tracking-wider);
  text-transform: uppercase;
  color: var(--er-color-brand-on-paper);
}
.er-edicion-hero__title,
.er-edicion-current__title {
  margin: 0;
  font-family: var(--er-font-headline);
  font-weight: var(--er-font-extrabold);
  font-size: var(--er-text-display-sm);
  line-height: 1.1;
  text-wrap: balance;
}
.er-edicion-current__title a { color: inherit; text-decoration: none; }
.er-edicion-hero__meta { margin: var(--er-space-3) 0 0; font: var(--er-font-medium) var(--er-text-sm) var(--er-font-mono); color: var(--er-text-secondary); }
.er-edicion-hero__lede { max-inline-size: 60ch; margin: var(--er-space-4) 0 0; font-size: var(--er-text-lg); line-height: 1.55; color: var(--er-text-secondary); }
.er-edicion-section__title { margin: 0 0 var(--er-space-6); font: var(--er-font-bold) var(--er-text-2xl) var(--er-font-headline); }
.er-edicion-crumbs { display: flex; flex-wrap: wrap; gap: var(--er-space-2); margin-block-end: var(--er-space-6); font-size: var(--er-text-sm); color: var(--er-text-secondary); }
.er-edicion-crumbs a { color: inherit; }

.er-edicion-actions { display: flex; flex-wrap: wrap; gap: var(--er-space-3); margin-block-start: var(--er-space-6); }
.er-edicion-actions > * { min-block-size: var(--er-tap); }
.er-edicion-actions__size { font-weight: var(--er-font-medium); opacity: .8; text-transform: none; letter-spacing: 0; }
.er-edicion-actions .er-btn-primary,
.er-edicion-actions .er-btn-secondary { white-space: normal; text-align: center; }

/* ── Ficha ───────────────────────────────────────────────────────────────── */
.er-edicion-hero__grid { display: grid; gap: var(--er-space-8); align-items: center; }
.er-edicion-cover { display: block; inline-size: min(100%, 16rem); margin-inline: auto; padding-inline-end: 5px; }
.er-edicion-hero__info { min-inline-size: 0; }
@media (min-width: 768px) {
  .er-edicion-hero__grid { grid-template-columns: 16rem minmax(0, 1fr); gap: var(--er-space-12); }
  .er-edicion-cover { margin-inline: 0; }
}

.er-edicion-toc { padding-block: var(--er-space-10); }
.er-edicion-toc__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--er-space-1); max-inline-size: 48rem; counter-reset: toc; }
.er-edicion-toc__item { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--er-space-1) var(--er-space-4); padding-block: var(--er-space-2); }
.er-edicion-toc__link { flex: 1 1 100%; display: flex; align-items: baseline; gap: var(--er-space-2); min-block-size: var(--er-tap); align-content: center; color: inherit; text-decoration: none; }
.er-edicion-toc__title { font: var(--er-font-semibold) var(--er-text-lg) var(--er-font-headline); }
.er-edicion-toc__dots { flex: 1; min-inline-size: 1rem; border-block-end: 2px dotted var(--er-border-strong); transform: translateY(-.25em); }
.er-edicion-toc__page { font: var(--er-font-bold) var(--er-text-sm) var(--er-font-mono); font-variant-numeric: tabular-nums; }
.er-edicion-toc__link:hover .er-edicion-toc__title { text-decoration: underline; text-decoration-color: var(--er-color-brand); text-underline-offset: .25em; }
.er-edicion-toc__section { font: var(--er-font-semibold) var(--er-text-xs) var(--er-font-headline); letter-spacing: var(--er-tracking-wider); text-transform: uppercase; color: var(--er-text-secondary); }
.er-edicion-toc__web { font-size: var(--er-text-sm); }

.er-edicion-more { padding-block: var(--er-space-10); }
.er-edicion-more__all { margin: var(--er-space-6) 0 0; }

/* ── Archivo y estante ───────────────────────────────────────────────────── */
.er-edicion-years ul { display: flex; flex-wrap: wrap; gap: var(--er-space-2); list-style: none; margin: var(--er-space-6) 0 0; padding: 0; }
.er-edicion-years a {
  display: inline-flex; align-items: center; min-block-size: var(--er-tap); padding-inline: var(--er-space-4);
  border: 1px solid var(--er-border-strong); border-radius: var(--er-radius-pill);
  font: var(--er-font-bold) var(--er-text-sm) var(--er-font-mono); color: inherit; text-decoration: none;
}
.er-edicion-years a[aria-current="page"] { background: var(--er-text-primary); color: var(--er-bg-primary); border-color: var(--er-text-primary); }

.er-edicion-current { display: grid; gap: var(--er-space-8); align-items: center; padding-block: var(--er-space-10); }
.er-edicion-current .er-edicion-cover { inline-size: min(100%, 22rem); }
@media (min-width: 768px) {
  .er-edicion-current { grid-template-columns: 22rem minmax(0, 1fr); gap: var(--er-space-12); }
  .er-edicion-current .er-edicion-cover { margin-inline: 0; }
}

.er-edicion-shelves { padding-block: var(--er-space-6) var(--er-space-12); }
.er-edicion-shelf { margin-block-end: var(--er-space-10); }
.er-edicion-shelf__year { margin: 0 0 var(--er-space-4); font: var(--er-font-extrabold) var(--er-text-3xl) var(--er-font-headline); }
.er-edicion-shelf__year a { color: inherit; text-decoration: none; }
.er-edicion-shelf__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 10.5rem), 1fr)); gap: var(--er-space-8) var(--er-space-6); list-style: none; margin: 0; padding: 0; }
.er-edicion-empty { padding-block: var(--er-space-8); color: var(--er-text-secondary); }

.er-print-card { position: relative; }
.er-print-card__cover { position: relative; padding-block-end: var(--er-space-3); padding-inline-end: 5px; }
.er-print-card__cover::after {
  content: ""; position: absolute; inset-inline: 6%; inset-block-end: 0; block-size: 10px; z-index: -1;
  background: radial-gradient(ellipse, rgba(0,0,0,.25), transparent 70%);
}
.er-print-card__title { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--er-space-2); }
.er-print-card__title a { display: contents; color: inherit; text-decoration: none; }
.er-print-card__title a::after { content: ""; position: absolute; inset: 0; }
.er-print-card__period { font: var(--er-font-bold) var(--er-text-sm) var(--er-font-headline); letter-spacing: var(--er-tracking-wide); text-transform: uppercase; }
.er-print-card__no { padding: 1px 6px; border: 1px solid var(--er-border-strong); border-radius: var(--er-radius-sm); font: var(--er-font-medium) var(--er-text-xs) var(--er-font-mono); }
.er-print-card__meta { margin: var(--er-space-1) 0 0; font-size: var(--er-text-xs); color: var(--er-text-secondary); }
.er-print-card a:focus-visible::after { outline: 3px solid var(--er-color-brand-action); outline-offset: 4px; border-radius: var(--er-radius-sm); }

/* ── Teaser de portada (04 §7.7) ─────────────────────────────────────────── */
.er-home__edicion { background: var(--er-bg-elevated); padding-block: var(--er-space-12); content-visibility: auto; contain-intrinsic-size: auto 640px; }
.er-edicion-teaser { display: grid; gap: var(--er-space-8); align-items: center; }
.er-edicion-teaser__cover { display: block; inline-size: min(70%, 15rem); margin-inline: auto; padding-inline-end: 5px; }
.er-edicion-teaser__cover .er-print-cover { transform: rotate(-3deg); }
.er-edicion-teaser__title { margin: 0; font: var(--er-font-extrabold) var(--er-text-display-sm) var(--er-font-headline); line-height: 1.1; text-wrap: balance; }
.er-edicion-teaser__toc { margin: var(--er-space-4) 0 0; padding: 0; list-style: none; display: grid; gap: var(--er-space-2); }
.er-edicion-teaser__toc li { display: flex; gap: var(--er-space-3); font-size: var(--er-text-base); }
.er-edicion-teaser__toc span { font: var(--er-font-bold) var(--er-text-xs) var(--er-font-mono); color: var(--er-color-brand-on-paper); padding-block-start: .2em; }
.er-edicion-teaser__all { display: inline-block; margin-block-start: var(--er-space-4); font-weight: var(--er-font-semibold); color: var(--er-color-brand-deep); } /* sobre #F0EFED: 6.87:1 */
@media (min-width: 768px) {
  .er-edicion-teaser { grid-template-columns: minmax(0, 1fr) 15rem; }
  .er-edicion-teaser__cover { order: 2; }
}

/* ── Visor: la mesa de lectura (04 §7.4) ─────────────────────────────────── */
.er-reader { padding: 0; border: 0; margin: 0; max-inline-size: none; max-block-size: none; inline-size: 100%; block-size: 100dvh; color: var(--er-stage-text); background: radial-gradient(ellipse at center, #1b1b1b 0, var(--er-stage-bg-deep) 70%); }
.er-reader[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.er-reader::backdrop { background: var(--er-stage-bg-deep); }
.er-reader__head { display: flex; align-items: center; justify-content: space-between; gap: var(--er-space-4); padding: var(--er-space-2) var(--er-space-4); border-block-end: 1px solid var(--er-stage-line); }
.er-reader__title { margin: 0; font: var(--er-font-bold) var(--er-text-sm) var(--er-font-headline); letter-spacing: var(--er-tracking-wide); text-transform: uppercase; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.er-reader__body { position: relative; display: flex; min-block-size: 0; }
.er-reader__stage { position: relative; flex: 1; min-inline-size: 0; display: flex; overflow: auto; padding: var(--er-space-3); outline-offset: -3px; overscroll-behavior: contain; touch-action: pan-y pinch-zoom; }
.er-reader__stage canvas { margin: auto; flex: none; background: var(--er-paper); box-shadow: var(--er-shadow-paper-lift); max-inline-size: none; }
.er-reader__stage canvas.is-turning { animation: er-page-in 220ms var(--er-ease-out); }
.er-reader.is-locked .er-reader__stage canvas { filter: blur(6px); }
@keyframes er-page-fade { from { opacity: 0; } }
@keyframes er-page-in { from { opacity: 0; transform: translateX(var(--er-turn, 12px)); } }

.er-reader__loading { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: var(--er-space-3); color: var(--er-stage-text-soft); font-size: var(--er-text-sm); pointer-events: none; }
.er-reader__loading[hidden], .er-reader__fallback[hidden], .er-reader__gate[hidden], .er-reader__toc[hidden] { display: none; }
.er-reader__loading progress { inline-size: 12rem; block-size: 2px; accent-color: var(--er-color-brand); }
.er-reader__fallback { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: var(--er-space-4); padding: var(--er-space-6); text-align: center; background: var(--er-stage-bg-deep); }

.er-reader__toc { flex: none; inline-size: min(20rem, 85%); overflow: auto; padding: var(--er-space-4); background: var(--er-stage-bg); border-inline-end: 1px solid var(--er-stage-line); }
.er-reader__toc ol { list-style: none; margin: 0; padding: 0; }
.er-reader__toc button { display: flex; align-items: baseline; gap: var(--er-space-2); inline-size: 100%; min-block-size: var(--er-tap); padding: var(--er-space-2); background: none; border: 0; border-inline-start: 3px solid transparent; color: inherit; text-align: start; font: var(--er-font-semibold) var(--er-text-sm) var(--er-font-headline); cursor: pointer; }
.er-reader__toc button[aria-current="true"] { border-inline-start-color: var(--er-color-brand); }
.er-reader__toc button:hover { background: var(--er-stage-line); }
.er-reader__toc-dots { flex: 1; min-inline-size: .75rem; border-block-end: 2px dotted rgba(255,255,255,.25); }
.er-reader__toc-page { font: var(--er-font-bold) var(--er-text-xs) var(--er-font-mono); }
@media (max-width: 767px) { .er-reader__toc { position: absolute; inset-block: 0; inset-inline-start: 0; z-index: 3; } }

.er-reader__bar { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: var(--er-space-1); padding: var(--er-space-2) var(--er-space-3); background: rgba(17,17,17,.82); backdrop-filter: blur(12px); border-block-start: 1px solid var(--er-stage-line); }
.er-reader__btn { display: inline-flex; align-items: center; justify-content: center; min-inline-size: var(--er-tap); min-block-size: var(--er-tap); padding: 0; background: none; border: 0; border-radius: var(--er-radius-md); color: var(--er-stage-text); font: var(--er-font-bold) var(--er-text-xl) var(--er-font-headline); cursor: pointer; text-decoration: none; }
.er-reader__btn:hover:not(:disabled) { background: var(--er-stage-line); }
.er-reader__btn:disabled { opacity: .35; cursor: default; }
.er-reader__btn[hidden] { display: none; }
.er-reader__pager { display: inline-flex; align-items: center; gap: var(--er-space-2); font: var(--er-font-medium) var(--er-text-sm) var(--er-font-mono); font-variant-numeric: tabular-nums; }
.er-reader__pager input { inline-size: 4rem; min-block-size: var(--er-tap); padding: 0 var(--er-space-2); text-align: center; color: inherit; background: var(--er-stage-bg-raised); border: 1px solid var(--er-stage-line-strong); border-radius: var(--er-radius-md); font: inherit; }
.er-reader__zoom { min-inline-size: 3.5rem; text-align: center; font: var(--er-font-medium) var(--er-text-sm) var(--er-font-mono); }
.er-reader__sep { inline-size: 1px; block-size: 1.5rem; margin-inline: var(--er-space-2); background: var(--er-stage-line); }
.er-reader :focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

/* Panel de suscripción: no modal en soft; bloqueante centrado en email (04 §15.4) */
.er-reader__gate { position: absolute; z-index: 4; inset-inline-end: var(--er-space-4); inset-block-end: var(--er-space-4); inline-size: min(22rem, 100% - 2rem); padding: var(--er-space-6); display: grid; gap: var(--er-space-4); color: var(--er-stage-text); background: var(--er-stage-bg-raised); border: 1px solid var(--er-stage-line); border-radius: var(--er-radius-lg); box-shadow: var(--er-shadow-xl); max-block-size: calc(100% - 2rem); overflow: auto; animation: er-page-in var(--er-dur-3) var(--er-ease-out); --er-turn: 0; }
.er-reader__gate[data-lock="1"] {
  inset: auto; inset-block-start: 50%; inset-inline-start: 50%; translate: -50% -50%;
  border-block-start: 3px solid var(--er-color-brand);
}
.er-reader__gate-close { position: absolute; inset-block-start: 0; inset-inline-end: 0; }
.er-reader__gate-lock {
  display: flex; align-items: center; gap: var(--er-space-2); margin: 0; padding-inline-end: var(--er-space-8);
  font: var(--er-font-bold) var(--er-text-lg) var(--er-font-headline); color: var(--er-stage-text);
}
.er-reader__gate[data-lock="1"] .er-reader__gate-lock { padding-inline-end: 0; justify-content: center; }
.er-reader__gate-lock-icon { flex: none; color: var(--er-color-brand); }
.er-reader__gate-lock[hidden] { display: none; }
.er-reader__gate-skip { color: var(--er-stage-text); border-color: var(--er-stage-line-strong); }
.er-reader__gate .er-newsletter { padding: 0; background: none; }
@media (max-width: 767px) {
  .er-reader__gate { inset-inline: 0; inset-block-end: 0; inline-size: 100%; max-block-size: 60%; border-radius: var(--er-radius-lg) var(--er-radius-lg) 0 0; }
  .er-reader__title { font-size: var(--er-text-xs); }
}
body:has(dialog.er-reader[open]) { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  .er-print-cover { transition: none; }
  .er-print-cover--current, .er-edicion-teaser__cover .er-print-cover { transform: none; }
  .er-reader__stage canvas.is-turning { animation: er-page-fade 120ms linear; }
  .er-reader__gate { animation: none; }
  @view-transition { navigation: none; }
}
.er-edicion-actions [hidden] { display: none; }
.er-reader .er-reader__title { color: var(--er-stage-text); opacity: 1; }
.er-reader .er-reader__toc button, .er-reader .er-reader__zoom, .er-reader .er-reader__loading { color: var(--er-stage-text); }
.er-reader .er-reader__toc-page, .er-reader .er-reader__pager b { color: var(--er-stage-text-soft); }
.er-reader .er-reader__pager input::placeholder { color: var(--er-stage-text-dim); }
.er-reader .er-reader__pager span[aria-hidden] { color: var(--er-stage-text-soft); }
.er-reader .er-reader__pager { white-space: nowrap; color: var(--er-stage-text); }
.er-reader .er-reader__pager input { color: var(--er-stage-text); -webkit-text-fill-color: var(--er-stage-text); }
@media (max-width: 480px) {
  .er-reader__sep, .er-reader__zoom, .er-reader [data-reader-zoom] { display: none; }
  .er-reader__bar { gap: var(--er-space-1) var(--er-space-2); padding-inline: var(--er-space-2); }
  .er-reader__pager { flex: 0 0 auto; gap: var(--er-space-1); }
  .er-reader__pager input { inline-size: 3rem; padding-inline: var(--er-space-1); }
}
.er-edicion-teaser__toc span { min-inline-size: 2.4em; }
