/* ============================================================
   O LIBRO — páxina libro.html (ficha, lector de páxinas, índice)
   Usa as variables de site.css. O lector amosa unha imaxe por
   páxina (assets/libro/paxinas/p-NNN.webp, NNN = nº impreso).
   ============================================================ */

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.page-hero h1.libro-title{max-width:22ch}
.libro-actions{display:flex;flex-wrap:wrap;gap:.8rem}

/* ---------- ficha ---------- */
/* ficha: a cuberta do libro á esquerda e os datos á dereita */
.libro-obra{display:grid;gap:1.6rem;align-items:start}
.libro-cuberta{margin:0}
.libro-cuberta a{display:block;border-radius:10px;overflow:hidden;box-shadow:var(--shadow);line-height:0;transition:transform .2s ease,box-shadow .2s ease}
.libro-cuberta a:hover{transform:translateY(-2px)}
.libro-cuberta img{width:100%;height:auto;display:block}
.libro-cuberta figcaption{font-size:.82rem;color:var(--muted);margin-top:.6rem;line-height:1.4}
@media(min-width:900px){.libro-obra{grid-template-columns:minmax(300px,420px) 1fr;gap:2.2rem}
  .libro-obra .libro-ficha{grid-template-columns:1fr 1fr}}
.libro-ficha{display:grid;gap:.8rem;grid-template-columns:1fr;margin:0}
@media(min-width:620px){.libro-ficha{grid-template-columns:1fr 1fr}}
@media(min-width:980px){.libro-ficha{grid-template-columns:repeat(3,1fr)}}
.libro-ficha div{background:var(--sand);border:1px solid var(--line);border-left:4px solid var(--turq-300);border-radius:14px;padding:1rem 1.2rem}
.libro-ficha dt{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--turq);margin-bottom:.25rem}
.libro-ficha dd{margin:0;font-family:var(--serif,Georgia,serif);font-size:1.08rem;font-weight:700;color:var(--navy-800);line-height:1.3}

/* ---------- lector ---------- */
.reader{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}
.reader__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem .9rem;padding:.7rem .9rem;background:var(--navy-800);color:#fff}
.reader__toc{display:flex;align-items:center;gap:.5rem;flex:1 1 220px;min-width:0}
.reader__toc svg{width:20px;height:20px;flex:none;color:var(--yellow-300)}
.reader__toc select{flex:1;min-width:0;max-width:420px;font:inherit;font-size:.9rem;font-weight:600;color:#fff;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.28);border-radius:10px;padding:.5rem .7rem;cursor:pointer}
.reader__toc select option{color:#0c2033;background:#fff}
.reader__nav{display:flex;align-items:center;gap:.45rem;flex:none}
.reader__tools{display:flex;align-items:center;gap:.45rem;flex:none}
.reader__btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-width:42px;height:42px;padding:0 .6rem;border-radius:10px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;font:inherit;font-size:.86rem;font-weight:700;cursor:pointer;text-decoration:none;transition:background .15s ease,border-color .15s ease}
.reader__btn svg{width:19px;height:19px;flex:none}
.reader__btn:hover,.reader__btn:focus-visible{background:rgba(255,255,255,.2);border-color:#fff}
.reader__btn[disabled]{opacity:.35;cursor:default}
.reader__btn[aria-pressed="true"]{background:var(--yellow);border-color:var(--yellow);color:var(--navy-800)}
.reader__count{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:600;white-space:nowrap}
.reader__count input{width:4.1rem;height:42px;text-align:center;font:inherit;font-weight:800;color:var(--navy-800);background:#fff;border:0;border-radius:10px;-moz-appearance:textfield}
.reader__count input::-webkit-outer-spin-button,.reader__count input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.reader__total{opacity:.85}
.reader__full-off{display:none}

.reader,#lector,#indice{scroll-margin-top:calc(var(--header-h) + 10px)}
.reader__stage{position:relative;background:#e9eff3;overflow:hidden;line-height:0;outline:none;touch-action:pan-y pinch-zoom;text-align:center}
.reader__stage:focus-visible{box-shadow:inset 0 0 0 3px var(--cyan)}
/* a páxina enteira cabe sempre na pantalla, coa barra do lector á vista */
.reader__stage img{display:inline-block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - var(--header-h) - 104px);background:#fff;transition:opacity .18s ease;user-select:none;-webkit-user-drag:none}
.reader.is-loading .reader__stage img{opacity:.35}
.reader__edge{position:absolute;top:0;bottom:0;width:16%;border:0;background:transparent;cursor:pointer;padding:0}
.reader__edge--prev{left:0;cursor:w-resize}
.reader__edge--next{right:0;cursor:e-resize}
.reader__progress{height:4px;background:var(--line)}
.reader__progress span{display:block;height:100%;width:0;background:var(--yellow);transition:width .2s ease}
.reader__hint{margin-top:1rem;font-size:.9rem;color:var(--muted)}

/* lupa: a páxina ao dobre de ancho, con desprazamento dentro do marco */
.reader--zoom .reader__stage{overflow:auto;max-height:82vh;touch-action:pan-x pan-y pinch-zoom;cursor:grab}
.reader--zoom .reader__stage{text-align:left}
.reader--zoom .reader__stage img{display:block;width:min(240%,1600px);max-width:none;max-height:none}
.reader--zoom .reader__edge{display:none}

/* pantalla completa (capa fixa: funciona tamén en iPhone, que non ten API de pantalla completa) */
.reader--full{position:fixed;inset:0;z-index:1200;border-radius:0;border:0;display:flex;flex-direction:column;background:#0b1d2e}
.reader--full .reader__stage{flex:1 1 auto;min-height:0;background:#0b1d2e}
.reader--full .reader__stage img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;background:transparent}
.reader--full.reader--zoom .reader__stage{max-height:none}
.reader--full.reader--zoom .reader__stage img{position:static;width:min(240%,1600px);height:auto;object-fit:fill;background:#fff;margin-inline:auto}
.reader--full .reader__full-on{display:none}
.reader--full .reader__full-off{display:inline}
body.reader-open{overflow:hidden}

@media(max-width:719px){
  .reader__bar{padding:.6rem}
  .reader__toc{flex:1 1 100%;order:1}
  .reader__toc select{max-width:none}
  .reader__nav{order:2}
  .reader__tools{order:3;margin-left:auto}
  .reader__btn--text span{display:none}
  .reader__btn--text .reader__full-off{display:none}
  .reader__count span[data-i18n]{display:none}
  .reader__count input{width:3.4rem}
}
/* móbil estreito: frechas e ferramentas nunha soa fila */
@media(max-width:479px){
  .reader__btn{min-width:38px;height:38px;padding:0 .4rem}
  .reader__count input{height:38px;width:3.1rem}
  .reader__total{display:none}
  .reader__nav,.reader__tools{gap:.35rem}
}

/* ---------- índice ---------- */
.libro-indice{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;grid-template-columns:1fr}
@media(min-width:820px){.libro-indice{grid-template-columns:1fr 1fr;column-gap:1rem}}
.libro-indice button{display:flex;align-items:baseline;gap:.8rem;width:100%;text-align:left;font:inherit;color:var(--navy-800);background:#fff;border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.libro-indice button:hover,.libro-indice button:focus-visible{border-color:var(--turq-300);box-shadow:var(--shadow-sm);transform:translateY(-1px)}
.libro-indice .t{flex:1;font-weight:600;line-height:1.35}
.libro-indice .p{flex:none;font-size:.82rem;font-weight:700;color:var(--turq);white-space:nowrap}

/* ---------- imaxes do libro (fotos pequenas: nunca se amplían por riba do seu tamaño real) ---------- */
.libro-galeria{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:560px){.libro-galeria{grid-template-columns:1fr 1fr}}
@media(min-width:980px){.libro-galeria{grid-template-columns:repeat(3,1fr);gap:1.2rem}}
.libro-foto{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);color:inherit;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}
.libro-foto:hover,.libro-foto:focus-visible{transform:translateY(-3px);box-shadow:var(--shadow)}
.libro-foto img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;background:var(--sand-200)}
.libro-foto .pe{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;padding:.75rem .95rem .85rem;font-size:.9rem;line-height:1.35;color:var(--navy-800)}
.libro-foto .pe span{font-style:italic}
.libro-foto .pe b{flex:none;font-size:.78rem;font-weight:700;color:var(--turq);white-space:nowrap}
.libro-galeria__credito{margin-top:1.2rem;font-size:.86rem;color:var(--muted)}
#imaxes{scroll-margin-top:calc(var(--header-h) + 10px)}

/* ---------- descarga ---------- */
.libro-desc{display:flex;flex-direction:column;align-items:center;gap:1rem}
.libro-open{color:#dcecf5;font-weight:600;font-size:.95rem;text-decoration:underline;text-underline-offset:3px}
.libro-open:hover{color:#fff}
.libro-rights{max-width:70ch;margin:1.8rem auto 0;text-align:center;font-size:.84rem;line-height:1.5;color:var(--muted-on-navy)}

/* tarxeta da portada */
.cta-card--libro{border-top-color:var(--cyan)}
