/* --- CONFIGURACIÓN BASE --- */
html {
    font-size: 14px;
    position: relative;
    min-height: 100%;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

:root {
    --lila-principal: #a855a8;
    --purpura-fuerte: #8e3a8e;
    --malva-medio: #b87ab6;
    --lavanda-suave: #c49ac2;
    --rosa-pastel: #d4afd2;
    --fondo-claro: #fcf9fc;
}

body {
    background-color: var(--fondo-claro);
    color: #333;
}

/* --- LIMPIEZA DE FOCUS --- */
.btn:focus, .btn:active:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.25rem rgba(168, 85, 168, 0.25) !important;
    border-color: var(--lila-principal) !important;
}

/* --- BARRA DE NAVEGACIÓN --- */
.navbar {
    border-bottom: 2px solid var(--lila-principal) !important;
    background-color: white !important;
}

.nav-link {
    font-weight: 500;
    transition: color 0.2s;
}

    .nav-link:hover {
        color: var(--purpura-fuerte) !important;
    }

.badge.bg-danger {
    background-color: var(--lila-principal) !important;
    color: white !important;
}

/* --- BOTONES PRINCIPALES --- */
.btn-primary, .btn-success {
    background-color: var(--lila-principal) !important;
    border-color: var(--lila-principal) !important;
    color: white !important;
    border-radius: 50px !important;
    padding: 8px 25px;
    font-weight: 600;
    transition: all 0.3s ease;
}

    .btn-primary:hover, .btn-success:hover {
        background-color: var(--purpura-fuerte) !important;
        border-color: var(--purpura-fuerte) !important;
        color: white !important;
        transform: translateY(-2px);
        box-shadow: 0 4px 10px rgba(142, 58, 142, 0.2);
    }

/* --- BOTÓN OUTLINE --- */
.btn-outline-primary {
    background-color: white !important;
    color: var(--lila-principal) !important;
    border-color: var(--lila-principal) !important;
    border-radius: 50px !important;
    font-weight: 600;
    transition: all 0.3s ease;
}

    .btn-outline-primary:hover {
        background-color: var(--lila-principal) !important;
        color: white !important;
        border-color: var(--lila-principal) !important;
        transform: translateY(-2px);
    }

/* --- BOTONES DE CATEGORÍA --- */
.btn-outline-secondary {
    background-color: white !important;
    color: var(--malva-medio) !important;
    border-color: #e2d5e2 !important;
    border-radius: 50px !important;
    transition: all 0.3s ease;
}

    .btn-outline-secondary:hover {
        background-color: var(--fondo-claro) !important;
        border-color: var(--malva-medio) !important;
        color: var(--purpura-fuerte) !important;
    }

/* --- TARJETAS DE PRODUCTOS --- */
.card {
    border: 1px solid rgba(0,0,0,0.05) !important;
    border-radius: 15px !important;
    transition: all 0.3s ease;
    background-color: white;
}

    .card:hover {
        transform: translateY(-5px);
        box-shadow: 0 10px 20px rgba(168, 85, 168, 0.1) !important;
    }

.card-body h5.text-primary, .text-primary {
    color: var(--purpura-fuerte) !important;
    font-weight: 600 !important;
    font-size: 1.3rem !important;
}

/* --- INPUTS --- */
.form-control {
    border-radius: 15px !important;
}

/* --- PAGINACIÓN --- */
.page-item.active .page-link {
    background-color: var(--lila-principal) !important;
    border-color: var(--lila-principal) !important;
    color: white !important;
}

.page-link {
    color: var(--lila-principal);
}

/* --- NAVBAR TOGGLER --- */
.navbar-toggler:focus,
.navbar-toggler:active {
    outline: none !important;
    box-shadow: none !important;
    border-color: rgba(168, 85, 168, 0.3) !important;
}

/* --- DROPDOWN MENÚ --- */
.dropdown-menu {
    border: 1px solid rgba(168, 85, 168, 0.15);
    border-radius: 12px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
    padding: 10px 0;
    margin-top: 10px;
}

.dropdown-item {
    color: #495057;
    font-weight: 500;
    padding: 8px 20px;
    transition: all 0.2s ease-in-out;
}

    .dropdown-item:hover,
    .dropdown-item:focus {
        background-color: #fcecfc;
        color: var(--lila-principal);
        transform: translateX(5px);
    }

.dropdown-divider {
    border-top-color: rgba(168, 85, 168, 0.1);
}

/* --- DROPDOWN TOGGLE COLOR --- */
.navbar-nav .nav-link.dropdown-toggle {
    color: #495057 !important;
}

    .navbar-nav .nav-link.dropdown-toggle:hover,
    .navbar-nav .nav-link.dropdown-toggle:focus,
    .navbar-nav .nav-link.dropdown-toggle.show {
        color: var(--lila-principal) !important;
    }

/* --- PRODUCTO CARDS --- */
.text-hover-primary {
    transition: color 0.2s ease-in-out;
}

    .text-hover-primary:hover {
        color: var(--purpura-fuerte) !important;
    }

.card-hover-img {
    transition: transform 0.3s ease;
}

    .card-hover-img:hover {
        transform: scale(1.05);
    }

.grayscale-img {
    filter: grayscale(100%);
    opacity: 0.5;
}

.sello-agotado {
    position: absolute;
    top: 40%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-15deg);
    z-index: 10;
    background: rgba(142, 58, 142, 0.9);
    color: white;
    font-weight: bold;
    padding: 8px 20px;
    border-radius: 50px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    pointer-events: none;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.btn-outline-agregar {
    background-color: transparent !important;
    color: var(--lila-principal) !important;
    border: 2px solid var(--lila-principal) !important;
    transition: all 0.3s ease;
    font-weight: 600;
}

    .btn-outline-agregar:hover {
        background-color: var(--lila-principal) !important;
        color: white !important;
        border-color: var(--lila-principal) !important;
        transform: translateY(-2px);
        box-shadow: 0 4px 10px rgba(168, 85, 168, 0.3);
    }

.btn-categoria {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    margin-bottom: 0 !important;
    vertical-align: middle;
}

/* --- FILTROS DEL CATÁLOGO --- */
.catalog-filter-card,
.catalog-categories-card {
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(168, 85, 168, 0.10) !important;
    box-shadow: 0 10px 30px rgba(64, 36, 64, 0.06);
}

    .catalog-filter-card:hover,
    .catalog-categories-card:hover {
        transform: none;
        box-shadow: 0 10px 30px rgba(64, 36, 64, 0.06) !important;
    }

.catalog-search-input,
.catalog-order-select {
    min-height: 44px;
    border: 1px solid rgba(168, 85, 168, 0.16) !important;
    background-color: #fff;
    box-shadow: none !important;
}

.catalog-search-row {
    flex-direction: row;
}

.catalog-search-row .catalog-search-input {
    flex: 1 1 auto;
    min-width: 0;
}

.catalog-clear-button {
    min-height: 44px;
    box-shadow: none !important;
}

.catalog-clear-wrap {
    display: flex;
    align-items: flex-end;
}

.catalog-categories-wrap {
    display: flex;
    align-items: flex-end;
}

.catalog-index-categories-toggle {
    min-height: 44px;
    width: 100%;
    box-shadow: none !important;
    white-space: nowrap;
}

.catalog-clear-button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    min-height: 38px !important;
    width: auto !important;
    padding: 0.45rem 0.95rem !important;
    color: var(--bb-primary-dark) !important;
    background: rgba(255, 255, 255, 0.82) !important;
    border: 1px solid rgba(219, 39, 119, 0.22) !important;
    font-size: 0.86rem !important;
    font-weight: 800;
    line-height: 1.1;
}

.catalog-clear-button:hover,
.catalog-clear-button:focus {
    color: #ffffff !important;
    background: var(--bb-primary-dark) !important;
    border-color: var(--bb-primary-dark) !important;
}

.catalog-clear-button:hover {
    transform: none;
}

.badge-mayorista {
    background-color: transparent;
    color: var(--lila-principal);
    border: 1px solid var(--lila-principal);
    font-size: 0.75rem;
    padding: 2px 6px;
    border-radius: 12px;
}

/* --- HERO BIENVENIDA --- */
.hero-bienvenida {
    background: linear-gradient(135deg, #ffffff 0%, #fcecfc 100%);
    border: 1px solid rgba(168, 85, 168, 0.08);
    position: relative;
    overflow: hidden;
}

.home-hero-minimal {
    background:
        radial-gradient(circle at 14% 18%, rgba(212, 160, 212, 0.34), transparent 28%),
        radial-gradient(circle at 86% 12%, rgba(168, 85, 168, 0.18), transparent 30%),
        linear-gradient(135deg, #ffffff 0%, #fff7fd 46%, #f2e5f2 100%);
    border: 1px solid rgba(168, 85, 168, 0.10);
    box-shadow: 0 20px 55px rgba(98, 29, 95, 0.10);
}

    .home-hero-minimal:hover {
        transform: none;
    }

.hero-pattern {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0.04;
    background-image: radial-gradient(var(--purpura-fuerte) 1px, transparent 1px);
    background-size: 20px 20px;
    z-index: 0;
}

.hero-content {
    position: relative;
    z-index: 1;
}

.text-gradient {
    background: -webkit-linear-gradient(45deg, var(--purpura-fuerte), #d4a0d4);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* --- BADGE CATEGORÍA FLOTANTE --- */
.badge-categoria-flotante {
    position: absolute;
    top: 0;
    left: 0;
    margin: 12px;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(5px);
    color: var(--lila-principal);
    border: 1px solid rgba(168, 85, 168, 0.15);
    font-size: 0.7rem;
    font-weight: 700;
    padding: 5px 12px;
    border-radius: 20px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
    z-index: 5;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* --- CARRUSEL DESTACADOS --- */
.carrusel-destacados {
    background: linear-gradient(135deg, #2d0a2d 0%, #5a1f5a 50%, #2d0a2d 100%);
    border-radius: 24px;
    padding: 1rem 1rem;
    position: relative;
    overflow: hidden;
    margin-left: auto;
    margin-right: auto;
}

.destacados-minimal {
    background:
        linear-gradient(135deg, rgba(45, 10, 45, 0.96), rgba(98, 29, 95, 0.92)),
        radial-gradient(circle at top right, rgba(212, 160, 212, 0.35), transparent 34%);
    border: 1px solid rgba(168, 85, 168, 0.10);
    box-shadow: 0 22px 55px rgba(45, 10, 45, 0.16);
}

    .destacados-minimal::before {
        display: block;
        opacity: 0.55;
    }

    .destacados-minimal .carrusel-subtitulo {
        background: linear-gradient(90deg, #ffffff 0%, #f0c9ef 100%);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        color: #ffffff;
        font-size: 1.35rem;
        margin-bottom: 0.75rem;
    }

    .destacados-minimal .dest-card {
        background: rgba(255, 255, 255, 0.08);
        border: 1px solid rgba(255, 255, 255, 0.14);
        border-radius: 20px;
        box-shadow: none;
    }

    .destacados-minimal .dest-card:hover {
        transform: translateY(-4px) scale(1.02) translateZ(0);
        border-color: rgba(255, 255, 255, 0.35);
        box-shadow: 0 16px 32px rgba(0, 0, 0, 0.22);
    }

    .destacados-minimal .dest-card a,
    .destacados-minimal .dest-card a img {
        border-radius: 20px;
    }

    .destacados-minimal .dest-overlay {
        opacity: 1;
        background: linear-gradient(to top, rgba(45, 10, 45, 0.82), transparent 72%);
    }

    .destacados-minimal .dest-nombre-overlay {
        color: #ffffff;
    }

    .destacados-minimal .carousel-control-dest {
        background: #ffffff;
        border-color: rgba(168, 85, 168, 0.18);
        color: var(--purpura-fuerte);
    }

    .destacados-minimal .carousel-control-dest:hover {
        background: var(--fondo-claro);
        border-color: rgba(168, 85, 168, 0.28);
    }

    .destacados-minimal .dest-puntos .punto {
        background: rgba(168, 85, 168, 0.20);
    }

    .destacados-minimal .dest-puntos .punto.activo {
        background: var(--lila-principal);
    }

    .carrusel-destacados::before {
        content: '';
        position: absolute;
        top: -50%;
        left: -50%;
        width: 200%;
        height: 200%;
        background: radial-gradient(ellipse at center, rgba(199, 110, 199, 0.15) 0%, transparent 60%);
        pointer-events: none;
    }

.carrusel-titulo {
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5);
    margin-bottom: 0.3rem;
}

.carrusel-subtitulo {
    font-size: 1.8rem;
    font-weight: 800;
    background: linear-gradient(90deg, #fff 0%, #e8c0e8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 1.8rem;
}

.dest-card {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 25px;
    overflow: hidden;
    transition: all 0.3s ease;
    backdrop-filter: blur(10px);
    cursor: pointer;
    height: auto;
    aspect-ratio: 1 / 1;
    max-width: 220px;
    margin: 0 auto;
    /* TRUCOS PARA FORZAR EL RECORTE REDONDEADO EN NAVEGADORES BUGUEADOS */
    transform: translateZ(0); /* Fuerza la aceleración de hardware */
    -webkit-mask-image: -webkit-radial-gradient(white, black); /* Obliga a respetar los bordes */
}

    /* Le decimos a la imagen que siga exactamente la misma curva de 25px */
    .dest-card a,
    .dest-card a img {
        border-radius: 25px;
        display: block; /* Evita pequeños espacios debajo de la imagen */
    }

    .dest-card:hover {
        transform: scale(1.1) translateZ(0); /* Mantenemos el translateZ acá también */
        border-color: rgba(199, 110, 199, 0.5);
        box-shadow: 0 15px 15px rgba(0,0,0,0.3), 0 0 20px rgba(199, 110, 199, 0.2);
    }

.dest-img-full {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.dest-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(to top, rgba(45,10,45,0.92) 0%, transparent 100%);
    padding: 1.5rem 1rem 1rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
    opacity: 0;
    transition: opacity 0.5s ease;
}

.dest-card:hover .dest-overlay {
    opacity: 1;
}

.dest-nombre-overlay {
    color: white;
    font-weight: 700;
    font-size: 0.95rem;
    margin: 0;
    line-height: 1.3;
    -webkit-font-smoothing: antialiased;
    transform: translateZ(0);
    will-change: transform;
}

.carousel-control-dest {
    width: 42px;
    height: 42px;
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    cursor: pointer;
    transition: all 0.3s ease;
    backdrop-filter: blur(5px);
}

    .carousel-control-dest:hover {
        background: rgba(168, 85, 168, 0.6);
        border-color: #d4a0d4;
    }

.dest-puntos .punto {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255,255,255,0.3);
    transition: all 0.3s ease;
    cursor: pointer;
    border: none;
    padding: 0;
}

    .dest-puntos .punto.activo {
        background: #d4a0d4;
        width: 24px;
        border-radius: 4px;
    }

.estrella-deco {
    position: absolute;
    color: rgba(199, 110, 199, 0.15);
    font-size: 8rem;
    pointer-events: none;
}

@media (hover: none) {
    .dest-overlay {
        opacity: 1;
        background: linear-gradient(to top, rgba(45,10,45,0.75) 0%, transparent 100%);
    }
}
.badge-espacio-belleza {
    background-color: rgba(168, 85, 168, 0.1);
    color: var(--lila-principal);
    font-weight: 600;
    letter-spacing: 1px;
}

.hero-descripcion {
    max-width: 600px;
    font-weight: 400;
    line-height: 1.6;
}

.texto-clamp {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.label-precio {
    font-size: 0.75rem;
    color: #6c757d;
}

.label-mayorista {
    color: var(--lila-principal) !important;
}

.texto-mayorista {
    color: var(--lila-principal);
}

/* --- PRODUCTOS: VARIANTE MINIMALISTA --- */
.product-card-minimal {
    border: 1px solid rgba(168, 85, 168, 0.10) !important;
    box-shadow: 0 10px 30px rgba(64, 36, 64, 0.055);
}

    .product-card-minimal:hover {
        transform: translateY(-3px);
        border-color: rgba(168, 85, 168, 0.22) !important;
        box-shadow: 0 18px 42px rgba(98, 29, 95, 0.12) !important;
    }

    .product-card-minimal:hover .card-hover-img,
    .product-card-minimal:hover .card-carousel-img.activa {
        transform: scale(1.045);
    }

.product-media-minimal {
    height: 235px;
    background:
        radial-gradient(circle at 50% 18%, rgba(212, 175, 210, 0.18), transparent 38%),
        linear-gradient(180deg, #ffffff 0%, #fbf8fb 100%) !important;
}

.product-card-body-minimal {
    border-top: 1px solid rgba(168, 85, 168, 0.08) !important;
    padding: 1rem 1rem 1.1rem;
}

.product-title-minimal {
    font-size: 0.98rem;
    line-height: 1.35;
}

.product-price-panel {
    background: linear-gradient(135deg, #fbf8fb, #ffffff);
    border: 1px solid rgba(168, 85, 168, 0.10);
}

.product-add-button {
    box-shadow: none !important;
}

    .product-add-button:hover {
        transform: none;
    }

@media (max-width: 575.98px) {
    .product-media-minimal {
        height: 215px;
    }
}

/* --- HEADER CART AND FEATURED PRODUCTS POLISH --- */
.bonita-navbar .bonita-cart-link,
.bonita-navbar .bonita-cart-link:hover,
.bonita-navbar .bonita-cart-link:focus {
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.bonita-cart-icon,
.bonita-cart-link:hover .bonita-cart-icon,
.bonita-cart-link:focus .bonita-cart-icon {
    border-radius: 16px !important;
    background: rgba(255, 255, 255, 0.78) !important;
    border: 1px solid rgba(219, 39, 119, 0.18) !important;
    box-shadow: none !important;
    color: var(--bb-primary-dark) !important;
}

.bonita-cart-link:hover .bonita-cart-icon,
.bonita-cart-link:focus .bonita-cart-icon {
    background: #fce7f3 !important;
    border-color: rgba(219, 39, 119, 0.35) !important;
}

.carrusel-destacados.destacados-minimal {
    padding: clamp(1rem, 2.2vw, 1.65rem);
    background:
        radial-gradient(circle at 12% 14%, rgba(244, 114, 182, 0.24), transparent 28%),
        radial-gradient(circle at 88% 0%, rgba(202, 138, 4, 0.18), transparent 30%),
        radial-gradient(circle at 52% 120%, rgba(255, 255, 255, 0.12), transparent 36%),
        linear-gradient(135deg, rgba(63, 11, 41, 0.96) 0%, rgba(131, 24, 67, 0.91) 52%, rgba(47, 16, 36, 0.96) 100%) !important;
    border: 1px solid rgba(255, 255, 255, 0.16) !important;
    box-shadow: 0 26px 70px rgba(63, 11, 41, 0.18) !important;
}

.carrusel-destacados.destacados-minimal::before {
    opacity: 0.28;
    background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.22) 0%, transparent 58%);
}

.destacados-minimal .carrusel-subtitulo {
    margin-bottom: 0.55rem;
    font-size: clamp(1.55rem, 2.4vw, 2.25rem);
    background: linear-gradient(90deg, #ffffff 0%, #fce7f3 46%, #fef3c7 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.destacados-minimal .dest-card,
.dest-card {
    aspect-ratio: 4 / 5;
    max-width: 245px;
    border-radius: 28px !important;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.05)) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    box-shadow: 0 14px 30px rgba(47, 16, 36, 0.22) !important;
}

.destacados-minimal .dest-card a,
.destacados-minimal .dest-card a img,
.dest-card a,
.dest-card a img {
    border-radius: 28px !important;
}

.dest-card:hover,
.destacados-minimal .dest-card:hover {
    transform: translateY(-5px) translateZ(0) !important;
    border-color: rgba(255, 255, 255, 0.38) !important;
    box-shadow: 0 20px 42px rgba(47, 16, 36, 0.28) !important;
}

.dest-img-full {
    filter: saturate(1.03) contrast(1.02);
}

.dest-overlay,
.destacados-minimal .dest-overlay {
    opacity: 1;
    min-height: 18%;
    padding: 1.15rem 0.95rem 0.85rem;
    background:
        linear-gradient(
            to top,
            rgba(47, 16, 36, 0.78) 0%,
            rgba(47, 16, 36, 0.42) 42%,
            rgba(47, 16, 36, 0.10) 76%,
            transparent 100%
        ) !important;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.dest-nombre-overlay,
.destacados-minimal .dest-nombre-overlay {
    position: relative;
    z-index: 1;
    color: #ffffff;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -0.025em;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.28);
}

.dest-nombre-overlay::before,
.destacados-minimal .dest-nombre-overlay::before {
    content: '';
    position: absolute;
    inset: -0.35rem -0.5rem;
    z-index: -1;
    border-radius: 14px;
    background: rgba(47, 16, 36, 0.22);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.destacados-minimal .carousel-control-dest,
.carousel-control-dest {
    width: 42px;
    height: 42px;
    color: #fff !important;
    background: rgba(255, 255, 255, 0.12) !important;
    border: 1px solid rgba(255, 255, 255, 0.24) !important;
    box-shadow: none !important;
}

.destacados-minimal .carousel-control-dest:hover,
.carousel-control-dest:hover {
    background: rgba(255, 255, 255, 0.20) !important;
    border-color: rgba(254, 243, 199, 0.42) !important;
}

.destacados-minimal .dest-puntos .punto,
.dest-puntos .punto {
    background: rgba(255, 255, 255, 0.28) !important;
}

.destacados-minimal .dest-puntos .punto.activo,
.dest-puntos .punto.activo {
    background: #fef3c7 !important;
}

@media (max-width: 575.98px) {
    .catalog-grid-mobile {
        --bs-gutter-x: 0.65rem;
        --bs-gutter-y: 0.85rem;
    }

    .catalog-grid-mobile .product-card-minimal {
        border-radius: 20px !important;
    }

    .catalog-grid-mobile .product-media-minimal {
        height: 150px;
        padding: 0.55rem !important;
    }

    .catalog-grid-mobile .product-media-minimal .card-hover-img {
        height: 132px !important;
    }

    .catalog-grid-mobile .card-carousel-img {
        padding: 4px;
    }

    .catalog-grid-mobile .product-card-body-minimal {
        padding: 0.7rem;
    }

    .catalog-grid-mobile .product-title-minimal {
        font-size: 0.84rem;
        line-height: 1.15;
    }

    .catalog-grid-mobile .texto-clamp {
        display: none;
    }

    .catalog-grid-mobile .product-price-panel {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        padding: 0.52rem !important;
        margin-bottom: 0.55rem !important;
        align-items: stretch !important;
        gap: 0.5rem;
    }

    .catalog-grid-mobile .product-price-panel .text-start,
    .catalog-grid-mobile .product-price-panel .text-end {
        display: flex !important;
        flex-direction: column;
        justify-content: center;
        width: auto;
        min-width: 0;
        text-align: center !important;
        align-items: center !important;
        gap: 0.18rem;
    }

    .catalog-grid-mobile .product-price-panel .text-start span {
        font-size: clamp(0.68rem, 3vw, 0.78rem) !important;
        line-height: 1.05;
        white-space: nowrap;
        letter-spacing: -0.02em;
    }

    .catalog-grid-mobile .texto-mayorista {
        font-size: clamp(0.68rem, 3vw, 0.78rem) !important;
        line-height: 1.05;
        white-space: nowrap;
        letter-spacing: -0.02em;
        font-weight: 800 !important;
    }

    .catalog-grid-mobile .label-precio {
        font-size: 0.56rem !important;
        letter-spacing: 0.045em;
        text-align: center;
    }

    .catalog-grid-mobile .product-add-button {
        min-height: 40px;
        font-size: 0.78rem;
        padding-left: 0.45rem !important;
        padding-right: 0.45rem !important;
    }

    .catalog-grid-mobile .badge-categoria-flotante {
        margin: 7px;
        max-width: calc(100% - 14px);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .bonita-cart-icon,
    .bonita-cart-link:hover .bonita-cart-icon,
    .bonita-cart-link:focus .bonita-cart-icon {
        width: 40px;
        height: 40px;
        border-radius: 14px !important;
        box-shadow: none !important;
    }

    .carrusel-destacados.destacados-minimal {
        padding: 0.95rem;
    }

    .destacados-minimal .carrusel-subtitulo {
        font-size: 1.35rem;
    }

    .dest-card,
    .destacados-minimal .dest-card {
        max-width: none;
        border-radius: 22px !important;
    }

    .dest-card a,
    .dest-card a img,
    .destacados-minimal .dest-card a,
    .destacados-minimal .dest-card a img {
        border-radius: 22px !important;
    }

    .dest-overlay,
    .destacados-minimal .dest-overlay {
        min-height: 18%;
        padding: 1rem 0.7rem 0.7rem;
    }

    .dest-nombre-overlay,
    .destacados-minimal .dest-nombre-overlay {
        font-size: 0.92rem;
    }

    .dest-nombre-overlay::before,
    .destacados-minimal .dest-nombre-overlay::before {
        inset: -0.28rem -0.42rem;
        border-radius: 12px;
    }
}

/* --- ADMIN Y GANANCIAS --- */
.revenue-summary-card {
    border: 1px solid rgba(98, 29, 95, 0.10) !important;
    box-shadow: 0 10px 30px rgba(64, 36, 64, 0.055) !important;
}

    .revenue-summary-card:hover {
        transform: none;
        box-shadow: 0 10px 30px rgba(64, 36, 64, 0.055) !important;
    }

/* --- ADMIN MOBILE LAYOUTS --- */
.admin-mobile-cards,
.admin-orders-mobile,
.order-detail-mobile-products,
.edit-order-mobile-products,
.revenue-mobile-list,
.admin-categories-mobile {
    display: none;
}

.admin-product-mobile-card,
.admin-order-mobile-card,
.order-detail-product-card,
.edit-order-product-card,
.revenue-mobile-card,
.admin-category-card,
.admin-empty-card {
    box-shadow: 0 10px 26px rgba(64, 36, 64, 0.06);
}

.admin-product-mobile-img,
.order-detail-product-img,
.edit-order-product-img {
    width: 82px;
    height: 82px;
    object-fit: cover;
    flex: 0 0 auto;
}

.grid-3-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-product-mobile-title,
.admin-product-mobile-description,
.edit-order-product-card .product-name {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: anywhere;
}

.admin-product-mobile-title {
    -webkit-line-clamp: 2;
    line-height: 1.25;
}

.edit-order-product-card .product-name {
    -webkit-line-clamp: 2;
    line-height: 1.2;
}

.edit-order-wholesale-note {
    color: var(--bb-muted);
    background: rgba(255, 255, 255, 0.86) !important;
}

.edit-order-qty-control {
    gap: 0.55rem;
    padding: 0.28rem 0.42rem;
    background: #ffffff;
    border-color: rgba(219, 39, 119, 0.14) !important;
    box-shadow: 0 8px 20px rgba(64, 36, 64, 0.08) !important;
}

.edit-order-qty-control .qty-btn {
    width: 30px;
    height: 30px;
    min-height: 30px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    box-shadow: none !important;
}

.edit-order-qty-control .qty-minus {
    color: #dc3545;
    background: #fff1f2;
}

.edit-order-qty-control .qty-plus {
    color: #047857;
    background: #ecfdf5;
}

.edit-order-qty-control .qty-value {
    min-width: 24px;
    color: var(--bb-ink);
    font-weight: 900;
    text-align: center;
    line-height: 1;
}

.admin-product-mobile-description {
    -webkit-line-clamp: 2;
}

.admin-icon-action {
    width: 38px;
    height: 38px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

/* --- MOBILE FIRST POLISH --- */
.catalog-loading {
    opacity: 0.55;
    pointer-events: none;
    transition: opacity 0.18s ease;
}

.cart-mobile-list {
    display: none;
}

.cart-mobile-img {
    width: 82px;
    height: 82px;
    object-fit: contain;
    flex: 0 0 auto;
}

.mobile-qty-btn {
    width: 34px;
    height: 34px;
}

.mobile-qty-value {
    min-width: 26px;
    text-align: center;
}

.mobile-store-tools {
    display: none;
}

.mobile-header-search-toggle {
    display: none;
}

.cart-mobile-item {
    box-shadow: 0 10px 26px rgba(64, 36, 64, 0.06);
}

@media (hover: none) {
    .card:hover,
    .product-card-minimal:hover,
    .btn-primary:hover,
    .btn-success:hover,
    .btn-outline-primary:hover,
    .btn-outline-agregar:hover {
        transform: none !important;
    }
}

@media (max-width: 575.98px) {
    html {
        font-size: 15px;
    }

    body {
        background: #fffafd;
    }

    .container {
        padding-left: 12px;
        padding-right: 12px;
    }

    .navbar {
        margin-bottom: 0.75rem !important;
    }

    .mobile-main-navbar {
        position: sticky;
        top: 0;
        z-index: 1030;
        box-shadow: 0 8px 22px rgba(64, 36, 64, 0.08);
    }

    .mobile-header-search-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 38px;
        height: 38px;
        padding: 0;
        color: #212529;
        border: 0;
        background: transparent;
        font-size: 1.35rem;
        box-shadow: none !important;
    }

    .mobile-header-search-toggle:hover,
    .mobile-header-search-toggle:focus {
        color: var(--purpura-fuerte);
        background: transparent;
    }

    .mobile-store-tools {
        display: block;
        border-top: 1px solid rgba(168, 85, 168, 0.10);
        padding-top: 0.65rem;
    }

    .mobile-store-tools .collapse:not(.show) {
        display: none;
    }

    .mobile-store-search .form-control {
        min-height: 42px;
        border: 1px solid rgba(168, 85, 168, 0.16) !important;
        box-shadow: none !important;
        min-width: 0;
    }

    .navbar-collapse .dropdown-menu {
        max-height: min(52vh, 360px);
        overflow-y: auto;
    }

    .navbar-brand img {
        height: 31px !important;
    }

    .nav-link[asp-controller="Carrito"],
    .navbar .nav-link {
        min-height: 42px;
    }

    .mobile-compact-hero {
        margin-top: 0 !important;
        margin-bottom: 1rem !important;
        padding: 1.25rem 1rem !important;
        border-radius: 20px !important;
        box-shadow: 0 14px 34px rgba(98, 29, 95, 0.10);
    }

    .mobile-compact-hero .badge {
        font-size: 0.68rem;
        margin-bottom: 0.65rem !important;
    }

    .mobile-compact-hero h1 {
        font-size: 1.65rem;
        line-height: 1.08;
        margin-bottom: 0.75rem !important;
    }

    .hero-descripcion {
        font-size: 0.95rem;
        line-height: 1.45;
        margin-bottom: 0.75rem !important;
    }

    .destacados-minimal {
        border-radius: 20px;
        padding: 0.85rem;
        margin-bottom: 1rem !important;
    }

    .destacados-minimal .carrusel-subtitulo {
        font-size: 1.1rem;
        margin-bottom: 0.35rem;
    }

    .dest-card {
        max-width: none;
        border-radius: 18px;
    }

    .carousel-control-dest {
        width: 38px;
        height: 38px;
    }

    .catalog-heading-mobile {
        background: rgba(255, 250, 253, 0.94);
        margin-left: -12px;
        margin-right: -12px;
        padding: 0.7rem 12px !important;
    }

    .catalog-heading-mobile .btn {
        min-height: 40px;
        padding-left: 1rem !important;
        padding-right: 1rem !important;
        box-shadow: none !important;
    }

    .catalog-index-search-block {
        display: none !important;
    }

    .catalog-filter-mobile,
    .catalog-categories-mobile {
        border-radius: 20px !important;
        box-shadow: 0 10px 26px rgba(64, 36, 64, 0.055);
    }

    .catalog-filter-mobile .card-body,
    .catalog-categories-mobile {
        padding: 1rem !important;
    }

    .catalog-search-input,
    .catalog-order-select {
        min-height: 48px;
        font-size: 1rem;
    }

    .catalog-clear-wrap {
        justify-content: flex-end;
        margin-top: 0.65rem;
    }

    .catalog-categories-wrap {
        justify-content: flex-end;
        margin-top: 0.65rem;
    }

    .catalog-categories-wrap,
    .catalog-clear-wrap {
        flex: 0 0 50%;
        max-width: 50%;
        width: 50%;
    }

    .catalog-index-categories-toggle,
    .catalog-clear-button {
        width: 100% !important;
        min-height: 44px !important;
        padding: 0.48rem 0.95rem !important;
        font-size: 0.84rem !important;
        border-radius: 999px !important;
        white-space: nowrap;
    }

    .catalog-clear-button {
        justify-content: center;
    }

    .btn-categoria {
        min-height: 40px;
        padding-left: 0.9rem !important;
        padding-right: 0.9rem !important;
    }

    .catalog-grid-mobile {
        --bs-gutter-y: 1rem;
    }

    .product-card-minimal {
        border-radius: 22px !important;
        box-shadow: 0 10px 26px rgba(64, 36, 64, 0.065);
    }

    .product-media-minimal {
        height: 190px;
        padding: 0.75rem !important;
    }

    .product-media-minimal .card-hover-img {
        height: 172px !important;
    }

    .product-card-body-minimal {
        padding: 0.9rem;
    }

    .product-title-minimal {
        font-size: 1rem;
    }

    .texto-clamp {
        -webkit-line-clamp: 1;
        margin-bottom: 0.7rem !important;
    }

    .product-price-panel {
        padding: 0.75rem !important;
        margin-bottom: 0.75rem !important;
    }

    .product-add-button {
        min-height: 46px;
        font-size: 1rem;
    }

    .badge-categoria-flotante {
        margin: 9px;
        font-size: 0.62rem;
        padding: 4px 9px;
    }

    .pagination {
        gap: 0.25rem !important;
        flex-wrap: wrap;
    }

    .page-link {
        min-width: 40px;
        min-height: 40px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding-left: 0.65rem !important;
        padding-right: 0.65rem !important;
    }

    .cart-mobile-page {
        margin-top: 0.75rem !important;
    }

    .cart-mobile-page .hero-bienvenida {
        padding: 1.2rem !important;
        margin-bottom: 1rem !important;
    }

    .cart-mobile-page .hero-bienvenida h1 {
        font-size: 1.55rem;
    }

    .cart-desktop-table {
        display: none;
    }

    .cart-mobile-list {
        display: block;
    }

    .cart-total-wrapper {
        display: block !important;
    }

    .cart-total-card {
        min-width: 0 !important;
        width: 100% !important;
        padding: 1rem !important;
        position: sticky;
        bottom: 0.75rem;
        z-index: 15;
        box-shadow: 0 16px 42px rgba(64, 36, 64, 0.16) !important;
    }

    .cart-total-card h4 {
        text-align: left !important;
        font-size: 1.05rem;
        margin-bottom: 0.85rem !important;
    }

    .cart-total-card .fs-3 {
        font-size: 1.45rem !important;
    }

    .cart-total-card .form-control,
    .cart-total-card .form-select,
    .cart-total-card .btn {
        min-height: 46px;
    }

    .pos-mobile-page {
        margin-top: 0.75rem !important;
    }

    .pos-mobile-header {
        align-items: flex-start !important;
        gap: 0.75rem;
    }

    .pos-mobile-header h2 {
        font-size: 1.35rem;
        margin-bottom: 0;
    }

    .pos-mobile-header .btn {
        white-space: nowrap;
        min-height: 40px;
        box-shadow: none !important;
    }

    .pos-panel-card,
    .pos-ticket-card {
        border-radius: 20px !important;
    }

    .pos-panel-card .card-body,
    .pos-ticket-footer {
        padding: 1rem !important;
    }

    .pos-panel-card .form-select,
    .pos-panel-card .form-control,
    .pos-panel-card .btn,
    .pos-ticket-footer .form-control,
    .pos-ticket-footer .form-select,
    .pos-ticket-footer .btn {
        min-height: 48px;
        font-size: 1rem;
    }

    .pos-ticket-table {
        overflow: visible;
        min-height: 0 !important;
    }

    .pos-ticket-table table,
    .pos-ticket-table tbody,
    .pos-ticket-table tr,
    .pos-ticket-table td {
        display: block;
        width: 100%;
    }

    .pos-ticket-table thead {
        display: none;
    }

    .pos-ticket-table tbody {
        padding: 0.75rem;
        display: block;
        background: #fbf8fb;
    }

    .pos-ticket-table tr {
        background: #ffffff;
        border: 1px solid rgba(168, 85, 168, 0.12);
        border-radius: 18px;
        padding: 0.85rem;
        margin-bottom: 0.75rem;
        box-shadow: 0 8px 20px rgba(64, 36, 64, 0.055);
    }

    .pos-ticket-table td {
        border: 0 !important;
        padding: 0.2rem 0 !important;
        text-align: left !important;
    }

    .pos-ticket-table td:nth-child(2)::before {
        content: 'Cantidad: ';
        color: #6c757d;
        font-weight: 700;
    }

    .pos-ticket-table td:nth-child(3)::before {
        content: 'Subtotal: ';
        color: #6c757d;
        font-weight: 700;
    }

    .pos-ticket-table td:nth-child(4) {
        padding-top: 0.55rem !important;
    }

    .pos-ticket-table td:nth-child(4) .btn {
        border-radius: 999px !important;
        width: 42px;
        height: 42px;
    }

    .pos-ticket-footer > .d-flex {
        align-items: flex-start !important;
        gap: 0.35rem;
        flex-direction: column;
        margin-bottom: 1rem !important;
    }

    .pos-ticket-footer h4 {
        font-size: 1rem;
    }

    .pos-ticket-footer h2 {
        font-size: 1.75rem;
    }

    .admin-mobile-page {
        margin-top: 0.75rem !important;
        padding-left: 12px;
        padding-right: 12px;
    }

    .admin-page-header {
        gap: 0.85rem;
        margin-bottom: 1rem !important;
        padding-bottom: 0.85rem !important;
    }

    .admin-page-header h2,
    .admin-dashboard-header h2 {
        font-size: 1.35rem;
        line-height: 1.15;
    }

    .admin-page-header p,
    .admin-dashboard-header p {
        font-size: 0.9rem;
    }

    .admin-header-actions {
        width: 100%;
        display: grid !important;
        grid-template-columns: 1fr 1fr;
    }

    .admin-header-actions .btn {
        min-height: 42px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        box-shadow: none !important;
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    .admin-header-actions .btn i {
        margin-right: 0 !important;
    }

    .admin-header-actions .btn:last-child:nth-child(3) {
        grid-column: 1 / -1;
    }

    .admin-filter-card .btn,
    .admin-filter-card .form-control,
    .admin-filter-card .form-select {
        min-height: 46px;
        width: 100%;
    }

    .admin-filter-card {
        padding: 1rem !important;
        border-radius: 20px !important;
    }

    .admin-desktop-table,
    .admin-orders-desktop,
    .order-detail-table,
    .edit-order-table,
    .revenue-desktop-table,
    .admin-categories-table {
        display: none;
    }

    .admin-mobile-cards,
    .admin-orders-mobile,
    .order-detail-mobile-products,
    .edit-order-mobile-products,
    .revenue-mobile-list,
    .admin-categories-mobile {
        display: block;
    }

    .admin-product-mobile-card,
    .admin-order-mobile-card,
    .order-detail-product-card,
    .edit-order-product-card,
    .revenue-mobile-card,
    .admin-category-card {
        border-color: rgba(168, 85, 168, 0.12) !important;
    }

    .admin-mobile-metrics strong {
        font-size: 0.9rem;
    }

    .admin-order-actions .btn,
    .admin-order-actions button {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .admin-product-search-row {
        flex-direction: column;
    }

    .admin-product-compact-actions {
        margin-top: 0.6rem !important;
    }

    .admin-icon-action {
        width: 40px;
        height: 40px;
    }

    .admin-product-mobile-card .min-width-0 {
        min-width: 0;
    }

    .edit-order-product-card .min-width-0 {
        min-width: 0;
    }

    .edit-order-page {
        margin-bottom: 2.25rem !important;
    }

    .edit-order-mobile-products {
        padding-top: 0.75rem !important;
    }

    .edit-order-wholesale-note {
        margin: 0.85rem !important;
        font-size: 0.82rem;
        line-height: 1.35;
    }

    .edit-order-product-card {
        padding: 0.85rem !important;
        margin-bottom: 0.75rem !important;
    }

    .edit-order-product-img {
        width: 78px;
        height: 78px;
    }

    .edit-order-qty-control {
        margin-top: 0.1rem;
        gap: 0.55rem;
        padding: 0.34rem 0.48rem;
    }

    .edit-order-qty-control .qty-btn {
        width: 28px;
        height: 28px;
        min-height: 28px;
        font-size: 0.8rem;
    }

    .edit-order-qty-control .qty-value {
        min-width: 22px;
        font-size: 0.95rem;
    }

    .edit-order-page .col-lg-4 > .card {
        margin-bottom: 1.75rem;
    }

    .admin-product-mobile-card .badge {
        max-width: 100%;
        white-space: normal;
        text-align: left;
    }

    .admin-order-actions {
        grid-template-columns: 1fr;
    }

    .order-detail-header {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 0.75rem;
    }

    .order-detail-header h4 {
        font-size: 1.15rem;
    }

    .order-detail-info {
        margin-left: 0;
        margin-right: 0;
        gap: 0.85rem;
    }

    .order-detail-info .border-end {
        border-right: 0 !important;
        border-bottom: 1px solid rgba(0, 0, 0, 0.08);
        padding-bottom: 0.85rem;
    }

    .order-detail-actions {
        flex-direction: column-reverse;
        gap: 0.75rem !important;
        position: sticky;
        bottom: 0.75rem;
        z-index: 15;
        background: rgba(255, 250, 253, 0.96);
        padding: 0.75rem;
        border-radius: 20px;
        box-shadow: 0 16px 42px rgba(64, 36, 64, 0.16);
    }

    .order-detail-actions form,
    .order-detail-actions .btn {
        width: 100%;
    }

    .order-detail-actions .btn {
        min-height: 46px;
    }

    .revenue-mobile-page .row.mb-4 {
        margin-bottom: 1rem !important;
    }

    .revenue-summary-card .card-body {
        padding: 1rem;
    }

    .revenue-summary-card h3 {
        font-size: 1.35rem;
    }

    .revenue-filter-form,
    .revenue-filter-form > div,
    .revenue-filter-form .input-group,
    .revenue-filter-form .btn {
        width: 100%;
        max-width: none !important;
    }

    .revenue-filter-form > div {
        align-items: flex-start !important;
        flex-direction: column;
        gap: 0.35rem !important;
    }

    .revenue-filter-form .d-flex.gap-1 {
        display: grid !important;
        grid-template-columns: 1fr;
    }

    .revenue-mobile-page h5.text-nowrap {
        white-space: normal !important;
        flex-wrap: wrap;
        gap: 0.35rem;
    }

    .admin-category-card .btn {
        min-height: 40px;
    }

    .modal-dialog {
        margin: 0.75rem;
    }

    .modal-footer {
        display: grid;
        grid-template-columns: 1fr;
    }

    .modal-footer .btn {
        width: 100%;
        min-height: 44px;
    }

    .product-form-mobile {
        margin-top: 0.75rem !important;
    }

    .product-form-mobile .col-md-8 {
        width: 100%;
    }

    .product-form-header h4 {
        font-size: 1.15rem;
    }

    .product-form-mobile .card-body {
        padding: 1rem !important;
    }

    .product-form-mobile .form-control,
    .product-form-mobile .form-select,
    .product-form-mobile .input-group-text,
    .product-form-mobile .btn {
        min-height: 46px;
    }

    .product-form-actions {
        display: grid !important;
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    .product-form-actions .btn {
        width: 100%;
    }

    .current-product-images {
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: 0.65rem !important;
        overflow-x: auto;
        padding: 0.25rem 0.15rem 0.65rem;
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
    }

    .current-product-images > div {
        flex: 0 0 92px;
        scroll-snap-align: start;
    }

    .current-product-images > div img {
        width: 92px !important;
        height: 92px !important;
    }

    .current-product-images .product-image-delete-btn {
        width: 22px !important;
        height: 22px !important;
        min-height: 22px !important;
        font-size: 0.65rem !important;
        line-height: 1 !important;
        transform: translate(20%, -20%) !important;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .admin-dashboard-mobile {
        padding-left: 12px !important;
        padding-right: 12px !important;
        margin-top: 0.75rem !important;
    }

    .admin-dashboard-header {
        padding: 1rem !important;
        margin-bottom: 1rem !important;
    }

    .admin-dashboard-header .btn {
        width: 100%;
        min-height: 42px;
        box-shadow: none !important;
    }

    .admin-dashboard-grid {
        --bs-gutter-y: 0.85rem;
    }

    .admin-dashboard-grid .card-body {
        padding: 1rem !important;
        text-align: left !important;
    }

    .admin-dashboard-grid .icon-container {
        width: 46px;
        height: 46px;
        margin-bottom: 0.85rem;
    }

    .admin-dashboard-grid h5 {
        margin-bottom: 0.45rem !important;
    }

    .admin-dashboard-grid .card-footer {
        padding: 0 1rem 1rem !important;
    }

    .admin-dashboard-grid .btn-tarjeta {
        min-height: 42px;
    }
}

@media (max-width: 380px) {
    .admin-header-actions .btn {
        font-size: 0;
        min-width: 44px;
        padding-left: 0.65rem;
        padding-right: 0.65rem;
    }

    .admin-header-actions .btn i {
        font-size: 1rem;
    }

    .admin-header-actions {
        grid-template-columns: repeat(3, 1fr);
    }

    .admin-header-actions .btn:last-child:nth-child(3) {
        grid-column: auto;
    }
}

@media (min-width: 576px) and (max-width: 767.98px) {
    .product-media-minimal {
        height: 215px;
    }
}
/* --- MINI CARRUSEL EN CARDS --- */
.card-img-carousel {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.card-carousel-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: 0;
    transition: opacity 0.6s ease;
    padding: 8px;
}

    .card-carousel-img.activa {
        opacity: 1;
    }

.card-carousel-puntos {
    position: absolute;
    bottom: 1px; /* Los subí un poquitito para que no queden tan pegados al borde */
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px; /* Más espacio entre cada punto */
    z-index: 10;
    padding: 1px; /* Un área invisible extra para que sea más fácil hacerles click */
}

.punto-mini {
    width: 10px; /* El doble de grandes (antes 5px) */
    height: 10px; /* El doble de grandes (antes 5px) */
    border-radius: 50%;
    background: rgba(168, 85, 168, 0.4);
    transition: all 0.3s ease;
    cursor: pointer !important; /* Puntero tipo manito al pasar por arriba */
    pointer-events: auto; /* Asegura que detecte el click */
}

    .punto-mini:hover {
        background: rgba(168, 85, 168, 0.8);
        transform: scale(1.2); /* Efecto visual al pasar el mouse */
    }

    .punto-mini.activo {
        background: var(--lila-principal);
        transform: scale(1.2); /* El punto activo se ve un poco más grande */
    }

/* --- PREMIUM REFRESH 2026 --- */
:root {
    --bb-primary: #db2777;
    --bb-primary-dark: #831843;
    --bb-primary-soft: #fce7f3;
    --bb-rose: #f472b6;
    --bb-blush: #fdf2f8;
    --bb-gold: #ca8a04;
    --bb-gold-soft: #fef3c7;
    --bb-ink: #2f1024;
    --bb-muted: #6b5062;
    --bb-card: rgba(255, 255, 255, 0.84);
    --bb-border: rgba(219, 39, 119, 0.14);
    --bb-shadow-sm: 0 12px 32px rgba(131, 24, 67, 0.08);
    --bb-shadow-md: 0 22px 60px rgba(131, 24, 67, 0.13);
    --bb-radius: 28px;
    --bb-radius-sm: 18px;
    --lila-principal: var(--bb-primary);
    --purpura-fuerte: var(--bb-primary-dark);
    --malva-medio: var(--bb-rose);
    --fondo-claro: var(--bb-blush);
}

html {
    scroll-padding-top: 110px;
}

body.bonita-shell,
body {
    font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: var(--bb-ink);
    background:
        radial-gradient(circle at 8% 10%, rgba(244, 114, 182, 0.20), transparent 28%),
        radial-gradient(circle at 92% 5%, rgba(202, 138, 4, 0.12), transparent 28%),
        linear-gradient(180deg, #fff7fb 0%, #fdf2f8 44%, #fff 100%);
    background-attachment: fixed;
}

h1, h2, h3,
.display-1, .display-5,
.detail-title,
.carrusel-subtitulo {
    font-family: 'Playfair Display', Georgia, serif;
    letter-spacing: -0.035em;
}

a,
button,
.btn,
.card,
.dropdown-item,
.punto-mini,
.carousel-control-dest,
.product-card-minimal,
.admin-product-mobile-card,
.admin-order-mobile-card,
.revenue-mobile-card,
.admin-category-card {
    transition: color 0.22s ease, background-color 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, transform 0.22s ease, opacity 0.22s ease;
}

a, button, .btn, [onclick], .dropdown-item, .punto-mini {
    cursor: pointer;
}

.btn:focus-visible,
.nav-link:focus-visible,
.dropdown-item:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
.page-link:focus-visible,
a:focus-visible,
button:focus-visible {
    outline: 3px solid rgba(202, 138, 4, 0.35) !important;
    outline-offset: 3px;
    box-shadow: 0 0 0 0.25rem rgba(219, 39, 119, 0.16) !important;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    padding: 0.85rem clamp(0.55rem, 2vw, 1.25rem) 0;
}

.bonita-navbar {
    max-width: 1320px;
    margin: 0 auto 1.1rem;
    border: 1px solid rgba(255, 255, 255, 0.72) !important;
    border-bottom: 1px solid var(--bb-border) !important;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.82) !important;
    box-shadow: 0 18px 48px rgba(131, 24, 67, 0.12);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.bonita-navbar-inner {
    padding: 0.45rem 0.8rem;
}

.bonita-brand {
    border-radius: 999px;
}

.bonita-navbar .nav-link {
    color: var(--bb-ink) !important;
    border-radius: 999px;
    padding: 0.55rem 0.85rem;
}

.bonita-navbar .nav-link:hover,
.bonita-navbar .nav-link:focus {
    color: var(--bb-primary-dark) !important;
    background: rgba(252, 231, 243, 0.78);
}

.admin-nav-pill {
    background: linear-gradient(135deg, rgba(252, 231, 243, 0.95), rgba(254, 243, 199, 0.62));
    border: 1px solid rgba(219, 39, 119, 0.14);
}

.bonita-cart-icon {
    width: 46px;
    height: 46px;
    border-radius: 16px;
    color: var(--bb-primary-dark);
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(219, 39, 119, 0.18);
    box-shadow: none;
    font-size: 1.35rem;
}

.bonita-cart-link:hover .bonita-cart-icon {
    color: var(--bb-primary-dark);
    background: #fce7f3;
    border-color: rgba(219, 39, 119, 0.35);
    box-shadow: none;
}

.bonita-cart-badge {
    top: 8%;
    border: 2px solid #fff;
    font-size: 0.7rem;
    background: var(--bb-gold) !important;
}

.login-nav-wrap .navbar-nav {
    align-items: center;
    gap: 0.25rem;
}

.login-nav-wrap .btn-link,
.login-nav-wrap .nav-link {
    font-weight: 700;
    text-decoration: none;
}

.bonita-main-container {
    max-width: 1240px;
}

.bonita-footer {
    color: var(--bb-muted);
    padding: 1.4rem 0;
    border-top: 1px solid rgba(219, 39, 119, 0.12);
    background: rgba(255, 255, 255, 0.76);
    backdrop-filter: blur(14px);
}

.footer-brand {
    color: var(--bb-primary-dark);
    font-family: 'Playfair Display', Georgia, serif;
    font-weight: 800;
    font-size: 1.05rem;
}

.footer-social,
.footer-credit a {
    color: var(--bb-primary-dark);
    font-weight: 800;
    text-decoration: none;
}

.footer-social:hover,
.footer-credit a:hover {
    color: var(--bb-primary);
}

.section-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--bb-gold);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    margin-bottom: 0.35rem;
}

.hero-bienvenida,
.catalog-filter-card,
.catalog-categories-card,
.product-card-minimal,
.premium-cart-table-card,
.premium-checkout-card,
.premium-confirm-card,
.admin-page-header,
.admin-dashboard-header,
.admin-filter-card,
.revenue-summary-card,
.premium-form-card,
.modal-content,
.pos-panel-card,
.pos-ticket-card,
.admin-desktop-table,
.admin-orders-desktop,
.admin-categories-table,
.order-detail-mobile-page > .card,
.revenue-mobile-page > .card {
    background: var(--bb-card) !important;
    border: 1px solid var(--bb-border) !important;
    border-radius: var(--bb-radius) !important;
    box-shadow: var(--bb-shadow-sm) !important;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.premium-hero {
    min-height: 350px;
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 16% 18%, rgba(244, 114, 182, 0.16), transparent 34%),
        radial-gradient(circle at 86% 18%, rgba(250, 204, 21, 0.10), transparent 36%),
        linear-gradient(135deg, #fffafd 0%, #fff6fb 52%, #fff9fb 100%) !important;
    overflow: hidden;
}

.premium-hero::after {
    content: none;
}

.text-gradient {
    background: linear-gradient(110deg, #831843 0%, #be185d 38%, #db2777 68%, #ca8a04 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.hero-descripcion {
    color: var(--bb-muted) !important;
    max-width: 710px;
}

.hero-trust-row span {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 42px;
    padding: 0.55rem 0.9rem;
    color: var(--bb-primary-dark);
    background: rgba(255, 255, 255, 0.74);
    border: 1px solid rgba(219, 39, 119, 0.12);
    border-radius: 999px;
    box-shadow: 0 8px 20px rgba(131, 24, 67, 0.06);
    font-weight: 700;
    font-size: 0.9rem;
}

.badge-espacio-belleza,
.premium-category-badge,
.badge-categoria-flotante {
    background: rgba(252, 231, 243, 0.88) !important;
    color: var(--bb-primary-dark) !important;
    border: 1px solid rgba(219, 39, 119, 0.14) !important;
}

.carrusel-destacados.destacados-minimal {
    background:
        radial-gradient(circle at 12% 20%, rgba(244, 114, 182, 0.20), transparent 30%),
        radial-gradient(circle at 88% 0%, rgba(202, 138, 4, 0.16), transparent 30%),
        linear-gradient(135deg, #3f0b29 0%, #831843 52%, #2f1024 100%) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: var(--bb-radius) !important;
    padding: 1.2rem;
    box-shadow: var(--bb-shadow-md) !important;
}

.destacados-heading .section-kicker,
.destacados-minimal .section-kicker {
    color: #fef3c7;
}

.destacados-minimal .carrusel-subtitulo {
    font-size: clamp(1.35rem, 2vw, 2rem);
}

.dest-card {
    border-radius: 24px !important;
    background: rgba(255, 255, 255, 0.10) !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
}

.dest-card:hover {
    transform: translateY(-4px) translateZ(0) !important;
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.24) !important;
}

.catalog-heading-mobile {
    border-bottom-color: rgba(219, 39, 119, 0.12) !important;
}

.catalog-search-input,
.catalog-order-select,
.form-control,
.form-select,
.input-group-text {
    border-radius: 18px !important;
    border: 1px solid rgba(219, 39, 119, 0.16) !important;
    background-color: rgba(255, 255, 255, 0.88) !important;
    color: var(--bb-ink) !important;
}

.form-control,
.form-select {
    min-height: 46px;
}

.form-control:focus,
.form-select:focus {
    border-color: rgba(219, 39, 119, 0.45) !important;
    box-shadow: 0 0 0 0.25rem rgba(219, 39, 119, 0.12) !important;
}

.btn-primary,
.btn-success,
.premium-cta {
    background: linear-gradient(135deg, var(--bb-primary), var(--bb-primary-dark)) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 12px 26px rgba(219, 39, 119, 0.22) !important;
}

.btn-primary:hover,
.btn-success:hover,
.premium-cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 16px 32px rgba(219, 39, 119, 0.28) !important;
}

.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-custom,
.btn-outline-agregar {
    background: rgba(255, 255, 255, 0.78) !important;
    color: var(--bb-primary-dark) !important;
    border: 1px solid rgba(219, 39, 119, 0.24) !important;
    box-shadow: none !important;
}

.btn-outline-primary:hover,
.btn-outline-secondary:hover,
.btn-outline-custom:hover,
.btn-outline-agregar:hover {
    background: var(--bb-primary-dark) !important;
    color: #fff !important;
    border-color: var(--bb-primary-dark) !important;
    transform: translateY(-1px);
}

.btn-danger,
.btn-outline-danger:hover {
    border-color: transparent !important;
}

.product-card-minimal {
    overflow: hidden;
}

.product-card-minimal:hover {
    transform: translateY(-5px);
    border-color: rgba(219, 39, 119, 0.28) !important;
    box-shadow: var(--bb-shadow-md) !important;
}

.product-media-minimal {
    height: 250px;
    background:
        radial-gradient(circle at 50% 16%, rgba(252, 231, 243, 0.95), transparent 42%),
        linear-gradient(180deg, #fff 0%, #fff7fb 100%) !important;
}

.product-title-minimal {
    color: var(--bb-ink);
    font-weight: 800 !important;
}

.product-price-panel {
    background: linear-gradient(135deg, rgba(253, 242, 248, 0.92), rgba(255, 255, 255, 0.94)) !important;
    border: 1px solid rgba(219, 39, 119, 0.12) !important;
}

.label-precio {
    color: var(--bb-muted) !important;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.texto-mayorista,
.label-mayorista {
    color: var(--bb-primary-dark) !important;
}

.sello-agotado {
    background: rgba(47, 16, 36, 0.88);
    backdrop-filter: blur(8px);
}

.card-carousel-puntos {
    bottom: 10px;
}

.punto-mini {
    border: 1px solid rgba(255,255,255,0.75);
    box-shadow: 0 2px 8px rgba(131, 24, 67, 0.16);
}

.product-detail-card {
    background: rgba(255,255,255,0.88) !important;
    border: 1px solid var(--bb-border) !important;
    box-shadow: var(--bb-shadow-md) !important;
}

.product-detail-gallery {
    background:
        radial-gradient(circle at 50% 20%, rgba(252, 231, 243, 0.92), transparent 42%),
        linear-gradient(180deg, #fff, #fff7fb) !important;
}

.detail-title {
    color: var(--bb-primary-dark) !important;
}

.detail-price {
    font-size: clamp(2rem, 4vw, 3.2rem) !important;
    color: var(--bb-primary-dark) !important;
}

.detalle-miniatura.activa,
.detalle-miniatura:hover {
    border-color: var(--bb-primary) !important;
    box-shadow: 0 8px 18px rgba(219, 39, 119, 0.18);
}

.premium-cart-hero,
.premium-empty-state,
.premium-confirm-card,
.premium-404-page .col-md-8 {
    background:
        radial-gradient(circle at 14% 12%, rgba(244, 114, 182, 0.18), transparent 30%),
        linear-gradient(135deg, rgba(255,255,255,0.94), rgba(252, 231, 243, 0.72)) !important;
}

.cart-continue-wrap {
    display: flex;
    align-items: center;
    min-height: 0;
}

.cart-continue-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    line-height: 1.15;
}

.premium-checkout-card {
    position: relative;
    overflow: hidden;
}

.premium-checkout-card::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 5px;
    background: linear-gradient(90deg, var(--bb-primary), var(--bb-gold));
}

.table {
    color: var(--bb-ink);
}

.table-light,
.table > :not(caption) > * > th {
    background: rgba(253, 242, 248, 0.78) !important;
    color: var(--bb-primary-dark) !important;
    border-bottom-color: rgba(219, 39, 119, 0.12) !important;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.table > :not(caption) > * > * {
    border-bottom-color: rgba(219, 39, 119, 0.08) !important;
}

.table-hover > tbody > tr:hover > * {
    background: rgba(253, 242, 248, 0.54) !important;
}

.page-link {
    color: var(--bb-primary-dark) !important;
    background: rgba(255, 255, 255, 0.82) !important;
}

.page-item.active .page-link,
.page-link.bg-primary {
    color: #fff !important;
    background: linear-gradient(135deg, var(--bb-primary), var(--bb-primary-dark)) !important;
}

.premium-admin-page .admin-page-header,
.premium-admin-page .admin-dashboard-header,
.premium-admin-page .pos-mobile-header {
    padding: 1.35rem !important;
    border-bottom: 0 !important;
    background:
        radial-gradient(circle at 10% 10%, rgba(244, 114, 182, 0.14), transparent 30%),
        rgba(255,255,255,0.84) !important;
    border: 1px solid var(--bb-border) !important;
    border-radius: var(--bb-radius) !important;
    box-shadow: var(--bb-shadow-sm) !important;
}

.premium-admin-page h2,
.premium-admin-page h4,
.premium-admin-page h5 {
    color: var(--bb-primary-dark);
}

.card-hover,
.admin-product-mobile-card,
.admin-order-mobile-card,
.order-detail-product-card,
.revenue-mobile-card,
.admin-category-card,
.admin-empty-card,
.cart-mobile-item {
    background: rgba(255,255,255,0.88) !important;
    border: 1px solid rgba(219, 39, 119, 0.12) !important;
    box-shadow: var(--bb-shadow-sm) !important;
}

.card-hover:hover,
.admin-product-mobile-card:hover,
.admin-order-mobile-card:hover,
.revenue-mobile-card:hover,
.admin-category-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--bb-shadow-md) !important;
}

.icon-container {
    background: linear-gradient(135deg, rgba(252, 231, 243, 0.92), rgba(254, 243, 199, 0.72)) !important;
    color: var(--bb-primary-dark) !important;
}

.btn-tarjeta {
    background: rgba(253, 242, 248, 0.92) !important;
    color: var(--bb-primary-dark) !important;
    border-color: rgba(219, 39, 119, 0.14) !important;
}

.product-form-header,
.order-detail-header,
.card-header.bg-dark,
.card-header.bg-primary,
.card-header.bg-success,
.card-header.bg-danger {
    background:
        radial-gradient(circle at 12% 18%, rgba(244, 114, 182, 0.22), transparent 32%),
        linear-gradient(135deg, var(--bb-primary-dark), #4c1236) !important;
    border-bottom: 0 !important;
    padding: 1.25rem 1.4rem;
}

.pos-ticket-card {
    border-top: 0 !important;
}

.pos-ticket-card::before,
.revenue-summary-card::before,
.premium-form-card::before {
    content: '';
    display: block;
    height: 4px;
    background: linear-gradient(90deg, var(--bb-primary), var(--bb-gold));
}

.revenue-summary-card .card-body {
    padding: 1.35rem;
}

.revenue-summary-card h3 {
    color: var(--bb-primary-dark) !important;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.6rem, 3vw, 2.25rem);
}

.badge.bg-success,
.badge.bg-primary,
.badge.bg-warning,
.badge.bg-info,
.badge.bg-secondary {
    border-radius: 999px;
}

.badge.bg-success {
    background-color: #ecfdf5 !important;
    color: #047857 !important;
    border: 1px solid rgba(4, 120, 87, 0.18);
}

.badge.bg-primary,
.bg-primary {
    background-color: var(--bb-primary) !important;
}

.text-primary {
    color: var(--bb-primary-dark) !important;
}

.text-success {
    color: #047857 !important;
}

.dataTables_wrapper .form-select,
.dataTables_wrapper .form-control {
    min-height: 38px;
    border-radius: 14px !important;
}

.modal-content {
    overflow: hidden;
}

.swal2-popup {
    border-radius: 26px !important;
    font-family: 'Inter', sans-serif !important;
}

@media (max-width: 767.98px) {
    .site-header {
        padding: 0.5rem 0.55rem 0;
    }

    .bonita-navbar {
        border-radius: 24px;
        margin-bottom: 0.85rem;
    }

    .bonita-navbar-inner {
        padding: 0.45rem 0.55rem;
    }

    .bonita-cart-icon {
        width: 40px;
        height: 40px;
        font-size: 1.18rem;
        border-radius: 14px;
    }

    .navbar-collapse {
        margin-top: 0.6rem;
        padding: 0.65rem;
        border-top: 1px solid rgba(219, 39, 119, 0.10);
    }

    .login-nav-wrap .navbar-nav {
        align-items: stretch;
    }

    .login-nav-wrap .nav-link,
    .login-nav-wrap .btn-link,
    .bonita-navbar .nav-link {
        width: 100%;
        text-align: left;
        justify-content: flex-start;
    }

    .premium-hero {
        min-height: auto;
        padding: 1.5rem 1rem !important;
    }

    .premium-hero h1,
    .cart-mobile-page .hero-bienvenida h1 {
        font-size: clamp(1.85rem, 12vw, 2.45rem) !important;
    }

    .hero-trust-row {
        flex-direction: column;
        align-items: stretch;
    }

    .hero-trust-row span {
        justify-content: center;
        font-size: 0.84rem;
    }

    .carrusel-destacados.destacados-minimal {
        padding: 1rem;
        border-radius: 24px !important;
    }

    .catalog-heading-mobile {
        border-radius: 20px;
        margin-bottom: 0.85rem !important;
    }

    .product-media-minimal {
        height: 205px;
    }

    .product-price-panel {
        gap: 0.8rem;
    }

    .product-detail-info {
        padding: 1.3rem !important;
    }

    .detail-title {
        font-size: 2rem !important;
    }

    .premium-checkout-card {
        border-radius: 24px !important;
    }

    .cart-continue-wrap {
        margin-top: -0.2rem;
        margin-bottom: 1rem !important;
    }

    .cart-continue-btn {
        min-height: 40px;
        padding-top: 0.48rem !important;
        padding-bottom: 0.48rem !important;
        white-space: nowrap;
    }

    .premium-admin-page .admin-page-header,
    .premium-admin-page .admin-dashboard-header,
    .premium-admin-page .pos-mobile-header {
        padding: 1rem !important;
        border-radius: 22px !important;
    }

    .premium-admin-page h2 {
        font-size: 1.45rem !important;
    }

    .admin-dashboard-grid .card,
    .admin-product-mobile-card,
    .admin-order-mobile-card,
    .order-detail-product-card,
    .revenue-mobile-card,
    .admin-category-card,
    .cart-mobile-item {
        border-radius: 22px !important;
    }

    .footer-brand {
        display: block;
        margin-bottom: 0.2rem;
    }
}

@media (max-width: 420px) {
    .bonita-main-container,
    .container {
        padding-left: 10px;
        padding-right: 10px;
    }

    .btn,
    .form-control,
    .form-select {
        min-height: 44px;
    }

    .product-media-minimal {
        height: 190px;
    }

    .section-kicker {
        font-size: 0.66rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* --- PREMIUM FIXES AFTER QA --- */
.bonita-navbar {
    background: rgba(255, 255, 255, 0.76) !important;
    border-color: rgba(219, 39, 119, 0.10) !important;
    box-shadow: 0 18px 46px rgba(131, 24, 67, 0.10);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.bonita-brand-text {
    display: inline-block;
    position: relative;
    color: var(--bb-primary-dark);
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.55rem, 3vw, 2.15rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.055em;
    white-space: nowrap;
}

.bonita-brand-text::after {
    content: '';
    display: block;
    width: 70%;
    height: 3px;
    margin-top: 2px;
    margin-left: auto;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, var(--bb-primary), var(--bb-primary-dark));
}

.footer-credit a::before {
    content: '';
}

.product-card-minimal {
    border-radius: 30px !important;
    background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,247,251,0.92)) !important;
    border: 1px solid rgba(219, 39, 119, 0.16) !important;
    box-shadow: 0 18px 42px rgba(131, 24, 67, 0.09) !important;
}

.product-card-minimal::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, var(--bb-primary), rgba(244, 114, 182, 0.18), var(--bb-gold));
    z-index: 2;
}

.product-card-minimal:hover {
    transform: translateY(-6px);
    border-color: rgba(219, 39, 119, 0.28) !important;
    box-shadow: 0 26px 68px rgba(131, 24, 67, 0.16) !important;
}

.product-media-minimal {
    height: 270px;
    padding: 1.4rem !important;
    background:
        radial-gradient(circle at 50% 20%, rgba(255, 255, 255, 0.94), transparent 28%),
        radial-gradient(circle at 18% 14%, rgba(244, 114, 182, 0.16), transparent 32%),
        linear-gradient(145deg, #fff7fb 0%, #ffffff 52%, #fce7f3 100%) !important;
}

.product-media-minimal .card-hover-img,
.product-media-minimal .card-carousel-img {
    filter: drop-shadow(0 18px 24px rgba(131, 24, 67, 0.12));
}

.product-card-body-minimal {
    border-top: 1px solid rgba(219, 39, 119, 0.10) !important;
    padding: 1.15rem 1.15rem 1.25rem;
}

.product-title-minimal {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.18rem;
    line-height: 1.15;
    letter-spacing: -0.025em;
}

.texto-clamp {
    color: var(--bb-muted) !important;
}

.product-price-panel {
    align-items: flex-end !important;
    background: rgba(255, 255, 255, 0.78) !important;
    border-color: rgba(219, 39, 119, 0.14) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.95);
}

.product-price-panel .text-start span {
    color: var(--bb-primary-dark) !important;
    font-size: 1.18rem !important;
    font-weight: 900 !important;
}

.product-price-panel .text-end span.texto-mayorista,
.texto-mayorista {
    color: rgba(131, 24, 67, 0.76) !important;
    font-size: 0.9rem !important;
    font-weight: 800 !important;
}

.label-mayorista {
    color: rgba(131, 24, 67, 0.62) !important;
}

.product-add-button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 48px;
    border-width: 1px !important;
    background: linear-gradient(135deg, rgba(255,255,255,0.92), rgba(252, 231, 243, 0.92)) !important;
    white-space: nowrap;
}

.product-add-button:hover {
    background: linear-gradient(135deg, var(--bb-primary), var(--bb-primary-dark)) !important;
}

.product-add-button.cart-added-state,
.product-add-button.cart-added-state:hover {
    background: #198754 !important;
    border-color: #198754 !important;
    color: #ffffff !important;
    box-shadow: none !important;
    transform: none !important;
}

.revenue-summary-card::before {
    display: none;
}

.revenue-summary-card {
    border-top: 1px solid rgba(219, 39, 119, 0.14) !important;
    overflow: hidden;
}

.revenue-summary-card .card-body {
    padding: 1.45rem 1.35rem;
}

.revenue-summary-card p {
    color: #5f5f66 !important;
    font-size: 0.86rem;
    letter-spacing: -0.01em;
}

.revenue-summary-card h3 {
    color: var(--bb-primary-dark) !important;
    font-size: clamp(2rem, 3vw, 2.35rem) !important;
    line-height: 1;
    letter-spacing: -0.04em;
}

.admin-orders-desktop .badge,
.admin-orders-mobile .badge,
.order-detail-header .badge,
.order-detail-info .badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 0.38rem 0.82rem !important;
    font-size: 0.76rem !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: -0.01em;
    border-width: 1px !important;
}

.order-detail-header,
.product-form-header,
.card-header.bg-primary.product-form-header,
.card-header.bg-success.product-form-header,
.card-header.bg-dark.order-detail-header {
    color: #ffffff !important;
    background:
        radial-gradient(circle at 10% 18%, rgba(244, 114, 182, 0.26), transparent 34%),
        linear-gradient(135deg, #831843 0%, #5f123c 58%, #3c0d2b 100%) !important;
}

.order-detail-header h4,
.order-detail-header h4 i,
.product-form-header h4,
.product-form-header h4 i {
    color: #ffffff !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: 0 1px 1px rgba(0,0,0,0.12);
}

.order-detail-header .badge {
    background: #fff7fb !important;
    color: #dc3545 !important;
    border-color: rgba(220, 53, 69, 0.24) !important;
}

.product-form-header + .card-body {
    background: rgba(255,255,255,0.96);
}

.premium-admin-page .text-warning {
    color: var(--bb-gold) !important;
}

@media (max-width: 767.98px) {
    .bonita-brand-text {
        font-size: clamp(1.35rem, 7vw, 1.75rem);
    }

    .product-media-minimal {
        height: 220px;
    }

    .product-title-minimal {
        font-size: 1.08rem;
    }

    .product-price-panel .text-start span {
        font-size: 1.08rem !important;
    }

    .product-price-panel .text-end span.texto-mayorista,
    .texto-mayorista {
        font-size: 0.82rem !important;
    }
}

/* --- PREMIUM MOBILE MENU TOGGLER --- */
.bonita-navbar .navbar-toggler {
    width: 46px;
    height: 46px;
    padding: 0;
    border-radius: 16px;
    border: 1px solid rgba(219, 39, 119, 0.18) !important;
    background: linear-gradient(135deg, #ffffff, #fdf2f8) !important;
    box-shadow: 0 10px 24px rgba(131, 24, 67, 0.08) !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.bonita-navbar .navbar-toggler:hover,
.bonita-navbar .navbar-toggler:focus,
.bonita-navbar .navbar-toggler[aria-expanded="true"] {
    background: #fce7f3 !important;
    border-color: rgba(219, 39, 119, 0.35) !important;
    color: var(--bb-primary-dark);
}

.bonita-navbar .navbar-toggler-icon {
    width: 22px;
    height: 16px;
    background-image: none !important;
    position: relative;
    border-top: 2px solid var(--bb-primary-dark);
    border-bottom: 2px solid var(--bb-primary-dark);
}

.bonita-navbar .navbar-toggler-icon::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 22px;
    border-top: 2px solid var(--bb-primary-dark);
    transform: translateY(-50%);
}

.bonita-navbar .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon,
.bonita-navbar .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::before {
    border-color: var(--bb-primary);
}

@media (min-width: 576px) {
    .bonita-navbar .navbar-toggler {
        display: none !important;
    }
}

@media (max-width: 575.98px) {
    .site-header {
        padding-top: 0.35rem;
    }

    .bonita-navbar {
        margin-bottom: 0.45rem;
        border-radius: 22px;
    }

    .bonita-navbar-inner {
        padding: 0.32rem 0.42rem;
        gap: 0.22rem;
        flex-wrap: nowrap;
    }

    .bonita-brand {
        flex: 1 1 auto;
        min-width: 0;
        margin-right: 0.25rem !important;
    }

    .bonita-brand-text {
        font-size: clamp(1.25rem, 6.1vw, 1.52rem);
        letter-spacing: -0.055em;
    }

    .bonita-brand-text::after {
        width: 62%;
        height: 2px;
        margin-top: 1px;
    }

    .bonita-navbar-actions {
        flex: 0 0 auto;
        gap: 0.22rem;
        margin-left: auto !important;
    }

    .mobile-header-search-toggle,
    .bonita-cart-icon,
    .bonita-navbar .navbar-toggler {
        width: 40px;
        height: 40px;
        min-width: 40px;
        border-radius: 13px;
        border: 1px solid rgba(219, 39, 119, 0.18) !important;
        background: rgba(255, 255, 255, 0.78) !important;
        box-shadow: 0 8px 18px rgba(131, 24, 67, 0.08) !important;
        color: var(--bb-primary-dark) !important;
    }

    .mobile-header-search-toggle {
        margin-right: 0 !important;
        font-size: 1.14rem;
    }

    .bonita-cart-link {
        padding-right: 0 !important;
    }

    .bonita-cart-icon {
        font-size: 1.08rem;
    }

    .bonita-navbar .navbar-toggler-icon {
        width: 20px;
        height: 15px;
        border-top-width: 2.5px;
        border-bottom-width: 2.5px;
    }

    .bonita-navbar .navbar-toggler-icon::before {
        width: 20px;
        border-top-width: 2.5px;
    }

    .mobile-store-tools {
        margin-top: 0.45rem !important;
        padding-top: 0.45rem !important;
        border-top: 1px solid rgba(219, 39, 119, 0.10) !important;
    }

    #mobileHeaderSearchPanel.show {
        margin-top: 0;
        padding-top: 0;
        border-top: 0;
    }
}
