/* ==========================================================================
   oye-crunch/single-product
   Scoped styles for the product page. Native WooCommerce markup (form,
   variations table, quantity, notices, reviews) is styled, never replaced.
   Uses shared tokens/components without redefining them.
   Breakpoints: 30em, 48em, 64em.
   ========================================================================== */

/* Template seam: hero meets the header (layout only). */
.wp-site-blocks > .oye-pdp-main {
	margin-block-start: 0;
}

.oye-pdp {
	--oye-pdp-tear: var(--oye-tear-size, 10px);
	color: var(--oye-aubergine, #210D35);
	font-family: var(--oye-font-body, system-ui, sans-serif);
	overflow-x: clip;
}

:where(.oye-pdp) :where(h1, h2, h3, p, figure, ul, ol, table) {
	margin: 0;
}

.oye-pdp-hint {
	padding-block: 0.75rem;
}

/* Shared --------------------------------------------------------------- */

.oye-pdp-section {
	padding-block: clamp(3.08rem, 6.8vw, 5.72rem);
}

.oye-tone-cream {
	background-color: var(--oye-cream, #FFF7EA);
}

.oye-tone-lilac {
	background-color: var(--oye-lilac, #E6D6F3);
}

.oye-pdp-title {
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: clamp(2.07rem, 4.203vw, 3.366rem);
	font-weight: 750;
	letter-spacing: -0.028em;
	line-height: 0.98;
	max-width: 18ch;
	text-wrap: balance;
}

.oye-pdp-prose {
	font-size: 1.125rem;
	line-height: 1.65;
	max-width: 60ch;
}

.oye-pdp-prose > * + * {
	margin-top: 0.9em;
}

.oye-pdp-prose a {
	color: inherit;
	text-underline-offset: 0.2em;
}

.oye-pdp-print {
	background-color: var(--oye-white, #FFFFFF);
	box-shadow: 0 16px 30px -18px rgb(33 13 53 / 0.5);
	padding: 0.5rem;
}

.oye-pdp-print img {
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

/* --------------------------------------------------------------------------
   1. Hero: aubergine, big title, layered gallery, cream purchase card
   -------------------------------------------------------------------------- */

.oye-pdp-hero {
	margin-top: calc(-1 * var(--oye-pdp-tear));
	padding-block: calc(var(--oye-pdp-tear) + clamp(1.5rem, 4vw, 3rem)) clamp(2.64rem, 5.95vw, 4.84rem);
}

.oye-pdp-hero__grid {
	display: grid;
	gap: 1.75rem;
	grid-template-columns: minmax(0, 1fr);
}

.oye-pdp-hero__grid > * {
	min-width: 0;
}

.oye-pdp-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	font-size: 0.875rem;
	gap: 0.25rem 0.5rem;
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
}

.oye-pdp-breadcrumb li + li::before {
	color: var(--oye-lilac, #E6D6F3);
	content: "/";
	margin-inline-end: 0.5rem;
}

.oye-pdp-breadcrumb a {
	color: inherit;
	display: inline-block;
	padding-block: 0.25rem;
	text-underline-offset: 0.2em;
}

.oye-pdp-hero__title {
	color: var(--oye-cream, #FFF7EA);
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: clamp(2.429rem, 8.415vw, 5.544rem);
	font-weight: 800;
	letter-spacing: -0.04em;
	line-height: 0.9;
	overflow-wrap: anywhere;
	text-wrap: balance;
}

.oye-pdp-hero__note {
	color: var(--oye-lilac, #E6D6F3);
	display: inline-block;
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: clamp(1.25rem, 2.6vw, 1.625rem);
	font-style: italic;
	margin-top: 1rem;
	transform: rotate(-3deg);
	transform-origin: left center;
}

.oye-pdp-hero__rating {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 1rem;
}

.oye-pdp-hero__rating a {
	color: inherit;
	display: inline-block;
	padding-block: 0.25rem;
	text-underline-offset: 0.2em;
}

/* Gallery ---------------------------------------------------------------- */

.oye-pdp-gallery__stage {
	display: grid;
	isolation: isolate;
	place-items: center;
	position: relative;
}

.oye-pdp-gallery__stage > * {
	grid-area: 1 / 1;
}

.oye-pdp-gallery__paper {
	align-self: stretch;
	background-color: color-mix(in srgb, var(--oye-lilac, #E6D6F3) 55%, var(--oye-cream, #FFF7EA));
	clip-path: polygon(1% 2.5%, 12% 0.8%, 25% 2.3%, 38% 0.5%, 51% 2%, 64% 0.6%, 77% 2.2%, 90% 0.4%, 99.4% 2%, 98.3% 18%, 99.6% 36%, 98% 54%, 99.5% 72%, 98.2% 88%, 99.3% 98.6%, 86% 97.8%, 72% 99.5%, 58% 97.9%, 44% 99.4%, 30% 97.7%, 16% 99.3%, 0.8% 98.2%, 1.9% 82%, 0.3% 64%, 1.7% 46%, 0.2% 28%, 1.4% 12%);
	justify-self: stretch;
	margin: 6% 4% 2% 10%;
	transform: rotate(-4deg);
	z-index: -1;
}

.oye-pdp-gallery__main {
	aspect-ratio: 1;
	filter: drop-shadow(0 26px 30px rgb(0 0 0 / 0.38));
	height: auto;
	max-width: 100%;
	object-fit: contain;
	transform: rotate(3deg);
	width: min(88%, 34rem);
}

.oye-pdp-gallery__sticker {
	align-items: center;
	align-self: start;
	aspect-ratio: 1;
	background-color: var(--oye-lime, #D7F75B);
	border-radius: 50%;
	color: var(--oye-aubergine, #210D35);
	display: flex;
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: 1.25rem;
	font-weight: 800;
	justify-content: center;
	justify-self: end;
	transform: rotate(12deg);
	width: 4.5rem;
}

.oye-pdp-gallery__thumbs {
	display: flex;
	gap: 0.625rem;
	list-style: none;
	margin-top: 1.25rem;
	overflow-x: auto;
	padding: 0.25rem 0.25rem 0.5rem;
}

.oye-pdp-gallery__thumb {
	background-color: var(--oye-white, #FFFFFF);
	border: 0;
	border-radius: 0;
	box-shadow: 0 8px 16px -10px rgb(0 0 0 / 0.5);
	cursor: pointer;
	display: block;
	opacity: 0.72;
	padding: 0.25rem;
	transform: rotate(-2deg);
	transition: opacity var(--oye-duration, 180ms), transform var(--oye-duration, 180ms);
}

.oye-pdp-gallery__thumbs li:nth-child(even) .oye-pdp-gallery__thumb {
	transform: rotate(2deg);
}

.oye-pdp-gallery__thumb img {
	display: block;
	height: 4rem;
	object-fit: cover;
	width: 4rem;
}

.oye-pdp-gallery__thumb[aria-pressed="true"],
.oye-pdp-gallery__thumb:hover {
	opacity: 1;
}

.oye-pdp-gallery__thumb[aria-pressed="true"] {
	outline: 3px solid var(--oye-lime, #D7F75B);
	outline-offset: 2px;
}

/* Purchase card (cream, quiet, native form) ------------------------------ */

.oye-pdp-buy > * {
	min-width: 0;
}

.oye-pdp-buy {
	--oye-focus-color: var(--oye-aubergine, #210D35);
	grid-template-columns: minmax(0, 1fr);
	background-color: var(--oye-cream, #FFF7EA);
	box-shadow: 6px 8px 0 rgb(0 0 0 / 0.25);
	color: var(--oye-aubergine, #210D35);
	display: grid;
	gap: 1rem;
	padding: clamp(1.25rem, 4vw, 2rem);
}

.oye-pdp-buy .price {
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: clamp(1.75rem, 4vw, 2.25rem);
	font-weight: 750;
	line-height: 1.1;
}

.oye-pdp-buy .price del {
	font-size: 0.7em;
	font-weight: 500;
	opacity: 0.6;
}

.oye-pdp-buy .price ins {
	text-decoration: none;
}

.oye-pdp-buy__weight {
	display: flex;
	font-size: 0.9375rem;
	gap: 0.5rem;
}

.oye-pdp-buy__weight[hidden] {
	display: none;
}

.oye-pdp-buy__weight span:first-child {
	font-weight: 600;
}

.oye-pdp-buy__short {
	line-height: 1.55;
}

.oye-pdp-buy .stock {
	font-size: 0.9375rem;
	font-weight: 600;
}

.oye-pdp-buy .stock.out-of-stock {
	color: var(--oye-aubergine, #210D35);
	text-decoration: line-through;
	text-decoration-thickness: 1px;
}

/* Notices (native markup). */
.oye-pdp-buy .woocommerce-notices-wrapper:empty {
	display: none;
}

.oye-pdp-buy .woocommerce-message,
.oye-pdp-buy .woocommerce-info,
.oye-pdp-buy .woocommerce-error {
	background-color: var(--oye-white, #FFFFFF);
	border-inline-start: 4px solid var(--oye-aubergine, #210D35);
	font-size: 0.9375rem;
	line-height: 1.45;
	list-style: none;
	margin: 0 0 0.5rem;
	padding: 0.75rem 1rem;
}

.oye-pdp-buy .woocommerce-message {
	border-inline-start-color: var(--oye-lime, #D7F75B);
}

.oye-pdp-buy .woocommerce-message .button,
.oye-pdp-buy .woocommerce-info .button {
	color: inherit;
	float: none;
	font-weight: 600;
	margin-inline-end: 0.5rem;
	text-decoration: underline;
}

/* Variations (native table). */
.oye-pdp-buy table.variations,
.oye-pdp-buy table.variations tbody,
.oye-pdp-buy table.variations tr,
.oye-pdp-buy table.variations th,
.oye-pdp-buy table.variations td {
	display: block;
	width: 100%;
}

.oye-pdp-buy table.variations {
	border: 0;
	border-collapse: collapse;
	margin: 0 0 1rem;
}

.oye-pdp-buy table.variations tr + tr {
	margin-top: 0.875rem;
}

.oye-pdp-buy table.variations th,
.oye-pdp-buy table.variations td {
	border: 0;
	padding: 0;
	text-align: start;
}

.oye-pdp-buy table.variations label {
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	margin-bottom: 0.375rem;
}

.oye-pdp-buy table.variations select {
	appearance: none;
	background: var(--oye-white, #FFFFFF) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23210D35' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 0.75rem center / 1.125rem;
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: var(--oye-radius-md, 0.375rem);
	box-sizing: border-box;
	color: var(--oye-aubergine, #210D35);
	font: inherit;
	font-size: 1rem;
	min-height: 2.75rem;
	padding: 0.5rem 2.5rem 0.5rem 0.75rem;
	width: 100%;
}

.oye-pdp-buy .reset_variations {
	color: inherit;
	display: inline-block;
	font-size: 0.875rem;
	font-weight: 600;
	margin-top: 0.5rem;
	padding-block: 0.25rem;
	text-decoration: underline;
}

.oye-pdp-buy .woocommerce-variation {
	display: grid;
	gap: 0.375rem;
	margin-bottom: 1rem;
}

.oye-pdp-buy .woocommerce-variation-price .price {
	font-size: 1.5rem;
}

/* Quantity + add to cart (native markup). */
.oye-pdp-buy form.cart:not(.variations_form),
.oye-pdp-buy .woocommerce-variation-add-to-cart {
	align-items: stretch;
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem;
}

.oye-pdp-buy .quantity {
	display: flex;
}

.oye-pdp-buy .quantity .qty {
	appearance: textfield;
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: var(--oye-radius-md, 0.375rem);
	box-sizing: border-box;
	color: var(--oye-aubergine, #210D35);
	font: inherit;
	font-size: 1.0625rem;
	font-weight: 600;
	min-height: 3.25rem;
	text-align: center;
	width: 4.5rem;
}

.oye-pdp-buy .single_add_to_cart_button {
	background-color: var(--oye-aubergine, #210D35);
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: var(--oye-radius-md, 0.375rem);
	color: var(--oye-cream, #FFF7EA);
	cursor: pointer;
	flex: 1 1 12rem;
	font-family: var(--oye-font-body, system-ui, sans-serif);
	font-size: 1.0625rem;
	font-weight: 700;
	min-height: 3.25rem;
	padding: 0.75rem 1.25rem;
}

.oye-pdp-buy .single_add_to_cart_button:hover {
	background-color: var(--oye-aubergine-raised, #3A2552);
}

.oye-pdp-buy .single_add_to_cart_button.disabled,
.oye-pdp-buy .single_add_to_cart_button:disabled {
	cursor: not-allowed;
	opacity: 0.55;
}

/* Delivery ---------------------------------------------------------------- */

.oye-pdp-delivery {
	border-top: 1.5px dashed color-mix(in srgb, var(--oye-aubergine, #210D35) 35%, transparent);
	display: grid;
	font-size: 0.9375rem;
	gap: 0.375rem;
	line-height: 1.5;
	padding-top: 1rem;
}

.oye-pdp-delivery__title {
	align-items: center;
	display: flex;
	font-weight: 700;
	gap: 0.5rem;
}

.oye-pdp-delivery .oye-icon {
	height: 1.25rem;
	width: 1.25rem;
}

/* --------------------------------------------------------------------------
   2. Flavour story
   -------------------------------------------------------------------------- */

.oye-pdp-flavour__grid {
	display: grid;
	gap: 2.5rem;
}

.oye-pdp-flavour__copy .oye-pdp-prose {
	margin-top: 1.5rem;
}

.oye-pdp-flavour__media {
	justify-self: end;
	position: relative;
	width: min(92%, 30rem);
}

.oye-pdp-flavour__media .oye-pdp-print {
	transform: rotate(2.5deg);
}

.oye-pdp-flavour__note {
	background-color: var(--oye-aubergine, #210D35);
	bottom: -1rem;
	color: var(--oye-cream, #FFF7EA);
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: 1.25rem;
	font-style: italic;
	left: -1rem;
	padding: 0.5rem 0.875rem;
	position: absolute;
	transform: rotate(-4deg);
}

.oye-pdp-flavour__note--solo {
	justify-self: start;
	position: static;
}

/* --------------------------------------------------------------------------
   3. What's inside + nutrition table
   -------------------------------------------------------------------------- */

.oye-pdp-inside__grid {
	display: grid;
	gap: 2.5rem;
	margin-top: clamp(2rem, 5vw, 3rem);
}

.oye-pdp-inside__text {
	display: grid;
	gap: 1.75rem;
}

.oye-pdp-inside__heading {
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	margin-bottom: 0.5rem;
}

.oye-pdp-inside__ingredients {
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: clamp(1.375rem, 3vw, 1.875rem);
	line-height: 1.3;
	max-width: 32ch;
}

.oye-pdp-inside__block--allergens p {
	border-inline-start: 4px solid var(--oye-aubergine, #210D35);
	font-weight: 600;
	padding-inline-start: 0.875rem;
}

.oye-pdp-nutrition {
	overflow-x: auto;
}

.oye-pdp-nutrition__table {
	background-color: var(--oye-white, #FFFFFF);
	border: 2px solid var(--oye-aubergine, #210D35);
	border-collapse: collapse;
	font-size: 0.9375rem;
	min-width: 18rem;
	width: 100%;
}

.oye-pdp-nutrition__table caption {
	caption-side: top;
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: 1.25rem;
	font-weight: 750;
	padding-bottom: 0.625rem;
	text-align: start;
}

.oye-pdp-nutrition__table th,
.oye-pdp-nutrition__table td {
	border-bottom: 1px solid color-mix(in srgb, var(--oye-aubergine, #210D35) 25%, transparent);
	padding: 0.5625rem 0.875rem;
	text-align: start;
	vertical-align: top;
}

.oye-pdp-nutrition__table thead th {
	background-color: var(--oye-aubergine, #210D35);
	color: var(--oye-cream, #FFF7EA);
	font-size: 0.8125rem;
	font-weight: 700;
}

.oye-pdp-nutrition__table td {
	font-variant-numeric: tabular-nums;
	text-align: end;
	white-space: nowrap;
}

.oye-pdp-nutrition__table thead th:not(:first-child) {
	text-align: end;
}

.oye-pdp-nutrition__table tbody th {
	font-weight: 600;
}

.oye-pdp-nutrition__table tr.is-sub th {
	font-weight: 400;
	padding-inline-start: 1.75rem;
}

.oye-pdp-nutrition__note {
	font-size: 0.875rem;
	line-height: 1.45;
	margin-top: 0.625rem;
}

.oye-pdp-inside__label {
	margin-top: 1.5rem;
	max-width: 22rem;
}

.oye-pdp-inside__label-img {
	border: 2px solid var(--oye-aubergine, #210D35);
	display: block;
	height: auto;
	width: 100%;
}

.oye-pdp-inside__label figcaption a {
	color: inherit;
	display: inline-block;
	font-size: 0.875rem;
	font-weight: 600;
	padding-block: 0.5rem;
	text-underline-offset: 0.2em;
}

/* --------------------------------------------------------------------------
   4. Evidence
   -------------------------------------------------------------------------- */

.oye-pdp-evidence__grid {
	display: grid;
	gap: 2rem;
}

.oye-pdp-evidence .oye-pdp-title {
	font-size: clamp(1.84rem, 4.05vw, 2.925rem);
}

.oye-pdp-evidence__list {
	display: grid;
	gap: 1.25rem;
	list-style: none;
	padding: 0;
}

.oye-pdp-evidence__item {
	border-top: 2px solid var(--oye-aubergine, #210D35);
	display: grid;
	gap: 0.25rem;
	line-height: 1.5;
	padding-top: 0.875rem;
}

.oye-pdp-evidence__type {
	font-weight: 700;
}

.oye-pdp-evidence__ref {
	color: var(--oye-aubergine-soft, #5B4A6E);
	font-size: 0.9375rem;
}

.oye-tone-lilac .oye-pdp-evidence__ref {
	color: var(--oye-aubergine, #210D35);
}

.oye-pdp-evidence__link {
	color: inherit;
	display: inline-block;
	font-weight: 600;
	justify-self: start;
	padding-block: 0.25rem;
	text-underline-offset: 0.2em;
}

/* --------------------------------------------------------------------------
   5. Process
   -------------------------------------------------------------------------- */

.oye-pdp-process__grid {
	display: grid;
	gap: 2.5rem;
}

.oye-pdp-process__copy .oye-pdp-prose {
	margin-top: 1.5rem;
}

.oye-pdp-process__photos {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	padding: 0;
}

.oye-pdp-process__photos li:nth-child(odd) .oye-pdp-print { transform: rotate(-2deg); }
.oye-pdp-process__photos li:nth-child(even) .oye-pdp-print { transform: rotate(1.5deg); }
.oye-pdp-process__photos li:nth-child(even) { margin-top: 2rem; }

.oye-pdp-process__img {
	aspect-ratio: 4 / 5;
}

/* --------------------------------------------------------------------------
   6. Reviews (native WooCommerce markup)
   -------------------------------------------------------------------------- */

.oye-pdp-reviews #reviews {
	display: grid;
	gap: 2rem;
}

.oye-pdp-reviews .woocommerce-Reviews-title {
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: clamp(1.84rem, 4.05vw, 2.925rem);
	font-weight: 750;
	letter-spacing: -0.02em;
	line-height: 1.02;
	margin: 0 0 1.5rem;
	max-width: 20ch;
}

.oye-pdp-reviews .commentlist {
	display: grid;
	gap: 1.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.oye-pdp-reviews .commentlist li {
	border-top: 1.5px solid color-mix(in srgb, var(--oye-aubergine, #210D35) 20%, transparent);
	padding-top: 1.25rem;
}

.oye-pdp-reviews .comment_container {
	display: flex;
	gap: 1rem;
}

.oye-pdp-reviews .comment_container img.avatar {
	border-radius: 50%;
	flex: none;
	height: 2.75rem;
	width: 2.75rem;
}

.oye-pdp-reviews .comment-text .description {
	font-size: 1.0625rem;
	line-height: 1.6;
	margin-top: 0.5rem;
}

.oye-pdp-reviews .woocommerce-review__author {
	font-weight: 700;
}

.oye-pdp-reviews .woocommerce-review__verified {
	font-size: 0.875rem;
	font-style: normal;
}

.oye-pdp-reviews .woocommerce-noreviews,
.oye-pdp-reviews .woocommerce-verification-required {
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: 1.375rem;
	font-style: italic;
}

.oye-pdp-reviews #review_form_wrapper {
	background-color: var(--oye-white, #FFFFFF);
	box-shadow: 5px 7px 0 color-mix(in srgb, var(--oye-aubergine, #210D35) 12%, transparent);
	max-width: 40rem;
	padding: clamp(1.25rem, 4vw, 2rem);
}

.oye-pdp-reviews .comment-reply-title {
	display: block;
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: 1.5rem;
	font-weight: 700;
	margin-bottom: 1rem;
}

.oye-pdp-reviews .comment-form p {
	margin: 0 0 1rem;
}

.oye-pdp-reviews .comment-form label {
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	margin-bottom: 0.375rem;
}

.oye-pdp-reviews .comment-form textarea,
.oye-pdp-reviews .comment-form input[type="text"],
.oye-pdp-reviews .comment-form input[type="email"],
.oye-pdp-reviews .comment-form select {
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: var(--oye-radius-md, 0.375rem);
	box-sizing: border-box;
	font: inherit;
	font-size: 1rem;
	min-height: 2.75rem;
	padding: 0.5rem 0.75rem;
	width: 100%;
}

.oye-pdp-reviews .comment-form-cookies-consent label {
	display: inline;
	font-weight: 400;
}

.oye-pdp-reviews p.stars a {
	color: var(--oye-aubergine, #210D35);
	display: inline-block;
	min-height: 2.75rem;
	min-width: 2.75rem;
}

.oye-pdp-reviews .form-submit input[type="submit"] {
	background-color: var(--oye-aubergine, #210D35);
	border: 0;
	border-radius: var(--oye-radius-md, 0.375rem);
	color: var(--oye-cream, #FFF7EA);
	cursor: pointer;
	font: inherit;
	font-weight: 700;
	min-height: 2.75rem;
	padding: 0.625rem 1.25rem;
}

/* --------------------------------------------------------------------------
   7–8. Pairings (reuse archive cards) and FAQs
   -------------------------------------------------------------------------- */

.oye-pdp .oye-pdp-pairings {
	overflow: visible;
	padding-block: clamp(3.08rem, 6.8vw, 5.72rem);
}

.oye-pdp-pairings__grid {
	margin-top: clamp(2rem, 5vw, 3rem);
}

.oye-tone-lilac .oye-shop-card__plinth {
	background-color: var(--oye-cream, #FFF7EA);
}

.oye-pdp-faqs__grid {
	display: grid;
	gap: 2rem;
}

.oye-pdp-faq {
	border-top: 1.5px solid color-mix(in srgb, var(--oye-aubergine, #210D35) 22%, transparent);
}

.oye-pdp-faq:last-child {
	border-bottom: 1.5px solid color-mix(in srgb, var(--oye-aubergine, #210D35) 22%, transparent);
}

.oye-pdp-faq__q {
	align-items: center;
	cursor: pointer;
	display: flex;
	font-size: 1.125rem;
	font-weight: 600;
	gap: 1rem;
	justify-content: space-between;
	line-height: 1.35;
	list-style: none;
	min-height: 2.75rem;
	padding-block: 1.125rem;
}

.oye-pdp-faq__q::-webkit-details-marker {
	display: none;
}

.oye-pdp-faq__q::after {
	content: "+";
	flex: none;
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: 2rem;
	line-height: 0.6;
	transition: transform var(--oye-duration, 180ms) var(--oye-ease, ease-out);
}

.oye-pdp-faq[open] > .oye-pdp-faq__q::after {
	transform: rotate(45deg);
}

.oye-pdp-faq__a {
	line-height: 1.6;
	max-width: 62ch;
	padding-bottom: 1.375rem;
}

@media (min-width: 48em) {
	.oye-pdp-process__photos {
		gap: 1.5rem;
	}
}

@media (min-width: 64em) {
	.oye-pdp-hero__grid {
		align-items: start;
		column-gap: clamp(2rem, 3.4vw, 3.52rem);
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		row-gap: 1.5rem;
	}

	.oye-pdp-hero__head {
		grid-column: 2;
		grid-row: 1;
	}

	.oye-pdp-gallery {
		grid-column: 1;
		grid-row: 1 / span 2;
		position: sticky;
		top: 1.5rem;
	}

	.oye-pdp-buy {
		grid-column: 2;
		grid-row: 2;
	}

	.oye-pdp-hero__title {
		font-size: clamp(2.834rem, 4.968vw, 5.148rem);
	}

	.oye-pdp-flavour__grid,
	.oye-pdp-process__grid {
		align-items: center;
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	}

	.oye-pdp-flavour--text .oye-pdp-flavour__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.oye-pdp-inside__grid {
		align-items: start;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.oye-pdp-evidence__grid,
	.oye-pdp-faqs__grid {
		align-items: start;
		grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
	}

	.oye-pdp-evidence__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.oye-pdp-reviews #reviews {
		align-items: start;
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	}

}

@media (prefers-reduced-motion: reduce) {
	.oye-pdp-gallery__thumb {
		transition: none;
	}
}

@media (forced-colors: active) {
	.oye-pdp-gallery__paper {
		display: none;
	}

	.oye-pdp-gallery__thumb[aria-pressed="true"] {
		outline-color: Highlight;
	}

	.oye-buybar {
		border-top: 2px solid CanvasText;
	}
}

/* ==========================================================================
   Phase 2 additions: gallery controls, pills, quantity, offers, share,
   highlights, promise box, details accordion, review cards, sticky bar.
   ========================================================================== */

/* Gallery arrows + counter ------------------------------------------------- */

.oye-pdp-gallery__stage {
	touch-action: pan-y;
}

.oye-pdp-gallery__arrow {
	align-items: center;
	background-color: #FFFDF8;
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: 50%;
	box-shadow: 2px 3px 0 var(--oye-aubergine, #210D35);
	color: var(--oye-aubergine, #210D35);
	cursor: pointer;
	display: flex;
	height: 2.75rem;
	justify-content: center;
	padding: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 2.75rem;
	z-index: 2;
}

.oye-pdp-gallery__arrow--prev {
	left: 0.25rem;
}

.oye-pdp-gallery__arrow--next {
	right: 0.25rem;
}

.oye-pdp-gallery__arrow span {
	border-block-start: 2.5px solid currentColor;
	border-inline-end: 2.5px solid currentColor;
	height: 0.5625rem;
	width: 0.5625rem;
}

.oye-pdp-gallery__arrow--prev span {
	transform: translateX(2px) rotate(-135deg);
}

.oye-pdp-gallery__arrow--next span {
	transform: translateX(-2px) rotate(45deg);
}

.oye-pdp-gallery__arrow:hover {
	transform: translateY(calc(-50% - 1px));
}

.oye-pdp-gallery__arrow:active {
	box-shadow: none;
	transform: translate(2px, calc(-50% + 3px));
}

.oye-pdp-gallery__arrow:focus-visible {
	outline: 3px solid var(--oye-lime, #D7F75B);
	outline-offset: 2px;
}

.oye-pdp-gallery__count {
	background-color: rgb(33 13 53 / 0.75);
	border-radius: 999px;
	bottom: 0.5rem;
	color: var(--oye-cream, #FFF7EA);
	font-size: 0.8125rem;
	font-weight: 700;
	left: 50%;
	margin: 0;
	padding: 0.1875rem 0.625rem;
	position: absolute;
	transform: translateX(-50%);
	z-index: 2;
}

/* Variation pills --------------------------------------------------------- */

.oye-pdp-buy .oye-pills__native {
	border: 0 !important;
	clip: rect(0 0 0 0);
	height: 1px !important;
	margin: -1px !important;
	min-height: 0 !important;
	overflow: hidden;
	padding: 0 !important;
	position: absolute !important;
	white-space: nowrap;
	width: 1px !important;
}

.oye-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.oye-pill {
	align-items: center;
	background-color: #FFFDF8;
	border: 2px solid color-mix(in srgb, var(--oye-aubergine, #210D35) 35%, transparent);
	border-radius: 0.75rem;
	color: var(--oye-aubergine, #210D35);
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: 0.9375rem;
	font-weight: 700;
	gap: 0.375rem;
	min-height: 2.75rem;
	padding: 0.5rem 1rem;
	transition: border-color 120ms ease-out, box-shadow 120ms ease-out, transform 120ms ease-out;
}

.oye-pill:hover:not(:disabled) {
	border-color: var(--oye-aubergine, #210D35);
}

.oye-pill[aria-checked="true"] {
	background-color: var(--oye-lime, #D7F75B);
	border-color: var(--oye-aubergine, #210D35);
	box-shadow: 2px 3px 0 var(--oye-aubergine, #210D35);
	transform: translate(-1px, -1px);
}

.oye-pill[aria-checked="true"]::before {
	content: "\2713";
	font-weight: 900;
}

.oye-pill:disabled {
	border-style: dashed;
	cursor: not-allowed;
	opacity: 0.45;
	text-decoration: line-through;
}

.oye-pill:focus-visible {
	outline: 3px solid var(--oye-aubergine, #210D35);
	outline-offset: 2px;
}

/* Quantity stepper (product form and sticky bar) ---------------------------- */

.oye-qty {
	align-items: center;
	background-color: #FFFDF8;
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: 0.75rem;
	box-sizing: border-box;
	display: inline-flex;
	height: 3.25rem;
	overflow: hidden;
}

.oye-qty[hidden] {
	display: none;
}

.oye-qty__btn {
	background: transparent;
	border: 0;
	color: var(--oye-aubergine, #210D35);
	cursor: pointer;
	font: inherit;
	font-size: 1.375rem;
	font-weight: 700;
	height: 100%;
	width: 2.75rem;
}

.oye-qty__btn:hover {
	background-color: var(--oye-lilac, #E6D6F3);
}

.oye-qty__btn:active {
	background-color: color-mix(in srgb, var(--oye-lilac, #E6D6F3) 70%, var(--oye-aubergine, #210D35));
}

.oye-qty__btn:focus-visible {
	outline: 3px solid var(--oye-aubergine, #210D35);
	outline-offset: -3px;
}

.oye-pdp-buy .oye-qty .qty,
.oye-pdp-buy .oye-qty input.qty {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	font-weight: 800;
	height: 100%;
	min-height: 0;
	padding: 0;
	text-align: center;
	width: 2.75rem;
}

.oye-qty__value {
	font-variant-numeric: tabular-nums;
	font-weight: 800;
	min-width: 2rem;
	text-align: center;
}

/* Buy now: same raised shape, secondary colours. */
html body .wp-site-blocks .oye-buy-now.oye-buy-now {
	--oye-btn-bg: #FFFDF8;
	--oye-btn-fg: var(--oye-aubergine, #210D35);
}

/* Offers (coupons) ----------------------------------------------------------- */

.oye-pdp-offers {
	background-color: color-mix(in srgb, var(--oye-lime, #D7F75B) 20%, var(--oye-cream, #FFF7EA));
	border: 2px dashed var(--oye-aubergine, #210D35);
	border-radius: 0.875rem;
	padding: 0.875rem 1rem;
}

.oye-pdp-offers__title {
	font-size: 0.875rem;
	font-weight: 800;
	margin: 0 0 0.25rem;
}

.oye-pdp-offers__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.oye-pdp-offer {
	align-items: center;
	display: flex;
	gap: 0.75rem;
	justify-content: space-between;
	padding-block: 0.5rem;
}

.oye-pdp-offer + .oye-pdp-offer {
	border-top: 1px dashed color-mix(in srgb, var(--oye-aubergine, #210D35) 30%, transparent);
}

.oye-pdp-offer__text {
	min-width: 0;
}

.oye-pdp-offer__summary {
	font-weight: 700;
	line-height: 1.35;
	margin: 0;
}

.oye-pdp-offer__note {
	color: var(--oye-aubergine-soft, #5B4A6E);
	font-size: 0.8125rem;
	margin: 0.125rem 0 0;
}

.oye-pdp-offer__code {
	align-items: center;
	background-color: #FFFDF8;
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: 0.5rem;
	box-shadow: 2px 3px 0 var(--oye-aubergine, #210D35);
	color: var(--oye-aubergine, #210D35);
	cursor: pointer;
	display: inline-flex;
	flex: none;
	font: inherit;
	gap: 0.5rem;
	min-height: 2.75rem;
	padding: 0.25rem 0.625rem;
}

.oye-pdp-offer__code:active {
	box-shadow: none;
	transform: translate(2px, 3px);
}

.oye-pdp-offer__code-text {
	font-weight: 900;
	letter-spacing: 0.06em;
}

.oye-pdp-offer__copy {
	border-inline-start: 1.5px dashed currentColor;
	font-size: 0.75rem;
	font-weight: 700;
	padding-inline-start: 0.5rem;
}

.oye-pdp-offers__hint {
	font-size: 0.8125rem;
	margin: 0.25rem 0 0;
}

/* Share ---------------------------------------------------------------------- */

.oye-pdp-share {
	align-items: center;
	border-top: 1.5px dashed color-mix(in srgb, var(--oye-aubergine, #210D35) 35%, transparent);
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.75rem;
	padding-top: 0.875rem;
}

.oye-pdp-share__label {
	font-size: 0.875rem;
	font-weight: 800;
	margin: 0;
}

.oye-pdp-share__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.oye-pdp-share__list li[hidden] {
	display: none;
}

.oye-pdp-share__btn {
	align-items: center;
	background-color: #FFFDF8;
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: 999px;
	box-shadow: 2px 3px 0 var(--oye-aubergine, #210D35);
	color: var(--oye-aubergine, #210D35);
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: 0.875rem;
	font-weight: 700;
	gap: 0.375rem;
	min-height: 2.5rem;
	padding: 0.375rem 0.875rem;
	text-decoration: none;
}

.oye-pdp-share__btn .oye-icon {
	height: 1rem;
	width: 1rem;
}

.oye-pdp-share__btn:hover {
	transform: translate(-1px, -1px);
}

.oye-pdp-share__btn:active {
	box-shadow: none;
	transform: translate(2px, 3px);
}

.oye-pdp-share__status {
	flex-basis: 100%;
	font-size: 0.8125rem;
	font-weight: 700;
	margin: 0;
	min-height: 1.2em;
}

/* Ingredient highlights ---------------------------------------------------- */

.oye-pdp-highlights__list {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	margin: clamp(1.5rem, 4vw, 2.5rem) 0 0;
	padding: 0;
}

.oye-pdp-highlight {
	background-color: #FFFDF8;
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: 1.25rem;
	box-shadow: 4px 5px 0 var(--oye-aubergine, #210D35);
	display: grid;
	gap: 0.5rem;
	justify-items: center;
	padding: 1.25rem 0.875rem;
	text-align: center;
}

.oye-pdp-highlight:nth-child(odd) {
	transform: rotate(-1deg);
}

.oye-pdp-highlight:nth-child(even) {
	transform: rotate(1deg);
}

.oye-pdp-highlight__icon {
	align-items: center;
	background-color: var(--oye-lilac, #E6D6F3);
	border-radius: 50%;
	color: var(--oye-aubergine, #210D35);
	display: flex;
	height: 4.5rem;
	justify-content: center;
	width: 4.5rem;
}

.oye-pdp-highlight__icon img,
.oye-pdp-highlight__icon svg {
	height: 3.25rem;
	object-fit: contain;
	width: 3.25rem;
}

.oye-pdp-highlight__name {
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: 1.125rem;
	font-weight: 750;
	line-height: 1.15;
	margin: 0;
}

.oye-pdp-highlight__note {
	color: var(--oye-aubergine-soft, #5B4A6E);
	font-size: 0.875rem;
	line-height: 1.45;
	margin: 0;
}

/* Promise box ------------------------------------------------------------------ */

.oye-pdp-promise {
	background-color: #FFFDF8;
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: 1.25rem;
	box-shadow: 5px 6px 0 var(--oye-aubergine, #210D35);
	box-sizing: border-box;
	margin-inline: auto;
	max-width: 42rem;
	padding: 1.5rem 1.5rem 1.75rem;
	position: relative;
}

.oye-tone-cream .oye-pdp-promise {
	background-color: var(--oye-lilac, #E6D6F3);
}

.oye-pdp-promise.has-mascot {
	margin-top: 2.5rem;
}

.oye-pdp-promise__title {
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: clamp(1.5rem, 3.5vw, 2rem);
	font-weight: 800;
	line-height: 1.1;
	margin: 0 0 0.875rem;
	max-width: 16ch;
}

.oye-pdp-promise__shelf {
	font-weight: 700;
	line-height: 1.5;
	margin: 0 0 0.875rem;
}

.oye-pdp-promise__list {
	display: grid;
	gap: 0.375rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.oye-pdp-promise__list li {
	align-items: baseline;
	display: flex;
	gap: 0.625rem;
	line-height: 1.45;
}

.oye-pdp-promise__list li::before {
	background-color: var(--oye-lime, #D7F75B);
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: 50%;
	content: "";
	flex: none;
	height: 0.75rem;
	transform: translateY(0.0625rem);
	width: 0.75rem;
}

.oye-pdp-promise__signoff {
	display: inline-block;
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: 1.25rem;
	font-style: italic;
	font-weight: 600;
	margin: 1rem 0 0;
	padding-bottom: 0.35em;
	position: relative;
	transform: rotate(-2deg);
}

.oye-pdp-promise__signoff::after {
	-webkit-mask: var(--oye-squiggle) no-repeat center / 100% 100%;
	background-color: var(--oye-aubergine, #210D35);
	bottom: 0;
	content: "";
	height: 0.3em;
	left: 0;
	mask: var(--oye-squiggle) no-repeat center / 100% 100%;
	position: absolute;
	width: 100%;
}

.oye-pdp-promise__mascot {
	height: auto;
	position: absolute;
	right: -0.5rem;
	top: -3rem;
	transform: rotate(8deg);
	width: 5.5rem;
}

/* Details accordion ------------------------------------------------------------ */

.oye-pdp-details__grid {
	display: grid;
	gap: 1.5rem;
}

.oye-pdp-acc {
	background-color: #FFFDF8;
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: 1rem;
}

.oye-pdp-acc + .oye-pdp-acc {
	margin-top: 0.75rem;
}

.oye-pdp-acc__q {
	align-items: center;
	cursor: pointer;
	display: flex;
	font-size: 1.0625rem;
	font-weight: 800;
	gap: 1rem;
	justify-content: space-between;
	list-style: none;
	min-height: 3rem;
	padding: 0.75rem 1.25rem;
}

.oye-pdp-acc__q::-webkit-details-marker {
	display: none;
}

.oye-pdp-acc__q::after {
	content: "+";
	flex: none;
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: 1.75rem;
	line-height: 0.6;
	transition: transform 180ms ease-out;
}

.oye-pdp-acc[open] > .oye-pdp-acc__q::after {
	transform: rotate(45deg);
}

.oye-pdp-acc[open] > .oye-pdp-acc__q {
	border-bottom: 1.5px dashed color-mix(in srgb, var(--oye-aubergine, #210D35) 25%, transparent);
}

.oye-pdp-acc__q:focus-visible {
	border-radius: 0.875rem;
	outline: 3px solid var(--oye-aubergine, #210D35);
	outline-offset: 2px;
}

.oye-pdp-acc__a {
	line-height: 1.6;
	padding: 1rem 1.25rem 1.25rem;
}

.oye-pdp-acc__a > * + * {
	margin-top: 0.75rem;
}

.oye-pdp-acc__a p {
	margin: 0;
}

.oye-pdp-acc__a a {
	color: inherit;
	font-weight: 700;
	text-underline-offset: 0.2em;
}

.oye-pdp-acc__a .woocommerce-product-attributes {
	border-collapse: collapse;
	width: 100%;
}

.oye-pdp-acc__a .woocommerce-product-attributes th,
.oye-pdp-acc__a .woocommerce-product-attributes td {
	border-bottom: 1px solid color-mix(in srgb, var(--oye-aubergine, #210D35) 18%, transparent);
	padding: 0.5rem 0;
	text-align: start;
	vertical-align: top;
}

.oye-pdp-acc__a .woocommerce-product-attributes th {
	font-weight: 700;
	padding-inline-end: 1rem;
	width: 40%;
}

.oye-pdp-acc__a .woocommerce-product-attributes td p {
	margin: 0;
}

/* Review cards --------------------------------------------------------------- */

.oye-pdp-rating {
	align-items: center;
	display: flex;
	gap: 1rem;
	margin-bottom: 1.75rem;
}

.oye-pdp-rating__score {
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: clamp(2.53rem, 5.4vw, 3.375rem);
	font-weight: 800;
	line-height: 1;
	margin: 0;
}

.oye-pdp-rating__score span {
	color: var(--oye-aubergine-soft, #5B4A6E);
	font-size: 0.4em;
}

.oye-pdp-rating__count {
	font-size: 0.9375rem;
	margin: 0.25rem 0 0;
}

.oye-pdp-reviews .commentlist {
	display: grid;
	gap: 1rem;
	grid-template-columns: minmax(0, 1fr);
}

.oye-pdp-reviews .commentlist li {
	background-color: #FFFDF8;
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: 1.25rem;
	box-shadow: 4px 5px 0 var(--oye-aubergine, #210D35);
	padding: 1.25rem;
}

.oye-pdp-reviews .commentlist li:nth-child(3n + 2) {
	background-color: color-mix(in srgb, var(--oye-lime, #D7F75B) 18%, #FFFDF8);
}

.oye-pdp-reviews .comment_container img.avatar {
	height: 2.5rem;
	width: 2.5rem;
}

.oye-pdp-reviews .woocommerce-review__verified {
	background-color: var(--oye-lime, #D7F75B);
	border: 1.5px solid var(--oye-aubergine, #210D35);
	border-radius: 999px;
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 800;
	padding: 0.0625rem 0.5rem;
}

.oye-pdp-reviews .woocommerce-review__dash {
	display: none;
}

.oye-pdp-reviews .woocommerce-review__published-date {
	color: var(--oye-aubergine-soft, #5B4A6E);
	display: block;
	font-size: 0.8125rem;
}

.oye-pdp-reviews__empty-mascot img {
	display: block;
	height: auto;
	margin-bottom: 0.5rem;
	transform: rotate(-6deg);
	width: 7rem;
}

/* Sticky purchase bar (desktop + mobile) ------------------------------------- */

.oye-buybar {
	background-color: #FFFDF8;
	border-top: 2px solid var(--oye-aubergine, #210D35);
	bottom: 0;
	box-shadow: 0 -12px 28px -18px rgb(33 13 53 / 0.5);
	color: var(--oye-aubergine, #210D35);
	left: 0;
	padding-bottom: env(safe-area-inset-bottom, 0px);
	position: fixed;
	right: 0;
	z-index: 90; /* Below header panels and typical consent banners. */
}

.oye-buybar[hidden] {
	display: none;
}

.oye-buybar__inner {
	align-items: center;
	box-sizing: border-box;
	display: flex;
	gap: 0.5rem 0.875rem;
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size, 90rem);
	padding: 0.625rem max(1rem, env(safe-area-inset-right)) 0.625rem max(1rem, env(safe-area-inset-left));
}

.oye-buybar__thumb {
	background-color: var(--oye-lilac, #E6D6F3);
	border-radius: 0.5rem;
	flex: none;
	height: 3.5rem;
	object-fit: contain;
	width: 3.5rem;
}

.oye-buybar__info {
	flex: 1 1 auto;
	min-width: 0;
}

.oye-buybar__name {
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.oye-buybar__variant {
	color: var(--oye-aubergine-soft, #5B4A6E);
	font-size: 0.8125rem;
	margin: 0.125rem 0 0;
}

.oye-buybar__meta {
	display: grid;
	flex: none;
	margin: 0;
	text-align: end;
}

.oye-buybar__price {
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: 1.25rem;
	font-weight: 800;
	white-space: nowrap;
}

.oye-buybar__price del {
	font-size: 0.75em;
	font-weight: 500;
	opacity: 0.6;
}

.oye-buybar__price ins {
	text-decoration: none;
}

.oye-buybar__stock {
	color: var(--oye-aubergine-soft, #5B4A6E);
	font-size: 0.8125rem;
}

.oye-buybar__qty {
	flex: none;
	height: 2.875rem;
}

.oye-buybar__actions {
	display: flex;
	flex: none;
	gap: 0.625rem;
}

.oye-buybar__actions .oye-button {
	min-height: 2.875rem;
	white-space: nowrap;
}

body.oye-buybar-on {
	padding-bottom: calc(5.25rem + env(safe-area-inset-bottom, 0px));
}

/* Phones: compact, two rows (price; quantity + Add to cart). */
@media (max-width: 47.99em) {
	.oye-buybar__inner {
		flex-wrap: wrap;
	}

	.oye-buybar__thumb,
	.oye-buybar__buynow {
		display: none;
	}

	.oye-buybar__info {
		flex: 1 1 50%;
	}

	.oye-buybar__name {
		font-size: 0.9375rem;
	}

	.oye-buybar__price {
		font-size: 1.0625rem;
	}

	.oye-buybar__actions {
		flex: 1 1 auto;
	}

	.oye-buybar__actions .oye-button {
		flex: 1;
	}

	body.oye-buybar-on {
		padding-bottom: calc(7.5rem + env(safe-area-inset-bottom, 0px));
	}
}

@media (min-width: 48em) {
	.oye-pdp-highlights__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.oye-pdp-reviews .commentlist {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.oye-pdp-promise.has-mascot {
		margin-top: 1rem;
		padding-inline-end: 10rem;
	}

	.oye-pdp-promise__mascot {
		bottom: -1.5rem;
		right: -1.5rem;
		top: auto;
		width: 10rem;
	}
}

@media (min-width: 64em) {
	.oye-pdp-highlights__list[data-count="4"],
	.oye-pdp-highlights__list[data-count="5"],
	.oye-pdp-highlights__list[data-count="6"] {
		grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
	}

	.oye-pdp-details__grid {
		align-items: start;
		grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
	}

	.oye-pdp-gallery__arrow--prev {
		left: 0.75rem;
	}

	.oye-pdp-gallery__arrow--next {
		right: 0.75rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.oye-pill,
	.oye-pdp-acc__q::after,
	.oye-pdp-highlight {
		transition: none;
	}

	.oye-pdp-highlight:nth-child(odd),
	.oye-pdp-highlight:nth-child(even) {
		transform: none;
	}
}

/* Add-to-cart feedback (AJAX) */
.oye-pdp-ajax-notice {
	background-color: #FFFDF8;
	border-inline-start: 4px solid var(--oye-lime, #D7F75B);
	border-radius: 0.5rem;
	font-size: 0.9375rem;
	font-weight: 700;
	padding: 0.625rem 0.875rem;
}

.oye-pdp-ajax-notice[hidden] {
	display: none;
}

.oye-pdp-ajax-notice.is-error {
	background-color: #FFF5F4;
	border-inline-start-color: #B3261E;
}

/* ==========================================================================
   Corrections: price + savings, rating link, stars, weight chip, trust row,
   share buttons, reviews redesign. (Later rules intentionally override.)
   ========================================================================== */

/* Price row + savings ------------------------------------------------------ */

.oye-pdp-buy__price-row {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.875rem;
}

.oye-pdp-buy .price {
	align-items: baseline;
	display: flex;
	flex-wrap: wrap;
	gap: 0 0.625rem;
	margin: 0;
}

.oye-pdp-buy .price del {
	color: var(--oye-aubergine-soft, #5B4A6E);
	font-size: 0.55em;
	font-weight: 500;
	opacity: 1;
	order: 2;
	text-decoration-thickness: 1.5px;
}

.oye-pdp-buy .price ins {
	order: 1;
	text-decoration: none;
}

.oye-pdp-save {
	background-color: var(--oye-lime, #D7F75B);
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: 999px;
	box-shadow: 2px 2px 0 var(--oye-aubergine, #210D35);
	font-size: 0.875rem;
	font-weight: 800;
	line-height: 1.2;
	padding: 0.25rem 0.75rem;
	transform: rotate(-2deg);
	white-space: nowrap;
}

.oye-pdp-save[hidden] {
	display: none;
}

/* Rating link above the price */
.oye-pdp-buy__rating {
	align-items: center;
	align-self: start;
	justify-self: start;
	color: inherit;
	display: inline-flex;
	font-size: 0.9375rem;
	font-weight: 800;
	gap: 0.5rem;
	min-height: 2rem;
	text-decoration: none;
}

.oye-pdp-buy__rating:hover .oye-pdp-buy__rating-count {
	text-decoration: underline;
}

.oye-pdp-buy__rating-count {
	color: var(--oye-aubergine-soft, #5B4A6E);
	font-weight: 600;
}

/* Stars (SVG, clipped fill) */
.oye-stars {
	color: var(--oye-aubergine, #210D35);
	display: inline-block;
	line-height: 0;
	position: relative;
	vertical-align: middle;
}

.oye-stars svg {
	fill: currentColor;
	height: 1.125rem;
	width: 1.125rem;
}

.oye-stars__base {
	display: inline-flex;
	gap: 2px;
	opacity: 0.2;
}

.oye-stars__fill {
	display: inline-flex;
	gap: 2px;
	inset: 0 auto 0 0;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
}

.oye-stars--lg svg {
	height: 1.375rem;
	width: 1.375rem;
}

/* Weight as a chip */
.oye-pdp-buy__weight {
	align-items: center;
	align-self: start;
	justify-self: start;
	width: fit-content;
	background-color: var(--oye-lilac, #E6D6F3);
	border-radius: 999px;
	display: inline-flex;
	font-size: 0.875rem;
	gap: 0.375rem;
	margin: 0;
	padding: 0.25rem 0.75rem;
}

.oye-pdp-buy__weight span:first-child {
	font-weight: 800;
}

/* Trust points under the buttons */
.oye-pdp-trust {
	display: grid;
	gap: 0.5rem 0.875rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.oye-pdp-trust li {
	align-items: center;
	display: flex;
	font-size: 0.875rem;
	font-weight: 700;
	gap: 0.5rem;
	line-height: 1.3;
}

.oye-pdp-trust .oye-trust-icon {
	background-color: var(--oye-lilac, #E6D6F3);
	border-radius: 50%;
	box-sizing: content-box;
	flex: none;
	height: 1.125rem;
	padding: 0.375rem;
	width: 1.125rem;
}

/* Share: identical buttons (some theme link rules made the link taller). */
.oye-pdp-buy .oye-pdp-share .oye-pdp-share__btn {
	box-sizing: border-box;
	gap: 0.375rem;
	height: 2.5rem;
	line-height: 1;
	min-height: 0;
	padding: 0 0.875rem;
	text-decoration: none;
	white-space: nowrap;
}

.oye-pdp-share__btn svg {
	flex: none;
}

/* Reviews ---------------------------------------------------------------------- */

.oye-pdp-reviews__head {
	align-items: end;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 1.5rem;
	justify-content: space-between;
	margin-bottom: 1.5rem;
}

.oye-pdp-reviews__lead {
	margin: 0.5rem 0 0;
}

.oye-pdp-rating {
	align-items: center;
	background-color: #FFFDF8;
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: 1.25rem;
	box-shadow: 4px 5px 0 var(--oye-aubergine, #210D35);
	display: grid;
	gap: 1.25rem 2rem;
	margin-bottom: 2rem;
	padding: 1.25rem 1.5rem;
}

.oye-pdp-rating__summary {
	display: grid;
	gap: 0.375rem;
	justify-items: start;
}

.oye-pdp-rating__score {
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: clamp(2.53rem, 5.4vw, 3.15rem);
	font-weight: 800;
	line-height: 1;
	margin: 0;
}

.oye-pdp-rating__score span {
	color: var(--oye-aubergine-soft, #5B4A6E);
	font-size: 0.4em;
	margin-inline-start: 0.125rem;
}

.oye-pdp-rating__count {
	color: var(--oye-aubergine-soft, #5B4A6E);
	font-size: 0.875rem;
	margin: 0;
}

.oye-pdp-rating__bars {
	display: grid;
	gap: 0.375rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.oye-pdp-rating__bars li {
	align-items: center;
	display: grid;
	font-size: 0.8125rem;
	font-weight: 700;
	gap: 0.625rem;
	grid-template-columns: 2rem minmax(0, 1fr) 2rem;
}

.oye-pdp-rating__track {
	background-color: var(--oye-lilac, #E6D6F3);
	border-radius: 999px;
	height: 0.625rem;
	overflow: hidden;
}

.oye-pdp-rating__track span {
	background-color: var(--oye-aubergine, #210D35);
	border-radius: 999px;
	display: block;
	height: 100%;
}

.oye-pdp-rating__n {
	text-align: end;
}

/* WooCommerce's list and form, restyled. */
.oye-pdp-reviews #reviews {
	display: block !important;
}

.oye-pdp-reviews .woocommerce-Reviews-title,
.oye-pdp-reviews .woocommerce-noreviews {
	display: none;
}

.oye-pdp-reviews #comments {
	margin: 0;
}

.oye-pdp-reviews .commentlist {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: minmax(0, 1fr);
	list-style: none;
	margin: 0;
	padding: 0;
}

.oye-pdp-reviews .commentlist li {
	background-color: #FFFDF8;
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: 1.25rem;
	box-shadow: 4px 5px 0 var(--oye-aubergine, #210D35);
	margin: 0;
	padding: 1.25rem 1.25rem 1.5rem;
	position: relative;
}

.oye-pdp-reviews .commentlist li::before {
	color: var(--oye-lilac, #E6D6F3);
	content: "\201C";
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: 4.5rem;
	line-height: 1;
	position: absolute;
	right: 1rem;
	top: 0.25rem;
}

.oye-pdp-reviews .comment_container {
	display: block;
}

.oye-pdp-reviews .comment_container img.avatar {
	display: none; /* Generic avatars add noise; names carry the review. */
}

.oye-pdp-reviews .comment-text {
	border: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

.oye-pdp-reviews .comment-text .star-rating {
	float: none !important;
	margin: 0 0 0.625rem !important;
}

.oye-pdp-reviews .comment-text .meta {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.5rem;
	margin: 0 0 0.625rem;
}

.oye-pdp-reviews .woocommerce-review__author {
	font-size: 1rem;
	font-weight: 800;
}

.oye-pdp-reviews .woocommerce-review__published-date {
	color: var(--oye-aubergine-soft, #5B4A6E);
	flex-basis: 100%;
	font-size: 0.8125rem;
}

.oye-pdp-reviews .comment-text .description {
	font-size: 1.0625rem;
	line-height: 1.55;
}

.oye-pdp-reviews .comment-text .description p {
	margin: 0;
}

.oye-pdp-reviews #review_form_wrapper {
	background-color: #FFFDF8;
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: 1.25rem;
	box-sizing: border-box;
	margin-top: 2rem;
	max-width: 44rem;
	padding: clamp(1.25rem, 3vw, 2rem);
	scroll-margin-top: 1.5rem;
}

.oye-pdp-reviews .comment-reply-title {
	display: block;
	font-family: var(--oye-font-display, Georgia, serif);
	font-size: 1.5rem;
	font-weight: 800;
	margin-bottom: 0.75rem;
}

.oye-pdp-reviews .form-submit input[type="submit"] {
	background-color: var(--oye-lime, #D7F75B);
	border: 2px solid var(--oye-aubergine, #210D35);
	border-radius: var(--oye-btn-radius, 0.625rem);
	box-shadow: 3px 4px 0 var(--oye-aubergine, #210D35);
	color: var(--oye-aubergine, #210D35);
	cursor: pointer;
	font: inherit;
	font-weight: 800;
	min-height: 2.875rem;
	padding: 0.625rem 1.5rem;
}

.oye-pdp-reviews .form-submit input[type="submit"]:active {
	box-shadow: none;
	transform: translate(3px, 4px);
}

.oye-pdp-reviews__empty-mascot img {
	margin-bottom: 1rem;
}

/* Sticky bar savings */
.oye-buybar__save {
	background-color: var(--oye-lime, #D7F75B);
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 800;
	justify-self: end;
	padding: 0.0625rem 0.5rem;
}

.oye-buybar__save[hidden] {
	display: none;
}

@media (min-width: 48em) {
	.oye-pdp-rating {
		grid-template-columns: auto minmax(0, 1fr);
		max-width: 44rem;
	}

	.oye-pdp-reviews .commentlist {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 64em) {
	.oye-pdp-reviews .commentlist {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* ==========================================================================
   Fixes: WooCommerce's review styles use ID selectors (#reviews #comments …),
   so ours must match that strength to apply.
   ========================================================================== */

.oye-pdp-reviews #reviews #comments ol.commentlist {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: minmax(0, 1fr);
	list-style: none;
	margin: 0;
	padding: 0;
}

.oye-pdp-reviews #reviews #comments ol.commentlist li {
	background-color: #FFFDF8 !important;
	border: 2px solid var(--oye-aubergine, #210D35) !important;
	border-radius: 1.25rem !important;
	box-shadow: 4px 5px 0 var(--oye-aubergine, #210D35);
	box-sizing: border-box;
	margin: 0 !important;
	padding: 1.25rem 1.25rem 1.5rem !important;
	position: relative;
}

.oye-pdp-reviews #reviews #comments ol.commentlist li img.avatar {
	display: none !important;
}

.oye-pdp-reviews #reviews #comments ol.commentlist li .comment-text {
	border: 0 !important;
	border-radius: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

.oye-pdp-reviews #reviews #comments ol.commentlist li .comment-text .star-rating {
	float: none !important;
	margin: 0 0 0.625rem !important;
}

.oye-pdp-reviews #reviews #comments ol.commentlist li .comment-text p.meta {
	color: var(--oye-aubergine, #210D35) !important;
	font-size: 0.9375rem !important;
	margin: 0 0 0.625rem !important;
}

.oye-pdp-reviews #reviews #comments ol.commentlist li .comment-text p.meta em.woocommerce-review__awaiting-approval {
	color: var(--oye-aubergine-soft, #5B4A6E);
	font-style: italic;
}

.oye-pdp-reviews #reviews #comments ol.commentlist li .description {
	font-size: 1.0625rem;
	line-height: 1.55;
}

.oye-pdp-reviews #reviews #comments ol.commentlist li .description p {
	margin: 0;
}

.oye-pdp-reviews #reviews #comments ol.commentlist li .description ::selection {
	background-color: var(--oye-lime, #D7F75B);
	color: var(--oye-aubergine, #210D35);
}

/* Logged-out: WooCommerce's "log in to review" message in the form card. */
.oye-pdp-reviews .must-log-in,
.oye-pdp-reviews .woocommerce-verification-required {
	font-size: 1rem;
	margin: 0;
}

.oye-pdp-reviews .must-log-in a {
	color: inherit;
	font-weight: 800;
	text-underline-offset: 0.2em;
}

@media (min-width: 48em) {
	.oye-pdp-reviews #reviews #comments ol.commentlist {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 64em) {
	.oye-pdp-reviews #reviews #comments ol.commentlist {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* The main price follows the chosen variation, so hide WooCommerce's
   second price under the options. */
.oye-pdp-buy .woocommerce-variation-price {
	display: none;
}

.oye-pdp-buy .woocommerce-variation-availability p {
	font-size: 0.875rem;
	font-weight: 700;
	margin: 0.25rem 0 0;
}

.oye-pdp-buy__notice {
	font-size: 0.9375rem;
	font-weight: 700;
	margin: 0;
}

.oye-pdp-buy__notice.is-error {
	color: #B3261E;
}

.oye-pdp-buy__notice[hidden] {
	display: none;
}
