/* ======================================
   NAVBAR
====================================== */

header{
    position: sticky;
    top: 0;
    z-index: 1000;
}

/* Barra superior */

.top-bar{
    background:#5b3a1d;
    color:#fff;
    font-size:.9rem;
    padding:8px 0;
}

.top-bar .container{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.top-contact{
    display:flex;
    align-items:center;
}

.top-contact i{
    margin-right:6px;
}

.top-social{
    display:flex;
    gap:18px;
}

.top-social a{
    color:white;
    text-decoration:none;
}

.top-social i{
    transition:.3s;
}

.top-social i:hover{
    color:#d6b07b;
}

/* Navbar */

.navbar{
    background:#fff;
    border-bottom:1px solid #ececec;
    min-height:85px;
    padding:12px 0;
    box-shadow:0 5px 18px rgba(0,0,0,.06);
}

.navbar-brand img{
    transition:.3s;
}

.navbar-brand:hover img{
    transform:scale(1.05);
}

.navbar-nav{
    gap:12px;
}

.navbar-nav .nav-link{
    position:relative;
    font-weight:600;
    color:#2d2d2d;
    margin:0 10px;
    transition:.3s;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active{
    color:#8B5A2B;
}

.navbar-nav .nav-link::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-3px;
    width:0;
    height:2px;
    background:#8B5A2B;
    transition:.3s;
}

.navbar-nav .nav-link:hover::after{
    width:100%;
}

/* Login */

.login-link{
    display:flex;
    align-items:center;
    gap:8px;
    text-decoration:none;
    color:#333;
    font-weight:600;
}

.login-link i{
    font-size:1.4rem;
}

.login-link:hover{
    color:#8B5A2B;
}

/* Carrito */

.carrito-link{
    position:relative;
    color:#333;
    text-decoration:none;
    font-size:1.7rem;
    transition:.3s;
}

.carrito-link:hover{
    color:#8B5A2B;
}

#contador-carrito{
    position:absolute;
    top:-8px;
    right:-10px;
    background:#dc3545;
    color:white;
    width:22px;
    height:22px;
    border-radius:50%;
    display:flex;
    justify-content:center;
    align-items:center;
    font-size:.75rem;
    font-weight:700;
}

/* Botón */

.btn-presupuesto{
    background:#8B5A2B;
    color:white;
    border-radius:50px;
    padding:12px 26px;
    font-weight:600;
    transition:.3s;
    text-decoration:none;
}

.btn-presupuesto:hover{
    background:#6f4521;
    color:white;
    transform:translateY(-2px);
}

/* Dropdown */

.menu-usuario{
    width:290px;
    border:none;
    border-radius:16px;
    overflow:hidden;
    padding:0;
    box-shadow:0 15px 35px rgba(0,0,0,.18);
    animation:aparecer .25s ease;
}

.usuario-header{
    display:flex;
    gap:15px;
    align-items:center;
    padding:20px;
    background:#8B5A2B;
    color:white;
}

.avatar-usuario{
    width:60px;
    height:60px;
    border-radius:50%;
    background:white;
    color:#8B5A2B;
    display:flex;
    justify-content:center;
    align-items:center;
    font-size:26px;
    font-weight:700;
}

.usuario-header h6{
    margin:0;
    font-weight:700;
}

.rol-usuario{
    margin:4px 0;
    font-size:13px;
    opacity:.9;
}

.usuario-header small{
    font-size:13px;
    opacity:.85;
}

.menu-usuario .dropdown-item{
    display:flex;
    align-items:center;
    gap:12px;
    padding:13px 20px;
    transition:.25s;
}

.menu-usuario .dropdown-item i{
    font-size:18px;
}

.menu-usuario .dropdown-item:hover{
    background:#9b6432;
    color:white;
}

.menu-usuario .dropdown-item.text-danger:hover{
    background:#dc3545;
    color:white !important;
}

@keyframes aparecer{

    from{

        opacity:0;
        transform:translateY(-10px);

    }

    to{

        opacity:1;
        transform:translateY(0);

    }

}

/* Responsive */

@media(max-width:992px){

    .top-bar{
        display:none;
    }

    .navbar-nav{
        margin:20px 0;
    }

    .btn-presupuesto{
        width:100%;
        text-align:center;
    }

}
/* ======================================
   MEGA MENÚ PRODUCTOS
====================================== */

.productos-menu {
    position: relative;
}


/* Menú grande */

.mega-menu {
    position: absolute;

    top: 100%;
    left: 50%;

    transform: translateX(-50%);

    width: 100vw;

    background: white;

    border-top: 3px solid #8B5A2B;

    box-shadow: 0 12px 30px rgba(0,0,0,.12);

    opacity: 0;
    visibility: hidden;

    pointer-events: none;

    transition:
        opacity .2s ease,
        visibility .2s ease;

    z-index: 2000;
}


/* Abrir al pasar el mouse */

.productos-menu:hover .mega-menu {

    opacity: 1;

    visibility: visible;

    pointer-events: auto;

}


/* Contenedor interno */

.mega-menu-container {

    max-width: 1200px;

    margin: 0 auto;

    padding: 25px 30px;

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 25px 40px;

}


/* Cada categoría */

.mega-categoria {

    position: relative;

}


/* Nombre de categoría */

.mega-categoria-link {

    display: block;

    color: #555;

    text-decoration: none;

    font-size: 15px;

    font-weight: 500;

    padding: 6px 0;

    transition: .2s;

}


.mega-categoria-link:hover {

    color: #8B5A2B;

    padding-left: 5px;

}


/* Subcategorías */

.mega-subcategorias {

    display: none;

    margin-left: 10px;

    padding-left: 10px;

    border-left: 2px solid #eee;

}


/* Mostrar subcategorías al pasar por categoría */

.mega-categoria:hover .mega-subcategorias {

    display: block;

}


.mega-subcategoria {

    display: block;

    color: #777;

    text-decoration: none;

    font-size: 13px;

    padding: 4px 0;

    transition: .2s;

}


.mega-subcategoria:hover {

    color: #8B5A2B;

    padding-left: 4px;

}


/* Cargando */

.mega-cargando {

    grid-column: 1 / -1;

    text-align: center;

    color: #777;

    padding: 20px;

}


/* ======================================
   RESPONSIVE
====================================== */

@media (max-width: 992px) {

    .productos-menu {
        position: static;
    }


    .mega-menu {

        position: static;

        width: 100%;

        transform: none;

        border-top: none;

        box-shadow: none;

        display: none;

        opacity: 1;

        visibility: visible;

        pointer-events: auto;

    }


    .productos-menu:hover .mega-menu {

        display: block;

    }


    .mega-menu-container {

        display: block;

        padding: 10px 15px;

    }


    .mega-categoria {

        margin-bottom: 5px;

    }


    .mega-subcategorias {

        display: block;

    }

}