/* ===========================================
   SLIDING HERO
=========================================== */

.product-hero{

    position:relative;

    width:100%;

    height:100vh;

    min-height:600px;

    margin:0;

    padding:0;

    overflow:hidden;

    cursor:grab;

}

.product-hero:active{

    cursor:grabbing;

}

.slider{

    position:relative;

    width:100%;

    height:100%;

}

.slide{

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:100%;

    background-size:cover;

    background-position:center;

    opacity:0;

    visibility:hidden;

    transition:opacity 1.2s ease;

    display:flex;

    align-items:center;

}

.slide.active{

    opacity:1;

    visibility:visible;

    z-index:1;

}

.slide-overlay{

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:100%;

    background:linear-gradient(
        90deg,
        rgba(15,23,42,.85) 0%,
        rgba(15,23,42,.55) 45%,
        rgba(37,99,235,.35) 100%
    );

}

.slide-text{

    position:relative;

    z-index:2;

    max-width:600px;

    padding:0 8%;

    color:white;

    opacity:0;

    transform:translateY(25px);

    transition:opacity .9s ease .3s, transform .9s ease .3s;

}

.slide.active .slide-text{

    opacity:1;

    transform:translateY(0);

}

.slide-text .badge{

    background:rgba(255,255,255,.15);

    color:white;

}

.slide-text h1{

    font-size:3.2rem;

    line-height:1.1;

    margin:20px 0;

}

.slide-text p{

    font-size:1.1rem;

    color:#e2e8f0;

    line-height:1.7;

    margin-bottom:30px;

}

.slider-dots{

    position:absolute;

    bottom:35px;

    left:50%;

    transform:translateX(-50%);

    display:flex;

    gap:12px;

    z-index:3;

}

.slider-dot{

    width:12px;

    height:12px;

    border-radius:50%;

    background:rgba(255,255,255,.4);

    cursor:pointer;

    transition:.3s;

    border:none;

}

.slider-dot.active{

    background:white;

    width:30px;

    border-radius:6px;

}

/* ===========================================
   SLIDER ARROW BUTTONS
=========================================== */

.slider-arrow{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:52px;

    height:52px;

    border-radius:50%;

    border:1px solid rgba(255,255,255,.35);

    background:rgba(255,255,255,.12);

    backdrop-filter:blur(6px);

    color:white;

    font-size:1.2rem;

    display:flex;

    align-items:center;

    justify-content:center;

    cursor:pointer;

    z-index:3;

    transition:.3s;

}

.slider-arrow:hover{

    background:rgba(255,255,255,.25);

    transform:translateY(-50%) scale(1.08);

}

.slider-arrow.prev{

    left:30px;

}

.slider-arrow.next{

    right:30px;

}

@media(max-width:650px){

    .slider-arrow{

        width:42px;

        height:42px;

        font-size:1rem;

    }

    .slider-arrow.prev{

        left:12px;

    }

    .slider-arrow.next{

        right:12px;

    }

}

/* ===========================================
   CATEGORY SECTIONS
=========================================== */

.category-section{

    background:white;

}

.category-section.alt-bg{

    background:#f8fafc;

}

/* ===========================================
   SHOP GRID / CARDS
=========================================== */

.shop-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));

    gap:35px;

}

.shop-card{

    background:white;

    border-radius:22px;

    overflow:hidden;

    transition:.35s;

    box-shadow:0 15px 40px rgba(0,0,0,.08);

    cursor:pointer;

}

.shop-card:hover{

    transform:translateY(-8px);

    box-shadow:0 25px 55px rgba(0,0,0,.13);

}

.shop-image{

    width:100%;

    height:220px;

    overflow:hidden;

    background:#edf2f7;

}

.shop-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.4s;

}

.shop-card:hover .shop-image img{

    transform:scale(1.08);

}

.shop-body{

    padding:26px 24px;

}

.shop-body h3{

    font-size:1.2rem;

    color:#0f172a;

    margin-bottom:12px;

}

.shop-price{

    font-size:1.15rem;

    font-weight:700;

    color:#2563eb;

    margin-bottom:20px;

}

.shop-actions{

    display:flex;

    gap:12px;

}

.view-details-btn{

    flex:1;

    border:2px solid #2563eb;

    background:transparent;

    color:#2563eb;

    font-weight:600;

    border-radius:10px;

    padding:10px;

    cursor:pointer;

    transition:.3s;

}

.view-details-btn:hover{

    background:#2563eb;

    color:white;

}

.qty-input{

    width:65px;

    padding:10px;

    border:1px solid #e2e8f0;

    border-radius:10px;

    text-align:center;

    font-size:15px;

}

.add-order-btn{

    flex:1;

    border:none;

    background:#2563eb;

    color:white;

    font-weight:600;

    border-radius:10px;

    padding:10px;

    cursor:pointer;

    transition:.3s;

}

.add-order-btn:hover{

    background:#1d4ed8;

}

.add-order-btn.added{

    background:#16a34a;

}

/* ===========================================
   SITE OVERLAY (shared blur mechanism)
=========================================== */

body.modal-open > *:not(.site-overlay){

    filter:blur(6px);

    transition:filter .3s ease;

    pointer-events:none;

    user-select:none;

}

.site-overlay{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    height:100%;

    background:rgba(15,23,42,.55);

    z-index:2000;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:30px;

    opacity:0;

    visibility:hidden;

    transition:opacity .3s ease, visibility .3s ease;

}

.site-overlay.show{

    opacity:1;

    visibility:visible;

}

/* ===========================================
   PRODUCT QUICK-VIEW MODAL
=========================================== */

.product-modal{

    background:white;

    border-radius:28px;

    max-width:900px;

    width:100%;

    max-height:88vh;

    overflow-y:auto;

    position:relative;

    box-shadow:0 40px 90px rgba(0,0,0,.35);

    transform:scale(.92);

    opacity:0;

    transition:transform .35s ease, opacity .35s ease;

}

.site-overlay.show .product-modal{

    transform:scale(1);

    opacity:1;

}

.modal-close{

    position:absolute;

    top:18px;

    right:18px;

    width:36px;

    height:36px;

    border-radius:50%;

    border:none;

    background:#f1f5f9;

    color:#0f172a;

    font-size:1.4rem;

    line-height:1;

    cursor:pointer;

    z-index:5;

    transition:.3s;

}

.modal-close:hover{

    background:#e2e8f0;

}

.modal-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

}

.modal-image{

    height:100%;

    min-height:340px;

    background:#edf2f7;

    border-radius:28px 0 0 28px;

    overflow:hidden;

}

.modal-image img{

    width:100%;

    height:100%;

    object-fit:cover;

}

.modal-details{

    padding:45px 40px;

}

.modal-details h2{

    font-size:1.6rem;

    color:#0f172a;

    margin:15px 0 12px;

}

.modal-details p{

    color:#64748b;

    line-height:1.8;

    margin-bottom:18px;

}

.modal-price{

    font-size:1.5rem;

    font-weight:700;

    color:#2563eb;

    margin-bottom:22px;

}

.modal-option-group{

    margin-bottom:20px;

}

.modal-option-group label{

    display:block;

    font-weight:600;

    color:#0f172a;

    margin-bottom:10px;

    font-size:.9rem;

}

.option-pills{

    display:flex;

    flex-wrap:wrap;

    gap:10px;

}

.option-pill{

    border:2px solid #e2e8f0;

    background:white;

    color:#334155;

    padding:8px 18px;

    border-radius:30px;

    font-size:.88rem;

    font-weight:600;

    cursor:pointer;

    transition:.25s;

}

.option-pill:hover{

    border-color:#93c5fd;

}

.option-pill.active{

    border-color:#2563eb;

    background:#2563eb;

    color:white;

}

.payment-methods{

    margin:25px 0;

    padding-top:20px;

    border-top:1px solid #f1f5f9;

}

.payment-methods > span{

    display:block;

    font-size:.85rem;

    color:#94a3b8;

    margin-bottom:10px;

    font-weight:600;

    text-transform:uppercase;

    letter-spacing:.5px;

}

.payment-icons{

    display:flex;

    flex-wrap:wrap;

    gap:8px;

}

.pay-badge{

    background:#f1f5f9;

    color:#334155;

    padding:7px 14px;

    border-radius:8px;

    font-size:.8rem;

    font-weight:600;

}

.pay-badge.po{

    background:#dbeafe;

    color:#2563eb;

}

.modal-add-btn{

    width:100%;

    padding:16px;

    font-size:1rem;

}

/* ===========================================
   CART MODAL
=========================================== */

.cart-modal{

    background:white;

    border-radius:28px;

    max-width:520px;

    width:100%;

    max-height:85vh;

    display:flex;

    flex-direction:column;

    position:relative;

    padding:40px 35px 30px;

    box-shadow:0 40px 90px rgba(0,0,0,.35);

    transform:scale(.92);

    opacity:0;

    transition:transform .35s ease, opacity .35s ease;

}

.site-overlay.show .cart-modal{

    transform:scale(1);

    opacity:1;

}

.cart-modal h3{

    color:#0f172a;

    font-size:1.4rem;

    margin-bottom:20px;

}

.cart-modal-items{

    overflow-y:auto;

    flex:1;

    margin-bottom:20px;

}

.cart-empty{

    color:#94a3b8;

    text-align:center;

    padding:30px 0;

}

.cart-modal-item{

    display:flex;

    align-items:center;

    gap:15px;

    padding:15px 0;

    border-bottom:1px solid #f1f5f9;

}

.cart-modal-item img{

    width:60px;

    height:60px;

    object-fit:cover;

    border-radius:12px;

    flex-shrink:0;

}

.cart-modal-item-info{

    flex:1;

}

.cart-modal-item-info h4{

    font-size:.95rem;

    color:#0f172a;

    margin-bottom:4px;

}

.cart-modal-item-meta{

    color:#64748b;

    font-size:.8rem;

}

.cart-modal-item-price{

    font-weight:700;

    color:#2563eb;

    font-size:.9rem;

    white-space:nowrap;

}

.cart-item-remove{

    background:none;

    border:none;

    color:#dc2626;

    cursor:pointer;

    font-size:.8rem;

    font-weight:600;

    margin-left:10px;

}

.cart-modal-footer{

    border-top:1px solid #f1f5f9;

    padding-top:20px;

}

.cart-total{

    font-size:1.2rem;

    font-weight:700;

    color:#0f172a;

    margin-bottom:15px;

    text-align:center;

}

.cart-checkout-btn{

    display:block;

    text-align:center;

    background:#2563eb;

    color:white;

    padding:14px;

    border-radius:12px;

    font-weight:600;

    transition:.3s;

}

.cart-checkout-btn:hover{

    background:#1d4ed8;

}

/* ===========================================
   ORDER REQUEST FORM
=========================================== */

#order-request{

    background:linear-gradient(
        135deg,
        #0f172a,
        #1e3a8a
    );

    color:white;

}

#order-request .section-title h2{

    color:white;

}

#order-request .section-title span{

    background:rgba(255,255,255,.15);

    color:white;

}

#orderForm{

    max-width:700px;

    margin:auto;

    background:white;

    padding:45px;

    border-radius:25px;

    box-shadow:0 25px 60px rgba(0,0,0,.18);

}

#orderForm input,
#orderForm textarea{

    width:100%;

    margin-bottom:20px;

    padding:16px;

    border:none;

    border-radius:12px;

    background:#f1f5f9;

    font-size:16px;

    outline:none;

    font-family:'Poppins',sans-serif;

}

#orderForm textarea{

    min-height:100px;

    resize:vertical;

}

#orderSummary{

    min-height:120px;

    color:#334155;

    font-size:14px;

}

#orderForm button{

    width:100%;

    padding:16px;

    border:none;

    border-radius:12px;

    background:#2563eb;

    color:white;

    font-size:17px;

    font-weight:600;

    cursor:pointer;

    transition:.3s;

}

#orderForm button:hover{

    background:#1d4ed8;

}

/* ===========================================
   FLOATING CART BUTTON
=========================================== */

.cart-widget{

    position:fixed;

    bottom:30px;

    right:30px;

    z-index:998;

}

.cart-toggle{

    background:#2563eb;

    color:white;

    border:none;

    border-radius:50px;

    padding:16px 22px;

    font-size:1.1rem;

    font-weight:700;

    cursor:pointer;

    box-shadow:0 15px 35px rgba(37,99,235,.35);

    transition:.3s;

}

.cart-toggle:hover{

    background:#1d4ed8;

    transform:translateY(-3px);

}

/* ===========================================
   RESPONSIVE
=========================================== */

@media(max-width:900px){

    .slide-text h1{

        font-size:2.2rem;

    }

    .slide-text p{

        font-size:1rem;

    }

    .modal-grid{

        grid-template-columns:1fr;

    }

    .modal-image{

        border-radius:28px 28px 0 0;

        min-height:240px;

    }

}

@media(max-width:650px){

    .product-hero{

        height:80vh;

    }

    .slide-text{

        padding:0 6%;

        max-width:100%;

    }

    .slide-text h1{

        font-size:1.8rem;

    }

    .shop-actions{

        flex-direction:column;

    }

    .site-overlay{

        padding:15px;

    }

    .modal-details{

        padding:30px 25px;

    }

    .cart-modal{

        padding:30px 22px 22px;

    }

}