:root {
    color-scheme: light;
    --tienda-rojo: #e73346;
    --tienda-rojo-oscuro: #b91f35;
    --tienda-tinta: #171a21;
    --tienda-fondo: #f5f6f8;
}

/* Etapa 7: cuenta de cliente */
.tienda-boton-cuenta { display:inline-flex; min-height:2.75rem; align-items:center; gap:.45rem; padding:.55rem .8rem; border:1px solid #dfe2e8; border-radius:.75rem; color:#282b33; background:#fff; font-size:.8rem; font-weight:750; text-decoration:none; transition:transform .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease; }
.tienda-boton-cuenta i { font-size:1.15rem; }
.tienda-boton-cuenta:hover,.tienda-boton-cuenta.activo { color:var(--tienda-rojo); border-color:var(--tienda-rojo); transform:translateY(-2px); box-shadow:0 .5rem 1rem rgb(231 51 70 / 12%); }
.tienda-cuenta-acceso { max-width:32rem; padding:clamp(1.4rem,4vw,2.25rem); border:1px solid #eceef2; border-radius:1.25rem; background:#fff; box-shadow:0 1.25rem 3rem rgb(24 28 37 / 9%); }
.tienda-cuenta-icono { display:inline-grid; width:3.6rem; height:3.6rem; margin-bottom:.8rem; place-items:center; border-radius:1rem; color:var(--tienda-rojo); background:rgb(231 51 70 / 9%); font-size:1.65rem; }
.tienda-boton-social { display:flex !important; width:100%; min-height:3.1rem; align-items:center; justify-content:center; padding:.82rem 1.1rem !important; border:2px solid transparent !important; border-radius:.85rem !important; font-weight:750; letter-spacing:.01em; text-decoration:none; box-shadow:0 .35rem .9rem rgb(24 28 37 / 7%); transition:transform .2s ease, box-shadow .2s ease, filter .2s ease; }
.tienda-boton-social i { font-size:1.2rem; }
.tienda-boton-social:hover,
.tienda-boton-social:focus-visible { transform:translateY(-2px); box-shadow:0 .75rem 1.35rem rgb(24 28 37 / 15%); filter:saturate(1.08); }
.tienda-boton-social-google { color:#202124 !important; border-color:transparent !important; background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#4285f4 0%,#34a853 35%,#fbbc05 68%,#ea4335 100%) border-box !important; }
.tienda-boton-social-google:hover,.tienda-boton-social-google:focus-visible { color:#202124 !important; background:linear-gradient(#f8fafc,#f8fafc) padding-box,linear-gradient(135deg,#4285f4 0%,#34a853 35%,#fbbc05 68%,#ea4335 100%) border-box !important; }
.tienda-boton-social-google i { color:#4285f4; }
.tienda-boton-social-facebook { color:#fff !important; border-color:#1877f2 !important; background:linear-gradient(135deg,#1877f2,#0d5dcc) !important; }
.tienda-boton-social-facebook:hover,.tienda-boton-social-facebook:focus-visible { color:#fff !important; border-color:#0d5dcc !important; background:linear-gradient(135deg,#2b86ff,#0a4da8) !important; }
.tienda-cuenta-datos { display:grid; gap:.85rem; }
.tienda-cuenta-datos div { padding-bottom:.75rem; border-bottom:1px solid #eceef2; }
.tienda-cuenta-datos div:last-child { padding-bottom:0; border-bottom:0; }
.tienda-cuenta-datos dt { color:#818792; font-size:.72rem; font-weight:750; text-transform:uppercase; letter-spacing:.05em; }
.tienda-cuenta-datos dd { margin:.2rem 0 0; overflow-wrap:anywhere; font-weight:650; }
.tienda-direccion-card { padding:1.1rem; border:1px solid #e5e7ec; border-radius:1rem; background:#fff; box-shadow:0 .6rem 1.5rem rgb(24 28 37 / 5%); }

/* Checkout: cuenta, entrega y datos condicionales */
.checkout-cuenta-opcion,
.checkout-entrega-opcion {
    display: flex;
    min-height: 7.5rem;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: .35rem;
    width: 100%;
    padding: 1rem;
    border: 1px solid #e3e6eb;
    border-radius: .9rem;
    color: #272b34;
    background: #fff;
    text-decoration: none;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease;
}

.checkout-cuenta-opcion:hover,
.checkout-cuenta-opcion:focus-visible,
.checkout-cuenta-opcion.seleccionado,
.checkout-entrega-opcion:hover,
.checkout-entrega-opcion:has(input:checked) {
    border-color: var(--tienda-rojo);
    background: #fff5f6;
    box-shadow: 0 .5rem 1.2rem rgb(231 51 70 / 10%);
    transform: translateY(-1px);
}

.checkout-cuenta-opcion i,
.checkout-entrega-opcion > i {
    color: var(--tienda-rojo);
    font-size: 1.35rem;
}

.checkout-cuenta-opcion strong,
.checkout-cuenta-opcion span,
.checkout-entrega-opcion strong,
.checkout-entrega-opcion small {
    display: block;
}

.checkout-cuenta-opcion span,
.checkout-entrega-opcion small {
    color: #777d88;
    font-size: .75rem;
    line-height: 1.35;
}

.checkout-cuenta-opcion.seleccionado { cursor: default; }
.checkout-cuenta-mensaje { margin-top: .85rem; color: #176a3a; }
.checkout-cuenta-activa { display:flex; align-items:center; gap:.85rem; padding:1rem; border-radius:.9rem; background:#f0fbf4; color:#176a3a; }
.checkout-cuenta-activa > i { font-size:1.5rem; }
.checkout-cuenta-activa strong, .checkout-cuenta-activa span { display:block; }
.checkout-cuenta-activa span { color:#5f7365; font-size:.78rem; }

.checkout-entrega-opciones { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1rem; }
.checkout-entrega-opcion { min-height:6.5rem; flex-direction:row; align-items:flex-start; justify-content:flex-start; gap:.8rem; cursor:pointer; }
.checkout-entrega-opcion input { position:absolute; opacity:0; pointer-events:none; }
.checkout-entrega-opcion > span { min-width:0; }
.checkout-resumen-entrega { display:flex; align-items:center; gap:.6rem; padding:.75rem .85rem; border:1px solid #eceef2; border-radius:.75rem; color:#4d535e; font-size:.82rem; }
.checkout-resumen-entrega i { color:var(--tienda-rojo); font-size:1.1rem; }

@media (max-width: 767.98px) {
    .checkout-entrega-opciones { grid-template-columns: 1fr; }
    .checkout-cuenta-activa { align-items:flex-start; flex-wrap:wrap; }
    .checkout-cuenta-activa .btn { margin-left:2.35rem !important; }
}

@media (max-width: 575.98px) {
    .tienda-boton-cuenta { width:2.75rem; justify-content:center; padding:.5rem; }
}

body {
    min-height: 100vh;
    margin: 0;
    display: flex;
    flex-direction: column;
    color: var(--tienda-tinta);
    background:
        radial-gradient(circle at 82% 14%, rgb(231 51 70 / 12%), transparent 24rem),
        linear-gradient(145deg, #fff 0%, var(--tienda-fondo) 64%, #eceff3 100%);
}

/* Avisos tipo SweetAlert: no desplazan el contenido y entran desde el costado. */
.tienda-alertas { position: fixed; top: 6.5rem; right: 1.25rem; display: grid; gap: .75rem; width: min(390px, calc(100vw - 2.5rem)); z-index: 1090; pointer-events: none; }
.tienda-alerta-flotante { display: grid; grid-template-columns: 2.35rem minmax(0, 1fr) auto; align-items: start; gap: .7rem; padding: 1rem 1.05rem; border: 1px solid transparent; border-radius: 1rem; background: rgb(255 255 255 / 97%); box-shadow: 0 1.1rem 2.7rem rgb(20 24 32 / 18%), 0 0 0 1px rgb(20 24 32 / 4%); pointer-events: auto; animation: tienda-alerta-entra .35s cubic-bezier(.22,1,.36,1) both; }
.tienda-alerta-flotante.saliendo { animation: tienda-alerta-sale .22s ease both; }
.tienda-alerta-icono { display: inline-grid; width: 2.35rem; height: 2.35rem; place-items: center; border-radius: .75rem; font-size: 1.15rem; }
.tienda-alerta-contenido strong { display: block; color: var(--tienda-tinta); font-size: .83rem; font-weight: 800; }
.tienda-alerta-contenido p { margin: .18rem 0 0; color: #626976; font-size: .8rem; line-height: 1.42; }
.tienda-alerta-exito { border-color: #c8ebd1; }
.tienda-alerta-exito .tienda-alerta-icono { color: #1f8740; background: #e9faed; }
.tienda-alerta-advertencia { border-color: #f1ddb4; }
.tienda-alerta-advertencia .tienda-alerta-icono { color: #a36a13; background: #fff3dc; }
.tienda-alerta-cerrar { display: inline-grid; width: 1.8rem; height: 1.8rem; place-items: center; padding: 0; color: #8c929d; border: 0; border-radius: 50%; background: transparent; }
.tienda-alerta-cerrar:hover, .tienda-alerta-cerrar:focus-visible { color: var(--tienda-tinta); background: #f0f1f4; }
@keyframes tienda-alerta-entra { from { opacity: 0; transform: translateX(2.5rem) scale(.95); } to { opacity: 1; transform: translateX(0) scale(1); } }
@keyframes tienda-alerta-sale { to { opacity: 0; transform: translateX(2.5rem) scale(.95); } }
@media (prefers-reduced-motion: reduce) { .tienda-alerta-flotante { animation: none; } }

@media (max-width: 575.98px) {
    .tienda-alertas { top: 5.75rem; right: .75rem; width: calc(100vw - 1.5rem); }
}

main {
    flex: 1;
}

.tienda-barra {
    background: rgb(255 255 255 / 92%);
    border-bottom: 1px solid rgb(23 26 33 / 8%);
    backdrop-filter: blur(14px);
}

.tienda-logo {
    width: min(270px, 56vw);
    height: 58px;
    object-fit: contain;
    object-position: left center;
}

.tienda-enlace-cabecera {
    padding: .55rem .9rem;
    color: #555b67;
    border-radius: .75rem;
    font-weight: 600;
    text-decoration: none;
}

.tienda-enlace-cabecera:hover,
.tienda-enlace-cabecera:focus-visible,
.tienda-enlace-cabecera.activo {
    color: var(--tienda-rojo-oscuro);
    background: rgb(231 51 70 / 8%);
}

.tienda-buscador-cabecera {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .75rem;
    max-width: 760px;
    margin-inline: auto;
    padding: .35rem .35rem .35rem 1rem;
    border: 1px solid #e2e4e9;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 .35rem 1.2rem rgb(23 26 33 / 6%);
}

.tienda-buscador-cabecera input {
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
}

.tienda-buscador-cabecera button {
    padding: .55rem 1.2rem;
    color: #fff;
    border: 0;
    border-radius: 999px;
    background: var(--tienda-rojo);
    font-weight: 700;
}

.tienda-portada {
    min-height: calc(100vh - 82px);
    display: grid;
    place-items: center;
    padding-block: 4rem;
}

.tienda-hero {
    overflow: hidden;
    border-bottom: 1px solid rgb(23 26 33 / 6%);
    background:
        radial-gradient(circle at 80% 30%, rgb(231 51 70 / 16%), transparent 22rem),
        linear-gradient(135deg, #fff, #f4f5f8);
}

.tienda-slider {
    position: relative;
    min-height: clamp(29rem, 48vw, 42rem);
    overflow: hidden;
    color: #fff;
    background: #1b1d24;
}

.tienda-slider-radio {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.tienda-slider-pistas,
.tienda-slide {
    position: absolute;
    inset: 0;
}

.tienda-slide {
    z-index: 0;
    visibility: hidden;
    opacity: 0;
    background:
        var(--slide-imagen),
        linear-gradient(135deg, #3a101c 0%, #e73346 52%, #f6a1ab 100%);
    background-position: center, center;
    background-size: cover, cover;
    background-repeat: no-repeat;
    transition: opacity .35s ease, visibility .35s ease;
    pointer-events: none;
}

.tienda-slide-enlace {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: block;
}

.tienda-slide-2 {
    animation-delay: 6s;
}

.tienda-slide-3 {
    animation-delay: 12s;
}

.tienda-slide-contenido {
    position: relative;
    z-index: 1;
    max-width: 41rem;
    padding-block: 4rem 5rem;
}

.tienda-slide-etiqueta {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: 1.25rem;
    color: #ffd9de;
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.tienda-slide-etiqueta::before {
    width: 1.8rem;
    height: .2rem;
    content: '';
    border-radius: 99rem;
    background: var(--tienda-rojo);
}

.tienda-slide h1 {
    max-width: 39rem;
    margin-bottom: 1.25rem;
    color: #fff;
    font-size: clamp(2.35rem, 5.2vw, 4.8rem);
    font-weight: 850;
    letter-spacing: -.045em;
    line-height: .98;
}

.tienda-slide p {
    max-width: 34rem;
    margin-bottom: 1.75rem;
    color: rgb(255 255 255 / 78%);
    font-size: clamp(1rem, 1.5vw, 1.2rem);
    line-height: 1.6;
}

.tienda-slide .btn-tienda {
    box-shadow: 0 .8rem 1.8rem rgb(0 0 0 / 22%);
}

.tienda-slide-beneficios {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.5rem;
    margin-top: 2rem;
    color: rgb(255 255 255 / 73%);
    font-size: .78rem;
    font-weight: 600;
}

.tienda-slide-beneficios i {
    color: #ffc5cc;
}

.tienda-slider-controles {
    position: absolute;
    right: 0;
    bottom: 1.75rem;
    left: 0;
    z-index: 3;
    display: flex;
    gap: .45rem;
}

.tienda-slider-controles label {
    width: 2.8rem;
    height: .28rem;
    cursor: pointer;
    border-radius: 99rem;
    background: rgb(255 255 255 / 45%);
    transition: width .2s ease, background .2s ease;
}

.tienda-manifiesto {
    padding: 3.25rem 1rem 2.75rem;
    background: #fff;
    border-bottom: 1px solid rgb(23 26 33 / 7%);
}

.tienda-manifiesto-etiqueta {
    margin-bottom: .5rem;
    color: var(--tienda-rojo);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.tienda-manifiesto h2 {
    margin-bottom: .75rem;
    color: #171a21;
    font-size: clamp(1.65rem, 3vw, 2.5rem);
    font-weight: 850;
}

.tienda-manifiesto-subtitulo {
    margin-bottom: 1rem;
    color: var(--tienda-rojo);
    font-size: 1.15rem;
    font-weight: 750;
}

.tienda-manifiesto-texto,
.tienda-manifiesto-frase {
    max-width: 49rem;
    margin-inline: auto;
    color: #626b78;
    line-height: 1.65;
}

.tienda-entrada-catalogo { padding: 2.75rem 1rem 1rem; background: #fff; }
.tienda-entrada-catalogo h1 { max-width: 46rem; margin: .5rem auto .8rem; color: #171a21; font-size: clamp(1.7rem, 3vw, 2.6rem); font-weight: 850; }
.tienda-entrada-catalogo p { max-width: 43rem; margin: 0 auto 1.35rem; color: #68717d; line-height: 1.65; }
.tienda-marcas-catalogo { padding: 1.25rem 1.5rem; border: 1px solid rgb(23 26 33 / 7%); border-radius: 1rem; background: #fff; box-shadow: 0 .6rem 1.8rem rgb(23 26 33 / 5%); }
.tienda-marcas-lista { display: flex; flex-wrap: wrap; gap: .55rem; }
.tienda-marca-enlace { padding: .55rem .85rem; border: 1px solid #e0e3e8; border-radius: .5rem; color: #303641; background: #fafbfc; font-size: .82rem; font-weight: 650; text-decoration: none; }
.tienda-marca-enlace:hover { border-color: var(--tienda-rojo); color: var(--tienda-rojo); background: #fff5f6; }
.tienda-slider-catalogo { min-height: clamp(20rem, 32vw, 30rem); }
.tienda-slider-catalogo .tienda-slide { background-size: cover, cover; }

.tienda-manifiesto-frase {
    margin-top: .75rem;
    color: #171a21;
    font-style: italic;
}

.tienda-slider-controles label:hover,
.tienda-slider-controles label:focus-visible {
    background: #fff;
}

#tienda-slide-1:checked ~ .tienda-slider-controles label[for='tienda-slide-1'],
#tienda-slide-2:checked ~ .tienda-slider-controles label[for='tienda-slide-2'],
#tienda-slide-3:checked ~ .tienda-slider-controles label[for='tienda-slide-3'] {
    width: 4.8rem;
    background: #fff;
}

#tienda-slide-1:focus-visible ~ .tienda-slider-controles label[for='tienda-slide-1'],
#tienda-slide-2:focus-visible ~ .tienda-slider-controles label[for='tienda-slide-2'],
#tienda-slide-3:focus-visible ~ .tienda-slider-controles label[for='tienda-slide-3'] {
    outline: 2px solid #fff;
    outline-offset: 4px;
}

#tienda-slide-1:checked ~ .tienda-slider-pistas .tienda-slide-1,
#tienda-slide-2:checked ~ .tienda-slider-pistas .tienda-slide-2,
#tienda-slide-3:checked ~ .tienda-slider-pistas .tienda-slide-3 {
    z-index: 1;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}

#catalogo-slide-1:checked ~ .tienda-slider-pistas .tienda-slide-1,
#catalogo-slide-2:checked ~ .tienda-slider-pistas .tienda-slide-2,
#catalogo-slide-3:checked ~ .tienda-slider-pistas .tienda-slide-3 { z-index: 1; visibility: visible; opacity: 1; pointer-events: auto; }

@media (prefers-reduced-motion: reduce) {
    .tienda-slide {
        transition: none;
    }

    .tienda-slide-1 {
        visibility: visible;
        opacity: 1;
    }
}

.tienda-hero-panel,
.tienda-filtros-card,
.tienda-galeria-card,
.tienda-detalle-card,
.tienda-contenido-card {
    border: 1px solid rgb(23 26 33 / 7%);
    border-radius: 1.35rem;
    background: rgb(255 255 255 / 94%);
    box-shadow: 0 1rem 2.6rem rgb(23 26 33 / 8%);
}

.tienda-hero-panel {
    position: relative;
    padding: 2rem;
}

.tienda-hero-panel > i {
    display: inline-grid;
    width: 3.5rem;
    height: 3.5rem;
    margin-bottom: 1.5rem;
    place-items: center;
    color: #fff;
    border-radius: 1rem;
    background: var(--tienda-rojo);
    font-size: 1.5rem;
    box-shadow: 0 .75rem 1.8rem rgb(231 51 70 / 28%);
}

.tienda-panel {
    overflow: hidden;
    border: 0;
    border-radius: 1.5rem;
    background: rgb(255 255 255 / 94%);
    box-shadow: 0 1.5rem 4rem rgb(23 26 33 / 12%);
}

.tienda-acento {
    width: 4.5rem;
    height: .35rem;
    border-radius: 99rem;
    background: var(--tienda-rojo);
}

.tienda-distintivo {
    color: var(--tienda-rojo-oscuro);
    background: rgb(231 51 70 / 10%);
}

.tienda-encabezado-seccion {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.tienda-encabezado-seccion span,
.tienda-sobrelinea {
    display: block;
    margin-bottom: .25rem;
    color: var(--tienda-rojo-oscuro);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.tienda-encabezado-seccion h2 {
    margin: 0;
    font-size: clamp(1.45rem, 2.2vw, 2rem);
}

.tienda-encabezado-seccion > a {
    color: var(--tienda-rojo-oscuro);
    font-weight: 700;
    text-decoration: none;
}

.tienda-categoria-card {
    display: flex;
    min-height: 7.5rem;
    height: 100%;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    color: var(--tienda-tinta);
    border: 1px solid rgb(23 26 33 / 7%);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 .7rem 1.8rem rgb(23 26 33 / 6%);
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}

.tienda-categoria-card:hover {
    color: var(--tienda-rojo-oscuro);
    transform: translateY(-3px);
    box-shadow: 0 1rem 2.2rem rgb(23 26 33 / 10%);
}

.tienda-categoria-card img,
.tienda-categoria-icono {
    width: 4.5rem;
    height: 4.5rem;
    flex: 0 0 4.5rem;
    border-radius: .85rem;
    object-fit: cover;
}

.tienda-categoria-icono {
    display: grid;
    place-items: center;
    color: var(--tienda-rojo);
    background: rgb(231 51 70 / 9%);
    font-size: 1.5rem;
}

.tienda-categoria-card strong,
.tienda-categoria-card small {
    display: block;
}

.tienda-categoria-card small {
    display: -webkit-box;
    overflow: hidden;
    margin-top: .3rem;
    color: #737986;
    font-size: .8rem;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.tienda-producto-card {
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border: 1px solid rgb(23 26 33 / 7%);
    border-radius: 1.15rem;
    background: #fff;
    box-shadow: 0 .75rem 2rem rgb(23 26 33 / 7%);
    transition: transform .2s ease, box-shadow .2s ease;
}

.tienda-producto-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 1.2rem 2.8rem rgb(23 26 33 / 11%);
}

.tienda-producto-imagen {
    position: relative;
    display: grid;
    min-height: 16rem;
    overflow: hidden;
    place-items: center;
    background: #f4f5f7;
}

.tienda-producto-imagen img {
    width: 100%;
    height: 16rem;
    object-fit: contain;
    transition: transform .25s ease;
}

.tienda-producto-card:hover .tienda-producto-imagen img {
    transform: scale(1.035);
}

.tienda-producto-imagen > span:not(.tienda-disponibilidad) {
    color: #b7bbc3;
    font-size: 3rem;
}

.tienda-disponibilidad {
    position: absolute;
    top: .85rem;
    right: .85rem;
    padding: .35rem .65rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 800;
}

.tienda-insignia-nuevo {
    position: absolute;
    top: .75rem;
    left: .75rem;
    z-index: 2;
    padding: .22rem .48rem;
    border-radius: 99rem;
    color: #fff;
    background: #ff572f;
    box-shadow: 0 .35rem .8rem rgb(23 26 33 / 18%);
    font-size: .58rem;
    font-weight: 850;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.tienda-producto-imagen > span.tienda-insignia-nuevo {
    color: #fff;
    font-size: .58rem;
}

.tienda-producto-card h3 {
    font-size: 1.08rem;
}

.tienda-opcion-boton { padding: .48rem .75rem; border: 1px solid #d8dce3; border-radius: .55rem; color: #303641; background: #fff; font-size: .82rem; }
.tienda-opcion-boton::before { display: inline-block; width: .65rem; height: .65rem; margin-right: .35rem; border-radius: 50%; background: var(--termino-color, transparent); content: ''; }
.tienda-opcion-boton.activo, .tienda-opcion-boton:hover { border-color: var(--tienda-rojo); color: var(--tienda-rojo); background: #fff4f5; }
.tienda-opcion-boton.sin-existencia,
.tienda-opcion-boton:disabled { cursor: not-allowed; opacity: .5; border-style: dashed; color: #7c828d; background: #f5f6f8; }
.tienda-opcion-boton.sin-existencia:hover,
.tienda-opcion-boton:disabled:hover { border-color: #d8dce3; color: #7c828d; background: #f5f6f8; }
.tienda-opcion-boton small { display: block; margin-top: .15rem; color: #9a5058; font-size: .62rem; font-weight: 700; }

.tienda-disponibilidad.disponible {
    color: #176a3a;
    background: #dcf7e7;
}

.tienda-disponibilidad.agotado {
    color: #5f6470;
    background: #e7e9ed;
}

.tienda-producto-cuerpo {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 1.15rem;
}

.tienda-producto-marca {
    margin-bottom: .25rem;
    color: var(--tienda-rojo-oscuro);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.tienda-producto-cuerpo h3 {
    margin-bottom: .2rem;
    font-size: 1rem;
}

.tienda-producto-cuerpo h3 a {
    color: var(--tienda-tinta);
    text-decoration: none;
}

.tienda-producto-precio {
    display: flex;
    align-items: baseline;
    gap: .45rem;
    margin-top: 1rem;
}

.tienda-producto-precio strong {
    color: var(--tienda-rojo);
    font-size: 1.35rem;
}

.tienda-producto-precio small,
.tienda-producto-precio del {
    color: #858a94;
}

.tienda-catalogo-cabecera {
    border-bottom: 1px solid rgb(23 26 33 / 6%);
    background: linear-gradient(135deg, #fff, #f5f6f8);
}

.tienda-filtros-card {
    position: sticky;
    top: 10.5rem;
    padding: 1.25rem;
}

.tienda-filtros-resumen {
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    list-style: none;
    font-weight: 700;
}

.tienda-filtros-resumen::-webkit-details-marker {
    display: none;
}

.tienda-filtros-resumen::after {
    content: '\F282';
    margin-left: auto;
    padding-left: .75rem;
    font-family: bootstrap-icons, sans-serif;
    font-size: .8rem;
    transition: transform .2s ease;
}

.tienda-filtros-desplegable[open] .tienda-filtros-resumen::after {
    transform: rotate(180deg);
}

.tienda-filtros-contenido {
    padding-top: 1rem;
}

.tienda-estado-vacio {
    padding: 3rem 1.5rem;
    color: #747985;
    border: 1px dashed #d8dbe1;
    border-radius: 1.15rem;
    background: rgb(255 255 255 / 65%);
    text-align: center;
}

.tienda-estado-vacio > i,
.tienda-estado-icono {
    display: inline-grid;
    width: 4rem;
    height: 4rem;
    margin-bottom: 1rem;
    place-items: center;
    color: var(--tienda-rojo);
    border-radius: 50%;
    background: rgb(231 51 70 / 9%);
    font-size: 1.6rem;
}

.tienda-galeria-card,
.tienda-detalle-card,
.tienda-contenido-card {
    padding: 1.25rem;
}

.tienda-galeria-principal {
    display: grid;
    width: 100%;
    aspect-ratio: 1 / 1;
    max-height: 40rem;
    overflow: hidden;
    place-items: center;
    border-radius: 1rem;
    background: #fff;
}

.tienda-imagen-principal,
.tienda-producto-sin-imagen {
    width: 100%;
    height: 100%;
    border-radius: 1rem;
    background: #fff;
    object-fit: contain;
}

.tienda-imagen-principal { padding: .5rem; }

.tienda-producto-sin-imagen {
    display: grid;
    place-items: center;
    align-content: center;
    gap: .75rem;
    color: #a4a8b1;
    font-size: 1rem;
}

.tienda-producto-sin-imagen i {
    font-size: 4rem;
}

.tienda-miniaturas {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .75rem;
    margin-top: .75rem;
}

.tienda-miniatura {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    padding: .15rem;
    border: 1px solid #e1e3e8;
    border-radius: .75rem;
    background: #fff;
    cursor: pointer;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.tienda-miniatura:hover,
.tienda-miniatura:focus-visible,
.tienda-miniatura.activa {
    border-color: var(--tienda-rojo);
    box-shadow: 0 .35rem .85rem rgb(231 51 70 / 14%);
    outline: 0;
    transform: translateY(-1px);
}

.tienda-miniatura img {
    width: 100%;
    height: 100%;
    border-radius: .75rem;
    object-fit: cover;
}

.tienda-detalle-card {
    padding: clamp(1.5rem, 4vw, 2.5rem);
}

.tienda-etiquetas-detalle {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

.tienda-etiqueta-detalle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2rem;
    padding: .45rem .78rem;
    border: 1px solid #e0e3e8;
    border-radius: 999px;
    color: #303641;
    background: #fff;
    font-size: .72rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}

a.tienda-etiqueta-detalle:hover,
a.tienda-etiqueta-detalle:focus-visible {
    border-color: var(--tienda-rojo);
    color: var(--tienda-rojo);
    background: #fff5f6;
}

.tienda-etiqueta-estado {
    border-color: transparent;
}

.tienda-etiqueta-estado.disponible {
    color: #176a3a;
    background: #dcf7e7;
}

.tienda-etiqueta-estado.agotado {
    color: #5f6470;
    background: #e7e9ed;
}

.tienda-precio-detalle {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .6rem;
}

.tienda-precio-detalle strong {
    color: var(--tienda-rojo);
    font-size: clamp(2rem, 5vw, 3rem);
}

.tienda-precio-detalle span {
    color: #176a3a;
    font-size: .8rem;
    font-weight: 700;
}

.tienda-inventario-resumen {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: 1rem;
    border-radius: .9rem;
    background: #f5f6f8;
}

.tienda-inventario-resumen i {
    color: var(--tienda-rojo);
    font-size: 1.4rem;
}

.tienda-inventario-resumen strong,
.tienda-inventario-resumen small {
    display: block;
}

.tienda-inventario-resumen small {
    color: #777d88;
}

.tienda-formulario-carrito {
    padding-top: 1rem;
    border-top: 1px solid #eceef2;
}

.tienda-selector-cantidad {
    display: inline-flex;
    width: min(100%, 13rem);
    align-items: stretch;
    gap: .35rem;
}

.tienda-selector-cantidad .form-control {
    min-width: 0;
    height: 2.75rem;
    border-radius: .45rem;
    text-align: center;
}

.tienda-selector-cantidad-boton {
    display: inline-grid;
    width: 2.75rem;
    min-width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    border: 0;
    border-radius: .35rem;
    color: #fff;
    background: #4d4d4d;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1;
    transition: background-color .15s ease, opacity .15s ease;
}

.tienda-selector-cantidad-boton:hover:not(:disabled),
.tienda-selector-cantidad-boton:focus-visible {
    background: var(--tienda-rojo);
}

.tienda-selector-cantidad-boton:disabled {
    cursor: not-allowed;
    opacity: .4;
}

.tienda-carrito-contador {
    position: absolute;
    top: -.55rem;
    right: -.55rem;
    display: inline-grid;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 .25rem;
    place-items: center;
    color: #fff;
    border: 2px solid #fff;
    border-radius: 999px;
    background: var(--tienda-rojo);
    font-size: .65rem;
    font-weight: 800;
}

.tienda-boton-carrito { position: relative; display: inline-flex; min-height: 2.75rem; align-items: center; gap: .5rem; padding: .55rem .9rem; border: 1px solid var(--tienda-rojo); border-radius: .75rem; color: var(--tienda-rojo); background: #fff; box-shadow: 0 .35rem 1rem rgb(231 51 70 / 10%); font-size: .8rem; font-weight: 750; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.tienda-boton-carrito i { font-size: 1.15rem; }
.tienda-boton-carrito:hover { color: #fff; background: var(--tienda-rojo); transform: translateY(-2px); box-shadow: 0 .6rem 1.2rem rgb(231 51 70 / 22%); }
.tienda-boton-carrito.con-articulos { color: #fff; background: var(--tienda-rojo); }
.tienda-boton-carrito.con-articulos:hover { background: var(--tienda-rojo-oscuro); }
.tienda-boton-carrito.con-articulos .tienda-carrito-contador { background: #171a21; }

.tienda-carrito-card,
.tienda-resumen-carrito {
    overflow: hidden;
    border: 1px solid rgb(23 26 33 / 7%);
    border-radius: 1.15rem;
    background: #fff;
    box-shadow: 0 1rem 2.5rem rgb(23 26 33 / 7%);
}

.tienda-carrito-linea {
    display: grid;
    grid-template-columns: 5.5rem minmax(12rem, 1fr) minmax(6rem, auto) 6.5rem minmax(7.5rem, auto) auto;
    gap: 1rem;
    align-items: center;
    padding: 1.25rem;
    border-bottom: 1px solid #eceef2;
}

.tienda-carrito-linea.con-problema {
    background: #fff9ed;
}

.tienda-carrito-imagen {
    display: grid;
    width: 5.5rem;
    height: 5.5rem;
    place-items: center;
    color: #a5aab3;
    border-radius: .85rem;
    background: #f4f5f7;
    font-size: 1.8rem;
}

.tienda-carrito-imagen img {
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: contain;
}

.tienda-carrito-producto h3 {
    margin: 0 0 .25rem;
    font-size: 1rem;
}

.tienda-carrito-producto h3 a {
    color: var(--tienda-tinta);
    text-decoration: none;
}

.tienda-carrito-producto p,
.tienda-carrito-producto small,
.tienda-carrito-precio span,
.tienda-carrito-precio small,
.tienda-carrito-total span,
.tienda-carrito-total small,
.tienda-carrito-cantidad small {
    display: block;
    margin: 0;
    color: #7b808b;
    font-size: .75rem;
}

.tienda-carrito-precio strong,
.tienda-carrito-total strong {
    display: block;
    white-space: nowrap;
}

.tienda-carrito-precio small {
    color: #176a3a;
}

.tienda-carrito-cantidad label {
    margin-bottom: .3rem;
    font-size: .75rem;
    font-weight: 700;
}

.tienda-carrito-cantidad input {
    min-width: 5rem;
}

.tienda-carrito-problema {
    display: flex;
    gap: .4rem;
    align-items: center;
    margin-top: .55rem;
    color: #9a5a00;
    font-size: .78rem;
    font-weight: 700;
}

.tienda-carrito-quitar span {
    display: none;
}

.tienda-resumen-carrito {
    position: sticky;
    top: 10.5rem;
    padding: 1.5rem;
}

.tienda-totales-carrito {
    margin: 1.25rem 0;
}

.tienda-totales-carrito > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem 0;
    color: #686e79;
    border-bottom: 1px solid #eceef2;
}

.tienda-totales-carrito dt {
    font-weight: 500;
}

.tienda-totales-carrito dd {
    margin: 0;
    color: var(--tienda-tinta);
    font-weight: 700;
}

.tienda-totales-carrito .total {
    padding-top: 1rem;
    color: var(--tienda-tinta);
    border-bottom: 0;
    font-size: 1.05rem;
}

.tienda-totales-carrito .total dd {
    color: var(--tienda-rojo);
    font-size: 1.3rem;
}

.tienda-carrito-vacio {
    max-width: none;
    margin: 0 auto;
    background: #fff;
}

.tienda-carrito-cabecera { text-align: center; }
.tienda-carrito-cabecera .d-flex { justify-content: center !important; }
.tienda-carrito-vacio { padding: 1rem 0; }
.tienda-carrito-vacio-icono { display: inline-grid; width: 4rem; height: 4rem; margin-bottom: 1rem; place-items: center; border-radius: 50%; color: #fff; background: var(--tienda-rojo); font-size: 1.5rem; }
.tienda-carrito-vacio h2 { font-size: clamp(1.65rem, 3vw, 2.35rem); font-weight: 850; text-transform: uppercase; }
.tienda-carrito-vacio > .text-center > p { color: #68717d; }
.tienda-carrito-recomendaciones a { display: block; min-height: 13rem; padding: 2rem 1.35rem; border-radius: 1rem; color: #171a21; background: linear-gradient(145deg, #fff, #f0f1f4); box-shadow: 0 .7rem 1.8rem rgb(23 26 33 / 7%); text-decoration: none; transition: transform .2s ease; }
.tienda-carrito-recomendaciones a:hover { transform: translateY(-4px); }
.tienda-carrito-recomendaciones i { color: var(--tienda-rojo); font-size: 2rem; }
.tienda-carrito-recomendaciones h3 { margin-top: 1.5rem; font-size: 1.1rem; font-weight: 800; }
.tienda-carrito-recomendaciones p { margin-bottom: 0; color: #68717d; font-size: .82rem; line-height: 1.55; }
.tienda-popular-carrito { padding-top: 2rem; border-top: 1px solid #e4e6ea; text-align: center; }
.tienda-popular-carrito h2 { font-size: 1.15rem; }
.tienda-popular-carrito a { padding: .55rem .9rem; border: 1px solid #dde0e5; border-radius: 99rem; color: #303641; text-decoration: none; }
.tienda-beneficios-carrito { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; padding: 1.25rem; border-radius: 1rem; background: #171a21; color: #fff; }
.tienda-beneficios-carrito > div { display: flex; align-items: center; gap: .8rem; }
.tienda-beneficios-carrito i { color: #ff7c8a; font-size: 1.4rem; }
.tienda-beneficios-carrito span, .tienda-beneficios-carrito strong { display: block; }
.tienda-beneficios-carrito span { color: rgb(255 255 255 / 65%); font-size: .75rem; }
.tienda-beneficios-carrito strong { color: #fff; font-size: .85rem; }
@media (max-width: 767.98px) { .tienda-beneficios-carrito { grid-template-columns: 1fr; } }

.tienda-termino {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .4rem .65rem;
    border: 1px solid #dfe1e6;
    border-radius: .65rem;
    background: #fff;
    font-size: .85rem;
}

.tienda-termino i {
    width: .85rem;
    height: .85rem;
    border: 1px solid rgb(23 26 33 / 16%);
    border-radius: 50%;
}

.tienda-beneficios-compra {
    margin-top: 4rem;
    padding-block: 2.75rem;
    border-top: 1px solid #e5e7eb;
    background: #f7f8fa;
}

.tienda-pago-prueba,
.tienda-pago-confirmado {
    padding: 1.25rem;
    border: 1px solid rgb(231 51 70 / 18%);
    border-radius: 1rem;
    background: rgb(231 51 70 / 5%);
}

.tienda-pago-prueba p:not(.tienda-sobrelinea) {
    color: #666d78;
}

.tienda-pago-confirmado {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 1rem;
    border-color: rgb(23 104 61 / 18%);
    background: #eef9f2;
}

.tienda-pago-confirmado > i {
    color: #17683d;
    font-size: 1.75rem;
}

.tienda-pago-confirmado span {
    display: block;
    color: #68736c;
    font-size: .8rem;
}

.tienda-beneficios-compra h2 {
    margin-bottom: 1.5rem;
    color: var(--tienda-tinta);
    font-size: clamp(1.05rem, 1.8vw, 1.3rem);
    font-weight: 800;
    letter-spacing: .025em;
    text-align: center;
    text-transform: uppercase;
}

.tienda-beneficios-compra-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.tienda-beneficio-compra {
    min-height: 9rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.35rem 1rem;
    color: var(--tienda-rojo-oscuro);
    border: 1px solid rgb(231 51 70 / 55%);
    border-radius: .75rem;
    background: #fff;
    text-align: center;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.tienda-beneficio-compra:hover {
    border-color: var(--tienda-rojo);
    box-shadow: 0 .8rem 1.8rem rgb(23 26 33 / 8%);
    transform: translateY(-3px);
}

.tienda-beneficio-compra > i {
    margin-bottom: .75rem;
    color: var(--tienda-rojo);
    font-size: 2.35rem;
    line-height: 1;
}

.tienda-beneficio-compra h3 {
    margin: 0;
    color: var(--tienda-rojo-oscuro);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35;
}

.tienda-beneficio-compra p {
    margin: .45rem 0 0;
    color: #858a95;
    font-size: .82rem;
    line-height: 1.55;
}

.tienda-sucursales {
    padding: 4.5rem 0 4.75rem;
    border-top: 1px solid #e5e7eb;
    background: #fff;
}

.tienda-sucursales-encabezado {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1.75rem;
}

.tienda-sucursales-encabezado h2 {
    margin: .35rem 0 .4rem;
    color: var(--tienda-tinta);
    font-size: clamp(1.45rem, 2.6vw, 2rem);
    font-weight: 850;
    letter-spacing: -.02em;
}

.tienda-sucursales-encabezado p {
    margin: 0;
    color: #737985;
    font-size: .95rem;
}

.tienda-sucursales-controles {
    display: flex;
    flex: 0 0 auto;
    gap: .5rem;
}

.tienda-sucursales-control {
    display: inline-grid;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    border: 1px solid #dfe2e8;
    border-radius: 50%;
    color: var(--tienda-rojo);
    background: #fff;
    font-size: 1rem;
    transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}

.tienda-sucursales-control:hover:not(:disabled),
.tienda-sucursales-control:focus-visible:not(:disabled) {
    color: #fff;
    border-color: var(--tienda-rojo);
    background: var(--tienda-rojo);
    transform: translateY(-2px);
}

.tienda-sucursales-control:disabled {
    color: #b8bdc6;
    background: #f7f8fa;
    cursor: not-allowed;
}

.tienda-sucursales-viewport {
    overflow: hidden;
    outline: none;
}

.tienda-sucursales-viewport:focus-visible {
    border-radius: 1rem;
    box-shadow: 0 0 0 .2rem rgb(231 51 70 / 20%);
}

.tienda-sucursales-pista {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 3rem) / 4);
    gap: 1rem;
    overflow-x: auto;
    padding: .35rem .1rem .75rem;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.tienda-sucursales-pista::-webkit-scrollbar { display: none; }

.tienda-sucursal-card {
    display: flex;
    min-height: 28rem;
    flex-direction: column;
    overflow: hidden;
    scroll-snap-align: start;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 .7rem 1.6rem rgb(23 26 33 / 5%);
    transition: transform .2s ease, box-shadow .2s ease;
}

.tienda-sucursal-card:hover {
    box-shadow: 0 1rem 2rem rgb(23 26 33 / 10%);
    transform: translateY(-4px);
}

.tienda-sucursal-portada {
    display: flex;
    min-height: 13.5rem;
    position: relative;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #f2f3f5;
}

.tienda-sucursal-portada img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 13.5rem;
    object-fit: cover;
    object-position: center;
}

.tienda-sucursal-contenido {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 1.25rem 1.35rem 1.35rem;
}

.tienda-sucursal-contenido h3 {
    margin: 0 0 .8rem;
    color: var(--tienda-tinta);
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.25;
}

.tienda-sucursal-ubicacion,
.tienda-sucursal-telefono {
    display: flex;
    align-items: flex-start;
    gap: .45rem;
    margin: 0 0 .7rem;
    color: #425469;
    font-size: .82rem;
    font-weight: 700;
}

.tienda-sucursal-ubicacion i,
.tienda-sucursal-telefono i { color: var(--tienda-rojo); }

.tienda-sucursal-direccion {
    min-height: 3.6rem;
    margin: 0 0 1rem;
    color: #536272;
    font-size: .8rem;
    line-height: 1.45;
}

.tienda-sucursal-mapa {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    width: fit-content;
    margin-top: auto;
    color: var(--tienda-rojo);
    font-size: .88rem;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: .18em;
}

.tienda-sucursal-mapa:hover { color: var(--tienda-rojo-oscuro); }

.tienda-marcas-franja {
    padding: 2.75rem 0 3rem;
    border-block: 1px solid #e7e9ed;
    background: #fff;
}

.tienda-marcas-encabezado {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
}

.tienda-marcas-encabezado h2 {
    margin: .3rem 0 0;
    color: var(--tienda-tinta);
    font-size: clamp(1.25rem, 2.4vw, 1.7rem);
    font-weight: 850;
    letter-spacing: -.02em;
}

.tienda-marcas-controles { display: flex; flex: 0 0 auto; gap: .45rem; }

.tienda-marcas-control {
    display: inline-grid;
    width: 2.4rem;
    height: 2.4rem;
    place-items: center;
    border: 1px solid #dfe2e8;
    border-radius: 50%;
    color: var(--tienda-rojo);
    background: #fff;
    transition: color .2s ease, background .2s ease, border-color .2s ease;
}

.tienda-marcas-control:hover:not(:disabled),
.tienda-marcas-control:focus-visible:not(:disabled) { color: #fff; border-color: var(--tienda-rojo); background: var(--tienda-rojo); }
.tienda-marcas-control:disabled { color: #b9bec7; background: #f7f8fa; cursor: not-allowed; }
.tienda-marcas-viewport { overflow: hidden; outline: none; }
.tienda-marcas-viewport:focus-visible { border-radius: .75rem; box-shadow: 0 0 0 .2rem rgb(231 51 70 / 18%); }

.tienda-marcas-pista {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: clamp(9rem, 14vw, 11.5rem);
    overflow-x: auto;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.tienda-marcas-pista::-webkit-scrollbar { display: none; }

.tienda-marca-item {
    display: grid;
    min-height: 7rem;
    position: relative;
    place-items: center;
    padding: 1rem .75rem;
    scroll-snap-align: start;
    border-left: 1px solid #e6e8ec;
    color: #777b82;
    background: #fff;
    text-decoration: none;
    transition: color .2s ease, background .2s ease;
}

.tienda-marca-item:last-child { border-right: 1px solid #e6e8ec; }
.tienda-marca-item::after { width: 100%; height: 2px; position: absolute; right: 0; bottom: 0; left: 0; background: transparent; content: ''; transition: background .2s ease; }
.tienda-marca-item:hover, .tienda-marca-item:focus-visible { color: var(--tienda-tinta); background: #fffafa; }
.tienda-marca-item:hover::after, .tienda-marca-item:focus-visible::after { background: var(--tienda-rojo); }

.tienda-marca-wordmark {
    max-width: 100%;
    overflow: hidden;
    color: currentColor;
    font-size: clamp(.78rem, 1.55vw, 1.18rem);
    font-weight: 900;
    letter-spacing: -.045em;
    line-height: 1.05;
    text-align: center;
    text-overflow: ellipsis;
    text-transform: uppercase;
    filter: grayscale(1);
    opacity: .72;
    transition: filter .2s ease, opacity .2s ease;
}

.tienda-marca-item:hover .tienda-marca-wordmark,
.tienda-marca-item:focus-visible .tienda-marca-wordmark { filter: grayscale(0); opacity: 1; }

@media (max-width: 991.98px) {
    .tienda-sucursales-pista { grid-auto-columns: calc((100% - 1rem) / 2); }
}

@media (max-width: 575.98px) {
    .tienda-sucursales { padding-block: 3.5rem; }
    .tienda-sucursales-encabezado { align-items: flex-start; flex-direction: column; }
    .tienda-sucursales-controles { align-self: flex-end; }
    .tienda-sucursales-pista { grid-auto-columns: 88%; }
    .tienda-sucursal-card { min-height: 26rem; }
    .tienda-marcas-encabezado { align-items: flex-start; flex-direction: column; }
    .tienda-marcas-controles { align-self: flex-end; }
    .tienda-marcas-pista { grid-auto-columns: 9.5rem; }
}

.tienda-pie {
    color: #c9ccd2;
    background: #171a21;
    font-size: .85rem;
}

.tienda-pie-legal {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgb(255 255 255 / 15%);
}

.tienda-pie-legal a { margin: 0; font-size: .78rem; }

.tienda-legal {
    padding: 2.25rem 0 5rem;
    background: var(--tienda-fondo);
}

.tienda-legal-document {
    max-width: 980px;
    margin: 0 auto;
    overflow: hidden;
    border: 1px solid rgb(23 26 33 / 7%);
    border-radius: 1.35rem;
    background: #fff;
    box-shadow: 0 1rem 2.6rem rgb(23 26 33 / 8%);
}

.tienda-legal-encabezado {
    padding: clamp(1.6rem, 4vw, 3rem) clamp(1.25rem, 5vw, 4rem);
    border-bottom: 1px solid #eceef2;
    background: linear-gradient(135deg, #fff 0%, #fff6f7 100%);
}

.tienda-legal-encabezado h1 {
    margin: .35rem 0 .6rem;
    color: var(--tienda-tinta);
    font-size: clamp(1.7rem, 4vw, 2.6rem);
    font-weight: 850;
    letter-spacing: -.025em;
}

.tienda-legal-encabezado p { margin: 0; color: #838995; font-size: .82rem; }

.tienda-legal-contenido {
    padding: clamp(1.35rem, 4vw, 3rem) clamp(1.25rem, 5vw, 4rem);
    color: #4f5662;
    font-size: .95rem;
    line-height: 1.75;
}

.tienda-legal-contenido h2 {
    margin: 2rem 0 .6rem;
    color: var(--tienda-tinta);
    font-size: 1.1rem;
    font-weight: 800;
    line-height: 1.35;
}

.tienda-legal-contenido h2:first-child { margin-top: 0; }
.tienda-legal-contenido p { margin: 0 0 1rem; }
.tienda-legal-contenido ul { margin: 0 0 1rem; padding-left: 1.25rem; }
.tienda-legal-contenido li { margin-bottom: .35rem; }
.tienda-legal-contenido a { color: var(--tienda-rojo-oscuro); font-weight: 700; }
.tienda-legal-contenido code { padding: .15rem .35rem; border-radius: .3rem; color: var(--tienda-rojo-oscuro); background: #fff0f2; font-size: .82em; }

.tienda-legal-contacto {
    display: flex;
    align-items: center;
    gap: .85rem;
    margin-top: 2.25rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgb(231 51 70 / 18%);
    border-radius: .85rem;
    color: #5e6672;
    background: #fff6f7;
}

.tienda-legal-contacto > i { color: var(--tienda-rojo); font-size: 1.35rem; }
.tienda-legal-contacto strong, .tienda-legal-contacto span { display: block; }
.tienda-legal-contacto strong { color: var(--tienda-tinta); font-size: .9rem; }
.tienda-legal-contacto span { font-size: .82rem; }

.tienda-aviso-cookies {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    z-index: 1080;
}

.tienda-aviso-cookies[hidden] { display: none; }

.tienda-aviso-cookies-contenido {
    display: flex;
    max-width: 1120px;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    margin: 0 auto;
    padding: 1rem 1.25rem;
    border: 1px solid rgb(23 26 33 / 12%);
    border-radius: 1rem;
    background: rgb(255 255 255 / 98%);
    box-shadow: 0 1rem 3rem rgb(23 26 33 / 20%);
    backdrop-filter: blur(12px);
}

.tienda-aviso-cookies-texto { display: flex; align-items: flex-start; gap: .8rem; }
.tienda-aviso-cookies-icono { display: inline-grid; width: 2.4rem; height: 2.4rem; flex: 0 0 2.4rem; place-items: center; border-radius: .7rem; color: #fff; background: var(--tienda-rojo); font-size: 1.15rem; }
.tienda-aviso-cookies h2 { margin: 0 0 .2rem; color: var(--tienda-tinta); font-size: .95rem; font-weight: 800; }
.tienda-aviso-cookies p { max-width: 720px; margin: 0; color: #606874; font-size: .78rem; line-height: 1.45; }
.tienda-aviso-cookies a { display: inline-flex; align-items: center; gap: .3rem; margin-top: .3rem; color: var(--tienda-rojo-oscuro); font-size: .75rem; font-weight: 750; }
.tienda-aviso-cookies-acciones { display: flex; flex: 0 0 auto; gap: .5rem; }
.tienda-aviso-cookies-acciones .btn { white-space: nowrap; }

@media (max-width: 767.98px) {
    .tienda-pie-legal { flex-direction: column; gap: .45rem; }
    .tienda-aviso-cookies { right: .65rem; bottom: .65rem; left: .65rem; }
    .tienda-aviso-cookies-contenido { align-items: stretch; flex-direction: column; padding: 1rem; }
    .tienda-aviso-cookies-acciones { display: grid; grid-template-columns: 1fr 1fr; }
    .tienda-aviso-cookies-acciones .btn { width: 100%; }
}

.tienda-nav-comercial { flex-wrap: nowrap; gap: 0 !important; white-space: nowrap; }
.tienda-nav-comercial .tienda-enlace-cabecera { padding-inline: .48rem; font-size: .78rem; }

.tienda-barra,
.tienda-barra .container,
.tienda-logo,
.tienda-buscador-cabecera {
    transition: all .22s ease;
}

@media (min-width: 992px) {
    .tienda-barra.compacta {
        box-shadow: 0 .45rem 1.4rem rgb(23 26 33 / 10%);
    }

    .tienda-barra.compacta .container {
        padding-top: .55rem !important;
        padding-bottom: .55rem !important;
    }

    .tienda-barra.compacta .tienda-logo {
        width: 180px;
        height: 42px;
    }

    .tienda-barra.compacta .tienda-buscador-cabecera {
        height: 0;
        margin-top: 0 !important;
        overflow: hidden;
        opacity: 0;
        pointer-events: none;
    }
}

.tienda-pie-logo { width: 12rem; height: auto; filter: brightness(0) invert(1); }
.tienda-pie-slogan { color: #fff; font-size: 1.35rem; font-weight: 800; }
.tienda-pie h2 { margin-bottom: 1rem; color: #fff; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; }
.tienda-pie a { display: block; margin-bottom: .55rem; color: rgb(255 255 255 / 70%); text-decoration: none; }
.tienda-pie a:hover { color: #fff; }
.tienda-pie-acceso { display: inline-block !important; padding: .65rem .9rem; border: 1px solid rgb(255 255 255 / 25%); border-radius: .6rem; color: #fff !important; }
.tienda-pie-base { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid rgb(255 255 255 / 15%); color: rgb(255 255 255 / 55%); font-size: .78rem; }
@media (max-width: 575.98px) { .tienda-pie-base { flex-direction: column; } }

.btn-tienda {
    color: #fff;
    background: var(--tienda-rojo);
    border-color: var(--tienda-rojo);
}

.btn-tienda:hover,
.btn-tienda:focus-visible {
    color: #fff;
    background: var(--tienda-rojo-oscuro);
    border-color: var(--tienda-rojo-oscuro);
}

.btn-tienda:disabled {
    color: #fff;
    border-color: #b9bdc5;
    background: #9da2ac;
}

@media (max-width: 991.98px) {
    .tienda-beneficios-compra-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tienda-filtros-card {
        position: static;
    }

    .tienda-filtros-resumen {
        display: flex;
    }

    .tienda-resumen-carrito {
        position: static;
    }

    .tienda-carrito-linea {
        grid-template-columns: 5rem minmax(0, 1fr) auto;
    }

    .tienda-carrito-imagen {
        width: 5rem;
        height: 5rem;
    }

    .tienda-carrito-precio {
        grid-column: 2;
    }

    .tienda-carrito-cantidad {
        grid-column: 2;
        max-width: 7rem;
    }

    .tienda-carrito-total {
        grid-column: 3;
        grid-row: 2 / span 2;
        align-self: end;
    }

    .tienda-carrito-quitar {
        grid-column: 3;
        grid-row: 1;
    }
}

@media (min-width: 992px) {
    .tienda-filtros-resumen {
        display: none;
    }

    .tienda-filtros-card .tienda-filtros-desplegable > .tienda-filtros-contenido {
        display: block !important;
    }

    .tienda-filtros-contenido {
        padding-top: 0;
    }
}

@media (max-width: 575.98px) {
    .tienda-beneficios-compra {
        margin-top: 3rem;
        padding-block: 2.25rem;
    }

    .tienda-beneficios-compra-grid {
        grid-template-columns: 1fr;
    }

    .tienda-beneficio-compra {
        min-height: 8.25rem;
    }

    .tienda-slider {
        min-height: 33rem;
    }

    .tienda-slide {
        background-position: center;
        background-size: cover;
    }

    .tienda-slide-contenido {
        padding-block: 3rem 4rem;
    }

    .tienda-slide h1 {
        max-width: 19rem;
        font-size: clamp(2.1rem, 11vw, 3rem);
    }

    .tienda-slide p {
        max-width: 20rem;
    }

    .tienda-slide-beneficios {
        gap: .6rem .9rem;
        font-size: .7rem;
    }

    .tienda-logo {
        width: 190px;
        height: 44px;
    }

    .tienda-buscador-cabecera button {
        padding-inline: .8rem;
    }

    .tienda-categoria-card {
        min-height: 10rem;
        flex-direction: column;
        align-items: flex-start;
    }

    .tienda-producto-imagen,
    .tienda-producto-imagen img {
        height: 13rem;
        min-height: 13rem;
    }

    .tienda-encabezado-seccion {
        align-items: flex-start;
        flex-direction: column;
    }

    .tienda-galeria-principal {
        min-height: 22rem;
        aspect-ratio: auto;
    }

    .tienda-imagen-principal,
    .tienda-producto-sin-imagen {
        height: 22rem;
    }

    .tienda-carrito-linea {
        grid-template-columns: 4.5rem minmax(0, 1fr);
        gap: .75rem;
        padding: 1rem;
    }

    .tienda-carrito-imagen {
        width: 4.5rem;
        height: 4.5rem;
    }

    .tienda-carrito-precio,
    .tienda-carrito-cantidad,
    .tienda-carrito-total,
    .tienda-carrito-quitar {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    .tienda-carrito-precio,
    .tienda-carrito-total {
        display: flex;
        justify-content: space-between;
        gap: .75rem;
        align-items: baseline;
    }

    .tienda-carrito-precio small,
    .tienda-carrito-total small {
        display: none;
    }

    .tienda-carrito-quitar {
        justify-self: start;
    }

    .tienda-carrito-quitar span {
        display: inline;
    }
}
