/*
 * AJ Trading single-product presentation.
 * Scoped to .single-product so shop, cart, and account screens are unchanged.
 */

.single-product {
	--aj-product-ink: #25282d;
	--aj-product-muted: #74777d;
	--aj-product-line: #e4e4e1;
	--aj-product-soft: #fff2f6;
	--aj-product-warm: #e87c9b;
	--aj-product-warm-dark: #d66387;
	--aj-product-black: #080808;
}

.single-product .ast-container,
.single-product .site-content > .ast-container {
	max-width: 1280px;
}

.single-product .ast-woocommerce-container {
	padding-top: 28px;
}

.single-product #primary {
	margin-top: 32px !important;
}

.single-product #primary > .entry-header,
.single-product .ast-woocommerce-container > .entry-header,
.single-product .site-main > article > .entry-header,
.single-product .woocommerce-breadcrumb {
	display: none !important;
}

.single-product div.product {
	position: relative;
	display: grid !important;
	grid-template-columns: minmax(0, 1.05fr) minmax(380px, .95fr);
	grid-template-areas:
		"gallery summary"
		"assurance summary"
		"tabs tabs"
		"upsells upsells"
		"related related";
	column-gap: clamp(30px, 4vw, 58px);
	row-gap: 22px;
	align-items: start;
	margin-top: 0;
	color: var(--aj-product-ink);
}

.single-product div.product::before,
.single-product div.product::after {
	display: none !important;
}

.single-product div.product > .onsale {
	z-index: 8;
	top: 14px;
	left: 14px;
	right: auto;
}

.single-product div.product > #wpgs-gallery,
.single-product div.product > .woocommerce-product-gallery {
	grid-area: gallery;
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 0 !important;
}

.single-product div.product > .summary {
	grid-area: summary;
	display: flex;
	flex-direction: column;
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.single-product div.product > .aj-product-assurance {
	grid-area: assurance;
}

.single-product div.product > .woocommerce-tabs {
	grid-area: tabs;
}

.single-product div.product > .up-sells {
	grid-area: upsells;
}

.single-product div.product > .related {
	grid-area: related;
}

.single-product div.product > .woocommerce-tabs,
.single-product div.product > .up-sells,
.single-product div.product > .related {
	float: none !important;
	width: 100% !important;
	clear: both !important;
}

/* Product gallery */
.single-product #wpgs-gallery .wcgs-carousel,
.single-product .woocommerce-product-gallery__wrapper {
	overflow: hidden;
	border: 1px solid var(--aj-product-line);
	background: #fff;
}

.single-product #wpgs-gallery .wcgs-carousel {
	box-sizing: border-box;
	aspect-ratio: 1 / 1;
}

.single-product #wpgs-gallery .wcgs-carousel .spswiper-wrapper,
.single-product #wpgs-gallery .wcgs-carousel .spswiper-slide,
.single-product #wpgs-gallery .wcgs-carousel .wcgs-slider-image {
	height: 100% !important;
	min-height: 0 !important;
}

.single-product #wpgs-gallery .wcgs-carousel .wcgs-slider-image {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(18px, 3vw, 42px);
}

.single-product #wpgs-gallery .wcgs-carousel .wcgs-slider-image img,
.single-product .woocommerce-product-gallery__image img {
	width: 100% !important;
	height: 100% !important;
	max-height: 100% !important;
	object-fit: contain;
}

.single-product #wpgs-gallery .gallery-navigation-carousel-wrapper {
	margin-top: 14px !important;
}

.single-product #wpgs-gallery .gallery-navigation-carousel {
	padding: 0 !important;
}

.single-product #wpgs-gallery .wcgs-thumb {
	overflow: hidden;
	box-sizing: border-box;
	aspect-ratio: 1 / 1;
	border: 1px solid var(--aj-product-line) !important;
	border-radius: 0 !important;
	background: #fff;
	opacity: 1 !important;
}

.single-product #wpgs-gallery .wcgs-thumb img {
	width: 100% !important;
	height: 100% !important;
	padding: 4px;
	object-fit: cover;
	opacity: 1 !important;
}

.single-product #wpgs-gallery .wcgs-thumb.spswiper-slide-thumb-active,
.single-product #wpgs-gallery .wcgs-anchor-link.active .wcgs-thumb {
	border-color: var(--aj-product-warm-dark) !important;
	box-shadow: inset 0 0 0 1px var(--aj-product-warm-dark);
}

.single-product #wpgs-gallery .wcgs-thumb.spswiper-slide-thumb-active img,
.single-product #wpgs-gallery .wcgs-anchor-link.active .wcgs-thumb img {
	border-color: var(--aj-product-warm) !important;
}

.single-product #wpgs-gallery .wcgs-border-bottom {
	display: none !important;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
	margin-top: 14px;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs li {
	width: auto !important;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs img {
	box-sizing: border-box;
	aspect-ratio: 1 / 1;
	padding: 4px;
	border: 1px solid var(--aj-product-line);
	object-fit: cover;
}

/* Gallery assurance row */
.single-product .aj-product-assurance {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	padding: 4px 2px 0;
}

.single-product .aj-product-assurance__item {
	display: flex;
	min-width: 0;
	align-items: center;
	gap: 8px;
	color: var(--aj-product-muted);
	font-size: 10px;
	line-height: 1.25;
}

.single-product .aj-product-assurance__item strong,
.single-product .aj-product-assurance__item small {
	display: block;
}

.single-product .aj-product-assurance__item strong {
	margin-bottom: 2px;
	color: var(--aj-product-ink);
	font-size: 10px;
	font-weight: 600;
}

.single-product .aj-product-assurance__item small {
	font-size: inherit;
}

.single-product .aj-product-assurance__icon {
	display: inline-flex;
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	align-items: center;
	justify-content: center;
	color: var(--aj-product-warm-dark);
	border-radius: 50%;
	background: var(--aj-product-soft);
}

.single-product .aj-product-assurance__icon svg {
	width: 17px;
	height: 17px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.6;
}

/* Summary hierarchy */
.single-product .summary .aj-product-eyebrow {
	order: 1;
	margin: 0 0 5px;
	color: var(--aj-product-muted);
	font-size: 12px;
	line-height: 1.3;
}

.single-product .summary .aj-product-eyebrow a {
	color: inherit;
	text-decoration: none;
}

.single-product .summary .product_title {
	order: 2;
	margin: 0 0 8px !important;
	color: var(--aj-product-ink);
	font-family: "Gilda Display", Georgia, "Times New Roman", serif;
	font-size: clamp(27px, 2.35vw, 38px);
	font-weight: 400;
	line-height: 1.08;
	letter-spacing: -.02em;
}

.single-product .aj-product-rating-row {
	order: 3;
	display: flex;
	align-items: center;
	gap: 7px;
	margin: 0 0 5px;
	font-size: 11px;
}

.single-product .aj-star-rating {
	position: relative;
	display: inline-block;
	overflow: hidden;
	width: 72px;
	height: 14px;
	color: #d6d6d3;
	font-size: 14px;
	line-height: 1;
	letter-spacing: 1px;
	white-space: nowrap;
}

.single-product .aj-star-rating__base,
.single-product .aj-star-rating__fill {
	position: absolute;
	top: 0;
	left: 0;
}

.single-product .aj-star-rating__fill {
	overflow: hidden;
	color: #b7a88f;
}

.single-product .aj-review-link {
	color: var(--aj-product-muted);
	text-decoration: none;
}

.single-product .aj-product-sku {
	order: 4;
	margin: 0 0 13px;
	color: #9a9a96;
	font-size: 10px;
}

.single-product .aj-product-sku strong {
	color: var(--aj-product-muted);
	font-weight: 500;
}

.single-product .summary .price {
	order: 5;
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 0 0 14px !important;
	color: var(--aj-product-ink) !important;
	font-size: clamp(27px, 2.2vw, 35px) !important;
	font-weight: 700 !important;
	line-height: 1.1;
}

.single-product .summary .price del {
	order: 2;
	color: #959595;
	font-size: .55em;
	font-weight: 400;
	opacity: 1;
}

.single-product .summary .price ins {
	color: inherit;
	font-weight: inherit;
	text-decoration: none;
}

.single-product .aj-carton-units {
	order: 6;
	margin: 0 0 14px;
	color: var(--aj-product-ink);
	font-size: 12px;
}

/* Variations: pack dropdown plus custom circular color controls */
.single-product .summary form.cart {
	order: 7;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

.single-product .summary .variations {
	display: block;
	width: 100%;
	margin: 0 0 10px !important;
	border: 0 !important;
}

.single-product .summary .variations tbody,
.single-product .summary .variations tr,
.single-product .summary .variations th,
.single-product .summary .variations td {
	display: block;
	width: 100%;
	padding: 0 !important;
	border: 0 !important;
}

.single-product .summary .variations tr {
	margin: 0 0 13px;
}

.single-product .summary .variations th.label {
	margin: 0 0 6px;
}

.single-product .summary .variations th.label label {
	color: var(--aj-product-ink);
	font-size: 11px;
	font-weight: 600;
}

.single-product .summary .aj-color-row .woo-selected-variation-item-name {
	display: none !important;
}

.single-product .summary .variations td.value {
	position: relative;
	margin: 0;
}

.single-product .summary .variations select {
	box-sizing: border-box;
	width: 100%;
	height: 42px;
	margin: 0 !important;
	padding: 0 42px 0 14px !important;
	color: var(--aj-product-ink);
	font-size: 12px;
	line-height: 40px;
	border: 1px solid #d5d5d1;
	border-radius: 22px;
	background-color: #fff;
	box-shadow: none;
}

.single-product .summary .variations .aj-pack-row select,
.single-product .summary .variations tr.aj-pack-row select {
	display: block !important;
	visibility: visible !important;
	position: static !important;
	flex: 1 1 100% !important;
	width: 100% !important;
	max-width: none !important;
	height: 42px !important;
	opacity: 1 !important;
	appearance: none;
	-webkit-appearance: none;
	background-image:
		linear-gradient(45deg, transparent 50%, #777 50%),
		linear-gradient(135deg, #777 50%, transparent 50%);
	background-position:
		calc(100% - 18px) 17px,
		calc(100% - 13px) 17px;
	background-repeat: no-repeat;
	background-size: 5px 5px, 5px 5px;
}

.single-product .summary .variations tr.aj-pack-row td.value {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
}

.single-product .summary .aj-pack-row .variable-items-wrapper,
.single-product .summary .aj-pack-row .wvs-select-variable,
.single-product .summary .aj-color-row .variable-items-wrapper,
.single-product .summary .aj-color-row .wvs-select-variable,
.single-product .summary .aj-color-row > td.value > ul {
	display: none !important;
}

.single-product .summary .aj-color-row select {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	overflow: hidden;
	opacity: 0 !important;
}

.single-product .aj-color-swatches {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 9px;
	min-height: 28px;
}

.single-product .aj-color-swatch {
	position: relative;
	display: inline-block;
	box-sizing: border-box;
	width: 20px;
	height: 20px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(0, 0, 0, .16);
	border-radius: 50%;
	background: var(--aj-swatch-color, #ddd);
	box-shadow: none;
	cursor: pointer;
	transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}

.single-product .aj-color-swatch:hover,
.single-product .aj-color-swatch:focus-visible {
	transform: scale(1.12);
	outline: none;
}

.single-product .aj-color-swatch.is-selected {
	box-shadow:
		0 0 0 2px #fff,
		0 0 0 3px var(--aj-product-warm-dark);
}

.single-product .aj-color-swatch:disabled {
	opacity: .28;
	cursor: not-allowed;
}

.single-product .aj-color-swatch:disabled::after {
	position: absolute;
	top: 50%;
	left: 1px;
	right: 1px;
	height: 1px;
	content: "";
	background: #555;
	transform: rotate(-45deg);
}

.single-product .summary .reset_variations {
	display: inline-block;
	margin-top: 7px;
	color: var(--aj-product-muted);
	font-size: 10px;
	text-decoration: underline;
}

.single-product .summary .single_variation_wrap {
	margin-top: 4px;
}

.single-product .summary .single_variation {
	margin-bottom: 8px;
	font-size: 12px;
}

.single-product .summary .single_variation .price {
	margin-bottom: 8px !important;
	font-size: 19px !important;
}

.single-product .summary .woocommerce-variation-availability p {
	margin: 0 0 8px;
	font-size: 11px;
}

.single-product .summary .woocommerce-variation-add-to-cart {
	display: block !important;
}

.single-product .summary .quantity {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	overflow: hidden;
}

.single-product .summary .single_add_to_cart_button {
	display: flex !important;
	width: 100% !important;
	min-height: 42px;
	align-items: center;
	justify-content: center;
	float: none !important;
	margin: 0 !important;
	padding: 10px 20px !important;
	color: #fff !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	text-transform: none;
	border: 0 !important;
	border-radius: 22px !important;
	background: var(--aj-product-black) !important;
	box-shadow: none !important;
}

.single-product .summary .single_add_to_cart_button::before {
	width: 14px;
	height: 14px;
	margin-right: 7px;
	content: "";
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='19' cy='20' r='1'/%3E%3Cpath d='M3 4h2l2.4 10.4a2 2 0 0 0 2 1.6h7.8a2 2 0 0 0 2-1.6L21 7H6'/%3E%3C/svg%3E")
		center / contain no-repeat;
}

.single-product .summary .single_add_to_cart_button:hover,
.single-product .summary .single_add_to_cart_button:focus {
	background: #282828 !important;
}

.single-product .summary .single_add_to_cart_button.disabled,
.single-product .summary .single_add_to_cart_button:disabled {
	background: var(--aj-product-black) !important;
	opacity: .48;
}

/* Compact specification card */
.single-product .aj-product-details-card {
	order: 8;
	margin-top: 14px;
	padding: 18px 20px;
	border: 1px solid rgba(232, 124, 155, .35);
	border-radius: 18px;
	background: #fffafd;
}

.single-product .summary .single-product-category,
.single-product .summary .woocommerce-product-details__short-description,
.single-product .summary .product_meta {
	display: none !important;
}

.single-product .aj-product-details-card__row {
	display: grid;
	grid-template-columns: minmax(88px, 28%) minmax(0, 1fr);
	gap: 14px;
	padding: 7px 0;
	color: var(--aj-product-muted);
	font-size: 12.5px;
	line-height: 1.5;
}

.single-product .aj-product-details-card__label {
	position: relative;
	padding-left: 11px;
	color: #a4516b;
	font-size: 12px;
	font-weight: 600;
}

.single-product .aj-product-details-card__label::before {
	position: absolute;
	top: .5em;
	left: 0;
	width: 4px;
	height: 4px;
	content: "";
	border-radius: 50%;
	background: var(--aj-product-warm);
}

.single-product .aj-product-details-card__value {
	color: var(--aj-product-ink);
	font-size: 12.5px;
}

/* Description/specification tabs */
.single-product div.product .woocommerce-tabs {
	margin-top: 48px;
	padding-top: 0;
	border-top: 0;
}

.single-product div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 18px !important;
	padding: 0 !important;
	border: 0 !important;
}

.single-product div.product .woocommerce-tabs ul.tabs::before,
.single-product div.product .woocommerce-tabs ul.tabs::after {
	display: none !important;
}

.single-product div.product .woocommerce-tabs ul.tabs li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 18px !important;
	background: #f0efec !important;
	box-shadow: none !important;
}

.single-product div.product .woocommerce-tabs ul.tabs li::before,
.single-product div.product .woocommerce-tabs ul.tabs li::after {
	display: none !important;
}

.single-product div.product .woocommerce-tabs ul.tabs li a {
	padding: 8px 16px !important;
	color: #686866 !important;
	font-size: 11px;
	font-weight: 500 !important;
	line-height: 1.2;
}

.single-product div.product .woocommerce-tabs ul.tabs li.active {
	background: var(--aj-product-warm) !important;
}

.single-product div.product .woocommerce-tabs ul.tabs li.active a {
	color: #fff !important;
}

.single-product div.product .woocommerce-tabs .panel {
	margin: 0 !important;
	padding: clamp(22px, 3vw, 38px) !important;
	color: #54565a;
	font-size: 14px;
	line-height: 1.7;
	border: 1px solid #ecebe8;
	background: #fff;
}

.single-product div.product .woocommerce-tabs .panel > h2:first-child {
	display: none;
}

.single-product div.product .woocommerce-tabs .panel h2,
.single-product div.product .woocommerce-tabs .panel h3 {
	color: var(--aj-product-ink);
	font-family: "Gilda Display", Georgia, "Times New Roman", serif;
	font-weight: 400;
}

.single-product div.product .woocommerce-tabs .panel table {
	border-color: var(--aj-product-line);
}

/* Related products */
.single-product div.product .related {
	margin-top: 24px;
}

.single-product div.product .related > h2,
.single-product div.product .up-sells > h2 {
	margin-bottom: 22px;
	color: var(--aj-product-ink);
	font-family: "Gilda Display", Georgia, "Times New Roman", serif;
	font-size: 28px;
	font-weight: 400;
}

.single-product div.product .related ul.products,
.single-product div.product .up-sells ul.products {
	column-gap: 18px;
}

.single-product div.product .related li.product,
.single-product div.product .up-sells li.product {
	text-align: left;
}

.single-product div.product .related li.product img,
.single-product div.product .up-sells li.product img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

@media (max-width: 980px) {
	.single-product div.product {
		grid-template-columns: minmax(0, 1fr) minmax(340px, .9fr);
		column-gap: 26px;
	}

	.single-product .aj-product-assurance {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 780px) {
	body.single-product {
		overflow-x: hidden;
	}

	.single-product .ast-woocommerce-container {
		padding-top: 18px;
	}

	.single-product div.product {
		width: calc(100vw - 40px) !important;
		max-width: calc(100vw - 40px) !important;
		min-width: 0 !important;
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"gallery"
			"assurance"
			"summary"
			"tabs"
			"upsells"
			"related";
		row-gap: 18px;
	}

	.single-product div.product > #wpgs-gallery,
	.single-product div.product > .woocommerce-product-gallery,
	.single-product div.product > .summary,
	.single-product div.product > .aj-product-assurance,
	.single-product div.product > .woocommerce-tabs,
	.single-product div.product > .up-sells,
	.single-product div.product > .related {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	.single-product #wpgs-gallery .wcgs-carousel,
	.single-product #wpgs-gallery .wcgs-slider-image {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	.single-product div.product > .summary {
		padding-top: 12px !important;
	}

	.single-product .summary .product_title {
		width: 100%;
		max-width: 100%;
		font-size: clamp(27px, 8vw, 34px);
		overflow-wrap: anywhere;
		white-space: normal;
	}

	.single-product div.product .woocommerce-tabs {
		margin-top: 26px;
	}

	.single-product div.product .woocommerce-tabs .panel {
		overflow-x: auto;
	}
}

@media (max-width: 480px) {
	.single-product .ast-woocommerce-container {
		padding-right: 16px;
		padding-left: 16px;
	}

	.single-product .aj-product-assurance {
		gap: 12px 8px;
	}

	.single-product .aj-product-assurance__item,
	.single-product .aj-product-assurance__item strong {
		font-size: 9px;
	}

	.single-product .aj-product-assurance__icon {
		flex-basis: 25px;
		width: 25px;
		height: 25px;
	}

	.single-product .aj-product-details-card__row {
		grid-template-columns: 84px minmax(0, 1fr);
	}

	.single-product div.product .woocommerce-tabs .panel {
		padding: 20px 16px !important;
		font-size: 13px;
	}
}
