
/* =========================================================
   WooSpax - Single Product
   Main Product Page Styles
   ========================================================= */


/* =========================================================
   1. MAIN PRODUCT
   ========================================================= */

.ws-single-product {
	width: 100%;
	padding: 45px 0 80px;
	background: #fff;
}


/* =========================================================
   2. MAIN PRODUCT LAYOUT
   ========================================================= */

.ws-single-product-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: 55px;
	align-items: start;
}

.ws-single-product-gallery,
.ws-single-product-summary {
	min-width: 0;
	direction: rtl;
}


/* =========================================================
   3. GALLERY
   ========================================================= */

.ws-product-gallery {
	width: 100%;
}

.ws-product-gallery-main {
	width: 100%;
	position: relative;
	overflow: hidden;
	background: #f7f7f7;
	border-radius: 8px;
}

.ws-product-gallery-image {
	display: none;
	width: 100%;
}

.ws-product-gallery-image.is-active {
	display: block;
}

.ws-product-image-link {
	display: block;
	width: 100%;
	line-height: 0;
}

.ws-product-main-image {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	margin: 0 auto;

	object-fit: contain;

	border-radius: 8px;
}


/* =========================================================
   4. GALLERY THUMBNAILS
   ========================================================= */

.ws-product-gallery-thumbs {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;

	margin-top: 12px;
}

.ws-product-gallery-thumb {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 82px;
	height: 82px;

	padding: 3px;

	border: 1px solid #ddd;
	border-radius: 5px;

	background: #fff;

	cursor: pointer;

	overflow: hidden;

	transition:
		border-color .2s ease,
		box-shadow .2s ease,
		transform .2s ease;
}

.ws-product-gallery-thumb:hover {
	border-color: #a92f32;
	transform: translateY(-2px);
}

.ws-product-gallery-thumb.is-active {
	border-color: #a92f32;
	box-shadow: 0 0 0 1px #a92f32;
}

.ws-product-thumb-image {
	display: block;

	width: 100%;
	height: 100%;

	object-fit: cover;
	border-radius: 3px;
}


/* =========================================================
   5. GALLERY PLACEHOLDER
   ========================================================= */

.ws-product-gallery-placeholder {
	width: 100%;
	background: #f7f7f7;
	border-radius: 8px;
	overflow: hidden;
}

.ws-product-gallery-placeholder img {
	display: block;
	width: 100%;
	height: auto;
}


/* =========================================================
   6. PRODUCT SUMMARY
   ========================================================= */

.ws-single-product-summary {
	width: 100%;
	padding-top: 3px;
}

.ws-single-product-summary > * {
	width: 100%;
}


/* =========================================================
   7. PRODUCT TITLE
   ========================================================= */

.ws-single-product-title-wrap {
	margin: 0 0 15px;
}

.ws-single-product-title {
	margin: 0;

	color: #222;

	font-size: 28px;
	font-weight: 700;
	line-height: 1.5;

	text-align: right;
}


/* =========================================================
   8. PRICE
   ========================================================= */

.ws-single-product-price {
	margin: 10px 0 18px;

	color: #a92f32;

	font-size: 24px;
	font-weight: 700;
	line-height: 1.5;

	text-align: right;
}

.ws-single-product-price del {
	margin-left: 8px;

	color: #999;

	font-size: 15px;
	font-weight: 400;
}

.ws-single-product-price ins {
	color: #a92f32;
	text-decoration: none;
}


/* =========================================================
   9. RATING
   ========================================================= */

.ws-single-product-rating {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;

	margin: 8px 0 18px;

	direction: rtl;
}

.ws-single-product-rating .star-rating {
	position: relative;

	display: inline-block;

	width: 5.4em;
	height: 1em;

	font-size: 14px;
	line-height: 1;

	overflow: hidden;
}

.ws-single-product-rating .star-rating::before {
	content: "★★★★★";

	position: absolute;
	top: 0;
	right: 0;

	color: #ddd;

	letter-spacing: 2px;
}

.ws-single-product-rating .star-rating span {
	position: absolute;
	top: 0;
	right: 0;

	height: 100%;

	overflow: hidden;
}

.ws-single-product-rating .star-rating span::before {
	content: "★★★★★";

	position: absolute;
	top: 0;
	right: 0;

	color: #e3a008;

	letter-spacing: 2px;
}

.ws-single-product-rating a {
	color: #777;
	font-size: 13px;
	text-decoration: none;
}

.ws-single-product-rating a:hover {
	color: #a92f32;
}


/* =========================================================
   10. SHORT DESCRIPTION
   ========================================================= */

.ws-single-product-short-description {
	margin: 20px 0;
	padding: 18px 0;

	border-top: 1px solid #eee;
	border-bottom: 1px solid #eee;

	color: #555;

	font-size: 15px;
	line-height: 1.9;

	text-align: right;
}

.ws-single-product-short-description p {
	margin: 0 0 10px;
}

.ws-single-product-short-description p:last-child {
	margin-bottom: 0;
}

.ws-single-product-short-description ul,
.ws-single-product-short-description ol {
	margin: 10px 0;
	padding-right: 20px;
}


/* =========================================================
   11. STOCK
   ========================================================= */

.ws-single-product-stock {
	margin: 15px 0;
	text-align: right;
}

.ws-stock-status {
	display: inline-flex;
	align-items: center;
	gap: 8px;

	font-size: 14px;
	font-weight: 600;
}

.ws-stock-dot {
	display: inline-block;

	width: 8px;
	height: 8px;

	border-radius: 50%;
}

.ws-in-stock {
	color: #218739;
}

.ws-in-stock .ws-stock-dot {
	background: #218739;
}

.ws-out-of-stock {
	color: #a92f32;
}

.ws-out-of-stock .ws-stock-dot {
	background: #a92f32;
}


/* =========================================================
   12. META
   ========================================================= */

.ws-single-product-meta {
	margin: 20px 0;
	padding: 15px 0;

	border-top: 1px solid #eee;
	border-bottom: 1px solid #eee;

	direction: rtl;
}

.ws-product-meta-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;

	margin-bottom: 8px;

	color: #555;

	font-size: 14px;
	line-height: 1.7;
}

.ws-product-meta-row:last-child {
	margin-bottom: 0;
}

.ws-product-meta-label {
	color: #222;
	font-weight: 700;
}

.ws-product-meta-value {
	color: #666;
}

.ws-product-meta-value a {
	color: #a92f32;
	text-decoration: none;
}

.ws-product-meta-value a:hover {
	text-decoration: underline;
}


/* =========================================================
   13. ADD TO CART
   ========================================================= */

.ws-single-product-cart {
	width: 100%;
	margin-top: 25px;
}

.ws-single-product-cart form.cart {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	gap: 10px;

	width: 100%;

	margin: 0;
}


/* Quantity */

.ws-single-product-cart .quantity {
	display: flex;
	align-items: center;
}

.ws-single-product-cart .quantity input.qty {
	width: 75px;
	height: 48px;

	padding: 8px;

	border: 1px solid #ddd;
	border-radius: 5px;

	background: #fff;

	color: #222;

	font-size: 15px;
	text-align: center;

	outline: none;
}

.ws-single-product-cart .quantity input.qty:focus {
	border-color: #a92f32;
}


/* Add To Cart */

.ws-single-product-cart button.single_add_to_cart_button {
	flex: 1;

	min-height: 48px;

	padding: 10px 25px;

	border: 0;
	border-radius: 5px;

	background: #30363b;
	color: #fff;

	font-size: 15px;
	font-weight: 700;

	cursor: pointer;

	transition:
		background .2s ease,
		transform .2s ease;
}

.ws-single-product-cart button.single_add_to_cart_button:hover {
	background: #a92f32;
	color: #fff;

	transform: translateY(-1px);
}

.ws-single-product-cart button.single_add_to_cart_button.disabled,
.ws-single-product-cart button.single_add_to_cart_button:disabled {
	opacity: .6;
	cursor: not-allowed;
	transform: none;
}


/* =========================================================
   14. VARIABLE PRODUCT
   ========================================================= */

.ws-single-product-cart form.variations_form {
	display: block;
}

.ws-single-product-cart table.variations {
	width: 100%;
	margin-bottom: 20px;

	border: 0;
}

.ws-single-product-cart table.variations tr {
	display: flex;
	align-items: center;
	flex-wrap: wrap;

	margin-bottom: 12px;
}

.ws-single-product-cart table.variations th,
.ws-single-product-cart table.variations td {
	padding: 5px 0;

	border: 0;
	text-align: right;
}

.ws-single-product-cart table.variations th {
	width: 100px;
	color: #222;
	font-weight: 700;
}

.ws-single-product-cart table.variations td {
	flex: 1;
}

.ws-single-product-cart table.variations select {
	width: 100%;
	height: 44px;

	padding: 8px 12px;

	border: 1px solid #ddd;
	border-radius: 5px;

	background: #fff;

	color: #333;

	outline: none;
}

.ws-single-product-cart table.variations select:focus {
	border-color: #a92f32;
}

.ws-single-product-cart .reset_variations {
	display: inline-block;

	margin-top: 5px;

	color: #a92f32;
	font-size: 13px;
	text-decoration: none;
}


/* =========================================================
   15. WISHLIST
   ========================================================= */

.ws-single-product-wishlist {
	width: 100%;
	margin-top: 12px;
}

.ws-single-wishlist-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;

	width: 100%;
	min-height: 46px;

	padding: 10px 16px;

	border: 1px solid #ddd;
	border-radius: 5px;

	background: #fff;
	color: #30363b;

	font-size: 14px;
	font-weight: 600;

	cursor: pointer;

	transition:
		border-color .2s ease,
		color .2s ease,
		background .2s ease;
}

.ws-single-wishlist-btn svg {
	width: 19px;
	height: 19px;

	flex: 0 0 auto;
}

.ws-single-wishlist-btn:hover {
	border-color: #a92f32;
	color: #a92f32;
}

.ws-single-wishlist-btn.is-active {
	border-color: #a92f32;
	background: #fff7f7;
	color: #a92f32;
}

.ws-single-wishlist-btn.is-active svg {
	fill: #a92f32;
	stroke: #a92f32;
}

.ws-wishlist-text {
	line-height: 1.5;
}


/* =========================================================
   16. COMPARE
   ========================================================= */

.ws-single-product-compare {
	width: 100%;
	margin-top: 10px;
}

.ws-single-compare-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;

	width: 100%;
	min-height: 46px;

	padding: 10px 16px;

	border: 1px solid #ddd;
	border-radius: 5px;

	background: #fff;
	color: #30363b;

	font-size: 14px;
	font-weight: 600;

	cursor: pointer;

	transition:
		border-color .2s ease,
		color .2s ease,
		background .2s ease;
}

.ws-single-compare-btn svg {
	width: 19px;
	height: 19px;
}

.ws-single-compare-btn:hover {
	border-color: #a92f32;
	color: #a92f32;
	background: #fffafa;
}


/* =========================================================
   17. PRODUCT TRUST
   ========================================================= */

.ws-single-product-trust {
	width: 100%;
	margin-top: 60px;
}

.ws-product-trust {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;

	width: 100%;

	padding: 25px;

	border: 1px solid #e7e7e7;
	border-radius: 8px;

	background: #fff;
}

.ws-trust-item {
	display: flex;
	align-items: center;
	gap: 12px;

	min-width: 0;
}

.ws-trust-icon {
	display: flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 44px;

	width: 44px;
	height: 44px;

	border-radius: 50%;

	background: #f8eeee;
	color: #a92f32;
}

.ws-trust-icon svg {
	width: 21px;
	height: 21px;
}

.ws-trust-content {
	display: flex;
	flex-direction: column;
	gap: 3px;

	min-width: 0;
}

.ws-trust-content strong {
	color: #222;

	font-size: 14px;
	font-weight: 700;
}

.ws-trust-content span {
	color: #777;

	font-size: 12px;
	line-height: 1.6;
}


/* =========================================================
   18. PRODUCT TABS
   ========================================================= */

.ws-single-product-tabs-section {
	width: 100%;
	margin-top: 65px;

	direction: rtl;
}

.ws-single-product-tabs {
	width: 100%;
	border: 1px solid #e5e5e5;
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
}

.ws-product-tabs-nav {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;

	width: 100%;

	border-bottom: 1px solid #e5e5e5;

	background: #fafafa;
}

.ws-product-tab-btn {
	position: relative;

	display: flex;
	align-items: center;
	justify-content: center;

	min-height: 52px;

	padding: 10px 22px;

	border: 0;
	border-left: 1px solid #e5e5e5;

	background: transparent;

	color: #555;

	font-size: 14px;
	font-weight: 600;

	cursor: pointer;

	transition:
		color .2s ease,
		background .2s ease;
}

.ws-product-tab-btn:last-child {
	border-left: 0;
}

.ws-product-tab-btn:hover {
	background: #fff;
	color: #a92f32;
}

.ws-product-tab-btn.is-active {
	background: #fff;
	color: #a92f32;
}

.ws-product-tab-btn.is-active::after {
	content: "";

	position: absolute;

	right: 15px;
	bottom: 0;
	left: 15px;

	height: 2px;

	background: #a92f32;
}

.ws-product-tabs-content {
	width: 100%;
	padding: 25px;
}

.ws-product-tab-panel {
	display: none;

	color: #555;

	font-size: 15px;
	line-height: 1.9;
}

.ws-product-tab-panel.is-active {
	display: block;
}

.ws-product-tab-panel h2,
.ws-product-tab-panel h3 {
	margin-top: 0;
	color: #222;
}

.ws-product-tab-panel p:last-child {
	margin-bottom: 0;
}

.ws-product-tab-panel table {
	width: 100%;
	border-collapse: collapse;
}

.ws-product-tab-panel table th,
.ws-product-tab-panel table td {
	padding: 10px;

	border: 1px solid #eee;

	text-align: right;
}


/* =========================================================
   19. SECTION HEADINGS
   ========================================================= */

.ws-section-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;

	margin-bottom: 25px;

	direction: rtl;
}

.ws-section-heading h2 {
	margin: 0;

	color: #222;

	font-size: 25px;
	font-weight: 700;
	line-height: 1.5;
}


/* =========================================================
   20. RECENTLY VIEWED
   ========================================================= */

.ws-single-product-recently-viewed {
	width: 100%;
	margin-top: 70px;
	direction: rtl;
}

.ws-single-product-recently-viewed .ws-products-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}


/* =========================================================
   21. RELATED PRODUCTS
   ========================================================= */

.ws-single-product-related {
	width: 100%;
	margin-top: 70px;
	direction: rtl;
}

.ws-single-product-related .ws-products-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}


/* =========================================================
   22. GENERIC PRODUCT GRID
   ========================================================= */

.ws-products-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}


/* =========================================================
   23. STICKY PRODUCT CART
   ========================================================= */

.ws-sticky-product-cart {
	position: fixed;

	right: 0;
	bottom: 0;
	left: 0;

	z-index: 9999;

	display: flex;
	align-items: center;
	justify-content: space-between;

	width: 100%;

	padding: 12px 20px;

	border-top: 1px solid #ddd;

	background: #fff;

	box-shadow: 0 -5px 20px rgba(0, 0, 0, .08);

	direction: rtl;

	transform: translateY(100%);

	transition: transform .25s ease;
}

.ws-sticky-product-cart.is-visible {
	transform: translateY(0);
}

.ws-sticky-product-info {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ws-sticky-product-image img {
	display: block;

	width: 55px;
	height: 55px;

	object-fit: cover;

	border-radius: 5px;
}

.ws-sticky-product-text {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.ws-sticky-product-title {
	color: #222;
	font-size: 14px;
}

.ws-sticky-product-price {
	color: #a92f32;
	font-size: 14px;
	font-weight: 700;
}

.ws-sticky-product-price del {
	color: #999;
	font-weight: 400;
}

.ws-sticky-product-price ins {
	text-decoration: none;
}

.ws-sticky-product-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-height: 44px;

	padding: 10px 25px;

	border-radius: 5px;

	background: #30363b;
	color: #fff;

	font-size: 14px;
	font-weight: 600;

	text-decoration: none;

	transition: background .2s ease;
}

.ws-sticky-product-button:hover {
	background: #a92f32;
	color: #fff;
}


/* =========================================================
   24. WOOCOMMERCE DEFAULT FIXES
   ========================================================= */

.ws-single-product .woocommerce-product-gallery,
.ws-single-product .summary {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}

.ws-single-product .product {
	margin: 0;
}

.ws-single-product form.cart {
	margin-bottom: 0;
}

.ws-single-product .woocommerce-variation-description {
	margin-bottom: 15px;
}

.ws-single-product .woocommerce-variation-price {
	margin-bottom: 15px;
	color: #a92f32;
	font-weight: 700;
}

.ws-single-product .woocommerce-notices-wrapper {
	width: 100%;
}


/* =========================================================
   26. TABLET
   ========================================================= */

@media (max-width: 1000px) {

	.ws-single-product {
		padding-top: 35px;
	}

	.ws-single-product-layout {
		grid-template-columns: 1fr;
		gap: 35px;
	}

	.ws-single-product-gallery {
		width: 100%;
		max-width: 800px;
		margin: 0 auto;
	}

	.ws-single-product-summary {
		width: 100%;
		max-width: 800px;
		margin: 0 auto;
	}

	.ws-product-trust {
		grid-template-columns: 1fr;
	}

	.ws-products-grid,
	.ws-single-product-recently-viewed .ws-products-grid,
	.ws-single-product-related .ws-products-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

}


/* =========================================================
   27. MOBILE
   ========================================================= */

@media (max-width: 767px) {

	.ws-single-product {
		padding: 25px 0 60px;
	}

	.ws-single-product > .ws-container {
		padding: 0 15px;
	}

	.ws-single-product-layout {
		gap: 25px;
	}

	.ws-single-product-title {
		font-size: 24px;
		line-height: 1.5;
	}

	.ws-single-product-price {
		font-size: 21px;
	}

	.ws-product-gallery-thumbs {
		gap: 7px;
	}

	.ws-product-gallery-thumb {
		width: 68px;
		height: 68px;
	}

	.ws-single-product-tabs-section {
		margin-top: 45px;
	}

	.ws-product-tabs-nav {
		flex-wrap: nowrap;

		overflow-x: auto;

		scrollbar-width: thin;
	}

	.ws-product-tab-btn {
		flex: 0 0 auto;

		min-height: 48px;

		padding: 9px 16px;

		white-space: nowrap;
	}

	.ws-product-tabs-content {
		padding: 20px 15px;
	}

	.ws-product-trust {
		padding: 18px;
	}

	.ws-single-product-recently-viewed,
	.ws-single-product-related {
		margin-top: 50px;
	}

	.ws-products-grid,
	.ws-single-product-recently-viewed .ws-products-grid,
	.ws-single-product-related .ws-products-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.ws-sticky-product-cart {
		padding: 10px 12px;
	}

	.ws-sticky-product-image {
		display: none;
	}

	.ws-sticky-product-button {
		padding: 10px 16px;
	}

}


/* =========================================================
   28. SMALL MOBILE
   ========================================================= */

@media (max-width: 768px) {

	.ws-single-product {
		padding-top: 20px;
	}

	.ws-single-product > .ws-container {
		padding: 0 12px;
	}

	.ws-single-product-title {
		font-size: 21px;
	}

	.ws-single-product-price {
		font-size: 19px;
	}

	.ws-product-gallery-thumb {
		width: 58px;
		height: 58px;
	}

	.ws-single-product-cart form.cart {
		flex-direction: column;
	}

	.ws-single-product-cart .quantity {
		width: 100%;
	}

	.ws-single-product-cart .quantity input.qty {
		width: 100%;
	}

	.ws-single-product-cart button.single_add_to_cart_button {
		width: 100%;
		flex: none;
	}

	.ws-product-trust {
		padding: 15px;
	}

	.ws-trust-item {
		align-items: flex-start;
	}

	.ws-trust-icon {
		flex-basis: 38px;
		width: 38px;
		height: 38px;
	}

	.ws-trust-content strong {
		font-size: 13px;
	}

	.ws-trust-content span {
		font-size: 11px;
	}

	.ws-products-grid,
	.ws-single-product-recently-viewed .ws-products-grid,
	.ws-single-product-related .ws-products-grid {
		grid-template-columns: 1fr;
	}

	.ws-sticky-product-title {
		max-width: 150px;

		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.ws-sticky-product-button {
		min-height: 40px;
		padding: 8px 13px;
		font-size: 13px;
	}

}


/* =========================================================
   29. ACCESSIBILITY
   ========================================================= */

.ws-single-product button:focus-visible,
.ws-single-product a:focus-visible,
.ws-single-product input:focus-visible,
.ws-single-product select:focus-visible {
	outline: 2px solid #a92f32;
	outline-offset: 2px;
}


