/* =========================
   MENU PAGE
========================= */

.menu-page{
    background:#f5faff;
    min-height:100vh;
    padding:40px 15px;

    display:flex;
    justify-content:center;
}

/* MAIN WRAPPER */
.menu-wrapper{
    width:100%;
    max-width:1100px;

    display:flex;
    flex-direction:column;
    align-items:center;
    gap:25px;
}

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

.menu-header-card{
    width:100%;
    max-width:700px;

    background:white;
    padding:35px 30px;

    border-radius:22px;

    box-shadow:0 8px 25px rgba(0,0,0,0.08);

    text-align:center;
}

.menu-header-card h1{
    font-size:32px;
    color:#0f172a;
    margin-bottom:8px;
}

.menu-header-card p{
    color:#64748b;
    margin-bottom:22px;
}

/* BACK BUTTON */
.back-shop-btn{
    display:inline-block;

    padding:13px 24px;

    border-radius:14px;

    background:#e5e7eb;
    color:#111827;

    text-decoration:none;
    font-weight:600;

    transition:0.25s ease;
}

.back-shop-btn:hover{
    background:#d1d5db;
}

/* =========================
   CART SECTION
========================= */

.cart-section{
    width:100%;
    max-width:700px;

    background:white;
    padding:25px;

    border-radius:22px;

    box-shadow:0 8px 25px rgba(0,0,0,0.08);
}

.cart-top{
    display:flex;
    justify-content:space-between;
    align-items:center;

    margin-bottom:18px;
}

.cart-top h3{
    color:#0f172a;
    margin-bottom:4px;
}

.cart-top p{
    color:#64748b;
    font-size:14px;
}

/* COUNTER */
.cart-counter{
    width:70px;
    height:70px;

    border-radius:50%;

    background:blue;
    color:white;

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

.cart-counter span{
    font-size:22px;
    font-weight:700;
}

.cart-counter small{
    font-size:12px;
}

/* CART TEXTAREA */
.cart-input-box textarea{
    width:100%;

    border:1px solid #cbd5e1;
    border-radius:16px;

    padding:18px;

    resize:none;

    font-size:14px;

    text-align:center;

    background:#f8fafc;
}

.cart-input-box textarea:focus{
    outline:none;
}

/* =========================
   MENU SECTION
========================= */

.menu-section{
    width:100%;
}

/* SECTION TITLE */
.section-title{
    text-align:center;
    margin-bottom:25px;
}

.section-title h2{
    font-size:28px;
    color:#0f172a;
    margin-bottom:6px;
}

.section-title p{
    color:#64748b;
}

/* GRID */
.menu-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:22px;
}

/* CARD */
.menu-card{
    background:white;

    border-radius:22px;

    overflow:hidden;

    box-shadow:0 8px 25px rgba(0,0,0,0.08);

    transition:0.25s ease;
}

.menu-card:hover{
    transform:translateY(-5px);
    box-shadow:0 12px 30px rgba(0,0,0,0.12);
}

/* IMAGE */
.menu-image-box{
    width:100%;
    height:200px;

    background:#eef4ff;

    overflow:hidden;
}

.menu-image-box img{
    width:100%;
    height:100%;

    object-fit:cover;
}

.no-image{
    width:100%;
    height:100%;

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

    font-size:60px;
}

/* CONTENT */
.menu-content{
    padding:20px;
}

/* INFO */
.menu-info{
    text-align:center;
    margin-bottom:18px;
}

.menu-info h3{
    color:#0f172a;
    margin-bottom:6px;
    font-size:20px;
}

.price{
    color:blue;
    font-size:20px;
    font-weight:700;
}

/* ACTIONS */
.menu-actions{
    display:flex;
    flex-direction:column;
    gap:12px;
}

/* QTY INPUT */
.qty-input{
    width:100%;

    padding:14px;

    border-radius:14px;

    border:1px solid #cbd5e1;

    text-align:center;

    font-size:15px;
}

.qty-input:focus{
    outline:none;
    border-color:blue;
}

/* ADD BUTTON */
.add-btn{
    width:100%;

    padding:14px;

    border:none;

    border-radius:14px;

    background:blue;
    color:white;

    font-size:15px;
    font-weight:600;

    cursor:pointer;

    transition:0.25s ease;
}

.add-btn:hover{
    background:darkblue;
}

/* =========================
   CONTINUE SECTION
========================= */

.continue-section{
    text-align:center;
    margin-top:10px;
}

/* CONTINUE BUTTON */
.continue-btn{
    display:inline-block;

    padding:16px 34px;

    border-radius:16px;

    background:blue;
    color:white;

    text-decoration:none;

    font-weight:700;

    transition:0.25s ease;
}

.continue-btn:hover{
    background:darkblue;
}

/* EMPTY */
.empty-box{
    background:white;

    padding:40px;

    border-radius:22px;

    text-align:center;

    box-shadow:0 8px 25px rgba(0,0,0,0.08);
}

/* =========================
   MOBILE
========================= */

@media(max-width:768px){

    .menu-header-card{
        padding:28px 20px;
    }

    .menu-header-card h1{
        font-size:26px;
    }

    .cart-top{
        flex-direction:column;
        gap:15px;
    }

    .menu-grid{
        grid-template-columns:1fr;
    }

}



/* =========================
   SHOPS PAGE
========================= */

.shops-page{
    background:#f5faff;
    min-height:100vh;

    padding:40px 15px;

    display:flex;
    justify-content:center;
}

/* MAIN WRAPPER */
.shops-wrapper{
    width:100%;
    max-width:1100px;

    display:flex;
    flex-direction:column;
    align-items:center;

    gap:30px;
}

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

.shops-header-card{
    width:100%;
    max-width:700px;

    background:white;

    padding:35px 30px;

    border-radius:22px;

    text-align:center;

    box-shadow:0 8px 25px rgba(0,0,0,0.08);
}

.shops-header-card h1{
    font-size:34px;
    color:#0f172a;

    margin-bottom:10px;
}

.shops-header-card p{
    color:#64748b;
    font-size:15px;
    line-height:1.6;
}

/* =========================
   SHOPS SECTION
========================= */

.shops-section{
    width:100%;
}

/* TOP */
.section-top{
    text-align:center;
    margin-bottom:25px;
}

.section-top h2{
    font-size:28px;
    color:#0f172a;

    margin-bottom:6px;
}

.section-top p{
    color:#64748b;
}

/* =========================
   GRID
========================= */

.shops-grid{
    display:grid;

    grid-template-columns:
    repeat(auto-fit, minmax(260px,1fr));

    gap:24px;
}

/* LINK */
.shop-link{
    text-decoration:none;
    color:inherit;
}

/* =========================
   CARD
========================= */

.shop-card{
    background:white;

    border-radius:22px;

    overflow:hidden;

    box-shadow:0 8px 25px rgba(0,0,0,0.08);

    transition:0.25s ease;

    height:100%;

    display:flex;
    flex-direction:column;
}

.shop-card:hover{
    transform:translateY(-5px);

    box-shadow:0 12px 30px rgba(0,0,0,0.12);
}

/* =========================
   IMAGE
========================= */

.shop-image-box{
    width:100%;
    height:220px;

    background:#eef4ff;

    overflow:hidden;
}

.shop-image-box img{
    width:100%;
    height:100%;

    object-fit:cover;
}

/* PLACEHOLDER */
.shop-placeholder{
    width:100%;
    height:100%;

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

    font-size:65px;
}

/* =========================
   CONTENT
========================= */

.shop-content{
    padding:22px;

    display:flex;
    flex-direction:column;

    justify-content:space-between;

    flex:1;
}

/* INFO */
.shop-info{
    text-align:center;
    margin-bottom:20px;
}

.shop-info h3{
    color:#0f172a;
    font-size:22px;

    margin-bottom:6px;
}

.shop-info p{
    color:#64748b;
    font-size:14px;
}

/* =========================
   ACTION BUTTON
========================= */

.shop-action{
    text-align:center;
}

.browse-btn{
    display:inline-block;

    width:100%;

    padding:14px;

    border-radius:14px;

    background:blue;
    color:white;

    font-weight:600;

    transition:0.25s ease;
}

.shop-card:hover .browse-btn{
    background:darkblue;
}

/* =========================
   EMPTY BOX
========================= */

.empty-box{
    background:white;

    padding:45px;

    border-radius:22px;

    text-align:center;

    box-shadow:0 8px 25px rgba(0,0,0,0.08);
}

.empty-box h3{
    color:#0f172a;
    margin-bottom:8px;
}

.empty-box p{
    color:#64748b;
}

/* =========================
   MOBILE
========================= */

@media(max-width:768px){

    .shops-header-card{
        padding:28px 20px;
    }

    .shops-header-card h1{
        font-size:28px;
    }

    .section-top h2{
        font-size:24px;
    }

    .shops-grid{
        grid-template-columns:1fr;
    }

    .shop-image-box{
        height:200px;
    }

}
