/* ================================================= */
/* VARIABLES */
/* ================================================= */

:root{

    --primary-color:#00A8FF;
    --primary-hover:#0090db;

    --background-color:#000000;
    --surface-color:#0A0A0A;

    --text-color:#FFFFFF;
    --text-secondary:#B8B8B8;

    --border-color:#1A1A1A;
    --secondary-border:#333333;

    --container-width:1850px;

    --transition:.3s ease;

}

html.menu-open,
body.menu-open{

    overflow:hidden;
    overscroll-behavior:none;

}

body.menu-open .mobile-filters.sticky{

    display:none !important;

}

body.cart-open{

    touch-action:none;

}

html.scroll-locked,
body.scroll-locked{

    overflow:hidden !important;

    overscroll-behavior:none;

}

html.sheet-open,
body.sheet-open{

    overflow:hidden !important;
    touch-action:none;
    overscroll-behavior:none;

}

body.modal-open #app{

    pointer-events:none;

    user-select:none;

}

/* ================================================= */
/* RESET */
/* ================================================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
background:
radial-gradient(circle at 50% -20%,rgba(0,168,255,.04),transparent 28%),
#050505;
    color:var(--text-color);
    font-family:'Montserrat',sans-serif;
    padding-top:73px;
}

html, body {

    overflow-x: hidden;

}

a{
    text-decoration:none;
    color:inherit;
}

img{
    display:block;
    max-width:100%;
}

ul{
    list-style:none;
}

button{
    border:none;
    background:none;
    font:inherit;
    cursor:pointer;
}

section{
    width:100%;
}

/* ================================================= */
/* GLOBAL */
/* ================================================= */

.container{

    width:92%;
    max-width:var(--container-width);
    margin:auto;

}

/* ================================================= */
/* HEADER */
/* ================================================= */

.header{

    width:100%;

    border-bottom:1px solid rgba(255,255,255,.06);

    background:
    linear-gradient(
        180deg,
        rgba(18,18,18,.92) 0%,
        rgba(10,10,10,.94) 45%,
        rgba(5,5,5,.96) 100%
    );

    backdrop-filter:blur(18px);

    position:fixed;

    top:0;

    z-index:1000;

}

.header-container{

    height:80px;

    display:flex;
    align-items:center;
    justify-content:space-between;

}

.logo{
    display:flex;
    align-items:center;
    z-index:1000;
}

.logo img{

    width:135px;
    object-fit:contain;

}

.mobile-left{
    display:none;
    align-items:center;
    gap:1px;
}

.header-actions{
    display:flex;
    align-items:center;
    gap:16px;
}

.header-icon{

    width:50px;

    height:50px;

    display:flex;

    align-items:center;

    justify-content:center;

    color:white;

    border-radius:14px;

    transition:.25s ease;

}

.header-icon svg{
    width:24px;
    height:24px;

    stroke-width:2;
}

.cart-btn{
    position:relative;
}

.cart-count{
    position:absolute;

    top:4px;
    right:2px;

    width:18px;
    height:18px;

    border-radius:50%;

    background:var(--primary-color);

    color:white;

    font-size:11px;
    font-weight:700;

    display:flex;
    justify-content:center;
    align-items:center;
}

.desktop-search{

    display:flex;

    align-items:center;

    gap:14px;

    width:440px;

    height:54px;

    padding:0 20px;

    border:1px solid rgba(255,255,255,.08);

    border-radius:18px;

    background:#0D0D0D;

    transition:.25s ease;

}

.desktop-search:hover{

    border-color:rgba(0,168,255,.45);

}

.desktop-search:focus-within{

    border-color:var(--primary-color);

    box-shadow:0 0 20px rgba(0,168,255,.15);

}

.desktop-search svg{

    width:18px;

    height:18px;

    color:#AFAFAF;

    flex-shrink:0;

}

.desktop-search input{

    flex:1;

    background:none;

    border:none;

    outline:none;

    color:#FFF;

    font-size:15px;

}

.desktop-search input::placeholder{

    color:#8A8A8A;

}

.desktop-search-clear{

    display:none;

    width:28px;

    height:28px;

    border:none;

    background:none;

    color:#888;

    cursor:pointer;

    border-radius:50%;

    transition:.2s ease;

}

.desktop-search-clear:hover{

    color:#FFF;

    background:rgba(255,255,255,.08);

}

.desktop-search.has-value .desktop-search-clear{

    display:flex;

    align-items:center;

    justify-content:center;

}

.header-icon.search-btn{

    display:none;

}

/* ================================================= */
/* NAVBAR */
/* ================================================= */

.nav-links{

    display:flex;
    align-items:center;
    gap:70px;

}

.nav-links a{

    color:var(--text-color);

    font-size:20px;
    font-weight:500;

    transition:var(--transition);

    position:relative;

}

.nav-links a:hover{

    color:var(--primary-color);

}

.nav-links .active{

    color:var(--primary-color);

}

.nav-links .active::after{

    content:"";

    position:absolute;

    bottom:-12px;
    left:0;

    width:100%;
    height:3px;

    background:var(--primary-color);

    border-radius:999px;

}

/* ================================================= */
/* MENU HAMBURGUESA */
/* ================================================= */



.menu-toggle{

    display:none;

    width:30px;
    height:38px;

    position:relative;

    cursor:pointer;

    z-index: 100001;

}

.menu-toggle span{

    position:absolute;

    width:24px;
    height:2px;

    left:auto;
    right:0;
    transform:none;

    background:white;

    border-radius:999px;

    transition:.35s ease;

}

.menu-toggle span:nth-child(1){
    top:9px;
}

.menu-toggle span:nth-child(2){
    top:18px;
}

.menu-toggle span:nth-child(3){
    top:27px;
}

.menu-toggle.active span:nth-child(1){

    left:50%;
    top:18px;

    transform:translate(-50%,0) rotate(45deg);

}

.menu-toggle.active span:nth-child(2){

    opacity:0;

}

.menu-toggle.active span:nth-child(3){

    left:50%;
    top:18px;

    transform:translate(-50%,0) rotate(-45deg);

}

/* ================================================= */
/* FOOTER */
/* ================================================= */

.footer{

    padding:110px 0 40px;

    border-top:1px solid rgba(255,255,255,.08);

}

.footer .container{

    background:transparent;

    padding:40px 0 25px;

    max-width:1850px;

}

.footer-content{

    position:relative;

    display:grid;

    grid-template-columns:
    1.4fr
    1fr
    1fr
    1.2fr;

    gap:60px;

    margin-bottom:55px;

}

.footer-content::after{

    content:"";

    position:absolute;

    inset:0;

    background:

    radial-gradient(
        circle at top left,
        rgba(0,168,255,.06),
        transparent 40%
    );

    pointer-events:none;

}

.footer-column{

    position:relative;

    padding-left:0 !important;

}

.footer-column::before{

    display:none;

}

.footer-brand{

    padding-right:20px;
    max-width:380px;

}

.footer-brand img{

    width:280px;

    margin-bottom:24px;

    filter:drop-shadow(
        0 0 12px rgba(0,168,255,.18)
    );

    transition:.3s ease;

}

.footer-brand img:hover{

    transform:scale(1.05);

    filter:drop-shadow(
        0 0 18px rgba(0,168,255,.30)
    );

}

.footer-brand p{

    color:#A8A8A8;

    line-height:1.8;

    max-width:260px;

}

.footer-description{

    margin-top:10px;

    color:#8A8A8A;

    line-height:1.8;

    max-width:280px;

}

.footer-links{

    padding-top:18px;

    display:flex;

    flex-direction:column;

    gap:14px;

}

.footer-links h3{

    color:#EAEAEA;

    font-size:13px;

    font-weight:800;

    letter-spacing:4px;

    text-transform:uppercase;

    margin-bottom:26px;

}

.footer-links a{

    position:relative;

    display:block;

    width:fit-content;

    color:#C8C8C8;

    transition:.25s ease;

}

.footer-links a::after{

    content:"";

    position:absolute;

    left:0;
    bottom:-4px;

    width:0;

    height:2px;

    background:var(--primary-color);

    transition:.25s ease;

}

.footer-links a:hover{

    color:white;

    transform:none;

}

.footer-links a:hover::after{

    width:100%;

}

.footer-socials{

    display:flex;

    gap:16px;

    margin-top:30px;

}

.footer-socials a{

    width:52px;

    height:52px;

    border-radius:50%;

    border:1px solid rgba(255,255,255,.08);

    background:#0D0D0D;

    display:flex;

    align-items:center;

    justify-content:center;

    transition:.25s ease;

}

.footer-socials a svg{

    width:22px;

    height:22px;

    stroke-width:2;

    color:#E5E5E5;

}

.footer-socials a:hover{

    transform:translateY(-4px);

    border-color:var(--primary-color);

    box-shadow:
    0 0 25px rgba(0,168,255,.25);

}

.footer-socials a:hover svg{

    color:white;

}

.footer-bottom{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding-top:35px;

    border-top:1px solid rgba(255,255,255,.08);

    margin-top:15px;

}

.footer-bottom p{

    color:#8A8A8A;

    font-size:14px;

}

.footer-bottom-links{

    display:flex;

    gap:24px;

}

.footer-bottom-links a{

    color:#8A8A8A;

    transition:.25s ease;

}

.footer-bottom-links a:hover{

    color:white;

}

/* ==========================================================
   CART COMPONENT
========================================================== */

.cart-bottom{

    display:flex;

    justify-content:space-between;

    align-items:flex-end;

    gap:18px;

    margin-top:18px;

}

.cart-controls{

    display:flex;

    flex-direction:column;

    align-items:flex-start;

    gap:10px;

    flex:1;

}

.qty-plus.qty-disabled{

    background:#232323;

    color:#6F6F6F;

    border:1px solid #343434;

    cursor:not-allowed;

    pointer-events:none;

    transform:none;

    box-shadow:none;

    opacity:.85;

}

.qty-plus.qty-disabled:hover{

    background:#232323;

    color:#6F6F6F;

    border:1px solid #343434;

    transform:none;

    box-shadow:none;

}

.cart-stock-limit{

    display:flex;

    align-items:center;

    gap:8px;

    margin-top:4px;

    margin-bottom:0;

    padding-left:2px;

    color:#F0B24A;

    font-size:.72rem;

    font-weight:700;

    letter-spacing:.06em;

    text-transform:uppercase;

    line-height:1.2;

    user-select:none;

    animation:fadeStockLimit .18s ease;

}

.cart-stock-limit::before{

    content:"";

    width:6px;

    height:6px;

    border-radius:50%;

    background:currentColor;

    box-shadow:0 0 8px rgba(240,178,74,.45);

    flex-shrink:0;

}

@keyframes fadeStockLimit{

    from{

        opacity:0;

        transform:translateY(-4px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* ==========================
   CART RESPONSIVE
========================== */

@media (max-width:768px){

    .cart-bottom{

        gap:14px;

    }

    .cart-controls{

        gap:8px;

    }

    .cart-stock-limit{

        font-size:.69rem;

        letter-spacing:.05em;

    }

}