/*
 * WooCommerce single-product foundation.
 * Loaded only on is_product() routes. Commercial state remains WooCommerce-owned.
 */

.pp-product-main,
.pp-product-main * {
	box-sizing: border-box;
}

.pp-product-main {
	margin-block-start: 0;
	overflow-x: visible;
	background: var(--wp--preset--color--cream-100);
}

.pp-product-section,
.pp-product-specific-content {
	margin-block-start: 0;
	padding-block: 56px;
	scroll-margin-top: 96px;
}

.pp-product-shell,
.pp-product-specific-content > .wp-block-post-content {
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 1200px);
	margin-inline: auto;
	padding-inline: 20px;
}

.pp-product-main h1,
.pp-product-main h2,
.pp-product-main h3,
.pp-product-main p {
	overflow-wrap: anywhere;
}

.pp-product-main h1 {
	font-size: clamp(2rem, 8vw, 4rem);
}

.pp-product-main h2 {
	font-size: clamp(1.75rem, 6vw, 2.75rem);
}

.pp-product-hero {
	padding-block: 24px 64px;
	background:
		radial-gradient(circle at 90% 12%, rgb(199 155 75 / 14%), transparent 24rem),
		var(--wp--preset--color--cream-100);
}

.pp-product-hero__breadcrumb {
	padding-block: 12px 20px;
}

.pp-product-hero__breadcrumb .woocommerce-breadcrumb {
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.875rem;
}

.pp-product-hero__breadcrumb .woocommerce-breadcrumb a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	min-width: 44px;
}

.pp-product-hero__intro {
	max-width: 920px;
	margin: 0;
}

.pp-product-hero__intro,
.pp-product-hero__positioning {
	display: contents;
}

.pp-product-hero__title,
.pp-product-hero__positioning,
.pp-product-hero__positioning p {
	margin-block: 0;
}

.pp-product-hero__positioning {
	max-width: 720px;
	margin-top: 16px;
	color: var(--wp--preset--color--muted);
	font-size: clamp(1.05rem, 2vw, 1.25rem);
}

.pp-product-hero__positioning ul {
	display: grid;
	gap: 8px;
	margin-block: 18px;
	padding-left: 1.25rem;
	color: var(--wp--preset--color--ink);
	font-size: 1rem;
}

.pp-product-hero__positioning li::marker {
	color: var(--wp--preset--color--purple-700);
}

.pp-product-hero__grid {
	display: grid;
	grid-template-areas:
		"title"
		"lead"
		"media"
		"bullets"
		"summary";
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
	align-items: start;
}

.pp-product-hero__title {
	grid-area: title;
}

.pp-product-hero__lead {
	grid-area: lead;
}

.pp-product-hero__bullets {
	grid-area: bullets;
}

.pp-product-hero__media {
	grid-area: media;
}

.pp-product-hero__summary {
	grid-area: summary;
}

.pp-product-hero__media,
.pp-product-hero__summary {
	min-width: 0;
}

.pp-product-hero__media {
	display: grid;
	place-items: center;
	min-height: min(68vw, 280px);
	padding: 20px;
	overflow: visible;
	border: 1px solid var(--wp--preset--color--lilac-100);
	border-radius: var(--wp--custom--radius--card, 20px);
	background: var(--wp--preset--color--white);
}

.pp-product-hero__media .woocommerce-product-gallery,
.pp-product-hero__media .wp-block-woocommerce-product-image-gallery,
.pp-product-hero__media .wc-block-product-gallery {
	width: 100%;
	max-width: 100%;
	margin: 0;
}

.pp-product-hero__media img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	max-height: 260px;
	margin-inline: auto;
	object-fit: contain;
}

.pp-product-hero__media :where(button, a[role="button"], .flex-control-thumbs a, .wc-block-product-gallery-thumbnails__thumbnail) {
	min-width: 44px;
	min-height: 44px;
}

.pp-product-hero__summary {
	padding: 24px;
	border: 1px solid rgb(93 58 130 / 18%);
	border-radius: var(--wp--custom--radius--card, 20px);
	background: var(--wp--preset--color--white);
	box-shadow: 0 18px 50px rgb(52 32 79 / 8%);
}

.pp-product-hero__commerce {
	padding-bottom: 24px;
	border-bottom: 1px solid var(--wp--preset--color--lilac-100);
}

.pp-product-hero__commerce .wp-block-woocommerce-product-price,
.pp-product-hero__commerce .price {
	color: var(--wp--preset--color--purple-900);
	font-size: clamp(1.5rem, 5vw, 2.2rem);
	font-weight: 750;
}

.pp-product-hero__commerce form.cart,
.pp-product-hero__commerce .variations,
.pp-product-hero__commerce .single_variation_wrap,
.pp-product-hero__commerce .wp-block-woocommerce-add-to-cart-form {
	width: 100%;
}

/*
 * Published local-review products remain unavailable by server-side policy.
 * Keep WooCommerce as the source of that state and do not expose a purchase
 * form when the body class reports the product as non-purchasable.
 */
.pp-product-is-unavailable .pp-product-hero__commerce form.cart,
.pp-product-is-unavailable .pp-product-hero__commerce .wp-block-woocommerce-add-to-cart-form,
.pp-product-is-unavailable .pp-product-hero__commerce .wp-block-woocommerce-product-price,
.pp-product-is-unavailable .pp-product-hero__commerce > .price,
.pp-product-is-unavailable .pp-product-hero__commerce .stock,
.pp-product-is-unavailable .pp-product-hero__commerce .wc-block-components-product-stock-indicator {
	display: none;
}

.pp-product-hero__commerce table,
.pp-product-hero__commerce tbody,
.pp-product-hero__commerce tr,
.pp-product-hero__commerce th,
.pp-product-hero__commerce td {
	display: block;
	width: 100%;
}

.pp-product-hero__commerce select,
.pp-product-hero__commerce input,
.pp-product-hero__commerce button,
.pp-product-hero__commerce .button,
.pp-product-hero__commerce [role="button"] {
	min-height: 44px;
	max-width: 100%;
	border-radius: var(--wp--custom--radius--control, 12px);
	font: inherit;
}

.pp-product-hero__commerce select,
.pp-product-hero__commerce input {
	padding: 10px 12px;
	border: 1px solid rgb(93 58 130 / 42%);
	background: var(--wp--preset--color--white);
}

.pp-product-hero__commerce button,
.pp-product-hero__commerce .button {
	padding: 12px 20px;
	border: 2px solid var(--wp--preset--color--purple-700);
	background: var(--wp--preset--color--purple-700);
	color: var(--wp--preset--color--white);
	font-weight: 700;
}

.pp-product-hero__commerce .stock.out-of-stock,
.pp-product-hero__commerce .wc-block-components-product-stock-indicator {
	padding: 12px 16px;
	border: 1px solid rgb(154 100 27 / 32%);
	border-radius: var(--wp--custom--radius--control, 12px);
	background: rgb(255 248 236 / 90%);
	color: var(--wp--preset--color--warning);
	font-weight: 700;
}

.pp-product-meta {
	margin-top: 20px;
	color: var(--wp--preset--color--muted);
	font-size: 0.9rem;
}

.pp-product-availability {
	display: grid;
	gap: 10px;
	margin-top: 20px;
	padding: 16px 18px;
	border-left: 4px solid var(--wp--preset--color--purple-500);
	border-radius: 0 var(--wp--custom--radius--control, 12px) var(--wp--custom--radius--control, 12px) 0;
	background: var(--wp--preset--color--lilac-100);
}

.pp-product-availability p {
	margin: 0;
}

.pp-product-availability a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-weight: 750;
}

.pp-product-specific-content {
	padding-block: 0;
	background: var(--wp--preset--color--white);
}

.pp-product-specific-content > .wp-block-post-content:not(:empty) {
	padding-block: 56px;
}

.pp-product-card-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 18px;
}

.pp-package-summary {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
	max-width: 100%;
	margin: 20px auto;
	text-align: left;
}

.pp-package-card {
	display: grid;
	gap: 7px;
	min-width: 0;
	min-height: 44px;
	padding: 16px;
	border: 2px solid rgb(93 58 130 / 20%);
	border-radius: var(--wp--custom--radius--card, 20px);
	background: var(--wp--preset--color--cream-100);
	color: var(--wp--preset--color--ink);
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.pp-product-hero__commerce button.pp-package-card {
	padding: 14px;
	border: 2px solid rgb(93 58 130 / 20%);
	background: var(--wp--preset--color--cream-100);
	color: var(--wp--preset--color--ink);
}

.pp-package-card--default,
.pp-package-card[aria-pressed="true"],
.pp-product-hero__commerce button.pp-package-card[aria-pressed="true"] {
	border-color: var(--wp--preset--color--gold-500);
	background: var(--wp--preset--color--lilac-100);
	box-shadow: 0 0 0 2px rgb(199 155 75 / 18%);
}

.pp-package-card__header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.pp-package-card__name {
	color: var(--wp--preset--color--purple-700);
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pp-package-card__offer {
	color: var(--wp--preset--color--purple-900);
	font-size: 1.3rem;
	font-weight: 800;
	line-height: 1.15;
}

.pp-package-card__badge {
	padding: 4px 8px;
	border-radius: 999px;
	background: var(--wp--preset--color--gold-500);
	color: var(--wp--preset--color--purple-900);
	font-size: 0.75rem;
	font-weight: 800;
}

.pp-package-card__price {
	color: var(--wp--preset--color--purple-900);
	font-size: 1.55rem;
	font-weight: 800;
}

.pp-package-card__shipping {
	font-weight: 700;
}

.pp-product-hero__commerce .reset_variations {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	min-width: 44px;
	justify-content: center;
}

.pp-content-gap {
	padding: 20px;
	border: 2px dashed var(--wp--preset--color--warning);
	border-radius: var(--wp--custom--radius--control, 12px);
	background: var(--wp--preset--color--cream-100);
}

.pp-content-gap > :first-child {
	margin-top: 0;
}

.pp-content-gap > :last-child {
	margin-bottom: 0;
}

.pp-content-gap__label {
	color: var(--wp--preset--color--warning);
	font-weight: 800;
	letter-spacing: 0.05em;
}

.pp-vitalcare-reference-list,
.pp-owner-confirm-list,
.pp-testimonial-fields {
	display: grid;
	gap: 8px;
}

.pp-product-card,
.pp-quality-document-card,
.pp-testimonial-card {
	min-width: 0;
	padding: 22px;
	border: 1px solid rgb(93 58 130 / 18%);
	border-radius: var(--wp--custom--radius--card, 20px);
	background: var(--wp--preset--color--white);
}

.pp-product-card > :first-child,
.pp-quality-document-card > :first-child,
.pp-testimonial-card > :first-child {
	margin-top: 0;
}

.pp-product-card > :last-child,
.pp-quality-document-card > :last-child,
.pp-testimonial-card > :last-child {
	margin-bottom: 0;
}

.pp-product-pain-points,
.pp-product-ingredients,
.pp-product-testimonials,
.pp-product-shipping {
	background: var(--wp--preset--color--white);
}

.pp-product-support,
.pp-product-dosage,
.pp-product-faq {
	background: var(--wp--preset--color--lilac-100);
}

.pp-product-quality {
	background: var(--wp--preset--color--purple-900);
	color: var(--wp--preset--color--white);
}

.pp-product-quality h2,
.pp-product-quality h3 {
	color: var(--wp--preset--color--white);
}

.pp-product-safety-note {
	padding: 18px 20px;
	border-left: 4px solid var(--wp--preset--color--gold-500);
	border-radius: 0 var(--wp--custom--radius--control, 12px) var(--wp--custom--radius--control, 12px) 0;
	background: var(--wp--preset--color--cream-100);
}

.pp-dosage-table-wrap {
	max-width: 100%;
	overflow-x: auto;
	border: 1px solid rgb(93 58 130 / 22%);
	border-radius: var(--wp--custom--radius--control, 12px);
	background: var(--wp--preset--color--white);
}

.pp-dosage-table {
	width: 100%;
	min-width: 520px;
	border-collapse: collapse;
}

.pp-dosage-table th,
.pp-dosage-table td {
	padding: 14px 16px;
	border-bottom: 1px solid var(--wp--preset--color--lilac-100);
	text-align: left;
}

.pp-dosage-table th {
	background: var(--wp--preset--color--purple-900);
	color: var(--wp--preset--color--white);
}

.pp-product-disclaimer {
	color: var(--wp--preset--color--muted);
	font-size: 0.875rem;
}

.pp-product-return-cta {
	margin-top: 24px;
}

.pp-product-faq__items {
	display: grid;
	gap: 12px;
}

.pp-product-faq-item {
	overflow: hidden;
	border: 1px solid rgb(93 58 130 / 22%);
	border-radius: var(--wp--custom--radius--control, 12px);
	background: var(--wp--preset--color--white);
}

.pp-product-faq-item h3 {
	margin: 0;
}

.pp-product-faq-item button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	min-height: 52px;
	padding: 14px 18px;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--purple-900);
	font: inherit;
	font-weight: 700;
	text-align: left;
	cursor: pointer;
}

.pp-product-faq-item button span::before {
	content: "+";
	font-size: 1.4rem;
}

.pp-product-faq-item button[aria-expanded="true"] span::before {
	content: "−";
}

.pp-product-faq-answer {
	padding: 0 18px 18px;
}

.pp-product-faq-answer[hidden],
.pp-product-sticky[hidden] {
	display: none !important;
}

.pp-product-packages,
.pp-product-final-cta {
	background: var(--wp--preset--color--purple-900);
	color: var(--wp--preset--color--white);
}

.pp-final-cta-panel {
	padding-block: 36px;
	text-align: center;
}

.pp-final-cta-panel h2 {
	color: var(--wp--preset--color--white);
}

.pp-final-cta-panel > * {
	max-width: 720px;
	margin-inline: auto;
}

.pp-final-cta-panel .wp-block-buttons {
	justify-content: center;
	margin-top: 24px;
}

.pp-product-eyebrow {
	color: var(--wp--preset--color--gold-500);
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.12em;
}

.pp-product-main .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 12px 20px;
	border-radius: var(--wp--custom--radius--control, 12px);
	font-weight: 700;
	text-decoration: none;
}

.pp-product-main .pp-button--primary .wp-block-button__link {
	border: 2px solid var(--wp--preset--color--purple-700);
	background: var(--wp--preset--color--purple-700);
	color: var(--wp--preset--color--white);
}

.pp-product-main .pp-button--secondary .wp-block-button__link {
	border: 2px solid var(--wp--preset--color--purple-700);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--purple-700);
}

.pp-product-main a:focus-visible,
.pp-product-main button:focus-visible,
.pp-product-main input:focus-visible,
.pp-product-main select:focus-visible,
.pp-product-main [tabindex="0"]:focus-visible {
	outline: 3px solid var(--wp--preset--color--gold-500);
	outline-offset: 3px;
}

.pp-product-sticky {
	position: fixed;
	right: 12px;
	bottom: calc(12px + env(safe-area-inset-bottom));
	left: 12px;
	z-index: 900;
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: 760px;
	margin: 0 auto;
	padding: 10px 12px;
	border: 1px solid rgb(255 255 255 / 28%);
	border-radius: 16px;
	background: rgb(52 32 79 / 96%);
	box-shadow: 0 14px 40px rgb(36 31 41 / 24%);
	color: var(--wp--preset--color--white);
}

.pp-product-sticky__summary,
.pp-product-sticky__package,
.pp-product-sticky__price {
	margin: 0;
}

.pp-product-sticky__summary {
	min-width: 0;
	flex: 1;
}

.pp-product-sticky__package,
.pp-product-sticky__price {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pp-product-sticky__package {
	font-size: 0.82rem;
	font-weight: 750;
}

.pp-product-sticky__price {
	font-size: 1.05rem;
	font-weight: 800;
}

.pp-product-sticky__action {
	flex: 0 0 auto;
	min-height: 44px;
	padding: 10px 14px;
	border: 2px solid var(--wp--preset--color--gold-500);
	border-radius: var(--wp--custom--radius--control, 12px);
	background: var(--wp--preset--color--gold-500);
	color: var(--wp--preset--color--purple-900);
	font: inherit;
	font-weight: 800;
}

@media (min-width: 600px) {
	.pp-product-card-grid--three {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pp-package-summary {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 782px) {
	.pp-product-section {
		padding-block: 80px;
	}

	.pp-product-shell,
	.pp-product-specific-content > .wp-block-post-content {
		padding-inline: 32px;
	}

	.pp-product-hero {
		padding-block: 28px 88px;
	}

	.pp-product-hero__grid {
		grid-template-areas:
			"media title"
			"media lead"
			"media bullets"
			"media summary";
		grid-template-columns: minmax(0, 1.02fr) minmax(360px, 0.98fr);
		gap: 18px 40px;
	}

	.pp-product-hero__summary {
		padding: 24px;
	}

	.pp-product-hero__media {
		min-height: 420px;
	}

	.pp-product-hero__media img {
		max-height: 380px;
	}

	.pp-product-hero__title {
		font-size: clamp(2.6rem, 4.5vw, 3.65rem);
	}

	.pp-product-hero__positioning {
		font-size: 1.05rem;
	}

	.pp-product-hero__positioning ul {
		gap: 5px;
		margin-block: 12px;
	}

	.pp-package-summary {
		gap: 10px;
		margin-block: 14px;
	}

	.pp-product-hero__commerce button.pp-package-card {
		gap: 4px;
		padding: 11px;
	}

	.pp-package-card__offer {
		font-size: 1rem;
	}

	.pp-package-card__price {
		font-size: 1.25rem;
	}

	.pp-product-card-grid--three {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 768px) {
	.pp-product-sticky {
		display: none !important;
	}
}

@media (max-width: 781px) {
	.pp-product-hero__grid {
		gap: 16px;
	}

	.pp-product-hero__commerce {
		display: flex;
		flex-direction: column;
	}

	.pp-product-hero__commerce > .wp-block-woocommerce-product-price {
		order: 1;
	}

	.pp-product-hero__commerce > .wp-block-woocommerce-add-to-cart-form {
		order: 2;
	}

	.pp-product-hero__commerce > .pp-package-summary {
		order: 3;
	}
}

@media (max-width: 599px) {
	.pp-product-hero__media {
		min-height: 250px;
		padding: 14px;
	}

	.pp-product-hero__media img {
		max-height: 230px;
	}

	.pp-product-main .wp-block-buttons,
	.pp-product-main .wp-block-button,
	.pp-product-main .wp-block-button__link {
		width: 100%;
	}

	.pp-product-sticky__action {
		max-width: 48%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pp-product-main *,
	.pp-product-main *::before,
	.pp-product-main *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}
