/* Visor de PDF tipo libro y tarjetas de ficha/catálogo (2026-10-21).
   Lo añade el middleware PdfVisorAssets solo en páginas con enlaces a /docs/*.pdf. Sin Vite: archivo estático. */
.pdfv-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- Tarjeta de documento (catálogos de marca y fichas genéricas) ---------- */
.pdfv-docs{margin-top:2rem}
.pdfv-docs__head h2{font-size:1.35rem;font-weight:800;line-height:1.25;color:#0f172a}
.pdfv-docs__head p{margin-top:.35rem;max-width:44rem;color:#64748b;font-size:.95rem}
.pdfv-docs__list{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:1rem}
.pdfv-docs__list>li{margin:0}
.pdfv-doc{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:0;overflow:hidden;border:1px solid #e2e8f0;border-radius:18px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.04);transition:transform .25s cubic-bezier(.22,.61,.36,1),box-shadow .25s ease,border-color .2s ease}
.pdfv-doc:hover{transform:translateY(-3px);border-color:#cfe0ff;box-shadow:0 18px 40px -18px rgba(13,110,253,.35),0 4px 12px -6px rgba(15,23,42,.12)}
.pdfv-doc__thumb{position:relative;display:block;overflow:hidden;background:linear-gradient(135deg,#0f172a,#1e293b);aspect-ratio:4/3}
.pdfv-doc__thumb img,.pdfv-doc__thumb canvas{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.22,.61,.36,1)}
.pdfv-doc:hover .pdfv-doc__thumb img,.pdfv-doc:hover .pdfv-doc__thumb canvas{transform:scale(1.04)}
.pdfv-doc__badge{position:absolute;left:.75rem;top:.75rem;display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;border-radius:999px;background:rgba(15,23,42,.82);color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;backdrop-filter:blur(4px)}
.pdfv-doc__hint{position:absolute;inset:auto 0 0 0;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem;background:linear-gradient(to top,rgba(15,23,42,.78),rgba(15,23,42,0));color:#fff;font-weight:700;font-size:.85rem;opacity:0;transform:translateY(6px);transition:opacity .2s ease,transform .25s ease}
.pdfv-doc:hover .pdfv-doc__hint,.pdfv-doc__thumb:focus-visible .pdfv-doc__hint{opacity:1;transform:none}
.pdfv-doc__body{display:flex;flex-direction:column;gap:.45rem;padding:1rem 1.15rem 1.15rem}
.pdfv-doc__kicker{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#0d6efd}
.pdfv-doc__title{font-size:1.1rem;font-weight:800;line-height:1.25;color:#0f172a}
.pdfv-doc__text{color:#475569;font-size:.92rem;line-height:1.5}
.pdfv-doc__meta{color:#64748b;font-size:.8rem}
.pdfv-doc__actions{display:flex;flex-wrap:wrap;gap:.5rem .9rem;align-items:center;margin-top:.35rem}
a.pdfv-doc__open{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:2.75rem;padding:.55rem 1.15rem;border-radius:999px;background:#0d6efd;color:#fff;font-weight:700;font-size:.9rem;text-decoration:none;transition:background-color .15s ease,transform .15s ease}
a.pdfv-doc__open:hover{background:#0b5ed7;color:#fff;transform:translateY(-1px)}
a.pdfv-doc__dl{display:inline-flex;align-items:center;min-height:2.75rem;color:#0f172a;font-weight:600;font-size:.88rem;text-decoration:underline;text-underline-offset:3px}
a.pdfv-doc__dl:hover{color:#0d6efd}
.pdfv-doc a:focus-visible{outline:3px solid #0d6efd;outline-offset:2px}
@media (min-width:720px){
  .pdfv-doc--wide{grid-template-columns:minmax(0,19rem) minmax(0,1fr)}
  .pdfv-doc--wide .pdfv-doc__thumb{aspect-ratio:auto;min-height:100%}
  .pdfv-doc--wide .pdfv-doc__body{justify-content:center;padding:1.4rem 1.6rem}
}
.pdfv-docs--band{max-width:72rem;margin:0 auto;padding:1.5rem 1rem 0}
.pdfv-docs--pdp{padding-top:2rem;padding-bottom:2rem}

/* Miniatura pintada en el navegador (PDF sin preparar). */
[data-pdf-thumb-fallback]{position:relative}
[data-pdf-thumb-fallback]:not(.is-rendered)::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(255,255,255,0) 30%,rgba(255,255,255,.12) 50%,rgba(255,255,255,0) 70%);background-size:200% 100%;animation:pdfv-shimmer 1.4s linear infinite}
@keyframes pdfv-shimmer{to{background-position:-200% 0}}
.pdfv-thumb__ph{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#cbd5e1;font-weight:800;font-size:1.6rem;letter-spacing:.1em}
[data-pdf-thumb-fallback].is-rendered .pdfv-thumb__ph{display:none}
a[aria-busy="true"]{cursor:progress}

/* ---------- Diálogo del visor ---------- */
.pdfv{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:radial-gradient(ellipse at 50% 40%,#1e293b 0%,#0b1220 70%);color:#e2e8f0;overflow:hidden;display:none}
.pdfv[open]{display:flex;flex-direction:column}
.pdfv::backdrop{background:rgba(2,6,23,.6)}
.pdfv__top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .9rem;background:rgba(2,6,23,.55);border-bottom:1px solid rgba(148,163,184,.18);z-index:3}
.pdfv__head{min-width:0}
.pdfv__title{margin:0;font-weight:800;font-size:.98rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pdfv__count{margin:.1rem 0 0;font-size:.8rem;color:#94a3b8;font-variant-numeric:tabular-nums;min-height:1.1em}
.pdfv__tools{display:flex;align-items:center;gap:.25rem;flex-shrink:0}
.pdfv__sep{width:1px;height:1.5rem;margin:0 .25rem;background:rgba(148,163,184,.3)}
.pdfv__btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-width:2.75rem;height:2.75rem;padding:0 .55rem;border:0;border-radius:12px;background:transparent;color:#e2e8f0;font:inherit;font-size:.85rem;font-weight:700;cursor:pointer;text-decoration:none;transition:background-color .15s ease,color .15s ease}
.pdfv__btn:hover{background:rgba(148,163,184,.18);color:#fff}
.pdfv__btn:focus-visible,.pdfv__side:focus-visible{outline:3px solid #60a5fa;outline-offset:1px}
.pdfv__btn:disabled{opacity:.35;cursor:default;background:transparent}
.pdfv__btn--down{background:#0d6efd;color:#fff;padding:0 .9rem}
.pdfv__btn--down:hover{background:#0b5ed7}
.pdfv__btn--close{margin-left:.25rem;background:rgba(148,163,184,.16)}
.pdfv__btn[aria-pressed="true"]{background:rgba(96,165,250,.25)}
.pdfv__stage{position:relative;flex:1;min-height:0;margin:clamp(.5rem,2.2vh,1.5rem) clamp(.5rem,4.5vw,4.5rem);display:flex;align-items:center;justify-content:center;transform-origin:50% 50%}
.pdfv__book{width:100%;height:100%;align-self:stretch}
.pdfv__book.stf__parent{width:100%;height:100%}
.pdfv__book .stf__wrapper{position:relative;width:100%;height:100%}
.pdfv__page{background:#fff;overflow:hidden}
.pdfv__page-in{position:relative;width:100%;height:100%;background:#f8fafc}
.pdfv__page-in:not(.is-ready)::before{content:"";position:absolute;left:50%;top:50%;width:2rem;height:2rem;margin:-1rem 0 0 -1rem;border:3px solid #cbd5e1;border-top-color:#0d6efd;border-radius:50%;animation:pdfv-spin .8s linear infinite}
.pdfv__img{display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;pointer-events:none}
.pdfv__fade{display:flex;align-items:center;justify-content:center;gap:0;filter:drop-shadow(0 25px 45px rgba(0,0,0,.45))}
.pdfv__fade.is-spread .pdfv__page:first-child{box-shadow:inset -18px 0 24px -18px rgba(15,23,42,.35)}
.pdfv__fade.is-spread .pdfv__page:last-child{box-shadow:inset 18px 0 24px -18px rgba(15,23,42,.35)}
.pdfv__book .stf__item{box-shadow:0 20px 45px -20px rgba(0,0,0,.6)}
.pdfv__side{position:absolute;top:50%;z-index:4;display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;margin-top:-1.5rem;border:0;border-radius:999px;background:rgba(15,23,42,.6);color:#fff;cursor:pointer;transition:background-color .15s ease,opacity .2s ease}
.pdfv__side:hover{background:#0d6efd}
.pdfv__side:disabled{opacity:0;pointer-events:none}
.pdfv__side--prev{left:clamp(-4rem,-4vw,-.25rem)}
.pdfv__side--next{right:clamp(-4rem,-4vw,-.25rem)}
.pdfv__loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:.75rem;color:#cbd5e1;font-weight:600;z-index:2}
.pdfv__loading[hidden]{display:none}
.pdfv__spinner{width:1.6rem;height:1.6rem;border:3px solid rgba(203,213,225,.35);border-top-color:#60a5fa;border-radius:50%;animation:pdfv-spin .8s linear infinite}
.pdfv__fallback{color:#93c5fd;text-decoration:underline}
@keyframes pdfv-spin{to{transform:rotate(360deg)}}
.pdfv__zoom{position:absolute;inset:4.1rem 0 0 0;z-index:5;overflow:auto;background:#0b1220;cursor:grab;overscroll-behavior:contain}
.pdfv__zoom[hidden]{display:none}
.pdfv__zoom.is-dragging{cursor:grabbing}
.pdfv__zoom-inner{display:flex;min-width:100%;min-height:100%;align-items:center;justify-content:center;padding:0}
.pdfv__zoom-media{display:block;flex:none;max-width:none;background:#fff;user-select:none;-webkit-user-drag:none}
.pdfv.is-zoomed .pdfv__side{display:none}
@media (max-width:767px){
  .pdfv__top{flex-wrap:wrap;padding:.45rem .6rem}
  .pdfv__head{flex:1 1 100%;order:0}
  .pdfv__tools{flex:1 1 100%;justify-content:space-between}
  .pdfv__btn{min-width:2.6rem;padding:0 .4rem}
  .pdfv__btn-text,.pdfv__btn--full,.pdfv__sep{display:none}
  .pdfv__stage{margin:.5rem .35rem 3.75rem}
  .pdfv__side{top:auto;bottom:-3.25rem;margin-top:0}
  .pdfv__side--prev{left:25%}
  .pdfv__side--next{right:25%}
  .pdfv__zoom{inset:6.4rem 0 0 0}
}
@media (prefers-reduced-motion:reduce){
  .pdfv-doc,.pdfv-doc__thumb img,.pdfv-doc__thumb canvas,.pdfv-doc__hint,a.pdfv-doc__open,.pdfv__btn,.pdfv__side{transition:none}
  .pdfv-doc:hover{transform:none}
  .pdfv-doc:hover .pdfv-doc__thumb img,.pdfv-doc:hover .pdfv-doc__thumb canvas{transform:none}
  [data-pdf-thumb-fallback]:not(.is-rendered)::after,.pdfv__spinner,.pdfv__page-in:not(.is-ready)::before{animation:none}
}
/* Caras dobles (v3, fichas CABMA): pliegue suave en el centro del díptico abierto (solo doble página). */
.pdfv.is-spread-doc .--landscape .stf__item.--left .pdfv__page-in::after,.pdfv.is-spread-doc .--landscape .stf__item.--right .pdfv__page-in::after{content:"";position:absolute;top:0;bottom:0;width:5%;pointer-events:none}
.pdfv.is-spread-doc .--landscape .stf__item.--left .pdfv__page-in::after{right:0;background:linear-gradient(to left,rgba(15,23,42,.13),rgba(15,23,42,0))}
.pdfv.is-spread-doc .--landscape .stf__item.--right .pdfv__page-in::after{left:0;background:linear-gradient(to right,rgba(15,23,42,.13),rgba(15,23,42,0))}
