*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}


body{

    font-family:Arial, Helvetica, sans-serif;

    background:white;

    color:#222;

}







/* ==========================================
        BANNER PRINCIPAL
========================================== */

.banner-tienda{
    width:100%;
    height:330px;
    overflow:hidden;
    margin:0;
    padding:0;
}

.banner-tienda-img{
    display:block;
    width:100%;
    height:100%;
    max-width:100%;
    object-fit:cover;
    object-position:center;
}




/* ==========================================
        PRODUCTOS
========================================== */

.products_section{

    width:86%;

    margin:50px auto;

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:25px;

}


.section_title{

    grid-column:1/-1;

    text-align:center;

}


.section_title span{

    color:#f78fb3;

    font-weight:bold;

}


.section_title h2{

    font-size:35px;

}


.product_card{

    background:white;

    border-radius:18px;

    overflow:hidden;

    border:3px solid #ffd83d;

    display:flex;

    flex-direction:column;

    height:100%;

    text-decoration: none;

}


.product_image{

    height:260px;
    text-decoration: none;


}


.product_image img{

    width:100%;

    height:100%;

    object-fit:cover;
    text-decoration: none;
    

}


.product_info{

    padding:20px;

    flex:1;

    display:flex;

    flex-direction:column;

    text-decoration: none;

}


.product_info h3{

    font-size:21px;
    text-decoration: none;

}


.product_des{

    color:#777;

    margin:15px 0;
    text-decoration: none;

}



/* ==========================================
        PRECIO + BOTONES
========================================== */

.product_bottom{

    display:flex;

    flex-direction:column;

    align-items:stretch;

    gap:14px;

    margin-top:auto;

    padding-top:18px;
    text-decoration: none;


}


.product-price{

    display:block;

    color:#f28bb0;

    font-size:21px;

    font-weight:700;

    white-space:normal;
}



/* ==========================================
        ACCIONES DEL PRODUCTO
========================================== */

.product-actions{

    display:flex;

    align-items:center;

    gap:10px;

    width:100%;
    padding: 0 20px 20px 20px; /* Alinea los botones con el padding del contenido superior */
    box-sizing: border-box;

}


.product-actions form{

    margin:0;

    flex-shrink:0;

}



/* BOTON CARRITO */

.btn-carrito{

    width:48px;

    height:48px;

    border:none;

    border-radius:12px;

    background:#ffd83d;

    color:#222;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:21px;

    cursor:pointer;

    transition:all .25s ease;

}


.btn-carrito:hover{

    background:#f78fb3;

    transform:translateY(-2px);

}

.product-link {
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    flex: 1; /* Permite ocupar todo el espacio disponible */
}

.product-link:visited,
.product-link:hover,
.product-link:active {
    text-decoration: none;
    color: inherit;
}

/* BOTON VER PRODUCTO */

.product-actions .btn-ver-producto{

    flex:1;

    width:auto;

    min-height:48px;

    margin-top:0;

    display:flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    padding:13px 15px;

    background:#e71968;

    color:white;

    border-radius:12px;

    text-decoration:none;

    font-size:14px;

    font-weight:700;

    transition:all .25s ease;

}


.product-actions .btn-ver-producto:hover{

    background:#c91458;

    transform:translateY(-2px);

    box-shadow:

        0 6px 15px rgba(231,25,104,.20);

}


.product-actions .btn-ver-producto span{

    font-size:19px;

    line-height:1;

    transition:transform .25s ease;

}


.product-actions .btn-ver-producto:hover span{

    transform:translateX(5px);

}





 @media(max-width:768px){

    .categories{
        flex-wrap:nowrap;
        overflow-x:auto;
        justify-content:flex-start;
        padding:10px;
    }


    .category_btn{

        flex-shrink:0;
        font-size:16px;
        padding:12px 25px;

    }


    .section_title h2{

        font-size:35px;
        text-align:center;
        line-height:1.2;

    }


}


/* ==========================================
        RESPONSIVE
========================================== */

@media(max-width:768px){


    /* ======================================
       BANNER
    ====================================== */

   .banner-tienda{
    width:100%;
    height:230px;
    overflow:hidden;
}

.banner-tienda-img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
}






    /* ======================================
       PRODUCTOS
    ====================================== */

    .products_section{

        width:92%;

        grid-template-columns:1fr;

    }


    .product_image{

        height:250px;

    }


    .product_info{

        padding:18px;

    }


    .product_info h3{

        font-size:20px;

    }


    .product-price{

        font-size:21px;

    }


}



/* BOTÓN FLOTANTE EN TU CSS*/
 .btn-flotante {

    position: fixed !important;

    bottom: 30px !important;

    left: 30px !important;

    width: 50px !important;

    height: 50px !important;

    background-color: #c91458 !important; /* Amarillo de tu tienda */

    color: #f1eeee !important;

    border: none !important;

    border-radius: 50% !important; /* Lo hace completamente redondo */

    font-size: 22px !important;

    font-weight: bold !important;

    cursor: pointer !important;

    box-shadow: 0 4px 12px rgb(5, 5, 5) !important;

    z-index: 99999 !important;

   

    /* Centrar perfectamente la flecha */

    display: flex !important;

    align-items: center !important;

    justify-content: center !important;

   

    /* Transición suave */

    opacity: 0 !important;
    visibility: hidden !important;
    transition: all 0.3s ease !important;

}

.btn-flotante.activo {
    opacity: 1 !important;
    visibility: visible !important;
}

.btn-flotante:hover 
{

    background-color: #f78fb3 !important; /* Rosa de tu tienda */

    color: #ffffff !important;

    transform: translateY(-4px) !important;

}




/* ==========================================
   CATEGORÍAS EN EL INICIO
========================================== */

.inicio-categorias {
    width: 90%;
    max-width: 1100px;
    margin: 36px auto 40px;
}

.inicio-categorias-encabezado {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-bottom: 22px;
}

.inicio-categorias-encabezado h2 {
    margin: 0;
    font-size: 28px;
    line-height: 1.2;
    color: #222;
}

.inicio-categorias-encabezado a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    color: #e71968;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.inicio-categorias-encabezado a:hover {
    text-decoration: underline;
}

.inicio-categorias-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 35px;
}

.inicio-categoria {
    min-width: 0;
    color: #222;
    text-align: center;
    text-decoration: none;
}

.inicio-categoria-imagen {
    width: 100%;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 16px;
    background: #fff5f8;
    transition: box-shadow 0.2s ease;
}

.inicio-categoria:nth-child(even) .inicio-categoria-imagen {
    background: #fff8df;
}

.inicio-categoria-imagen > i {
    font-size: 38px;
    color: #d5a4b5;
}

.inicio-categoria:nth-child(even) .inicio-categoria-imagen > i {
    color: #c4ae62;
}

.inicio-categoria-imagen img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.2s ease;
}

.inicio-categoria-nombre {
    display: block;
    margin-top: 12px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
    transition: color 0.2s ease;
}

.inicio-categoria:hover .inicio-categoria-imagen {
    box-shadow: 0 5px 16px rgba(0, 0, 0, 0.08);
}

.inicio-categoria:hover img {
    transform: scale(1.04);
}

.inicio-categoria:hover .inicio-categoria-nombre {
    color: #e71968;
}

.inicio-categoria:focus-visible,
.inicio-categorias-encabezado a:focus-visible {
    outline: 3px solid #e71968;
    outline-offset: 5px;
    border-radius: 4px;
}

@media (max-width: 900px) {
    .inicio-categorias-grid {
        gap: 14px;
    }

    .inicio-categoria-nombre {
        font-size: 14px;
    }
}

@media (max-width: 600px) {
    .inicio-categorias {
        width: 92%;
        margin: 28px auto 32px;
    }

    .inicio-categorias-encabezado {
        flex-wrap: wrap;
        gap: 10px;
        margin-bottom: 18px;
    }

    .inicio-categorias-encabezado h2 {
        font-size: 23px;
    }

    .inicio-categorias-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px 14px;
    }
}

/* ==========================================
   INICIO DE RUBAN EN CELULAR
========================================== */
@media (max-width: 768px) {
    .banner-tienda {
        height: clamp(175px, 52vw, 230px);
        background: #fff5cf;
    }

    .banner-tienda-img {
        object-position: center;
    }

    .inicio-categorias,
    .inicio-ofertas,
    .inicio-novedades,
    .inicio-para-ti,
    .seccion-productos {
        width: calc(100% - 24px);
        margin-right: auto;
        margin-left: auto;
    }

    .inicio-categorias {
        margin-top: 26px;
        margin-bottom: 38px;
    }

    .inicio-categorias-encabezado,
    .inicio-ofertas-encabezado,
    .inicio-novedades-encabezado,
    .inicio-para-ti-encabezado {
        position: static;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        flex-wrap: nowrap;
        gap: 12px;
        margin-bottom: 16px;
        padding: 0;
        text-align: left;
    }

    .inicio-categorias-encabezado h2,
    .inicio-ofertas-encabezado h2,
    .inicio-novedades-encabezado h2,
    .inicio-para-ti-encabezado h2,
    .section_title h2 {
        font-size: clamp(22px, 6.2vw, 27px);
        line-height: 1.15;
        text-align: left;
    }

    .inicio-ofertas-encabezado span,
    .inicio-novedades-encabezado span,
    .inicio-para-ti-encabezado span,
    .section_title span {
        margin-bottom: 3px;
        font-size: 13px;
    }

    .inicio-categorias-encabezado a,
    .inicio-ofertas-encabezado a,
    .inicio-novedades-encabezado a,
    .inicio-para-ti-encabezado a {
        position: static;
        flex: 0 0 auto;
        font-size: 12px;
        white-space: nowrap;
    }

    .inicio-categorias-grid {
        width: calc(100% + 12px);
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: 92px;
        grid-template-columns: none;
        gap: 12px;
        margin-right: -12px;
        padding-right: 12px;
        overflow-x: auto;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
    }

    .inicio-categorias-grid::-webkit-scrollbar {
        display: none;
    }

    .inicio-categoria {
        scroll-snap-align: start;
    }

    .inicio-categoria-imagen {
        border-radius: 50%;
        box-shadow: 0 3px 10px rgba(80, 52, 63, 0.09);
    }

    .inicio-categoria-nombre {
        min-height: 34px;
        margin-top: 8px;
        font-size: 12px;
        line-height: 1.2;
    }

    .inicio-ofertas,
    .seccion-productos,
    .inicio-novedades,
    .inicio-para-ti {
        margin-top: 38px;
        margin-bottom: 42px;
    }

    .inicio-ofertas .tarjetas-grid--especial,
    .inicio-novedades .tarjetas-grid--especial,
    .inicio-para-ti .tarjetas-grid--para-ti,
    .seccion-productos .tarjetas-grid--especial {
        width: 100%;
        margin: 0;
    }

    .seccion-productos {
        padding: 0;
    }

    .seccion-productos .section_title {
        margin-bottom: 16px;
        text-align: left;
    }

    .inicio-para-ti {
        padding-bottom: 10px;
    }
}

@media (max-width: 390px) {
    .banner-tienda {
        height: 175px;
    }

    .inicio-categorias-grid {
        grid-auto-columns: 84px;
        gap: 10px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .inicio-categorias * {
        transition: none;
    }

    .inicio-categoria:hover img {
        transform: none;
    }
}

/* ==========================================
   OFERTAS EN EL INICIO
========================================== */

.inicio-ofertas {
    width: min(78%, 1100px);
    margin: 58px auto;
}

.inicio-ofertas .tarjetas-grid--especial {
    width: 100%;
}

.inicio-ofertas-encabezado {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: end;
    gap: 18px;
    margin-bottom: 24px;
    text-align: center;
}

.inicio-ofertas-encabezado span {
    display: block;
    margin-bottom: 5px;
    color: #e71968;
    font-size: 17px;
    font-weight: 700;
}

.inicio-ofertas-encabezado h2 {
    margin: 0;
    color: #222;
    font-size: 30px;
    line-height: 1.2;
}

.inicio-ofertas-encabezado a {
    position: absolute;
    right: 0;
    bottom: 7px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    color: #e71968;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.inicio-ofertas-encabezado a:hover {
    text-decoration: underline;
}

.inicio-ofertas-encabezado a:focus-visible {
    outline: 3px solid #e71968;
    outline-offset: 5px;
    border-radius: 4px;
}

@media (max-width: 600px) {
    .inicio-ofertas {
        width: 92%;
        margin: 46px auto 46px;
    }

    .inicio-ofertas-encabezado {
        flex-direction: column;
        align-items: center;
        margin-bottom: 20px;
    }

    .inicio-ofertas-encabezado a {
        position: static;
    }

    .inicio-ofertas-encabezado h2 {
        font-size: 25px;
    }
}

/* ==========================================
   NOVEDADES EN EL INICIO
========================================== */

.inicio-novedades {
    width: min(78%, 1100px);
    margin: 58px auto 64px;
}

.inicio-novedades .tarjetas-grid--especial {
    width: 100%;
}

.inicio-novedades-encabezado {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: end;
    gap: 18px;
    margin-bottom: 24px;
    text-align: center;
}

.inicio-novedades-encabezado span {
    display: block;
    margin-bottom: 5px;
    color: #e71968;
    font-size: 17px;
    font-weight: 700;
}

.inicio-novedades-encabezado h2 {
    margin: 0;
    color: #222;
    font-size: 30px;
    line-height: 1.2;
}

.inicio-novedades-encabezado a {
    position: absolute;
    right: 0;
    bottom: 7px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #e71968;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.inicio-novedades-encabezado a:hover {
    text-decoration: underline;
}

.inicio-novedades-encabezado a:focus-visible {
    outline: 3px solid #e71968;
    outline-offset: 5px;
    border-radius: 4px;
}

@media (max-width: 600px) {
    .inicio-novedades {
        width: 92%;
        margin: 46px auto;
    }

    .inicio-novedades-encabezado {
        flex-direction: column;
        align-items: center;
        margin-bottom: 20px;
    }

    .inicio-novedades-encabezado a {
        position: static;
    }

    .inicio-novedades-encabezado h2 {
        font-size: 25px;
    }
}

/* ==========================================
   PARA TI EN EL INICIO
========================================== */

.inicio-para-ti {
    width: min(94%, 1450px);
    margin: 58px auto 64px;
}

.inicio-para-ti .tarjetas-grid--para-ti {
    width: 100%;
    margin: 0;
}

.inicio-para-ti-encabezado {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: end;
    gap: 18px;
    margin-bottom: 24px;
    text-align: center;
}

.inicio-para-ti-encabezado span {
    display: block;
    margin-bottom: 5px;
    color: #e71968;
    font-size: 17px;
    font-weight: 700;
}

.inicio-para-ti-encabezado h2 {
    margin: 0;
    color: #222;
    font-size: 30px;
    line-height: 1.2;
}

.inicio-para-ti-encabezado a {
    position: absolute;
    right: 0;
    bottom: 7px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #e71968;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.inicio-para-ti-encabezado a:hover {
    text-decoration: underline;
}

.inicio-para-ti-encabezado a:focus-visible {
    outline: 3px solid #e71968;
    outline-offset: 5px;
}

@media (max-width: 600px) {
    .inicio-para-ti {
        width: 100%;
        margin: 42px auto 48px;
    }

    .inicio-para-ti-encabezado {
        justify-content: space-between;
        align-items: center;
        padding: 0 12px;
        text-align: left;
    }

    .inicio-para-ti-encabezado a {
        position: static;
    }

    .inicio-para-ti-encabezado h2 {
        font-size: 25px;
    }

    .inicio-para-ti-encabezado span {
        font-size: 14px;
    }
}

/* Mantiene la composición móvil final por encima de reglas históricas. */
@media (max-width: 768px) {
    .inicio-ofertas,
    .inicio-novedades,
    .inicio-para-ti,
    .seccion-productos {
        width: calc(100% - 24px);
        margin: 38px auto 42px;
    }

    .inicio-ofertas-encabezado,
    .inicio-novedades-encabezado,
    .inicio-para-ti-encabezado {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        flex-wrap: nowrap;
        gap: 12px;
        margin-bottom: 16px;
        padding: 0;
        text-align: left;
    }

    .inicio-ofertas-encabezado a,
    .inicio-novedades-encabezado a,
    .inicio-para-ti-encabezado a {
        position: static;
    }
}

/* ==========================================
   CATEGORÍAS MÓVILES: TRES ARRIBA Y DOS ABAJO
========================================== */
@media (max-width: 768px) {
    .inicio-categorias-grid {
        width: 100%;
        max-width: 430px;
        margin-right: auto;
        margin-left: auto;
        padding-right: 0;
        display: grid;
        grid-template-columns: repeat(6, minmax(0, 1fr));
        grid-auto-flow: row;
        grid-auto-columns: auto;
        gap: 16px 10px;
        overflow: visible;
    }

    .inicio-categorias-grid .inicio-categoria {
        grid-column: span 2;
        min-width: 0;
        scroll-snap-align: none;
    }

    .inicio-categorias-grid .inicio-categoria:nth-child(4) {
        grid-column: 2 / span 2;
    }

    .inicio-categorias-grid .inicio-categoria:nth-child(5) {
        grid-column: 4 / span 2;
    }
}


/* ==========================================
   AJUSTE MÓVIL: PRECIOS Y FAVORITO DE OFERTAS
   Solo afecta las tarjetas del carrusel de Ofertas en el inicio.
========================================== */
@media (max-width: 768px) {
    .inicio-ofertas .tarjetas-grid--ofertas .tarjeta-producto__favorito {
        top: auto;
        right: 8px;
        bottom: 8px;
        left: auto;
        width: 26px;
        height: 26px;
        font-size: 12px;
    }

    .inicio-ofertas .tarjetas-grid--ofertas .tarjeta-producto__fila-precio {
        align-items: flex-end;
        gap: 6px;
        margin-top: auto;
    }

    .inicio-ofertas .tarjetas-grid--ofertas .tarjeta-producto__precios {
        min-width: 0;
        flex: 1;
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
    }

    .inicio-ofertas .tarjetas-grid--ofertas .tarjeta-producto__precio-anterior {
        max-width: 100%;
        font-size: 9px;
        line-height: 1;
        white-space: nowrap;
    }

    .inicio-ofertas .tarjetas-grid--ofertas .tarjeta-producto__precio--oferta {
        max-width: 100%;
        margin: 0;
        overflow: hidden;
        font-size: 13px;
        line-height: 1.1;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

/* El picture ocupa todo el banner en computadora */
.banner-tienda-picture {
    display: block;
    width: 100%;
    height: 100%;
}

/* En celular, la imagen conserva su proporción completa */
@media (max-width: 768px) {
    .banner-tienda {
        height: auto;
    }

    .banner-tienda-picture {
        height: auto;
    }

    .banner-tienda-img {
        display: block;
        width: 100%;
        height: auto;
        object-fit: contain;
        object-position: center;
    }
}