/* Tienda de productos digitales */
.shop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,340px));justify-content:center;gap:22px;margin-top:38px}
.shop-card{background:#fff;border:1px solid rgba(107,50,55,.09);border-radius:22px;box-shadow:0 12px 35px rgba(60,37,39,.06);overflow:hidden;display:flex;flex-direction:column}
.shop-cover{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--paper)}
.shop-body{padding:24px;display:flex;flex-direction:column;gap:6px;flex:1}
.shop-body h3{font-size:24px;margin:0}
.shop-body p{color:var(--muted);margin:0 0 8px;flex:1}
.shop-price{font-family:Georgia,serif;font-size:28px;color:var(--burgundy);margin-bottom:8px}
.shop-body .btn{width:100%}
.cart{max-width:640px;margin:34px auto 0}
.cart h3{margin-bottom:12px}
.cart-items{list-style:none;margin:0;padding:0}
.cart-items li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(107,50,55,.1)}
.cart-items .cart-name{flex:1;min-width:0;overflow-wrap:anywhere}
.cart-remove{background:none;border:none;color:#b3261e;font:inherit;font-size:14px;text-decoration:underline;cursor:pointer;padding:10px 4px;min-height:44px}
.cart-alert{margin:16px 0 0;padding:14px 16px;border-radius:12px;background:#fdecea;border:1px solid #f3b8b3;color:#7a1f1a;font-weight:700;font-size:15px;line-height:1.45}
.cart-total{display:flex;justify-content:space-between;font-size:20px;padding:14px 0 6px;color:var(--deep)}
.cart .btn{width:100%;margin-top:10px}
.shop-done ul{list-style:none;padding:0;margin:0}
.shop-done li{margin-bottom:10px}
#tienda,#shop-done,#cart{scroll-margin-top:96px}
@media(max-width:560px){.shop-grid{grid-template-columns:1fr}}

/* --- Páginas /productos, /productos/<slug> y /checkout --- */
.pagina-tienda .notice{font-size:13px;color:var(--muted);margin-top:14px}
.pagina-tienda label{display:block;font-weight:700;margin:16px 0 7px}
.pagina-tienda input{width:100%;padding:13px 14px;border:1px solid #d9c8bf;border-radius:12px;background:#fffdfb;font:inherit;font-size:16px;color:var(--text)}
.shop-body h3 a{color:inherit}
.shop-cover-link{display:block}
.shop-cover-vacia{display:grid;place-items:center;font-size:56px;color:var(--rose)}
.shop-body .btn + .btn{margin-top:8px}
.producto-detalle{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:start;max-width:1000px}
.producto-detalle.sin-imagen{grid-template-columns:1fr;max-width:720px}
.producto-cover{width:100%;border-radius:22px;display:block;box-shadow:0 22px 60px rgba(73,45,45,.14);background:var(--paper)}
.producto-info h1{font-size:clamp(30px,4.4vw,46px)}
.producto-precio{font-family:Georgia,serif;font-size:38px;color:var(--burgundy);margin:6px 0 18px}
.producto-info .btn{width:100%}
.producto-volver{display:inline-block;margin-bottom:6px}
.producto-otros{display:block;text-align:center;margin-top:14px}
.cart-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:16px;z-index:25;display:flex;align-items:center;gap:14px;background:var(--deep);color:#fff;padding:8px 8px 8px 20px;border-radius:999px;box-shadow:0 12px 30px rgba(60,37,39,.3);max-width:calc(100% - 24px);white-space:nowrap}
.cart-bar[hidden]{display:none}
.cart-bar .btn{padding:10px 18px;min-height:44px;background:#fff;color:var(--burgundy);border-color:#fff}
.checkout-vacio{text-align:center}
.checkout-vacio p{color:var(--muted)}
.pagina-tienda .quote{padding:44px;border-left:3px solid var(--gold);background:#fff;border-radius:16px;max-width:820px;margin:34px auto 0;font-family:Georgia,serif;font-size:20px;line-height:1.45;color:var(--deep);text-align:left}
.pagina-tienda .faq{display:grid;gap:12px;max-width:850px;margin:34px auto 0}
@media(max-width:900px){.producto-detalle{grid-template-columns:1fr;gap:26px}}
@media(max-width:560px){.pagina-tienda .quote{padding:26px;font-size:18px}.cart-bar{gap:10px;padding-left:16px;font-size:14px}}

/* #oferta se parte en dos para intercalar la vidriera: tarjeta de precio (#oferta) → #tienda →
   beneficios y cierre (#oferta-detalle). Si la vidriera está oculta (sin productos o sin PayPal),
   las dos mitades se pegan y el espaciado queda idéntico al de antes de partirla. */
#oferta-detalle .cards{margin-top:0}
#oferta:has(+ #tienda[hidden]){padding-bottom:0}
#tienda[hidden] + #oferta-detalle{padding-top:0}
#tienda[hidden] + #oferta-detalle .cards{margin-top:38px}
/* El párrafo del botón "Ver todos los productos" traía 18px de margen inferior que sumaban al espaciado de la sección. */
#tienda .shop-grid + p{margin-bottom:0}
