/* =====================================================================
   TIENDA: capa común sobre estilos.css (encabezado, tarjetas, filas,
   pie, modales). Misma paleta: azul #0052cc, naranja #DC6803.
   ===================================================================== */
:root {
    --t-primario: #0052cc;
    --t-primario-oscuro: #003d99;
    --t-primario-suave: #e8f0fe;
    --t-acento: #DC6803;
    --t-acento-oscuro: #b55502;
    --t-texto: #111827;
    --t-texto-2: #4b5563;
    --t-texto-3: #9ca3af;
    --t-borde: #e5e7eb;
    --t-fondo: #f8f9fa;
    --t-superficie: #fff;
    --t-exito: #16a34a;
    --t-peligro: #dc2626;
    --t-radio: 14px;
    --t-radio-sm: 10px;
    --t-sombra: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 3px rgba(16, 24, 40, .06);
    --t-sombra-alta: 0 12px 32px rgba(16, 24, 40, .12);
    --t-cabecera: 72px;
}

body.tienda { color: var(--t-texto); background: var(--t-fondo) !important; overflow-x: hidden; }
.tienda h1, .tienda h2, .tienda h3, .tienda h4 { color: var(--t-texto); }
.tienda { --bs-link-color-rgb: 0, 82, 204; --bs-link-hover-color-rgb: 0, 61, 153; --bs-primary-rgb: 0, 82, 204; }
.tienda .btn-primary { --bs-btn-bg: var(--t-primario); --bs-btn-border-color: var(--t-primario); --bs-btn-hover-bg: var(--t-primario-oscuro); --bs-btn-hover-border-color: var(--t-primario-oscuro); --bs-btn-active-bg: var(--t-primario-oscuro); --bs-btn-disabled-bg: var(--t-primario); --bs-btn-disabled-border-color: var(--t-primario); }
.tienda .btn { border-radius: var(--t-radio-sm); font-weight: 500; }
.tienda .form-control, .tienda .form-select { border-radius: var(--t-radio-sm); border-color: #d1d5db; }
.tienda .form-control:focus, .tienda .form-select:focus { border-color: var(--t-primario); box-shadow: 0 0 0 .2rem rgba(0, 82, 204, .15); }
.tienda .card { border: 1px solid var(--t-borde); border-radius: var(--t-radio); box-shadow: var(--t-sombra); }
.tienda .card:hover { transform: none; }
.tienda-saltar { position: absolute; z-index: 2000; left: 1rem; top: .5rem; background: #fff; padding: .5rem 1rem; border-radius: 8px; }
.tienda-contenido { min-height: 50vh; }

/* ---------- Encabezado ---------- */
.tienda-cabecera { position: sticky; top: 0; z-index: 1030; box-shadow: 0 1px 0 var(--t-borde), 0 4px 16px rgba(16, 24, 40, .04); }
.tienda-banner { text-align: center; font-size: .88rem; padding: .45rem 0; overflow: hidden; max-height: 60px; transition: max-height .25s ease, padding .25s ease; }
.tienda-banner a { color: #fff; text-decoration: underline; }
.tienda-cabecera.compacta .tienda-banner { max-height: 0; padding: 0; }
.tienda-nav { padding: .6rem 0; font-family: Inter, sans-serif; }
.tienda-nav .container { gap: .5rem 1rem; flex-wrap: wrap; }
.tienda-logo { height: 40px; width: auto; max-width: 170px; object-fit: contain; }
.tienda-links .nav-link { color: var(--t-texto-2); font-weight: 600; padding: .5rem .75rem !important; border-radius: 8px; }
.tienda-links .nav-link:hover, .tienda-links .nav-link.active { color: var(--t-texto); background: var(--t-fondo); }
.tienda-buscador { position: relative; flex: 1 1 280px; max-width: 520px; margin: 0; }
.tienda-buscador > i { position: absolute; left: .9rem; top: 50%; transform: translateY(-50%); color: var(--t-texto-3); pointer-events: none; z-index: 2; }
.tienda-buscador .form-control { padding-left: 2.4rem; background: var(--t-fondo); border-color: transparent; height: 42px; border-radius: 999px; }
.tienda-buscador .form-control:focus { background: #fff; }
.tienda-buscador .buscador-dropdown { margin-top: .4rem; }
.tienda-acciones { gap: .25rem; }
.tienda-icono { position: relative; display: inline-flex !important; align-items: center; justify-content: center; min-width: 42px; height: 42px; border-radius: 999px; color: var(--t-texto) !important; font-size: 1.25rem; padding: 0 .55rem !important; }
.tienda-icono:hover { background: var(--t-fondo); }
.tienda-burbuja { position: absolute; top: 2px; right: 0; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; background: var(--t-acento); color: #fff; font-size: .7rem; font-weight: 700; line-height: 19px; text-align: center; }
.tienda-avatar { width: 32px; height: 32px; border-radius: 50%; background: var(--t-primario); color: #fff; font-size: .78rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.tienda-carrito-menu { width: 360px; max-width: calc(100vw - 2rem); border-radius: var(--t-radio); border: 1px solid var(--t-borde); overflow: hidden; }
.tienda-carrito-menu #cartDropdownContent { max-height: 70vh; overflow-y: auto; }
.tienda-nav .dropdown-menu { border-radius: var(--t-radio-sm); border-color: var(--t-borde); }
.tienda-nav .dropdown-item { padding: .5rem 1rem; }
@media (max-width: 991.98px) {
    .tienda-nav .navbar-brand { margin-right: auto; }
    .tienda-buscador { flex: 1 1 100%; max-width: none; order: 10; }
    .tienda-links { padding: .5rem 0; }
    .navbar-collapse { flex-basis: 100%; }
    .tienda-carrito-menu.show { position: fixed !important; inset: auto 0 0 0 !important; transform: none !important; width: 100vw; max-width: 100vw; border-radius: 18px 18px 0 0; box-shadow: var(--t-sombra-alta); }
}
@media (max-width: 575.98px) {
    .tienda-logo { height: 34px; max-width: 130px; }
}

/* ---------- Títulos y secciones ---------- */
.tienda-titulo-seccion { font-size: clamp(1.35rem, 2.4vw, 1.75rem); font-weight: 700; letter-spacing: -.01em; margin: 0; }
.tienda-seccion { padding: 3rem 0; }
.tienda-migas { font-size: .85rem; margin-bottom: 1.25rem; }
.tienda-migas .breadcrumb { margin: 0; }
.tienda-migas a { color: var(--t-texto-2); text-decoration: none; }
.tienda-migas a:hover { color: var(--t-primario); }

/* ---------- Tarjeta de producto ---------- */
.tienda-tarjeta { background: var(--t-superficie); border: 1px solid var(--t-borde); border-radius: var(--t-radio); overflow: hidden; display: flex; flex-direction: column; height: 100%; transition: box-shadow .2s ease, transform .2s ease; }
.tienda-tarjeta:hover { box-shadow: var(--t-sombra-alta); transform: translateY(-2px); }
.tienda-tarjeta-foto { position: relative; display: block; aspect-ratio: 1 / 1; background: #f3f4f6; overflow: hidden; }
.tienda-tarjeta-foto img, .tienda-tarjeta-foto .tienda-sin-foto { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.tienda-tarjeta:hover .tienda-tarjeta-foto img { transform: scale(1.04); }
.tienda-sin-foto { display: flex; align-items: center; justify-content: center; color: var(--t-texto-3); font-size: 2.2rem; background: #f3f4f6; }
.tienda-badges { position: absolute; top: .6rem; left: .6rem; display: flex; flex-direction: column; align-items: flex-start; gap: .3rem; }
.tienda-badges .badge { font-weight: 600; font-size: .72rem; padding: .35em .6em; border-radius: 6px; }
.tienda-en-carrito { position: absolute; top: .6rem; right: .6rem; background: #fff; color: var(--t-exito); border-radius: 999px; font-size: .75rem; font-weight: 700; padding: .2rem .55rem; box-shadow: var(--t-sombra); }
.tienda-tarjeta-cuerpo { padding: .9rem 1rem 1rem; display: flex; flex-direction: column; gap: .3rem; flex: 1; }
.tienda-tarjeta-marca { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--t-acento-oscuro); font-weight: 600; }
.tienda-tarjeta-nombre { font-size: .98rem; font-weight: 600; line-height: 1.35; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.7em; }
.tienda-tarjeta-nombre a { color: var(--t-texto); text-decoration: none; }
.tienda-tarjeta-nombre a:hover { color: var(--t-primario); }
.tienda-tarjeta-precio { display: flex; align-items: baseline; flex-wrap: wrap; gap: .1rem .5rem; margin-bottom: .6rem; }
.tienda-precio { font-weight: 700; font-size: 1.08rem; color: var(--t-texto); font-variant-numeric: tabular-nums; }
.tienda-precio-antes { color: var(--t-texto-3); text-decoration: line-through; font-size: .85rem; }

/* Grilla del listado */
.tienda-grilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 1.1rem; }
@media (max-width: 575.98px) {
    .tienda-grilla { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
    .tienda-tarjeta-cuerpo { padding: .7rem; }
    .tienda-tarjeta-nombre { font-size: .9rem; }
    .tienda-tarjeta .btn { font-size: .8rem; }
}

/* ---------- Fila deslizable ---------- */
.tienda-fila { padding: 2.5rem 0 1rem; }
.tienda-fila-cabecera { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.tienda-fila-link { font-weight: 600; text-decoration: none; white-space: nowrap; font-size: .92rem; }
.tienda-fila-flecha { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--t-borde); background: #fff; color: var(--t-texto); display: inline-flex; align-items: center; justify-content: center; }
.tienda-fila-flecha:hover { background: var(--t-fondo); }
.tienda-fila-flecha:disabled { opacity: .35; }
.tienda-fila-pista { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 3 * 1.1rem) / 4); gap: 1.1rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: .25rem .1rem 1rem; }
.tienda-fila-pista::-webkit-scrollbar { display: none; }
.tienda-fila-item { scroll-snap-align: start; min-width: 0; }
@media (max-width: 991.98px) { .tienda-fila-pista { grid-auto-columns: calc((100% - 2 * 1.1rem) / 3); } }
@media (max-width: 767.98px) {
    .tienda-fila-pista { grid-auto-columns: 46%; gap: .75rem; }
    .tienda-fila-flecha { display: none; }
}

/* ---------- Novedades y pie ---------- */
.tienda-novedades { background: #fff; border-top: 1px solid var(--t-borde); padding: 2.5rem 0; margin-top: 3rem; }
.tienda-novedades .newsletter-form { display: flex; gap: .5rem; }
.tienda-novedades .newsletter-input { border-radius: var(--t-radio-sm); height: 46px; }
@media (max-width: 575.98px) { .tienda-novedades .newsletter-form { flex-direction: column; } }
.tienda-pie { background: #fff; border-top: 1px solid var(--t-borde); padding: 3rem 0 1.5rem; font-family: Inter, sans-serif; }
.tienda-pie p, .tienda-pie a { color: var(--t-texto-2); font-size: .9rem; }
.tienda-pie .footer-links a { color: var(--t-texto-2); display: inline-flex; align-items: center; padding: .15rem 0; word-break: break-word; }
.tienda-pie .footer-links a:hover { color: var(--t-primario); }
.tienda-pie .footer-section-title { color: var(--t-texto); font-weight: 700; font-size: .85rem; text-transform: uppercase; letter-spacing: .05em; }
.tienda-pie .footer-bottom { gap: 1rem; flex-wrap: wrap; }
.tienda-pie .payment-icons i { font-size: 1.6rem; color: var(--t-texto-3); }
.tienda-whatsapp { position: fixed; right: 18px; bottom: 18px; z-index: 1020; width: 54px; height: 54px; border-radius: 50%; background: #25d366; color: #fff !important; display: flex; align-items: center; justify-content: center; font-size: 1.6rem; box-shadow: 0 8px 24px rgba(37, 211, 102, .35); transition: transform .15s ease; }
.tienda-whatsapp:hover { transform: scale(1.06); }

/* ---------- Modales de ingreso y registro ---------- */
.tienda-modal { border: 0; border-radius: 18px; box-shadow: var(--t-sombra-alta); }
.tienda-modal .tienda-logo { height: 44px; }
.tienda-modal .form-label { font-weight: 500; font-size: .9rem; }
.tienda .divider { display: flex; align-items: center; gap: .75rem; color: var(--t-texto-3); font-size: .85rem; margin: 1.2rem 0; }
.tienda .divider::before, .tienda .divider::after { content: ""; flex: 1; height: 1px; background: var(--t-borde); }
.tienda-toasts { z-index: 1090; }

/* ---------- Estados vacíos y utilidades ---------- */
.tienda-vacio { text-align: center; padding: 3rem 1rem; color: var(--t-texto-2); }
.tienda-vacio > i { font-size: 2.8rem; color: var(--t-texto-3); display: block; margin-bottom: .8rem; }
.tienda-caja { background: #fff; border: 1px solid var(--t-borde); border-radius: var(--t-radio); box-shadow: var(--t-sombra); padding: 1.5rem; }
@media (max-width: 575.98px) { .tienda-caja { padding: 1.1rem; } }
.tienda-esqueleto { background: linear-gradient(90deg, #eef0f3 25%, #f6f7f9 37%, #eef0f3 63%); background-size: 400% 100%; animation: tienda-brillo 1.4s ease infinite; border-radius: var(--t-radio); }
@keyframes tienda-brillo { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }

/* ---------- Portada ---------- */
.tienda .hero { min-height: min(72vh, 620px); }
.tienda .hero-box { padding: clamp(1.5rem, 4vw, 3rem); box-shadow: var(--t-sombra-alta); border-radius: 18px; }
.tienda .hero .titulo { font-size: clamp(2rem, 4.4vw, 3rem); line-height: 1.12; margin-bottom: 1rem; }
.tienda .hero .text { font-size: clamp(1rem, 1.6vw, 1.15rem); line-height: 1.5; color: var(--t-texto-2); }
@media (max-width: 767.98px) {
    .tienda .hero { min-height: 0; padding: 12rem 0 1.5rem; align-items: flex-end !important; }
    .tienda .hero-box { margin: 0; }
}
.tienda-beneficios { background: #fff; border-bottom: 1px solid var(--t-borde); padding: 1.25rem 0; }
.tienda-beneficio { display: flex; align-items: center; gap: .9rem; }
.tienda-beneficio > i { width: 46px; height: 46px; border-radius: 12px; background: var(--t-primario-suave); color: var(--t-primario); display: inline-flex; align-items: center; justify-content: center; font-size: 1.3rem; flex: 0 0 auto; }
.tienda-beneficio strong { display: block; font-size: .95rem; }
.tienda-beneficio span { display: block; font-size: .85rem; color: var(--t-texto-2); }
.tienda-categorias { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1rem; }
.tienda-categoria { position: relative; display: block; aspect-ratio: 4 / 3; border-radius: var(--t-radio); overflow: hidden; background: #e5e7eb; text-decoration: none; }
.tienda-categoria img, .tienda-categoria .tienda-sin-foto { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.tienda-categoria:hover img { transform: scale(1.05); }
.tienda-categoria::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.65) 100%); }
.tienda-categoria-texto { position: absolute; z-index: 1; left: 1rem; right: 1rem; bottom: .8rem; color: #fff; }
.tienda-categoria-texto strong { display: block; font-size: 1.05rem; }
.tienda-categoria-texto small { opacity: .85; }
@media (max-width: 575.98px) { .tienda-categorias { grid-template-columns: repeat(2, 1fr); gap: .7rem; } }

/* ---------- Listado de productos ---------- */
.tienda-listado-cabecera { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; flex-wrap: wrap; margin-bottom: .75rem; }
.tienda-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1rem; min-height: 4px; align-items: center; }
.tienda-chip { border: 1px solid var(--t-borde); background: #fff; border-radius: 999px; padding: .25rem .4rem .25rem .8rem; font-size: .84rem; color: var(--t-texto); display: inline-flex; align-items: center; gap: .2rem; }
.tienda-chip:hover { border-color: var(--t-peligro); color: var(--t-peligro); }
.tienda-filtros .offcanvas-body { display: flex; }
@media (min-width: 992px) {
    .tienda-filtros { position: sticky; top: calc(var(--t-cabecera) + 1.5rem); background: #fff; border: 1px solid var(--t-borde); border-radius: var(--t-radio); padding: 1.1rem; }
    .tienda-filtros .offcanvas-header { display: none; }
    .tienda-filtros .offcanvas-body { padding: 0; }
}
.tienda-filtro-grupo { margin-bottom: 1.1rem; }
.tienda-filtro-grupo h3 { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--t-texto-3); font-weight: 700; margin: 0 0 .4rem; }
.tienda-filtro { display: flex; align-items: center; gap: .55rem; padding: .35rem .5rem; border-radius: 8px; cursor: pointer; margin: 0; font-size: .92rem; color: var(--t-texto-2); }
.tienda-filtro:hover { background: var(--t-fondo); }
.tienda-filtro input { accent-color: var(--t-primario); width: 16px; height: 16px; flex: 0 0 auto; }
.tienda-filtro span { flex: 1; }
.tienda-filtro small { color: var(--t-texto-3); font-variant-numeric: tabular-nums; }
.tienda-filtro.activo { color: var(--t-texto); font-weight: 600; background: var(--t-primario-suave); }
.tienda mark { background: #fef08a; padding: 0 .1em; border-radius: 3px; }
.tienda .pagination .page-link { border-radius: 8px !important; margin: 0 .15rem; border-color: var(--t-borde); color: var(--t-texto); min-width: 38px; text-align: center; }
.tienda .pagination .active .page-link { background: var(--t-primario); border-color: var(--t-primario); color: #fff; }

/* ---------- Detalle de producto ---------- */
.tienda-galeria-principal { position: relative; display: block; aspect-ratio: 1 / 1; border-radius: 18px; overflow: hidden; background: #fff; border: 1px solid var(--t-borde); }
.tienda-galeria-principal img, .tienda-galeria-principal .tienda-sin-foto { width: 100%; height: 100%; object-fit: contain; }
.tienda-galeria-zoom { position: absolute; right: .8rem; bottom: .8rem; width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--t-texto); display: flex; align-items: center; justify-content: center; box-shadow: var(--t-sombra); }
.tienda-galeria-miniaturas { display: flex; gap: .6rem; margin-top: .8rem; overflow-x: auto; padding-bottom: .2rem; }
.tienda-galeria-miniaturas button { flex: 0 0 72px; height: 72px; padding: 0; border: 2px solid transparent; border-radius: 12px; overflow: hidden; background: #fff; }
.tienda-galeria-miniaturas button.activa { border-color: var(--t-primario); }
.tienda-galeria-miniaturas img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 992px) { .tienda-ficha { position: sticky; top: calc(var(--t-cabecera) + 1.5rem); } }
.tienda-ficha-nombre { font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 700; letter-spacing: -.015em; margin: .25rem 0 .2rem; line-height: 1.15; }
.tienda-ficha-precio { display: flex; align-items: baseline; flex-wrap: wrap; gap: .3rem .75rem; }
.tienda-precio.grande { font-size: clamp(1.6rem, 3vw, 2rem); }
.tienda-ficha-transferencia { color: var(--t-exito); font-size: .92rem; margin: .35rem 0 1.25rem; }
.tienda-ficha-compra { padding: 1.25rem 0; border-top: 1px solid var(--t-borde); border-bottom: 1px solid var(--t-borde); }
.tienda-ficha-etiqueta { font-size: .92rem; font-weight: 600; margin-bottom: .5rem; }
.tienda-opciones { display: flex; flex-wrap: wrap; gap: .5rem; }
.tienda-opcion { min-width: 64px; padding: .5rem .9rem; border: 1.5px solid var(--t-borde); background: #fff; border-radius: 10px; font-weight: 500; color: var(--t-texto); }
.tienda-opcion:hover { border-color: var(--t-texto-2); }
.tienda-opcion.activa { border-color: var(--t-primario); background: var(--t-primario-suave); color: var(--t-primario); }
.tienda-opcion.agotada { color: var(--t-texto-3); text-decoration: line-through; background: #f9fafb; }
.tienda-color { width: 40px; height: 40px; border-radius: 50%; padding: 3px; border: 2px solid transparent; background: #fff; }
.tienda-color span { display: block; width: 100%; height: 100%; border-radius: 50%; border: 1px solid rgba(0,0,0,.12); }
.tienda-color.activa { border-color: var(--t-primario); }
.tienda-color.agotada { opacity: .35; }
.tienda-stock { font-size: .9rem; font-weight: 500; margin: 0 0 .9rem; }
.tienda-stock.hay { color: var(--t-exito); }
.tienda-stock.pocas { color: var(--t-acento-oscuro); }
.tienda-stock.sin { color: var(--t-peligro); }
.tienda-cantidad { display: inline-flex; align-items: stretch; border: 1.5px solid var(--t-borde); border-radius: 10px; overflow: hidden; background: #fff; }
.tienda-cantidad button { border: 0; background: none; width: 42px; font-size: 1.1rem; color: var(--t-texto-2); }
.tienda-cantidad button:hover { background: var(--t-fondo); }
.tienda-cantidad input { width: 54px; border: 0; text-align: center; font-weight: 600; -moz-appearance: textfield; }
.tienda-cantidad input::-webkit-outer-spin-button, .tienda-cantidad input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.tienda-ficha-info { list-style: none; padding: 0; margin: 1.25rem 0; display: grid; gap: .9rem; }
.tienda-ficha-info li { display: flex; gap: .8rem; align-items: flex-start; }
.tienda-ficha-info i { color: var(--t-primario); font-size: 1.25rem; margin-top: .1rem; }
.tienda-ficha-info strong { display: block; font-size: .92rem; }
.tienda-ficha-info span { font-size: .85rem; color: var(--t-texto-2); }
.tienda-compartir { display: flex; align-items: center; gap: .4rem; }
.tienda-compartir a, .tienda-compartir button { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--t-borde); background: #fff; color: var(--t-texto-2); display: inline-flex; align-items: center; justify-content: center; }
.tienda-compartir a:hover, .tienda-compartir button:hover { color: var(--t-primario); border-color: var(--t-primario); }
.tienda-descripcion { color: var(--t-texto-2); line-height: 1.7; }
.tienda-descripcion img { max-width: 100%; height: auto; border-radius: 10px; }
.tienda-specs { display: grid; grid-template-columns: auto 1fr; gap: .5rem 1rem; margin: 0; font-size: .92rem; }
.tienda-specs dt { color: var(--t-texto-3); font-weight: 500; }
.tienda-specs dd { margin: 0; text-align: right; font-weight: 500; }
.tienda-barra-compra { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1025; background: #fff; border-top: 1px solid var(--t-borde); box-shadow: 0 -6px 20px rgba(16,24,40,.08); padding: .6rem 1rem calc(.6rem + env(safe-area-inset-bottom)); display: flex; align-items: center; justify-content: space-between; gap: 1rem; transform: translateY(110%); transition: transform .2s ease; }
.tienda-barra-compra.visible { transform: none; }
.tienda-barra-compra > div { min-width: 0; }
@media (max-width: 991.98px) { body.con-barra-compra .tienda-whatsapp { bottom: 84px; } }

/* ---------- Carrito ---------- */
.tienda-mini-cabecera { display: flex; justify-content: space-between; align-items: center; padding: .8rem 1rem; border-bottom: 1px solid var(--t-borde); }
.tienda-mini-item { display: flex; align-items: center; gap: .7rem; padding: .6rem 1rem; color: var(--t-texto) !important; text-decoration: none; font-size: .9rem; }
.tienda-mini-item:hover { background: var(--t-fondo); }
.tienda-mini-item img, .tienda-mini-item .tienda-sin-foto { width: 48px; height: 48px; border-radius: 10px; object-fit: cover; flex: 0 0 auto; font-size: 1.1rem; }
.tienda-mini-pie { border-top: 1px solid var(--t-borde); padding: .9rem 1rem; background: #fff; position: sticky; bottom: 0; }
.tienda-carrito-item { display: flex; gap: 1rem; padding: 1.1rem 1.25rem; border-bottom: 1px solid var(--t-borde); }
.tienda-carrito-item:last-child { border-bottom: 0; }
.tienda-carrito-foto { flex: 0 0 96px; height: 96px; border-radius: 12px; overflow: hidden; background: #f3f4f6; }
.tienda-carrito-foto img, .tienda-carrito-foto .tienda-sin-foto { width: 100%; height: 100%; object-fit: cover; }
.tienda-carrito-info { flex: 1; min-width: 0; }
.tienda-carrito-nombre { font-weight: 600; color: var(--t-texto) !important; text-decoration: none; }
.tienda-carrito-nombre:hover { color: var(--t-primario) !important; }
.tienda-carrito-quitar:hover { color: var(--t-peligro) !important; }
.tienda-cantidad-sm button { width: 34px; }
.tienda-cantidad-sm input { width: 44px; height: 34px; }
.tienda-cantidad button:disabled { opacity: .35; }
.tienda-resumen { display: grid; grid-template-columns: 1fr auto; gap: .5rem 0; margin: 0 0 .75rem; font-size: .95rem; }
.tienda-resumen dt { font-weight: 400; color: var(--t-texto-2); }
.tienda-resumen dd { margin: 0; padding-left: 1rem; text-align: right; font-variant-numeric: tabular-nums; }
.tienda-resumen .tienda-resumen-total { font-size: 1.2rem; font-weight: 700; color: var(--t-texto); padding-top: .6rem; border-top: 1px solid var(--t-borde); }
@media (min-width: 992px) { .tienda-resumen-fijo { position: sticky; top: calc(var(--t-cabecera) + 1.5rem); } }
@media (max-width: 575.98px) {
    .tienda-carrito-item { padding: .9rem; gap: .75rem; }
    .tienda-carrito-foto { flex-basis: 72px; height: 72px; }
}
.min-w-0 { min-width: 0; }
.tienda-resumen dt { white-space: nowrap; }
