/* ==========================================================================
   Rivora: woocommerce.css
   Shop, product, cart, checkout, account and order confirmation.
   Shared tokens (--rw-*) are declared in woocommerce-global.css; the fallbacks
   below keep this file correct even if it ever loads on its own.
   v3 "maison" rules: mehrab arches around renders, jali lattice as fine gold
   ornament, silk fields in each fragrance's colour, gold leaf only on numerals,
   arch outlines and planet drawings. Left-aligned, sentence case, one flat
   gold primary action, no pills, no glow cards.
   ========================================================================== */

:root {
	--rw-ink: var(--wp--preset--color--plum-ink, #1c0618);
	--rw-cream: var(--wp--preset--color--cream, #f3e9dc);
	--rw-gold: var(--wp--preset--color--gold, #d9b25f);
	--rw-gold-hover: color-mix(in srgb, var(--rw-gold) 82%, #fff);
	--rw-muted: color-mix(in srgb, var(--rw-cream) 70%, var(--rw-ink));
	--rw-line: color-mix(in srgb, var(--rw-cream) 16%, transparent);
	--rw-line-strong: color-mix(in srgb, var(--rw-cream) 30%, transparent);
	--rw-line-gold: color-mix(in srgb, var(--rw-gold) 55%, transparent);
	--rw-raise: color-mix(in srgb, var(--rw-cream) 4%, var(--rw-ink));
	--rw-field: color-mix(in srgb, var(--rw-cream) 5%, var(--rw-ink));
	--rw-error: #f0a0aa;
	--rw-display: var(--wp--preset--font-family--display, "Cormorant Garamond", "Cormorant", Georgia, serif);
	--rw-sans: var(--wp--preset--font-family--sans, "Jost", system-ui, -apple-system, "Segoe UI", sans-serif);
	--rw-radius: 2px;
	--rw-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--rw-sticky-top: calc(var(--rivora-header-h, 72px) + var(--wp-admin--admin-bar--height, 0px) + 1.5rem);
}

/* --------------------------------------------------------------------------
   v3 craft tokens: mehrab arch, jali lattice, planet line drawings, textures.
   Ornaments are inline SVG (data URIs) so they cost no requests.
   Field colours come from the product's Celestial Profile: Rivora Core prints
   --rv-field-top / --rv-field-bottom / --rv-glow (and optionally --rv-silk)
   on <body> for single products and inline on each product card.
   -------------------------------------------------------------------------- */
:root {
	--rw-night: #120410;
	--rw-plum-ink: #1c0618;
	--rw-plum: var(--wp--preset--color--plum, #641164);
	--rw-grain: url("../textures/grain.webp");
	--rw-leaf: url("../textures/gold-leaf.webp");

	/* Mehrab (temple arch): filled shape for masks. 400 x 500 box. */
	--rw-arch: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 500' preserveAspectRatio='none'%3E%3Cpath d='M0 500V200C0 112 66 56 158 24C181 16 194 9 200 0C206 9 219 16 242 24C334 56 400 112 400 200V500Z'/%3E%3C/svg%3E");

	/* Mehrab outline: double gold line + four-point star finial (emblem). 400 x 540 box, starts 40 above the arch. */
	--rw-arch-line: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -40 400 540'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round'%3E%3Cpath stroke-width='1.6' d='M14 500V204C14 122 79 70 164 40C185 32 195 25 200 15C205 25 215 32 236 40C321 70 386 122 386 204V500'/%3E%3Cpath stroke-width='.8' d='M23 500V209C23 132 86 82 169 53C188 46 196 40 200 32C204 40 212 46 231 53C314 82 377 132 377 209V500'/%3E%3Cpath stroke-width='1' d='M200 15V6'/%3E%3C/g%3E%3Cpath d='M200 -34Q202.5 -12.5 222 -10Q202.5 -7.5 200 14Q197.5 -7.5 178 -10Q197.5 -12.5 200 -34Z'/%3E%3Ccircle cx='170' cy='-10' r='2'/%3E%3Ccircle cx='230' cy='-10' r='2'/%3E%3C/svg%3E");

	/* Jali lattice tile (fine gold line). */
	--rw-jali: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23d9b25f' stroke-width='.7'%3E%3Cpath d='M28 7L49 28 28 49 7 28Z'/%3E%3Cpath d='M13 13H43V43H13Z'/%3E%3Ccircle cx='28' cy='28' r='6'/%3E%3Cpath d='M28 0V7M28 49V56M0 28H7M49 28H56M0 0L13 13M56 0L43 13M0 56L13 43M56 56L43 43'/%3E%3C/g%3E%3C/svg%3E");

	/* Jali rule: central star with lattice diamonds, used between chapters. */
	--rw-rule: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='168' height='28' viewBox='0 0 168 28'%3E%3Cg fill='none' stroke='%23d9b25f' stroke-width='.8'%3E%3Cpath d='M30 14L38 6 46 14 38 22Z M122 14L130 6 138 14 130 22Z M34 14H42M126 14H134'/%3E%3Cpath d='M0 14H30M46 14H66M102 14H122M138 14H168'/%3E%3C/g%3E%3Cpath fill='%23d9b25f' d='M84 1Q85.6 12.4 97 14Q85.6 15.6 84 27Q82.4 15.6 71 14Q82.4 12.4 84 1Z'/%3E%3Ccircle fill='%23d9b25f' cx='56' cy='14' r='1.6'/%3E%3Ccircle fill='%23d9b25f' cx='112' cy='14' r='1.6'/%3E%3C/svg%3E");
}

/* --------------------------------------------------------------------------
   Shared type helpers
   -------------------------------------------------------------------------- */
.rv-pdp__title,
.rv-shop__title,
.rv-commerce__title,
.rv-commerce__status,
.rv-commerce--thanks .wc-block-order-confirmation-status > p:first-child {
	margin: 0;
	font-family: var(--rw-display) !important;
	font-weight: 300 !important;
	line-height: 1.02 !important;
	letter-spacing: -0.01em !important;
	text-transform: none !important;
	text-wrap: balance;
}
.rv-shop__title {
	font-size: clamp(3.25rem, 1.6rem + 7vw, 7.5rem) !important;
}
.rv-shop__title--search {
	font-size: clamp(2.5rem, 1.5rem + 4vw, 4.5rem) !important;
}
.rv-commerce__title,
.rv-commerce__status,
.rv-commerce--thanks .wc-block-order-confirmation-status > p:first-child {
	font-size: clamp(2.75rem, 1.6rem + 4.5vw, 5.5rem) !important;
}

.rv-pdp h2.wp-block-heading,
.rv-related__title,
.rv-commerce h2.wp-block-heading,
.rv-no-results h2 {
	font-family: var(--rw-display);
	font-weight: 400;
	font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem);
	line-height: 1.05;
	letter-spacing: -0.01em;
	text-transform: none;
}

/* Text link with an animated underline (secondary action). */
.rv-textlink a,
.rv-filter a,
.rv-pdp__details a,
.rv-commerce__after a {
	color: var(--rw-cream);
	text-decoration: none;
	background: linear-gradient(currentColor, currentColor) left bottom / 100% 1px no-repeat;
	padding-bottom: 2px;
	transition: background-size 0.35s var(--rw-ease), color 0.2s var(--rw-ease);
}
.rv-textlink a:hover,
.rv-pdp__details a:hover,
.rv-commerce__after a:hover {
	background-size: 0 1px;
	background-position: right bottom;
}

/* Breadcrumbs: quiet, no separators shouting. */
.wp-block-woocommerce-breadcrumbs,
.woocommerce-breadcrumb {
	margin: 0 !important;
	color: var(--rw-muted) !important;
	font-family: var(--rw-sans);
	font-size: 0.8125rem !important;
	font-weight: 400;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
.wp-block-woocommerce-breadcrumbs a,
.woocommerce-breadcrumb a {
	color: inherit !important;
	text-decoration: none;
}
.wp-block-woocommerce-breadcrumbs a:hover,
.woocommerce-breadcrumb a:hover {
	color: var(--rw-cream) !important;
}

/* Prices: real numbers, so they get the display face. */
.wc-block-components-product-price,
.wp-block-woocommerce-product-price,
.woocommerce .price {
	color: var(--rw-cream) !important;
	font-variant-numeric: lining-nums tabular-nums;
}
.wc-block-components-product-price del,
.woocommerce .price del {
	color: var(--rw-muted);
	opacity: 1;
}
.wc-block-components-product-price ins,
.woocommerce .price ins {
	text-decoration: none;
	background: none;
}
.woocommerce-price-suffix,
.wc-block-components-product-price__suffix {
	color: var(--rw-muted);
	font-family: var(--rw-sans);
	font-size: 0.75rem;
	font-weight: 400;
	letter-spacing: 0;
}

/* Ratings: gold stars, nothing else. */
.wc-block-components-product-rating__stars,
.star-rating {
	color: var(--rw-gold) !important;
}
.wc-block-components-product-rating__stars::before,
.star-rating::before {
	color: var(--rw-line-strong) !important;
}

/* --------------------------------------------------------------------------
   Fields (block checkout + classic account/reviews)
   -------------------------------------------------------------------------- */
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-form .wc-block-components-text-input input,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.wc-block-components-totals-coupon input,
.woocommerce form .input-text,
.woocommerce form select,
.woocommerce form textarea,
.woocommerce-account input[type="text"],
.woocommerce-account input[type="email"],
.woocommerce-account input[type="password"],
.woocommerce-account input[type="tel"],
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form textarea,
.rv-search .wp-block-search__input {
	background: var(--rw-field) !important;
	color: var(--rw-cream) !important;
	border: 1px solid var(--rw-line-strong) !important;
	border-radius: var(--rw-radius) !important;
	font-family: var(--rw-sans) !important;
	font-size: 1rem !important;
	box-shadow: none !important;
	transition: border-color 0.2s var(--rw-ease);
}
.woocommerce form .input-text,
.woocommerce form select,
.woocommerce-account input,
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form textarea {
	padding: 0.8rem 0.9rem !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input:focus,
.woocommerce form .input-text:focus,
.woocommerce form select:focus,
.comment-form input:focus,
.comment-form textarea:focus,
.rv-search .wp-block-search__input:focus {
	border-color: var(--rw-gold) !important;
	outline: 2px solid var(--rw-gold) !important;
	outline-offset: 1px;
}
.wc-block-components-text-input label,
.wc-block-components-combobox .wc-block-components-combobox-control label.components-base-control__label,
.wc-blocks-components-select .wc-blocks-components-select__label,
.woocommerce form .form-row label,
.comment-form label {
	color: var(--rw-muted) !important;
	font-family: var(--rw-sans);
	text-transform: none;
	letter-spacing: 0;
}
.wc-blocks-components-select .wc-blocks-components-select__container {
	background: var(--rw-field) !important;
	border-radius: var(--rw-radius) !important;
}
.wc-blocks-components-select__select option,
.woocommerce form select option {
	background: var(--rw-ink);
	color: var(--rw-cream);
}
.wc-blocks-components-select .wc-blocks-components-select__expand {
	fill: var(--rw-gold) !important;
}
.components-combobox-control__suggestions-container,
.components-form-token-field__suggestions-list {
	background: var(--rw-ink) !important;
	color: var(--rw-cream) !important;
	border-color: var(--rw-line-strong) !important;
}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"],
.wc-block-components-radio-control .wc-block-components-radio-control__input,
.woocommerce form input[type="checkbox"],
.woocommerce form input[type="radio"] {
	accent-color: var(--rw-gold);
	background: var(--rw-field) !important;
	border: 1px solid var(--rw-line-strong) !important;
}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
	border-radius: var(--rw-radius) !important;
}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
	background: var(--rw-gold) !important;
	border-color: var(--rw-gold) !important;
}
.wc-block-components-checkbox .wc-block-components-checkbox__mark {
	fill: var(--rw-ink) !important;
}
.wc-block-components-radio-control .wc-block-components-radio-control__input:checked {
	border-color: var(--rw-gold) !important;
}
.wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before {
	background: var(--rw-gold) !important;
}
.wc-block-components-validation-error,
.wc-block-components-validation-error p,
.woocommerce-invalid label {
	color: var(--rw-error) !important;
}
.wc-block-components-text-input.has-error input,
.wc-blocks-components-select.has-error .wc-blocks-components-select__select {
	border-color: var(--rw-error) !important;
}

/* Classic buttons (account, reviews, legacy forms): same flat gold. */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .button.alt,
.wc-block-components-button:not(.is-link):not(.wc-block-components-drawer__close):not(.wc-block-mini-cart__footer-cart):not(.wc-block-components-notice-banner__dismiss):not(.wc-block-components-panel__button),
.rv-search .wp-block-search__button {
	min-height: 48px;
	padding: 0.8rem 1.6rem !important;
	border: 1px solid var(--rw-gold) !important;
	border-radius: var(--rw-radius) !important;
	background: var(--rw-gold) !important;
	color: var(--rw-ink) !important;
	font-family: var(--rw-sans) !important;
	font-size: 0.9375rem !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: background-color 0.2s var(--rw-ease), border-color 0.2s var(--rw-ease);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.wc-block-components-button:not(.is-link):not(.wc-block-components-drawer__close):not(.wc-block-mini-cart__footer-cart):not(.wc-block-components-notice-banner__dismiss):not(.wc-block-components-panel__button):hover,
.rv-search .wp-block-search__button:hover {
	background: var(--rw-gold-hover) !important;
	border-color: var(--rw-gold-hover) !important;
	color: var(--rw-ink) !important;
}
.wc-block-components-button .wc-block-components-button__text {
	color: inherit !important;
}
.wc-block-components-button.is-link,
.wc-block-components-totals-coupon-link,
.wc-block-components-checkout-return-to-cart-button,
.wc-block-components-address-card__edit {
	color: var(--rw-cream) !important;
	font-family: var(--rw-sans);
	font-weight: 500;
	text-decoration: underline !important;
	text-decoration-color: var(--rw-line-gold) !important;
	text-underline-offset: 0.3em;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

/* Quantity stepper (block and classic): hairline rectangle. */
.wc-block-components-quantity-selector,
.wp-block-woocommerce-add-to-cart-with-options-quantity-selector .quantity,
.woocommerce .quantity {
	display: inline-flex !important;
	align-items: stretch;
	min-height: 48px;
	border: 1px solid var(--rw-line-strong) !important;
	border-radius: var(--rw-radius) !important;
	background: transparent !important;
	overflow: hidden;
}
.wc-block-components-quantity-selector::after {
	display: none !important;
}
.wc-block-cart-item__quantity .wc-block-components-quantity-selector {
	min-height: 40px;
	height: 40px;
}
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	height: auto !important;
	min-height: 0 !important;
	padding: 0 !important;
	line-height: 1 !important;
}
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input,
.wp-block-woocommerce-add-to-cart-with-options-quantity-selector .quantity input.qty,
.woocommerce .quantity input.qty {
	width: 3rem !important;
	min-height: 46px;
	border: 0 !important;
	background: transparent !important;
	color: var(--rw-cream) !important;
	font-family: var(--rw-sans) !important;
	font-size: 1rem !important;
	text-align: center;
	font-variant-numeric: tabular-nums;
	box-shadow: none !important;
	-moz-appearance: textfield;
	appearance: textfield;
}
.wc-block-components-quantity-selector input::-webkit-outer-spin-button,
.wc-block-components-quantity-selector input::-webkit-inner-spin-button,
.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button,
.wp-block-woocommerce-add-to-cart-with-options-quantity-selector .quantity button,
.woocommerce .quantity button {
	min-width: 44px;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--rw-cream) !important;
	font-size: 1.125rem;
	opacity: 1 !important;
	cursor: pointer;
	box-shadow: none !important;
}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover,
.wp-block-woocommerce-add-to-cart-with-options-quantity-selector .quantity button:hover {
	color: var(--rw-gold) !important;
}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled,
.wp-block-woocommerce-add-to-cart-with-options-quantity-selector .quantity button:disabled {
	opacity: 0.35 !important;
}

/* --------------------------------------------------------------------------
   Notices (block notices, classic notices, snackbars). Flat, left hairline.
   -------------------------------------------------------------------------- */
.wc-block-components-notice-banner,
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin: 0 0 1.5rem !important;
	padding: 1rem 1.25rem !important;
	border: 0 !important;
	border-left: 2px solid var(--rw-gold) !important;
	border-radius: 0 !important;
	background: var(--rw-raise) !important;
	color: var(--rw-cream) !important;
	font-family: var(--rw-sans);
	font-size: 0.9375rem;
	line-height: 1.5;
	box-shadow: none !important;
	list-style: none;
}
.wc-block-components-notice-banner.is-error,
.woocommerce-error {
	border-left-color: #e8828f !important;
}
.wc-block-components-notice-banner > svg {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	padding: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	fill: var(--rw-gold) !important;
}
.wc-block-components-notice-banner.is-error > svg {
	fill: #e8828f !important;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	display: none !important;
}
.wc-block-components-notice-banner a,
.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error a {
	color: var(--rw-cream) !important;
	text-decoration: underline;
	text-decoration-color: var(--rw-line-gold);
	text-underline-offset: 0.25em;
}
/* "View bag" inside a notice: text link, not a pill. */
.wc-block-components-notice-banner a.button.wc-forward,
.wc-block-components-notice-banner a.wc-forward,
.woocommerce-message a.button.wc-forward {
	float: none !important;
	order: 2;
	margin-left: auto;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	color: var(--rw-gold) !important;
	font-weight: 500;
	text-transform: none !important;
	letter-spacing: 0 !important;
	opacity: 1 !important;
}
.wc-block-components-notice-snackbar-list .wc-block-components-notice-banner {
	box-shadow: 0 0 0 1px var(--rw-line) !important;
}
.wc-block-components-notice-banner__dismiss,
.wc-block-components-notice-banner .wc-block-components-button.wc-block-components-notice-banner__dismiss {
	color: var(--rw-muted) !important;
	background: none !important;
	border: 0 !important;
}

/* Sale badge: small flat label, never a pill. */
.wc-block-components-product-sale-badge,
.woocommerce span.onsale {
	min-height: 0 !important;
	min-width: 0 !important;
	padding: 0.25rem 0.5rem !important;
	border: 0 !important;
	border-radius: var(--rw-radius) !important;
	background: var(--rw-gold) !important;
	color: var(--rw-ink) !important;
	font-family: var(--rw-sans);
	font-size: 0.75rem !important;
	font-weight: 500;
	line-height: 1.3 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

/* ==========================================================================
   CRAFT PRIMITIVES (shared by shop tiles, product page, related, cart)
   ========================================================================== */

/* Field colours with safe fallbacks (plum maison) until the profile prints its own. */
.rv-pdp,
.rv-tile,
.rv-shop {
	--rw-ft: var(--rv-field-top, #8a2a7e);
	--rw-fb: var(--rv-field-bottom, #3a0b36);
	--rw-glow: var(--rv-glow, #b0479f);
}

/* Mehrab frame. Put it on a box with a 4:5 image inside.
   ::before = glowing arch field behind the image (shows through cut-out renders),
   the image is cut to the arch, ::after = gold-leaf double outline + star finial. */
.rv-arch {
	position: relative;
	isolation: isolate;
}
.rv-arch::before,
.rv-tile__image > a::before,
.rv-pdp__media .wc-block-product-gallery-large-image__wrapper::before,
.rv-pdp__still::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(70% 55% at 50% 38%, color-mix(in srgb, var(--rw-glow) 60%, transparent), transparent 72%),
		linear-gradient(180deg, color-mix(in srgb, var(--rw-ft) 55%, var(--rw-night)), color-mix(in srgb, var(--rw-fb) 70%, var(--rw-night)));
	-webkit-mask: var(--rw-arch) center / 100% 100% no-repeat;
	mask: var(--rw-arch) center / 100% 100% no-repeat;
}
.rv-arch::after,
.rv-tile__image > a::after,
.rv-pdp__media .wc-block-product-gallery-large-image__wrapper::after,
.rv-pdp__still::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	top: -8%;
	z-index: 2;
	pointer-events: none;
	background: var(--rw-leaf) 0 0 / 220px repeat, var(--rw-gold);
	-webkit-mask: var(--rw-arch-line) center / 100% 100% no-repeat;
	mask: var(--rw-arch-line) center / 100% 100% no-repeat;
	opacity: 0.9;
}
.rv-tile__image img,
.rv-pdp__media .wc-block-product-gallery-large-image__wrapper .wc-block-components-product-image,
.rv-pdp__still img {
	-webkit-mask: var(--rw-arch) center / 100% 100% no-repeat;
	mask: var(--rw-arch) center / 100% 100% no-repeat;
}

/* Jali rule between chapters. */
.rv-pdp__formula::before,
.rv-pdp__notes::before,
.rv-related::before,
.rv-commerce__head::after {
	content: "";
	display: block;
	height: 28px;
	background:
		var(--rw-rule) center / 168px 28px no-repeat,
		linear-gradient(90deg, transparent, color-mix(in srgb, var(--rw-gold) 45%, transparent) 25%, color-mix(in srgb, var(--rw-gold) 45%, transparent) 75%, transparent) center / 100% 1px no-repeat;
	-webkit-mask: linear-gradient(90deg, #000 calc(50% - 92px), transparent calc(50% - 92px), transparent calc(50% - 84px), #000 calc(50% - 84px), #000 calc(50% + 84px), transparent calc(50% + 84px), transparent calc(50% + 92px), #000 calc(50% + 92px));
	mask: linear-gradient(90deg, #000 calc(50% - 92px), transparent calc(50% - 92px), transparent calc(50% - 84px), #000 calc(50% - 84px), #000 calc(50% + 84px), transparent calc(50% + 84px), transparent calc(50% + 92px), #000 calc(50% + 92px));
}

/* Grain over any crafted field. */
.rv-pdp__stage::after,
.rv-shop::after,
.rv-commerce::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background: var(--rw-grain) 0 0 / 256px repeat;
	opacity: 0.22;
	mix-blend-mode: overlay;
}

/* ==========================================================================
   SHOP, CATEGORY, SEARCH
   ========================================================================== */
.rv-shop {
	position: relative;
	isolation: isolate;
	background: var(--rw-night);
}
/* A quiet jali canopy and the plum glow behind the heading. */
.rv-shop::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: min(760px, 90vh);
	z-index: -1;
	pointer-events: none;
	background:
		var(--rw-jali) 0 0 / 56px 56px repeat,
		radial-gradient(60% 80% at 80% 0%, color-mix(in srgb, var(--rw-plum) 55%, transparent), transparent 70%),
		radial-gradient(50% 70% at 0% 30%, color-mix(in srgb, #2b1060 35%, transparent), transparent 70%);
	background-blend-mode: normal;
	-webkit-mask: radial-gradient(70% 100% at 85% 0%, rgb(0 0 0 / 0.3), transparent 80%);
	mask: radial-gradient(70% 100% at 85% 0%, rgb(0 0 0 / 0.3), transparent 80%);
}
.rv-shop__head {
	position: relative;
	gap: var(--wp--preset--spacing--40, 2rem) clamp(2rem, 6vw, 6rem);
}
/* A large mehrab outline drawn behind the title. */
.rv-shop__head > .wp-block-column:first-child {
	position: relative;
	isolation: isolate;
}
.rv-shop__head > .wp-block-column:first-child::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: -0.5rem;
	z-index: -1;
	width: clamp(7rem, 5rem + 8vw, 12.5rem);
	aspect-ratio: 400 / 540;
	background: var(--rw-leaf) 0 0 / 220px repeat, var(--rw-gold);
	-webkit-mask: var(--rw-arch-line) center / 100% 100% no-repeat;
	mask: var(--rw-arch-line) center / 100% 100% no-repeat;
	opacity: 0.45;
}
.rv-shop__title {
	position: relative;
	padding-left: clamp(2.5rem, 1rem + 5vw, 6rem);
	font-size: clamp(4rem, 2rem + 9vw, 10rem) !important;
}
.rv-shop__title--search {
	padding-left: 0;
	font-size: clamp(2.5rem, 1.5rem + 4vw, 4.5rem) !important;
}
.rv-shop--search .rv-shop__head > .wp-block-column:first-child::before {
	display: none;
}
.rv-shop__aside {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	padding-bottom: 0.75rem;
}
.rv-shop__lede,
.rv-shop__aside .wp-block-term-description {
	margin: 0;
	max-width: 34rem;
	color: color-mix(in srgb, var(--rw-cream) 82%, var(--rw-ink));
	font-family: var(--rw-display);
	font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
	font-style: italic;
	font-weight: 400;
	line-height: 1.45;
}
.rv-shop__aside .wp-block-term-description p {
	margin: 0;
}

/* Category filter: plain text links. */
.rv-filter {
	gap: 0.5rem 1.75rem !important;
	font-family: var(--rw-sans);
	font-size: 0.9375rem;
	font-weight: 500;
}
.rv-filter p {
	margin: 0;
}
.rv-filter .wc-block-product-categories {
	margin: 0;
}
.rv-filter .wc-block-product-categories-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.rv-filter .wc-block-product-categories-list-item {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}
.rv-filter .wc-block-product-categories-list-item__image,
.rv-filter .wc-block-product-categories-list-item-count {
	display: none;
}
.rv-filter a {
	display: inline-block;
	color: var(--rw-muted);
	background-size: 0 1px;
	background-position: right bottom;
}
.rv-filter a:hover,
.rv-filter a[aria-current="page"] {
	color: var(--rw-cream);
	background-size: 100% 1px;
	background-position: left bottom;
}
.rv-filter a[aria-current="page"] {
	color: var(--rw-gold);
}

/* Toolbar: result count left, sort right, a jali hairline above. */
.rv-shop__toolbar {
	position: relative;
	padding-top: 1.25rem;
	color: var(--rw-muted);
	font-family: var(--rw-sans);
	font-size: 0.875rem;
}
.rv-shop__toolbar::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 9px;
	background:
		linear-gradient(var(--rw-line-gold), var(--rw-line-gold)) 0 4px / 100% 1px no-repeat,
		var(--rw-jali) 0 -23px / 18px 18px repeat-x;
	-webkit-mask: linear-gradient(90deg, #000, rgb(0 0 0 / 0.4) 60%, transparent);
	mask: linear-gradient(90deg, #000, rgb(0 0 0 / 0.4) 60%, transparent);
	opacity: 0.8;
}
.rv-shop__toolbar p,
.rv-shop__toolbar .woocommerce-result-count {
	margin: 0 !important;
	color: inherit;
}
.rv-shop__toolbar .woocommerce-ordering {
	margin: 0 !important;
}
.rv-shop__toolbar select.orderby {
	-webkit-appearance: none;
	appearance: none;
	min-height: 44px;
	padding: 0.5rem 1.75rem 0.5rem 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--rw-line-strong) !important;
	border-radius: 0 !important;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23d9b25f' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat right 0.25rem center !important;
	color: var(--rw-cream) !important;
	font-family: var(--rw-sans) !important;
	font-size: 0.875rem !important;
	cursor: pointer;
}
.rv-shop__toolbar select.orderby option {
	background: var(--rw-ink);
}

/* Product tiles: a silk panel in the fragrance colour, the render inside a
   mehrab, then name, family and price. */
.rv-tiles.wc-block-product-template,
.rv-tiles.wc-block-product-template__responsive {
	gap: clamp(3.5rem, 2rem + 4vw, 6rem) clamp(1rem, 0.5rem + 2.5vw, 3rem) !important;
	margin: 0;
	padding: 0;
}
.rv-tiles.wc-block-product-template__responsive.columns-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.rv-tiles > li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	text-align: left !important;
}
.rv-tile {
	display: flex;
	flex-direction: column;
	gap: 0;
}
.rv-tile__image {
	position: relative;
	isolation: isolate;
	margin: 0 0 1.5rem !important;
	padding: 16% 13% 0 !important;
	overflow: hidden;
	background:
		radial-gradient(90% 60% at 50% 100%, color-mix(in srgb, var(--rw-glow) 38%, transparent), transparent 70%),
		linear-gradient(170deg, color-mix(in srgb, var(--rw-ft) 42%, var(--rw-night)) 0%, color-mix(in srgb, var(--rw-fb) 75%, var(--rw-night)) 55%, color-mix(in srgb, var(--rw-fb) 45%, var(--rw-night)) 100%);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rw-gold) 16%, transparent);
}
/* Raw silk sheen + grain over the panel. */
.rv-tile__image::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--rv-silk, none) center / cover no-repeat;
	opacity: 0.55;
	mix-blend-mode: soft-light;
}
.rv-tile__image::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
	pointer-events: none;
	background: var(--rw-grain) 0 0 / 256px repeat;
	opacity: 0.18;
	mix-blend-mode: overlay;
}
.rv-tile__image > a {
	position: relative;
	z-index: 1;
	display: block;
	isolation: isolate;
	margin-top: 4%;
	filter: drop-shadow(0 30px 36px rgb(0 0 0 / 0.45));
}
.rv-tile__image img {
	display: block;
	position: relative;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 0 !important;
	transition: transform 0.9s var(--rw-ease);
}
.rv-tile:hover .rv-tile__image img {
	transform: translateY(-6px) scale(1.015);
}
.rv-tile__image > a::after {
	opacity: 0.75;
	transition: opacity 0.4s var(--rw-ease);
}
.rv-tile:hover .rv-tile__image > a::after {
	opacity: 1;
}
.rv-tile__image .wc-block-components-product-sale-badge {
	top: 0.75rem;
	left: 0.75rem;
	right: auto;
	z-index: 4;
}
.rv-tile__name {
	margin: 0 !important;
	font-family: var(--rw-display) !important;
	font-size: clamp(2rem, 1.5rem + 1.4vw, 2.75rem) !important;
	font-weight: 300 !important;
	line-height: 1 !important;
	letter-spacing: -0.01em !important;
	text-align: left !important;
	text-transform: none !important;
}
.rv-tile__name a {
	color: var(--rw-cream) !important;
	text-decoration: none !important;
}
.rv-tile__name a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 5;
}
.rv-tile {
	position: relative;
}
.rv-tile__name a:hover,
.rv-tile:hover .rv-tile__name a {
	color: var(--rw-gold-soft, #e6c88a) !important;
}
.rv-tile__family {
	display: block;
	margin: 0.4rem 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	color: color-mix(in srgb, var(--rw-cream) 78%, var(--rw-ink));
	font-family: var(--rw-display);
	font-size: 1.1875rem;
	font-style: italic;
	font-weight: 400;
	line-height: 1.3;
}
.rv-tile__family .rv-badge {
	display: none;
}
.rv-tile__family .rv-audience__family {
	display: inline;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	letter-spacing: 0;
	text-transform: none;
}
.rv-tile__price {
	display: flex;
	align-items: baseline;
	gap: 0.75rem;
	margin: 0.9rem 0 0 !important;
	padding-top: 0.9rem;
	border-top: 1px solid color-mix(in srgb, var(--rw-gold) 28%, transparent);
	font-family: var(--rw-sans) !important;
	font-size: 1rem !important;
	font-weight: 400;
	text-align: left !important;
}
.rv-tile__price .wc-block-components-product-price {
	text-align: left;
}

/* Editorial stagger: the middle column sits lower on wide screens. */
@media (min-width: 960px) {
	.rv-shop .rv-tiles.columns-3 > li:nth-child(3n + 2) {
		margin-top: clamp(4rem, 8vw, 8rem) !important;
	}
}

.rv-pagination {
	margin-top: var(--wp--preset--spacing--60, 4rem) !important;
	padding-top: 1rem;
	border-top: 1px solid var(--rw-line);
	gap: 1.25rem !important;
	font-family: var(--rw-sans);
	font-size: 0.9375rem;
}
.rv-pagination a,
.rv-pagination .page-numbers {
	color: var(--rw-muted);
	text-decoration: none;
}
.rv-pagination .page-numbers.current,
.rv-pagination a:hover {
	color: var(--rw-cream);
}
.rv-no-results {
	max-width: 38rem;
	padding: var(--wp--preset--spacing--50, 3rem) 0;
	color: var(--rw-muted);
}
.rv-no-results h2 {
	margin: 0 0 0.75rem;
	color: var(--rw-cream);
}

/* Search form on the results page. */
.rv-search .wp-block-search__inside-wrapper {
	gap: 0.5rem;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
}
.rv-search .wp-block-search__input {
	min-height: 48px;
	padding: 0.75rem 0.9rem !important;
}

/* ==========================================================================
   SINGLE PRODUCT
   ========================================================================== */
.rv-pdp {
	background: var(--rw-night);
}

/* Stage: the fragrance's silk field, lit from behind the arch. */
.rv-pdp__stage {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background:
		radial-gradient(42% 58% at 27% 46%, color-mix(in srgb, var(--rw-glow) 46%, transparent), transparent 72%),
		radial-gradient(70% 90% at 22% 40%, color-mix(in srgb, var(--rw-ft) 42%, transparent), transparent 75%),
		linear-gradient(100deg, color-mix(in srgb, var(--rw-fb) 72%, var(--rw-night)) 0%, color-mix(in srgb, var(--rw-fb) 40%, var(--rw-night)) 58%, color-mix(in srgb, var(--rw-fb) 26%, var(--rw-night)) 100%);
}
/* Raw silk + a jali screen fading in from the right. */
.rv-pdp__stage::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background:
		var(--rw-jali) right top / 56px 56px repeat,
		var(--rv-silk, none) center / cover no-repeat;
	-webkit-mask: radial-gradient(70% 90% at 100% 0%, rgb(0 0 0 / 0.32), transparent 70%);
	mask: radial-gradient(70% 90% at 100% 0%, rgb(0 0 0 / 0.32), transparent 70%);
	opacity: 0.85;
}
.rv-pdp__crumbs {
	position: relative;
	z-index: 3;
}
.rv-pdp__crumbs .wc-block-components-notices,
.rv-pdp__crumbs .wc-block-store-notices {
	margin-top: 1rem;
}
.rv-pdp .wp-block-woocommerce-breadcrumbs,
.rv-pdp .woocommerce-breadcrumb {
	color: color-mix(in srgb, var(--rw-cream) 72%, transparent) !important;
}
.rv-pdp__hero {
	gap: var(--wp--preset--spacing--50, 3rem) clamp(2rem, 5vw, 6rem) !important;
	align-items: center !important;
}

/* Gallery: the render in a mehrab; thumbnails as small arches below. */
.rv-pdp__media {
	position: relative;
	z-index: 1;
}
.rv-pdp__media .wc-block-product-gallery {
	gap: 1.5rem !important;
	width: min(100%, 36rem);
	margin: 0 auto;
}
.rv-pdp__media .wc-block-product-gallery-large-image,
.rv-pdp__media .wp-block-woocommerce-product-gallery-large-image {
	width: 100%;
	background: none;
	border-radius: 0;
	overflow: visible;
	filter: drop-shadow(0 40px 60px rgb(0 0 0 / 0.5));
}
/* Room above the arch for the star finial (the carousel clips overflow). */
.rv-pdp__media .wc-block-product-gallery-large-image__container {
	padding-top: 10% !important;
}
.rv-pdp .rv-pdp__media .wc-block-product-gallery-large-image .wc-block-product-gallery-large-image__wrapper.wc-block-product-gallery-large-image__wrapper {
	position: relative;
	isolation: isolate;
	aspect-ratio: 4 / 5 !important;
	overflow: visible;
}
.rv-pdp .rv-pdp__media .wc-block-components-product-image.wc-block-components-product-image.wc-block-components-product-image img.wc-block-woocommerce-product-gallery-large-image__image {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 4 / 5 !important;
	object-fit: cover !important;
	border-radius: 0 !important;
}
.rv-pdp__media .wc-block-product-gallery-thumbnails {
	gap: 0.875rem;
	justify-content: center;
}
.rv-pdp .rv-pdp__media .wc-block-product-gallery-thumbnails .wc-block-product-gallery-thumbnails__thumbnail img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 4 / 5 !important;
	object-fit: cover !important;
	border-radius: 0 !important;
	-webkit-mask: var(--rw-arch) center / 100% 100% no-repeat;
	mask: var(--rw-arch) center / 100% 100% no-repeat;
	opacity: 0.6;
	transition: opacity 0.3s var(--rw-ease);
}
.rv-pdp__media .wc-block-product-gallery-thumbnails__thumbnail {
	position: relative;
	border-radius: 0 !important;
}
.rv-pdp__media .wc-block-product-gallery-thumbnails__thumbnail:hover img,
.rv-pdp .rv-pdp__media .wc-block-product-gallery-thumbnails__thumbnail__image--is-active,
.rv-pdp .rv-pdp__media .wc-block-product-gallery-thumbnails__thumbnail img[aria-current="true"] {
	opacity: 1 !important;
}
.rv-pdp__media .wc-block-product-gallery-thumbnails__thumbnail__overlay,
.rv-pdp__media .wc-block-product-gallery-thumbnails__thumbnail--active-overlay,
.rv-pdp__media .wc-block-product-gallery-thumbnails__thumbnail::after {
	border-radius: 0;
	border: 0 !important;
	box-shadow: none !important;
	outline: 0 !important;
}
.rv-pdp__media .wc-block-next-previous-buttons__button {
	border-radius: var(--rw-radius) !important;
	border: 1px solid color-mix(in srgb, var(--rw-gold) 45%, transparent) !important;
	background: color-mix(in srgb, var(--rw-night) 60%, transparent) !important;
	color: var(--rw-cream) !important;
	box-shadow: none !important;
}
.rv-pdp__media .wc-block-next-previous-buttons__button svg {
	fill: currentColor;
	color: inherit;
}
/* Thumbnails do the navigating on larger screens; arrows stay for touch. */
@media (min-width: 782px) {
	.rv-pdp__media .wc-block-next-previous-buttons {
		display: none !important;
	}
}
/* Classic gallery fallback (if the client swaps the block back). */
.rv-pdp__media .woocommerce-product-gallery {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

/* Summary: a huge name that leans into the arch. */
.rv-pdp__summary {
	position: relative;
	z-index: 2;
}
.rv-pdp__summary > * {
	margin-block: 0;
}
.rv-pdp__summary > * + * {
	margin-top: 1.5rem;
}
.rv-pdp__title {
	font-size: clamp(3.5rem, 1.5rem + 7.2vw, 8.5rem) !important;
	line-height: 0.92 !important;
	text-shadow: 0 2px 30px rgb(0 0 0 / 0.35);
}
@media (min-width: 782px) {
	.rv-pdp__title {
		margin-left: calc(-1 * clamp(2rem, 7vw, 8rem)) !important;
	}
}
.rv-pdp__summary > .rv-pdp__family {
	margin-top: 1.25rem;
}
.rv-pdp__family {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25rem 1rem;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
}
.rv-pdp__family .rv-audience__family {
	order: -1;
	padding: 0;
	border: 0;
	background: none;
	color: var(--rw-gold-soft, #e6c88a);
	font-family: var(--rw-display);
	font-size: clamp(1.5rem, 1.25rem + 0.9vw, 2.125rem);
	font-style: italic;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}
.rv-pdp__family .rv-badge {
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	color: color-mix(in srgb, var(--rw-cream) 78%, transparent) !important;
	font-family: var(--rw-sans) !important;
	font-size: 0.875rem !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	box-shadow: none !important;
}

.rv-pdp__summary > .rv-pdp__story {
	margin-top: 1.75rem;
}
.rv-pdp__story,
.rv-pdp__story p {
	max-width: 34rem;
	margin: 0;
	color: color-mix(in srgb, var(--rw-cream) 90%, transparent);
	font-family: var(--rw-sans);
	font-size: 1.0625rem;
	font-weight: 300;
	line-height: 1.7;
}
.rv-pdp__story strong {
	display: block;
	margin-bottom: 0.5rem;
	color: var(--rw-cream);
	font-family: var(--rw-display);
	font-size: 1.5rem;
	font-weight: 400;
	font-style: italic;
	line-height: 1.2;
}
.rv-pdp__story .wp-block-post-excerpt__more-text {
	display: none;
}

.rv-pdp__price {
	gap: 0.5rem 1.25rem !important;
	max-width: 34rem;
	padding-top: 1.5rem;
	border-top: 1px solid color-mix(in srgb, var(--rw-gold) 40%, transparent);
}
.rv-pdp__summary > .rv-pdp__price {
	margin-top: 2.25rem;
}
.rv-pdp__price .wp-block-woocommerce-product-price,
.rv-pdp__price .wc-block-components-product-price {
	margin: 0 !important;
	font-family: var(--rw-display) !important;
	font-size: clamp(2.5rem, 2rem + 1.6vw, 3.5rem) !important;
	font-weight: 300 !important;
	line-height: 1;
}
/* Gold-leaf numerals (solid gold where background-clip:text is missing). */
.rv-pdp__price .woocommerce-Price-amount {
	color: var(--rw-gold);
}
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
	.rv-pdp__price .woocommerce-Price-amount {
		background: var(--rw-leaf) 0 0 / 160px repeat, linear-gradient(var(--rw-gold), var(--rw-gold));
		-webkit-background-clip: text;
		background-clip: text;
		color: transparent;
	}
}
.rv-pdp__price .woocommerce-price-suffix {
	margin-left: 0.35rem;
	vertical-align: middle;
}
.rv-pdp__size {
	margin: 0 !important;
	color: color-mix(in srgb, var(--rw-cream) 78%, transparent);
	font-family: var(--rw-sans);
	font-size: 0.9375rem;
}

/* Add to bag: stepper + full-width gold button on one row. */
.rv-pdp__buy form,
.rv-pdp__buy .wc-block-add-to-cart-with-options__form,
.rv-pdp__buy {
	max-width: 34rem;
	margin: 0;
}
.rv-pdp__buy .wp-block-group,
.rv-pdp__buy form.cart {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	gap: 0.75rem !important;
	margin: 0 !important;
	padding: 0 !important;
}
.rv-pdp__buy form.cart::before,
.rv-pdp__buy form.cart::after {
	content: none !important;
}
.rv-pdp__buy .wp-block-woocommerce-product-button,
.rv-pdp__buy .single_add_to_cart_button {
	flex: 1 1 auto;
	margin: 0 !important;
}
.rv-pdp__buy .wp-block-woocommerce-product-button .wp-block-button__link,
.rv-pdp__buy .wc-block-components-product-button__button,
.rv-pdp__buy .single_add_to_cart_button {
	width: 100%;
	min-height: 56px;
	font-size: 1rem !important;
}
.rv-pdp__buy .wc-block-components-quantity-selector,
.rv-pdp__buy .quantity {
	background: color-mix(in srgb, var(--rw-night) 45%, transparent) !important;
}
.rv-pdp__buy .wc-block-components-product-stock-indicator,
.rv-pdp__buy .stock {
	margin: 0 0 0.75rem !important;
	color: color-mix(in srgb, var(--rw-cream) 78%, transparent) !important;
	font-family: var(--rw-sans);
	font-size: 0.875rem;
}
.rv-pdp__buy .wc-block-components-product-stock-indicator--out-of-stock,
.rv-pdp__buy .out-of-stock {
	color: var(--rw-error) !important;
}
.rv-pdp__summary > .rv-pdp__service {
	margin-top: 0.875rem;
}
.rv-pdp__service {
	color: color-mix(in srgb, var(--rw-cream) 76%, transparent);
	font-family: var(--rw-sans);
	font-size: 0.8125rem;
	line-height: 1.5;
}

/* --------------------------------------------------------------------------
   The formula: an almanac folio. Each graha gets a column with its
   gold line drawing, its glow, its notes and its vara.
   -------------------------------------------------------------------------- */
.rv-pdp__formula {
	position: relative;
	isolation: isolate;
	background:
		radial-gradient(60% 50% at 50% 100%, color-mix(in srgb, var(--rw-fb) 30%, transparent), transparent 75%),
		var(--rw-night);
}
.rv-pdp__formula::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background: var(--rw-jali) center / 56px 56px repeat;
	-webkit-mask: radial-gradient(50% 60% at 50% 60%, rgb(0 0 0 / 0.14), transparent 80%);
	mask: radial-gradient(50% 60% at 50% 60%, rgb(0 0 0 / 0.14), transparent 80%);
}
.rv-pdp__formula::before {
	position: absolute;
	inset: 0 0 auto;
}
.rv-pdp__formula-head {
	gap: var(--wp--preset--spacing--40, 2rem) clamp(2rem, 6vw, 6rem) !important;
}
.rv-pdp h2.rv-pdp__formula-title,
.rv-pdp h2.rv-pdp__more-title,
.rv-pdp h2.rv-related__title {
	margin: 0;
	font-family: var(--rw-display);
	font-size: clamp(2.75rem, 1.6rem + 4.5vw, 5.75rem);
	font-weight: 300;
	line-height: 0.98;
	letter-spacing: -0.015em;
	text-wrap: balance;
}
.rv-pdp h2 em {
	color: var(--rw-gold-soft, #e6c88a);
	font-style: italic;
	font-weight: 400;
}
.rv-pdp__formula-lede {
	max-width: 30rem;
	margin: 0;
	color: color-mix(in srgb, var(--rw-cream) 80%, transparent);
	font-size: 1.0625rem;
	font-weight: 300;
	line-height: 1.7;
}

.rv-pdp__folio .rv-planet-notes {
	margin: 0;
}
/* Almanac folio: on tablets and up, each graha becomes a column with its gold
   glyph (from Rivora Core's sprite) lit by the planet's own colour (--c). */
@media (min-width: 600px) {
	.rv-pdp__folio .rv-notes {
		--rv-glyph-size: clamp(72px, 40px + 4vw, 100px);
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
		border-top: 1px solid color-mix(in srgb, var(--rw-gold) 50%, transparent);
		border-bottom: 1px solid color-mix(in srgb, var(--rw-gold) 50%, transparent);
		background:
			linear-gradient(color-mix(in srgb, var(--rw-gold) 22%, transparent), color-mix(in srgb, var(--rw-gold) 22%, transparent)) 0 5px / 100% 1px no-repeat,
			linear-gradient(color-mix(in srgb, var(--rw-gold) 22%, transparent), color-mix(in srgb, var(--rw-gold) 22%, transparent)) 0 calc(100% - 5px) / 100% 1px no-repeat;
	}
	.rv-pdp__folio .rv-notes__row {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto 1fr auto;
		align-items: start;
		row-gap: 1.5rem;
		padding: clamp(2.25rem, 3vw, 3.25rem) clamp(1.25rem, 2vw, 2rem) clamp(1.75rem, 2vw, 2.25rem);
		isolation: isolate;
	}
	.rv-pdp__folio .rv-notes__row + .rv-notes__row {
		border-left: 1px solid color-mix(in srgb, var(--rw-gold) 26%, transparent);
	}
	.rv-pdp__folio .rv-notes__row:not(:last-child)::after {
		content: none;
	}
	/* The planet's glow behind its glyph. */
	.rv-pdp__folio .rv-notes__row::before {
		content: "";
		position: absolute;
		z-index: -1;
		top: clamp(2.25rem, 3vw, 3.25rem);
		left: clamp(1.25rem, 2vw, 2rem);
		width: var(--rv-glyph-size);
		aspect-ratio: 1;
		transform: scale(2);
		background: radial-gradient(circle, color-mix(in srgb, var(--c, var(--rw-gold)) 42%, transparent) 0, color-mix(in srgb, var(--c, var(--rw-gold)) 10%, transparent) 30%, transparent 60%);
	}
	.rv-pdp__folio .rv-notes__body {
		gap: 0.75rem;
	}
	.rv-pdp__folio .rv-notes__notes {
		font-size: clamp(1.5rem, 1.2rem + 0.8vw, 1.875rem);
	}
	.rv-pdp__folio .rv-notes__day {
		justify-items: start;
		gap: 0.2rem;
		padding-top: 0.875rem;
		border-top: 1px solid color-mix(in srgb, var(--rw-gold) 30%, transparent);
		color: var(--rw-gold-soft, #e6c88a);
		font-size: 1.375rem;
		text-align: left;
	}
}
.rv-pdp__folio .rv-notes__en,
.rv-pdp__folio .rv-notes__wd {
	color: color-mix(in srgb, var(--rw-cream) 72%, transparent);
}
.rv-pdp__folio .rv-weekdays {
	gap: 1rem !important;
	margin-top: clamp(2rem, 4vw, 3.5rem) !important;
	padding-top: 0 !important;
	border-top: 0 !important;
	color: var(--rw-cream);
	font-family: var(--rw-display);
	font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem) !important;
	font-style: italic;
	line-height: 1.2;
}
.rv-pdp__folio .rv-weekdays__mark {
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
}

/* --------------------------------------------------------------------------
   Notes chapter: the bottle in a smaller arch beside the details.
   -------------------------------------------------------------------------- */
.rv-pdp__notes {
	position: relative;
	isolation: isolate;
	background:
		radial-gradient(40% 60% at 18% 55%, color-mix(in srgb, var(--rw-fb) 45%, transparent), transparent 75%),
		var(--rw-night);
}
.rv-pdp__notes::before {
	position: absolute;
	inset: 0 0 auto;
}
.rv-pdp__notes-cols {
	align-items: center !important;
	gap: var(--wp--preset--spacing--60, 4rem) clamp(2rem, 7vw, 8rem) !important;
}
.rv-pdp__still {
	position: relative;
	isolation: isolate;
	width: min(100%, 26rem);
	margin: 10% auto 0 !important;
	overflow: visible !important;
	filter: drop-shadow(0 34px 48px rgb(0 0 0 / 0.55));
}
.rv-pdp__still img {
	display: block;
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 4 / 5 !important;
	object-fit: cover !important;
	border-radius: 0 !important;
}
.rv-pdp__still .wc-block-components-product-image__inner-container {
	display: none;
}
.rv-pdp__more-col > * {
	margin-block: 0;
}
.rv-pdp h2.rv-pdp__more-title {
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
	font-size: clamp(2.5rem, 1.6rem + 3.2vw, 4.25rem);
}
.rv-pdp__more > * {
	margin: 0 !important;
}

/* Details accordion (core/details). */
.rv-pdp__details {
	border-top: 1px solid color-mix(in srgb, var(--rw-gold) 30%, transparent);
}
.rv-pdp__details:last-child {
	border-bottom: 1px solid color-mix(in srgb, var(--rw-gold) 30%, transparent);
}
.rv-pdp__details > summary {
	position: relative;
	display: block;
	padding: 1.35rem 2.5rem 1.35rem 0;
	color: var(--rw-cream);
	font-family: var(--rw-display);
	font-size: clamp(1.375rem, 1.2rem + 0.6vw, 1.75rem);
	font-weight: 400;
	line-height: 1.2;
	list-style: none;
	cursor: pointer;
}
.rv-pdp__details > summary::-webkit-details-marker {
	display: none;
}
.rv-pdp__details > summary::before,
.rv-pdp__details > summary::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0.25rem;
	width: 14px;
	height: 1px;
	background: var(--rw-gold);
	transition: transform 0.3s var(--rw-ease);
}
.rv-pdp__details > summary::after {
	transform: rotate(90deg);
}
.rv-pdp__details[open] > summary::after {
	transform: rotate(0deg);
}
.rv-pdp__details > summary:hover {
	color: var(--rw-gold-soft, #e6c88a);
}
.rv-pdp__details > :not(summary) {
	margin: 0 0 1.25rem;
	color: color-mix(in srgb, var(--rw-cream) 80%, transparent);
	font-family: var(--rw-sans);
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 1.7;
}
.rv-pdp__details > :not(summary) + :not(summary) {
	margin-top: -0.25rem;
}
.rv-pdp__details h2,
.rv-pdp__details h3 {
	margin: 0 0 0.75rem;
	color: var(--rw-cream);
	font-family: var(--rw-display);
	font-size: 1.375rem;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
}
.rv-pdp__details ul {
	padding-left: 1.1rem;
}
.rv-pdp__details table {
	width: 100%;
	border-collapse: collapse;
}
.rv-pdp__details .wp-block-table {
	margin: 0 0 1rem;
}
.rv-pdp__details th,
.rv-pdp__details td {
	padding: 0.5rem 0.75rem 0.5rem 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--rw-line) !important;
	text-align: left;
	font-weight: 400;
	vertical-align: top;
}
.rv-pdp__details th {
	width: 40%;
	color: var(--rw-cream);
}
.rv-pdp__meta {
	gap: 0.25rem 1.5rem !important;
}
.rv-pdp__meta > * {
	margin: 0 !important;
}
.rv-pdp__meta a {
	color: inherit;
}

/* Reviews (legacy comments template inside the accordion). */
.rv-pdp__reviews #reviews,
.rv-pdp__reviews .woocommerce-Reviews {
	margin: 0;
}
.rv-pdp__reviews .woocommerce-Reviews-title,
.rv-pdp__reviews #reply-title {
	display: block;
	margin: 0 0 0.75rem;
	color: var(--rw-cream);
	font-family: var(--rw-display);
	font-size: 1.375rem;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
}
.rv-pdp__reviews .commentlist {
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}
.rv-pdp__reviews .commentlist li {
	padding: 1rem 0;
	border-bottom: 1px solid var(--rw-line);
}
.rv-pdp__reviews .commentlist img.avatar {
	display: none;
}
.rv-pdp__reviews .comment-text {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}
.rv-pdp__reviews .comment-form p {
	margin: 0 0 1rem;
}
.rv-pdp__reviews .comment-form-rating .stars a {
	color: var(--rw-gold);
}
.rv-pdp__reviews .woocommerce-noreviews {
	margin: 0 0 1rem;
}

.rv-pdp__more-col > .rv-pdp__disclaimer,
.rv-pdp__more-col .rv-pdp__disclaimer,
.rv-pdp__more-col .rv-disclaimer {
	max-width: 36rem;
	margin-top: 2rem !important;
	color: color-mix(in srgb, var(--rw-cream) 66%, transparent);
	font-family: var(--rw-sans);
	font-size: 0.8125rem;
	font-style: normal;
	line-height: 1.6;
}

/* Related: arch-framed renders. Each card carries its own field colours. */
.rv-related {
	position: relative;
	isolation: isolate;
	background:
		radial-gradient(70% 60% at 50% 0%, color-mix(in srgb, var(--rw-plum) 22%, transparent), transparent 70%),
		var(--rw-night);
}
.rv-related::before {
	position: absolute;
	inset: 0 0 auto;
}
.rv-related .rv-tile {
	--rw-ft: var(--rv-field-top, #8a2a7e);
	--rw-fb: var(--rv-field-bottom, #3a0b36);
	--rw-glow: var(--rv-glow, #b0479f);
}
.rv-related .rv-related__title {
	margin: 0 0 var(--wp--preset--spacing--60, 4rem);
	text-align: left;
}
/* Asymmetric: the heading holds the first column, the (usually two) other
   fragrances share the rest, the second one set lower. */
@media (min-width: 960px) {
	.rv-related .wp-block-woocommerce-product-collection {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
		gap: 0 clamp(2rem, 5vw, 5rem);
		align-items: start;
	}
	.rv-related .wp-block-woocommerce-product-collection > * {
		grid-column: 1 / -1;
		margin: 0 !important;
	}
	.rv-related .wp-block-woocommerce-product-collection > .rv-related__title {
		grid-column: 1;
		grid-row: 2;
		position: sticky;
		top: var(--rw-sticky-top);
	}
	.rv-related .wp-block-woocommerce-product-collection > .rv-tiles {
		grid-column: 2;
		grid-row: 2;
	}
	.rv-related .rv-tiles.wc-block-product-template__responsive.columns-3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.rv-related .rv-tiles.columns-3 > li:nth-child(even) {
		margin-top: clamp(4rem, 8vw, 8rem) !important;
	}
}

@media (max-width: 781px) {
	.rv-pdp__stage {
		background:
			radial-gradient(80% 45% at 50% 30%, color-mix(in srgb, var(--rw-glow) 44%, transparent), transparent 72%),
			radial-gradient(100% 60% at 50% 25%, color-mix(in srgb, var(--rw-ft) 38%, transparent), transparent 75%),
			linear-gradient(180deg, color-mix(in srgb, var(--rw-fb) 70%, var(--rw-night)) 0%, color-mix(in srgb, var(--rw-fb) 34%, var(--rw-night)) 70%, var(--rw-night) 100%);
	}
	.rv-pdp__hero {
		gap: 0 !important;
	}
	.rv-pdp__media .wc-block-product-gallery {
		width: min(100%, 26rem);
	}
	.rv-pdp__summary {
		margin-top: -2.75rem;
	}
	.rv-pdp__title {
		font-size: clamp(3.25rem, 2rem + 8vw, 5rem) !important;
	}
	.rv-pdp__still {
		width: min(78%, 20rem);
	}
}

/* ==========================================================================
   CART & CHECKOUT BLOCKS
   ========================================================================== */
.rv-commerce__head {
	max-width: 52rem;
}
.rv-commerce__head > * {
	margin: 0;
}
.rv-commerce__line {
	margin-top: 1rem !important;
	max-width: 36rem;
	color: var(--rw-muted);
	font-family: var(--rw-sans);
	font-size: 1rem;
	font-weight: 300;
	line-height: 1.6;
}
.rv-commerce .wp-block-woocommerce-cart,
.rv-commerce .wp-block-woocommerce-checkout {
	color: var(--rw-cream);
	font-family: var(--rw-sans);
}

/* Sidebar: no card, a gold hairline down the left on wide screens. */
.wc-block-components-sidebar-layout {
	gap: 0 clamp(2rem, 5vw, 5rem);
}
.wc-block-components-sidebar-layout .wc-block-components-sidebar {
	padding-left: 0;
}
@media (min-width: 700px) {
	.rv-commerce .wc-block-components-sidebar-layout:not(.is-small):not(.is-mobile) .wc-block-components-sidebar {
		padding-left: clamp(1.5rem, 3vw, 3rem) !important;
		border-left: 1px solid var(--rw-line-gold);
	}
}
.wc-block-checkout__sidebar,
.wp-block-woocommerce-checkout-order-summary-block,
.wp-block-woocommerce-cart-order-summary-block,
.wc-block-components-totals-wrapper,
.wc-block-components-panel {
	border-color: var(--rw-line) !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
.wp-block-woocommerce-checkout-order-summary-block {
	border: 0 !important;
}
.wc-block-components-totals-wrapper::after {
	display: none !important;
}
.wc-block-cart__totals-title,
.wc-block-components-checkout-order-summary__title,
.wc-block-components-checkout-order-summary__title-text,
.wp-block-woocommerce-cart-order-summary-heading-block {
	color: var(--rw-cream) !important;
	font-family: var(--rw-display) !important;
	font-size: 1.75rem !important;
	font-weight: 400 !important;
	letter-spacing: -0.01em !important;
	text-transform: none !important;
}
.wc-block-checkout__sidebar .wc-block-components-totals-item,
.wc-block-checkout__sidebar .wc-block-components-totals-coupon,
.wc-block-checkout__sidebar .wc-block-components-panel,
.wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title,
.wc-block-checkout__sidebar .wc-block-components-order-summary {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.wc-block-components-totals-item__label {
	font-weight: 400;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-weight: 500;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: var(--rw-display);
	font-size: 2rem;
	font-weight: 400;
	line-height: 1;
	font-variant-numeric: lining-nums;
}
.wc-block-components-totals-item__description,
.wc-block-components-totals-shipping__via,
.wc-block-components-totals-footer-item-tax {
	color: var(--rw-muted);
	font-size: 0.8125rem;
}

/* Cart lines */
table.wc-block-cart-items,
.wc-block-cart .wc-block-cart-items {
	border: 0;
}
.wc-block-cart-items .wc-block-cart-items__header {
	color: var(--rw-muted);
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
.wc-block-cart-items .wc-block-cart-items__header th {
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--rw-line) !important;
	font-weight: 500;
}
.wc-block-cart-items .wc-block-cart-items__row,
.wc-block-cart-items td {
	border-color: var(--rw-line) !important;
}
.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img {
	border-radius: 0 !important;
	background: var(--rw-raise);
}
.wc-block-components-product-name,
.wc-block-cart .wc-block-cart-items .wc-block-components-product-name,
.wc-block-components-order-summary .wc-block-components-product-name {
	color: var(--rw-cream) !important;
	font-family: var(--rw-display);
	font-size: 1.5rem !important;
	font-weight: 400;
	line-height: 1.1;
	text-decoration: none !important;
}
a.wc-block-components-product-name:hover {
	color: var(--rw-gold) !important;
}
.wc-block-components-product-metadata,
.wc-block-components-product-details,
.wc-block-components-product-metadata__description {
	color: var(--rw-muted);
	font-size: 0.875rem;
}
.wc-block-cart-item__remove-link {
	color: var(--rw-muted) !important;
	font-size: 0.8125rem !important;
	text-decoration: underline !important;
	text-transform: none !important;
}
.wc-block-cart-item__remove-link:hover {
	color: var(--rw-cream) !important;
}
.wc-block-components-order-summary-item__quantity {
	border: 1px solid var(--rw-line-strong) !important;
	border-radius: var(--rw-radius) !important;
	background: var(--rw-ink) !important;
	color: var(--rw-cream) !important;
	box-shadow: none !important;
}
.wc-block-components-product-badge,
.wc-block-components-totals-discount__coupon-list .wc-block-components-chip {
	border: 1px solid var(--rw-line-strong) !important;
	border-radius: var(--rw-radius) !important;
	background: none !important;
	color: var(--rw-cream) !important;
	font-size: 0.75rem !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
.wc-block-components-panel__button {
	color: var(--rw-cream) !important;
	font-family: var(--rw-sans) !important;
	font-weight: 500 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
.wc-block-components-panel__button-icon {
	fill: var(--rw-gold) !important;
}

/* Primary checkout actions span their column. */
.wc-block-cart__submit-container .wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	width: 100%;
	min-height: 52px !important;
	font-size: 1rem !important;
}
.wc-block-cart__payment-options {
	opacity: 0.8;
}

/* Checkout steps: titles only, no numbers or rails. */
.wc-block-checkout__form--with-step-numbers .wc-block-components-checkout-step--with-step-number,
.is-mobile .wc-block-checkout__form--with-step-numbers .wc-block-components-checkout-step--with-step-number,
.is-small .wc-block-checkout__form--with-step-numbers .wc-block-components-checkout-step--with-step-number {
	padding: 0 !important;
}
.wc-block-checkout__form--with-step-numbers .wc-block-components-checkout-step--with-step-number .wc-block-components-checkout-step__title::before,
.wc-block-checkout__form--with-step-numbers .wc-block-components-checkout-step--with-step-number .wc-block-components-checkout-step__content::before,
.wc-block-checkout__form--with-step-numbers .wc-block-components-checkout-step--with-step-number .wc-block-components-checkout-step__description::before {
	content: none !important;
	display: none !important;
}
.wc-block-components-checkout-step {
	margin-bottom: 2.5rem !important;
}
.wc-block-components-checkout-step__heading {
	margin-bottom: 1rem !important;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--rw-line);
}
.wc-block-components-checkout-step__title {
	color: var(--rw-cream) !important;
	font-family: var(--rw-display) !important;
	font-size: 1.75rem !important;
	font-weight: 400 !important;
	line-height: 1.1 !important;
	letter-spacing: -0.01em !important;
	text-transform: none !important;
}
.wc-block-components-checkout-step__description {
	color: var(--rw-muted) !important;
	font-size: 0.875rem;
}

/* Payment and shipping choices: hairline rows, gold when chosen. */
.wc-block-components-radio-control--highlight-checked,
.wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control__option {
	border-radius: 0 !important;
	box-shadow: none !important;
}
.wc-block-components-radio-control--highlight-checked::after {
	border-color: var(--rw-line) !important;
	border-radius: 0 !important;
}
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted {
	border-radius: 0 !important;
	box-shadow: inset 0 0 0 1px var(--rw-gold) !important;
}
.wc-block-components-radio-control__label,
.wc-block-components-payment-method-label {
	color: var(--rw-cream);
	font-weight: 500;
}
.wc-block-components-radio-control__description,
.wc-block-components-radio-control__secondary-label,
.wc-block-components-radio-control-accordion-content {
	color: var(--rw-muted) !important;
}
.wc-block-components-address-card {
	border: 1px solid var(--rw-line) !important;
	border-radius: 0 !important;
	background: none !important;
}
.wc-block-components-checkout-return-to-cart-button svg {
	fill: currentColor;
}
.wc-block-components-express-payment-continue-rule {
	color: var(--rw-muted);
	text-transform: none !important;
	letter-spacing: 0 !important;
}
.wc-block-components-express-payment-continue-rule::before,
.wc-block-components-express-payment-continue-rule::after {
	border-color: var(--rw-line) !important;
}
.wc-block-checkout__terms,
.wc-block-checkout__terms a {
	color: var(--rw-muted);
	font-size: 0.875rem;
}

/* Loading skeletons on the dark ground. */
.wc-block-components-skeleton__element {
	background: color-mix(in srgb, var(--rw-cream) 8%, transparent) !important;
}
.wc-block-components-spinner::after {
	border-color: var(--rw-gold) !important;
	border-top-color: transparent !important;
}

/* Empty cart */
.wc-block-cart__empty-cart__title {
	color: var(--rw-cream);
	font-family: var(--rw-display);
	font-size: clamp(2rem, 1.6rem + 1.5vw, 3rem) !important;
	font-weight: 300;
	text-align: left !important;
}
.wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
	display: none !important;
}
.wp-block-woocommerce-empty-cart-block > * {
	text-align: left !important;
}
.wp-block-woocommerce-empty-cart-block .wp-block-separator {
	max-width: none;
	margin: 3rem 0;
	border: 0 !important;
	border-top: 1px solid var(--rw-line) !important;
	background: none !important;
}
.wp-block-woocommerce-empty-cart-block .wp-block-separator::before,
.wp-block-woocommerce-empty-cart-block .wp-block-separator.is-style-dots::before {
	content: none !important;
}
.wp-block-woocommerce-empty-cart-block h2 {
	font-family: var(--rw-display);
	font-weight: 400;
	text-align: left !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
	gap: clamp(1rem, 3vw, 3rem);
	margin: 0;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product {
	border: 0 !important;
	text-align: left !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title {
	color: var(--rw-cream);
	font-family: var(--rw-display);
	font-size: 1.5rem;
	font-weight: 400;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image img {
	border-radius: 0;
}

/* Cross-sells inside the cart: same tile language. */
.wp-block-woocommerce-cart .wp-block-woocommerce-product-collection h2 {
	font-family: var(--rw-display);
	font-weight: 400;
	font-size: 1.75rem;
}
.wp-block-woocommerce-cart .wc-block-product {
	text-align: left !important;
}
.wp-block-woocommerce-cart .wc-block-product .wp-block-post-title {
	font-family: var(--rw-display);
	font-size: 1.375rem !important;
	text-align: left !important;
}
.wp-block-woocommerce-cart .wc-block-product .wc-block-components-product-price,
.wp-block-woocommerce-cart .wc-block-product .wp-block-woocommerce-product-button {
	justify-content: flex-start;
	text-align: left !important;
}

@media (max-width: 600px) {
	table.wc-block-cart-items,
	.wc-block-cart .wc-block-cart-items {
		width: 100% !important;
		max-width: 100%;
		table-layout: fixed;
	}
	.wc-block-cart .wc-block-cart-items .wc-block-cart-items__row {
		grid-template-columns: 72px minmax(0, 1fr) minmax(0, max-content) max-content !important;
		column-gap: 12px !important;
	}
	.wc-block-cart .wc-block-cart-items td.wc-block-cart-item__image {
		padding-left: 0 !important;
	}
	.wc-block-cart .wc-block-cart-items td.wc-block-cart-item__total {
		padding-right: 0 !important;
	}
	.wc-block-cart .wc-block-cart-items td,
	.wc-block-cart .wc-block-components-product-name {
		overflow-wrap: anywhere;
	}
}

/* ==========================================================================
   MY ACCOUNT (classic shortcode inside a block page)
   ========================================================================== */
.woocommerce-account .woocommerce {
	font-family: var(--rw-sans);
}
.woocommerce-account.logged-in .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2.5rem;
}
.woocommerce-account .woocommerce-notices-wrapper:empty,
.woocommerce-account .wp-block-post-content > p:empty {
	display: none;
}
.woocommerce-account .woocommerce > h2:first-of-type {
	margin-top: 0;
}
.woocommerce-account form.login {
	max-width: 32rem;
}
@media (min-width: 900px) {
	.woocommerce-account.logged-in .woocommerce {
		grid-template-columns: 14rem minmax(0, 1fr);
		gap: clamp(2rem, 5vw, 5rem);
	}
}
.woocommerce-account .woocommerce::before,
.woocommerce-account .woocommerce::after {
	content: none !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
}
.woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--rw-line);
}
.woocommerce-MyAccount-navigation li {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid var(--rw-line);
}
.woocommerce-MyAccount-navigation a {
	display: block;
	padding: 0.85rem 0;
	color: var(--rw-muted);
	font-size: 0.9375rem;
	font-weight: 500;
	text-decoration: none;
	transition: color 0.2s var(--rw-ease);
}
.woocommerce-MyAccount-navigation a:hover,
.woocommerce-MyAccount-navigation .is-active a {
	color: var(--rw-cream);
}
.woocommerce-MyAccount-navigation .is-active a {
	box-shadow: inset 2px 0 0 var(--rw-gold);
	padding-left: 0.85rem;
}
.woocommerce-MyAccount-content {
	color: color-mix(in srgb, var(--rw-cream) 88%, var(--rw-ink));
	font-size: 1rem;
	line-height: 1.7;
}
.woocommerce-MyAccount-content a {
	color: var(--rw-cream);
	text-decoration-color: var(--rw-line-gold);
	text-underline-offset: 0.25em;
}
.woocommerce-account h2,
.woocommerce-account h3,
.woocommerce-account legend {
	color: var(--rw-cream);
	font-family: var(--rw-display);
	font-size: 1.75rem;
	font-weight: 400;
	letter-spacing: -0.01em;
	text-transform: none;
}
.woocommerce-account fieldset {
	margin: 2rem 0 0;
	padding: 0;
	border: 0;
}
/* Login / register: two calm columns, no boxes. */
.woocommerce-account .u-columns.col2-set {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 3rem;
	width: 100%;
}
@media (min-width: 900px) {
	.woocommerce-account .u-columns.col2-set {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: clamp(2rem, 6vw, 6rem);
	}
}
.woocommerce-account .u-columns.col2-set::before,
.woocommerce-account .u-columns.col2-set::after {
	content: none;
}
.woocommerce-account .u-columns .u-column1,
.woocommerce-account .u-columns .u-column2 {
	float: none;
	width: auto;
}
.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.lost_reset_password,
.woocommerce form.checkout_coupon {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
}
.woocommerce form .form-row {
	margin: 0 0 1rem;
	padding: 0;
}
.woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-right: 1rem;
}
.woocommerce-LostPassword a,
.woocommerce-privacy-policy-text a {
	color: var(--rw-cream);
}
.woocommerce-privacy-policy-text {
	color: var(--rw-muted);
	font-size: 0.875rem;
}
.woocommerce-Addresses .woocommerce-Address {
	padding: 0;
}
.woocommerce-Address-title {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
}
.woocommerce-Address-title .edit {
	font-size: 0.875rem;
}
.woocommerce-account address {
	font-style: normal;
	line-height: 1.7;
}

/* Order and account tables */
.woocommerce table.shop_table,
.woocommerce-account table.shop_table,
.woocommerce-table {
	width: 100%;
	border: 0 !important;
	border-collapse: collapse !important;
	border-radius: 0 !important;
	font-size: 0.9375rem;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 0.85rem 0.75rem 0.85rem 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--rw-line) !important;
	background: none !important;
	text-align: left;
}
.woocommerce table.shop_table thead th {
	color: var(--rw-muted);
	font-size: 0.8125rem;
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
}
.woocommerce table.shop_table .button {
	min-height: 40px;
	padding: 0.5rem 1rem !important;
	font-size: 0.875rem !important;
}
.woocommerce-pagination,
.woocommerce-account .woocommerce-pagination {
	margin-top: 1.5rem;
}
mark.order-number,
mark.order-date,
mark.order-status {
	background: none;
	color: var(--rw-cream);
	font-weight: 500;
}

/* ==========================================================================
   ORDER CONFIRMATION
   ========================================================================== */
.rv-commerce--thanks .wc-block-order-confirmation-status {
	margin: 0;
}
.rv-commerce--thanks .wc-block-order-confirmation-status p {
	margin: 0;
}
.rv-commerce--thanks .wc-block-order-confirmation-status > p + p {
	margin-top: 1rem;
	color: var(--rw-muted);
	font-family: var(--rw-sans);
	font-size: 1rem;
	font-weight: 300;
}
.wc-block-order-confirmation-summary {
	padding: 1.5rem 0 !important;
	border-top: 1px solid var(--rw-line-gold);
	border-bottom: 1px solid var(--rw-line);
}
.wc-block-order-confirmation-summary-list {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
	gap: 1.5rem 2rem;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.wc-block-order-confirmation-summary-list-item {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}
.wc-block-order-confirmation-summary-list-item__key {
	color: var(--rw-muted);
	font-size: 0.8125rem;
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
}
.wc-block-order-confirmation-summary-list-item__value {
	color: var(--rw-cream);
	font-family: var(--rw-display);
	font-size: 1.5rem;
	font-weight: 400;
	font-variant-numeric: lining-nums;
}
.wc-block-order-confirmation-totals table,
.wc-block-order-confirmation-totals__table {
	width: 100%;
	border: 0 !important;
	border-collapse: collapse;
}
.wc-block-order-confirmation-totals th,
.wc-block-order-confirmation-totals td {
	padding: 0.85rem 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--rw-line) !important;
	background: none !important;
	text-align: left;
	font-weight: 400;
}
.wc-block-order-confirmation-totals td:last-child,
.wc-block-order-confirmation-totals th:last-child {
	text-align: right;
}
.wc-block-order-confirmation-totals tfoot tr:last-child td,
.wc-block-order-confirmation-totals tfoot tr:last-child th {
	font-family: var(--rw-display);
	font-size: 1.5rem;
}
.wc-block-order-confirmation-shipping-address,
.wc-block-order-confirmation-billing-address,
.wc-block-order-confirmation-address-wrapper address {
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-style: normal;
	line-height: 1.7;
}
.rv-commerce__after {
	max-width: 38rem;
	margin-top: var(--wp--preset--spacing--60, 4rem) !important;
	padding-top: 1.5rem;
	border-top: 1px solid var(--rw-line);
}
.rv-commerce__after > * {
	margin: 0;
}
.rv-commerce__after > * + * {
	margin-top: 1rem;
}
.rv-commerce__after p:not(.rv-textlink) {
	color: var(--rw-muted);
	line-height: 1.7;
}


/* ==========================================================================
   CART, CHECKOUT, ACCOUNT, THANKS: calm grounds with grain and jali
   ========================================================================== */
.rv-commerce {
	position: relative;
	isolation: isolate;
	background:
		radial-gradient(50% 420px at 100% 0%, color-mix(in srgb, var(--rw-plum) 34%, transparent), transparent 75%),
		var(--rw-night);
}
.rv-commerce::before {
	content: "";
	position: absolute;
	inset: 0 0 auto auto;
	width: min(60vw, 760px);
	height: 520px;
	z-index: -1;
	pointer-events: none;
	background: var(--rw-jali) right top / 56px 56px repeat;
	-webkit-mask: radial-gradient(100% 100% at 100% 0%, rgb(0 0 0 / 0.3), transparent 70%);
	mask: radial-gradient(100% 100% at 100% 0%, rgb(0 0 0 / 0.3), transparent 70%);
}
/* A mehrab outline stands beside the page title on wide screens. */
.rv-commerce__head {
	position: relative;
}
@media (min-width: 960px) {
	.rv-commerce__head {
		padding-left: clamp(5.5rem, 3rem + 4vw, 7.5rem);
	}
	.rv-commerce__head::before {
		content: "";
		position: absolute;
		left: 0;
		top: -0.5rem;
		width: clamp(4.5rem, 2.5rem + 3vw, 6rem);
		aspect-ratio: 400 / 540;
		background: var(--rw-gold);
		-webkit-mask: var(--rw-arch-line) center / 100% 100% no-repeat;
		mask: var(--rw-arch-line) center / 100% 100% no-repeat;
		opacity: 0.85;
	}
}
.rv-commerce__head::after {
	margin-top: 2rem;
	background:
		var(--rw-rule) 0 50% / 168px 28px no-repeat,
		linear-gradient(90deg, color-mix(in srgb, var(--rw-gold) 45%, transparent), transparent) 168px 50% / calc(100% - 168px) 1px no-repeat;
	-webkit-mask: none;
	mask: none;
}

/* Product thumbnails in the bag and summaries sit in small arches. */
.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	background: color-mix(in srgb, var(--rw-plum) 30%, var(--rw-night)) !important;
	-webkit-mask: var(--rw-arch) center / 100% 100% no-repeat;
	mask: var(--rw-arch) center / 100% 100% no-repeat;
}

/* Suggestions inside the cart (empty cart, cross-sells): renders in arches. */
.wp-block-woocommerce-cart .wc-block-components-product-image img,
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image img {
	aspect-ratio: 4 / 5 !important;
	object-fit: cover;
	-webkit-mask: var(--rw-arch) center / 100% 100% no-repeat;
	mask: var(--rw-arch) center / 100% 100% no-repeat;
}
.wp-block-woocommerce-cart .wc-block-components-product-image {
	padding-top: 1.5rem;
	background: radial-gradient(60% 50% at 50% 100%, color-mix(in srgb, var(--rw-plum) 40%, transparent), transparent 75%);
}
.wp-block-woocommerce-cart .wc-block-product .wp-block-post-title a,
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-link {
	color: var(--rw-cream);
	text-decoration: none;
}
.wp-block-woocommerce-cart .wc-block-product .wp-block-post-title a:hover {
	color: var(--rw-gold-soft, #e6c88a);
}

/* Order summary: a raw-silk plum panel instead of a bordered card. */
@media (min-width: 700px) {
	.rv-commerce .wc-block-components-sidebar-layout:not(.is-small):not(.is-mobile) .wc-block-components-sidebar {
		padding: clamp(1.5rem, 2.5vw, 2.5rem) !important;
		border-left: 0;
		background:
			linear-gradient(color-mix(in srgb, var(--rw-gold) 55%, transparent), color-mix(in srgb, var(--rw-gold) 55%, transparent)) 0 0 / 100% 1px no-repeat,
			linear-gradient(color-mix(in srgb, var(--rw-gold) 20%, transparent), color-mix(in srgb, var(--rw-gold) 20%, transparent)) 0 5px / 100% 1px no-repeat,
			linear-gradient(170deg, color-mix(in srgb, var(--rw-plum) 32%, var(--rw-night)), color-mix(in srgb, var(--rw-plum) 12%, var(--rw-night)));
	}
}
.rv-commerce--thanks .wc-block-order-confirmation-summary {
	background: linear-gradient(170deg, color-mix(in srgb, var(--rw-plum) 22%, transparent), transparent);
	padding-inline: 1.5rem !important;
}
.woocommerce-MyAccount-navigation {
	position: relative;
}
.woocommerce-account .show-password-input,
.woocommerce-account .show-password-input::after {
	color: var(--rw-muted) !important;
}
/* Signed out: a tall mehrab with the star finial keeps the login company. */
@media (min-width: 900px) {
	body.woocommerce-account:not(.logged-in) .rv-commerce .wp-block-post-content {
		position: relative;
		min-height: 30rem;
	}
	body.woocommerce-account:not(.logged-in) .rv-commerce .wp-block-post-content::after {
		content: "";
		position: absolute;
		right: clamp(0rem, 6vw, 6rem);
		top: 0;
		width: clamp(14rem, 8rem + 10vw, 20rem);
		aspect-ratio: 400 / 540;
		background:
			radial-gradient(60% 55% at 50% 45%, color-mix(in srgb, var(--rw-plum) 55%, transparent), transparent 75%);
		pointer-events: none;
	}
	body.woocommerce-account:not(.logged-in) .rv-commerce .wp-block-post-content::before {
		content: "";
		position: absolute;
		right: clamp(0rem, 6vw, 6rem);
		top: 0;
		z-index: 1;
		width: clamp(14rem, 8rem + 10vw, 20rem);
		aspect-ratio: 400 / 540;
		background: var(--rw-leaf) 0 0 / 220px repeat, var(--rw-gold);
		-webkit-mask: var(--rw-arch-line) center / 100% 100% no-repeat;
		mask: var(--rw-arch-line) center / 100% 100% no-repeat;
		opacity: 0.75;
		pointer-events: none;
	}
}
@media (min-width: 900px) {
	.woocommerce-MyAccount-navigation::after {
		content: "";
		display: block;
		width: 6rem;
		aspect-ratio: 400 / 540;
		margin-top: 2.5rem;
		background: var(--rw-gold);
		-webkit-mask: var(--rw-arch-line) center / 100% 100% no-repeat;
		mask: var(--rw-arch-line) center / 100% 100% no-repeat;
		opacity: 0.4;
	}
}

/* ==========================================================================
   Responsive grid + motion preferences
   ========================================================================== */
@media (max-width: 959px) {
	.rv-tiles.wc-block-product-template__responsive.columns-3,
	.rv-tiles.wc-block-product-template__responsive.columns-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 599px) {
	.rv-tiles.wc-block-product-template__responsive.columns-3,
	.rv-tiles.wc-block-product-template__responsive.columns-4 {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: no-preference) {
	.rv-pdp__media .wc-block-product-gallery-large-image__wrapper::after,
	.rv-shop__head > .wp-block-column:first-child::before {
		animation: rw-rise-in 1.4s var(--rw-ease) both;
	}
}
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.rv-tile,
		.rv-pdp__still {
			animation: rw-rise linear both;
			animation-timeline: view();
			animation-range: entry 0% entry 35%;
		}
		/* The arch outline on the product stage drifts a touch slower than the page. */
		.rv-pdp__media .wc-block-product-gallery-large-image__wrapper::after {
			animation: rw-drift linear both;
			animation-timeline: scroll(root);
			animation-range: 0 100vh;
		}
	}
}
@keyframes rw-drift {
	to {
		transform: translateY(18px);
	}
}
@keyframes rw-rise-in {
	from {
		opacity: 0;
		transform: translateY(12px);
	}
}
@keyframes rw-rise {
	from {
		opacity: 0;
		transform: translateY(24px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rv-tile__image > a::after,
	.rv-tile__image img,
	.rv-pdp__details > summary::before,
	.rv-pdp__details > summary::after,
	.rv-textlink a,
	.rv-filter a,
	.rv-pdp__details a,
	.rv-commerce__after a {
		transition: none !important;
	}
	.rv-tile:hover .rv-tile__image img {
		transform: none;
	}
}
