/* ============================================================
   LBE · Librería Brand Express — Hoja de estilos de la tienda demo
   Paleta: tinta #1B2A4A · papel #FAF4EA · coral #FF6B35 · subrayador #FFC53D
   ============================================================ */
:root{
  --tinta:#1B2A4A;
  --tinta-claro:#2E4370;
  --papel:#FAF4EA;
  --papel-oscuro:#F1E7D4;
  --coral:#FF6B35;
  --coral-oscuro:#E55622;
  --subrayador:#FFC53D;
  --gris:#5A6478;
  --borde:#E8DCC8;
  --blanco:#FFFFFF;
  --sombra:0 4px 20px rgba(27,42,74,.08);
  --sombra-hover:0 10px 30px rgba(27,42,74,.15);
  --radio:16px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;background:var(--papel);color:var(--tinta);line-height:1.6}
.serif{font-family:'Libre Caslon Text',Georgia,serif}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
.contenedor{max-width:1200px;margin:0 auto;padding:0 24px}

/* ── Iconos (reemplazan emojis de UI) ──────────────────────── */
.ico-svg{display:inline-block;width:1em;height:1em;stroke-width:2;vertical-align:-0.15em;flex-shrink:0}
.bloque-cabeza h2 svg,.cabecera-pagina h1 svg,.newsletter h3 svg{width:0.75em;height:0.75em;vertical-align:-0.08em}
.badge-cat,.badge-hoy{display:flex;align-items:center;gap:4px}
.chip-filtro{display:inline-flex;align-items:center;gap:6px}
.footer-inner a.link-icono{display:flex;align-items:center;gap:8px}
.paso .num svg{width:20px;height:20px}

/* ── Barra superior de promesa ─────────────────────────────── */
.barra-promesa{background:var(--tinta);color:#fff;text-align:center;font-size:13px;padding:8px 16px}
.barra-promesa b{color:var(--subrayador)}

/* ── Header ────────────────────────────────────────────────── */
header.principal{position:sticky;top:0;z-index:50;background:rgba(250,244,234,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--borde)}
.header-inner{display:flex;align-items:center;gap:28px;padding:14px 24px;max-width:1200px;margin:0 auto}
.logo{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;flex-shrink:0}
.logo .leo{font-family:'Libre Caslon Text',serif;font-weight:700;font-size:30px;letter-spacing:1px}
.logo .leo .punto{color:var(--coral)}
.logo .libros{font-size:13px;letter-spacing:4px;text-transform:uppercase;color:var(--gris)}
.logo .bajada{flex-basis:100%;display:block;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--gris);margin-top:-4px}
nav.principal{display:flex;gap:22px;font-size:14.5px;font-weight:500}
nav.principal a{padding:6px 2px;border-bottom:2px solid transparent;transition:.2s}
nav.principal a:hover,nav.principal a.activo{border-color:var(--coral);color:var(--coral-oscuro)}
.header-acciones{margin-left:auto;display:flex;align-items:center;gap:14px}
.buscador{display:flex;align-items:center;background:#fff;border:1px solid var(--borde);border-radius:999px;padding:7px 16px;gap:8px;min-width:210px}
.buscador input{border:none;outline:none;background:transparent;font-family:inherit;font-size:14px;width:100%}
/* Sugerencias en vivo del buscador */
.buscador-sugerencias{display:none;position:absolute;top:calc(100% + 8px);left:0;right:0;min-width:300px;background:#fff;border:1px solid var(--borde);border-radius:14px;box-shadow:0 12px 32px rgba(20,30,60,.14);overflow:hidden;z-index:60}
.buscador-sugerencias.visible{display:block}
.sug-item{display:flex;align-items:center;gap:10px;padding:8px 14px;transition:background .15s}
.sug-item:hover,.sug-item.activo{background:var(--crema,#faf6ef)}
.sug-item img{width:32px;height:46px;object-fit:cover;border-radius:4px;flex:none;background:var(--borde)}
.sug-texto{display:flex;flex-direction:column;min-width:0;flex:1}
.sug-titulo{font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sug-autor{font-size:12px;color:var(--gris,#77808f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sug-precio{font-size:13px;font-weight:700;flex:none}
.sug-ver-todos{display:block;padding:9px 14px;font-size:12.5px;font-weight:600;color:var(--coral-oscuro,#c0432f);border-top:1px solid var(--borde);text-align:center}
.sug-ver-todos:hover{background:var(--crema,#faf6ef)}
.sug-vacio{padding:12px 14px;font-size:13px;color:var(--gris,#77808f)}
.btn-carrito{position:relative;background:var(--tinta);color:#fff;border:none;border-radius:999px;padding:10px 18px;font-weight:600;font-size:14px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:.2s}
.btn-carrito:hover{background:var(--tinta-claro)}
.badge-carrito{position:absolute;top:-7px;right:-7px;background:var(--coral);color:#fff;font-size:11px;font-weight:800;border-radius:999px;min-width:21px;height:21px;display:flex;align-items:center;justify-content:center;padding:0 5px}

/* ── Hero ──────────────────────────────────────────────────── */
.hero{background:var(--tinta);color:#fff;overflow:hidden;position:relative}
.hero-inner{max-width:1200px;margin:0 auto;padding:84px 24px 96px;position:relative;z-index:2}
.hero h1{font-family:'Libre Caslon Text',serif;font-size:clamp(42px,6.5vw,76px);line-height:1.08;font-weight:700;max-width:640px}
.hero h1 em{font-style:normal;color:var(--coral);position:relative;white-space:nowrap}
.hero p.sub{margin-top:22px;font-size:18px;color:#C7D0E2;max-width:520px}
.hero p.sub b{color:#fff}
.hero-ctas{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap}
.hero-libros{position:absolute;right:64px;bottom:64px;display:flex;align-items:flex-end;gap:0;z-index:3}
/* Resplandor cálido detrás de los libros */
.hero-libros::before{content:"";position:absolute;inset:-15% -12%;background:radial-gradient(ellipse at 55% 68%,rgba(255,107,53,.30) 0%,rgba(255,197,61,.10) 45%,transparent 70%);filter:blur(6px);pointer-events:none}
.hero-libros .libro-3d{position:relative;width:calc(var(--w,150px)*1.2);margin-left:-8px;transform:rotate(var(--rot,0deg)) translateY(var(--dy,0));border-radius:4px 10px 10px 4px;transition:transform .3s ease,filter .3s ease;will-change:transform}
.hero-libros .libro-3d:first-child{margin-left:0}
.hero-libros .libro-3d:nth-child(1){z-index:4}
.hero-libros .libro-3d:nth-child(2){z-index:3}
.hero-libros .libro-3d:nth-child(3){z-index:2}
.hero-libros .libro-3d:nth-child(4){z-index:1}
.hero-libros .libro-3d img{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:inherit;display:block;
  /* canto de páginas (derecha/abajo) + sombra ambiental */
  box-shadow:
    2px 2px 0 -1px #F6EFE2, 3px 3px 0 0 #CDC3AE,
    5px 5px 0 -1px #F6EFE2, 6px 6px 0 0 #CDC3AE,
    8px 8px 0 -1px #F6EFE2, 9px 9px 0 0 #B8AD94,
    18px 26px 38px rgba(0,0,0,.45), 6px 10px 18px rgba(0,0,0,.35)}
/* Curvatura del lomo + brillo de tapa */
.hero-libros .libro-3d::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(0,0,0,.32) 0%,rgba(255,255,255,.14) 3.5%,rgba(0,0,0,.12) 7%,transparent 12%),
             linear-gradient(118deg,rgba(255,255,255,.14) 0%,transparent 32%)}
.hero-libros .libro-3d:hover,.hero-libros .libro-3d:focus-visible{transform:rotate(0deg) translateY(calc(var(--dy,0px) - 14px));filter:brightness(1.06);z-index:5}
.hero-libros .libro-3d:focus-visible{outline:3px solid var(--subrayador);outline-offset:4px}
@media(max-width:1180px){.hero-libros{gap:16px;right:20px}.hero-libros .libro-3d{width:calc(var(--w,150px)*.78)}}
@media(max-width:1080px){.hero p.sub{max-width:420px}}
@media(max-width:980px){.hero-libros .libro-3d:first-child{display:none}.hero-libros .libro-3d{width:calc(var(--w,150px)*.7)}}
@media(max-width:760px){
  .hero-libros{position:static;display:flex;justify-content:center;align-items:flex-end;gap:12px;padding:0 24px 40px;inset:auto}
  .hero-libros::before{display:none}
  .hero-libros .libro-3d,.hero-libros .libro-3d:first-child{margin-left:0;width:84px !important;display:block}
  .hero-libros .libro-3d:nth-child(odd){transform:rotate(-4deg)}
  .hero-libros .libro-3d:nth-child(even){transform:rotate(4deg)}
  .hero-libros .libro-3d img{box-shadow:2px 2px 0 -1px #F6EFE2,3px 3px 0 0 #CDC3AE,8px 12px 18px rgba(0,0,0,.35)}
  .hero-libros .libro-3d:nth-child(4){display:none}
}
@media(prefers-reduced-motion:reduce){.hero-libros .libro-3d{transition:none}}

/* ── Botones ───────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:999px;padding:14px 28px;font-family:inherit;font-size:15px;font-weight:700;cursor:pointer;transition:.2s}
.btn-coral{background:var(--coral);color:#fff}
.btn-coral:hover{background:var(--coral-oscuro);transform:translateY(-2px)}
.btn-fantasma{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.35)}
.btn-fantasma:hover{border-color:#fff}
.btn-tinta{background:var(--tinta);color:#fff}
.btn-tinta:hover{background:var(--tinta-claro)}
.btn-chico{padding:9px 18px;font-size:13.5px}

/* ── Barra USP ─────────────────────────────────────────────── */
.usp{background:var(--coral);color:#fff}
.usp-inner{max-width:1200px;margin:0 auto;padding:16px 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;text-align:center}
.usp-item{font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:9px}
.usp-item span.ico{font-size:20px}

/* ── Secciones ─────────────────────────────────────────────── */
section.bloque{padding:64px 0}
.bloque-cabeza{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:30px;flex-wrap:wrap}
.bloque-cabeza h2{font-family:'Libre Caslon Text',serif;font-size:clamp(26px,3.5vw,36px);font-weight:700}
.bloque-cabeza .claim{color:var(--gris);font-size:15px;margin-top:4px}
.ver-todo{font-weight:700;font-size:14px;color:var(--coral-oscuro);white-space:nowrap}
.ver-todo:hover{text-decoration:underline}

/* ── Grilla de libros ──────────────────────────────────────── */
.grilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:24px}
.tarjeta{background:#fff;border-radius:var(--radio);overflow:hidden;box-shadow:var(--sombra);transition:.25s;display:flex;flex-direction:column;position:relative}
.tarjeta:hover{transform:translateY(-5px);box-shadow:var(--sombra-hover)}
.portada{aspect-ratio:2/3;position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:18px;color:#fff;overflow:hidden}
.portada-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0}
.portada::before{content:"";position:absolute;left:10px;top:0;bottom:0;width:2px;background:rgba(255,255,255,.28);z-index:2}
/* Con portada real cargada: ocultar el texto de la portada simulada (quedaría duplicado encima) */
.portada:has(.portada-img.cargada) .p-titulo,
.portada:has(.portada-img.cargada) .p-autor,
.portada:has(.portada-img.cargada) .p-marca{display:none}
.portada:has(.portada-img.cargada)::before{display:none}
.portada .p-titulo{font-family:'Libre Caslon Text',serif;font-size:19px;line-height:1.25;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.25);position:relative;z-index:1}
.portada .p-autor{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;opacity:.9;position:relative;z-index:1}
.portada .p-marca{position:absolute;bottom:10px;right:12px;font-size:10px;letter-spacing:2px;opacity:.55;z-index:1}
.badges-top{position:absolute;top:12px;left:12px;right:12px;z-index:2;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:6px}
.badge-hoy{background:var(--subrayador);color:var(--tinta);font-size:11px;font-weight:800;padding:5px 10px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.18);white-space:nowrap;margin-left:auto}
.badge-cat{background:rgba(27,42,74,.78);color:#fff;font-size:11px;font-weight:600;padding:5px 10px;border-radius:999px;white-space:nowrap}
.tarjeta-info{padding:16px 18px 18px;display:flex;flex-direction:column;gap:5px;flex:1}
.tarjeta-info .t-titulo{font-weight:700;font-size:15.5px;line-height:1.3}
.tarjeta-info .t-autor{color:var(--gris);font-size:13px}
.precios{display:flex;align-items:baseline;gap:9px;margin-top:auto;padding-top:10px}
.precio{font-family:'Libre Caslon Text',serif;font-size:21px;font-weight:700}
.precio-antes{color:var(--gris);text-decoration:line-through;font-size:13.5px}
.tarjeta .btn{margin:0 18px 18px;padding:11px}

/* ── Banner escolar ────────────────────────────────────────── */
.banner-escolar{background:linear-gradient(120deg,var(--tinta) 0%,var(--tinta-claro) 100%);border-radius:24px;color:#fff;padding:48px;display:flex;align-items:center;gap:40px;flex-wrap:wrap;position:relative;overflow:hidden}
.banner-escolar-texto{flex:1 1 380px;min-width:0}
.banner-escolar-arte{flex:none;width:min(240px,34%);margin:0 auto;transform:rotate(-4deg)}
.banner-escolar-arte svg{width:100%;height:auto}
@media(max-width:560px){.banner-escolar-arte{width:170px;margin-top:8px}}
.banner-escolar h3{font-family:'Libre Caslon Text',serif;font-size:clamp(24px,3vw,34px);max-width:560px;line-height:1.25}
.banner-escolar h3 mark{background:var(--subrayador);color:var(--tinta);padding:0 8px;border-radius:6px}
.banner-escolar p{color:#C7D0E2;margin-top:10px;max-width:520px}

/* ── Cómo funciona ─────────────────────────────────────────── */
.pasos{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.paso{background:#fff;border-radius:var(--radio);padding:30px;box-shadow:var(--sombra);position:relative}
.paso .num{position:absolute;top:-16px;left:26px;background:var(--coral);color:#fff;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:17px;box-shadow:0 4px 10px rgba(255,107,53,.4)}
.paso h4{margin:14px 0 8px;font-size:17px}
.paso p{color:var(--gris);font-size:14px}

/* ── Testimonios ───────────────────────────────────────────── */
.testimonios{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.testimonio{background:#fff;border-radius:var(--radio);padding:28px;box-shadow:var(--sombra)}
.testimonio .estrellas{color:var(--subrayador);font-size:17px;letter-spacing:2px}
.testimonio p{margin:12px 0 16px;font-size:14.5px;font-style:italic;color:var(--tinta)}
.testimonio .quien{font-size:13px;color:var(--gris);font-weight:600}

/* ── Newsletter ────────────────────────────────────────────── */
.newsletter{background:var(--subrayador);border-radius:24px;padding:48px;text-align:center}
.newsletter h3{font-family:'Libre Caslon Text',serif;font-size:clamp(22px,3vw,30px)}
.newsletter p{color:#6B5618;margin:10px auto 24px;max-width:480px;font-size:15px}
.newsletter form{display:flex;gap:10px;max-width:460px;margin:0 auto;flex-wrap:wrap;justify-content:center}
.newsletter input{flex:1;min-width:220px;border:none;border-radius:999px;padding:14px 22px;font-family:inherit;font-size:15px;outline:none}

/* ── Footer ────────────────────────────────────────────────── */
footer.principal{background:var(--tinta);color:#AEB9CF;margin-top:64px}
.footer-inner{max-width:1200px;margin:0 auto;padding:56px 24px 28px;display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:36px}
@media(max-width:800px){.footer-inner{grid-template-columns:1fr 1fr}}
footer .logo .leo{color:#fff;font-size:26px}
footer h5{color:#fff;font-size:14px;letter-spacing:1px;text-transform:uppercase;margin-bottom:14px}
footer a{display:block;font-size:14px;padding:4px 0;transition:.2s}
footer a:hover{color:var(--coral)}
footer .legal{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);margin-top:20px;padding-top:20px;font-size:12.5px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
.medios-pago{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.medios-pago span{background:rgba(255,255,255,.1);border-radius:6px;padding:5px 10px;font-size:11.5px;font-weight:600;color:#fff}

/* ── Página catálogo ───────────────────────────────────────── */
.cabecera-pagina{background:var(--tinta);color:#fff;padding:48px 0 40px}
.cabecera-pagina h1{font-family:'Libre Caslon Text',serif;font-size:clamp(30px,4.5vw,46px)}
.cabecera-pagina p{color:#C7D0E2;margin-top:8px;max-width:640px}
.filtros{display:flex;gap:10px;flex-wrap:wrap;margin:28px 0}
.chip-filtro{background:#fff;border:1.5px solid var(--borde);border-radius:999px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:.2s;color:var(--tinta)}
.chip-filtro:hover{border-color:var(--coral)}
.chip-filtro.activo{background:var(--tinta);color:#fff;border-color:var(--tinta)}
.barra-resultados{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:14px;flex-wrap:wrap}
.barra-resultados .cuenta{color:var(--gris);font-size:14px}
.barra-resultados select{border:1.5px solid var(--borde);border-radius:999px;padding:9px 18px;font-family:inherit;font-size:14px;background:#fff;outline:none;cursor:pointer}

/* ── Página producto ───────────────────────────────────────── */
.producto-layout{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:56px;padding:56px 0;align-items:start}
.producto-portada{border-radius:20px;overflow:hidden;box-shadow:var(--sombra-hover);position:sticky;top:96px}
.producto-portada .portada{aspect-ratio:2/3;padding:30px}
.producto-portada .p-titulo{font-size:30px}
.producto-portada.has-galeria{overflow:visible;border-radius:0;box-shadow:none}
.producto-portada.has-galeria .portada{border-radius:20px;box-shadow:var(--sombra-hover)}
@media(max-width:820px){
  .producto-layout{grid-template-columns:1fr}
  .producto-portada{position:static;top:auto}
}
.galeria-tira{display:flex;gap:8px;padding:10px 4px;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}
.galeria-thumb{width:60px;height:80px;min-width:44px;flex:none;scroll-snap-align:start;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;padding:0;background:#e5e7eb;transition:border-color .15s,transform .15s}
.galeria-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.galeria-thumb.activo{border-color:var(--coral);transform:scale(1.05)}
.galeria-thumb:hover:not(.activo){border-color:var(--tinta)}

/* ── Galería ficha: carrusel + zoom + lightbox ─────────────── */
.portada-img{opacity:0;transition:opacity .35s ease,transform .3s ease}
.portada-img.cargada{opacity:1}
.tarjeta:hover .portada-img{transform:scale(1.05)}
.gal-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:6;width:42px;height:42px;border-radius:50%;border:none;background:rgba(27,42,74,.55);color:#fff;font-size:26px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;opacity:.9}
.gal-nav:hover{background:var(--coral);opacity:1}
.gal-nav.prev{left:10px}
.gal-nav.next{right:10px}
.gal-contador{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);z-index:6;background:rgba(27,42,74,.65);color:#fff;font-size:12px;font-weight:700;padding:4px 12px;border-radius:999px;pointer-events:none}
.gal-zoomable .portada-img{cursor:zoom-in}
.gal-zoomable:hover .portada-img{transform:scale(1.9)}
#lightbox{position:fixed;inset:0;background:rgba(27,42,74,.95);z-index:300;display:none;align-items:center;justify-content:center;padding:32px}
#lightbox.abierto{display:flex}
#lightbox img{max-width:min(92vw,760px);max-height:88vh;object-fit:contain;border-radius:12px;box-shadow:0 24px 80px rgba(0,0,0,.5)}
#lightbox .lb-cerrar{position:absolute;top:14px;right:20px;background:none;border:none;color:#fff;font-size:40px;cursor:pointer;line-height:1;z-index:6}
#lightbox .gal-nav{background:rgba(255,255,255,.16)}
#lightbox .gal-nav:hover{background:var(--coral)}
#lightbox .gal-contador{bottom:22px}
@media(prefers-reduced-motion:reduce){
  .portada-img{transition:opacity .35s ease}
  .tarjeta:hover .portada-img,.gal-zoomable:hover .portada-img{transform:none}
}

/* ── Ficha: CTA sticky móvil + bloque de confianza ─────────── */
.cta-sticky{position:fixed;left:0;right:0;bottom:0;z-index:85;background:#fff;border-top:1px solid var(--borde);box-shadow:0 -8px 24px rgba(27,42,74,.12);padding:10px 16px;display:flex;align-items:center;gap:14px;transform:translateY(110%);transition:transform .25s ease}
.cta-sticky.visible{transform:translateY(0)}
.cta-sticky .btn{flex:none}
.cta-sticky-info{display:flex;flex-direction:column;min-width:0;flex:1}
.cta-sticky-titulo{font-weight:700;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cta-sticky-precio{font-family:'Libre Caslon Text',serif;font-weight:700;font-size:17px}
@media(min-width:821px){.cta-sticky{display:none}}
@media(max-width:820px){body.con-cta-sticky .wsp-flotante{bottom:86px}body.con-cta-sticky .toast{bottom:150px}}
.bloque-confianza{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:8px 14px;background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:14px 18px;margin:0 0 22px;font-size:13.5px;font-weight:600}
@media(max-width:560px){.bloque-confianza{grid-template-columns:1fr}}

/* ── Micro-interacciones carrito ───────────────────────────── */
@keyframes pulso-badge{0%{transform:scale(1)}40%{transform:scale(1.5)}100%{transform:scale(1)}}
.badge-carrito.pulso{animation:pulso-badge .5s ease}
.btn.agregado{background:#16a34a!important}
.toast.visible{pointer-events:auto}
.toast-accion{background:var(--coral);border:none;color:#fff;font-weight:700;font-size:13px;border-radius:999px;padding:5px 12px;margin-left:6px;cursor:pointer;font-family:inherit}
.toast-accion:hover{background:var(--coral-oscuro)}
.carrito-item .mini{position:relative;overflow:hidden}
.carrito-item .mini img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:8px}
.envio-progreso{margin-bottom:12px}
.envio-progreso-txt{font-size:13px;margin-bottom:6px}
.envio-progreso-txt b{color:var(--coral-oscuro)}
.envio-barra{height:8px;background:var(--papel-oscuro);border-radius:999px;overflow:hidden}
.envio-barra span{display:block;height:100%;background:linear-gradient(90deg,var(--coral),var(--subrayador));border-radius:999px;transition:width .35s ease}
.carrito-entrega{font-size:12.5px;color:var(--gris);margin-bottom:10px;text-align:center}
.miga{font-size:13px;color:var(--gris);padding-top:24px}
.miga a:hover{color:var(--coral)}
.producto-info h1{font-family:'Libre Caslon Text',serif;font-size:clamp(28px,4vw,42px);line-height:1.15}
.producto-info .autor{color:var(--gris);font-size:17px;margin-top:6px}
.producto-info .precios{padding:18px 0 6px}
.producto-info .precio{font-size:36px}
.cuota-envio{font-size:13.5px;color:var(--gris)}
.aviso-hoy{background:#fff;border:2px solid var(--coral);border-radius:var(--radio);padding:18px 22px;margin:22px 0;display:flex;gap:14px;align-items:center}
.aviso-hoy .ico{font-size:30px}
.aviso-hoy b{color:var(--coral-oscuro)}
.aviso-hoy .detalle{font-size:13.5px;color:var(--gris)}
.acciones-producto{display:flex;gap:12px;margin:10px 0 26px;flex-wrap:wrap}
.ficha{background:#fff;border-radius:var(--radio);padding:24px;box-shadow:var(--sombra);margin-top:18px}
.ficha h3{font-size:16px;margin-bottom:12px}
.ficha table{width:100%;border-collapse:collapse;font-size:14px}
.ficha td{padding:8px 0;border-bottom:1px solid var(--papel-oscuro)}
.ficha td:first-child{color:var(--gris);width:38%}
.descripcion-larga{margin:18px 0;color:var(--tinta);font-size:15.5px;max-width:640px}
.resena{background:var(--papel-oscuro);border-left:4px solid var(--coral);border-radius:12px;padding:18px 22px;margin:18px 0;max-width:640px}
.resena h3{font-size:15px;margin-bottom:8px}
.resena p{color:var(--tinta);font-size:15px;line-height:1.6;font-style:italic}

/* ── Formato / ediciones (variantes) ───────────────────────── */
.chip-formato{display:inline-flex;align-items:center;background:var(--tinta);color:#fff;font-size:11.5px;font-weight:700;letter-spacing:.3px;padding:4px 11px;border-radius:999px;white-space:nowrap}
.producto-info .precios{align-items:center;gap:14px}
.formato-resumen{color:var(--gris);font-size:14.5px;line-height:1.55;margin:2px 0 4px;max-width:48ch}
.card-ediciones{margin-top:6px;font-size:12.5px;font-weight:600;color:var(--coral-oscuro)}
.ediciones-bloque{padding-top:0}
.ediciones-intro{color:var(--gris);font-size:15px;margin:-8px 0 18px;max-width:62ch}
.ediciones{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.edicion-item{display:flex;flex-direction:column;align-items:flex-start;gap:9px;background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:18px;box-shadow:var(--sombra);transition:.2s}
.edicion-item:hover{transform:translateY(-3px);box-shadow:var(--sombra-hover);border-color:var(--coral)}
.edicion-titulo{font-weight:700;font-size:14px;color:var(--tinta)}
.edicion-precio{font-family:'Libre Caslon Text',serif;font-size:22px;font-weight:700;color:var(--tinta)}
.edicion-resumen{font-size:13px;color:var(--gris);line-height:1.5}

/* ── Carrito (drawer) ──────────────────────────────────────── */
.carrito-velo{position:fixed;inset:0;background:rgba(27,42,74,.45);z-index:90;opacity:0;pointer-events:none;transition:.25s}
.carrito-velo.abierto{opacity:1;pointer-events:auto}
.carrito-panel{position:fixed;top:0;right:-440px;width:min(420px,100vw);height:100dvh;background:#fff;z-index:100;display:flex;flex-direction:column;transition:right .3s ease;box-shadow:-10px 0 40px rgba(0,0,0,.18)}
.carrito-panel.abierto{right:0}
.carrito-cabeza{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--borde)}
.carrito-cabeza h3{font-family:'Libre Caslon Text',serif;font-size:21px}
.cerrar-carrito{background:none;border:none;font-size:26px;cursor:pointer;color:var(--gris);line-height:1}
.carrito-items{flex:1;overflow-y:auto;padding:18px 24px;display:flex;flex-direction:column;gap:16px}
.carrito-item{display:flex;gap:14px;align-items:center}
.carrito-item .mini{width:52px;height:76px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Libre Caslon Text',serif;font-size:15px;font-weight:700}
.carrito-item .datos{flex:1;min-width:0}
.carrito-item .datos b{font-size:14px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.carrito-item .datos span{font-size:13px;color:var(--gris)}
.control-cant{display:flex;align-items:center;gap:10px;margin-top:5px}
.control-cant button:not(.quitar-item){width:26px;height:26px;border-radius:50%;border:1.5px solid var(--borde);background:#fff;cursor:pointer;font-weight:700;font-size:14px;line-height:1}
.control-cant button:not(.quitar-item):hover{border-color:var(--coral);color:var(--coral)}
.quitar-item{background:none;border:none;color:var(--gris);font-size:12px;cursor:pointer;text-decoration:underline;margin-left:auto;padding:6px 2px;white-space:nowrap}
.carrito-vacio{text-align:center;color:var(--gris);padding:48px 20px;font-size:14.5px}
.carrito-vacio .ico{font-size:44px;display:block;margin-bottom:12px}
.carrito-pie{border-top:1px solid var(--borde);padding:20px 24px;background:var(--papel)}
.linea-envio{display:flex;justify-content:space-between;font-size:13.5px;color:var(--gris);margin-bottom:6px}
.linea-total{display:flex;justify-content:space-between;font-size:18px;font-weight:800;margin-bottom:14px}
.carrito-pie .btn{width:100%}
.nota-checkout{font-size:11.5px;color:var(--gris);text-align:center;margin-top:10px}

/* ── WhatsApp flotante ─────────────────────────────────────── */
.wsp-flotante{position:fixed;bottom:24px;right:24px;z-index:80;background:#25D366;color:#fff;width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;box-shadow:0 8px 24px rgba(0,0,0,.25);transition:.2s}
.wsp-flotante:hover{transform:scale(1.08)}

/* ── Toast ─────────────────────────────────────────────────── */
.toast{position:fixed;bottom:96px;right:24px;background:var(--tinta);color:#fff;padding:14px 22px;border-radius:12px;font-size:14px;font-weight:600;z-index:120;box-shadow:var(--sombra-hover);opacity:0;transform:translateY(10px);transition:.3s;pointer-events:none}
.toast.visible{opacity:1;transform:translateY(0)}
.toast b{color:var(--subrayador)}

/* ── Página envíos ─────────────────────────────────────────── */
.tabla-envios{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radio);overflow:hidden;box-shadow:var(--sombra);margin:24px 0}
.tabla-envios th{background:var(--tinta);color:#fff;text-align:left;padding:14px 20px;font-size:14px}
.tabla-envios td{padding:14px 20px;border-top:1px solid var(--papel-oscuro);font-size:14.5px}
.tabla-envios tr td:last-child{font-weight:700}
.faq-item{background:#fff;border-radius:var(--radio);box-shadow:var(--sombra);margin-bottom:14px;overflow:hidden}
.faq-item summary{padding:18px 24px;font-weight:700;font-size:15px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
.faq-item summary::after{content:"+";font-size:22px;color:var(--coral)}
.faq-item[open] summary::after{content:"–"}
.faq-item .faq-cuerpo{padding:0 24px 20px;color:var(--gris);font-size:14.5px}

/* ── Inventario: badges de stock ───────────────────────────── */
.badge-stock{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:3px 8px;border-radius:20px;letter-spacing:.3px;position:absolute;bottom:44px;left:10px;z-index:4}
.badge-stock.agotado{background:rgba(30,30,30,.82);color:#fff}
.badge-stock.pocas{background:rgba(245,158,11,.92);color:#fff}
.tarjeta-agotada .portada{filter:saturate(.4) brightness(.85)}
.tarjeta-agotada .precio{opacity:.5}
.carrito-item-agotado{opacity:.65;border-left:3px solid #f59e0b;padding-left:10px}
.aviso-agotado{color:#d97706;font-size:12px;font-weight:600;display:block;margin-top:4px}
.carrito-todo-agotado{color:var(--gris);font-size:13.5px;text-align:center;padding:8px 0}
/* Botón "Avísame" — tono neutro para diferenciarlo de CTA primario */
.btn-avisa{background:var(--tinta-suave,#6b7280)!important;color:#fff!important;opacity:.85}
.btn-avisa:hover{opacity:1}

/* ── Modal "Avísame cuando llegue" ─────────────────────────── */
.avisa-overlay{position:fixed;inset:0;background:rgba(10,15,26,.55);z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(2px)}
.avisa-modal{background:#fff;border-radius:16px;padding:32px 28px 28px;max-width:380px;width:100%;box-shadow:0 24px 60px rgba(0,0,0,.22);position:relative;text-align:center}
.avisa-cerrar{position:absolute;top:12px;right:16px;background:none;border:none;font-size:22px;cursor:pointer;color:var(--gris);line-height:1}
.avisa-titulo{font-size:18px;font-weight:800;margin:0 0 6px}
.avisa-libro{font-size:14px;color:var(--gris);margin:0 0 18px}
.avisa-input{width:100%;padding:12px 16px;border:1.5px solid #d1d5db;border-radius:10px;font-size:15px;margin-bottom:12px;box-sizing:border-box;outline:none;transition:.2s}
.avisa-input:focus{border-color:var(--coral)}
.avisa-btn{width:100%}

/* ── Responsive header ─────────────────────────────────────── */
@media(max-width:880px){
  nav.principal{display:none}
  .buscador{min-width:0;flex:1}
}
@media(max-width:560px){
  .buscador{display:none}
  .hero-inner{padding:56px 24px 24px}
  .banner-escolar{padding:32px 24px}
  section.bloque{padding:44px 0}

  /* Catálogo en 2 columnas: portadas a media altura, scroll más ágil */
  .grilla{grid-template-columns:repeat(2,1fr);gap:14px}
  .portada{padding:12px}
  .portada .p-titulo{font-size:15px}
  .portada .p-autor{font-size:10px}
  .tarjeta-info{padding:12px 12px 14px}
  .tarjeta-info .t-titulo{font-size:14px}
  .tarjeta .btn{margin:0 12px 12px;padding:9px;font-size:13px}
}
