.product-card {
    border-radius: 14px;
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease
}

.product-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 1rem 2rem rgba(0, 0, 0, .12) !important
}

.product-image-wrap {
    position: relative;
    display: block;
    background: #f6f3ef;
    overflow: hidden
}

.product-image {
    width: 100%;
    height: 260px;
    object-fit: cover;
    transition: transform .25s ease
}

.product-card:hover .product-image {
    transform: scale(1.04)
}

.product-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 2;
}

.hero-slide {
    min-height: 70vh
}

.hero-slide img {
    object-fit: cover;
    filter: brightness(.58)
}

.home-banner-img {
    object-fit: cover;
    filter: none !important;
}

.hero-caption {
    max-width: 900px
}

.detail-main-image {
    width: 100%;
    max-height: 540px;
    object-fit: cover;
    border-radius: 16px;
    background: #f6f3ef
}

.detail-thumb {
    height: 92px;
    width: 110px;
    object-fit: cover;
    border-radius: 10px;
    border: 2px solid #eee
}

.filter-box {
    border-radius: 14px
}

.variant-pill {
    border: 1px solid #e5e5e5;
    border-radius: 999px;
    padding: .45rem .8rem;
    margin: .25rem;
    display: inline-block;
    background: #fff
}

.empty-state {
    border: 2px dashed #ddd;
    border-radius: 16px;
    background: #fafafa
}

@media (max-width: 991px) {
    .navbar {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    #navbarCollapse {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    .header-search-tezi {
        width: 100% !important;
        max-width: 100% !important;
        margin: 15px 0 10px 0 !important;
    }

    .header-search-tezi .tezi-search-box {
        width: 100% !important;
        max-width: 100% !important;
    }

    .header-search-tezi .tezi-search-input {
        width: auto !important;
        flex: 1 1 auto !important;
        min-width: 0 !important;
    }

    .header-search-tezi .tezi-search-button {
        width: 70px !important;
        flex: 0 0 70px !important;
    }

    .header-menu-tezi {
        margin-left: 0 !important;
        padding-left: 0 !important;
        width: 100%;
    }

    .hero-slide {
        min-height: 520px;
    }

    .product-image {
        height: 230px;
    }
}

/* ==========================================================================
   Identidad visual Teziushop
   Paleta tomada de la pantalla de lanzamiento y logotipos proporcionados.
   ========================================================================== */
:root {
    --ts-black: #2e1a0e;
    /* antes: #171719 */
    --ts-black-soft: #4a2c0a;
    /* antes: #252326 */
    --ts-beige: #b5651d;
    /* antes: #bda38c */
    --ts-beige-dark: #8b4513;
    /* antes: #9b8069 */
    --ts-beige-light: #e8c4a0;
    /* antes: #e6d8cc */
    --ts-cream: #EBEBEB;
    /* antes: #fbf8f4 */
    --ts-cream-2: #EBEBEB;
    /* antes: #f4eee8 */
    --ts-border: #e8d5bf;
    /* antes: #dfd2c7 */
    --ts-muted: #6f7882;
    --primary: var(--ts-beige);
    --secondary: var(--ts-black);
    --light: var(--ts-cream);
    --dark: var(--ts-black);
}

body {
    color: var(--ts-black-soft);
    background: var(--ts-cream);
}

a {
    color: var(--ts-beige-dark)
}

a:hover {
    color: var(--ts-black);
}

.brand-logo {
    height: 58px;
    width: auto;
    object-fit: contain;
    display: block;
}

.footer-logo {
    height: 82px;
    width: auto;
    max-width: 240px;
    object-fit: contain;
    filter: drop-shadow(0 10px 24px rgba(0, 0, 0, .28));
}

.bg-light {
    background-color: var(--ts-cream-2) !important;
}

.bg-white {
    background-color: #fff !important;
}

.bg-dark {
    background: linear-gradient(135deg, var(--ts-black) 0%, #050505 100%) !important;
}

.text-primary {
    color: var(--ts-beige) !important;
}

.text-dark {
    color: var(--ts-black) !important;
}

.border-primary {
    border-color: var(--ts-beige) !important;
}

.navbar {
    border-bottom: 1px solid rgba(189, 163, 140, .22);
}

.navbar-collapse {
    gap: 20px;
}

.header-search-tezi {
    flex: 0 0 auto;
    width: 416px;
    max-width: 416px;
    margin-left: 18px;
    margin-right: 24px;
}

.header-menu-tezi {
    flex: 0 0 auto;
    margin-left: 0 !important;
}

.navbar-light .navbar-nav .nav-link {
    color: var(--ts-black) !important;
    font-weight: 600;
    letter-spacing: .02em;
}

.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link.active {
    color: var(--ts-beige-dark) !important;
}

.dropdown-menu {
    border-color: var(--ts-border);
    box-shadow: 0 1rem 2rem rgba(23, 23, 25, .08);
}

@media (min-width: 992px) {

    .site-header-sticky,
    .site-header-sticky .navbar,
    .site-header-sticky .navbar-collapse,
    .header-menu-tezi {
        overflow: visible !important;
    }

    .header-menu-tezi .nav-item.dropdown {
        position: relative;
    }

    .header-menu-tezi .dropdown-menu {
        top: 100%;
        margin-top: 0 !important;
        z-index: 3000;
    }

    .header-menu-tezi .dropdown-menu::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: -12px;
        height: 12px;
        background: transparent;
    }
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: var(--ts-cream-2);
    color: var(--ts-black);
}

.btn-primary,
.btn.btn-primary {
    color: #fff !important;
    background: linear-gradient(135deg, var(--ts-black) 0%, var(--ts-black-soft) 52%, var(--ts-beige-dark) 100%) !important;
    border-color: var(--ts-black) !important;
    box-shadow: 0 10px 22px rgba(23, 23, 25, .13);
}

.btn-primary:hover,
.btn.btn-primary:hover {
    color: #fff !important;
    background: linear-gradient(135deg, var(--ts-beige-dark) 0%, var(--ts-black-soft) 100%) !important;
    border-color: var(--ts-beige-dark) !important;
    transform: translateY(-1px);
}

.btn-outline-primary {
    color: var(--ts-black) !important;
    border-color: var(--ts-beige) !important;
}

.btn-outline-primary:hover {
    color: #fff !important;
    background-color: var(--ts-black) !important;
    border-color: var(--ts-black) !important;
}

.btn-outline-light:hover {
    color: var(--ts-black) !important;
    background-color: #fff !important;
    border-color: #fff !important;
}

.form-control {
    border-color: var(--ts-border);
}

.form-control:focus {
    border-color: var(--ts-beige);
    box-shadow: 0 0 0 .2rem rgba(189, 163, 140, .2);
}

.badge-primary {
    background-color: var(--ts-beige) !important;
    color: var(--ts-black) !important;
}

.badge-danger,
.product-badge {
    background-color: var(--ts-black) !important;
    color: #fff !important;
}

.badge-light {
    background-color: var(--ts-cream-2) !important;
    color: var(--ts-black) !important;
    border: 1px solid var(--ts-border);
}

.hero-slide img {
    filter: brightness(.48) saturate(.9);
}

.hero-caption h6 {
    color: var(--ts-beige-light) !important;
}

.hero-caption h3 {
    text-shadow: 0 10px 30px rgba(0, 0, 0, .35);
}

.carousel-indicators li {
    background-color: var(--ts-beige);
}

.category-card,
.product-card,
.filter-box {
    border: 1px solid rgba(189, 163, 140, .22);
    box-shadow: 0 18px 40px rgba(23, 23, 25, .07) !important;
}

.category-card img,
.product-image-wrap {
    background: linear-gradient(135deg, #fff 0%, var(--ts-cream-2) 100%);
}

.product-title a {
    color: var(--ts-black);
}

.product-title a:hover {
    color: var(--ts-beige-dark);
}

.product-image {
    background: #fff;
}

.detail-main-image {
    background: linear-gradient(135deg, #fff 0%, var(--ts-cream-2) 100%);
    border: 1px solid rgba(189, 163, 140, .25);
}

.detail-thumb {
    border-color: var(--ts-border);
    background: #fff;
}

.variant-pill {
    border-color: var(--ts-border);
    background: #fff;
    color: var(--ts-black);
}

.empty-state {
    border-color: var(--ts-border);
    background: rgba(255, 255, 255, .72);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--ts-black);
}

h6.d-inline-block {
    border: 1px solid var(--ts-border);
    border-radius: 999px;
    letter-spacing: .12em;
    background: #fff !important;
}

.back-to-top,
.tezi-back-to-top {
    position: fixed;
    right: 28px;
    bottom: 28px;
    width: 52px;
    height: 52px;
    padding: 0 !important;
    display: none;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, .96) !important;
    border: 1px solid rgba(185, 120, 66, .34) !important;
    color: #9b5a2e !important;
    box-shadow: 0 14px 32px rgba(25, 18, 14, .18), inset 0 1px 0 rgba(255,255,255,.85);
    transition: transform .22s ease, box-shadow .22s ease, background .22s ease, color .22s ease;
    z-index: 1029;
}

.back-to-top:hover,
.tezi-back-to-top:hover {
    transform: translateY(-3px);
    background: linear-gradient(135deg, #fffaf4, #ffffff) !important;
    color: #7b421e !important;
    box-shadow: 0 18px 40px rgba(25, 18, 14, .24), inset 0 1px 0 rgba(255,255,255,.9);
}

.back-to-top:active,
.tezi-back-to-top:active {
    transform: translateY(-1px) scale(.98);
}

.back-to-top i,
.tezi-back-to-top i {
    font-size: 1rem;
    line-height: 1;
}

@media(max-width:767px) {
    .back-to-top,
    .tezi-back-to-top {
        right: 16px;
        bottom: 24px;
        width: 52px !important;
        min-width: 52px !important;
        max-width: 52px !important;
        height: 52px !important;
        min-height: 52px !important;
        max-height: 52px !important;
        padding: 0 !important;
        border-radius: 999px !important;
        line-height: 1 !important;
        aspect-ratio: 1 / 1;
        box-sizing: border-box;
        flex: 0 0 52px;
    }

    .back-to-top i,
    .tezi-back-to-top i {
        width: 30px;
        height: 30px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        line-height: 1 !important;
        font-size: .96rem;
    }
}

footer a,
.bg-dark a {
    transition: color .2s ease;
}

.bg-dark a:hover {
    color: var(--ts-beige-light) !important;
    text-decoration: none;
}

.bg-dark .text-white-50 {
    color: rgba(255, 255, 255, .68) !important;
}

@media(max-width:991px) {
    .brand-logo {
        height: 46px;
    }

    .footer-logo {
        height: 68px;
    }
}

/* ==========================================================================
   Buscador flexible y pantalla de productos
   ========================================================================== */

.bg-primary {
    background: linear-gradient(135deg, var(--ts-black) 0%, var(--ts-black-soft) 48%, var(--ts-beige-dark) 100%) !important;
}

.ecommerce-search {
    position: relative;
}

.tezi-search-box {
    position: relative;
    display: flex;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    height: 52px;
    overflow: hidden;
    border: 1px solid #d8c6b6;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
}

.tezi-search-input {
    flex: 1 1 auto;
    width: auto !important;
    min-width: 0 !important;
    height: 100% !important;
    border: none !important;
    border-radius: 14px 0 0 14px !important;
    background: #fff !important;
    color: var(--ts-black) !important;
    padding: 0 20px !important;
    font-size: 15px;
    outline: none;
    box-shadow: none !important;
}

.tezi-search-input:focus {
    box-shadow: none !important;
}

.tezi-search-button {
    flex: 0 0 56px;
    width: 56px;
    min-width: 56px;
    height: 100%;
    margin: 0 !important;
    border-radius: 0 14px 14px 0 !important;
    box-shadow: none !important;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* =========================================================
   BOT�N BUSCADOR - PALETA LOGO TEZIUSHOP
========================================================= */

.header-search-tezi .tezi-search-button {
    background: linear-gradient(135deg, #c7ad96 0%, #a88368 100%) !important;
    border: 1px solid #b99a80 !important;
    color: #ffffff !important;
}

.header-search-tezi .tezi-search-button:hover {
    background: linear-gradient(135deg, #d0b9a4 0%, #9b775d 100%) !important;
    border-color: #a88368 !important;
    color: #ffffff !important;
    transform: none;
}

.header-search-tezi .tezi-search-button:focus,
.header-search-tezi .tezi-search-button:active {
    background: linear-gradient(135deg, #b99a80 0%, #8f6f58 100%) !important;
    border-color: #9b775d !important;
    color: #ffffff !important;
    box-shadow: 0 0 0 0.2rem rgba(185, 154, 128, 0.25) !important;
}

.tezi-search-suggestions {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    z-index: 3000;
    display: none;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--ts-border);
    border-radius: 0 0 14px 14px;
    box-shadow: 0 18px 38px rgba(23, 23, 25, .14);
}

.tezi-search-suggestions.activo {
    display: block;
}

.tezi-search-suggestion-item {
    width: 100%;
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: 12px;
    border: none;
    border-bottom: 1px solid rgba(189, 163, 140, .18);
    background: #fff;
    color: var(--ts-black);
    padding: 11px 16px;
    text-align: left;
    cursor: pointer;
    line-height: 1.25;
}

.tezi-search-suggestion-item:last-child {
    border-bottom: none;
}

.tezi-search-suggestion-item:hover,
.tezi-search-suggestion-item:focus {
    background: var(--ts-cream-2);
    color: var(--ts-beige-dark);
    outline: none;
}

.tezi-search-suggestion-icon {
    flex: 0 0 auto;
    color: var(--ts-beige-dark);
    font-size: .86rem;
}

.tezi-search-suggestion-text {
    font-size: .92rem;
    font-weight: 500;
}

.filter-box-tezi {
    position: sticky;
    top: 104px;
    background: linear-gradient(180deg, #fff 0%, var(--ts-cream-2) 100%);
    border: 1px solid var(--ts-border) !important;
}

.filter-box-tezi h5 {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(189, 163, 140, .28);
}

.filter-box-tezi h5::before {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--ts-beige);
    box-shadow: 0 0 0 6px rgba(189, 163, 140, .15);
}

.filter-box-tezi label {
    color: var(--ts-black);
    font-weight: 600;
    font-size: .88rem;
}

.btn-outline-tezi {
    color: var(--ts-black) !important;
    border: 1px solid var(--ts-border) !important;
    background: #fff !important;
}

.btn-outline-tezi:hover {
    color: #fff !important;
    background: var(--ts-black) !important;
    border-color: var(--ts-black) !important;
}

@media(max-width:991px) {
    .tezi-search-box {
        width: 100%;
        height: 46px;
    }

    .ecommerce-search {
        width: 100%;
        margin-top: 1rem;
    }

    .filter-box-tezi {
        position: static;
    }

    .catalog-hero h1 {
        font-size: 2.6rem;
    }
}

.category-card {
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease;
}

.category-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 1rem 2rem rgba(0, 0, 0, .12) !important;
}

.category-card img {
    display: block;
    width: 100%;
    height: 260px;
    object-fit: cover;
    background: #f7f1eb;
    padding: 0;
    margin: 0;
    border-bottom: 1px solid #e6d9cc;
}

.category-card .p-4 {
    background: #fff;
}

.category-card h4 {
    margin-bottom: 14px;
}

.category-description {
    font-size: .95rem;
    line-height: 1.65;
    margin-bottom: 0;
    color: #6c757d;
}

.category-card-link {
    display: block;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.category-card-link:hover {
    color: inherit;
    text-decoration: none;
}

.category-card-link .category-card {
    cursor: pointer;
}

/* =========================================================
   PRODUCT CARD - Vista limpia de productos
========================================================= */

.product-card-body {
    background: #fff;
}

.product-title {
    font-size: 1rem;
    line-height: 1.35;
    font-weight: 600;
}

.product-title a {
    color: var(--ts-black);
    text-decoration: none;
}

.product-title a:hover {
    color: var(--ts-beige-dark);
    text-decoration: none;
}

.product-price-box {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.product-old-price {
    color: #8d8d8d;
    font-size: .95rem;
    text-decoration: line-through;
}

.product-offer-price {
    color: var(--ts-black);
    font-size: 1.18rem;
    font-weight: 700;
}

.product-card-link {
    display: block;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.product-card-link:hover {
    color: inherit;
    text-decoration: none;
}

.product-card-link .product-card {
    cursor: pointer;
}

/* =========================================================
   HOME - Cards de proveedores
========================================================= */

.proveedor-card {
    background: #fff;
    border: 1px solid rgba(189, 163, 140, .25);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 18px 40px rgba(23, 23, 25, .07);
    transition: transform .2s ease, box-shadow .2s ease;
}

.proveedor-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 1rem 2rem rgba(0, 0, 0, .12);
}

.proveedor-logo-wrap {
    width: 100%;
    height: 150px;
    background: linear-gradient(135deg, #fff 0%, var(--ts-cream-2) 100%);
    border-bottom: 1px solid var(--ts-border);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
}

.proveedor-logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.proveedor-info {
    padding: 18px 20px 20px;
    background: #fff;
    text-align: center;
}

.proveedor-nombre {
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--ts-black);
}

.proveedor-notas {
    font-size: .9rem;
    line-height: 1.55;
    color: #6c757d;
    margin-bottom: 0;
}

.proveedor-card-link {
    display: block;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.proveedor-card-link:hover {
    color: inherit;
    text-decoration: none;
}

.proveedor-card-link .proveedor-card {
    cursor: pointer;
}

/* =========================================================
   FOOTER - Compacto, moderno y acorde a Teziushop
========================================================= */

#siteFooter {
    margin-top: 0;
}

.footer-tezi {
    background:
        radial-gradient(circle at top right, rgba(232, 196, 160, .04), transparent 34%),
        linear-gradient(135deg, #0f0f11 0%, #171719 52%, #120a05 100%);
    color: #EBEBEB;
    border-top: 1px solid rgba(232, 196, 160, .16);
    box-shadow: 0 -10px 28px rgba(15, 15, 17, .20);
    padding: 30px 0 14px;
}

.footer-main-row {
    min-height: 120px;
}

.footer-brand-box {
    display: flex;
    align-items: center;
    gap: 16px;
}

.footer-logo-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.footer-logo-link:hover {
    text-decoration: none;
}

.footer-logo-compact {
    height: 92px;
    width: auto;
    max-width: 280px;
    object-fit: contain;
    background: #fff;
    border: 1px solid rgba(232, 196, 160, .32);
    border-radius: 18px;
    padding: 10px 18px;
    box-shadow: 0 16px 36px rgba(0, 0, 0, .26);
    transition: transform .2s ease, box-shadow .2s ease;
}

.footer-logo-link:hover .footer-logo-compact {
    transform: translateY(-2px);
    box-shadow: 0 20px 46px rgba(0, 0, 0, .34);
}

.footer-brand-text {
    color: rgba(249, 244, 238, .72);
    font-size: .94rem;
    line-height: 1.45;
}

.footer-title {
    color: #e8c4a0 !important;
    font-size: 1rem;
    font-weight: 800;
    margin-bottom: 12px;
    letter-spacing: .03em;
}

.footer-contact-info p {
    margin-bottom: 6px;
    color: rgba(249, 244, 238, .76) !important;
    font-size: .94rem;
    line-height: 1.45;
}

.footer-contact-info i {
    color: #e8c4a0 !important;
    width: 18px;
}

.footer-whatsapp-button .btn {
    padding: .45rem 1rem;
    border-radius: 999px;
    font-size: .9rem;
}

.footer-social-box {
    text-align: center;
}

.footer-social-text {
    color: rgba(249, 244, 238, .74) !important;
    font-size: .92rem;
    line-height: 1.45;
    max-width: 310px;
    margin-left: auto;
    margin-right: auto;
}

.footer-social-links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.footer-social-links a {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    color: #fff !important;
    font-size: 1.15rem;
    box-shadow: 0 10px 22px rgba(46, 26, 14, .16);
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

.footer-social-links a:hover {
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(46, 26, 14, .22);
    filter: brightness(1.06);
    text-decoration: none;
}

.footer-social-links a[aria-label="Facebook"] {
    background: #1877f2;
}

.footer-social-links a[aria-label="Instagram"] {
    background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
}

.footer-social-links a[aria-label="WhatsApp"] {
    background: #25D366;
}

.footer-divider {
    height: 1px;
    background: rgba(232, 196, 160, .22);
    margin: 18px 0 12px;
}

.footer-bottom {
    color: rgba(249, 244, 238, .62);
    font-size: .9rem;
    background: transparent;
}

.footer-bottom p {
    color: rgba(249, 244, 238, .62);
}

/* Bot�n WhatsApp en footer */
#siteFooter .btn-primary,
#siteFooter .btn.btn-primary {
    color: #2e1a0e !important;
    background: linear-gradient(135deg,
            #ffffff 0%,
            #e8c4a0 55%,
            #b5651d 100%) !important;
    border-color: rgba(232, 196, 160, .7) !important;
    box-shadow: 0 10px 22px rgba(0, 0, 0, .22);
}

#siteFooter .btn-primary:hover,
#siteFooter .btn.btn-primary:hover {
    color: #ffffff !important;
    background: linear-gradient(135deg,
            #b5651d 0%,
            #8b4513 100%) !important;
    border-color: #b5651d !important;
}

@media(max-width:991px) {
    .footer-tezi {
        padding: 26px 0 14px;
    }

    .footer-brand-box {
        justify-content: center;
        text-align: center;
        flex-direction: column;
        gap: 8px;
    }

    .footer-logo-compact {
        height: 78px;
        max-width: 235px;
    }

    .footer-contact-info,
    .footer-whatsapp-button {
        text-align: center;
    }

    .footer-title {
        text-align: center;
    }

    .footer-main-row {
        min-height: auto;
    }

    .footer-social-box {
        margin-top: 8px;
    }
}

/* =========================================================
   FOOTER - Invitaci�n proveedores
========================================================= */

.footer-contact-invite {
    color: rgba(249, 244, 238, .74) !important;
    font-size: .92rem;
    line-height: 1.45;
    margin-bottom: 10px;
}

.footer-generic-contact p {
    margin-bottom: 6px;
    color: rgba(249, 244, 238, .78) !important;
    font-size: .92rem;
    line-height: 1.4;
}

.footer-generic-contact i {
    color: #e8c4a0 !important;
    width: 18px;
}

/* =========================================================
   FOOTER - Slogan junto al logo
========================================================= */

.footer-slogan-box {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.footer-slogan {
    color: #e8c4a0 !important;
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: .02em;
}

.footer-slogan-box .footer-brand-text {
    max-width: 240px;
}

@media(max-width:991px) {
    .footer-slogan-box {
        align-items: center;
        text-align: center;
    }

    .footer-slogan-box .footer-brand-text {
        max-width: 320px;
    }
}

/* =========================================================
   GRID ECOMMERCE - 5 cards por rengl�n
========================================================= */

.ecommerce-wide-container {
    max-width: 1740px;
    padding-left: 28px;
    padding-right: 28px;
}

.col-lg-5th {
    position: relative;
    width: 100%;
    padding-right: 7.5px;
    padding-left: 7.5px;
}

@media (min-width: 992px) {
    .col-lg-5th {
        flex: 0 0 20%;
        max-width: 20%;
    }
}

@media (max-width: 991.98px) {
    .ecommerce-wide-container {
        padding-left: 18px;
        padding-right: 18px;
    }
}

/* =========================================================
   HOME - Espaciado compacto entre secciones
========================================================= */

.home-categorias-section {
    padding-top: 28px !important;
    padding-bottom: 0 !important;
}

.home-productos-section {
    padding-top: 18px !important;
    padding-bottom: 0 !important;
}

#homeProveedoresSection {
    padding-top: 18px !important;
    padding-bottom: 48px !important;
}

.home-categorias-section #homeCategorias>div,
.home-productos-section #homeProductos>div {
    margin-bottom: 0 !important;
}

.home-categorias-section #homeCategorias,
.home-productos-section #homeProductos {
    row-gap: 18px;
}

.home-productos-section .text-center.mt-4,
.home-productos-section .text-center.mt-5 {
    margin-top: 28px !important;
    margin-bottom: 0 !important;
}

#homeProveedoresSection .text-center.mb-4 {
    margin-bottom: 12px !important;
}

/* =========================================================
   HOME - Bot�n Ver cat�logo completo
========================================================= */

.btn-catalogo-completo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 500px;
    padding: 11px 24px;
    background: #ffffff;
    color: #A85B18;
    border: 1px solid #E0C5A8;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .7px;
    line-height: 1.2;
    text-transform: uppercase;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .06);
    transition: all .22s ease;
}

.btn-catalogo-completo:hover,
.btn-catalogo-completo:focus {
    background: #A85B18;
    color: #ffffff;
    border-color: #A85B18;
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: 0 9px 22px rgba(0, 0, 0, .10);
}

/* =========================================================
   HOME - Cards grandes por secci�n
========================================================= */

.home-section-card {
    width: 100%;
    background: #ffffff;
    border: 1px solid rgba(224, 197, 168, .45);
    border-radius: 28px;
    padding: 26px 24px 30px;
    box-shadow: 0 18px 45px rgba(0, 0, 0, .045);
}

.home-section-card-proveedores {
    padding-bottom: 34px;
}

.home-section-card .text-center.mb-4,
.home-section-card .row.justify-content-center.text-center.mb-4 {
    margin-bottom: 18px !important;
}

@media (max-width: 767.98px) {
    .home-section-card {
        border-radius: 22px;
        padding: 20px 14px 24px;
    }

    .home-productos-section,
    #homeProveedoresSection {
        padding-top: 16px !important;
    }

    .btn-catalogo-completo {
        min-width: 100%;
    }
}

/* =========================================================
   MOBILE - Reducir fondo gris lateral del home
========================================================= */

@media (max-width: 575.98px) {

    .home-categorias-section,
    .home-productos-section,
    #homeProveedoresSection {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .home-categorias-section>.ecommerce-wide-container,
    .home-productos-section>.ecommerce-wide-container,
    #homeProveedoresSection>.ecommerce-wide-container {
        padding-left: 6px !important;
        padding-right: 6px !important;
    }
}

/* =========================================================
   HEADER - Fijo al hacer scroll
========================================================= */

html,
body {
    margin-top: 0 !important;
}

#siteHeader {
    height: var(--site-header-height, 86px);
}

.site-header-sticky {
    position: fixed !important;
    top: 0 !important;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1080;
    background: #ffffff !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
    transform: translateZ(0);
}

.site-header-sticky .navbar {
    background: #ffffff !important;
}

@media (max-width: 991.98px) {
    #siteHeader {
        height: var(--site-header-height, 82px);
    }

    .site-header-sticky {
        position: fixed !important;
        top: 0 !important;
        left: 0;
        right: 0;
        width: 100%;
        z-index: 1080;
    }

    .site-header-sticky .navbar {
        max-height: 100vh;
        overflow-y: auto;
    }
}

/* =========================================================
   HOME - Igualar altura de cards de proveedores
========================================================= */

#homeProveedores {
    align-items: stretch !important;
}

#homeProveedores>div {
    display: flex;
}

.proveedor-card-link {
    width: 100%;
    height: 100%;
}

.proveedor-card {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.proveedor-logo-wrap {
    flex: 0 0 150px;
}

.proveedor-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.home-banner-section {
    position: relative;
}

.home-banner-img {
    object-fit: cover;
    filter: none !important;
}

.home-banner-indicators {
    bottom: 14px;
    margin-bottom: 0;
    align-items: center;
}

.home-banner-indicators li {
    width: 7px;
    height: 7px;
    margin: 0 5px;
    border-radius: 50%;
    border: 0;
    background-color: rgba(255, 255, 255, .55);
    opacity: 1;
    transition: all .25s ease;
}

.home-banner-indicators li.active {
    width: 20px;
    border-radius: 999px;
    background-color: #fff;
}

.home-banner-arrow {
    width: 42px;
    height: 42px;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    opacity: 1;
    background: rgba(0, 0, 0, .22);
    border-radius: 50%;
    transition: all .25s ease;
}

.home-banner-arrow:hover {
    background: rgba(0, 0, 0, .38);
}

.home-banner-arrow-left {
    left: 18px;
}

.home-banner-arrow-right {
    right: 18px;
}

.home-banner-arrow-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-size: 34px;
    line-height: 1;
    font-weight: 300;
    color: #fff;
    padding-bottom: 4px;
}

@media (max-width: 768px) {
    .home-banner-arrow {
        width: 34px;
        height: 34px;
    }

    .home-banner-arrow-left {
        left: 10px;
    }

    .home-banner-arrow-right {
        right: 10px;
    }

    .home-banner-arrow-icon {
        font-size: 28px;
    }

    .home-banner-indicators {
        bottom: 10px;
    }

    .home-banner-indicators li {
        width: 6px;
        height: 6px;
        margin: 0 4px;
    }

    .home-banner-indicators li.active {
        width: 16px;
    }
}

@media (max-width: 768px) {
    .home-banner-section .hero-slide {
        height: 160px;
        min-height: 160px;
        background-color: #ffffff;
    }

    .home-banner-img {
        object-fit: contain !important;
        filter: none !important;
    }

    .home-banner-section .carousel-inner,
    .home-banner-section .carousel-item {
        height: 160px;
    }
}

.header-menu-tezi .nav-link {
    font-size: 90%;
}

.header-cart-link {
    margin-left: auto;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    color: #111111;
    font-size: 18px;
    text-decoration: none;
    border-radius: 50%;
    transition: all 0.2s ease;
}

.header-cart-link:hover {
    color: #FE0029;
    background: rgba(254, 0, 41, 0.08);
    text-decoration: none;
}

@media (max-width: 991.98px) {
    .header-cart-link {
        display: none !important;
    }
}

.carrito-panel,
.carrito-resumen {
    background: #ffffff;
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    padding: 24px;
}

.carrito-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
}

.carrito-listado {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.carrito-item {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 120px 150px 120px 48px;
    align-items: center;
    gap: 16px;
    padding: 16px;
    border: 1px solid #f0f0f0;
    border-radius: 16px;
    background: #ffffff;
}

.carrito-producto {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.carrito-img-wrap {
    width: 72px;
    height: 72px;
    border-radius: 14px;
    overflow: hidden;
    background: #f8f8f8;
    flex: 0 0 72px;
}

.carrito-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.carrito-producto-nombre {
    font-size: 15px;
    font-weight: 700;
    color: #111111;
}

.carrito-producto-sku {
    font-size: 12px;
    color: #777777;
}

.carrito-precio,
.carrito-subtotal {
    font-weight: 700;
    color: #FE0029;
}

.carrito-cantidad {
    display: flex;
    align-items: center;
    gap: 6px;
}

.carrito-cantidad input {
    width: 58px;
    text-align: center;
    height: 34px;
    padding: 4px;
}

.carrito-acciones {
    text-align: right;
}

.carrito-resumen-linea {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}

.carrito-resumen-linea strong {
    color: #FE0029;
}

.carrito-empty-icon {
    width: 72px;
    height: 72px;
    margin: 0 auto;
    border-radius: 50%;
    background: rgba(254, 0, 41, 0.08);
    color: #FE0029;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
}

@media (max-width: 991.98px) {
    .carrito-item {
        grid-template-columns: 1fr;
        text-align: left;
    }

    .carrito-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .carrito-precio,
    .carrito-subtotal,
    .carrito-acciones {
        text-align: left;
    }
}

/* =========================================================
   P�GINAS INTERNAS - Misma l�nea visual del inicio
   Estas reglas no modifican index.php; solo normalizan p�ginas internas.
========================================================= */

.page-shell {
    background: var(--ts-cream);
}

.page-hero-section {
    padding: 28px 0 0 !important;
    margin: 0 !important;
    background: transparent !important;
}

.page-hero-card {
    width: 100%;
    background: #ffffff;
    border: 1px solid rgba(224, 197, 168, .45);
    border-radius: 28px;
    padding: 34px 24px 38px;
    box-shadow: 0 18px 45px rgba(0, 0, 0, .045);
}

.catalog-hero-kicker {
    display: inline-block;
    color: var(--ts-beige) !important;
    background: #fff !important;
    border: 1px solid var(--ts-border);
    border-radius: 999px;
    padding: 4px 14px;
    margin-bottom: 16px;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .12em;
    line-height: 1.4;
    text-transform: uppercase;
}

.page-title,
.catalog-hero .page-title {
    color: var(--ts-black) !important;
    font-size: clamp(2rem, 4vw, 3.9rem);
    font-weight: 800;
    line-height: 1.05;
}

.page-subtitle,
.catalog-hero .page-subtitle,
.catalog-hero .text-white {
    color: var(--ts-muted) !important;
    font-size: 1rem;
    line-height: 1.65;
}

.page-content-section {
    padding-top: 18px !important;
    padding-bottom: 48px !important;
    background: transparent !important;
}

.product-detail-section {
    padding-top: 28px !important;
}

.related-products-section {
    padding-top: 0 !important;
}

.page-section-card {
    width: 100%;
    background: #ffffff;
    border: 1px solid rgba(224, 197, 168, .45);
    border-radius: 28px;
    padding: 26px 24px 30px;
    box-shadow: 0 18px 45px rgba(0, 0, 0, .045);
}

.page-section-card #categoriasListado>div,
.page-section-card #productosListado>div,
.page-section-card #proveedoresListado>div,
.page-section-card #productosRelacionados>div {
    margin-bottom: 0 !important;
}

.page-section-card #categoriasListado,
.page-section-card #productosListado,
.page-section-card #proveedoresListado,
.page-section-card #productosRelacionados {
    row-gap: 18px;
}

.page-list-header {
    padding: 0 2px 14px;
    border-bottom: 1px solid rgba(224, 197, 168, .35);
}

.page-list-header h4 {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--ts-black);
}

.page-empty-card {
    max-width: 760px;
    margin: 0 auto;
    padding: 42px 26px;
}

.page-empty-icon {
    width: 72px;
    height: 72px;
    margin-left: auto;
    margin-right: auto;
    border-radius: 50%;
    background: rgba(181, 101, 29, .10);
    color: var(--ts-beige-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
}

.contact-info-card,
.contact-form-card {
    background: linear-gradient(180deg, #fff 0%, var(--ts-cream-2) 100%);
    border: 1px solid rgba(224, 197, 168, .45);
    border-radius: 22px;
    padding: 26px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .035);
}

.contact-info-card h2,
.contact-form-card h4 {
    color: var(--ts-black);
    font-weight: 800;
}

.product-detail-card {
    padding: 30px;
}

.product-detail-info {
    background: linear-gradient(180deg, #fff 0%, rgba(235, 235, 235, .70) 100%);
    border: 1px solid rgba(224, 197, 168, .42);
    border-radius: 22px;
    padding: 28px;
}

.product-detail-info small {
    font-weight: 800;
    letter-spacing: .08em;
}

.product-detail-info .display-4 {
    font-size: clamp(2rem, 4vw, 3.2rem);
    color: #FE0029 !important;
    font-weight: 800;
}

.carrito-panel,
.carrito-resumen {
    border: 1px solid rgba(224, 197, 168, .45);
    box-shadow: 0 12px 30px rgba(0, 0, 0, .045);
}

.carrito-resumen-total {
    padding-top: 12px;
    margin-top: 12px;
    border-top: 1px solid rgba(224, 197, 168, .45);
}

@media (max-width: 991.98px) {
    .page-hero-section {
        padding-top: 18px !important;
    }

    .page-hero-card,
    .page-section-card {
        border-radius: 22px;
        padding: 22px 14px 26px;
    }

    .product-detail-card,
    .contact-info-card,
    .contact-form-card {
        padding: 20px;
    }

    .page-content-section {
        padding-bottom: 34px !important;
    }
}

@media (max-width: 575.98px) {

    .page-hero-section,
    .page-content-section,
    .product-detail-section,
    .related-products-section {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .page-hero-section>.ecommerce-wide-container,
    .page-content-section>.ecommerce-wide-container,
    .product-detail-section>.ecommerce-wide-container,
    .related-products-section>.ecommerce-wide-container {
        padding-left: 6px !important;
        padding-right: 6px !important;
    }

    .page-title,
    .catalog-hero .page-title {
        font-size: 2rem;
    }
}

/* =========================================================================
   CARRITO � BADGE, SIDEBAR Y SELECTOR DE VARIANTES
   A�adido sobre estilos existentes. No duplica reglas previas.
   ========================================================================= */

/* -- Badge del header -- */
.header-cart-link {
    position: relative;
}

.cart-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    background: #FE0029;
    color: #fff;
    font-size: 0.6rem;
    font-weight: 700;
    min-width: 17px;
    height: 17px;
    border-radius: 9px;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 0 3px;
    line-height: 1;
    pointer-events: none;
    animation: cartBadgePop 0.28s ease;
}

@keyframes cartBadgePop {
    0% {
        transform: scale(0.6);
    }

    70% {
        transform: scale(1.25);
    }

    100% {
        transform: scale(1);
    }
}

/* -- Overlay -- */
.cart-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1040;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.cart-overlay.active {
    opacity: 1;
    pointer-events: all;
}

/* -- Sidebar -- */
.cart-sidebar {
    position: fixed;
    top: 0;
    right: 0;
    width: 380px;
    max-width: 100vw;
    height: 100dvh;
    background: #fff;
    z-index: 1050;
    display: flex;
    flex-direction: column;
    box-shadow: -4px 0 28px rgba(0, 0, 0, 0.1);
    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(.4, 0, .2, 1);
}

.cart-sidebar.active {
    transform: translateX(0);
}

.cart-sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 22px;
    border-bottom: 1px solid #f0f0f0;
    flex-shrink: 0;
}

.cart-sidebar-header h5 {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: #111;
}

.cart-sidebar-close {
    background: none;
    border: none;
    font-size: 1.4rem;
    cursor: pointer;
    color: #999;
    padding: 4px;
    transition: color 0.2s;
}

.cart-sidebar-close:hover {
    color: #111;
}

.cart-sidebar-items {
    flex: 1;
    overflow-y: auto;
    padding: 14px 22px;
}

.cart-sidebar-items::-webkit-scrollbar {
    width: 3px;
}

.cart-sidebar-items::-webkit-scrollbar-thumb {
    background: #eee;
    border-radius: 2px;
}

/* Item sidebar */
.cart-sb-item {
    display: grid;
    grid-template-columns: 64px 1fr auto;
    gap: 10px;
    align-items: start;
    padding: 12px 0;
    border-bottom: 1px solid #f5f5f5;
}

.cart-sb-item:last-child {
    border-bottom: none;
}

.cart-sb-img {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 10px;
    background: #f8f8f8;
}

.cart-sb-nombre {
    font-size: 0.82rem;
    font-weight: 600;
    color: #111;
    margin: 0 0 3px;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cart-sb-variante {
    font-size: 0.72rem;
    color: #888;
    margin: 0 0 7px;
}

.cart-sb-qty {
    display: flex;
    align-items: center;
    gap: 5px;
}

.cart-sb-qty button {
    width: 22px;
    height: 22px;
    border: 1px solid #e0e0e0;
    background: #fff;
    border-radius: 5px;
    cursor: pointer;
    font-size: 0.8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
}

.cart-sb-qty button:hover {
    background: #f5f5f5;
}

.cart-sb-qty span {
    font-size: 0.82rem;
    font-weight: 600;
    min-width: 18px;
    text-align: center;
}

.cart-sb-precio {
    font-size: 0.88rem;
    font-weight: 700;
    color: #FE0029;
    white-space: nowrap;
}

.cart-sb-del {
    background: none;
    border: none;
    color: #ccc;
    cursor: pointer;
    font-size: 0.75rem;
    padding: 2px;
    transition: color 0.2s;
    margin-top: 2px;
}

.cart-sb-del:hover {
    color: #FE0029;
}

/* Sidebar empty */
.cart-sb-empty {
    text-align: center;
    padding: 48px 16px;
    color: #aaa;
}

.cart-sb-empty i {
    font-size: 2.8rem;
    margin-bottom: 12px;
    display: block;
    opacity: 0.35;
}

.cart-sb-empty p {
    font-size: 0.9rem;
    margin: 0 0 14px;
}

/* Sidebar footer */
.cart-sidebar-footer {
    padding: 18px 22px;
    border-top: 1px solid #f0f0f0;
    flex-shrink: 0;
}

.cart-sb-subtotal {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px;
    font-size: 0.9rem;
}

.cart-sb-subtotal span:last-child {
    font-size: 1.05rem;
    font-weight: 700;
    color: #111;
}

.btn-sb-checkout {
    display: block;
    width: 100%;
    padding: 13px;
    background: #FE0029;
    color: #fff;
    border: none;
    border-radius: 12px;
    font-size: 0.92rem;
    font-weight: 700;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    letter-spacing: 0.02em;
    transition: background 0.2s, transform 0.15s;
}

.btn-sb-checkout:hover {
    background: #d4001f;
    color: #fff;
    transform: translateY(-1px);
}

.btn-sb-ver {
    display: block;
    width: 100%;
    padding: 9px;
    background: none;
    border: 1px solid #e8e8e8;
    border-radius: 12px;
    font-size: 0.82rem;
    color: #888;
    text-align: center;
    text-decoration: none;
    margin-top: 8px;
    transition: border-color 0.2s, color 0.2s;
}

.btn-sb-ver:hover {
    border-color: #FE0029;
    color: #FE0029;
}

/* -- Selector de variantes (producto detalle) -- */
.variant-selector {
    margin-bottom: 18px;
}

.variant-selector-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    margin-bottom: 8px;
}

.variant-selector-label strong {
    color: #111;
    font-size: 0.82rem;
    text-transform: none;
    letter-spacing: 0;
}

.variant-pills-row {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.variant-pill-btn {
    padding: 5px 14px;
    border: 1.5px solid #e0e0e0;
    background: #fff;
    border-radius: 18px;
    font-size: 0.82rem;
    cursor: pointer;
    transition: all 0.18s;
    color: #111;
    font-weight: 500;
}

.variant-pill-btn:hover:not(:disabled) {
    border-color: #FE0029;
    color: #FE0029;
}

.variant-pill-btn.activa {
    background: #FE0029;
    border-color: #FE0029;
    color: #fff;
}

.variant-pill-btn:disabled {
    opacity: 0.3;
    cursor: not-allowed;
    text-decoration: line-through;
}

.variant-selector-disabled {
    opacity: 0.4;
    pointer-events: none;
}

/* Bot�n agregar al carrito */
.btn-agregar-carrito {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 13px 22px;
    background: #FE0029;
    color: #fff;
    border: none;
    border-radius: 12px;
    font-size: 0.92rem;
    font-weight: 700;
    cursor: pointer;
    letter-spacing: 0.02em;
    transition: background 0.2s, transform 0.15s;
    margin-bottom: 10px;
}

.btn-agregar-carrito:hover:not(:disabled) {
    background: #d4001f;
    transform: translateY(-1px);
}

.btn-agregar-carrito:disabled {
    background: #ccc;
    cursor: not-allowed;
    transform: none;
}

.btn-agregar-carrito.ok {
    background: #27ae60;
}

/* Toast */
.cart-toast {
    position: fixed;
    bottom: 22px;
    right: 22px;
    background: #111;
    color: #fff;
    padding: 12px 18px;
    border-radius: 12px;
    font-size: 0.88rem;
    font-weight: 500;
    z-index: 2000;
    display: flex;
    align-items: center;
    gap: 9px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
    transform: translateY(70px);
    opacity: 0;
    transition: all 0.28s cubic-bezier(.4, 0, .2, 1);
    pointer-events: none;
}

.cart-toast.show {
    transform: translateY(0);
    opacity: 1;
}

.cart-toast i {
    color: #27ae60;
}

/* Carrito pantalla � variante info */
.carrito-variante {
    font-size: 0.75rem;
    color: #888;
    margin: 2px 0 0;
}

@media (max-width: 576px) {
    .cart-sidebar {
        width: 100vw;
    }

    .cart-toast {
        left: 12px;
        right: 12px;
        bottom: 12px;
    }
}

/* =========================================================
   HOMOLOGACI�N GLOBAL DE BOTONES TEZIUSHOP
   Basado en el bot�n del index: .btn-catalogo-completo
========================================================= */

.btn,
.btn.btn-primary,
.btn-primary,
.btn-outline-primary,
.btn-outline-tezi,
.btn-confirmar-pedido,
.btn-agregar-carrito,
.btn-sb-checkout,
.btn-sb-ver,
.btn-whatsapp,
.footer-whatsapp-button .btn,
#siteFooter .btn-primary,
#siteFooter .btn.btn-primary {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 11px 24px !important;
    background: #ffffff !important;
    color: #A85B18 !important;
    border: 1px solid #E0C5A8 !important;
    border-radius: 999px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .7px !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .06) !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: all .22s ease !important;
}

.btn:hover,
.btn:focus,
.btn.btn-primary:hover,
.btn.btn-primary:focus,
.btn-primary:hover,
.btn-primary:focus,
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-tezi:hover,
.btn-outline-tezi:focus,
.btn-confirmar-pedido:hover:not(:disabled),
.btn-confirmar-pedido:focus:not(:disabled),
.btn-agregar-carrito:hover:not(:disabled),
.btn-agregar-carrito:focus:not(:disabled),
.btn-sb-checkout:hover,
.btn-sb-checkout:focus,
.btn-sb-ver:hover,
.btn-sb-ver:focus,
.btn-whatsapp:hover,
.btn-whatsapp:focus,
.footer-whatsapp-button .btn:hover,
.footer-whatsapp-button .btn:focus,
#siteFooter .btn-primary:hover,
#siteFooter .btn-primary:focus,
#siteFooter .btn.btn-primary:hover,
#siteFooter .btn.btn-primary:focus {
    background: #A85B18 !important;
    color: #ffffff !important;
    border-color: #A85B18 !important;
    text-decoration: none !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 9px 22px rgba(0, 0, 0, .10) !important;
}

.btn-block,
.btn.btn-block,
.btn-confirmar-pedido,
.btn-sb-checkout,
.btn-sb-ver {
    display: flex !important;
    width: 100% !important;
}

.btn-sm,
.btn.btn-sm {
    padding: 8px 16px !important;
    font-size: 12px !important;
}

.btn-lg,
.btn.btn-lg {
    padding: 13px 26px !important;
    font-size: 14px !important;
}

.btn:disabled,
.btn.disabled,
.btn-primary:disabled,
.btn-confirmar-pedido:disabled,
.btn-agregar-carrito:disabled,
button:disabled {
    background: #f3eee8 !important;
    color: #b6a08d !important;
    border-color: #ead8c5 !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
    transform: none !important;
    opacity: .78 !important;
}

.btn-agregar-carrito.ok {
    background: #A85B18 !important;
    color: #ffffff !important;
    border-color: #A85B18 !important;
}

/* Botones peque�os de cantidad en carrito */
.js-carrito-restar,
.js-carrito-sumar,
.cart-sb-qty button,
.js-sb-menos,
.js-sb-mas {
    min-width: 34px !important;
    height: 34px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    color: #A85B18 !important;
    border: 1px solid #E0C5A8 !important;
    font-weight: 700 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .05) !important;
}

.js-carrito-restar:hover,
.js-carrito-sumar:hover,
.cart-sb-qty button:hover,
.js-sb-menos:hover,
.js-sb-mas:hover {
    background: #A85B18 !important;
    color: #ffffff !important;
    border-color: #A85B18 !important;
}

/* Bot�n eliminar: conserva intenci�n de peligro, pero con la misma forma */
.js-carrito-eliminar,
.cart-sb-del,
.js-sb-del {
    border-radius: 999px !important;
    color: #A85B18 !important;
    border: 1px solid #E0C5A8 !important;
    background: #ffffff !important;
}

.js-carrito-eliminar:hover,
.cart-sb-del:hover,
.js-sb-del:hover {
    background: #A85B18 !important;
    color: #ffffff !important;
    border-color: #A85B18 !important;
}

/* M�todos de pago: mismo ADN visual que los botones del index */
.metodo-pago-btn {
    border-color: #E0C5A8 !important;
    border-radius: 22px !important;
    background: #ffffff !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .04) !important;
}

.metodo-pago-btn:hover,
.metodo-pago-btn.seleccionado {
    border-color: #A85B18 !important;
    background: #fffaf4 !important;
    transform: translateY(-1px) !important;
}

.metodo-pago-btn:hover i,
.metodo-pago-btn:hover span,
.metodo-pago-btn.seleccionado i,
.metodo-pago-btn.seleccionado span {
    color: #A85B18 !important;
}

/* Variantes de producto: p�ldoras hermanas del bot�n principal */
.variant-pill-btn {
    border-color: #E0C5A8 !important;
    color: #A85B18 !important;
    background: #ffffff !important;
    border-radius: 999px !important;
    font-weight: 700 !important;
}

.variant-pill-btn:hover:not(:disabled),
.variant-pill-btn.activa {
    background: #A85B18 !important;
    border-color: #A85B18 !important;
    color: #ffffff !important;
}

/* Mantiene el bot�n del index exactamente con su presencia grande */
.btn-catalogo-completo {
    min-width: 500px !important;
}

@media (max-width: 575.98px) {
    .btn-catalogo-completo {
        min-width: 0 !important;
        width: 100% !important;
    }

    .btn,
    .btn.btn-primary,
    .btn-primary,
    .btn-outline-primary,
    .btn-outline-tezi,
    .btn-confirmar-pedido,
    .btn-agregar-carrito,
    .btn-sb-checkout,
    .btn-sb-ver,
    .btn-whatsapp {
        width: 100% !important;
    }
}

/* =========================================================
   RESTAURAR BOTÓN ÚNICAMENTE DE LA BARRA DE BÚSQUEDA
========================================================= */

.header-search-tezi .tezi-search-button {
    flex: 0 0 56px !important;
    width: 56px !important;
    min-width: 56px !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 14px 14px 0 !important;
    background: linear-gradient(135deg, #c7ad96 0%, #a88368 100%) !important;
    border: 1px solid #b99a80 !important;
    color: #ffffff !important;
    box-shadow: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    transform: none !important;
}

.header-search-tezi .tezi-search-button:hover {
    background: linear-gradient(135deg, #d0b9a4 0%, #9b775d 100%) !important;
    border-color: #a88368 !important;
    color: #ffffff !important;
    transform: none !important;
    box-shadow: none !important;
}

.header-search-tezi .tezi-search-button:focus,
.header-search-tezi .tezi-search-button:active {
    background: linear-gradient(135deg, #b99a80 0%, #8f6f58 100%) !important;
    border-color: #9b775d !important;
    color: #ffffff !important;
    box-shadow: 0 0 0 0.2rem rgba(185, 154, 128, 0.25) !important;
}

@media (max-width: 991px) {
    .header-search-tezi .tezi-search-button {
        width: 70px !important;
        flex: 0 0 70px !important;
        min-width: 70px !important;
    }
}

/* =========================================================
   MOBILE - Productos y proveedores: 2 cards por renglón
   Solo aplica en celular. Escritorio y tablet conservan layout actual.
========================================================= */

@media (max-width: 575.98px) {

    #homeProductos,
    #homeProveedores,
    #productosListado,
    #proveedoresListado,
    #productosRelacionados {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: stretch !important;
        row-gap: 12px !important;
        margin-left: -5px !important;
        margin-right: -5px !important;
    }

    #homeProductos>div,
    #homeProveedores>div,
    #productosListado>div,
    #proveedoresListado>div,
    #productosRelacionados>div {
        flex: 0 0 50% !important;
        max-width: 50% !important;
        width: 50% !important;
        padding-left: 5px !important;
        padding-right: 5px !important;
        margin-bottom: 0 !important;
        display: flex !important;
    }

    .product-card-link,
    .proveedor-card-link {
        width: 100% !important;
        height: 100% !important;
    }

    .product-card,
    .proveedor-card {
        width: 100% !important;
        height: 100% !important;
        border-radius: 14px !important;
        box-shadow: 0 10px 22px rgba(23, 23, 25, .06) !important;
    }

    .product-card:hover,
    .proveedor-card:hover {
        transform: none !important;
        box-shadow: 0 10px 22px rgba(23, 23, 25, .06) !important;
    }

    .product-image {
        height: 145px !important;
    }

    .product-card-body,
    .product-card .p-4,
    .product-card .p-3 {
        padding: 10px !important;
    }

    .product-badge {
        top: 8px !important;
        left: 8px !important;
        font-size: .65rem !important;
        padding: .25rem .45rem !important;
    }

    .product-title {
        font-size: .82rem !important;
        line-height: 1.25 !important;
        margin-bottom: 6px !important;
    }

    .product-price-box {
        gap: 5px !important;
    }

    .product-old-price {
        font-size: .72rem !important;
    }

    .product-offer-price {
        font-size: .92rem !important;
    }

    .proveedor-logo-wrap {
        height: 102px !important;
        flex: 0 0 102px !important;
        padding: 12px !important;
    }

    .proveedor-info {
        padding: 10px 8px 12px !important;
    }

    .proveedor-nombre {
        font-size: .82rem !important;
        line-height: 1.25 !important;
        margin-bottom: 5px !important;
    }

    .proveedor-notas {
        font-size: .72rem !important;
        line-height: 1.35 !important;
    }
}

/* =========================================================
   MOBILE - Categorías en carrusel compacto
   Solo móvil, PC queda igual
========================================================= */

@media (max-width: 575.98px) {

    #homeCategorias {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        gap: 10px !important;
        padding: 2px 4px 12px !important;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }

    #homeCategorias>div {
        flex: 0 0 118px !important;
        max-width: 118px !important;
        width: 118px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-bottom: 0 !important;
        scroll-snap-align: start;
    }

    #homeCategorias::-webkit-scrollbar {
        display: none;
    }

    #homeCategorias {
        scrollbar-width: none;
    }

    #homeCategorias .category-card {
        border-radius: 16px !important;
        box-shadow: 0 8px 18px rgba(0, 0, 0, .06) !important;
    }

    #homeCategorias .category-card img {
        height: 88px !important;
        border-bottom: none !important;
    }

    #homeCategorias .category-card .p-4 {
        padding: 8px 6px 10px !important;
        text-align: center !important;
    }

    #homeCategorias .category-card h4 {
        font-size: .76rem !important;
        line-height: 1.2 !important;
        margin: 0 !important;
        font-weight: 700 !important;
    }

    #homeCategorias .category-description,
    #homeCategorias .category-card p,
    #homeCategorias .category-card .btn {
        display: none !important;
    }
}

/* ==========================================================================
   Rentas y servicios
   ========================================================================== */

.rentas-servicios-page {
    padding-top: 28px;
}

.rs-hero-card {
    position: relative;
    overflow: hidden;
    border-radius: 30px;
    min-height: 260px;
    margin-bottom: 22px;
    background:
        linear-gradient(135deg, rgba(46, 26, 14, .92), rgba(139, 69, 19, .78)),
        radial-gradient(circle at top right, rgba(232, 196, 160, .35), transparent 36%);
    box-shadow: 0 20px 50px rgba(46, 26, 14, .16);
    color: #fff;
}

.rs-hero-card::after {
    content: "";
    position: absolute;
    right: -90px;
    bottom: -120px;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .08);
}

.rs-hero-content {
    position: relative;
    z-index: 2;
    max-width: 760px;
    padding: 48px 44px;
}

.rs-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    padding: 7px 14px;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 700;
    margin-bottom: 18px;
}

.rs-hero-content h1 {
    font-size: clamp(2rem, 4vw, 3.4rem);
    font-weight: 800;
    line-height: 1.05;
    margin-bottom: 16px;
}

.rs-hero-content p {
    max-width: 660px;
    color: rgba(255, 255, 255, .82);
    font-size: 1rem;
    margin-bottom: 0;
}

.rs-section-card {
    padding-top: 28px;
}

.rs-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(224, 197, 168, .35);
    margin-bottom: 16px;
}

.rs-toolbar h4 {
    font-weight: 800;
    color: var(--ts-black);
}

.rs-filtros {
    display: flex;
    gap: 10px;
    min-width: 460px;
}

.rs-filtros .form-control {
    border-radius: 999px;
    border-color: var(--ts-border);
    min-height: 44px;
}

.rs-filtros input {
    min-width: 280px;
}

.rs-chips-categorias {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 22px;
}

.rs-chip {
    border: 1px solid var(--ts-border);
    background: #fff;
    color: var(--ts-black-soft);
    border-radius: 999px;
    padding: 8px 14px;
    font-size: .82rem;
    font-weight: 700;
    cursor: pointer;
    transition: all .18s ease;
}

.rs-chip:hover,
.rs-chip.active {
    background: var(--ts-black);
    color: #fff;
    border-color: var(--ts-black);
}

.rs-categoria-section {
    margin-top: 28px;
}

.rs-categoria-section:first-child {
    margin-top: 0;
}

.rs-categoria-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.rs-categoria-label {
    display: block;
    color: var(--ts-beige-dark);
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: .7rem;
    font-weight: 800;
    margin-bottom: 2px;
}

.rs-categoria-header h3 {
    color: var(--ts-black);
    font-weight: 800;
    margin: 0;
}

.rs-categoria-count {
    min-width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(181, 101, 29, .12);
    color: var(--ts-beige-dark);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
}

.rs-card {
    background: #fff;
    border: 1px solid rgba(224, 197, 168, .55);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 14px 32px rgba(23, 23, 25, .06);
    transition: transform .18s ease, box-shadow .18s ease;
}

.rs-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 44px rgba(23, 23, 25, .10);
}

.rs-card-img-wrap {
    position: relative;
    height: 230px;
    background: #f6f3ef;
    overflow: hidden;
}

.rs-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .25s ease;
}

.rs-card:hover .rs-card-img {
    transform: scale(1.04);
}

.rs-card-type {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(46, 26, 14, .88);
    color: #fff;
    border-radius: 999px;
    padding: 7px 11px;
    font-size: .74rem;
    font-weight: 800;
}

.rs-card-logo {
    position: absolute;
    right: 14px;
    bottom: -28px;
    width: 72px;
    height: 72px;
    border-radius: 18px;
    background: #fff;
    border: 4px solid #fff;
    box-shadow: 0 10px 24px rgba(23, 23, 25, .16);
    overflow: hidden;
    z-index: 3;
}

.rs-card-logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rs-card-body {
    padding: 24px 20px 18px;
}

.rs-card-category {
    color: var(--ts-beige-dark);
    font-weight: 800;
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 6px;
}

.rs-card-title {
    color: var(--ts-black);
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.25;
    min-height: 2.7em;
    margin-bottom: 10px;
}

.rs-card-desc {
    color: var(--ts-muted);
    font-size: .9rem;
    line-height: 1.55;
    min-height: 4.2em;
    margin-bottom: 12px;
}

.rs-card-meta {
    display: flex;
    flex-direction: column;
    gap: 6px;
    color: var(--ts-black-soft);
    font-size: .82rem;
    margin-bottom: 15px;
}

.rs-card-meta span {
    display: flex;
    align-items: flex-start;
    gap: 7px;
}

.rs-card-meta i {
    color: var(--ts-beige-dark);
    margin-top: 3px;
    width: 14px;
}

.rs-card-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.rs-card-actions .btn {
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 700;
    padding: 8px 13px;
}

@media (max-width: 991.98px) {
    .rs-hero-content {
        padding: 38px 28px;
    }

    .rs-toolbar {
        flex-direction: column;
    }

    .rs-filtros {
        width: 100%;
        min-width: 0;
    }

    .rs-filtros input {
        min-width: 0;
    }
}

@media (max-width: 575.98px) {
    .rentas-servicios-page {
        padding-top: 18px;
    }

    .rs-hero-card {
        border-radius: 22px;
        min-height: auto;
    }

    .rs-hero-content {
        padding: 30px 20px;
    }

    .rs-hero-content h1 {
        font-size: 2rem;
    }

    .rs-section-card {
        padding: 18px 14px 22px;
        border-radius: 22px;
    }

    .rs-filtros {
        flex-direction: column;
    }

    .rs-card-img-wrap {
        height: 190px;
    }

    .rs-card-body {
        padding: 22px 16px 16px;
    }

    .rs-card-title,
    .rs-card-desc {
        min-height: auto;
    }

    .rs-card-actions .btn {
        width: 100%;
        justify-content: center;
    }
}

/* ==========================================================================
   Detalle de rentas y servicios
   ========================================================================== */

.rs-detail-card {
    padding: 28px;
}

.rs-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: 34px;
    align-items: start;
}

.rs-detail-main-image {
    width: 100%;
    height: 520px;
    object-fit: cover;
    border-radius: 24px;
    background: #f6f3ef;
    box-shadow: 0 16px 38px rgba(23, 23, 25, .08);
}

.rs-detail-head {
    display: flex;
    gap: 16px;
    align-items: center;
    margin-bottom: 18px;
}

.rs-detail-logo {
    width: 86px;
    height: 86px;
    border-radius: 22px;
    background: #fff;
    border: 1px solid rgba(224, 197, 168, .75);
    box-shadow: 0 12px 28px rgba(23, 23, 25, .10);
    overflow: hidden;
    flex: 0 0 auto;
}

.rs-detail-logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rs-detail-type {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: rgba(181, 101, 29, .12);
    color: var(--ts-beige-dark);
    border-radius: 999px;
    padding: 7px 12px;
    font-size: .75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 10px;
}

.rs-detail-info h1 {
    color: var(--ts-black);
    font-weight: 800;
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: 1.05;
    margin: 0 0 8px;
}

.rs-detail-category {
    color: var(--ts-muted);
    font-weight: 700;
    margin: 0;
}

.rs-detail-short {
    font-size: 1rem;
    color: var(--ts-black-soft);
    line-height: 1.7;
    margin-bottom: 22px;
}

.rs-detail-highlight {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 24px;
}

.rs-detail-highlight div {
    background: #fff;
    border: 1px solid rgba(224, 197, 168, .65);
    border-radius: 16px;
    padding: 14px;
}

.rs-detail-highlight span {
    display: block;
    color: var(--ts-muted);
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 800;
    margin-bottom: 4px;
}

.rs-detail-highlight strong {
    display: block;
    color: var(--ts-black);
    font-size: .92rem;
    line-height: 1.35;
}

.rs-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rs-detail-actions .btn {
    border-radius: 999px;
    font-weight: 700;
    padding: 10px 16px;
}

.rs-detail-extra {
    margin-top: 32px;
}

.rs-detail-panel {
    height: 100%;
    background: #fff;
    border: 1px solid rgba(224, 197, 168, .55);
    border-radius: 22px;
    padding: 24px;
    box-shadow: 0 12px 28px rgba(23, 23, 25, .05);
}

.rs-detail-panel h3 {
    color: var(--ts-black);
    font-weight: 800;
    font-size: 1.2rem;
    margin-bottom: 14px;
}

.rs-detail-panel p {
    color: var(--ts-black-soft);
    line-height: 1.75;
}

.rs-detail-contact-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.rs-detail-contact-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 8px 0;
    color: var(--ts-black-soft);
    border-bottom: 1px solid rgba(224, 197, 168, .35);
}

.rs-detail-contact-list li:last-child {
    border-bottom: 0;
}

.rs-detail-contact-list i {
    color: var(--ts-beige-dark);
    width: 18px;
    margin-top: 3px;
}

.rs-detail-redes {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
}

.rs-detail-redes a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border-radius: 999px;
    padding: 8px 12px;
    background: rgba(181, 101, 29, .10);
    color: var(--ts-black);
    font-size: .82rem;
    font-weight: 700;
}

.rs-detail-redes a:hover {
    background: var(--ts-black);
    color: #fff;
    text-decoration: none;
}

@media (max-width: 991.98px) {
    .rs-detail-layout {
        grid-template-columns: 1fr;
    }

    .rs-detail-main-image {
        height: 420px;
    }

    .rs-detail-highlight {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .rs-detail-card {
        padding: 16px;
        border-radius: 22px;
    }

    .rs-detail-main-image {
        height: 280px;
        border-radius: 18px;
    }

    .rs-detail-head {
        align-items: flex-start;
    }

    .rs-detail-logo {
        width: 68px;
        height: 68px;
        border-radius: 18px;
    }

    .rs-detail-actions .btn {
        width: 100%;
        justify-content: center;
    }

    .rs-detail-panel {
        padding: 18px;
        border-radius: 18px;
    }
}

.rs-card.js-rs-card-clickable {
    cursor: pointer;
}

.rs-card.js-rs-card-clickable .rs-card-actions {
    cursor: default;
}
/* Opiniones y calificaciones de producto */
.product-rating-stars {
    display: inline-flex;
    gap: 2px;
    color: #f5b301;
    line-height: 1;
}

.product-rating-summary {
    font-size: 0.95rem;
}

.product-reviews-section {
    clear: both;
}

.product-reviews-score {
    min-width: 180px;
}

.product-review-card {
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 18px;
    padding: 18px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.04);
    margin-bottom: 14px;
}

.product-review-card .badge {
    font-weight: 600;
    border-radius: 999px;
}

/* Contacto: guía dinámica por motivo */
.contact-dynamic-card {
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 20px;
    padding: 20px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.05);
}

.contact-dynamic-icon {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    background: rgba(0, 123, 255, 0.1);
    color: #007bff;
    font-size: 22px;
}

.contact-dynamic-card h5 {
    font-weight: 700;
    margin-bottom: 10px;
}

.contact-dynamic-list {
    padding-left: 18px;
    margin-bottom: 0;
    color: #555;
}

.contact-dynamic-list li {
    margin-bottom: 8px;
}

.contact-dynamic-list li:last-child {
    margin-bottom: 0;
}

/* Carrito: límites de stock visibles */
.carrito-stock,
.cart-sb-stock {
    color: #6c757d;
    font-size: 0.78rem;
    margin-top: 3px;
}

.carrito-cantidad button:disabled,
.cart-sb-qty button:disabled {
    cursor: not-allowed;
    opacity: 0.45;
}


/* Header dinámico TeziShop */
.tezi-header-dropdown {
    min-width: 270px;
    max-width: min(360px, calc(100vw - 24px));
    padding: 10px;
    border: 1px solid rgba(189, 163, 140, .28);
    border-radius: 14px !important;
    box-shadow: 0 18px 40px rgba(23, 23, 25, .14);
}

.tezi-header-dropdown-wide {
    min-width: 360px;
    max-width: min(520px, calc(100vw - 24px));
}

.tezi-header-dropdown .dropdown-divider {
    margin: 8px 0;
    border-top-color: rgba(189, 163, 140, .24);
}

.tezi-menu-title {
    padding: 6px 12px 4px;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ts-beige-dark);
}

.tezi-menu-item-rich {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 12px;
    border-radius: 10px;
    white-space: normal;
    line-height: 1.18;
}

.tezi-menu-item-text {
    display: block;
    min-width: 0;
}

.tezi-menu-item-text strong {
    display: block;
    color: var(--ts-black);
    font-size: .92rem;
    font-weight: 800;
}

.tezi-menu-item-text small {
    display: block;
    margin-top: 2px;
    color: #7b7068;
    font-size: .76rem;
}

.tezi-menu-count {
    flex: 0 0 auto;
    min-width: 28px;
    padding: 3px 8px;
    text-align: center;
    border-radius: 999px;
    color: var(--ts-black);
    background: var(--ts-cream-2);
    border: 1px solid rgba(189, 163, 140, .26);
    font-size: .72rem;
    font-weight: 800;
}

.tezi-menu-main-link {
    padding: 9px 12px;
    border-radius: 10px;
    font-weight: 800;
}

.tezi-menu-empty {
    display: block;
    padding: 10px 12px;
    color: #7b7068;
    font-size: .86rem;
}

.tezi-menu-service-group + .tezi-menu-service-group {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed rgba(189, 163, 140, .24);
}

@media (min-width: 992px) {
    .header-menu-tezi .nav-item.dropdown:hover > .dropdown-menu,
    .header-menu-tezi .nav-item.dropdown.show > .dropdown-menu {
        display: block;
    }

    .tezi-header-dropdown {
        max-height: min(72vh, 560px);
        overflow-y: auto;
    }
}

@media (max-width: 991.98px) {
    .tezi-header-dropdown,
    .tezi-header-dropdown-wide {
        min-width: 100%;
        max-width: 100%;
        margin: 4px 0 10px !important;
        border-radius: 12px !important;
        box-shadow: none;
    }
}

/* Carrusel de miniaturas en detalle de producto */
.product-thumbs-shell {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid rgba(224, 197, 168, .55);
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(255, 255, 255, .94) 0%, rgba(250, 247, 243, .86) 100%);
    box-shadow: 0 14px 30px rgba(76, 52, 33, .06);
    overflow: hidden;
}

.product-thumbs-empty {
    display: none;
}

.product-thumbs-track {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    overflow-x: auto;
    scroll-behavior: smooth;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    padding: 2px 4px;
}

.product-thumbs-track::-webkit-scrollbar {
    display: none;
}

.product-thumb-card {
    flex: 0 0 auto;
    width: 116px;
    height: 116px;
    padding: 7px;
    border: 1px solid rgba(224, 197, 168, .9);
    border-radius: 22px;
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 10px 22px rgba(76, 52, 33, .055);
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
    scroll-snap-align: center;
}

.product-thumb-card:hover,
.product-thumb-card:focus {
    transform: translateY(-2px);
    border-color: rgba(183, 111, 52, .58);
    box-shadow: 0 16px 28px rgba(183, 111, 52, .13);
    outline: none;
}

.product-thumb-card.active {
    border-color: var(--ts-beige-dark);
    background: linear-gradient(180deg, #fff 0%, rgba(250, 241, 232, .95) 100%);
    box-shadow: 0 16px 30px rgba(183, 111, 52, .16);
}

.product-thumb-card .detail-thumb,
.product-thumbs-shell .detail-thumb {
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 16px;
    object-fit: cover;
    background: #fff;
}

.product-thumbs-nav {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(224, 197, 168, .9);
    border-radius: 999px;
    background: #fff;
    color: var(--ts-beige-dark);
    box-shadow: 0 10px 20px rgba(76, 52, 33, .08);
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease, background .18s ease;
    z-index: 2;
}

.product-thumbs-nav:hover:not(:disabled),
.product-thumbs-nav:focus:not(:disabled) {
    transform: translateY(-1px);
    background: var(--ts-beige-dark);
    color: #fff;
    box-shadow: 0 14px 26px rgba(183, 111, 52, .22);
    outline: none;
}

.product-thumbs-nav:disabled {
    opacity: .35;
    cursor: default;
    box-shadow: none;
}

.product-thumbs-no-scroll .product-thumbs-nav {
    display: none;
}

@media (max-width: 767.98px) {
    .product-thumbs-shell {
        padding: 10px;
        border-radius: 20px;
        gap: 8px;
    }

    .product-thumb-card {
        width: 92px;
        height: 92px;
        border-radius: 18px;
        padding: 5px;
    }

    .product-thumb-card .detail-thumb,
    .product-thumbs-shell .detail-thumb {
        border-radius: 13px;
    }

    .product-thumbs-nav {
        flex-basis: 36px;
        width: 36px;
        height: 36px;
        font-size: .82rem;
    }
}

/* Carrusel de productos relacionados */
.related-products-carousel {
    position: relative;
    display: flex !important;
    align-items: center;
    gap: 14px;
    width: 100%;
    margin: 0 !important;
}

.related-products-track {
    display: flex;
    align-items: stretch;
    gap: 16px;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    padding: 8px 4px 18px;
}

.related-products-track::-webkit-scrollbar {
    display: none;
}

.related-products-track > div {
    flex: 0 0 245px !important;
    max-width: 245px !important;
    width: 245px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-bottom: 0 !important;
    display: flex !important;
    scroll-snap-align: start;
}

.related-products-track .product-card-link {
    width: 100%;
    height: 100%;
}

.related-products-track .product-card {
    width: 100%;
    transition: transform .22s ease, box-shadow .22s ease;
}

.related-products-track .product-card:hover {
    transform: translateY(-4px);
}

.related-products-nav {
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(224, 197, 168, .92);
    border-radius: 999px;
    background: rgba(255, 255, 255, .96);
    color: var(--ts-beige-dark);
    box-shadow: 0 12px 24px rgba(76, 52, 33, .10);
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease, background .18s ease, color .18s ease;
    z-index: 2;
}

.related-products-nav:hover:not(:disabled),
.related-products-nav:focus:not(:disabled) {
    transform: translateY(-2px);
    background: var(--ts-beige-dark);
    color: #fff;
    box-shadow: 0 16px 30px rgba(183, 111, 52, .22);
    outline: none;
}

.related-products-nav:disabled {
    opacity: .34;
    cursor: default;
    box-shadow: none;
}

.related-products-no-scroll .related-products-nav {
    display: none;
}

@media (min-width: 1200px) {
    .related-products-track > div {
        flex-basis: 268px !important;
        max-width: 268px !important;
        width: 268px !important;
    }
}

@media (max-width: 767.98px) {
    #productosRelacionados.related-products-carousel {
        flex-wrap: nowrap !important;
        align-items: center !important;
        row-gap: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .related-products-track {
        gap: 12px;
        padding: 6px 2px 14px;
    }

    .related-products-track > div {
        flex: 0 0 74vw !important;
        max-width: 74vw !important;
        width: 74vw !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .related-products-nav {
        flex-basis: 38px;
        width: 38px;
        height: 38px;
        font-size: .82rem;
    }
}

/* Pulido visual de Rentas y Servicios */
.rs-hero-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.rs-hero-badges span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-radius: 999px;
    padding: 9px 14px;
    background: rgba(255, 255, 255, .14);
    border: 1px solid rgba(255, 255, 255, .22);
    color: #fff;
    font-weight: 800;
    font-size: .84rem;
    backdrop-filter: blur(4px);
}

.rs-toolbar-kicker {
    display: inline-block;
    color: var(--ts-beige-dark);
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: .72rem;
    font-weight: 900;
    margin-bottom: 4px;
}

.rs-search-field {
    position: relative;
    flex: 1 1 280px;
}

.rs-search-field i {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--ts-beige-dark);
    z-index: 2;
    pointer-events: none;
}

.rs-search-field .form-control {
    width: 100%;
    padding-left: 42px;
}

.rs-type-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 4px 0 20px;
}

.rs-type-card {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 72px;
    padding: 12px 14px;
    border-radius: 20px;
    border: 1px solid rgba(224, 197, 168, .7);
    background: linear-gradient(135deg, #fff, #fbf7f2);
    color: var(--ts-black);
    box-shadow: 0 10px 24px rgba(23, 23, 25, .045);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.rs-type-card:hover,
.rs-type-card.active {
    color: var(--ts-black);
    text-decoration: none;
    transform: translateY(-2px);
    border-color: rgba(181, 101, 29, .45);
    box-shadow: 0 16px 34px rgba(181, 101, 29, .13);
}

.rs-type-card.active {
    background: linear-gradient(135deg, rgba(181, 101, 29, .16), rgba(255, 255, 255, .95));
}

.rs-type-icon {
    width: 42px;
    height: 42px;
    border-radius: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(181, 101, 29, .12);
    color: var(--ts-beige-dark);
    flex: 0 0 auto;
}

.rs-type-card strong,
.rs-type-card small {
    display: block;
    line-height: 1.25;
}

.rs-type-card strong {
    font-weight: 900;
    font-size: .92rem;
}

.rs-type-card small {
    color: var(--ts-muted);
    font-size: .76rem;
    font-weight: 700;
    margin-top: 3px;
}

.rs-card {
    position: relative;
}

.rs-card::after {
    content: "";
    position: absolute;
    inset: auto 18px 0;
    height: 3px;
    border-radius: 999px 999px 0 0;
    background: linear-gradient(90deg, transparent, rgba(181, 101, 29, .32), transparent);
    opacity: 0;
    transition: opacity .18s ease;
}

.rs-card:hover::after {
    opacity: 1;
}

.rs-map-mini {
    width: 39px;
    height: 39px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
    border-color: rgba(224, 197, 168, .7) !important;
    color: var(--ts-beige-dark) !important;
}

.rs-detail-breadcrumb {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px;
    color: var(--ts-muted);
    font-weight: 700;
    font-size: .9rem;
}

.rs-detail-breadcrumb a {
    color: var(--ts-beige-dark);
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.rs-detail-breadcrumb a:hover {
    color: var(--ts-black);
    text-decoration: none;
}

.rs-detail-media {
    position: sticky;
    top: 118px;
}

.rs-detail-thumbs-shell {
    position: relative;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    gap: 10px;
    align-items: center;
    margin-top: 16px;
}

.rs-detail-thumbs-track {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    scroll-behavior: smooth;
    padding: 5px 2px 8px;
    scrollbar-width: none;
}

.rs-detail-thumbs-track::-webkit-scrollbar {
    display: none;
}

.rs-detail-thumb {
    width: 92px;
    height: 92px;
    border-radius: 18px;
    padding: 5px;
    background: #fff;
    border: 1px solid rgba(224, 197, 168, .75);
    box-shadow: 0 8px 18px rgba(23, 23, 25, .06);
    flex: 0 0 auto;
    cursor: pointer;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.rs-detail-thumb:hover,
.rs-detail-thumb.active {
    transform: translateY(-2px);
    border-color: var(--ts-beige-dark);
    box-shadow: 0 12px 26px rgba(181, 101, 29, .16);
}

.rs-detail-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 13px;
}

.rs-detail-thumbs-nav {
    width: 42px;
    height: 42px;
    border: 1px solid rgba(224, 197, 168, .75);
    background: #fff;
    color: var(--ts-beige-dark);
    border-radius: 50%;
    box-shadow: 0 8px 20px rgba(23, 23, 25, .08);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all .18s ease;
}

.rs-detail-thumbs-nav:hover:not(:disabled) {
    background: var(--ts-beige-dark);
    color: #fff;
    transform: translateY(-1px);
}

.rs-detail-thumbs-nav:disabled,
.rs-detail-thumbs-no-scroll .rs-detail-thumbs-nav {
    opacity: .35;
    cursor: default;
    transform: none;
}

.rs-detail-trust-note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 18px;
    padding: 13px 15px;
    border-radius: 18px;
    background: rgba(181, 101, 29, .08);
    border: 1px solid rgba(224, 197, 168, .62);
    color: var(--ts-black-soft);
    font-size: .86rem;
    line-height: 1.5;
}

.rs-detail-trust-note i {
    color: var(--ts-beige-dark);
    margin-top: 2px;
}

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

    .rs-detail-media {
        position: static;
    }
}

@media (max-width: 575.98px) {
    .rs-hero-badges span {
        width: 100%;
        justify-content: center;
    }

    .rs-type-summary {
        grid-template-columns: 1fr;
    }

    .rs-detail-thumbs-shell {
        grid-template-columns: 36px minmax(0, 1fr) 36px;
        gap: 7px;
    }

    .rs-detail-thumbs-nav {
        width: 36px;
        height: 36px;
    }

    .rs-detail-thumb {
        width: 78px;
        height: 78px;
        border-radius: 16px;
    }
}

/* =========================================================
   PROVEEDORES - Pulido visual y categorías activas
========================================================= */
.proveedores-page-card {
    padding-top: 30px;
}

.proveedores-page-head {
    max-width: 780px;
    margin: 0 auto 26px;
}

.proveedores-page-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 18px;
    border: 1px solid rgba(184, 110, 44, .28);
    border-radius: 999px;
    color: var(--ts-brown, #b66b2e);
    background: linear-gradient(135deg, rgba(255, 250, 245, .96), rgba(255, 255, 255, .98));
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    box-shadow: 0 10px 26px rgba(184, 110, 44, .08);
}

.proveedores-page-head h1 {
    margin: 16px 0 8px;
    font-size: clamp(1.7rem, 2.8vw, 2.45rem);
    line-height: 1.15;
    font-weight: 800;
    color: var(--ts-black, #171719);
}

.proveedores-page-head p {
    margin: 0 auto;
    max-width: 650px;
    color: #6f6870;
    font-size: .98rem;
    line-height: 1.65;
}

.proveedor-logo-wrap {
    position: relative;
}

.proveedor-stock-badge {
    position: absolute;
    right: 12px;
    top: 12px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 9px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .92);
    color: var(--ts-brown, #b66b2e);
    border: 1px solid rgba(184, 110, 44, .18);
    font-size: .68rem;
    font-weight: 800;
    box-shadow: 0 8px 18px rgba(23, 23, 25, .08);
}

.proveedor-categorias {
    width: 100%;
    margin-top: 12px;
}

.proveedor-categorias-label {
    display: block;
    margin-bottom: 7px;
    color: #9b8f88;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.proveedor-categorias-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
}

.proveedor-categoria-chip {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(184, 110, 44, .08);
    color: #9b5319;
    border: 1px solid rgba(184, 110, 44, .18);
    font-size: .72rem;
    font-weight: 700;
    line-height: 1.2;
}

.proveedor-categoria-chip-more {
    background: rgba(23, 23, 25, .05);
    color: #6f6870;
    border-color: rgba(23, 23, 25, .08);
}

.proveedor-card-cta {
    margin: 14px auto 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: var(--ts-brown, #b66b2e);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
    transition: transform .2s ease, color .2s ease;
}

.proveedor-card:hover .proveedor-card-cta {
    transform: translateX(3px);
    color: #8f4b15;
}

@media (max-width: 575.98px) {
    .proveedores-page-card {
        padding: 22px 14px 24px;
        border-radius: 22px;
    }

    .proveedores-page-head {
        margin-bottom: 18px;
    }

    .proveedores-page-kicker {
        padding: 7px 13px;
        font-size: .65rem;
        letter-spacing: .1em;
    }

    .proveedores-page-head h1 {
        font-size: 1.35rem;
    }

    .proveedores-page-head p {
        font-size: .82rem;
        line-height: 1.5;
    }

    .proveedor-stock-badge {
        top: 8px;
        right: 8px;
        padding: 4px 7px;
        font-size: .58rem;
    }

    .proveedor-categorias {
        margin-top: 8px;
    }

    .proveedor-categorias-label {
        font-size: .56rem;
        margin-bottom: 5px;
    }

    .proveedor-categorias-list {
        gap: 4px;
    }

    .proveedor-categoria-chip {
        padding: 4px 7px;
        font-size: .6rem;
    }

    .proveedor-card-cta {
        margin-top: 10px;
        font-size: .62rem;
    }
}

body:not([data-page="proveedores"]) .proveedor-categorias,
body:not([data-page="proveedores"]) .proveedor-card-cta,
body:not([data-page="proveedores"]) .proveedor-stock-badge {
    display: none !important;
}

.productos-filter-toggle {
    width: 100%;
    display: none;
    align-items: center;
    gap: 12px;
    border: 1px solid rgba(189, 163, 140, .36) !important;
    border-radius: 18px !important;
    padding: 12px 14px !important;
    background: linear-gradient(135deg, #fffaf3 0%, #f4e4cf 100%) !important;
    color: var(--ts-black) !important;
    box-shadow: 0 12px 28px rgba(68, 37, 18, .10);
    text-align: left;
}

.productos-filter-toggle:focus,
.productos-filter-toggle:hover {
    color: var(--ts-black) !important;
    box-shadow: 0 16px 34px rgba(68, 37, 18, .14);
    transform: translateY(-1px);
}

.productos-filter-toggle-icon {
    width: 38px;
    height: 38px;
    min-width: 38px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--ts-beige) 0%, #d7a36a 100%);
    color: #fff;
    box-shadow: 0 10px 20px rgba(143, 79, 38, .18);
}

.productos-filter-toggle-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.15;
    flex: 1;
}

.productos-filter-toggle-copy strong {
    font-size: .98rem;
    font-weight: 800;
    letter-spacing: -.01em;
}

.productos-filter-toggle-copy small {
    margin-top: 3px;
    color: var(--ts-muted);
    font-size: .75rem;
    white-space: normal;
}

.productos-filter-toggle-chevron {
    color: var(--ts-beige-dark);
    transition: transform .2s ease;
}

.productos-filter-toggle[aria-expanded="true"] .productos-filter-toggle-chevron {
    transform: rotate(180deg);
}

@media (min-width: 992px) {
    .productos-filter-toggle {
        display: none !important;
    }

    .productos-filter-collapse.collapse,
    .productos-filter-collapse.collapsing {
        display: block !important;
        height: auto !important;
        visibility: visible !important;
    }
}

@media (max-width: 991.98px) {
    .productos-filtros-aside {
        margin-bottom: 16px !important;
    }

    .productos-filter-toggle {
        display: flex;
    }

    .productos-filter-collapse {
        margin-top: 12px;
    }

    .productos-filter-collapse .filter-box-tezi {
        border-radius: 20px;
        box-shadow: 0 16px 36px rgba(68, 37, 18, .10);
    }

    .productos-filter-collapse.collapse:not(.show) {
        display: none;
    }
}

.contact-info-mobile-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.contact-mobile-kicker {
    display: inline-flex;
    align-items: center;
    color: var(--ts-beige-dark);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.contact-guide-toggle {
    border-radius: 999px;
    border: 1px solid rgba(181, 101, 29, .28);
    color: var(--ts-beige-dark);
    background: rgba(255, 255, 255, .86);
    font-weight: 800;
    font-size: .82rem;
    padding: 8px 12px;
    white-space: nowrap;
    box-shadow: 0 8px 18px rgba(0, 0, 0, .06);
}

.contact-guide-toggle:hover,
.contact-guide-toggle:focus {
    color: #fff;
    background: var(--ts-beige-dark);
    border-color: var(--ts-beige-dark);
}

@media (max-width: 991.98px) {
    .contact-info-card {
        padding: 16px 16px 14px;
        margin-bottom: 16px;
    }

    .contact-info-card h2 {
        font-size: 1.25rem;
        margin-bottom: 0;
    }

    .contact-guide-body {
        margin-top: 14px;
    }

    .contact-guide-body > p {
        font-size: .9rem;
        margin-bottom: 12px;
    }

    .contact-dynamic-card {
        padding: 15px;
        border-radius: 16px;
        box-shadow: 0 8px 20px rgba(0, 0, 0, .045);
    }

    .contact-dynamic-icon {
        width: 42px;
        height: 42px;
        margin-bottom: 10px;
        font-size: 18px;
    }

    .contact-dynamic-card h5 {
        font-size: 1rem;
        margin-bottom: 6px;
    }

    .contact-dynamic-list li {
        margin-bottom: 6px;
    }
}

@media (max-width: 575.98px) {
    .contact-info-mobile-head {
        align-items: center;
    }

    .contact-mobile-kicker {
        font-size: .68rem;
        margin-bottom: 4px;
    }

    .contact-guide-toggle {
        font-size: .76rem;
        padding: 7px 10px;
    }

    .contact-form-card {
        padding: 18px 16px;
    }
}

@media (max-width: 767.98px) {
    .product-detail-sku,
    .product-detail-description,
    .product-variants-heading {
        display: none !important;
    }

    .product-detail-info h1 {
        font-size: 1.65rem;
        line-height: 1.18;
        margin-bottom: .65rem !important;
    }

    .product-detail-info .display-4 {
        font-size: 2rem;
    }

    .product-detail-info .mb-4 {
        margin-bottom: 1rem !important;
    }

    #productosRelacionados.related-products-carousel {
        display: block !important;
        position: relative;
        padding: 0 2px;
    }

    .related-products-track {
        width: 100%;
        gap: 14px;
        padding: 8px 42px 18px 4px;
        scroll-snap-type: x mandatory;
    }

    .related-products-track > div {
        flex: 0 0 76vw !important;
        max-width: 76vw !important;
        width: 76vw !important;
        scroll-snap-align: center;
    }

    .related-products-nav {
        position: absolute;
        top: 46%;
        transform: translateY(-50%);
        width: 36px;
        height: 36px;
        flex-basis: 36px;
        background: rgba(255, 255, 255, .96);
        box-shadow: 0 10px 22px rgba(76, 52, 33, .14);
    }

    .related-products-nav:hover:not(:disabled),
    .related-products-nav:focus:not(:disabled) {
        transform: translateY(-50%) scale(1.04);
    }

    .related-products-prev {
        left: 4px;
    }

    .related-products-next {
        right: 4px;
    }

    .related-products-nav:disabled {
        opacity: 0;
        pointer-events: none;
    }
}

@media (max-width: 767.98px) {
    #productosRelacionados.related-products-carousel {
        display: grid !important;
        grid-template-columns: 36px minmax(0, 1fr) 36px;
        align-items: center !important;
        column-gap: 8px;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        overflow: hidden;
    }

    #productosRelacionados.related-products-carousel > .related-products-track {
        grid-column: 2;
        grid-row: 1;
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        gap: 12px !important;
        margin: 0 !important;
        padding: 8px 2px 18px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scroll-snap-type: x mandatory;
    }

    #productosRelacionados.related-products-carousel > .related-products-track > div {
        flex: 0 0 min(250px, 74vw) !important;
        width: min(250px, 74vw) !important;
        max-width: min(250px, 74vw) !important;
        min-width: min(250px, 74vw) !important;
        display: flex !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin: 0 !important;
        scroll-snap-align: center;
    }

    #productosRelacionados.related-products-carousel .product-card-link,
    #productosRelacionados.related-products-carousel .product-card {
        width: 100% !important;
        height: 100% !important;
    }

    #productosRelacionados.related-products-carousel .product-image {
        height: 150px !important;
        object-fit: cover;
    }

    #productosRelacionados.related-products-carousel .product-card-body,
    #productosRelacionados.related-products-carousel .product-card .p-4,
    #productosRelacionados.related-products-carousel .product-card .p-3 {
        padding: 12px !important;
    }

    #productosRelacionados.related-products-carousel .product-title {
        font-size: .88rem !important;
        line-height: 1.28 !important;
    }

    #productosRelacionados.related-products-carousel .product-offer-price {
        font-size: 1rem !important;
    }

    #productosRelacionados.related-products-carousel > .related-products-nav {
        position: static !important;
        transform: none !important;
        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
        flex-basis: 36px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        z-index: 3;
    }

    #productosRelacionados.related-products-carousel > .related-products-prev {
        grid-column: 1;
        grid-row: 1;
    }

    #productosRelacionados.related-products-carousel > .related-products-next {
        grid-column: 3;
        grid-row: 1;
    }

    #productosRelacionados.related-products-carousel > .related-products-nav:hover:not(:disabled),
    #productosRelacionados.related-products-carousel > .related-products-nav:focus:not(:disabled) {
        transform: scale(1.04) !important;
    }
}

@media (max-width: 390px) {
    #productosRelacionados.related-products-carousel {
        grid-template-columns: 32px minmax(0, 1fr) 32px;
        column-gap: 6px;
    }

    #productosRelacionados.related-products-carousel > .related-products-track > div {
        flex-basis: min(230px, 72vw) !important;
        width: min(230px, 72vw) !important;
        max-width: min(230px, 72vw) !important;
        min-width: min(230px, 72vw) !important;
    }

    #productosRelacionados.related-products-carousel > .related-products-nav {
        width: 32px !important;
        height: 32px !important;
        min-width: 32px !important;
        flex-basis: 32px !important;
    }
}

@media (max-width: 575.98px) {
    .rentas-servicios-page {
        padding-top: 10px;
    }

    .rentas-servicios-page .ecommerce-wide-container {
        padding-left: 10px;
        padding-right: 10px;
    }

    .rs-section-card {
        padding: 14px 12px 18px;
        border-radius: 20px;
    }

    .rs-toolbar {
        gap: 12px;
        padding-bottom: 12px;
        margin-bottom: 12px;
    }

    .rs-toolbar-kicker {
        font-size: .66rem;
        letter-spacing: .08em;
        margin-bottom: 2px;
    }

    .rs-toolbar h4 {
        font-size: 1.08rem;
        line-height: 1.25;
        margin-bottom: 3px !important;
    }

    .rs-toolbar p {
        font-size: .82rem;
        line-height: 1.35;
    }

    .rs-filtros {
        gap: 8px;
    }

    .rs-search-field {
        flex-basis: auto;
    }

    .rs-search-field .form-control,
    .rs-filtros .form-control {
        min-height: 42px;
        font-size: .86rem;
    }

    .rs-type-summary {
        display: flex;
        grid-template-columns: none;
        gap: 9px;
        overflow-x: auto;
        padding: 2px 2px 10px;
        margin: 0 -2px 12px;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
    }

    .rs-type-summary::-webkit-scrollbar {
        display: none;
    }

    .rs-type-card {
        min-width: 138px;
        min-height: 58px;
        padding: 9px 10px;
        border-radius: 18px;
        gap: 9px;
        scroll-snap-align: start;
    }

    .rs-type-icon {
        width: 34px;
        height: 34px;
        border-radius: 13px;
    }

    .rs-type-card strong {
        font-size: .82rem;
    }

    .rs-type-card small {
        font-size: .68rem;
    }

    .rs-chips-categorias {
        flex-wrap: nowrap;
        overflow-x: auto;
        gap: 7px;
        padding: 1px 2px 10px;
        margin: 0 -2px 12px;
        scrollbar-width: none;
    }

    .rs-chips-categorias::-webkit-scrollbar {
        display: none;
    }

    .rs-chip {
        flex: 0 0 auto;
        padding: 7px 12px;
        font-size: .76rem;
        white-space: nowrap;
    }

    .rs-categoria-section {
        margin-top: 18px;
    }

    .rs-categoria-header {
        margin-bottom: 10px;
        align-items: flex-end;
    }

    .rs-categoria-label {
        font-size: .62rem;
    }

    .rs-categoria-header h3 {
        font-size: 1.05rem;
        line-height: 1.25;
    }

    .rs-categoria-count {
        min-width: 30px;
        height: 30px;
        font-size: .78rem;
    }

    .rs-card {
        border-radius: 18px;
        box-shadow: 0 10px 24px rgba(23, 23, 25, .06);
    }

    .rs-card-img-wrap {
        height: 148px;
    }

    .rs-card-type {
        top: 10px;
        left: 10px;
        padding: 6px 9px;
        font-size: .68rem;
    }

    .rs-card-logo {
        width: 54px;
        height: 54px;
        right: 12px;
        bottom: -20px;
        border-radius: 15px;
        border-width: 3px;
    }

    .rs-card-body {
        padding: 18px 14px 14px;
    }

    .rs-card-category {
        font-size: .68rem;
        margin-bottom: 4px;
    }

    .rs-card-title {
        font-size: 1rem;
        line-height: 1.22;
        margin-bottom: 7px;
    }

    .rs-card-desc {
        font-size: .82rem;
        line-height: 1.42;
        margin-bottom: 9px;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .rs-card-meta {
        gap: 4px;
        font-size: .76rem;
        margin-bottom: 11px;
    }

    .rs-card-actions {
        display: grid;
        grid-template-columns: 1fr 1fr auto;
        gap: 7px;
        align-items: stretch;
    }

    .rs-card-actions .btn {
        width: 100%;
        min-height: 38px;
        padding: 7px 9px;
        font-size: .74rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
    }

    .rs-card-actions .rs-map-mini {
        width: 38px;
        min-width: 38px;
        height: 38px;
    }

    .rs-detail-card {
        padding: 14px 12px 18px;
        border-radius: 20px;
    }

    .rs-detail-breadcrumb {
        font-size: .78rem;
        margin-bottom: 10px;
    }

    .rs-detail-main-image {
        height: 250px;
        border-radius: 18px;
    }

    .rs-detail-thumbs-shell {
        margin-top: 10px;
        grid-template-columns: 34px minmax(0, 1fr) 34px;
        gap: 6px;
    }

    .rs-detail-thumbs-nav {
        width: 34px;
        height: 34px;
    }

    .rs-detail-thumb {
        width: 70px;
        height: 70px;
        border-radius: 15px;
    }

    .rs-detail-info h1 {
        font-size: 1.55rem;
        line-height: 1.18;
        margin-bottom: 8px;
    }

    .rs-detail-head {
        gap: 10px;
        margin-top: 14px;
    }

    .rs-detail-logo {
        width: 56px;
        height: 56px;
        border-radius: 16px;
    }

    .rs-detail-type {
        font-size: .72rem;
        padding: 7px 10px;
    }

    .rs-detail-category {
        font-size: .76rem;
        margin-bottom: 8px;
    }

    .rs-detail-short {
        font-size: .9rem;
        line-height: 1.5;
    }

    .rs-detail-highlight {
        grid-template-columns: 1fr;
        gap: 8px;
        margin: 14px 0;
    }

    .rs-detail-highlight div {
        padding: 11px 12px;
        border-radius: 16px;
    }

    .rs-detail-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .rs-detail-actions .btn {
        width: 100%;
        min-height: 42px;
        justify-content: center;
        font-size: .84rem;
    }

    .rs-detail-trust-note {
        margin-top: 12px;
        padding: 11px 12px;
        border-radius: 16px;
        font-size: .8rem;
    }

    .rs-detail-extra {
        margin-top: 4px;
    }

    .rs-detail-panel {
        padding: 16px 14px;
        border-radius: 18px;
    }

    .rs-detail-panel h3 {
        font-size: 1rem;
        margin-bottom: 10px;
    }

    .rs-detail-panel p,
    .rs-detail-contact-list {
        font-size: .86rem;
    }
}

.home-categorias-carousel-wrap {
    position: relative;
}

.home-categorias-nav {
    display: none;
}

@media (max-width: 575.98px) {
    .home-categorias-carousel-wrap {
        margin-left: -4px;
        margin-right: -4px;
        padding-left: 4px;
        padding-right: 4px;
    }

    .home-categorias-carousel-wrap #homeCategorias {
        padding-left: 8px !important;
        padding-right: 8px !important;
        scroll-behavior: smooth;
    }

    .home-categorias-nav {
        position: absolute;
        top: 50%;
        z-index: 5;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 34px;
        height: 34px;
        border: 0;
        border-radius: 999px;
        background: rgba(255, 255, 255, .96);
        color: #8a5a25;
        box-shadow: 0 10px 22px rgba(87, 58, 28, .18);
        transform: translateY(-50%);
        transition: opacity .18s ease, transform .18s ease, box-shadow .18s ease;
    }

    .home-categorias-nav i {
        font-size: .78rem;
    }

    .home-categorias-nav-prev {
        left: 0;
    }

    .home-categorias-nav-next {
        right: 0;
    }

    .home-categorias-nav:disabled {
        opacity: .28;
        box-shadow: none;
        pointer-events: none;
    }

    .home-categorias-nav:not(:disabled):active {
        transform: translateY(-50%) scale(.94);
    }
}

/* Bienvenida inicial TeziuShop */
.tezi-welcome-overlay {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 22px;
    background: rgba(31, 24, 19, .58);
    backdrop-filter: blur(8px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
}

.tezi-welcome-overlay.tezi-welcome-visible {
    opacity: 1;
    pointer-events: auto;
}

.tezi-welcome-overlay.tezi-welcome-closing {
    opacity: 0;
}

.tezi-welcome-card {
    position: relative;
    width: min(1120px, 100%);
    max-height: calc(100vh - 36px);
    overflow-y: auto;
    border-radius: 30px;
    padding: 28px 34px;
    background:
        radial-gradient(circle at top left, rgba(255, 239, 219, .96), transparent 38%),
        linear-gradient(145deg, #fff 0%, #fff8f1 100%);
    border: 1px solid rgba(224, 197, 168, .75);
    box-shadow: 0 28px 80px rgba(26, 18, 12, .28);
    transform: translateY(12px) scale(.98);
    transition: transform .2s ease;
}

.tezi-welcome-visible .tezi-welcome-card {
    transform: translateY(0) scale(1);
}

.tezi-welcome-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 999px;
    background: rgba(76, 52, 33, .08);
    color: #6f4b2f;
    font-size: 1.55rem;
    line-height: 1;
    cursor: pointer;
    transition: background .18s ease, color .18s ease, transform .18s ease;
}

.tezi-welcome-close:hover,
.tezi-welcome-close:focus {
    background: var(--ts-beige-dark);
    color: #fff;
    transform: rotate(4deg);
    outline: none;
}

.tezi-welcome-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    padding: 8px 14px;
    border-radius: 999px;
    color: var(--ts-beige-dark);
    background: rgba(255, 255, 255, .78);
    border: 1px solid rgba(224, 197, 168, .85);
    font-weight: 800;
    font-size: .82rem;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.tezi-welcome-card h2 {
    max-width: 840px;
    margin: 0 0 12px;
    color: #2b211b;
    font-size: clamp(1.55rem, 2.7vw, 2.45rem);
    line-height: 1.08;
    font-weight: 800;
}

.tezi-welcome-lead {
    max-width: 860px;
    margin: 0 0 18px;
    color: #6f6259;
    font-size: 1rem;
    line-height: 1.5;
}

.tezi-welcome-benefits {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.tezi-welcome-benefits > div {
    padding: 15px;
    border-radius: 22px;
    background: rgba(255, 255, 255, .82);
    border: 1px solid rgba(224, 197, 168, .62);
    box-shadow: 0 12px 28px rgba(76, 52, 33, .055);
}

.tezi-welcome-benefits i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin-bottom: 9px;
    border-radius: 50%;
    color: #fff;
    background: var(--ts-beige-dark);
    box-shadow: 0 10px 22px rgba(183, 111, 52, .2);
}

.tezi-welcome-benefits strong,
.tezi-welcome-benefits span {
    display: block;
}

.tezi-welcome-benefits strong {
    margin-bottom: 6px;
    color: #2b211b;
    font-size: .98rem;
}

.tezi-welcome-benefits span {
    color: #74675e;
    font-size: .86rem;
    line-height: 1.42;
}

.tezi-welcome-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.tezi-welcome-actions .btn {
    border-radius: 999px;
    padding: 10px 22px;
    font-weight: 800;
}


@media (min-width: 768px) {
    .tezi-welcome-overlay {
        padding: 18px 28px;
    }

    .tezi-welcome-card {
        overflow-y: visible;
    }
}

@media (min-width: 768px) and (max-width: 1099.98px) {
    .tezi-welcome-benefits {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .contact-guide-toggle {
        display: none !important;
    }
}

@media (max-width: 767.98px) {
    .tezi-welcome-overlay {
        align-items: center;
        justify-content: center;
        height: 100vh;
        height: 100svh;
        height: 100dvh;
        overflow-y: auto;
        padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));
    }

    .tezi-welcome-card {
        width: 100%;
        max-height: calc(100vh - 24px);
        max-height: calc(100svh - 24px);
        max-height: calc(100dvh - 24px);
        overflow-y: auto;
        border-radius: 22px;
        padding: 24px 18px 18px;
    }

    .tezi-welcome-card h2 {
        font-size: 1.35rem;
        line-height: 1.12;
        margin-bottom: 10px;
        padding-right: 28px;
    }

    .tezi-welcome-lead {
        font-size: .9rem;
        line-height: 1.38;
        margin-bottom: 12px;
    }

    .tezi-welcome-close {
        top: 10px;
        right: 10px;
        width: 34px;
        height: 34px;
    }

    .tezi-welcome-badge {
        margin-bottom: 10px;
        padding: 7px 12px;
        font-size: .74rem;
    }

    .tezi-welcome-benefits {
        grid-template-columns: 1fr;
        gap: 8px;
        margin-bottom: 14px;
    }

    .tezi-welcome-benefits > div {
        padding: 12px;
    }

    .tezi-welcome-benefits i {
        width: 32px;
        height: 32px;
        margin-bottom: 6px;
    }

    .tezi-welcome-benefits strong {
        margin-bottom: 4px;
        font-size: .92rem;
    }

    .tezi-welcome-benefits span {
        font-size: .8rem;
        line-height: 1.34;
    }

    .tezi-welcome-actions {
        gap: 8px;
    }

    .tezi-welcome-actions .btn {
        width: 100%;
        padding: 9px 16px;
    }
}
