/* =======================================================
   Hidecraft Core / Cuirden
   v1.8.2 — Accessible Size Buttons + Color Swatches
   Full replacement product stylesheet
   ======================================================= */

body.single-product {
	background: var(--hc-ivory);
	color: var(--hc-ink);
}

.hc-product-page {
	padding: 0 1.5rem var(--hc-space-3xl);
}

.hc-product-shell {
	padding-top: clamp(.9rem, 1.8vw, 1.6rem);
}

/* Accessibility: visible keyboard focus */
.single-product a:focus-visible,
.single-product button:focus-visible,
.single-product select:focus-visible,
.single-product input:focus-visible {
	outline: 2px solid var(--hc-ink) !important;
	outline-offset: 3px !important;
}

/* =======================================================
   Breadcrumb
   ======================================================= */

.single-product .woocommerce-breadcrumb {
	margin: 0 0 .85rem !important;
	color: var(--hc-taupe);
	font-size: .64rem;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.single-product .woocommerce-breadcrumb a {
	color: inherit;
	text-decoration: none;
}

/* =======================================================
   Top Product Area
   ======================================================= */

.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(390px, .95fr);
	gap: clamp(2.5rem, 4.5vw, 4.75rem);
	align-items: start;
	margin: 0 !important;
}

.single-product div.product .woocommerce-product-gallery {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	min-width: 0;
}

.single-product div.product .summary {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	position: sticky;
	top: 118px;
	padding-top: 0;
	min-width: 0;
}

/* =======================================================
   Gallery
   ======================================================= */

.single-product .woocommerce-product-gallery__wrapper {
	margin: 0 !important;
}

.single-product .woocommerce-product-gallery__image {
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-height: 0;
	max-height: 620px;
	background: #eeeae2;
	overflow: hidden;
}

.single-product .woocommerce-product-gallery__image a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
}

.single-product .woocommerce-product-gallery__image img {
	display: block;
	width: 100% !important;
	height: auto !important;
	max-height: 620px !important;
	object-fit: contain;
	margin: 0 auto !important;
	background: #eeeae2;
}

.single-product .flex-control-thumbs {
	display: grid !important;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: .55rem;
	margin: .7rem 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.single-product .flex-control-thumbs li {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	list-style: none !important;
}

.single-product .flex-control-thumbs img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border: 1px solid transparent;
	opacity: .58;
	cursor: pointer;
}

.single-product .flex-control-thumbs img.flex-active,
.single-product .flex-control-thumbs img:hover {
	opacity: 1;
	border-color: var(--hc-ink);
}

.single-product .woocommerce-product-gallery__trigger {
	top: .7rem !important;
	right: .7rem !important;
	width: 42px !important;
	height: 42px !important;
	border-radius: 0 !important;
	background: rgba(252,251,248,.96) !important;
}

/* =======================================================
   Product Summary
   ======================================================= */

.hc-product-kicker {
	margin: 0 0 .65rem;
	font-size: .63rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.single-product .product_title {
	max-width: 540px;
	margin: 0 0 .75rem !important;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.95rem, 2.5vw, 2.9rem);
	font-weight: 400;
	line-height: 1.03;
	letter-spacing: -.015em;
}

.single-product .summary .price {
	margin: 0 0 1.15rem !important;
	color: var(--hc-ink) !important;
	font-size: .93rem !important;
	font-weight: 400 !important;
}

.single-product .summary .price del {
	opacity: .45;
	margin-right: .4rem;
}

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

.single-product .woocommerce-product-details__short-description {
	max-width: 540px;
	margin: 0 0 1.35rem;
	color: var(--hc-charcoal);
	font-size: .88rem;
	line-height: 1.66;
}

/* =======================================================
   WooCommerce Variations
   ======================================================= */

.single-product form.cart {
	margin: 0 0 1.2rem !important;
}

.single-product table.variations {
	width: 100%;
	margin: 0 0 .9rem !important;
	border: 0 !important;
}

.single-product table.variations tr {
	display: block;
	padding: .9rem 0;
	border-top: 1px solid var(--hc-line);
}

.single-product table.variations tr:last-child {
	border-bottom: 1px solid var(--hc-line);
}

.single-product table.variations th,
.single-product table.variations td {
	display: block;
	width: 100% !important;
	padding: 0 !important;
	border: 0 !important;
	text-align: left;
}

.single-product table.variations th {
	margin-bottom: .55rem;
}

.single-product table.variations label {
	font-size: .65rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
}

/* Native fallback before JS enhancement */
.single-product table.variations select {
	width: 100%;
	min-height: 44px;
	padding: .65rem 2.1rem .65rem .8rem;
	border: 1px solid var(--hc-line);
	border-radius: 0;
	background: transparent;
	color: var(--hc-ink);
	font-size: .8rem;
}

/* Native selects remain in DOM for Woo variation logic */
.single-product table.variations select.hc-native-variation-select {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* =======================================================
   Accessible Size Buttons + Color Swatches
   ======================================================= */

.hc-option-group {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	width: 100%;
}

.hc-option {
	position: relative;
	min-height: 44px;
	box-sizing: border-box;
	border: 1px solid #cfc9bf;
	border-radius: 0;
	background: transparent;
	color: #171717;
	font: inherit;
	cursor: pointer;
	transition:
		border-color .15s ease,
		background-color .15s ease,
		color .15s ease,
		opacity .15s ease;
}

.hc-option:hover:not(:disabled) {
	border-color: #171717;
}

.hc-option.is-selected {
	border-color: #171717;
	background: #171717;
	color: #fcfbf8;
}

.hc-option:disabled,
.hc-option.is-unavailable {
	cursor: not-allowed;
	opacity: .38;
}

/* Size */
.hc-size-option {
	min-width: 48px;
	padding: .65rem .85rem;
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-align: center;
}

/* Color */
.hc-color-option {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	padding: .55rem .72rem;
}

.hc-color-swatch {
	position: relative;
	display: inline-block;
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	border: 1px solid rgba(23, 23, 23, .22);
	background: var(--hc-swatch-color, #d9d4cb);
}

.hc-color-option.is-selected .hc-color-swatch {
	border-color: rgba(252, 251, 248, .7);
}

.hc-color-name {
	font-size: .7rem;
	font-weight: 500;
	letter-spacing: .03em;
}

/* Visual strike for unavailable size/color without relying on color alone */
.hc-option.is-unavailable::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 8%;
	width: 84%;
	height: 1px;
	background: currentColor;
	transform: rotate(-18deg);
	opacity: .75;
}

.single-product .reset_variations {
	display: inline-block;
	margin-top: .65rem;
	color: var(--hc-taupe);
	font-size: .62rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: underline;
	text-underline-offset: .18em;
}

/* =======================================================
   Quantity + Add to Bag
   ======================================================= */

.single-product .woocommerce-variation-add-to-cart,
.single-product form.cart:not(.variations_form) {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: .65rem;
	align-items: stretch;
	width: 100%;
}

.single-product .quantity {
	float: none !important;
	margin: 0 !important;
}

.single-product .quantity .qty {
	width: 100%;
	min-height: 50px;
	box-sizing: border-box;
	border: 1px solid var(--hc-line);
	text-align: center;
}

.single-product .single_add_to_cart_button {
	width: 100%;
	min-height: 50px;
	padding: .75rem 1.3rem !important;
	border: 1px solid var(--hc-ink) !important;
	border-radius: 0 !important;
	background: var(--hc-ink) !important;
	color: var(--hc-soft-white) !important;
	font-size: .68rem !important;
	font-weight: 600 !important;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.single-product .single_add_to_cart_button:hover {
	background: transparent !important;
	color: var(--hc-ink) !important;
}

.single-product .single_add_to_cart_button.disabled {
	opacity: .48 !important;
	cursor: not-allowed;
}

/* =======================================================
   Service Notes
   ======================================================= */

.hc-product-services {
	display: grid;
	margin: .95rem 0 0;
	border-top: 1px solid var(--hc-line);
}

.hc-product-service {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem;
	padding: .72rem 0;
	border-bottom: 1px solid var(--hc-line);
	color: var(--hc-charcoal);
	font-size: .7rem;
	line-height: 1.35;
}

.hc-product-service strong {
	color: var(--hc-ink);
	font-weight: 500;
}

.hc-product-service span {
	text-align: right;
}

.hc-product-service a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: .18em;
}

.single-product .product_meta {
	display: none !important;
}

/* =======================================================
   Desktop / Tablet Product Tabs
   ======================================================= */

.single-product .woocommerce-tabs {
	margin-top: clamp(3.25rem, 5vw, 5rem);
	padding-top: 0;
	border-top: 0;
}

.single-product .woocommerce-tabs ul.tabs {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: .25rem;
	margin: 0 0 2.15rem !important;
	padding: .55rem !important;
	border: 1px solid #d9d4cb !important;
	background: #f2efe8 !important;
	list-style: none !important;
}

.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after {
	display: none !important;
	content: none !important;
	box-shadow: none !important;
	border: 0 !important;
}

.single-product .woocommerce-tabs ul.tabs li {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	list-style: none !important;
	box-shadow: none !important;
}

.single-product .woocommerce-tabs ul.tabs li::marker {
	content: "";
	font-size: 0;
}

.single-product .woocommerce-tabs ul.tabs li a {
	display: inline-flex !important;
	align-items: center;
	gap: .5rem;
	min-height: 44px;
	padding: .72rem .9rem .72rem 2.15rem !important;
	box-sizing: border-box;
	border: 1px solid transparent !important;
	color: #4a4a46 !important;
	background-color: transparent !important;
	background-repeat: no-repeat !important;
	background-position: .85rem center !important;
	background-size: 15px 15px !important;
	font-size: .65rem !important;
	font-weight: 600 !important;
	line-height: 1.15 !important;
	letter-spacing: .07em;
	text-transform: uppercase;
	text-decoration: none !important;
	white-space: nowrap;
}

.single-product .woocommerce-tabs ul.tabs li.description_tab a {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A4A46' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h8l4 4v14H6z'/%3E%3Cpath d='M14 3v5h5'/%3E%3Cpath d='M9 13h6M9 17h6'/%3E%3C/svg%3E") !important;
}

.single-product .woocommerce-tabs ul.tabs li.additional_information_tab a {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A4A46' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 7h10M18 7h2M4 17h2M10 17h10M4 12h4M12 12h8'/%3E%3Ccircle cx='16' cy='7' r='2'/%3E%3Ccircle cx='8' cy='17' r='2'/%3E%3Ccircle cx='10' cy='12' r='2'/%3E%3C/svg%3E") !important;
}

.single-product .woocommerce-tabs ul.tabs li.returns_refunds_tab a {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A4A46' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 7 5 11l4 4'/%3E%3Cpath d='M5 11h8a6 6 0 1 1 0 12' transform='translate(0 -4)'/%3E%3C/svg%3E") !important;
}

.single-product .woocommerce-tabs ul.tabs li.customize_piece_tab a {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A4A46' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 20 4.2-1 10.6-10.6a2 2 0 0 0-2.8-2.8L5.4 16.2z'/%3E%3Cpath d='m14.8 6.8 2.4 2.4'/%3E%3C/svg%3E") !important;
}

.single-product .woocommerce-tabs ul.tabs li.reviews_tab a {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A4A46' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='m12 3 2.8 5.7 6.2.9-4.5 4.4 1.1 6.2L12 17.3 6.4 20.2 7.5 14 3 9.6l6.2-.9z'/%3E%3C/svg%3E") !important;
}

.single-product .woocommerce-tabs ul.tabs li a:hover {
	color: #171717 !important;
	border-color: #cec7bb !important;
	background-color: #fcfbf8 !important;
}

.single-product .woocommerce-tabs ul.tabs li.active a {
	color: #fcfbf8 !important;
	border-color: #171717 !important;
	background-color: #171717 !important;
}

.single-product .woocommerce-tabs ul.tabs li.description_tab.active a {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FCFBF8' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h8l4 4v14H6z'/%3E%3Cpath d='M14 3v5h5'/%3E%3Cpath d='M9 13h6M9 17h6'/%3E%3C/svg%3E") !important;
}

.single-product .woocommerce-tabs ul.tabs li.additional_information_tab.active a {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FCFBF8' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 7h10M18 7h2M4 17h2M10 17h10M4 12h4M12 12h8'/%3E%3Ccircle cx='16' cy='7' r='2'/%3E%3Ccircle cx='8' cy='17' r='2'/%3E%3Ccircle cx='10' cy='12' r='2'/%3E%3C/svg%3E") !important;
}

.single-product .woocommerce-tabs ul.tabs li.returns_refunds_tab.active a {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FCFBF8' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 7 5 11l4 4'/%3E%3Cpath d='M5 11h8a6 6 0 1 1 0 12' transform='translate(0 -4)'/%3E%3C/svg%3E") !important;
}

.single-product .woocommerce-tabs ul.tabs li.customize_piece_tab.active a {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FCFBF8' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 20 4.2-1 10.6-10.6a2 2 0 0 0-2.8-2.8L5.4 16.2z'/%3E%3Cpath d='m14.8 6.8 2.4 2.4'/%3E%3C/svg%3E") !important;
}

.single-product .woocommerce-tabs ul.tabs li.reviews_tab.active a {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FCFBF8' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='m12 3 2.8 5.7 6.2.9-4.5 4.4 1.1 6.2L12 17.3 6.4 20.2 7.5 14 3 9.6l6.2-.9z'/%3E%3C/svg%3E") !important;
}

/* =======================================================
   Product Tab Content
   ======================================================= */

.single-product .woocommerce-Tabs-panel {
	max-width: 820px;
	margin: 0;
	color: var(--hc-charcoal);
	font-size: .91rem;
	line-height: 1.72;
}

.single-product .woocommerce-Tabs-panel > h2:first-child {
	margin-top: 0 !important;
}

.single-product .woocommerce-Tabs-panel h2 {
	margin: 1.8rem 0 .7rem !important;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.35rem, 1.75vw, 1.8rem) !important;
	font-weight: 400;
	line-height: 1.15 !important;
}

.single-product .woocommerce-Tabs-panel h3 {
	margin: 1.5rem 0 .6rem !important;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.12rem, 1.4vw, 1.4rem) !important;
	font-weight: 400;
	line-height: 1.2 !important;
}

.single-product .woocommerce-Tabs-panel p {
	max-width: 760px;
	margin: 0 0 .9rem;
	line-height: 1.72;
}

.hc-tab-cta {
	display: inline-block;
	min-height: 44px;
	box-sizing: border-box;
	padding: .75rem 0 .45rem;
	border-bottom: 1px solid currentColor;
	color: var(--hc-ink);
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
}

.hc-mobile-product-accordion {
	display: none;
}

/*
 * Mobile accordion controls are created in the DOM on all viewports
 * so they are ready when the breakpoint changes, but they must never
 * appear in the desktop/tab layout.
 */
.hc-mobile-accordion-item {
	display: none;
}

/* =======================================================
   Related Products / Upsells
   ======================================================= */

.single-product .related,
.single-product .upsells {
	margin-top: clamp(3.25rem, 5vw, 5rem);
	padding-top: 1.6rem;
	border-top: 1px solid var(--hc-line);
}

.single-product .related > h2,
.single-product .upsells > h2 {
	margin: 0 0 1.4rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.8rem, 2.5vw, 2.5rem);
	font-weight: 400;
}

.single-product .related ul.products,
.single-product .upsells ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.1rem;
	margin: 0 !important;
	padding: 0 !important;
}

.single-product .related ul.products li.product,
.single-product .upsells ul.products li.product {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
}

/* =======================================================
   Mobile Sticky Add to Bag
   ======================================================= */

.hc-mobile-buybar {
	display: none;
}

/* =======================================================
   Laptop
   ======================================================= */

@media (max-width: 1500px) and (min-width: 1025px) {

	.hc-product-shell {
		padding-top: .8rem !important;
	}

	.single-product .woocommerce-breadcrumb {
		margin-bottom: .75rem !important;
	}

	.single-product div.product {
		grid-template-columns: minmax(0, 1fr) minmax(390px, .9fr);
		gap: 2.5rem;
	}

	.single-product .woocommerce-product-gallery__image,
	.single-product .woocommerce-product-gallery__image img {
		max-height: 540px !important;
	}

	.single-product .product_title {
		font-size: clamp(1.8rem, 2.25vw, 2.55rem);
		line-height: 1.02;
	}

	.single-product .woocommerce-product-details__short-description {
		margin-bottom: 1.1rem;
	}

	.single-product table.variations tr {
		padding: .72rem 0;
	}

	.single-product .quantity .qty,
	.single-product .single_add_to_cart_button {
		min-height: 48px;
	}
}

@media (max-width: 1280px) and (min-width: 1025px) {

	.single-product div.product {
		grid-template-columns: minmax(0, .98fr) minmax(370px, .92fr);
		gap: 2rem;
	}

	.single-product .woocommerce-product-gallery__image,
	.single-product .woocommerce-product-gallery__image img {
		max-height: 500px !important;
	}

	.single-product .product_title {
		font-size: clamp(1.7rem, 2.15vw, 2.3rem);
	}
}

/* =======================================================
   Tablet
   ======================================================= */

@media (max-width: 1024px) {

	.single-product div.product {
		grid-template-columns: minmax(0, 1fr) minmax(330px, .95fr);
		gap: 2rem;
	}

	.single-product div.product .summary {
		top: 108px;
	}

	.single-product .woocommerce-product-gallery__image,
	.single-product .woocommerce-product-gallery__image img {
		max-height: 560px !important;
	}
}

/* =======================================================
   Mobile — Dedicated Product Experience
   ======================================================= */

@media (max-width: 782px) {

	body.single-product.hc-mobile-buybar-active {
		padding-bottom: 82px;
	}

	.hc-product-page {
		padding-left: .9rem;
		padding-right: .9rem;
		padding-bottom: 3.5rem;
	}

	.hc-product-shell {
		padding-top: .7rem;
	}

	.single-product .woocommerce-breadcrumb {
		margin-bottom: .7rem !important;
		font-size: .58rem;
		line-height: 1.55;
	}

	.single-product div.product {
		display: block;
	}

	.single-product div.product .summary {
		position: static;
		margin-top: 1.15rem !important;
		padding-top: 0;
	}

	.single-product .woocommerce-product-gallery__image,
	.single-product .woocommerce-product-gallery__image img {
		max-height: 52vh !important;
	}

	.single-product .flex-control-thumbs {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: .4rem;
		margin-top: .5rem !important;
	}

	.single-product .woocommerce-product-gallery__trigger {
		width: 44px !important;
		height: 44px !important;
	}

	.hc-product-kicker {
		margin-bottom: .5rem;
		font-size: .59rem;
	}

	.single-product .product_title {
		margin-bottom: .7rem !important;
		font-size: clamp(1.9rem, 9vw, 2.65rem);
		line-height: 1.02;
	}

	.single-product .summary .price {
		margin-bottom: .9rem !important;
		font-size: .95rem !important;
	}

	.single-product .woocommerce-product-details__short-description {
		margin-bottom: 1.05rem;
		font-size: .86rem;
		line-height: 1.62;
	}

	/* Option groups */
	.single-product table.variations tr {
		padding: .78rem 0;
	}

	.single-product table.variations label {
		font-size: .62rem;
	}

	.hc-option-group {
		gap: .45rem;
	}

	.hc-size-option {
		min-width: 46px;
		min-height: 46px;
		padding: .62rem .75rem;
	}

	.hc-color-option {
		min-height: 46px;
		padding: .55rem .65rem;
	}

	.hc-color-swatch {
		width: 19px;
		height: 19px;
	}

	.hc-color-name {
		font-size: .68rem;
	}

	.single-product .woocommerce-variation-add-to-cart,
	.single-product form.cart:not(.variations_form) {
		grid-template-columns: 72px minmax(0, 1fr);
		gap: .5rem;
	}

	.single-product .quantity .qty,
	.single-product .single_add_to_cart_button {
		min-height: 50px;
	}

	/* Service notes */
	.hc-product-services {
		margin-top: .8rem;
	}

	.hc-product-service {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: .75rem;
		padding: .7rem 0;
		font-size: .68rem;
	}

	.hc-product-service span {
		text-align: right;
	}

	/* Mobile accordion */
	.single-product .woocommerce-tabs.hc-accordion-ready > ul.tabs {
		display: none !important;
	}

	.single-product .woocommerce-tabs.hc-accordion-ready {
		margin-top: 2.5rem;
		border-top: 1px solid #d9d4cb;
	}

	.hc-mobile-product-accordion {
		display: block;
	}

	.hc-mobile-accordion-item {
		display: block;
		border-bottom: 1px solid #d9d4cb;
	}

	.hc-mobile-accordion-trigger {
		display: grid;
		grid-template-columns: 22px minmax(0, 1fr) 18px;
		align-items: center;
		gap: .7rem;
		width: 100%;
		min-height: 58px;
		padding: .9rem 0;
		border: 0;
		background: transparent;
		color: #171717;
		text-align: left;
		font: inherit;
		cursor: pointer;
	}

	.hc-mobile-accordion-trigger::before {
		content: "";
		width: 18px;
		height: 18px;
		background-repeat: no-repeat;
		background-position: center;
		background-size: contain;
	}

	.hc-mobile-accordion-trigger[data-tab="description"]::before {
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h8l4 4v14H6z'/%3E%3Cpath d='M14 3v5h5'/%3E%3Cpath d='M9 13h6M9 17h6'/%3E%3C/svg%3E");
	}

	.hc-mobile-accordion-trigger[data-tab="additional_information"]::before {
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round'%3E%3Cpath d='M4 7h10M18 7h2M4 17h2M10 17h10M4 12h4M12 12h8'/%3E%3Ccircle cx='16' cy='7' r='2'/%3E%3Ccircle cx='8' cy='17' r='2'/%3E%3Ccircle cx='10' cy='12' r='2'/%3E%3C/svg%3E");
	}

	.hc-mobile-accordion-trigger[data-tab="returns_refunds"]::before {
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 7 5 11l4 4'/%3E%3Cpath d='M5 11h8a6 6 0 1 1 0 12' transform='translate(0 -4)'/%3E%3C/svg%3E");
	}

	.hc-mobile-accordion-trigger[data-tab="customize_piece"]::before {
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 20 4.2-1 10.6-10.6a2 2 0 0 0-2.8-2.8L5.4 16.2z'/%3E%3Cpath d='m14.8 6.8 2.4 2.4'/%3E%3C/svg%3E");
	}

	.hc-mobile-accordion-trigger[data-tab="reviews"]::before {
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171717' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='m12 3 2.8 5.7 6.2.9-4.5 4.4 1.1 6.2L12 17.3 6.4 20.2 7.5 14 3 9.6l6.2-.9z'/%3E%3C/svg%3E");
	}

	.hc-mobile-accordion-label {
		font-size: .67rem;
		font-weight: 600;
		line-height: 1.3;
		letter-spacing: .08em;
		text-transform: uppercase;
	}

	.hc-mobile-accordion-indicator {
		position: relative;
		width: 16px;
		height: 16px;
	}

	.hc-mobile-accordion-indicator::before,
	.hc-mobile-accordion-indicator::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		width: 12px;
		height: 1px;
		background: #171717;
		transform: translate(-50%, -50%);
	}

	.hc-mobile-accordion-indicator::after {
		transform: translate(-50%, -50%) rotate(90deg);
		transition: transform .18s ease;
	}

	.hc-mobile-accordion-trigger[aria-expanded="true"]
	.hc-mobile-accordion-indicator::after {
		transform: translate(-50%, -50%) rotate(0deg);
	}

	.hc-mobile-accordion-trigger[aria-expanded="true"] {
		background: rgba(217, 212, 203, .22);
	}

	.hc-mobile-accordion-panel {
		padding: 0 0 1.25rem 2.7rem;
	}

	.hc-mobile-accordion-panel[hidden] {
		display: none !important;
	}

	.single-product .woocommerce-tabs.hc-accordion-ready
	.woocommerce-Tabs-panel {
		display: none !important;
	}

	.single-product .woocommerce-tabs.hc-accordion-ready
	.woocommerce-Tabs-panel.hc-mobile-panel-open {
		display: block !important;
		max-width: none;
		margin: 0;
		padding: 0;
		font-size: .86rem;
		line-height: 1.68;
	}

	.single-product .woocommerce-tabs.hc-accordion-ready
	.woocommerce-Tabs-panel h2 {
		margin: 0 0 .85rem !important;
		font-size: 1.45rem !important;
	}

	.single-product .woocommerce-tabs.hc-accordion-ready
	.woocommerce-Tabs-panel h3 {
		margin: 1.35rem 0 .55rem !important;
		font-size: 1.2rem !important;
		line-height: 1.2 !important;
	}

	.single-product .woocommerce-tabs.hc-accordion-ready
	.woocommerce-Tabs-panel p {
		margin-bottom: .85rem;
		font-size: .86rem;
		line-height: 1.68;
	}

	/* Sticky mobile buy bar */
	.hc-mobile-buybar {
		position: fixed;
		z-index: 1000;
		left: 0;
		right: 0;
		bottom: 0;
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(138px, 42%);
		align-items: center;
		gap: .75rem;
		padding: .65rem .9rem calc(.65rem + env(safe-area-inset-bottom));
		border-top: 1px solid #d9d4cb;
		background: rgba(252, 251, 248, .97);
		box-shadow: 0 -8px 24px rgba(23, 23, 23, .06);
		transform: translateY(110%);
		visibility: hidden;
		transition: transform .2s ease, visibility .2s ease;
	}

	.hc-mobile-buybar.is-visible {
		transform: translateY(0);
		visibility: visible;
	}

	.hc-mobile-buybar-copy {
		min-width: 0;
	}

	.hc-mobile-buybar-title {
		display: block;
		overflow: hidden;
		margin-bottom: .15rem;
		color: #171717;
		font-family: var(--wp--preset--font-family--display);
		font-size: .98rem;
		line-height: 1.08;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.hc-mobile-buybar-price {
		display: block;
		color: #4a4a46;
		font-size: .74rem;
		line-height: 1.25;
	}

	.hc-mobile-buybar-button {
		min-height: 48px;
		padding: .7rem .85rem;
		border: 1px solid #171717;
		border-radius: 0;
		background: #171717;
		color: #fcfbf8;
		font-size: .65rem;
		font-weight: 600;
		letter-spacing: .09em;
		text-transform: uppercase;
		cursor: pointer;
	}

	.hc-mobile-buybar-button:hover {
		background: #fcfbf8;
		color: #171717;
	}

	.hc-mobile-buybar-button[aria-disabled="true"] {
		opacity: .52;
	}

	.single-product .related ul.products,
	.single-product .upsells ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: .85rem;
	}
}

@media (max-width: 480px) {

	.single-product .woocommerce-variation-add-to-cart,
	.single-product form.cart:not(.variations_form) {
		grid-template-columns: 68px minmax(0, 1fr);
	}

	.hc-mobile-buybar {
		grid-template-columns: minmax(0, 1fr) 142px;
	}

	.hc-mobile-buybar-title {
		font-size: .9rem;
	}
}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {

	.single-product *,
	.single-product *::before,
	.single-product *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}
