/* ===================================
        PRODUCT PAGE
=================================== */

.product-page{
    background: var(--bg);
    transition: background .8s ease;
    padding: 80px 0;
}

.product-container{
    width: 92%;
    max-width: 1500px;
    margin: auto;
}

/* ---------------- BACK ---------------- */

.back-link{
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: #666;
    font-size: 15px;
    margin-bottom: 60px;
    transition: all .45s cubic-bezier(.22,.61,.36,1);
}

.back-link:hover{
    color: #111;
    transform: translateX(-6px);
}

/* ---------------- LAYOUT ---------------- */

.product-layout{
    display: grid;
    grid-template-columns: 70px 600px 420px;
    gap: 90px;
    align-items: start;
}

/* ---------------- GALLERY ---------------- */

.gallery-column{
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.gallery-thumb{
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 12px;
    cursor: pointer;
    border: 2px solid transparent;
    transition: all .45s cubic-bezier(.22,.61,.36,1);
}

.gallery-thumb:hover{
    transform: scale(1.1);
    border-color: var(--accent);
}

.gallery-thumb.active{
    border-color: var(--accent);
    box-shadow: 0 0 18px rgba(200,167,95,.35);
}

/* ---------------- MAIN IMAGE ---------------- */

.main-image{
    display: flex;
    justify-content: center;
    align-items: center;
}

.zoom-container{
    overflow: hidden;
    border-radius: 22px;
    cursor: zoom-in;
}

.zoom-container img{
    width: 100%;
    max-width: 560px;
    max-height: 720px;
    object-fit: contain;
    transition:
        transform .35s ease,
        opacity .35s ease;
}

.zoom-container:hover img{
    transform: scale(1.25);
}

#mainProductImage{

    transition:
        opacity .5s ease,
        transform .5s cubic-bezier(.22,.61,.36,1);

}

#mainProductImage.fade{

    opacity:0;

    transform:scale(1.03);

}
/* ---------------- DETAILS ---------------- */

.product-details{
    padding-top: 20px;
}

.product-details h1{
    font-size: 52px;
    font-family: "Cormorant Garamond", serif;
    font-weight: 600;
    margin-bottom: 20px;
}

.rating{
    margin-bottom: 10px;
}

.stars{
    color: #D4AF37;
    font-size: 20px;
    letter-spacing: 4px;
}

.reviews{
    display: flex;
    align-items: center;
    gap: 12px;
    color: #777;
    margin-bottom: 35px;
}

.reviews strong{
    color: #111;
}

.material{
    color: #888;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-size: 14px;
    margin-bottom: 15px;
}

.price{
    font-size: 42px;
    margin-bottom: 30px;
}

.description{
    color: #666;
    line-height: 1.9;
    margin-bottom: 45px;
}

.divider{
    height: 1px;
    background: #ECECEC;
    margin: 35px 0;
}

/* ---------------- QUANTITY ---------------- */

.quantity{
    margin-bottom: 45px;
}

.qty-box{
    display: flex;
    align-items: center;
    gap: 35px;
    margin-top: 18px;
}

.qty-box button{
    border: none;
    background: none;
    font-size: 28px;
    cursor: pointer;
    transition: .25s;
}

.qty-box button:hover{
    color: var(--accent);
}

.qty-box span{
    font-size: 22px;
}

/* ---------------- BUTTONS ---------------- */

.bag-btn{
    width: 100%;
    height: 60px;
    border: none;
    border-radius: 14px;
    background: var(--accent);
    color: #111;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: all .45s cubic-bezier(.22,.61,.36,1);
}

.bag-btn:hover{
    transform:translateY(-4px);
    filter: brightness(1.05);
}

.wishlist-btn{
    width: 100%;
    height: 58px;
    margin-top: 16px;
    border: 1px solid #DDD;
    border-radius: 14px;
    background: #FFF;
    cursor: pointer;
transition:.45s cubic-bezier(.22,.61,.36,1);
}
.wishlist-btn.active{

background:#111;

color:white;

border-color:#111;

transform:translateY(-2px);

}

.wishlist-btn:hover{
    border-color: var(--accent);
    color: var(--accent);
}
/* ===============================
        LIGHTBOX
================================ */

.lightbox{

    position:fixed;

    inset:0;

    background:rgba(10,10,10,.94);

    display:flex;

    justify-content:center;

    align-items:center;

    opacity:0;

    visibility:hidden;

    transition:.35s;

    z-index:9999;

}

.lightbox.show{

    opacity:1;

    visibility:visible;

}
.lightbox img{

    display:block;

    width:auto;
    height:auto;

    max-width:90vw;
    max-height:88vh;

    object-fit:contain;
    object-position:center;

    border-radius:18px;

    box-shadow:0 40px 80px rgba(0,0,0,.5);

    animation:zoomIn .35s;

    opacity:1;

    transition:
        opacity .35s ease,
        transform .35s ease;

}

@keyframes zoomIn{

    from{

        transform:scale(.9);

        opacity:0;

    }

    to{

        transform:scale(1);

        opacity:1;

    }

}

.lightbox button{

    position:absolute;

    background:none;

    border:none;

    color:white;

    cursor:pointer;

    transition:.25s;

}

.lightbox button:hover{

    transform:scale(1.15);

}

.lightbox-close{

    top:35px;

    right:45px;

    font-size:34px;

}

.lightbox-prev{

    left:40px;

    font-size:70px;

}

.lightbox-next{

    right:40px;

    font-size:70px;

}
.lightbox img.fade{

    opacity:0;

}
.lightbox img{

    cursor:grab;

    user-select:none;

}

.lightbox img.fade{

    opacity:0;

}
.qty-box{

    user-select:none;

}

.qty-box button{

    width:42px;

    height:42px;

    border-radius:50%;

    border:none;

    background:#f7f7f7;

    transition:.25s;

}

.qty-box button:hover{

    background:var(--accent);

    color:white;

    transform:scale(1.08);

}

#qtyValue{

    min-width:26px;

    text-align:center;

    font-weight:600;

    transition:.25s;

}
.bag-btn.loading{

    opacity:.8;

    pointer-events:none;

}

.bag-btn.success{

    background:#2ECC71;

    color:white;

    transform:scale(1.02);

}
/* ===============================
        LUXURY LIGHT SWEEP
================================ */

.product-page{

    position:relative;

    overflow:hidden;

}

.product-page::after{

    content:"";

    position:absolute;

    top:-20%;

    left:-45%;

    width:65%;

    height:220%;

    pointer-events:none;

    opacity:0;

    transform:rotate(12deg);

background:
linear-gradient(
    90deg,

    rgba(255,255,255,0) 0%,

    rgba(255,245,220,.05) 15%,

    rgba(255,230,170,.25) 35%,

    rgba(255,255,255,.95) 50%,

    rgba(255,220,120,.35) 65%,

    rgba(255,245,220,.08) 85%,

    rgba(255,255,255,0) 100%
);

}

.product-page.shine::after{

animation: luxurySweep 2s cubic-bezier(.22,.61,.36,1);

}

@keyframes luxurySweep{

    0%{

        left:-45%;

        opacity:0;

    }

    15%{

        opacity:1;

    }

    50%{

        opacity:.1;
        filter:blur(2px);

    }

    100%{

        left:130%;

        opacity:0;

    }

}
/* CART DRAWER */

.cart-overlay{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.35);

    opacity:0;

    visibility:hidden;

    transition:.35s;

    z-index:9998;

}

.cart-overlay.show{

    opacity:1;

    visibility:visible;

}



.cart-drawer{

    position: fixed;

    top:0;
    right:0;

    width:420px;
    height:100vh;

    background:#fff;

    z-index:9999;

    box-shadow:-10px 0 40px rgba(0,0,0,.15);

    transform:translateX(100%);

    transition:transform .45s cubic-bezier(.22,.61,.36,1);

}



.cart-drawer.show{

    transform:translateX(0);

}



/* MOBILE */

@media(max-width:600px){

    .cart-drawer{

        width:100%;

        right:-100%;

    }

}


/* ============================= */

.drawer-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:32px;

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

}


.drawer-header h2{

    font-size:34px;

    font-family:"Cormorant Garamond", serif;

    font-weight:600;

}


.drawer-header button{

    border:none;

    background:none;

    font-size:28px;

    cursor:pointer;

    transition:.3s;

}

.drawer-header button:hover{

    transform:rotate(90deg);

}


/* ============================= */

.drawer-body{

    flex:1;

    padding:32px;

    overflow:auto;

}
/* ===================================
        DRAWER CONTENT
=================================== */

.drawer-success{

    display:flex;

    align-items:center;

    gap:18px;

    margin-bottom:40px;

}

.success-icon{

    width:56px;

    height:56px;

    border-radius:50%;

    background:#EAF8EF;

    color:#1F8F49;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:24px;

    font-weight:700;

}

.drawer-success h3{

    font-size:20px;

    margin-bottom:6px;

    font-weight:600;

}

.drawer-success p{

    color:#777;

    font-size:14px;

}

/* ============================= */

.drawer-item{

    display:flex;

    gap:20px;

    padding:20px;

    border:1px solid rgba(0,0,0,.06);

    border-radius:22px;

    background:white;

    transition:.35s;

    cursor:pointer;
}

.drawer-item:hover{

    transform:translateY(-4px);

    box-shadow:0 15px 35px rgba(0,0,0,.08);

}

.drawer-item img{

    width:110px;

    height:110px;

    object-fit:cover;

    border-radius:16px;

}

/* ============================= */

.drawer-info{

    display:flex;

    flex-direction:column;

    justify-content:center;

    gap:8px;

}

.drawer-info h4{

    font-size:22px;

    font-family:"Cormorant Garamond", serif;

}

.drawer-info span{

    color:#777;

    font-size:14px;

}

.drawer-info strong{

    font-size:22px;

    margin-top:8px;

}

/* ============================= */

.drawer-checkout{

    width:100%;

    margin-top:40px;

    height:60px;

    border:none;

    border-radius:16px;

    background:#111;

    color:white;

    font-size:16px;

    cursor:pointer;

    transition:.35s;

}

.drawer-checkout:hover{

    transform:translateY(-2px);

    background:#000;

}
/* ===================================
        DRAWER QUANTITY
=================================== */

.drawer-qty{

    display:flex;

    align-items:center;

    gap:18px;

    margin-top:18px;

}

.drawer-qty button{

    width:34px;

    height:34px;

    border:none;

    border-radius:50%;

    background:#F4F4F4;

    cursor:pointer;

    font-size:18px;

    transition:.3s;

}

.drawer-qty button:hover{

    background:var(--accent);

    color:white;

    transform:scale(1.08);

}

.drawer-qty span{

    min-width:18px;

    text-align:center;

    font-size:17px;

    font-weight:600;

}

/* ============================= */

.drawer-subtotal{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-top:28px;

    padding-top:22px;

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

}

.drawer-subtotal span{

    color:#777;

}

.drawer-subtotal strong{

    font-size:22px;

}
.bag-btn {
    position: relative;
    overflow: hidden;
    transition: all 0.8s ease;
}


.bag-btn::after {

    content: "";

    position: absolute;

    top: 0;
    left: -100%;

    width: 50%;
    height: 100%;

    background: linear-gradient(
        120deg,
        transparent,
        rgba(255,255,255,0.8),
        transparent
    );

    transform: skewX(-20deg);

}


.bag-btn:hover::after {

    animation: shine 1s;

}


@keyframes shine {

    0% {
        left: -100%;
    }

    100% {
        left: 150%;
    }

}



.bag-btn.clicked {

    animation: buttonGlow 0.5s ease;

}


@keyframes buttonGlow {


    0% {

        box-shadow: 0 0 0 transparent;

    }


    50% {

        box-shadow:
        0 0 25px rgba(255,215,120,0.8);

    }


    100% {

        box-shadow: 0 0 0 transparent;

    }

}
/* ===========================
   PRODUCT MOBILE
=========================== */

@media (max-width: 768px){

    .product-page{
        padding:120px 0 60px;
    }

    .product-layout{
        grid-template-columns:1fr;
        gap:30px;
    }

    .gallery-column{
        flex-direction:row;
        justify-content:center;
        flex-wrap:wrap;
        order:2;
    }

    .main-image{
        order:1;
    }

    .product-details{
        order:3;
        padding-top:0;
    }

    .zoom-container img{
        width:100%;
        max-width:100%;
        max-height:420px;
    }

    .product-details h1{
        font-size:36px;
    }

    .price{
        font-size:32px;
    }

    .description{
        font-size:15px;
    }

    .gallery-thumb{
        width:58px;
        height:58px;
    }

}