/**
 * Peachflower single-product presentation.
 *
 * This layer changes presentation only. WooCommerce remains authoritative for
 * variation selection, quantity, stock, prices, product links and cart actions.
 */

.single-product {
	--pf-shop-paper: #fffdfd;
	--pf-shop-surface: #ffffff;
	--pf-shop-soft: #fff2f5;
	--pf-shop-ink: #342f31;
	--pf-shop-muted: #756d70;
	--pf-shop-accent: #ef8198;
	--pf-shop-accent-strong: #d85e79;
	--pf-shop-rule: rgba(216, 94, 121, 0.2);
	--pf-shop-shadow: 0 16px 40px rgba(83, 52, 61, 0.12);
}

.single-product .entry-summary .variations {
	margin-bottom: 1.25rem;
}

.single-product .entry-summary .variations label {
	color: var(--pf-shop-ink);
	font-family: var(--pfh-font-body, "Noto Sans JP", "Yu Gothic", sans-serif);
	font-weight: 600;
}

.single-product .entry-summary .variations select {
	min-height: 3.25rem;
	border: 1px solid var(--pf-shop-rule);
	border-radius: 0.625rem;
	background-color: var(--pf-shop-surface);
	color: var(--pf-shop-ink);
	box-shadow: 0 7px 20px rgba(83, 52, 61, 0.05);
}

.single-product .entry-summary .variations select:hover {
	border-color: rgba(216, 94, 121, 0.42);
}

.single-product .entry-summary .variations select:focus-visible {
	border-color: var(--pf-shop-accent-strong);
	outline: 3px solid rgba(216, 94, 121, 0.2);
	outline-offset: 2px;
}

.single-product form.cart .quantity {
	min-height: 3.5rem;
	overflow: hidden;
	border: 1px solid var(--pf-shop-rule) !important;
	border-radius: 0.625rem;
	background: var(--pf-shop-surface);
	box-shadow: 0 7px 20px rgba(83, 52, 61, 0.05);
}

.single-product form.cart .quantity .qty {
	border: 0 !important;
	outline: 0;
	color: var(--pf-shop-ink);
	font-weight: 600;
	box-shadow: none;
}

.single-product form.cart .quantity .ct-increase,
.single-product form.cart .quantity .ct-decrease {
	color: var(--pf-shop-accent-strong);
}

.single-product form.cart .quantity:hover {
	border-color: rgba(216, 94, 121, 0.42) !important;
}

.single-product form.cart .quantity:focus-within {
	border-color: var(--pf-shop-accent-strong) !important;
	outline: 3px solid rgba(216, 94, 121, 0.2);
	outline-offset: 2px;
}

.single-product .entry-summary .single_add_to_cart_button.button,
.single-product .entry-summary .single_add_to_cart_button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.625rem;
	min-height: 3.5rem;
	border: 1px solid transparent !important;
	border-radius: 0.625rem !important;
	background: var(--pf-shop-accent) !important;
	color: var(--pf-shop-ink) !important;
	font-family: var(--pfh-font-body, "Noto Sans JP", "Yu Gothic", sans-serif);
	font-size: 0.9375rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.02em;
	box-shadow: 0 10px 24px rgba(216, 94, 121, 0.22);
	transition:
		transform 180ms ease,
		background-color 180ms ease,
		box-shadow 180ms ease;
}

.single-product .entry-summary .single_add_to_cart_button::before {
	display: inline-block !important;
	position: static !important;
	z-index: 0 !important;
	opacity: 1 !important;
	filter: none !important;
	transform: none !important;
	width: 1.35rem;
	height: 1.35rem;
	flex: 0 0 1.35rem;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23342f31' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3Cpath d='M3 4h2l2.4 11.2a2 2 0 0 0 2 1.6h7.8a2 2 0 0 0 2-1.6L21 8H6'/%3E%3C/svg%3E") center / contain no-repeat;
	content: "";
}

.single-product .entry-summary .single_add_to_cart_button:not(:disabled):not(.disabled):hover {
	transform: translateY(-2px);
	border-color: var(--pf-shop-accent-strong) !important;
	background: var(--pf-shop-accent) !important;
	box-shadow: 0 14px 28px rgba(216, 94, 121, 0.28);
}

.single-product .entry-summary .single_add_to_cart_button:focus-visible {
	outline: 3px solid rgba(216, 94, 121, 0.28);
	outline-offset: 3px;
}

.single-product .entry-summary .single_add_to_cart_button:active {
	transform: translateY(0);
	box-shadow: 0 7px 16px rgba(216, 94, 121, 0.2);
}

.single-product .entry-summary .single_add_to_cart_button:disabled,
.single-product .entry-summary .single_add_to_cart_button.disabled {
	border-color: rgba(216, 94, 121, 0.16) !important;
	background: var(--pf-shop-soft) !important;
	color: var(--pf-shop-muted) !important;
	opacity: 1 !important;
	box-shadow: none;
	cursor: not-allowed;
}

.single-product .entry-summary .single_add_to_cart_button:disabled::before,
.single-product .entry-summary .single_add_to_cart_button.disabled::before {
	opacity: 0.55 !important;
}

.single-product .related.products {
	margin-top: clamp(2.5rem, 5vw, 5rem);
}

.single-product .related.products > h2 {
	margin-bottom: clamp(1.25rem, 2.4vw, 2rem);
	color: var(--pf-shop-accent-strong);
	font-family: var(--pfh-font-display, "Noto Serif JP", "Yu Mincho", serif);
	font-size: clamp(1.5rem, 2.2vw, 2rem);
	font-weight: 600;
	letter-spacing: 0.04em;
}

.single-product .related.products > h2::after {
	display: block;
	width: 2.75rem;
	height: 2px;
	margin-top: 0.7rem;
	border-radius: 999px;
	background: var(--pf-shop-accent);
	content: "";
}

.single-product .related.products ul.products {
	gap: clamp(1rem, 2vw, 1.5rem);
}

.single-product .related.products ul.products li.product {
	display: flex;
	min-width: 0;
	overflow: hidden;
	border: 1px solid rgba(216, 94, 121, 0.13);
	border-radius: 0.625rem;
	background: var(--pf-shop-surface);
	box-shadow: var(--pf-shop-shadow);
	transition:
		transform 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease;
}

.single-product .related.products ul.products li.product:hover {
	transform: translateY(-3px);
	border-color: rgba(216, 94, 121, 0.28);
	box-shadow: 0 20px 46px rgba(83, 52, 61, 0.16);
}

.single-product .related.products li.product figure {
	margin: 0;
	background: var(--pf-shop-soft);
}

.single-product .related.products li.product .ct-media-container {
	background: var(--pf-shop-soft);
}

.single-product .related.products li.product .ct-media-container img {
	width: 100%;
	aspect-ratio: 1 / 1;
	padding: clamp(0.5rem, 1.1vw, 0.8rem);
	object-fit: contain;
	background: var(--pf-shop-soft);
}

.single-product .related.products .ct-woo-card-extra .ct-button {
	border: 1px solid rgba(216, 94, 121, 0.16);
	background: rgba(255, 255, 255, 0.94);
	color: var(--pf-shop-accent-strong);
}

.single-product .related.products .ct-woo-card-extra .ct-button:hover,
.single-product .related.products .ct-woo-card-extra .ct-button:focus-visible {
	border-color: var(--pf-shop-accent);
	background: var(--pf-shop-soft);
	color: var(--pf-shop-accent-strong);
}

.single-product .related.products .ct-woo-card-extra .ct-button:focus-visible {
	outline: 3px solid rgba(216, 94, 121, 0.22);
	outline-offset: 2px;
}

.single-product .related.products .woocommerce-loop-product__title {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 5rem;
	margin: 0 !important;
	padding: 1rem 1rem 0.85rem !important;
	color: var(--pf-shop-ink);
	font-family: var(--pfh-font-body, "Noto Sans JP", "Yu Gothic", sans-serif);
	font-size: 0.9375rem !important;
	font-weight: 600;
	line-height: 1.55;
	text-align: center;
}

.single-product .related.products .woocommerce-loop-product__title a {
	color: inherit;
	text-decoration: none;
}

.single-product .related.products .woocommerce-loop-product__title a:hover {
	color: var(--pf-shop-ink);
	text-decoration: underline;
	text-decoration-color: var(--pf-shop-accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.25em;
}

.single-product .related.products .ct-woo-card-actions {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 0.75rem !important;
	box-sizing: border-box;
	width: 100%;
	margin-top: auto !important;
	padding: 0.9rem 0.9rem 1rem !important;
	border-top: 1px solid rgba(216, 94, 121, 0.12);
	background: var(--pf-shop-surface);
}

.single-product .related.products .ct-woo-card-actions .price {
	display: block;
	position: static !important;
	width: 100%;
	margin: 0 !important;
	color: var(--pf-shop-ink) !important;
	font-size: 1rem !important;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
}

.single-product .related.products .ct-woo-card-actions .price::after {
	display: block;
	position: static !important;
	width: 2rem;
	height: 2px;
	margin: 0.55rem auto 0;
	border-radius: 999px;
	background: var(--pf-shop-accent);
	content: "";
}

.single-product .related.products .ct-woo-card-actions .button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	box-sizing: border-box;
	width: 100% !important;
	min-height: 3rem !important;
	margin: 0 !important;
	padding: 0.7rem 0.6rem !important;
	border: 1px solid transparent !important;
	border-radius: 0.625rem !important;
	background: var(--pf-shop-accent) !important;
	color: var(--pf-shop-ink) !important;
	font-family: var(--pfh-font-body, "Noto Sans JP", "Yu Gothic", sans-serif);
	font-size: 0.8125rem !important;
	font-weight: 700 !important;
	line-height: 1.25;
	text-align: center;
	white-space: normal;
	box-shadow: 0 8px 18px rgba(216, 94, 121, 0.2);
	transition:
		transform 180ms ease,
		background-color 180ms ease,
		box-shadow 180ms ease;
}

.single-product .related.products .ct-woo-card-actions .button::before {
	display: inline-block !important;
	position: static !important;
	z-index: 0 !important;
	opacity: 1 !important;
	filter: none !important;
	transform: none !important;
	width: 1.1rem;
	height: 1.1rem;
	flex: 0 0 1.1rem;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23342f31' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3Cpath d='M3 4h2l2.4 11.2a2 2 0 0 0 2 1.6h7.8a2 2 0 0 0 2-1.6L21 8H6'/%3E%3C/svg%3E") center / contain no-repeat;
	content: "";
}

.single-product .related.products .ct-woo-card-actions .button:hover {
	transform: translateY(-2px);
	border-color: var(--pf-shop-accent-strong) !important;
	background: var(--pf-shop-accent) !important;
	box-shadow: 0 12px 24px rgba(216, 94, 121, 0.26);
}

.single-product .related.products .ct-woo-card-actions .button:focus-visible {
	outline: 3px solid rgba(216, 94, 121, 0.26);
	outline-offset: 3px;
}

.single-product .related.products .out-of-stock-badge {
	border-radius: 0.35rem;
	background: var(--pf-shop-ink);
	color: #ffffff;
	letter-spacing: 0.04em;
}

.single-product .woocommerce-tabs {
	--theme-link-initial-color: var(--pf-shop-accent-strong);
	--theme-link-hover-color: var(--pf-shop-accent-strong);
	--theme-palette-color-1: var(--pf-shop-accent);
	--theme-palette-color-2: var(--pf-shop-accent-strong);
}

@media (max-width: 767px) {
	.single-product .entry-summary .single_add_to_cart_button.button,
	.single-product .entry-summary .single_add_to_cart_button {
		min-height: 3.25rem;
	}

	.single-product .related.products .woocommerce-loop-product__title {
		min-height: 4.5rem;
		padding: 0.75rem 0.65rem 0.65rem !important;
		font-size: 0.8125rem !important;
		line-height: 1.45;
	}

	.single-product .related.products .ct-woo-card-actions {
		gap: 0.55rem !important;
		padding: 0.7rem 0.55rem 0.75rem !important;
	}

	.single-product .related.products .ct-woo-card-actions .price {
		font-size: 0.9375rem !important;
	}

	.single-product .related.products .ct-woo-card-actions .button {
		min-height: 2.75rem !important;
		padding: 0.55rem 0.4rem !important;
		font-size: 0.75rem !important;
	}

	.single-product .related.products .ct-woo-card-actions .button::before {
		width: 1rem;
		height: 1rem;
		flex-basis: 1rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.single-product .entry-summary .single_add_to_cart_button.button,
	.single-product .entry-summary .single_add_to_cart_button,
	.single-product .related.products ul.products li.product,
	.single-product .related.products .ct-woo-card-actions .button {
		transition: none !important;
	}
}
