/* Extensiones del sitio dinámico: tienda, carrito, menú "Más", mensajes y utilidades. */

.nav-links{ gap:22px; font-size:.92rem; }
.nav-more{ position:relative; }
.nav-more-menu{
  display:none; position:absolute; top:100%; right:0; min-width:220px; z-index:60;
  background:var(--card); border:1px solid var(--line); box-shadow:0 10px 24px rgba(30,35,40,.12); padding:8px 0;
}
.nav-more:hover .nav-more-menu, .nav-more:focus-within .nav-more-menu{ display:block; }
.nav-more-menu a{ display:block; padding:10px 18px; border:none !important; white-space:nowrap; }
.nav-more-menu a:hover{ background:var(--linen-deep); }
.cart-badge{ background:var(--brand); color:var(--on-brand); border-radius:100px; font-size:.75rem; font-weight:700; padding:1px 7px; }
@media (max-width:900px){
  .nav-more-menu{ display:block; position:static; box-shadow:none; border:none; background:transparent; padding:0; }
  .nav-more-btn{ display:none !important; }
  .nav-more{ width:100%; }
  .nav-more-menu a{ padding:14px 28px; border-bottom:1px solid var(--line) !important; }
  .nav-links.open{ max-height:80vh; overflow:auto; }
}

.flash{ padding:12px 16px; border-radius:3px; margin-bottom:12px; font-size:.95rem; border:1px solid; }
.flash-ok{ background:#eaf5e6; border-color:#a9d39a; color:#25521a; }
.flash-err{ background:#fbe9e7; border-color:#e6a79f; color:#7a1f14; }

.wa-float{
  position:fixed; right:18px; bottom:18px; z-index:70; width:56px; height:56px; border-radius:50%;
  background:var(--brand); display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 18px rgba(30,35,40,.25);
}
.wa-float:hover{ background:var(--brand-dark); }

.btn-sm{ padding:9px 16px; font-size:.88rem; }
.prose{ max-width:70ch; }
.prose p, .prose li{ color:var(--ink-soft); }
.prose h3{ margin-top:1.4em; }
.md-list{ padding-left:1.2em; list-style:disc; margin:0 0 1em; }
.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:56px; }
@media (max-width:820px){ .two-col{ grid-template-columns:1fr; gap:32px; } }

/* imágenes de producto */
.pm, .pcard-media, .hero-media, .item-main{ background:var(--linen-deep); border:1px solid var(--line); overflow:hidden; display:flex; align-items:center; justify-content:center; }
.pm{ aspect-ratio:4/3; }
.pm img, .pcard-media img, .hero-media img, .item-main img{ width:100%; height:100%; object-fit:cover; display:block; }
.pm-empty .ph-svg{ width:34%; max-width:96px; }
.pcard-media{ aspect-ratio:16/10; margin-bottom:20px; }
.hero-media{ aspect-ratio:4/3; }
.item-main{ aspect-ratio:1/1; }
.thumbs{ display:flex; gap:10px; margin-top:10px; flex-wrap:wrap; }
.thumbs img{ width:74px; height:74px; object-fit:cover; border:1px solid var(--line); }
.home-products{ grid-template-columns:repeat(4,1fr); }
.photo-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:14px; }
.photo-grid img{ width:100%; aspect-ratio:4/3; object-fit:cover; border:1px solid var(--line); }
.photo-grid figcaption{ font-size:.88rem; color:var(--ink-soft); padding-top:6px; }
.photo-grid figure{ margin:0; }
.post-hero{ width:100%; margin:18px 0 26px; border:1px solid var(--line); }
.post-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:24px; }
.post-card{ display:block; background:var(--card); border:1px solid var(--line); text-decoration:none; color:var(--ink); }
.post-card img{ width:100%; aspect-ratio:16/9; object-fit:cover; }
.post-card div{ padding:18px 20px 22px; }
.post-card small{ color:var(--ink-soft); }
.post-card h3{ margin:.3em 0; }

/* tienda */
.shop-filters{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:26px; }
.shop-filters input, .shop-filters select{ padding:11px 13px; border:1px solid var(--line); background:#fff; font-family:inherit; font-size:.95rem; min-width:200px; }
.shop-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:20px; }
.shop-card{ background:var(--card); border:1px solid var(--line); display:flex; flex-direction:column; }
.shop-card a{ text-decoration:none; color:var(--ink); }
.shop-card-body{ padding:16px 18px 20px; display:flex; flex-direction:column; gap:8px; flex:1; }
.shop-card h3{ font-size:1.15rem; margin:0; }
.price{ font-size:1.1rem; } .price s{ color:var(--ink-soft); font-size:.9rem; } .price b{ font-weight:700; }
.price-lg{ font-size:1.6rem; margin:10px 0; } .price-lg small{ font-size:.8rem; color:var(--ink-soft); }
.out{ color:#7a1f14; font-weight:600; font-size:.9rem; }
.stock-ok{ color:#25521a; font-weight:600; font-size:.9rem; }
.item-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:48px; }
@media (max-width:820px){ .item-wrap{ grid-template-columns:1fr; } }
.buy-row{ display:flex; gap:10px; margin:14px 0; }
.buy-row input{ width:80px; padding:12px; border:1px solid var(--line); font-size:1rem; }

.table-wrap{ overflow-x:auto; }
.cart-table{ width:100%; border-collapse:collapse; }
.cart-table th, .cart-table td{ text-align:left; padding:14px 8px; border-bottom:1px solid var(--line); font-size:.95rem; }
.cart-table input{ width:70px; padding:8px; border:1px solid var(--line); }
.link-btn{ background:none; border:none; color:var(--brand-dark); cursor:pointer; font-weight:600; text-decoration:underline; font-family:inherit; }
.cart-foot{ display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:20px; margin-top:20px; }
.cart-total{ text-align:right; font-size:1.2rem; } .cart-total small{ display:block; color:var(--ink-soft); font-size:.8rem; }

.checkout-wrap{ display:grid; grid-template-columns:1.4fr .8fr; gap:32px; align-items:start; margin-top:20px; }
@media (max-width:860px){ .checkout-wrap{ grid-template-columns:1fr; } }
.choice label{ display:block; padding:12px 14px; border:1px solid var(--line); background:#fff; margin-bottom:8px; cursor:pointer; font-size:.95rem; }
.order-box{ background:var(--card); border:1px solid var(--line); padding:26px; position:sticky; top:96px; }
.sum-row{ display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-bottom:1px solid var(--line); font-size:.93rem; }
.sum-row.total{ font-size:1.2rem; border-bottom:none; }
.notice{ background:var(--card); border:1px solid var(--line); border-left:5px solid var(--brand); padding:18px 22px; margin:20px 0; }
.notice.ok{ border-left-color:#4c9a3a; }
.status-pill{ display:inline-block; padding:5px 14px; border-radius:100px; font-size:.82rem; font-weight:700; background:var(--linen-deep); }
.st-paid,.st-completed{ background:#dcefd5; } .st-pending{ background:#fde9b8; } .st-cancelled{ background:#f6d4cf; } .st-shipped,.st-preparing{ background:#d6e4f2; }
