/* layout */
.topgift-product { padding: 40px; }
.topgift-product-content { display: flex; gap: 40px; margin-bottom: 40px; }
.topgift-product-media { width: 40%; padding: 20px; display: flex; flex-direction: column; justify-content: center; }
.topgift-product-info { flex: 1; padding: 20px; }

/* box-shadow */
.topgift-product,
.topgift-product-media,
.topgift-product-info,
.topgift-product-image,
.topgift-product-image img,
.topgift-gallery-item,
.highlight-item,
.topgift-product-attributes,
.related-product-item-image,
.related-product-item-detail,
.related-product-nav button,
#review-form .form-group textarea,
.topgift-popup .topgift-popup-content,
.reviews-container .review,
.review-pagination a,
.topgift-product-variation,
.topgift-cart-popup-body,
.topgift-product-short-description { border-radius: 10px; box-shadow: 0px 0px 9px #354F9C, 0px 0px 9px #354F9C, 0px 0px 9px #354F9C; }

/* text-shadow */
.related-product-item-detail h3:hover,
.topgift-product-variation:hover,
.topgift-product-variation.active { color: #fff; text-shadow: 0px 0px 9px #354F9C, 0px 0px 9px #354F9C, 0px 0px 9px #354F9C; }

/* media */
.topgift-product-image { background-image: url(../images/product-cover-background.webp); background-size: cover; background-repeat: no-repeat; padding: 20px; }
.topgift-product-image img { display: block; margin: 0 auto; }
.topgift-product-gallery { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 20px; justify-content: center; align-items: center; }
.topgift-gallery-item { width: 125px; overflow: hidden; height: 84px; }
.topgift-gallery-item img { vertical-align: middle; object-fit: cover; height: 100%; width: 100%; }

/* info */
.topgift-product h2 { font-size: 2em; }
.topgift-product-topbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; }
.topgift-product-highlights { display: flex; align-items: center; gap: 20px; }
.highlight-item { height: 50px; display: inline-flex; align-items: center; padding: 0 20px; border-radius: 50px; gap: 4px; }
.topgift-product-wishlist button { margin: 0; padding: 0; border: none; background: transparent; cursor: pointer; }
.topgift-product-wishlist button svg { fill: #060B1F; }
.topgift-product-wishlist button.in-wishlist svg { fill: #354F9C; }
.topgift-product-rating { font-size: 1.2em; margin-bottom: 10px; display: flex; align-items: center; }
.topgift-product-rating .star { font-size: 24px; }
.topgift-product-rating .star:last-child { margin-right: 10px; }
.topgift-product-rating .star.filled { color: #FFC700; }
.topgift-product-rating .half-filled { position: relative; }
.topgift-product-rating .half-filled::before { content: "★"; color: #FFD700; position: absolute; left: 0; width: 50%; overflow: hidden;}
.topgift-product-title { margin: 0 0 20px 0; }
.topgift-product-price-wrap { display: flex; margin-bottom: 20px; gap: 10px; align-items: center; }
.topgift-product-price { font-size: 1.5em; font-weight: 700; }
.topgift-product-price-wrap .product-out-of-stock { font-size: 1.5em; font-weight: 700; color: red; }
.topgift-product-attributes { padding: 20px; margin-top: 20px; }
.topgift-product-attributes p { margin: 0 0 4px 0; }
.topgift-product-attribute-line { margin-bottom: 15px; }
.topgift-product-attribute-line:last-child { margin-bottom: 0; }
.topgift-product-attributes a { color: #fd8a02; }
.topgift-product-attributes a:hover { text-shadow: 0px 0px 9px #fd8a02, 0px 0px 9px #fd8a02, 0px 0px 9px #fd8a02; }
.topgift-product-cart-inputs { display: flex; gap: 15px; align-items: center; }
.topgift-product-quantity { display: flex; align-items: center; gap: 15px; }
.topgift-quantity-input { border: 1px solid #dddddd; background: transparent; color: #fff; border-radius: 10px; padding: 12px 12px; text-align: center; max-width: 60px; -moz-appearance: textfield; margin: 0; outline: none; }
.topgift-product-description { margin-bottom: 40px; line-height: 1.5; }
.topgift-product-description a { color: #ffffff; border-bottom: 1px dotted rgba(255,255,255,.5); }
.topgift-product-description a:hover,
.topgift-product-description a:focus { color: #ff336f; border-bottom: 1px dotted #ff336f; }
.topgift-product-short-description { padding: 20px; margin-bottom: 40px; text-align: center; }
.topgift-product-short-description p { margin: 0; color: #ff2c2c; }

.topgift-product-variations { display: flex; flex-wrap: wrap; gap: 15px; margin-bottom: 20px; }
.topgift-product-variation { padding: 12px 16px; cursor: pointer; transition: .2s; }
.topgift-product-variation.active { font-weight: 700; }
.topgift-product-variation.out-of-stock { filter: grayscale(1); opacity: .5; }

/* related products */
.topgift-related-products { margin-bottom: 40px; }
.topgift-related-products h2,
.topgift-product-description h2,
.topgift-product-reviews h2 { font-size: 1.65em; margin: 0 0 10px 0; }
.related-products-slider { opacity: 0; visibility: hidden; }
.related-products-slider.slick-initialized { visibility: visible; opacity: 1; margin-left: -15px; margin-right: -15px; }
.related-product-item { padding: 15px; }
.related-product-item-image { overflow: hidden; margin-bottom: 20px; max-height: 280px; }
.related-product-item-image img { object-fit: cover; width: 100%; height: 100%; }
.related-product-item-detail { border-radius: 0; text-align: center; padding: 15px; display: flex; flex-direction: column; justify-content: space-between; margin-bottom: 10px; }
.related-product-item-detail h3 { font-size: 1.1em; font-weight: 400; margin: 0 0 15px 0; }
.related-product-item-price { font-size: 1.1em; font-weight: 600; color: #ffffff; }
.related-product-nav { display: none; }
.preloader img { max-width: 40px; }

/* review */
.topgift-product-reviews { max-width: 760px; position: relative; }
.topgift-product-reviews > h2 { margin-bottom: 20px; }
.reviews-container { margin-bottom: 20px; }
#product-reviews .preloader { display: none; }
#product-reviews.loading .preloader { display: block; }
#product-reviews.loading .reviews-container { opacity: .5; filter: blur(1px); }
#review-form .form-group { margin-bottom: 20px; }
#review-form .form-group > label { margin-bottom: 10px; display: block; }
#review-form .form-group textarea { height: 150px; width: 100%; background: transparent; padding: 20px; color: inherit; border: none; outline: none; }
.star-rating { direction: rtl; display: inline-flex; margin-top: 10px !important; margin-bottom: 20px; }
.star-rating input[type="radio"] { display: none; }
.star-rating label { font-size: 24px; color: #ccc; cursor: pointer; }
.star-rating input[type="radio"]:checked ~ label { color: #FFC700; }
.star-rating label:hover,
.star-rating label:hover ~ label,
.review .review-stars { color: #FFC700; }
p.stars { display: none; }
.woocommerce-js .star-rating { float: none!important; overflow: unset!important; position: unset!important; line-height: 1; font-size: 1em; display: block; margin: 0; width: auto; text-align: left; font-family: rajdhani!important; }
.woocommerce .star-rating::before { display: none; }
.reviews-container .review { margin-bottom: 20px; padding: 20px; }
.review .reviewer-and-rating { margin: 0; font-weight: 700; }
.review .review-comment { margin-bottom: 0; }
.review-pagination { display: flex; gap: 10px; margin: 30px 0 40px 0; }
.review-pagination a { padding: 8px 12px; border-radius: 0; }

/* popup */
.topgift-popup,
#topgift-cart-popup { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); z-index: 1000; justify-content: center; align-items: center; }
.topgift-popup-content,
.topgift-cart-popup-body { position: relative; background-color: #060B1F; padding: 30px; max-width: 70%; max-height: 70%; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; color: #fff; }
.topgift-popup .preloader { margin-top: 12px; }
.topgift-popup-close { position: absolute; top: 0px; right: 10px; background: transparent; border: none; font-size: 32px; color: #fff; font-weight: 700; cursor: pointer; padding: 12px; }
.region-title { margin: 0 0 20px 0; }
.region-list { max-height: 500px; overflow-y: auto; }
.region-list ul { margin: 0; padding: 0; columns: 4; }
.region-list li { margin: 0; padding: 8px 0; list-style: none; text-align: left; }
.region-list::-webkit-scrollbar { border-radius: 40px; background-color: #354F9C; scrollbar-width: thin; }
.region-list::-webkit-scrollbar-thumb { background-color: #232F57; border-radius: 40px; }
.region-list::-webkit-scrollbar-button { display: none!important; }
.topgift-cart-popup-body svg { max-height: 100px; }
.topgift-cart-popup-button-container { display: flex; gap: 20px; margin-top: 20px; }

@media screen and (max-width: 1200px) {
    .related-products-slider .slick-list { overflow-x: auto; scroll-snap-type: x mandatory; }
    .related-products-slider .slick-list::-webkit-scrollbar { border-radius: 40px; background-color: #354F9C; scrollbar-width: thin; }
    .related-products-slider .slick-list::-webkit-scrollbar-thumb { background-color: #232F57; border-radius: 40px; }
    .related-products-slider .slick-list::-webkit-scrollbar-button { display: none!important; }

    .related-product-nav { display: flex; gap: 15px; justify-content: center; margin-top: 15px }
    .related-product-nav button { background: transparent; border: none; width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; border-radius: 48px; }
    .related-product-nav button path { fill: #fff; }
    .related-product-nav button svg { width: 12px; }
}

@media screen and (max-width: 768px) {
    .topgift-product { padding: 20px; }
    .topgift-product-content,
    .topgift-product-price-wrap { flex-wrap: wrap; }
    .topgift-product-media,
    .topgift-product-info { width: 100%; }
    .topgift-product-topbar { align-items: flex-start; }
    .topgift-product-highlights { flex-wrap: wrap; gap: 10px; }
    .highlight-item { height: 32px; line-height: 32px; padding: 0 12px; font-size: .875em; }
    .highlight-item svg { height: 20px; }
    .highlight-item svg g { height: 20px; }
    .topgift-product-variations { padding: 0 0 20px 0; }
    .topgift-product-cart-inputs { flex-wrap: wrap; justify-content: center; }
    .topgift-product-cart-inputs > .btn { width: 100%; }
    .topgift-product-price-wrap { flex-direction: column; align-items: flex-start; gap: 0; }
}

@media screen and (max-width: 480px) {
    .topgift-cart-popup-button-container { flex-wrap: wrap; gap: 10px; }
    .topgift-cart-popup-button-container .btn { width: 100%; }
}