/**
 * AVELUNEXA — product page.
 *
 * The only stylesheet for woocommerce/content-single-product.php, loaded on
 * product pages only (functions.php). Three bands: the product framed in satin
 * (frame and promise panel from 1200 px), the information tabs with the buying
 * guide, and "You may also like". Gallery and summary are Blocksy's own layers,
 * sized through its variables (--product-gallery-width) rather than overridden.
 */

.av-pdp {
	--av-pdp-core: 1000px;
	--av-pdp-ink: #5a3a46;
	--av-pdp-mauve: #8b4a62;
	--av-pdp-radius: 12px;
}

/* The bands are full width; Blocksy's article width and max-width would box them in. */
.single-product article:has(> .av-pdp) { width: auto; max-width: none; }
.single-product article:has(> .av-pdp) > .woocommerce-notices-wrapper { width: min(100% - 2 * var(--av-gutter), 1280px); margin-inline: auto; }

/* =========================================================================
 * BAND 1 — PRODUCT
 * ====================================================================== */

.av-pdp__stage { background: var(--av-surface-raised); }
.av-pdp__core { max-width: 1280px; margin-inline: auto; padding: var(--av-space-sm) var(--av-gutter) var(--av-space-xl); }
.av-pdp__frame,
.av-pdp__stage > .av-pdp__mood { display: none; }

@media (min-width: 1200px) {
	.av-pdp__stage { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, var(--av-pdp-core)) minmax(0, 1.3fr); }
	.av-pdp__core { max-width: none; margin: 0; padding-inline: clamp(1.5rem, 2.5vw, 2.5rem); }
	.av-pdp__frame,
	.av-pdp__stage > .av-pdp__mood { display: block; }
}

.av-pdp__frame,
.av-pdp__mood { position: relative; overflow: hidden; isolation: isolate; }
.av-satin { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; }

.av-pdp__mood-copy { padding: clamp(2.5rem, 9vw, 8rem) clamp(1rem, 2vw, 2.5rem) var(--av-space-xl); color: var(--av-pdp-ink); }
.av-pdp__stage .av-pdp__mood-copy { display: none; }
@media (min-width: 1400px) { .av-pdp__stage .av-pdp__mood-copy { display: block; } }

.av-pdp__eyebrow { margin: 0 0 var(--av-space-sm); font-size: var(--av-text-caption); font-weight: var(--av-weight-medium); letter-spacing: var(--av-tracking-widest); text-transform: uppercase; color: var(--av-pdp-ink); }

.av-pdp__script {
	margin: 0 0 var(--av-space-md);
	font-family: var(--av-font-display);
	font-size: clamp(1.75rem, 1rem + 1.4vw, 2.5rem);
	font-style: italic;
	line-height: 1.1;
	color: var(--av-pdp-mauve);
}

.av-pdp__script::after { content: ''; display: block; width: 40px; height: 1px; margin-block-start: var(--av-space-md); background: currentColor; }
.av-pdp__mood ul { display: grid; gap: var(--av-space-xs); margin: 0; padding: 0; list-style: none; font-size: var(--av-text-small); }
.av-pdp__mood li { display: flex; align-items: center; gap: var(--av-space-2xs); }
.av-pdp__mood li svg { width: 16px; height: 16px; }

/* Breadcrumb (Blocksy's builder, BreadcrumbList microdata). */
.av-pdp .ct-breadcrumbs { margin-block-end: var(--av-space-sm); font-size: var(--av-text-caption); color: var(--av-text-secondary); }
.av-pdp .ct-breadcrumbs a { color: inherit; text-decoration: none; }
.av-pdp .ct-breadcrumbs a:hover { color: var(--av-text-accent); }
.av-pdp .ct-breadcrumbs .last-item { color: var(--av-text-primary); font-weight: var(--av-weight-semibold); }

/* Gallery and summary: Blocksy's two-column wrapper. */
.av-pdp .product-entry-wrapper { --product-gallery-width: 55%; width: 100%; max-width: none; }
.av-pdp .woocommerce-product-gallery { position: relative; margin: 0; }
/* The gallery stays in view while the summary scrolls past it, always just
   below whatever the header covers (whole or tucked: --av-header-offset). */
@media (min-width: 1000px) {
	.av-pdp .woocommerce-product-gallery { position: sticky; top: calc(var(--av-header-offset, 0px) + var(--av-space-sm)); align-self: flex-start; transition: top var(--av-transition-normal) var(--av-ease); }
}

/* Full-screen photo: Blocksy's corner trigger, drawn as an expand control. */
.av-pdp .woocommerce-product-gallery__trigger {
	position: absolute;
	top: var(--av-space-xs);
	right: var(--av-space-xs);
	z-index: 3;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--av-surface-raised);
	box-shadow: var(--av-shadow-md);
	font-size: 0;
	text-decoration: none;
}

.av-pdp .woocommerce-product-gallery__trigger::before {
	content: '';
	position: absolute;
	inset: 0;
	width: 18px;
	height: 18px;
	margin: auto;
	border: 0;
	background: var(--av-text-primary);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* The full-screen viewer (PhotoSwipe, at the end of <body>): a solid backdrop.
   Blocksy forces 70% opacity with !important, which left the page showing
   through behind the photo; only !important can restore it. */
.single-product .pswp .pswp__bg { background: #0b0b0d; opacity: 1 !important; }

.av-pdp .woocommerce-product-gallery__trigger:hover { background: var(--av-surface-accent); }
.av-pdp .woocommerce-product-gallery__trigger:focus-visible { outline: 2px solid var(--av-accent); outline-offset: 2px; }
.av-pdp .ct-product-gallery-container .flexy-items .ct-media-container,
.av-pdp .ct-product-gallery-container > .ct-media-container { border-radius: var(--av-pdp-radius); background: var(--av-surface-accent); }
.av-pdp .ct-product-gallery-container .ct-media-container img { object-fit: contain; }
.av-pdp .flexy-pills .ct-media-container { border: 1px solid var(--av-border); border-radius: 8px; background: var(--av-surface-raised); }
.av-pdp .flexy-pills .active .ct-media-container { border-color: var(--av-accent); }

@media (max-width: 767px) {
	/* One scrollable row of thumbnails: wrapped rows pushed the title below the first screen. */
	.av-pdp .flexy-pills ol { flex-wrap: nowrap; overflow-x: auto; gap: 8px; scrollbar-width: none; }
	.av-pdp .flexy-pills li { flex: 0 0 64px; width: 64px; }
}

.av-pdp .summary { margin: 0; }
@media (max-width: 999px) { .av-pdp .summary { margin-block-start: var(--av-space-lg); } }
.av-product-category { margin: 0 0 var(--av-space-2xs); font-size: var(--av-text-caption); font-weight: var(--av-weight-semibold); letter-spacing: var(--av-tracking-widest); text-transform: uppercase; }
.av-product-category a { color: var(--av-text-accent); text-decoration: none; }
.av-brand { margin: 0 0 var(--av-space-2xs); font-size: var(--av-text-caption); letter-spacing: var(--av-tracking-wide); text-transform: uppercase; color: var(--av-text-tertiary); }

.av-pdp .product_title {
	margin: 0 0 var(--av-space-xs);
	font-family: var(--av-font-display);
	font-size: clamp(1.75rem, 1.3rem + 1.1vw, 2.25rem);
	font-weight: var(--av-weight-regular);
	line-height: var(--av-leading-tight);
	letter-spacing: var(--av-tracking-tight);
}

.av-pdp .summary .price { margin: 0 0 var(--av-space-sm); font-size: var(--av-text-h4); font-weight: var(--av-weight-semibold); color: var(--av-text-primary); }
.av-pdp .summary .price del { color: var(--av-text-tertiary); font-weight: var(--av-weight-regular); }
.av-pdp .summary .price ins { text-decoration: none; }
.av-pdp .woocommerce-product-details__short-description { font-size: var(--av-text-small); color: var(--av-text-secondary); line-height: var(--av-leading-normal); }
.av-care-note { font-size: var(--av-text-small); color: var(--av-text-secondary); }

/* Real saving and sale end under the price; nothing when not on sale. */
.av-pdp .av-offer { display: grid; gap: var(--av-space-xs); margin-block-end: var(--av-space-sm); }
.av-pdp .av-offer[hidden] { display: none; }
.av-pdp .av-offer__saving { margin: 0; color: var(--av-text-accent); font-size: var(--av-text-small); font-weight: var(--av-weight-semibold); }

/* Highlights: four icon facts from the listing. */
.av-highlights { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--av-space-xs); margin: var(--av-space-md) 0; padding: 0; list-style: none; text-align: center; }
.av-highlights li { display: grid; justify-items: center; align-content: start; gap: 2px; font-size: var(--av-text-caption); line-height: var(--av-leading-snug); color: var(--av-text-secondary); }
.av-highlights strong { margin-block-start: var(--av-space-2xs); font-size: var(--av-text-small); font-weight: var(--av-weight-semibold); color: var(--av-text-primary); }
.av-highlights__icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--av-surface-accent); color: var(--av-accent); }
.av-highlights__icon svg { width: 26px; height: 26px; }
@media (max-width: 420px) { .av-highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--av-space-md); } }

/* Buy row: quantity, add to basket, save for later. */
.av-pdp form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: var(--av-space-xs); margin: var(--av-space-md) 0; }
.av-pdp form.cart .quantity { --quantity-width: 112px; --quantity-height: 52px; }
.av-pdp form.cart .single_add_to_cart_button {
	flex: 1 1 9rem;
	gap: var(--av-space-2xs);
	min-height: 52px;
	background: var(--av-accent);
	color: var(--av-text-on-gold);
	font-size: var(--av-text-body);
	font-weight: var(--av-weight-semibold);
}

.av-pdp form.cart .single_add_to_cart_button::before {
	content: '';
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 7h14l2 14H3L5 7Z'/%3E%3Cpath d='M8 8V6a4 4 0 0 1 8 0v2'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 7h14l2 14H3L5 7Z'/%3E%3Cpath d='M8 8V6a4 4 0 0 1 8 0v2'/%3E%3C/svg%3E") center / contain no-repeat;
}

.av-pdp form.cart .single_add_to_cart_button:hover { background: var(--av-accent-hover); }

.av-pdp form.cart .av-save-item {
	display: inline-flex;
	align-items: center;
	gap: var(--av-space-2xs);
	min-height: 52px;
	padding: 0 var(--av-space-3xs);
	border: 0;
	background: transparent;
	color: var(--av-text-primary);
	font-size: var(--av-text-small);
	white-space: nowrap;
	font-weight: var(--av-weight-medium);
	cursor: pointer;
}

.av-pdp form.cart .av-save-item svg { width: 22px; height: 22px; color: var(--av-accent); }
.av-pdp form.cart .av-save-item:hover { color: var(--av-text-accent); }
.av-pdp form.cart .av-save-item[aria-pressed='true'] svg { fill: currentColor; }

.av-pdp .stock { font-size: var(--av-text-small); font-weight: var(--av-weight-medium); }
.av-pdp .stock.in-stock { color: var(--av-success); }
.av-pdp .stock.out-of-stock { color: var(--av-danger); }
/* Showcase (sales not open yet): informative, not "available" green. */
.av-pdp .stock.av-orders-soon { color: var(--av-text-accent); }

/* Payment marks and trust facts under the buy row. */
.av-single-assurance { display: grid; gap: var(--av-space-md); }
.av-single-assurance .av-pay-marks--chips img { border: 1px solid var(--av-border); }
.av-assurance--row { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--av-space-sm); margin: 0; padding: var(--av-space-sm) 0 0; border-block-start: 1px solid var(--av-border); list-style: none; }
.av-assurance--row li { display: flex; align-items: flex-start; gap: var(--av-space-2xs); }
.av-assurance--row svg { flex: none; width: 24px; height: 24px; color: var(--av-accent); }
.av-assurance--row p { margin: 0; font-size: var(--av-text-caption); line-height: var(--av-leading-snug); color: var(--av-text-secondary); }
.av-assurance--row strong { display: block; color: var(--av-text-primary); font-weight: var(--av-weight-semibold); }

/* Discretion line (avelunexa-core), only for products marked as such. */
.av-pdp .av-discretion { margin-block: var(--av-space-sm); padding: var(--av-space-xs) var(--av-space-sm); border-radius: var(--av-radius-md); background: var(--av-surface-secondary); font-size: var(--av-text-small); color: var(--av-text-secondary); }

/* =========================================================================
 * BAND 2 — INFORMATION TABS AND BUYING GUIDE
 * ====================================================================== */

.av-pdp__info { padding-block: var(--av-space-xl); background: var(--av-surface-secondary); }
.av-pdp__info-inner { display: grid; gap: var(--av-space-lg); width: min(100% - 2 * var(--av-gutter), 1280px); margin-inline: auto; }
@media (min-width: 1000px) { .av-pdp__info-inner { grid-template-columns: minmax(0, 1fr) minmax(280px, 360px); align-items: start; gap: var(--av-space-xl); } }

.av-tabs__list { display: flex; gap: var(--av-space-lg); overflow-x: auto; border-block-end: 1px solid var(--av-border-strong); scrollbar-width: none; }
.av-tabs__list::-webkit-scrollbar { display: none; }

.av-tabs__list [role='tab'] {
	flex: none;
	min-height: var(--av-tap-target);
	margin-block-end: -1px;
	padding: 0 0 var(--av-space-2xs);
	border: 0;
	border-block-end: 2px solid transparent;
	background: none;
	font-family: var(--av-font-display);
	font-size: var(--av-text-h4);
	color: var(--av-text-secondary);
	cursor: pointer;
}

.av-tabs__list [role='tab'][aria-selected='true'] { border-block-end-color: var(--av-accent); color: var(--av-text-primary); font-weight: var(--av-weight-semibold); }
.av-tabs__list [role='tab']:hover { color: var(--av-text-primary); }

.av-tabs__panel { max-width: 72ch; padding-block-start: var(--av-space-md); color: var(--av-text-secondary); line-height: var(--av-leading-relaxed); overflow-wrap: anywhere; }
.av-tabs__panel:focus-visible { outline: 2px solid var(--av-accent); outline-offset: 4px; }
.av-tabs__panel h2 { margin: 0 0 var(--av-space-sm); font-family: var(--av-font-display); font-size: var(--av-text-h3); font-weight: var(--av-weight-regular); color: var(--av-text-primary); }
.av-tabs__panel h3 { margin: var(--av-space-md) 0 var(--av-space-2xs); font-family: var(--av-font-display); font-size: var(--av-text-h4); font-weight: var(--av-weight-regular); color: var(--av-text-primary); }
.av-tabs__panel > h3:first-child { margin-block-start: 0; }
.av-tabs__panel table { width: 100%; max-width: 560px; margin-block: var(--av-space-sm); border: 0; border-collapse: collapse; }
.av-tabs__panel th,
.av-tabs__panel td { padding: var(--av-space-xs) var(--av-space-sm) var(--av-space-xs) 0; border: 0; border-block-end: 1px solid var(--av-border); text-align: start; font-size: var(--av-text-small); }
.av-tabs__panel th { width: 40%; font-weight: var(--av-weight-semibold); color: var(--av-text-primary); }
.av-tabs__panel .product_meta { margin-block-start: var(--av-space-md); font-size: var(--av-text-small); }
.av-tabs__panel .product_meta > span { display: block; margin-block-end: var(--av-space-3xs); }

.av-pdp-guide { display: grid; justify-items: start; gap: var(--av-space-2xs); padding: var(--av-space-lg); border: 1px solid var(--av-border); border-radius: var(--av-pdp-radius); background: var(--av-surface-raised); box-shadow: var(--av-shadow-sm); }
.av-pdp-guide__icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--av-surface-accent); color: var(--av-accent); }
.av-pdp-guide .av-pdp__eyebrow { margin: var(--av-space-xs) 0 0; color: var(--av-text-accent); }
.av-pdp-guide h2 { margin: 0; font-family: var(--av-font-display); font-size: var(--av-text-h3); font-weight: var(--av-weight-regular); line-height: var(--av-leading-snug); }
.av-pdp-guide p:not(.av-pdp__eyebrow) { margin: 0 0 var(--av-space-xs); font-size: var(--av-text-small); color: var(--av-text-secondary); }
.av-pdp-guide .av-btn svg { width: 16px; height: 16px; }

/* =========================================================================
 * BAND 3 — YOU MAY ALSO LIKE
 * ====================================================================== */

.av-pdp__more { display: grid; background: var(--av-surface-raised); }
@media (min-width: 1000px) { .av-pdp__more { grid-template-columns: minmax(0, 1fr) minmax(300px, 30%); } }

.av-pdp__more-products { min-width: 0; padding: var(--av-space-xl) var(--av-gutter); }
.av-pdp__more-head { margin-block-end: var(--av-space-lg); text-align: center; }
.av-pdp__more-head h2 { margin: 0; font-family: var(--av-font-display); font-size: var(--av-text-h2); font-weight: var(--av-weight-regular); }
.av-pdp__more-head p { margin: var(--av-space-3xs) 0 0; font-size: var(--av-text-small); color: var(--av-text-secondary); }

/* A product rail: the shared cards in one scrollable row. */
.av-rail { position: relative; }
.woocommerce .av-rail ul.products { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: calc((100% - 3 * 24px) / 4); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
.woocommerce .av-rail ul.products::-webkit-scrollbar { display: none; }
.woocommerce .av-rail ul.products li.product { scroll-snap-align: start; }
@media (max-width: 1100px) { .woocommerce .av-rail ul.products { grid-auto-columns: calc((100% - 2 * 24px) / 3); } }
@media (max-width: 767px) { .woocommerce .av-rail ul.products { grid-auto-columns: 72%; } }

.av-rail__arrow { position: absolute; top: 34%; z-index: 2; display: grid; place-items: center; width: var(--av-tap-target); height: var(--av-tap-target); padding: 0; border: 1px solid var(--av-border); border-radius: 50%; background: var(--av-surface-raised); box-shadow: var(--av-shadow-md); color: var(--av-text-primary); cursor: pointer; }
.av-rail__arrow[hidden] { display: none; }
.av-rail__arrow:disabled { opacity: 0.35; cursor: default; }
.av-rail__arrow svg { width: 18px; height: 18px; }
.av-rail__arrow--prev { left: -12px; }
.av-rail__arrow--prev svg { transform: rotate(180deg); }
.av-rail__arrow--next { right: -12px; }

.av-pdp__mood--wide { min-height: 240px; }
.av-pdp__mood--wide .av-pdp__mood-copy { display: grid; align-content: center; height: 100%; padding: var(--av-space-xl) clamp(1.5rem, 3vw, 3rem); }
.av-pdp__mood--wide .av-pdp__script { font-size: clamp(1.75rem, 1.2rem + 1.4vw, 2.75rem); }
.av-pdp__mood--wide .av-pdp__eyebrow { margin: 0; }
