/* =========================================
   MAPSTORE.UY
   HOJA DE ESTILOS PRINCIPAL
========================================= */


/* =========================================
   VARIABLES
========================================= */

:root {

    --fondo-principal: #101010;
    --fondo-header: #151515;
    --fondo-producto: #191919;
    --fondo-producto-resultados: #181818;
    --fondo-secundario: #242424;
    --fondo-imagen: #222222;

    --borde: #292929;

    --magenta: #e6006a;
    --turquesa: #027c7d;

    --texto-principal: white;
    --texto-secundario: #cccccc;
    --texto-gris: #999999;
    --texto-resultados: #aaaaaa;

}


/* =========================================
   BASE
========================================= */

* {
    box-sizing: border-box;
}


body {

    margin: 0;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    background:
        var(--fondo-principal);

    color:
        var(--texto-principal);

}


/* =========================================
   ENCABEZADO
========================================= */

header {

    background:
        var(--fondo-header);

    padding:
        12px 40px;

    display:
        flex;

    justify-content:
        space-between;

    align-items:
        center;

    gap:
        25px;

    border-bottom:
        2px solid var(--magenta);

}


.logo img {

    height:
        60px;

    width:
        auto;

    display:
        block;

}


/* =========================================
   BUSCADOR
========================================= */

.busqueda {

    display:
        flex;

    flex:
        1;

    max-width:
        500px;

}


.busqueda input {

    width:
        100%;

    padding:
        12px 18px;

    border:
        2px solid var(--borde);

    border-radius:
        25px 0 0 25px;

    background:
        var(--fondo-secundario);

    color:
        white;

    font-size:
        15px;

    outline:
        none;

}


.busqueda input:focus {

    border-color:
        var(--turquesa);

}


.busqueda input::placeholder {

    color:
        var(--texto-gris);

}


.busqueda button {

    border:
        none;

    padding:
        0 18px;

    border-radius:
        0 25px 25px 0;

    background:
        var(--magenta);

    color:
        white;

    font-size:
        17px;

    cursor:
        pointer;

}


.busqueda button:hover {

    background:
        #ff1680;

}


/* =========================================
   BOTÓN CARRITO DEL ENCABEZADO
========================================= */

.carrito {

    background:
        var(--turquesa);

    color:
        white;

    border:
        none;

    padding:
        11px 18px;

    border-radius:
        25px;

    font-weight:
        bold;

    font-size:
        15px;

    cursor:
        pointer;

    transition:
        0.2s;

}


.carrito:hover {

    background:
        var(--magenta);

    transform:
        scale(1.05);

}


/* =========================================
   HERO
========================================= */

.hero {

    min-height:
        430px;

    display:
        flex;

    flex-direction:
        column;

    justify-content:
        center;

    align-items:
        center;

    text-align:
        center;

    padding:
        40px 20px;

    background:

        radial-gradient(
            circle at 20% 30%,
            #e6006a55,
            transparent 30%
        ),

        radial-gradient(
            circle at 80% 70%,
            #027c7d55,
            transparent 30%
        ),

        var(--fondo-principal);

}


.hero h1 {

    font-size:
        52px;

    margin:
        0 0 15px;

}


.hero h1 span {

    color:
        var(--magenta);

}


.hero p {

    font-size:
        20px;

    color:
        var(--texto-secundario);

    max-width:
        600px;

}


/* =========================================
   BOTÓN PRINCIPAL
========================================= */

.boton-principal {

    margin-top:
        25px;

    padding:
        15px 30px;

    background:
        var(--magenta);

    color:
        white;

    text-decoration:
        none;

    border-radius:
        30px;

    font-weight:
        bold;

    transition:
        0.2s;

}


.boton-principal:hover {

    transform:
        scale(1.05);

}


/* =========================================
   PRODUCTOS
========================================= */

.productos {

    max-width:
        1200px;

    margin:
        auto;

    padding:
        60px 25px;

}


.productos h2 {

    text-align:
        center;

    font-size:
        32px;

    margin-bottom:
        40px;

}


.grid-productos {

    display:
        grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(230px, 1fr)
        );

    gap:
        25px;

}


.producto {

    background:
        var(--fondo-producto);

    border:
        1px solid var(--borde);

    border-radius:
        18px;

    padding:
        20px;

    text-align:
        center;

}


.producto:hover {

    transform:
        translateY(-5px);

    border-color:
        var(--magenta);

}


/* =========================================
   IMAGEN DEL PRODUCTO
========================================= */

.producto-imagen {

    width:
        100%;

    height:
        200px;

    background:
        var(--fondo-secundario);

    border-radius:
        14px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    margin-bottom:
        20px;

    overflow:
        hidden;

}


.producto-imagen img {

    width:
        100%;

    height:
        100%;

    object-fit:
        contain;

}


/* =========================================
   INFORMACIÓN PRODUCTO
========================================= */

.producto h3 {

    margin:
        10px 0;

}


.precio {

    font-size:
        24px;

    font-weight:
        bold;

    color:
        var(--magenta);

    margin:
        15px 0;

}


/* =========================================
   BOTÓN AGREGAR AL CARRITO
========================================= */

.boton-carrito {

    width:
        100%;

    border:
        none;

    padding:
        12px;

    border-radius:
        25px;

    background:
        var(--turquesa);

    color:
        white;

    font-weight:
        bold;

    cursor:
        pointer;

    transition:
        0.2s;

}


.boton-carrito:hover {

    background:
        var(--magenta);

}


/* =========================================
   RESULTADOS
========================================= */

.contenido {

    max-width:
        1200px;

    margin:
        40px auto;

    padding:
        0 25px;

}


.titulo-resultados {

    margin-bottom:
        30px;

}


.titulo-resultados h1 {

    margin:
        0 0 10px 0;

    font-size:
        30px;

}


#texto-busqueda {

    color:
        var(--texto-resultados);

    font-size:
        16px;

}


/* =========================================
   SIN RESULTADOS
========================================= */

#sin-resultados {

    display:
        none;

    text-align:
        center;

    padding:
        60px 20px;

    color:
        var(--texto-resultados);

}


#sin-resultados h2 {

    color:
        white;

    margin-bottom:
        10px;

}


/* =========================================
   BOTÓN VOLVER
========================================= */

.volver {

    display:
        inline-block;

    margin-top:
        35px;

    color:
        white;

    background:
        var(--borde);

    padding:
        11px 20px;

    border-radius:
        25px;

    text-decoration:
        none;

    transition:
        0.2s;

}


.volver:hover {

    background:
        var(--turquesa);

}


/* =========================================
   CARRITO
========================================= */

.carrito-contenido {

    min-height:
        500px;

}


#carrito-vacio {

    text-align:
        center;

    padding:
        60px 20px;

    color:
        var(--texto-resultados);

}


#carrito-vacio h2 {

    color:
        white;

    margin-bottom:
        10px;

}


.lista-carrito {

    display:
        flex;

    flex-direction:
        column;

    gap:
        15px;

}


.item-carrito {

    background:
        var(--fondo-producto-resultados);

    border:
        1px solid var(--borde);

    border-radius:
        14px;

    padding:
        15px;

    display:
        flex;

    align-items:
        center;

    gap:
        20px;

}


.item-carrito-imagen {

    width:
        90px;

    height:
        90px;

    background:
        var(--fondo-secundario);

    border-radius:
        10px;

    overflow:
        hidden;

    flex-shrink:
        0;

}


.item-carrito-imagen img {

    width:
        100%;

    height:
        100%;

    object-fit:
        contain;

}


.item-carrito-info {

    flex:
        1;

}


.item-carrito-info h3 {

    margin:
        0 0 8px;

}


.item-carrito-precio {

    margin:
        0;

    color:
        var(--magenta);

    font-weight:
        bold;

}


.cantidad-carrito {

    display:
        flex;

    align-items:
        center;

    gap:
        12px;

}


.cantidad-carrito button {

    width:
        32px;

    height:
        32px;

    border:
        none;

    border-radius:
        50%;

    background:
        var(--turquesa);

    color:
        white;

    font-size:
        20px;

    font-weight:
        bold;

    cursor:
        pointer;

}


.cantidad-carrito button:hover {

    background:
        var(--magenta);

}


.cantidad-carrito span {

    min-width:
        25px;

    text-align:
        center;

    font-weight:
        bold;

}


.subtotal-carrito {

    min-width:
        100px;

    text-align:
        right;

    font-size:
        18px;

    font-weight:
        bold;

}


.boton-eliminar {

    border:
        none;

    background:
        transparent;

    color:
        #999999;

    font-size:
        20px;

    cursor:
        pointer;

    padding:
        8px;

}


.boton-eliminar:hover {

    color:
        var(--magenta);

}


/* =========================================
   RESUMEN DEL CARRITO
========================================= */

.resumen-carrito {

    margin-top:
        30px;

    padding:
        25px;

    background:
        var(--fondo-header);

    border:
        1px solid var(--borde);

    border-radius:
        14px;

}


.total-carrito {

    text-align:
        right;

    font-size:
        25px;

    font-weight:
        bold;

}


#total-carrito {

    color:
        var(--magenta);

}


.boton-vaciar {

    margin-top:
        20px;

    padding:
        12px 22px;

    border:
        none;

    border-radius:
        25px;

    background:
        var(--borde);

    color:
        white;

    font-weight:
        bold;

    cursor:
        pointer;

}


.boton-vaciar:hover {

    background:
        var(--magenta);

}


/* =========================================
   FICHA DE PRODUCTO
========================================= */

.producto-detalle {

    max-width:
        1200px;

    margin:
        50px auto;

    padding:
        0 25px;

}


.detalle-producto {

    display:
        grid;

    grid-template-columns:
        1fr 1fr;

    gap:
        50px;

    align-items:
        center;

}


.detalle-imagen {

    width:
        100%;

    min-height:
        450px;

    background:
        var(--fondo-secundario);

    border:
        1px solid var(--borde);

    border-radius:
        18px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    overflow:
        hidden;

}


.detalle-imagen img {

    width:
        100%;

    height:
        450px;

    object-fit:
        contain;

}


.detalle-informacion {

    padding:
        10px;

}


.detalle-categoria {

    color:
        var(--turquesa);

    font-weight:
        bold;

    text-transform:
        uppercase;

    font-size:
        14px;

}


.detalle-informacion h1 {

    font-size:
        38px;

    margin:
        10px 0 20px;

}


.detalle-descripcion {

    color:
        var(--texto-secundario);

    font-size:
        17px;

    line-height:
        1.6;

}


.detalle-precio {

    font-size:
        34px;

    font-weight:
        bold;

    color:
        var(--magenta);

    margin:
        15px 0 5px;

}


.precio-anterior {

    color:
        var(--texto-gris);

    text-decoration:
        line-through;

    margin:
        0;

}


.stock-disponible {

    color:
        #42c98a;

    font-weight:
        bold;

}


.stock-agotado {

    color:
        var(--magenta);

    font-weight:
        bold;

}


.detalle-boton {

    margin-top:
        15px;

    padding:
        15px;

    font-size:
        16px;

}


.detalle-boton:disabled {

    background:
        #444444;

    color:
        #999999;

    cursor:
        not-allowed;

}


#producto-no-encontrado {

    display:
        none;

    text-align:
        center;

    padding:
        80px 20px;

}


#producto-no-encontrado h1 {

    margin-bottom:
        30px;

}


/* =========================================
   PIE
========================================= */

footer {

    margin-top:
        60px;

    padding:
        30px;

    text-align:
        center;

    background:
        var(--fondo-header);

    color:
        var(--texto-gris);

    border-top:
        1px solid var(--borde);

}


/* =========================================
   MÓVIL
========================================= */

@media (max-width: 700px) {

    .detalle-producto {

        grid-template-columns:
            1fr;

        gap:
            25px;

    }


    .detalle-imagen {

        min-height:
            300px;

    }


    .detalle-imagen img {

        height:
            300px;

    }


    .detalle-informacion h1 {

        font-size:
            30px;

    }


    .detalle-precio {

        font-size:
            28px;

    }


    header {

        padding:
            12px 20px;

        flex-wrap:
            wrap;

    }


    .logo {

        order:
            1;

    }


    .carrito {

        order:
            2;

    }


    .busqueda {

        order:
            3;

        flex-basis:
            100%;

        max-width:
            none;

    }


    .hero h1 {

        font-size:
            38px;

    }


    .hero p {

        font-size:
            17px;

    }


    .contenido {

        margin-top:
            30px;

    }


    .titulo-resultados h1 {

        font-size:
            25px;

    }


    .grid-productos {

        grid-template-columns:
            repeat(2, 1fr);

        gap:
            15px;

    }


    .producto {

        padding:
            12px;

    }


    .producto-imagen {

        height:
            150px;

    }


    .producto h3 {

        font-size:
            16px;

    }


    .precio {

        font-size:
            19px;

    }


    .item-carrito {

        flex-wrap:
            wrap;

        gap:
            12px;

    }


    .item-carrito-info {

        min-width:
            calc(100% - 105px);

    }


    .cantidad-carrito {

        margin-left:
            105px;

    }


    .subtotal-carrito {

        margin-left:
            auto;

    }

}


/* =========================================
   ENLACE DE PRODUCTO
========================================= */

.producto-enlace {

    color:
        inherit;

    text-decoration:
        none;

    display:
        block;

}


.producto-enlace h3 {

    color:
        white;

}


.producto-enlace:hover h3 {

    color:
        var(--magenta);

}


/* =========================================
   SELECTOR DE CANTIDAD - FICHA DE PRODUCTO
========================================= */

.selector-cantidad {

    display:
        flex;

    align-items:
        center;

    gap:
        15px;

    margin-top:
        20px;

}


.selector-cantidad-titulo {

    font-weight:
        bold;

    color:
        var(--texto-secundario);

}


.control-cantidad {

    display:
        flex;

    align-items:
        center;

    gap:
        12px;

}


.control-cantidad button {

    width:
        36px;

    height:
        36px;

    border:
        none;

    border-radius:
        50%;

    background:
        var(--turquesa);

    color:
        white;

    font-size:
        22px;

    font-weight:
        bold;

    cursor:
        pointer;

    transition:
        0.2s;

}


.control-cantidad button:hover {

    background:
        var(--magenta);

    transform:
        scale(1.05);

}


.control-cantidad button:disabled {

    background:
        #444444;

    color:
        #999999;

    cursor:
        not-allowed;

    transform:
        none;

}


.control-cantidad span {

    min-width:
        30px;

    text-align:
        center;

    font-size:
        18px;

    font-weight:
        bold;

}


/* =========================================
   MENSAJE TEMPORAL DEL CARRITO
========================================= */

#mensaje-carrito {

    position:
        fixed;

    bottom:
        30px;

    right:
        30px;

    z-index:
        9999;

    background:
        var(--turquesa);

    color:
        white;

    padding:
        14px 22px;

    border-radius:
        10px;

    font-weight:
        bold;

    box-shadow:
        0 5px 20px rgba(0, 0, 0, 0.35);

    opacity:
        0;

    transform:
        translateY(15px);

    pointer-events:
        none;

    transition:
        opacity 0.25s ease,
        transform 0.25s ease;

}


#mensaje-carrito.mostrar {

    opacity:
        1;

    transform:
        translateY(0);

}


/* =========================================
   MENSAJE TEMPORAL - MÓVIL
========================================= */

@media (max-width: 700px) {

    #mensaje-carrito {

        left:
            20px;

        right:
            20px;

        bottom:
            20px;

        text-align:
            center;

    }

}


/* =========================================
   MENÚ PRINCIPAL MAPSTORE.UY
========================================= */

#menu-mapstore {

    position:
        relative;

    flex-shrink:
        0;

}


.menu-boton {

    border:
        none;

    background:
        transparent;

    color:
        var(--texto-principal);

    font-size:
        14px;

    font-weight:
        bold;

    padding:
        10px 14px;

    cursor:
        pointer;

    white-space:
        nowrap;

}


.menu-boton:hover {

    color:
        var(--turquesa);

}


.menu-contenido {

    display:
        none;

    position:
        absolute;

    top:
        calc(100% + 8px);

    left:
        0;

    min-width:
        240px;

    background:
        var(--fondo-secundario);

    border:
        1px solid var(--borde);

    box-shadow:
        0 8px 20px rgba(0, 0, 0, 0.35);

}


.menu-contenido.menu-abierto {

    display:
        block;

}


.menu-item {

    position:
        relative;

}


.menu-enlace {

    width:
        100%;

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    border:
        none;

    background:
        transparent;

    color:
        var(--texto-principal);

    text-decoration:
        none;

    font-size:
        14px;

    font-weight:
        bold;

    padding:
        14px 18px;

    cursor:
        pointer;

    text-align:
        left;

}


.menu-enlace:hover {

    background:
        var(--fondo-producto);

    color:
        var(--turquesa);

}


.menu-flecha {

    margin-left:
        20px;

    font-size:
        13px;

}


.menu-submenu {

    display:
        none;

    position:
        absolute;

    top:
        0;

    left:
        100%;

    min-width:
        220px;

    background:
        var(--fondo-secundario);

    border:
        1px solid var(--borde);

    box-shadow:
        0 8px 20px rgba(0, 0, 0, 0.35);

}


.menu-submenu.submenu-abierto {

    display:
        block;

}


.menu-subtitulo {

    padding:
        12px 18px;

    color:
        var(--texto-gris);

    font-size:
        12px;

    font-weight:
        bold;

    border-bottom:
        1px solid var(--borde);

    text-transform:
        uppercase;

}


.menu-categoria {

    display:
        block;

    padding:
        12px 18px;

    color:
        var(--texto-principal);

    text-decoration:
        none;

    font-size:
        14px;

}


.menu-categoria:hover {

    background:
        var(--fondo-producto);

    color:
        var(--magenta);

}


/* =========================================
   MENÚ EN MÓVIL
========================================= */

@media (max-width: 700px) {

    #menu-mapstore {

        order:
            2;

    }


    .menu-boton {

        padding:
            8px 10px;

        font-size:
            13px;

    }


    .menu-contenido {

        left:
            0;

        right:
            auto;

        min-width:
            230px;

    }


    .menu-submenu {

        position:
            static;

        width:
            100%;

        box-shadow:
            none;

        border:
            none;

        border-top:
            1px solid var(--borde);

    }


    .menu-categoria {

        padding-left:
            30px;

    }

}


/* =========================
   CHECKOUT
========================= */

.checkout-contenido {

    max-width:
        900px;

    margin:
        0 auto;

}


.checkout-seccion {

    background:
        var(--fondo-producto);

    border:
        1px solid var(--borde);

    border-radius:
        10px;

    padding:
        24px;

    margin-bottom:
        20px;

}


.checkout-seccion h2 {

    margin-top:
        0;

    margin-bottom:
        20px;

}


.checkout-campo {

    display:
        flex;

    flex-direction:
        column;

    margin-bottom:
        16px;

}


.checkout-campo:last-child {

    margin-bottom:
        0;

}


.checkout-campo label {

    margin-bottom:
        7px;

    color:
        var(--texto-secundario);

    font-weight:
        bold;

}


.checkout-campo input,
.checkout-campo select,
.checkout-campo textarea {

    width:
        100%;

    box-sizing:
        border-box;

    padding:
        12px;

    background:
        var(--fondo-secundario);

    color:
        var(--texto-principal);

    border:
        1px solid var(--borde);

    border-radius:
        6px;

    font-family:
        inherit;

    font-size:
        15px;

}


.checkout-campo textarea {

    resize:
        vertical;

}


.checkout-campo input:focus,
.checkout-campo select:focus,
.checkout-campo textarea:focus {

    outline:
        none;

    border-color:
        var(--magenta);

}


#resumen-checkout {

    display:
        flex;

    flex-direction:
        column;

    gap:
        12px;

}


.checkout-item {

    display:
        flex;

    justify-content:
        space-between;

    align-items:
        center;

    gap:
        20px;

    padding:
        14px 0;

    border-bottom:
        1px solid var(--borde);

}


.checkout-item strong {

    display:
        block;

    margin-bottom:
        5px;

}


.checkout-item p {

    margin:
        0;

    color:
        var(--texto-gris);

}


.checkout-item span {

    white-space:
        nowrap;

    font-weight:
        bold;

}


.checkout-total {

    display:
        flex;

    justify-content:
        space-between;

    margin-top:
        20px;

    padding-top:
        20px;

    border-top:
        2px solid var(--borde);

    font-size:
        22px;

    font-weight:
        bold;

}


/* =========================================
   BOTÓN FINALIZAR - CARRITO
========================================= */

.boton-finalizar {

    width:
        100%;

    padding:
        14px;

    margin-top:
        16px;

    margin-bottom:
        10px;

    background:
        var(--magenta);

    color:
        white;

    border:
        none;

    border-radius:
        6px;

    font-weight:
        bold;

    cursor:
        pointer;

}


.boton-finalizar:hover {

    opacity:
        0.9;

}


/* =========================================
   BOTONES DEL CHECKOUT
   MISMO ESTILO QUE WHATSAPP ORIGINAL
========================================= */

.boton-pedido {

    width:
        100%;

    padding:
        16px;

    margin-top:
        10px;

    margin-bottom:
        20px;

    background:
        var(--turquesa);

    color:
        white;

    border:
        none;

    border-radius:
        6px;

    font-weight:
        bold;

    font-size:
        16px;

    cursor:
        pointer;

}


.boton-pedido:hover {

    opacity:
        0.9;

}


.boton-pedido:disabled {

    opacity:
        0.6;

    cursor:
        not-allowed;

}


.mensaje-checkout {

    display:
        none;

    margin:
        15px 0;

    padding:
        12px;

    border:
        1px solid var(--magenta);

    border-radius:
        6px;

    color:
        var(--texto-principal);

    background:
        var(--fondo-secundario);

}


@media (max-width: 600px) {

    .checkout-seccion {

        padding:
            18px;

    }


    .checkout-item {

        align-items:
            flex-start;

    }


    .checkout-total {

        font-size:
            19px;

    }

}