@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;600;700;800;900&display=swap');

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Montserrat',sans-serif;
}

body{
    background:#080808;
    color:white;
}

a{
    text-decoration:none;
    color:inherit;
}

img{
    width:100%;
    display:block;
}

.container{
    width:min(92%,1250px);
    margin:auto;
}

/* HEADER */

header{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    background:#050505;
    border-bottom:1px solid rgba(255,255,255,.08);
    z-index:1000;
}

header .container{
    height:88px;
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.logo{
    font-size:34px;
    font-weight:900;
}

.logo span{
    color:#ECBF42;
}

nav{
    display:flex;
    gap:32px;
}

nav a{
    font-weight:800;
}

nav a:hover,
nav a.active{
    color:#ECBF42;
}

.btn-primary{
    background:#ECBF42;
    border:none;
    padding:16px 34px;
    border-radius:50px;
    font-weight:900;
    color:white;
}

#menu-toggle{
    display:none;
}

/* HERO MENU */

.menu-hero{
    padding:150px 0 75px;
    background:
    linear-gradient(90deg,rgba(0,0,0,.95),rgba(0,0,0,.45)),
    url("https://images.unsplash.com/photo-1527477396000-e27163b481c2?w=1600&q=80");
    background-size:cover;
    background-position:center;
}

.menu-hero span{
    color:#ECBF42;
    font-weight:900;
    letter-spacing:3px;
}

.menu-hero h1{
    font-size:72px;
    line-height:80px;
    margin:18px 0;
    font-weight:900;
}

.menu-hero p{
    max-width:650px;
    color:#ddd;
    font-size:18px;
    line-height:32px;
}

/* TABS */

.menu-tabs{
    position:sticky;
    top:88px;
    z-index:900;
    background:#0c0c0c;
    border-top:1px solid rgba(255,255,255,.08);
    border-bottom:1px solid rgba(255,255,255,.08);
}

.tabs{
    display:flex;
    justify-content:center;
    gap:8px;
    overflow-x:auto;
}

.tabs a{
    padding:22px 28px;
    font-weight:900;
    white-space:nowrap;
    border-bottom:3px solid transparent;
}

.tabs a:hover{
    color:#ECBF42;
    border-bottom-color:#ECBF42;
}

.tabs i{
    margin-right:8px;
}

/* SECTIONS */

.menu-section{
    padding:80px 0;
    background:#080808;
}

.menu-section:nth-of-type(even){
    background:#0e0e0e;
}

.menu-title{
    margin-bottom:35px;
}

.menu-title h2{
    font-size:46px;
    font-weight:900;
}

.menu-title p{
    color:#ECBF42;
    font-weight:700;
    margin-top:8px;
}

/* GRID */

.menu-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:26px;
}

/* CARDS */

.menu-card{
    background:#141414;
    border:1px solid rgba(255,255,255,.08);
    border-radius:24px;
    overflow:hidden;
    transition:.3s;
    box-shadow:0 20px 45px rgba(0,0,0,.35);
}

.menu-card:hover{
    transform:translateY(-9px);
    border-color:#ECBF42;
}

.menu-card img{
    height:210px;
    object-fit:cover;
}

.menu-info{
    padding:24px;
}

.menu-info h3{
    font-size:24px;
    margin-bottom:10px;
}

.menu-info p{
    color:#cfcfcf;
    line-height:27px;
    margin-bottom:22px;
}

.menu-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
}

.price{
    font-size:27px;
    font-weight:900;
    color:#ECBF42;
}

.add-btn,
.card-btn{
    padding:12px 20px;
    border-radius:14px;
    background:#ECBF42;
    color:white;
    border:none;
    font-weight:900;
    cursor:pointer;
}

.add-btn:hover,
.card-btn:hover{
    background:#ff3d00;
}

/* COMBO */

.combo-card{
    grid-column:span 2;
}

.combo-card img{
    height:260px;
}

/* FOOTER */

footer{
    background:#050505;
    border-top:1px solid rgba(255,255,255,.08);
    margin-top:40px;
}

.footer-bottom{
    text-align:center;
    padding:25px;
    color:#aaa;
}

/* CARRITO */

.cart-panel{
    position:fixed;
    top:0;
    right:-430px;
    width:400px;
    max-width:95%;
    height:100vh;
    background:#0b0b0b;
    z-index:3000;
    padding:28px;
    transition:.35s;
    display:flex;
    flex-direction:column;
    border-left:1px solid rgba(255,255,255,.08);
}

.cart-panel.active{
    right:0;
}

.cart-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:25px;
}

.cart-header h3{
    font-size:26px;
}

.close-cart{
    width:42px;
    height:42px;
    border-radius:50%;
    background:#ECBF42;
    color:white;
    border:none;
    font-size:24px;
}

.cart-items{
    flex:1;
    overflow-y:auto;
}

.cart-item{
    display:grid;
    grid-template-columns:1fr auto auto auto;
    gap:10px;
    align-items:center;
    padding:14px 0;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.qty-controls{
    display:flex;
    align-items:center;
    gap:8px;
}

.qty-controls button,
.cart-item button{
    width:28px;
    height:28px;
    border-radius:50%;
    background:#1f1f1f;
    color:white;
    border:none;
}

.cart-footer{
    padding-top:22px;
    border-top:1px solid rgba(255,255,255,.08);
}

.cart-footer h4{
    font-size:22px;
    margin-bottom:16px;
}

.checkout-btn{
    width:100%;
    padding:17px;
    border-radius:16px;
    background:#ECBF42;
    color:white;
    border:none;
    font-weight:900;
}

/* MOBILE MENU */

.mobile-menu{
    position:fixed;
    top:0;
    right:-100%;
    width:320px;
    max-width:90%;
    height:100vh;
    background:#0b0b0b;
    z-index:2500;
    display:flex;
    flex-direction:column;
    gap:22px;
    padding:100px 35px;
    transition:.35s;
}

.mobile-menu.active{
    right:0;
}

.mobile-menu a{
    font-size:20px;
    font-weight:800;
}

.close-mobile{
    position:absolute;
    top:25px;
    right:25px;
    width:45px;
    height:45px;
    border-radius:50%;
    background:#ECBF42;
    color:white;
    border:none;
    font-size:20px;
}

/* RESPONSIVE */

@media(max-width:900px){
    nav{
        display:none;
    }

    #menu-toggle{
        display:flex;
        align-items:center;
        justify-content:center;
        width:48px;
        height:48px;
        border-radius:14px;
        border:none;
        background:#ECBF42;
        color:white;
        font-size:20px;
    }

    .btn-primary{
        display:none;
    }

    .menu-hero h1{
        font-size:45px;
        line-height:52px;
    }

    .tabs{
        justify-content:flex-start;
    }

    .combo-card{
        grid-column:auto;
    }
}

@media(max-width:520px){
    header .container{
        height:78px;
    }

    .logo{
        font-size:26px;
    }

    .menu-hero{
        padding:120px 0 55px;
    }

    .menu-card img{
        height:190px;
    }

    .cart-panel{
        width:100%;
        max-width:100%;
    }
}