/* Luxury Revamped — brand theme stylesheet */

/* Sections are already full-bleed with their own explicit background/padding, so WordPress's
   default top-level block spacing just shows the page background as a stray seam between them
   (most visible between a section and the footer). Kill it site-wide. */
.wp-site-blocks > * {
	margin-block-start: 0;
}

.lr-hero-slide {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: brightness(.5);
	opacity: 0;
	animation: lr-hero-fade 30s infinite;
}
.lr-hero-slide:nth-child(1) { animation-delay: 0s; }
.lr-hero-slide:nth-child(2) { animation-delay: 6s; }
.lr-hero-slide:nth-child(3) { animation-delay: 12s; }
.lr-hero-slide:nth-child(4) { animation-delay: 18s; }
.lr-hero-slide:nth-child(5) { animation-delay: 24s; }
@keyframes lr-hero-fade {
	0%   { opacity: 0; }
	2.4% { opacity: 1; }
	16.8% { opacity: 1; }
	19.8% { opacity: 0; }
	100% { opacity: 0; }
}
/* Slide 1 starts fully visible (no fade-in from 0) so the LCP image paints the moment it arrives; it fades in again at the end of each loop, cross-fading with slide 3. */
@keyframes lr-hero-fade-first {
	0%, 16.8% { opacity: 1; }
	19.8%, 96% { opacity: 0; }
	100%     { opacity: 1; }
}
@media (prefers-reduced-motion: no-preference) {
	.lr-hero-slide:nth-child(1) { animation-name: lr-hero-fade-first; }
}
@media (prefers-reduced-motion: reduce) {
	.lr-hero-slide { animation: none; opacity: 0; }
	.lr-hero-slide:nth-child(1) { opacity: 1; }
}

.lr-marquee-track {
	display: inline-flex;
	white-space: nowrap;
	animation: lr-marquee 24s linear infinite;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
}
@keyframes lr-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

.lr-eyebrow {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--wp--preset--color--gold);
	display: block;
}

.lr-nav-link {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--wp--preset--color--charcoal);
	text-decoration: none !important;
	white-space: nowrap;
}
.lr-nav-link:hover { color: var(--wp--preset--color--gold); }

.lr-icon-link { color: var(--wp--preset--color--obsidian); display: inline-flex; align-items: center; gap: 3px; text-decoration: none !important; }

.lr-cart-link, .lr-wishlist-link { position: relative; }
.lr-cart-count, .lr-wishlist-count {
	position: absolute;
	top: -7px;
	right: -9px;
	min-width: 15px;
	height: 15px;
	padding: 0 3px;
	border-radius: 50%;
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--obsidian);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 10px;
	font-weight: 600;
	line-height: 15px;
	text-align: center;
	box-sizing: border-box;
}

.lr-mega-menu {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: var(--wp--preset--color--ivory);
	border-top: 1px solid var(--wp--preset--color--border-subtle);
	border-bottom: 1px solid var(--wp--preset--color--border-subtle);
	box-shadow: var(--wp--custom--shadow--elevated);
	z-index: 30;
	display: none;
}
.lr-nav-item.is-open .lr-mega-menu { display: block; }

.lr-search-toggle { cursor: pointer; background: none; border: none; padding: 0; }

.lr-search-panel {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: var(--wp--preset--color--ivory);
	border-top: 1px solid var(--wp--preset--color--border-subtle);
	border-bottom: 1px solid var(--wp--preset--color--border-subtle);
	box-shadow: var(--wp--custom--shadow--elevated);
	z-index: 30;
	display: none;
}
.lr-search-panel.is-open { display: block; }
.lr-search-panel-inner {
	max-width: 560px;
	margin: 0 auto;
	padding: 28px 24px;
	display: flex;
	align-items: center;
	gap: 14px;
}
.lr-search-input {
	flex: 1;
	border: none;
	border-bottom: 1px solid var(--wp--preset--color--border-subtle);
	background: transparent;
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 20px;
	padding: 8px 2px;
	outline: none;
	color: var(--wp--preset--color--obsidian);
}
.lr-search-submit { background: none; border: none; cursor: pointer; color: var(--wp--preset--color--obsidian); display: flex; padding: 0; }

.lr-mobile-drawer { display: none; border-top: 1px solid var(--wp--preset--color--border-subtle); }
.lr-mobile-drawer.is-open { display: flex; flex-direction: column; }
.lr-burger { display: none; cursor: pointer; flex-direction: column; gap: 4px; padding: 4px; background: none; border: none; }
.lr-burger span { width: 20px; height: 1px; background: var(--wp--preset--color--obsidian); display: block; }

@media (max-width: 900px) {
	.lr-desktop-nav { display: none !important; }
	.lr-burger { display: flex !important; }
}
@media (min-width: 901px) {
	.lr-mobile-drawer { display: none !important; }
}
@media (max-width: 480px) {
	.lr-site-logo span { font-size: 12px !important; letter-spacing: .5px !important; }
	.lr-site-logo img { height: 18px !important; }
	.lr-site-logo { gap: 4px !important; }
}

/* Responsive grid utilities: mirrors the design's [data-rgrid] behavior */
.lr-grid { display: grid; gap: 20px; }
.lr-grid-2 { grid-template-columns: repeat(2, 1fr); }
.lr-grid-3 { grid-template-columns: repeat(3, 1fr); }
.lr-grid-4 { grid-template-columns: repeat(4, 1fr); }
.lr-grid-5 { grid-template-columns: repeat(5, 1fr); }
.lr-grid-6 { grid-template-columns: repeat(6, 1fr); }
.lr-grid-7 { grid-template-columns: repeat(7, 1fr); }
@media (max-width: 1024px) {
	.lr-grid-3, .lr-grid-4, .lr-grid-5, .lr-grid-6, .lr-grid-7 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 680px) {
	.lr-grid-2, .lr-grid-3, .lr-grid-4, .lr-grid-5, .lr-grid-6, .lr-grid-7 { grid-template-columns: 1fr; }
}

.lr-footer-grid { grid-template-columns: 1.6fr repeat(5, 1fr); }
@media (max-width: 1024px) {
	.lr-footer-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 680px) {
	.lr-footer-grid { grid-template-columns: 1fr; }
}

/* Gift Edit's asymmetric masonry (tall image spanning two rows beside two stacked images) is a
   desktop-only treatment — below 680px it falls back to the same single-column card stack every
   other product row already uses on mobile. */
@media (max-width: 680px) {
	.lr-gift-outer { grid-template-columns: 1fr !important; }
	.lr-gift-masonry { grid-template-columns: 1fr !important; grid-template-rows: none !important; gap: 20px !important; }
	.lr-gift-masonry .lr-product-card { grid-row: auto !important; }
	.lr-gift-masonry .lr-product-card img { aspect-ratio: 4/5 !important; }
}

/* The Final Edit's 1fr/2fr text+image split is a desktop-only treatment — below 680px it falls
   back to a single column, same as every other text+image split on mobile. */
@media (max-width: 680px) {
	.lr-final-outer { grid-template-columns: 1fr !important; }
}

.lr-outline-btn {
	position: relative;
	display: inline-block;
	margin-top: 24px;
	padding: 14px 26px;
	border: 1px solid var(--wp--preset--color--obsidian);
	color: var(--wp--preset--color--obsidian);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 11px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	text-decoration: none !important;
	overflow: hidden;
	z-index: 0;
	transition: color .45s cubic-bezier(.65,0,.35,1);
}
.lr-outline-btn::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--wp--preset--color--obsidian);
	transform: translateX(-101%);
	transition: transform .45s cubic-bezier(.65,0,.35,1);
	z-index: -1;
}
.lr-outline-btn:hover { color: var(--wp--preset--color--ivory); }
.lr-outline-btn:hover::before { transform: translateX(0); }

/* Solid-fill buttons — gold sweeps over the existing fill on hover */
.lr-btn-solid {
	position: relative;
	display: inline-block;
	padding: 14px 20px;
	background: var(--wp--preset--color--ivory);
	color: var(--wp--preset--color--obsidian);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 11px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	text-decoration: none !important;
	overflow: hidden;
	z-index: 0;
	transition: color .45s cubic-bezier(.65,0,.35,1);
}
.lr-btn-solid::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--wp--preset--color--gold);
	transform: translateX(-101%);
	transition: transform .45s cubic-bezier(.65,0,.35,1);
	z-index: -1;
}
.lr-btn-solid:hover::before { transform: translateX(0); }
.lr-btn-solid.is-dark { background: var(--wp--preset--color--obsidian); color: var(--wp--preset--color--ivory); }
.lr-btn-solid.is-dark:hover { color: var(--wp--preset--color--obsidian); }
.lr-outline-btn.is-dark { border-color: var(--wp--preset--color--ivory); color: var(--wp--preset--color--ivory); }
.lr-outline-btn.is-dark::before { background: var(--wp--preset--color--ivory); }
.lr-outline-btn.is-dark:hover { color: var(--wp--preset--color--obsidian); }

.lr-text-cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 20px;
	padding-bottom: 2px;
	border-bottom: 1px solid transparent;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--wp--preset--color--gold);
	text-decoration: none !important;
	transition: transform .3s cubic-bezier(.65,0,.35,1), border-color .3s ease, opacity .3s ease;
}
.lr-text-cta:hover {
	transform: translateX(5px);
	border-color: var(--wp--preset--color--gold);
	opacity: .85;
}

.lr-product-card { display: block; text-decoration: none !important; color: inherit; overflow: hidden; }
.lr-product-card figure { margin: 0; position: relative; overflow: hidden; }
.lr-product-card img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4/5;
	object-fit: cover;
}

/* The Archive's "Pieces We Remember" photos sit in a fixed-ratio box but the
   <img> keeps its native intrinsic size by default, so it was only showing
   the top-left crop of the photo instead of a centered, full-bleed fill. */
.lr-remember-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
/* Duotone-to-colour is a hover-reveal effect — only applies on devices that can actually hover.
   Without this gate, touch devices would be stuck on the desaturated resting state forever.
   Skipped on the --overlay variant, which uses a dark-overlay-fade treatment instead. */
@media (hover: hover) and (pointer: fine) {
	.lr-product-card:not(.lr-product-card--overlay) img {
		filter: grayscale(70%) brightness(.94);
		transition: filter .6s ease;
	}
	.lr-product-card:not(.lr-product-card--overlay):hover img { filter: grayscale(0%) brightness(1); }
}
.lr-product-card .lr-product-brand { display: block; margin-top: 14px; font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--wp--preset--color--gold); }
.lr-product-card .lr-product-title { display: block; font-family: var(--wp--preset--font-family--cormorant-garamond); font-weight: 500; font-size: 16px; margin: 4px 0; color: var(--wp--preset--color--charcoal); }
.lr-product-card .lr-product-price { font-family: var(--wp--preset--font-family--montserrat); font-size: 13px; font-weight: 400; color: var(--wp--preset--color--muted-text); }

/* Wishlist page cards — reuse .lr-product-card's figure/brand/title/price language,
   add a remove-heart overlay on the image and a status line above the brand. */
.lr-wishlist-card-figure { position: relative; margin: 0 0 14px; overflow: hidden; aspect-ratio: 4/5; background: var(--wp--preset--color--muted-surface); }
.lr-wishlist-card-figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lr-wishlist-card-figure.is-archived img { filter: grayscale(40%) brightness(.9); }
.lr-wishlist-remove {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .9);
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
	color: var(--wp--preset--color--gold);
	cursor: pointer;
	padding: 0;
}
.lr-wishlist-status { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 10.5px; font-weight: 500; text-transform: uppercase; letter-spacing: .08em; color: var(--wp--preset--color--gold); margin-bottom: 8px; }
.lr-wishlist-status.is-archived { color: var(--wp--preset--color--muted-text); }
.lr-wishlist-note { font-family: var(--wp--preset--font-family--montserrat); font-size: 11.5px; font-style: italic; color: var(--wp--preset--color--muted-text); line-height: 1.5; margin: 0 0 10px; }
.lr-wishlist-view { display: inline-block; font-family: var(--wp--preset--font-family--montserrat); font-size: 11.5px; font-weight: 500; color: var(--wp--preset--color--gold); text-decoration: none; }

/* Overlay-fade variant (Curator's Picks, Gift Edit) — dark overlay + a centered "View Piece"
   mark fade in on hover, image itself stays full colour at rest. */
.lr-product-card--overlay img { transition: transform .6s ease; }
.lr-product-card--overlay:hover img { transform: scale(1.04); }
.lr-product-card--overlay figure::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(27,24,21,.4);
	opacity: 0;
	transition: opacity .4s ease;
}
.lr-product-card--overlay:hover figure::after { opacity: 1; }
.lr-product-card--overlay .lr-product-view {
	position: absolute;
	top: 50%; left: 50%;
	transform: translate(-50%,-50%) scale(.85);
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 11px 20px;
	border: 1px solid var(--wp--preset--color--ivory);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ivory);
	white-space: nowrap;
	opacity: 0;
	transition: opacity .35s ease, transform .35s cubic-bezier(.22,1,.36,1);
	z-index: 1;
}
.lr-product-card--overlay:hover .lr-product-view { opacity: 1; transform: translate(-50%,-50%) scale(1); }

/* Native WooCommerce loop cards (shop archive, cart cross-sells) — same visual
   language as .lr-product-card above, layered onto WC's own markup/classes
   rather than restructuring it, so Add to Cart/ratings/sale-badge hooks stay intact. */
.lr-wc-card a.woocommerce-loop-product__link { display: block; text-decoration: none !important; color: inherit; overflow: hidden; }
.lr-wc-card .lr-wc-image-wrap { position: relative; display: block; overflow: hidden; }
.lr-wc-card .lr-card-badge-reserved {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	display: inline-block;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 9.5px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ivory);
	background: var(--wp--preset--color--obsidian);
	border: 1px solid var(--wp--preset--color--gold);
	padding: 5px 10px;
}
.lr-wc-card img { display: block; width: 100%; height: auto; aspect-ratio: 1/1; object-fit: cover; transition: transform .6s ease; }
.lr-wc-card:hover img { transform: scale(1.04); }
/* Overlay-fade hover treatment (matches .lr-product-card--overlay used on
   Curator's Picks/Gift Edit) — dark scrim + centered "View Piece" mark,
   replacing the old duotone-to-colour filter effect on this grid. */
.lr-wc-card .lr-wc-image-wrap::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(27, 24, 21, .4);
	opacity: 0;
	transition: opacity .4s ease;
}
.lr-wc-card:hover .lr-wc-image-wrap::after { opacity: 1; }
.lr-wc-card .lr-product-view {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) scale(.85);
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 11px 20px;
	border: 1px solid var(--wp--preset--color--ivory);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ivory);
	white-space: nowrap;
	opacity: 0;
	transition: opacity .35s ease, transform .35s cubic-bezier(.22, 1, .36, 1);
	z-index: 1;
}
.lr-wc-card:hover .lr-product-view { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.lr-wc-card .lr-product-brand { display: block; margin-top: 14px; font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--wp--preset--color--gold); }
.lr-wc-card .woocommerce-loop-product__title { font-family: var(--wp--preset--font-family--cormorant-garamond); font-weight: 500; font-size: 16px; margin: 4px 0; color: var(--wp--preset--color--charcoal); }
.lr-wc-card .price { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 13px; font-weight: 400; color: var(--wp--preset--color--muted-text); }
.lr-wc-card a.add_to_cart_button,
.lr-wc-card a.button {
	position: relative;
	display: inline-block;
	margin-top: 10px;
	padding: 9px 16px;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	border: 1px solid var(--wp--preset--color--charcoal);
	color: var(--wp--preset--color--charcoal);
	background: transparent;
	text-decoration: none !important;
	transition: background .3s ease, color .3s ease;
}
.lr-wc-card a.add_to_cart_button:hover,
.lr-wc-card a.button:hover { background: var(--wp--preset--color--charcoal); color: var(--wp--preset--color--ivory); }
.lr-wc-card a.added_to_cart { display: block; margin-top: 8px; font-family: var(--wp--preset--font-family--montserrat); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--gold); }

/* Related products (single-product page) — WooCommerce block markup, styled via
   className hooks added to each sub-block in templates/single-product.html. */
.lr-related-products .lr-rp-image { overflow: hidden; }
.lr-related-products .lr-rp-image img { transition: transform .6s ease; }
.lr-related-products li:hover .lr-rp-image img { transform: scale(1.04); }
.lr-related-products .lr-rp-title a {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	color: var(--wp--preset--color--charcoal);
	text-decoration: none;
	transition: color .3s ease;
}
.lr-related-products .lr-rp-title a:hover { color: var(--wp--preset--color--gold); }
.lr-related-products .lr-rp-price { font-family: var(--wp--preset--font-family--montserrat); color: var(--wp--preset--color--muted-text); }
.lr-related-products .lr-rp-btn a,
.lr-related-products .lr-rp-btn button {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	border: 1px solid var(--wp--preset--color--charcoal);
	background: transparent;
	color: var(--wp--preset--color--charcoal);
	padding: 10px 18px;
	transition: background .3s ease, color .3s ease;
}
.lr-related-products .lr-rp-btn a:hover,
.lr-related-products .lr-rp-btn button:hover { background: var(--wp--preset--color--charcoal); color: var(--wp--preset--color--ivory); }

/* FAQ accordion */
.lr-faq-item { border-bottom: 1px solid var(--wp--preset--color--border-subtle); }
.lr-faq-q { width: 100%; text-align: left; background: none; border: none; cursor: pointer; padding: 20px 0; display: flex; justify-content: space-between; align-items: center; font-family: var(--wp--preset--font-family--cormorant-garamond); font-size: 18px; color: var(--wp--preset--color--charcoal); }
.lr-faq-a { max-height: 0; overflow: hidden; transition: max-height .25s ease; font-family: var(--wp--preset--font-family--montserrat); font-size: 14px; color: var(--wp--preset--color--muted-text); line-height: 1.7; }
.lr-faq-item.is-open .lr-faq-a { max-height: 400px; padding-bottom: 20px; }
.lr-faq-item.is-open .lr-faq-plus { transform: rotate(45deg); }
.lr-faq-plus { transition: transform .2s ease; font-size: 20px; color: var(--wp--preset--color--gold); }

/* Reserve Edit terms modal */
.lr-modal-overlay { position: fixed; inset: 0; background: var(--wp--custom--overlay-scrim); display: none; align-items: center; justify-content: center; z-index: 100; padding: 20px; }
.lr-modal-overlay.is-open { display: flex; }
.lr-modal-box { background: var(--wp--preset--color--ivory); max-width: 560px; width: 100%; max-height: 84vh; overflow-y: auto; padding: 40px; position: relative; box-shadow: var(--wp--custom--shadow--elevated); }
.lr-modal-close { position: absolute; top: 16px; right: 18px; font-family: var(--wp--preset--font-family--montserrat); font-size: 14px; color: var(--wp--preset--color--muted-text); cursor: pointer; background: none; border: none; }

/* ==== Shop archive (WooCommerce classic loop) restyle ==== */

.lr-shop-wrap { padding: 48px 24px 96px; }

.lr-shop-wrap .woocommerce-breadcrumb {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 12px;
	color: var(--wp--preset--color--muted-text);
	margin: 0 0 24px;
}
.lr-shop-wrap .woocommerce-breadcrumb a { color: var(--wp--preset--color--muted-text); text-decoration: none; }
.lr-shop-wrap .woocommerce-breadcrumb a:hover { color: var(--wp--preset--color--gold); }

.lr-shop-wrap h1.woocommerce-products-header__title,
.lr-shop-wrap .page-title {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-weight: 500;
	font-size: clamp(1.75rem, 2.6vw, 2.25rem);
	color: var(--wp--preset--color--charcoal);
	margin: 0 0 32px;
}

.lr-shop-wrap .woocommerce-result-count,
.lr-shop-wrap .woocommerce-ordering {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 12.5px;
	color: var(--wp--preset--color--muted-text);
}
.lr-shop-wrap .woocommerce-ordering select {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 12.5px;
	border: 1px solid var(--wp--preset--color--border-subtle);
	border-radius: 2px;
	padding: 8px 10px;
	background: var(--wp--preset--color--white);
}

.lr-shop-wrap ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px 24px;
	list-style: none;
	margin: 32px 0 0 !important;
	padding: 0 !important;
}
@media (max-width: 1024px) { .lr-shop-wrap ul.products { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .lr-shop-wrap ul.products { grid-template-columns: 1fr; } }

.lr-shop-wrap ul.products::before,
.lr-shop-wrap ul.products::after {
	content: none !important;
	display: none !important;
}

.lr-shop-wrap ul.products li.product {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	list-style: none;
	text-align: left;
}

.lr-shop-wrap ul.products li.product a img {
	width: 100%;
	aspect-ratio: 4/5;
	object-fit: cover;
	border-radius: 0;
	margin-bottom: 14px !important;
}

.lr-shop-wrap ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-weight: 500;
	font-size: 16px;
	color: var(--wp--preset--color--charcoal);
	margin: 0 0 4px;
	text-transform: none;
}

.lr-shop-wrap ul.products li.product .price {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 13px;
}
.lr-shop-wrap ul.products li.product .price .woocommerce-Price-amount { color: var(--wp--preset--color--muted-text); }
.lr-shop-wrap ul.products li.product .price ins .woocommerce-Price-amount { text-decoration: none; color: var(--wp--preset--color--gold); }
.lr-shop-wrap ul.products li.product .price del { opacity: .6; }

.lr-shop-wrap ul.products li.product .onsale {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .06em;
	text-transform: uppercase;
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--ivory);
	padding: 4px 10px;
	border-radius: 0;
	position: absolute;
	top: 12px;
	left: 12px;
	min-height: 0;
	min-width: 0;
	line-height: 1.4;
}

.lr-shop-wrap ul.products li.product a.add_to_cart_button,
.lr-shop-wrap ul.products li.product a.button {
	display: inline-block;
	margin-top: 12px;
	padding: 10px 18px;
	border: 1px solid var(--wp--preset--color--obsidian);
	background: transparent;
	color: var(--wp--preset--color--obsidian);
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 10.5px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1px;
	border-radius: 0;
	transition: background var(--wp--custom--duration--fast) var(--wp--custom--ease--standard);
}
.lr-shop-wrap ul.products li.product a.add_to_cart_button:hover,
.lr-shop-wrap ul.products li.product a.button:hover {
	background: var(--wp--preset--color--obsidian);
	color: var(--wp--preset--color--ivory);
}

.lr-shop-wrap ul.products li.product a.added_to_cart {
	display: inline-block;
	margin-top: 12px;
	margin-left: 14px;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 10.5px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--wp--preset--color--gold);
}

.lr-shop-wrap .woocommerce-pagination {
	margin-top: 56px;
	text-align: center;
}
.lr-shop-wrap .woocommerce-pagination ul.page-numbers {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	padding: 0;
	margin: 0;
	border: none !important;
}
.lr-shop-wrap .woocommerce-pagination ul.page-numbers::before,
.lr-shop-wrap .woocommerce-pagination ul.page-numbers::after {
	content: none !important;
	display: none !important;
}
.lr-shop-wrap .woocommerce-pagination ul.page-numbers li {
	display: inline-flex;
	float: none;
	border: none;
	overflow: visible;
	margin: 0;
	padding: 0;
}
.lr-shop-wrap .woocommerce-pagination li .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 34px;
	height: 34px;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 12px;
	color: var(--wp--preset--color--charcoal);
	border: 1px solid var(--wp--preset--color--border-subtle);
	text-decoration: none;
}
.lr-shop-wrap .woocommerce-pagination li .page-numbers.current {
	background: var(--wp--preset--color--obsidian);
	color: var(--wp--preset--color--ivory);
	border-color: var(--wp--preset--color--obsidian);
}

/* ==== Single product page restyle ==== */

.single-product .wp-block-group.alignwide,
.single-product main.wp-block-group {
	max-width: 1280px;
	margin: 0 auto;
	padding: 48px 24px 96px;
}

.single-product .woocommerce-breadcrumb {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 12px;
	color: var(--wp--preset--color--muted-text);
	margin: 0 0 24px;
}
.single-product .woocommerce-breadcrumb a { color: var(--wp--preset--color--muted-text); text-decoration: none; }
.single-product .woocommerce-breadcrumb a:hover { color: var(--wp--preset--color--gold); }

.single-product .wp-block-post-title {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-weight: 500;
	font-size: clamp(1.75rem, 2.6vw, 2.25rem);
	color: var(--wp--preset--color--charcoal);
	margin: 16px 0 8px;
}

.single-product .price,
.single-product .wc-block-components-product-price {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 18px;
	margin-bottom: 16px;
	display: block;
}
.single-product .price .woocommerce-Price-amount,
.single-product .wc-block-components-product-price .woocommerce-Price-amount {
	color: var(--wp--preset--color--gold);
}
.single-product .price del,
.single-product .wc-block-components-product-price del { color: var(--wp--preset--color--muted-text); opacity: .6; margin-right: 8px; }
.single-product .price ins,
.single-product .wc-block-components-product-price ins { text-decoration: none; }

.single-product .woocommerce-product-details__short-description,
.single-product .wp-block-post-excerpt {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 14px;
	line-height: 1.7;
	color: var(--wp--preset--color--muted-text);
	margin-bottom: 24px;
}

.single-product .wc-block-add-to-cart-form,
.single-product form.cart {
	margin-bottom: 32px;
}
.single-product .wc-block-components-quantity-selector,
.single-product .quantity input.qty {
	font-family: var(--wp--preset--font-family--montserrat);
	border: 1px solid var(--wp--preset--color--border-subtle);
	border-radius: 0;
}
.single-product .single_add_to_cart_button,
.single-product .wc-block-components-product-button__button {
	background: var(--wp--preset--color--obsidian) !important;
	color: var(--wp--preset--color--ivory) !important;
	border-radius: 0 !important;
	font-family: var(--wp--preset--font-family--montserrat) !important;
	font-size: 11px !important;
	font-weight: 500 !important;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	padding: 15px 32px !important;
	border: none !important;
	transition: background var(--wp--custom--duration--fast) var(--wp--custom--ease--standard);
}
.single-product .single_add_to_cart_button:hover,
.single-product .wc-block-components-product-button__button:hover {
	background: var(--wp--preset--color--gold) !important;
}

.single-product .wp-block-woocommerce-product-meta,
.single-product .product_meta {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 12px;
	color: var(--wp--preset--color--muted-text);
	padding-top: 20px;
	border-top: 1px solid var(--wp--preset--color--border-subtle);
}
.single-product .wp-block-woocommerce-product-meta a,
.single-product .product_meta a {
	color: var(--wp--preset--color--muted-text);
	text-decoration: none;
}
.single-product .wp-block-woocommerce-product-meta a:hover,
.single-product .product_meta a:hover { color: var(--wp--preset--color--gold); }

.single-product .woocommerce-product-gallery__image,
.single-product .wc-block-components-product-image {
	background: var(--wp--preset--color--white);
}
.single-product .flex-control-thumbs img {
	opacity: .55;
	border: 1px solid transparent;
}
.single-product .flex-control-thumbs img.flex-active,
.single-product .flex-control-thumbs img:hover {
	opacity: 1;
	border-color: var(--wp--preset--color--gold);
}

.single-product .wp-block-woocommerce-product-details,
.single-product .woocommerce-tabs {
	margin-top: 64px;
	padding-top: 48px;
	border-top: 1px solid var(--wp--preset--color--border-subtle);
}
.single-product .wp-block-woocommerce-product-details h2,
.single-product .wp-block-woocommerce-product-details .wc-tabs li a,
.single-product .woocommerce-tabs ul.tabs li a {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-weight: 500;
	font-size: 20px;
	color: var(--wp--preset--color--charcoal);
	text-transform: none;
	letter-spacing: normal;
}
.single-product .wp-block-woocommerce-product-details p,
.single-product .woocommerce-Tabs-panel p {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 14px;
	line-height: 1.7;
	color: var(--wp--preset--color--muted-text);
}

.single-product .wp-block-woocommerce-product-collection {
	margin-top: 80px;
	padding-top: 56px;
	border-top: 1px solid var(--wp--preset--color--border-subtle);
}
.single-product .wp-block-woocommerce-product-collection h2 {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-weight: 500;
	font-size: 26px;
	color: var(--wp--preset--color--charcoal);
	text-align: left !important;
}
.single-product .wp-block-woocommerce-product-collection .wp-block-post-title {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-weight: 500;
	font-size: 15px !important;
	color: var(--wp--preset--color--charcoal);
}
.single-product .wp-block-woocommerce-product-collection .wc-block-components-product-price {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 13px;
}
.single-product .wp-block-woocommerce-product-collection .wc-block-components-product-price .woocommerce-Price-amount {
	color: var(--wp--preset--color--muted-text);
}
.single-product .wp-block-woocommerce-product-collection .wp-block-woocommerce-product-button a {
	border-radius: 0 !important;
	font-family: var(--wp--preset--font-family--montserrat) !important;
	font-size: 10px !important;
	letter-spacing: 1px;
}

/* ==== Cart & Checkout restyle ==== */

.woocommerce-cart main.wp-block-group,
.woocommerce-checkout main.wp-block-group {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 48px 24px 96px;
	box-sizing: border-box;
}

.woocommerce-cart .wp-block-post-title,
.woocommerce-checkout .wp-block-post-title,
.woocommerce-cart h1,
.woocommerce-checkout h1 {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-weight: 500;
	font-size: clamp(1.75rem, 2.6vw, 2.25rem);
	color: var(--wp--preset--color--charcoal);
	margin-bottom: 32px;
}

.wc-block-cart, .wc-block-checkout, .wp-block-woocommerce-checkout {
	font-family: var(--wp--preset--font-family--montserrat);
}

.wc-block-components-product-name {
	font-family: var(--wp--preset--font-family--cormorant-garamond) !important;
	font-weight: 500 !important;
	font-size: 17px !important;
	color: var(--wp--preset--color--charcoal) !important;
}

.wc-block-cart-item__prices .woocommerce-Price-amount,
.wc-block-components-totals-item__value,
.wc-block-components-formatted-money-amount {
	font-family: var(--wp--preset--font-family--montserrat);
	color: var(--wp--preset--color--charcoal);
}

.wc-block-components-panel__button,
.wc-block-components-totals-item__label,
.wc-block-components-product-metadata {
	font-family: var(--wp--preset--font-family--montserrat);
	color: var(--wp--preset--color--muted-text);
}

.wc-block-cart__submit-container .wp-element-button,
.wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-proceed-to-checkout-block a,
.wc-block-cart__submit-button {
	background: var(--wp--preset--color--obsidian) !important;
	color: var(--wp--preset--color--ivory) !important;
	border-radius: 0 !important;
	font-family: var(--wp--preset--font-family--montserrat) !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	padding: 16px 30px !important;
	border: none !important;
}
.wc-block-cart__submit-container .wp-element-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.wp-block-woocommerce-proceed-to-checkout-block a:hover,
.wc-block-cart__submit-button:hover {
	background: var(--wp--preset--color--gold) !important;
}

.wc-block-components-order-summary,
.wc-block-components-totals-wrapper {
	background: var(--wp--preset--color--muted-surface);
	border: 1px solid var(--wp--preset--color--border-subtle);
	padding-left: 20px !important;
	padding-right: 20px !important;
	box-sizing: border-box;
}

/* Quantity stepper was hard-coded narrower than its own +/- /input content,
   so the plus button overflowed its box and collided with the remove icon. */
.wc-block-components-quantity-selector {
	width: auto !important;
}
.wc-block-cart-item__quantity {
	gap: 16px !important;
}

.wc-block-components-panel,
.wc-block-checkout__form,
.wc-block-components-address-form {
	font-family: var(--wp--preset--font-family--montserrat);
}
.wc-block-components-text-input input,
.wc-block-components-select-input select,
.wc-block-components-radio-control__input {
	border-radius: 0 !important;
	border-color: var(--wp--preset--color--border-subtle) !important;
	font-family: var(--wp--preset--font-family--montserrat) !important;
}

/* ==== Reserve This Piece (single product) ==== */

.lr-reserve-panel {
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid var(--wp--preset--color--border-subtle);
}

.lr-reserve-error {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 12.5px;
	color: var(--wp--preset--color--gold);
	line-height: 1.6;
	margin: 0 0 14px;
}

.lr-reserve-toggle {
	display: inline-block;
	background: transparent;
	color: var(--wp--preset--color--obsidian);
	border: 1px solid var(--wp--preset--color--gold);
	padding: 15px 28px;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	cursor: pointer;
}
/* Fill sweeps in left-to-right on hover (same as the hero .lr-outline-btn). The
   .lr-outline-btn variant (Submit An Offer) already has its own sweep. */
.lr-reserve-toggle:not(.lr-outline-btn) {
	position: relative;
	overflow: hidden;
	z-index: 0;
	transition: color .45s cubic-bezier(.65, 0, .35, 1);
}
.lr-reserve-toggle:not(.lr-outline-btn)::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--wp--preset--color--gold);
	transform: translateX(-101%);
	transition: transform .45s cubic-bezier(.65, 0, .35, 1);
	z-index: -1;
}
.lr-reserve-toggle:not(.lr-outline-btn):hover,
.lr-reserve-toggle:not(.lr-outline-btn):focus-visible { color: var(--wp--preset--color--ivory); }
.lr-reserve-toggle:not(.lr-outline-btn):hover::before,
.lr-reserve-toggle:not(.lr-outline-btn):focus-visible::before { transform: translateX(0); }
.lr-reserve-panel.is-open .lr-reserve-toggle { display: none; }

.lr-reserve-sub {
	display: block;
	margin: 8px 0 0;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 11.5px;
	color: var(--wp--preset--color--muted-text);
}
.lr-reserve-panel.is-open .lr-reserve-sub { display: none; }

.lr-reserve-form {
	display: none;
	flex-direction: column;
	gap: 12px;
	max-width: 360px;
	margin-top: 4px;
}
.lr-reserve-panel.is-open .lr-reserve-form { display: flex; }

.lr-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.lr-reserve-label {
	display: block;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 10.5px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--wp--preset--color--muted-text);
}
.lr-reserve-label input {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin-top: 6px;
	padding: 12px 14px;
	border: 1px solid var(--wp--preset--color--border-subtle);
	border-radius: 0;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 13.5px;
	color: var(--wp--preset--color--charcoal);
}

.lr-reserve-submit {
	display: block;
	width: 100%;
	background: var(--wp--preset--color--obsidian);
	color: var(--wp--preset--color--ivory);
	border: none;
	padding: 15px;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	cursor: pointer;
}
.lr-reserve-submit:hover { background: var(--wp--preset--color--gold); }

.lr-reserve-fineprint {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 11px;
	color: var(--wp--preset--color--muted-text);
	line-height: 1.6;
	margin: 0;
}
.lr-reserve-fineprint a { color: var(--wp--preset--color--gold); text-decoration: none; }

.lr-reserve-terms-link {
	display: inline-block;
	margin-top: 14px;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 11px;
	color: var(--wp--preset--color--gold);
	text-decoration: none;
}

.lr-reserve-panel--active {
	max-width: 360px;
	text-align: center;
	border: 1px solid var(--wp--preset--color--gold);
	padding: 22px;
}
.lr-reserve-panel--active .lr-reserve-eyebrow {
	display: block;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--wp--preset--color--gold);
	margin-bottom: 10px;
}
.lr-reserve-panel--active .lr-reserve-countdown {
	display: block;
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-weight: 500;
	font-size: 26px;
	letter-spacing: .05em;
	color: var(--wp--preset--color--charcoal);
	margin-bottom: 10px;
}
.lr-reserve-panel--active .lr-reserve-until-label {
	display: block;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 11.5px;
	color: var(--wp--preset--color--muted-text);
	margin-bottom: 4px;
}
.lr-reserve-panel--active .lr-reserve-until {
	display: block;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 12.5px;
	font-weight: 500;
	color: var(--wp--preset--color--charcoal);
	margin-bottom: 16px;
}
.lr-reserve-panel--active .lr-reserve-copy {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 11.5px;
	color: var(--wp--preset--color--muted-text);
	line-height: 1.6;
	margin: 0 0 14px;
}
.lr-reserve-panel--active .lr-reserve-terms-link { margin-top: 0; }

/* Minimal checkout header — brand the site title link */
.wc-block-checkout-header h1 a,
header .wp-block-site-title a {
	font-family: var(--wp--preset--font-family--montserrat);
	font-weight: 300;
	font-size: 18px;
	color: var(--wp--preset--color--obsidian);
	letter-spacing: 2px;
	text-transform: uppercase;
	text-decoration: none;
}

/* Footer link list — underline reveal, center-out */
.lr-footer-link {
	position: relative;
	display: inline-block;
	width: fit-content;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 13px;
	color: var(--wp--preset--color--champagne);
	text-decoration: none;
}
.lr-footer-link::after {
	content: "";
	position: absolute;
	left: 50%;
	right: 50%;
	bottom: -3px;
	height: 1px;
	background: var(--wp--preset--color--gold);
	transition: left .35s cubic-bezier(.65,0,.35,1), right .35s cubic-bezier(.65,0,.35,1);
}
.lr-footer-link:hover { color: var(--wp--preset--color--ivory); }
.lr-footer-link:hover::after { left: 0; right: 0; }

/* Beyond The Handbag — category tiles: zoom + caption rise */
.lr-cat-tile { position: relative; display: block; overflow: hidden; aspect-ratio: 1/1; text-decoration: none; }
.lr-cat-tile img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s cubic-bezier(.22,1,.36,1);
}
.lr-cat-tile:hover img { transform: scale(1.1); }
.lr-cat-tile .lr-cat-tile-label {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	padding: 22px 10px 12px;
	background: linear-gradient(to top, rgba(27,24,21,.85), rgba(27,24,21,0));
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 10.5px;
	text-transform: uppercase;
	letter-spacing: .03em;
	color: var(--wp--preset--color--ivory);
	text-align: center;
}
/* Caption-rise is a hover-reveal effect — only start it hidden on devices that can actually
   hover. Without this gate, touch devices would never see the caption at all. */
@media (hover: hover) and (pointer: fine) {
	.lr-cat-tile .lr-cat-tile-label {
		color: var(--wp--preset--color--champagne);
		transform: translateY(46%);
		transition: transform .5s cubic-bezier(.22,1,.36,1), color .3s ease;
	}
	.lr-cat-tile:hover .lr-cat-tile-label { transform: translateY(0); color: var(--wp--preset--color--ivory); }
}

/* Archive Edit — duotone to colour (fits the "already archived" framing) */
.lr-archive-card { position: relative; display: block; text-decoration: none; }
.lr-archive-card figure { position: relative; margin: 0; overflow: hidden; }
.lr-archive-card img {
	width: 100%;
	aspect-ratio: 4/5;
	object-fit: cover;
	transition: transform .6s ease;
}
.lr-archive-card:hover img { transform: scale(1.04); }
/* Hover-reveal effect — gated the same way as .lr-product-card, see note above it. */
@media (hover: hover) and (pointer: fine) {
	.lr-archive-card img {
		filter: grayscale(70%) brightness(.94);
		transition: filter .6s ease, transform .6s ease;
	}
	.lr-archive-card:hover img { filter: grayscale(0%) brightness(1); }
}
.lr-archive-card figcaption {
	display: block;
	margin-top: 10px;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted-text);
	text-align: center;
}

/* Journal cards — duotone to colour, matching product-card language */
/* Journal cards — zoom + caption rise, matching the Beyond The Handbag tiles */
.lr-journal-card { display: block; text-decoration: none; }
.lr-journal-card figure { position: relative; margin: 0; overflow: hidden; }
.lr-journal-card img {
	width: 100%;
	aspect-ratio: 4/5;
	object-fit: cover;
	transition: transform .7s cubic-bezier(.22,1,.36,1);
}
.lr-journal-card:hover img { transform: scale(1.1); }
.lr-journal-card-caption {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	padding: 28px 16px 14px;
	background: linear-gradient(to top, rgba(27,24,21,.9), rgba(27,24,21,0));
}
.lr-journal-card-caption .lr-journal-tag {
	display: block;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--wp--preset--color--gold);
}
.lr-journal-card-caption .lr-journal-title {
	display: block;
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-weight: 500;
	font-size: 15px;
	margin: 6px 0 0;
	color: var(--wp--preset--color--ivory);
}
/* Caption-rise is a hover-reveal effect — only start it partway hidden on devices that can
   actually hover. Without this gate, touch devices would never see the full caption. */
@media (hover: hover) and (pointer: fine) {
	.lr-journal-card-caption {
		transform: translateY(40%);
		transition: transform .5s cubic-bezier(.22,1,.36,1);
	}
	.lr-journal-card:hover .lr-journal-card-caption { transform: translateY(0); }
}

/* Mega-menu links — underline reveal, center-out */
.lr-menu-underline {
	position: relative;
	display: inline-block;
}
.lr-menu-underline::after {
	content: "";
	position: absolute;
	left: 50%;
	right: 50%;
	bottom: -3px;
	height: 1px;
	background: var(--wp--preset--color--gold);
	transition: left .35s cubic-bezier(.65,0,.35,1), right .35s cubic-bezier(.65,0,.35,1);
}
.lr-menu-underline:hover::after,
.lr-menu-card:hover .lr-menu-underline::after { left: 0; right: 0; }
.lr-menu-card:hover .lr-menu-underline { color: var(--wp--preset--color--gold); }

/* Mega-menu links — letter-spacing drift */
.lr-menu-drift {
	display: inline-block;
	letter-spacing: normal;
	transition: letter-spacing .4s ease, color .4s ease;
}
.lr-menu-drift:hover {
	letter-spacing: .05em;
	color: var(--wp--preset--color--gold);
}

/* Inline body-copy links (e.g. hero's "privately reserved" phrase) — quiet color shift */
.lr-inline-link { transition: color .3s ease; }
.lr-inline-link:hover { color: var(--wp--preset--color--champagne); }

/* Brands page — plain text tiles (no image), lift + tint + arrow-nudge on hover */
.lr-brand-tile {
	background: var(--wp--preset--color--white);
	transition: background-color .35s ease, transform .35s ease, box-shadow .35s ease;
	position: relative;
}
.lr-brand-tile h3 { transition: color .3s ease; }
.lr-brand-tile span { display: inline-block; transition: transform .3s ease, opacity .3s ease; }
@media (hover: hover) and (pointer: fine) {
	.lr-brand-tile:hover {
		background: var(--wp--preset--color--ivory);
		transform: translateY(-4px);
		box-shadow: 0 14px 28px rgba(27,24,21,.08);
		z-index: 1;
	}
	.lr-brand-tile:hover h3 { color: var(--wp--preset--color--gold); }
	.lr-brand-tile:hover span { transform: translateX(5px); opacity: .85; }
}

/* Filter/category pills — Curator's Picks, Archive Edit, Gift Edit, Collector's Voice.
   Each pill's active-vs-inactive color/border/background is computed server-side straight into
   an inline style attribute per request, and an inline declaration always beats a stylesheet
   :hover rule for that same property (see build gotchas) — so hover here only touches
   opacity/transform/box-shadow, properties none of these pills set inline. */
.lr-filter-pill { display: inline-block; transition: opacity .25s ease, transform .2s ease; }
.lr-pill-solid { display: inline-block; transition: transform .25s ease, box-shadow .3s ease; }
@media (hover: hover) and (pointer: fine) {
	.lr-filter-pill:hover { opacity: .6; transform: translateY(-1px); }
	.lr-pill-solid:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(27,24,21,.1); }
}

/* ==== Single Product Page rebuild ==== */

.lr-eyebrow-gold {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--wp--preset--color--gold);
}

.lr-body-copy {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 13px;
	color: var(--wp--preset--color--muted-text);
	line-height: 1.75;
	margin: 10px 0 12px;
}

.lr-italic-line {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-style: italic;
	font-size: 15px;
	color: var(--wp--preset--color--charcoal);
	margin: 12px 0 10px;
}

.lr-subsection-heading {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-weight: 500;
	font-size: 19px;
	margin: 0 0 10px;
	color: var(--wp--preset--color--charcoal);
}

.lr-section-heading {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-style: italic;
	font-weight: 500;
	font-size: 24px;
	margin: 14px 0 18px;
	color: var(--wp--preset--color--charcoal);
}

.lr-section-narrow { max-width: 960px; margin: 64px auto 0; padding: 0 32px; }
.lr-section-wide { max-width: 960px; margin: 48px auto 0; padding: 0 32px 48px; }
.lr-section-bordered { padding-top: 32px; border-top: 1px solid var(--wp--preset--color--border-subtle); }

/* -- Gallery -- */
.lr-product-gallery { display: grid; grid-template-columns: 90px 1fr; gap: 12px; }
.lr-gallery-thumbs { display: flex; flex-direction: column; gap: 10px; }
.lr-gallery-thumb, .lr-gallery-thumb img { width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block; }
.lr-gallery-main, .lr-gallery-main img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; }
@media (max-width: 680px) {
	.lr-product-gallery { grid-template-columns: 1fr; }
	.lr-gallery-thumbs { flex-direction: row; overflow-x: auto; }
	.lr-gallery-thumb { flex: 0 0 72px; }
}

/* -- Info column -- */
.lr-product-brand {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--wp--preset--color--gold);
}
.lr-product-title {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-weight: 500;
	font-size: 30px;
	margin: 10px 0 10px;
	color: var(--wp--preset--color--charcoal);
}
.lr-product-badge {
	display: inline-block;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 10px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold);
	border: 1px solid var(--wp--preset--color--gold);
	padding: 3px 8px;
	margin: 0 8px 10px 0;
}
.lr-product-badge--muted { color: var(--wp--preset--color--muted-text); border-color: var(--wp--preset--color--border-subtle); }
.lr-product-availability {
	display: block;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--charcoal);
	margin-bottom: 10px;
}
.lr-product-availability.is-reserved { color: var(--wp--preset--color--gold); }
.lr-product-trust-line {
	display: block;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 11px;
	letter-spacing: .04em;
	color: var(--wp--preset--color--muted-text);
	margin-bottom: 12px;
}
.lr-stars { display: block; color: var(--wp--preset--color--gold); font-size: 13px; letter-spacing: 2px; }
.lr-stars-count { display: inline-block; margin-left: 8px; font-family: var(--wp--preset--font-family--montserrat); font-size: 11.5px; letter-spacing: 0; color: var(--wp--preset--color--muted-text); }
.lr-product-price {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 24px;
	font-weight: 600;
	color: var(--wp--preset--color--charcoal);
	margin-top: 10px;
}

.lr-info-rows { display: flex; flex-direction: column; gap: 8px; margin: 20px 0 12px; padding-top: 20px; border-top: 1px solid var(--wp--preset--color--border-subtle); }
.lr-info-row { display: flex; gap: 10px; font-family: var(--wp--preset--font-family--montserrat); font-size: 13px; }
.lr-info-key { color: var(--wp--preset--color--muted-text); min-width: 78px; }
.lr-info-value { color: var(--wp--preset--color--charcoal); }

.lr-condition-note { font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; color: var(--wp--preset--color--muted-text); line-height: 1.6; margin: 0 0 6px; }
.lr-condition-heading { font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; color: var(--wp--preset--color--charcoal); }
.lr-condition-summary { font-family: var(--wp--preset--font-family--montserrat); font-size: 13.5px; color: var(--wp--preset--color--muted-text); line-height: 1.7; margin: 10px 0; }

.lr-modal-trigger {
	display: block;
	background: none;
	border: none;
	padding: 0;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 11.5px;
	color: var(--wp--preset--color--gold);
	cursor: pointer;
	margin-bottom: 24px;
}

/* -- Archived state -- */
.lr-archived-panel { border: 1px solid var(--wp--preset--color--border-subtle); padding: 24px; text-align: center; }
.lr-archived-heading { display: block; font-family: var(--wp--preset--font-family--cormorant-garamond); font-style: italic; font-weight: 500; font-size: 16px; color: var(--wp--preset--color--gold); margin-bottom: 12px; }
.lr-archived-copy { font-family: var(--wp--preset--font-family--montserrat); font-size: 12.5px; color: var(--wp--preset--color--muted-text); line-height: 1.7; margin: 0 0 20px; }
.lr-archived-back { display: block; margin-top: 10px; font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; color: var(--wp--preset--color--muted-text); text-decoration: underline; }

/* -- Purchase panel -- */
.lr-purchase-eyebrow { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; text-transform: uppercase; letter-spacing: .1em; color: var(--wp--preset--color--gold); margin-bottom: 16px; }
.lr-purchase-sub { display: block; text-align: center; font-family: var(--wp--preset--font-family--montserrat); font-size: 11.5px; color: var(--wp--preset--color--muted-text); margin: 8px 0 4px; }

.wp-block-add-to-cart-form .button,
.woocommerce div.product form.cart .button {
	width: 100%;
	background: var(--wp--preset--color--obsidian);
	color: var(--wp--preset--color--ivory);
	border: none;
	padding: 19px;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 13px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1.5px;
}
.woocommerce div.product form.cart .button:hover { background: var(--wp--preset--color--gold); }

.lr-wishlist-row { display: flex; justify-content: center; gap: 8px; margin: 12px 0 4px; }
.lr-wishlist-heart {
	background: none;
	border: none;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 12px;
	color: var(--wp--preset--color--muted-text);
	letter-spacing: .06em;
	text-transform: uppercase;
}
.lr-wishlist-heart .lr-wishlist-icon { font-size: 14px; }
.lr-wishlist-heart.is-active { color: var(--wp--preset--color--gold); }

/* Corner-icon variant -- the heart badge on a product card's image (Curator's
   Picks "Current Edit" grid), replacing what used to be a decorative,
   non-interactive glyph in the same spot. */
.lr-wishlist-heart.lr-card-heart {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 1;
	padding: 2px;
	line-height: 1;
	color: var(--wp--preset--color--ivory);
}
.lr-wishlist-heart.lr-card-heart .lr-wishlist-icon { font-size: 15px; }
.lr-wishlist-heart.lr-card-heart.is-active { color: var(--wp--preset--color--gold); }

.lr-afterpay-note { font-family: var(--wp--preset--font-family--montserrat); font-size: 11.5px; font-weight: 500; color: var(--wp--preset--color--charcoal); text-align: center; margin: 4px 0 24px; }

.lr-trust-badges { display: flex; flex-wrap: wrap; gap: 6px 16px; justify-content: center; padding: 16px 0; border-top: 1px solid var(--wp--preset--color--border-subtle); margin-bottom: 16px; }
.lr-trust-badges span { font-family: var(--wp--preset--font-family--montserrat); font-size: 10.5px; color: var(--wp--preset--color--muted-text); }

.lr-delivery-block { border-top: 1px solid var(--wp--preset--color--border-subtle); padding-top: 20px; }
.lr-delivery-block p { font-family: var(--wp--preset--font-family--montserrat); font-size: 12.5px; color: var(--wp--preset--color--muted-text); line-height: 1.7; margin: 0 0 6px; }
.lr-delivery-block strong { color: var(--wp--preset--color--charcoal); }

/* -- Gift Presentation (add-to-cart form) -- */
.lr-gift-block { border: 1px solid var(--wp--preset--color--border-subtle); padding: 20px; margin-bottom: 24px; }
.lr-gift-eyebrow { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; text-transform: uppercase; letter-spacing: .1em; color: var(--wp--preset--color--gold); margin-bottom: 10px; }
.lr-gift-checkbox { display: flex; align-items: flex-start; gap: 8px; font-family: var(--wp--preset--font-family--montserrat); font-size: 13px; color: var(--wp--preset--color--charcoal); cursor: pointer; margin-bottom: 8px; }
.lr-gift-copy { font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; color: var(--wp--preset--color--muted-text); line-height: 1.6; margin: 0 0 12px; }
.lr-gift-message { width: 100%; box-sizing: border-box; min-height: 56px; padding: 10px; border: 1px solid var(--wp--preset--color--border-subtle); font-family: var(--wp--preset--font-family--montserrat); font-size: 12.5px; resize: vertical; }

/* -- Modals (Condition Guide / In Our Care) -- */
.lr-modal-heading { font-family: var(--wp--preset--font-family--cormorant-garamond); font-style: italic; font-weight: 500; font-size: 22px; margin: 14px 0 20px; color: var(--wp--preset--color--charcoal); text-align: center; }
.lr-condition-grade-row { padding: 16px 0; border-top: 1px solid var(--wp--preset--color--border-subtle); }
.lr-condition-grade-row.is-current { background: var(--wp--preset--color--muted-surface); }
.lr-condition-grade-row h4 { font-family: var(--wp--preset--font-family--cormorant-garamond); font-weight: 500; font-size: 16px; margin: 0 0 4px; color: var(--wp--preset--color--charcoal); }
.lr-condition-grade-row p { font-family: var(--wp--preset--font-family--montserrat); font-size: 12.5px; color: var(--wp--preset--color--muted-text); line-height: 1.6; margin: 0; }
.lr-condition-footnote { font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; line-height: 1.7; color: var(--wp--preset--color--muted-text); margin: 28px 0 0; padding-top: 20px; border-top: 1px solid var(--wp--preset--color--border-subtle); }
.lr-care-step { padding: 22px 0; border-top: 1px solid var(--wp--preset--color--border-subtle); }
.lr-care-step:first-of-type { border-top: none; }
.lr-care-step-label { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; font-weight: 500; color: var(--wp--preset--color--gold); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px; }
.lr-care-step p { font-family: var(--wp--preset--font-family--montserrat); font-size: 13px; color: var(--wp--preset--color--muted-text); line-height: 1.7; margin: 0; }

/* -- Offer panel: reuses .lr-reserve-panel/.lr-reserve-toggle/.lr-reserve-form family verbatim -- */
.lr-offer-sent { font-family: var(--wp--preset--font-family--montserrat); font-size: 12.5px; color: var(--wp--preset--color--charcoal); line-height: 1.6; text-align: center; margin: 0; }

/* -- My Bag / Cart page -- */
.lr-bag-intro { max-width: 560px; margin: 0 auto; padding: 56px 32px 0; text-align: center; }
.lr-bag-intro .lr-eyebrow-gold { display: block; margin-bottom: 14px; }
.lr-bag-title { font-family: var(--wp--preset--font-family--cormorant-garamond); font-weight: 500; font-style: italic; font-size: 30px; margin: 0 0 14px; color: var(--wp--preset--color--charcoal); }
.lr-bag-intro .lr-body-copy { margin: 0 0 20px; }
.lr-bag-count { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; color: var(--wp--preset--color--muted-text); }

.lr-bag-layout { max-width: var(--wp--style--global--content-size); margin: 0 auto; padding: 56px 32px 0; display: flex; gap: 64px; flex-wrap: wrap; }
.lr-bag-items { flex: 2 1 400px; }
.lr-bag-note { font-family: var(--wp--preset--font-family--montserrat); font-size: 11.5px; font-style: italic; color: var(--wp--preset--color--muted-text); line-height: 1.6; margin: 0 0 8px; }
.lr-bag-list { border-top: 1px solid var(--wp--preset--color--border-subtle); }
.lr-bag-row { display: flex; gap: 24px; padding: 28px 0; border-bottom: 1px solid var(--wp--preset--color--border-subtle); }
.lr-bag-row-image { width: 110px; height: 132px; flex-shrink: 0; overflow: hidden; background: var(--wp--preset--color--muted-surface); }
.lr-bag-row-image img { width: 100%; height: 100%; object-fit: cover; }
.lr-bag-row-body { flex: 1; display: flex; flex-direction: column; }
.lr-bag-row-body .lr-product-brand { margin-top: 0; }
.lr-bag-row-title { display: block; font-family: var(--wp--preset--font-family--cormorant-garamond); font-size: 17px; color: var(--wp--preset--color--charcoal); margin: 4px 0 6px; }
.lr-bag-row-price { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 14px; color: var(--wp--preset--color--charcoal); margin-bottom: 8px; }
.lr-bag-row-meta { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; color: var(--wp--preset--color--muted-text); }
.lr-bag-row-line { display: block; font-size: 11.5px; margin: 8px 0 12px; }
.lr-bag-row-actions { display: flex; gap: 18px; }
.lr-bag-remove { font-family: var(--wp--preset--font-family--montserrat); font-size: 11.5px; color: var(--wp--preset--color--muted-text); text-decoration: underline; }
.lr-bag-view { font-family: var(--wp--preset--font-family--montserrat); font-size: 11.5px; font-weight: 500; color: var(--wp--preset--color--gold); }

.lr-bag-side { flex: 1 1 280px; min-width: 280px; }
.lr-bag-summary { border: 1px solid var(--wp--preset--color--border-subtle); padding: 28px; }
.lr-bag-summary .lr-eyebrow-gold { display: block; margin-bottom: 18px; }
.lr-bag-summary-row { display: flex; justify-content: space-between; font-family: var(--wp--preset--font-family--montserrat); font-size: 13px; color: var(--wp--preset--color--charcoal); margin-bottom: 12px; }
.lr-bag-summary-row--muted { color: var(--wp--preset--color--muted-text); }
.lr-bag-summary-block { margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--wp--preset--color--border-subtle); }
.lr-bag-summary-fine { font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; color: var(--wp--preset--color--muted-text); line-height: 1.6; margin: 0; }
.lr-bag-summary-row--total { font-size: 15px; font-weight: 500; margin-bottom: 22px; }
.lr-bag-summary .lr-btn-solid { padding: 16px; font-size: 11.5px; }

.lr-bag-considered { margin-top: 32px; }
.lr-bag-considered .lr-eyebrow-gold { display: block; margin-bottom: 18px; }
.lr-bag-considered-row { margin-bottom: 16px; }
.lr-bag-considered-row:last-child { margin-bottom: 0; }
.lr-bag-considered-title { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 12.5px; font-weight: 500; color: var(--wp--preset--color--charcoal); }
.lr-bag-considered-copy { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 11.5px; color: var(--wp--preset--color--muted-text); line-height: 1.5; margin-top: 4px; }

.lr-bag-empty { max-width: 480px; margin: 0 auto; padding: 48px 32px 72px; text-align: center; }
.lr-bag-empty .lr-italic-line { margin: 0 0 18px; }
.lr-bag-empty .lr-body-copy { margin: 0 0 22px; max-width: 380px; margin-left: auto; margin-right: auto; }

.lr-bag-trust-row { display: flex; justify-content: center; gap: 48px; flex-wrap: wrap; max-width: 760px; margin: 0 auto; }
.lr-bag-trust-item { max-width: 160px; }

@media (max-width: 1024px) {
	.lr-bag-layout { gap: 40px; }
}
@media (max-width: 680px) {
	.lr-bag-layout { padding-top: 40px; }
	.lr-bag-row { gap: 16px; }
	.lr-bag-row-image { width: 84px; height: 100px; }
}

/* Product gallery: clickable thumbnails (swap main image) + click-to-zoom lightbox. */
.lr-gallery-thumb { cursor: pointer; transition: opacity .2s ease; }
.lr-gallery-thumb:hover, .lr-gallery-thumb:focus-visible { opacity: .7; }
.lr-gallery-thumb.is-active { outline: 2px solid var(--wp--preset--color--gold); outline-offset: -2px; }
.lr-gallery-main { cursor: zoom-in; }
.lr-modal-box--lightbox { background: transparent; box-shadow: none; box-sizing: border-box; padding: 56px 76px; width: auto; max-width: 90vw; height: auto; max-height: 90vh; overflow: visible; display: flex; align-items: center; justify-content: center; }
.lr-modal-box--lightbox img { max-width: calc(90vw - 152px); max-height: calc(90vh - 112px); width: auto; height: auto; object-fit: contain; display: block; }
.lr-modal-box--lightbox .lr-modal-close { top: -36px; right: -8px; color: var(--wp--preset--color--ivory); font-size: 28px; }

/* Lightbox close button: moved inside the image (was positioned above the
   modal box via a negative top offset, which pushed it off-screen/invisible
   on most viewports) — a visible dark circle badge in the top-right corner,
   consistent regardless of the underlying photo's own colors. */
.lr-modal-box--lightbox .lr-modal-close {
	z-index: 2;
	position: absolute;
	top: 12px;
	right: 12px;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(20, 18, 14, .6);
	color: var(--wp--preset--color--ivory);
	font-size: 20px;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background var(--wp--custom--duration--fast) var(--wp--custom--ease--standard);
}
.lr-modal-box--lightbox .lr-modal-close:hover { background: rgba(20, 18, 14, .85); }

/* Lightbox open animation: a fade + gentle scale-in on the overlay/box.
   Scoped to just the gallery lightbox (id selector) rather than the shared
   .lr-modal-overlay class, so every other modal on the site (Condition
   Guide, In Our Care, Reserve terms, etc.) keeps its existing instant
   open/close behaviour untouched. */
#lr-gallery-lightbox-modal.is-open { animation: lr-lightbox-fade .25s ease; }
#lr-gallery-lightbox-modal.is-open .lr-modal-box--lightbox { animation: lr-lightbox-scale .3s cubic-bezier(.22, .8, .32, 1); }
@keyframes lr-lightbox-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}
@keyframes lr-lightbox-scale {
	from { opacity: 0; transform: scale(.94); }
	to { opacity: 1; transform: scale(1); }
}

/* Lightbox prev/next nav (only shown by JS when a product has more than
   one gallery image) — same dark-circle badge language as the close button. */
.lr-lightbox-nav {
	z-index: 2;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(20, 18, 14, .55);
	color: var(--wp--preset--color--ivory);
	font-size: 26px;
	line-height: 1;
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background var(--wp--custom--duration--fast) var(--wp--custom--ease--standard);
}
.lr-lightbox-nav:hover { background: rgba(20, 18, 14, .85); }
.lr-lightbox-prev { left: 12px; }
.lr-lightbox-next { right: 12px; }
@media (max-width: 680px) {
	.lr-lightbox-nav { width: 38px; height: 38px; font-size: 22px; }
	.lr-modal-box--lightbox { padding: 40px 52px; }
	.lr-modal-box--lightbox img { max-width: calc(90vw - 104px); max-height: calc(90vh - 80px); }
}

/* Lightbox prev/next crossfade: the JS toggles .is-fading before swapping
   src, then removes it after the new image is painted — this transition is
   what makes that swap ease rather than pop. */
.lr-modal-box--lightbox img { transition: opacity .2s ease; opacity: 1; }
.lr-modal-box--lightbox img.is-fading { opacity: 0; }

/* WooCommerce notices (cart/checkout "removed", "empty cart", errors, etc.)
   restyled from Woo's default green/blue/red to the site's own palette. */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments,
.woocommerce-notice {
	background: var(--wp--preset--color--base-midtone);
	border: 1px solid var(--wp--preset--color--border-subtle);
	color: var(--wp--preset--color--contrast);
	border-radius: 2px;
	box-shadow: none;
	padding: 16px 20px 16px 52px;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-noreviews::before,
p.no-comments::before {
	color: var(--wp--preset--color--gold);
}
.woocommerce-error::before {
	color: var(--wp--preset--color--obsidian);
}
.woocommerce-message a.button,
.woocommerce-info a.button,
.woocommerce-error a.button {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--ivory);
	border-radius: 2px;
}
.woocommerce-message a.button:hover,
.woocommerce-info a.button:hover,
.woocommerce-error a.button:hover {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--ivory);
}
.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button) {
	color: var(--wp--preset--color--gold);
}

/* WooCommerce Blocks notice banner (Cart/Checkout block builds use this
   markup instead of the classic .woocommerce-message/-info/-error above —
   both need styling since different pages/sites use one or the other). */
.wc-block-components-notice-banner,
.wc-block-components-notice-banner.is-error,
.wc-block-components-notice-banner.is-warning,
.wc-block-components-notice-banner.is-success,
.wc-block-components-notice-banner.is-info {
	background-color: var(--wp--preset--color--base-midtone);
	border-color: var(--wp--preset--color--border-subtle);
	color: var(--wp--preset--color--contrast);
	border-radius: 2px;
	box-shadow: none;
}
.wc-block-components-notice-banner.is-error > svg,
.wc-block-components-notice-banner.is-warning > svg {
	background-color: var(--wp--preset--color--obsidian);
}
.wc-block-components-notice-banner.is-success > svg,
.wc-block-components-notice-banner.is-info > svg {
	background-color: var(--wp--preset--color--gold);
}
.wc-block-components-notice-banner .wc-block-components-button {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--ivory);
	border-radius: 2px;
}
.wc-block-components-notice-banner .wc-block-components-button:hover {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--ivory);
}
.wc-block-components-notice-banner a:not(.wc-block-components-button) {
	color: var(--wp--preset--color--gold);
}

/* Journal cards showing the image at its natural proportions (no crop) — used where the
   source images are wide banners with the title baked in. Higher specificity than the
   base .lr-journal-card img rule so the fixed 4/5 crop doesn't apply. */
.lr-journal-card.lr-journal-card--natural img {
	display: block;
	height: auto;
	aspect-ratio: auto;
	object-fit: contain;
}

/* Natural-proportion journal cards: caption sits below the image instead of overlaying it,
   so it needs static positioning, no hover-rise transform, and dark text for the light page. */
.lr-journal-card.lr-journal-card--natural .lr-journal-card-caption {
	position: static;
	transform: none;
	background: none;
	padding: 14px 0 0;
}
.lr-journal-card.lr-journal-card--natural .lr-journal-card-caption .lr-journal-title {
	color: var(--wp--preset--color--charcoal);
	font-size: 17px;
}

/* Journal post body: legacy content mixes an 18px serif h4 intro with 18px sans paragraphs
   (inline font-size styles), which reads as inconsistent sizes. Unify to one body style. */
.single-post .wp-block-post-content :is(p, li, h3, h4, h5, h6),
.single-post .wp-block-post-content .wp-block-media-text__content p {
	font-family: var(--wp--preset--font-family--montserrat) !important;
	font-size: 15px !important;
	font-weight: 400;
	line-height: 1.85;
	color: var(--wp--preset--color--charcoal);
}
.single-post .wp-block-post-content .wp-block-media-text__content p strong { font-weight: 600; }

/* Journal post image/text pairs: image slides in from its side, text follows from the other.
   Starting state is only applied once the reveal script adds .lr-reveal-ready. */
.single-post .wp-block-post-content .wp-block-media-text { overflow: hidden; }
.single-post .wp-block-post-content .wp-block-media-text.lr-reveal-ready .wp-block-media-text__media,
.single-post .wp-block-post-content .wp-block-media-text.lr-reveal-ready .wp-block-media-text__content {
	opacity: 0;
	transition: opacity .9s ease, transform 1s cubic-bezier(.22,1,.36,1);
}
.single-post .wp-block-post-content .wp-block-media-text.lr-reveal-ready .wp-block-media-text__media { transform: translateX(-56px); }
.single-post .wp-block-post-content .wp-block-media-text.lr-reveal-ready .wp-block-media-text__content { transform: translateX(32px); transition-delay: .12s; }
.single-post .wp-block-post-content .wp-block-media-text.has-media-on-the-right.lr-reveal-ready .wp-block-media-text__media { transform: translateX(56px); }
.single-post .wp-block-post-content .wp-block-media-text.has-media-on-the-right.lr-reveal-ready .wp-block-media-text__content { transform: translateX(-32px); }
.single-post .wp-block-post-content .wp-block-media-text.lr-reveal-ready.lr-reveal-in.lr-reveal-in .wp-block-media-text__media,
.single-post .wp-block-post-content .wp-block-media-text.lr-reveal-ready.lr-reveal-in.lr-reveal-in .wp-block-media-text__content {
	opacity: 1;
	transform: none;
}
@media (max-width: 600px) {
	.single-post .wp-block-post-content .wp-block-media-text.lr-reveal-ready .wp-block-media-text__media,
	.single-post .wp-block-post-content .wp-block-media-text.lr-reveal-ready .wp-block-media-text__content,
	.single-post .wp-block-post-content .wp-block-media-text.has-media-on-the-right.lr-reveal-ready .wp-block-media-text__media,
	.single-post .wp-block-post-content .wp-block-media-text.has-media-on-the-right.lr-reveal-ready .wp-block-media-text__content { transform: translateY(28px); }
}

/* Space between the Related Stories block and the footer on journal posts. */
.lr-share-story { padding-top: 32px; border-top: 1px solid var(--wp--preset--color--border-subtle); margin-top: 40px; }
.lr-share-more-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; }
@media (max-width: 480px) { .lr-share-more-row { flex-direction: column; align-items: flex-start; } }

.lr-share-row { display: flex; align-items: center; gap: 16px; }
.lr-share-icon { color: var(--wp--preset--color--charcoal); cursor: pointer; display: block; background: none; border: 0; padding: 0; line-height: 0; }
.lr-share-icon:hover { color: var(--wp--preset--color--gold); }
.lr-share-link-msg { font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; color: var(--wp--preset--color--gold); }
.lr-related-stories { padding-bottom: 96px; }

.single-post .wp-block-post-content li strong { font-weight: 600; }
.single-post .wp-block-post-content :is(ul, ol) { padding-left: 1.4em; }
.single-post .wp-block-post-content li { margin-bottom: 1.1em; }

/* -- Single product: hover zoom on the main gallery image (fine pointers only;
   touch devices keep tap-to-open lightbox). Origin follows the cursor via JS. -- */
.lr-gallery-main { overflow: hidden; position: relative; }
.lr-gallery-main img { transition: transform .25s ease; }
.lr-gallery-main.is-zooming img { transform: scale(2); }
@media (prefers-reduced-motion: reduce) {
	.lr-gallery-main img { transition: none; }
}

/* -- Single product: "Make an offer" (Price Offerings plugin) styled to match
   the design's outline "Submit An Offer" button, and sat below the wishlist
   row like the design (purchase column becomes a flex column so the plugin's
   wrapper, which hooks in above the add-to-cart form, can be re-ordered). -- */
/* Purchase column: Reserve + Make an offer share one row when both exist (each with its
   caption under it), and whichever one exists alone is centred. Everything else stays
   full width. Wraps to a stack when the column is too narrow for two. */
.lr-purchase-col { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; column-gap: 16px; }
.lr-purchase-col > * { flex: 0 0 100%; box-sizing: border-box; order: 0; }
.lr-purchase-col > .lr-reserve-panel:not(.is-open):not(.lr-reserve-panel--active),
.lr-purchase-col > .alg-wc-price-offerings-button-wrapper { flex: 1 1 200px; min-width: 0; text-align: center; }
.lr-purchase-col > .lr-reserve-panel { order: 1; }
.lr-purchase-col > .alg-wc-price-offerings-button-wrapper { order: 2; }
.lr-purchase-col > .lr-wishlist-row { order: 3; }
.lr-purchase-col > :is( .lr-afterpay-note, .lr-trust-badges, .lr-delivery-block ) { order: 4; }
.lr-purchase-col > .lr-reserve-panel:not(.lr-reserve-panel--active) { margin: 20px 0 12px; padding-top: 0; border-top: 0; }
.lr-purchase-col > .lr-reserve-panel--active { margin: 20px auto 12px; }
.lr-purchase-col .lr-reserve-form { width: 100%; margin-left: auto; margin-right: auto; }
/* Two-up: matching full-width buttons. */
.lr-purchase-col:has( > .lr-reserve-panel:not(.is-open):not(.lr-reserve-panel--active) ):has( > .alg-wc-price-offerings-button-wrapper ) .lr-reserve-toggle,
.lr-purchase-col:has( > .lr-reserve-panel:not(.is-open):not(.lr-reserve-panel--active) ):has( > .alg-wc-price-offerings-button-wrapper ) .alg-wc-price-offerings-button.button { width: 100%; box-sizing: border-box; padding-left: 12px; padding-right: 12px; }

.alg-wc-price-offerings-button-wrapper { margin: 20px 0 0; text-align: center; }
.alg-wc-price-offerings-button-wrapper::after {
	content: "Have a price in mind? Every offer is reviewed individually.";
	display: block;
	margin: 8px 0 0;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 11.5px;
	color: var(--wp--preset--color--muted-text);
}
.alg-wc-price-offerings-button.button {
	display: inline-block;
	background: transparent;
	color: var(--wp--preset--color--obsidian);
	border: 1px solid var(--wp--preset--color--gold);
	border-radius: 0;
	padding: 15px 28px;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	line-height: 1.2;
	cursor: pointer;
	box-shadow: none;
}
/* Fill sweeps in left-to-right on hover, same as the hero .lr-outline-btn. */
.alg-wc-price-offerings-button.button {
	position: relative;
	overflow: hidden;
	z-index: 0;
	transition: color .45s cubic-bezier(.65, 0, .35, 1);
}
.alg-wc-price-offerings-button.button::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--wp--preset--color--gold);
	transform: translateX(-101%);
	transition: transform .45s cubic-bezier(.65, 0, .35, 1);
	z-index: -1;
}
.alg-wc-price-offerings-button.button:hover,
.alg-wc-price-offerings-button.button:focus-visible { background: transparent; color: var(--wp--preset--color--ivory); }
.alg-wc-price-offerings-button.button:hover::before,
.alg-wc-price-offerings-button.button:focus-visible::before { transform: translateX(0); }

/* Offer modal (plugin markup) in the same visual language as the Reserve form. */
.alg-wc-price-offerings-modal-content {
	background: var(--wp--preset--color--ivory);
	border: 1px solid var(--wp--preset--color--border-subtle);
	border-radius: 0;
	box-shadow: 0 12px 40px rgba(20, 18, 14, .25);
	max-width: 440px;
	width: calc(100% - 32px);
	box-sizing: border-box;
	font-family: var(--wp--preset--font-family--montserrat);
	color: var(--wp--preset--color--charcoal);
}
.alg-wc-price-offerings-modal-header { padding: 22px 28px 0; }
.alg-wc-price-offerings-modal-header h3 {
	margin: 0;
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-style: italic;
	font-weight: 500;
	font-size: 22px;
	line-height: 1.3;
	color: var(--wp--preset--color--charcoal);
}
.alg-wc-price-offerings-form-close { color: var(--wp--preset--color--muted-text); font-weight: 400; line-height: 1; cursor: pointer; }
.alg-wc-price-offerings-form-close:hover, .alg-wc-price-offerings-form-close:focus { color: var(--wp--preset--color--obsidian); }
.alg-wc-price-offerings-modal-body { padding: 0 28px 24px; }
#alg-wc-price-offerings-form p { margin: 0 0 14px; }
#alg-wc-price-offerings-form label {
	font-size: 10.5px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--wp--preset--color--muted-text);
}
#alg-wc-price-offerings-form .alg-wc-price-offerings-customer-copy-wrapper label { text-transform: none; letter-spacing: 0; font-size: 12px; }
#alg-wc-price-offerings-form input[type="number"],
#alg-wc-price-offerings-form input[type="email"],
#alg-wc-price-offerings-form input[type="text"],
#alg-wc-price-offerings-form textarea {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin-top: 6px;
	padding: 12px 14px;
	border: 1px solid var(--wp--preset--color--border-subtle);
	border-radius: 0;
	background: #fff;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 13.5px;
	color: var(--wp--preset--color--charcoal);
}
#alg-wc-price-offerings-form textarea { min-height: 90px; resize: vertical; }
#alg-wc-price-offerings-form input[type="submit"] {
	display: block;
	width: 100%;
	background: var(--wp--preset--color--obsidian);
	color: var(--wp--preset--color--ivory);
	border: none;
	border-radius: 0;
	padding: 15px;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	cursor: pointer;
}
#alg-wc-price-offerings-form input[type="submit"]:hover { background: var(--wp--preset--color--gold); }

/* The plugin prints its own <style> (blue header, white heading) after the theme
   stylesheet, so these need the extra ancestor class to win at equal specificity. */
.alg-wc-price-offerings-modal .alg-wc-price-offerings-modal-header { background: transparent; color: var(--wp--preset--color--charcoal); }
.alg-wc-price-offerings-modal .alg-wc-price-offerings-modal-header h3 { color: var(--wp--preset--color--charcoal); }
.alg-wc-price-offerings-button-wrapper { margin-bottom: 12px; }

/* Lightbox: a fixed display height (desktop) so every slide fills the same space
   whatever its file's natural pixel size — width:auto/height:auto used to make
   the image render at its natural size, so differently-sized files looked
   smaller than the first slide. */
@media (min-width: 681px) {
	.lr-modal-box--lightbox img { height: calc(90vh - 112px); width: auto; max-width: calc(90vw - 152px); object-fit: contain; }
}
.lr-purchase-col:has( > .lr-reserve-panel:not(.is-open):not(.lr-reserve-panel--active) ):has( > .alg-wc-price-offerings-button-wrapper ) .lr-reserve-toggle,
.lr-purchase-col:has( > .lr-reserve-panel:not(.is-open):not(.lr-reserve-panel--active) ):has( > .alg-wc-price-offerings-button-wrapper ) .alg-wc-price-offerings-button.button { height: 48px; padding-top: 0; padding-bottom: 0; line-height: 46px; }

.lr-gallery-main.is-placeholder { cursor: default; }

/* Side-by-side layout: the thumbnail strip never makes the gallery taller than the main
   image. height:0 + min-height:100% takes it out of row sizing (the main image alone sets
   the row height) and then stretches it to that height; extra thumbnails scroll. */
@media (min-width: 681px) {
	.lr-gallery-thumbs { height: 0; min-height: 100%; overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; }
	.lr-gallery-thumb { flex: 0 0 auto; }
}

/* ==== Brands category archive: A-Z shop-by-brand directory ==== */
.lr-brand-directory { margin: 40px 0 56px; padding: 32px 0; border-top: 1px solid var(--wp--preset--color--border-subtle); border-bottom: 1px solid var(--wp--preset--color--border-subtle); }
.lr-brand-directory__eyebrow { display: block; margin-bottom: 24px; }
.lr-brand-directory__grid { column-count: 5; column-gap: 32px; }
.lr-brand-directory__group { break-inside: avoid; margin-bottom: 18px; }
@media (max-width: 1024px) { .lr-brand-directory__grid { column-count: 3; } }
@media (max-width: 680px) { .lr-brand-directory__grid { column-count: 2; column-gap: 20px; } }
.lr-brand-directory__letter { display: block; margin-bottom: 4px; font-family: var(--wp--preset--font-family--cormorant-garamond); font-size: 22px; font-weight: 500; line-height: 1; color: var(--wp--preset--color--gold); }
.lr-brand-directory ul { list-style: none; margin: 0; padding: 0; }
.lr-brand-directory li { margin: 0; padding: 0; }
.lr-brand-directory a { display: block; padding: 3px 0; font-family: var(--wp--preset--font-family--montserrat); font-size: 12.5px; letter-spacing: .03em; text-transform: uppercase; color: var(--wp--preset--color--charcoal); text-decoration: none; transition: color .25s ease; }
.lr-brand-directory a:hover { color: var(--wp--preset--color--gold); }

/* ==== Product loop cards: aligned Add to Cart + left-to-right fill ==== */
/* Every card in a row stretches to the row height; the image/title/price stack
   stays at the top and the payment blurb + button sit at the bottom, so the
   buttons line up however many lines the product title wraps to. */
.lr-shop-wrap ul.products li.product { display: flex !important; flex-direction: column; }
.lr-shop-wrap ul.products li.product > a.woocommerce-loop-product__link { display: flex; flex-direction: column; flex: 1 1 auto; }
.lr-shop-wrap ul.products li.product .price { margin-bottom: auto; }
.lr-shop-wrap ul.products li.product a.add_to_cart_button,
.lr-shop-wrap ul.products li.product a.button { align-self: flex-start; }

/* Fill sweeps in from the left on hover (same recipe as .lr-outline-btn). */
.lr-shop-wrap ul.products li.product a.add_to_cart_button,
.lr-shop-wrap ul.products li.product a.button,
.lr-wc-card a.add_to_cart_button,
.lr-wc-card a.button {
	position: relative;
	overflow: hidden;
	z-index: 0;
	transition: color .45s cubic-bezier(.65, 0, .35, 1);
}
.lr-shop-wrap ul.products li.product a.add_to_cart_button::before,
.lr-shop-wrap ul.products li.product a.button::before,
.lr-wc-card a.add_to_cart_button::before,
.lr-wc-card a.button::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--wp--preset--color--obsidian);
	transform: translateX(-101%);
	transition: transform .45s cubic-bezier(.65, 0, .35, 1);
	z-index: -1;
}
.lr-shop-wrap ul.products li.product a.add_to_cart_button:hover,
.lr-shop-wrap ul.products li.product a.button:hover,
.lr-shop-wrap ul.products li.product a.add_to_cart_button:focus-visible,
.lr-shop-wrap ul.products li.product a.button:focus-visible,
.lr-wc-card a.add_to_cart_button:hover,
.lr-wc-card a.button:hover {
	background: transparent;
	color: var(--wp--preset--color--ivory);
}
.lr-shop-wrap ul.products li.product a.add_to_cart_button:hover::before,
.lr-shop-wrap ul.products li.product a.button:hover::before,
.lr-shop-wrap ul.products li.product a.add_to_cart_button:focus-visible::before,
.lr-shop-wrap ul.products li.product a.button:focus-visible::before,
.lr-wc-card a.add_to_cart_button:hover::before,
.lr-wc-card a.button:hover::before { transform: translateX(0); }

/* Classic checkout: Apply Coupon + Place Order get the same left-to-right gold
   sweep as the other site buttons (they had no hover before). */
.woocommerce-checkout .woocommerce-form-coupon button.button,
.woocommerce-checkout #place_order {
	position: relative;
	overflow: hidden;
	z-index: 0;
	cursor: pointer;
	transition: color .45s cubic-bezier(.65, 0, .35, 1);
}
.woocommerce-checkout .woocommerce-form-coupon button.button::before,
.woocommerce-checkout #place_order::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--wp--preset--color--gold);
	transform: translateX(-101%);
	transition: transform .45s cubic-bezier(.65, 0, .35, 1);
	z-index: -1;
}
.woocommerce-checkout .woocommerce-form-coupon button.button:hover,
.woocommerce-checkout .woocommerce-form-coupon button.button:focus-visible,
.woocommerce-checkout #place_order:hover,
.woocommerce-checkout #place_order:focus-visible {
	color: var(--wp--preset--color--ivory);
	opacity: 1;
}
.woocommerce-checkout .woocommerce-form-coupon button.button:hover::before,
.woocommerce-checkout .woocommerce-form-coupon button.button:focus-visible::before,
.woocommerce-checkout #place_order:hover::before,
.woocommerce-checkout #place_order:focus-visible::before { transform: translateX(0); }

/* Stripe express-checkout buttons (Apple Pay / Google Pay / Link) live inside
   Stripe-hosted iframes, so their fill can't be restyled. The wrapper around each
   one can still react to hover: a small lift + soft shadow. */
#wc-stripe-express-checkout-element > div {
	transition: transform .3s cubic-bezier(.65, 0, .35, 1), filter .3s cubic-bezier(.65, 0, .35, 1);
}
#wc-stripe-express-checkout-element > div:hover {
	transform: translateY(-2px);
	filter: drop-shadow(0 6px 10px rgba(27, 24, 21, .28));
}

/* "View cart" link that appears after AJAX Add to Cart — same center-out gold
   underline reveal as the footer / mega-menu links, text warms to charcoal. */
.lr-shop-wrap ul.products li.product a.added_to_cart,
.lr-wc-card a.added_to_cart {
	position: relative;
	align-self: flex-start;
	width: fit-content;
	text-decoration: none;
	transition: color .35s cubic-bezier(.65, 0, .35, 1);
}
.lr-shop-wrap ul.products li.product a.added_to_cart::after,
.lr-wc-card a.added_to_cart::after {
	content: "";
	position: absolute;
	left: 50%;
	right: 50%;
	bottom: -3px;
	height: 1px;
	background: var(--wp--preset--color--gold);
	transition: left .35s cubic-bezier(.65, 0, .35, 1), right .35s cubic-bezier(.65, 0, .35, 1);
}
.lr-shop-wrap ul.products li.product a.added_to_cart:hover,
.lr-shop-wrap ul.products li.product a.added_to_cart:focus-visible,
.lr-wc-card a.added_to_cart:hover,
.lr-wc-card a.added_to_cart:focus-visible { color: var(--wp--preset--color--charcoal); }
.lr-shop-wrap ul.products li.product a.added_to_cart:hover::after,
.lr-shop-wrap ul.products li.product a.added_to_cart:focus-visible::after,
.lr-wc-card a.added_to_cart:hover::after,
.lr-wc-card a.added_to_cart:focus-visible::after { left: 0; right: 0; }

/* QA pass 2026-09-20 -------------------------------------------------- */

/* Larger touch areas for the small header icons and bag Remove link, without changing layout. */
.lr-icon-link,
.lr-burger { position: relative; }
.lr-icon-link::after,
.lr-burger::after { content: ''; position: absolute; inset: -10px; }
.lr-bag-remove { display: inline-block; padding: 12px 8px; margin: -12px -8px; }

/* Checkout: replace WooCommerce's default purple payment panel with the brand palette. */
.woocommerce-checkout #payment {
	background: var(--wp--preset--color--muted-surface, #f4efe6);
	border: 1px solid var(--wp--preset--color--border-subtle, #ddd5c8);
	border-radius: 0;
}
.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--wp--preset--color--border-subtle, #ddd5c8); }
.woocommerce-checkout #payment div.payment_box {
	background: var(--wp--preset--color--white, #fff);
	color: var(--wp--preset--color--charcoal, #2b2b2b);
	border-radius: 0;
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }

/* Checkout on phones: 16px inputs stop iOS zooming on focus; comfortable field and button heights. */
@media (max-width: 782px) {
	.woocommerce-checkout form.checkout .input-text,
	.woocommerce-checkout form.checkout select,
	.woocommerce-checkout form.checkout textarea,
	.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered,
	.select2-container--open .select2-search__field { font-size: 16px !important; }
	.woocommerce-checkout form.checkout .input-text,
	.woocommerce-checkout form.checkout select { min-height: 48px; }
	.woocommerce-checkout .select2-container .select2-selection--single { min-height: 48px; padding-top: 0; padding-bottom: 0; }
	.woocommerce-checkout #place_order { min-height: 52px; }
}

/* Checkout terms & returns tick-box: larger, brand-coloured, label aligned to the box. */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	cursor: pointer;
}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper input#terms {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin: 2px 0 0;
	accent-color: var(--wp--preset--color--gold, #9a7b4f);
}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox a { text-decoration: underline; }
.woocommerce-checkout form.checkout .woocommerce-terms-and-conditions-wrapper label.woocommerce-form__label-for-checkbox { display: flex; }

/* QA round 2: the Apple / Google Pay wallets load late. Sit them below the Reserve / Offer row so their arrival cannot move the primary buttons. */
.lr-purchase-col > #wc-stripe-express-checkout-element { order: 3; flex: 0 0 100%; width: 100%; }

/* Error colour (owner choice A, 2026-09-20): one muted burgundy for every error cue, replacing the black error icon.
   #8B3A3A on the notice background (#E9E1D2) is about 5.9:1, so it passes the AA text contrast. */
:root { --lr-error: #8B3A3A; }
.woocommerce-error { border-left: 3px solid var(--lr-error); }
.woocommerce-error::before { color: var(--lr-error); }
.wc-block-components-notice-banner.is-error { border-left: 3px solid var(--lr-error); }
.wc-block-components-notice-banner.is-error > svg { background-color: var(--lr-error); }
.coupon-error-notice,
.woocommerce-checkout .checkout-inline-error-message { color: var(--lr-error); }
.woocommerce-checkout form .form-row.woocommerce-invalid .input-text,
.woocommerce-checkout form .form-row.woocommerce-invalid select { border-color: var(--lr-error); }
.woocommerce-checkout form .form-row.woocommerce-invalid label { color: var(--lr-error); }
/* WooCommerce colours its inline errors (coupon message, invalid-field outline) from --wc-red; point that at the brand error colour. */
:root, .woocommerce, .woocommerce-page { --wc-red: var(--lr-error); }
.woocommerce form .form-row .input-text.has-error,
.woocommerce form.checkout_coupon .input-text.has-error { border-color: var(--lr-error); }

/* AA contrast (2026-09-21, owner-approved tokens). theme.json: muted text #6B6458 (4.97:1 on ivory) and gold #7A5F3D
   (5.05:1 on ivory). Inside dark areas the gold token is switched back to the lighter #9F7E53 (4.7:1 on obsidian).
   Rollback: restore luxury-revamped.css.before-contrast and theme.json.before-contrast from /home2/ivinggif/qa-fixes-20260920/ */
[style*="background:var(--wp--preset--color--obsidian)"],
[style*="background-color:var(--wp--preset--color--obsidian)"],
.has-obsidian-background-color,
.has-accent-4-background-color,
footer,
.lr-modal-overlay,
.alg-wc-price-offerings-modal,
.lr-btn-solid.is-dark,
.single_add_to_cart_button { --wp--preset--color--gold: #9F7E53; }
/* Gold text on the champagne band needs a deeper tone (#6A5133 = 4.55:1 on #D9C9AE); the bag-count badge keeps the lighter gold behind its dark numeral. */
[style*="background:var(--wp--preset--color--champagne)"],
[style*="background-color:var(--wp--preset--color--champagne)"] { --wp--preset--color--gold: #6A5133; }
.lr-cart-count { --wp--preset--color--gold: #9F7E53; }

/* Small phones (2026-09-21): the header row needed ~381px, so at 320-360px the bag icon sat off-screen and the page scrolled sideways.
   Tighter side padding and gaps below 380px; icon hit areas stay 26x36px so neighbours do not overlap. */
@media (max-width: 380px) {
	div[style*="max-width:1280px"]:has(> .lr-site-logo) { padding-left: 12px !important; padding-right: 12px !important; gap: 8px !important; }
	div:has(> .lr-search-toggle) { gap: 10px !important; }
	.lr-icon-link::after { inset: -10px -5px; }
}
@media (max-width: 340px) {
	.lr-site-logo > span { letter-spacing: 0 !important; }
}

/* Long unbroken strings (a URL, serial number or date code) in condition, measurement and story text must wrap instead of stretching the page. */
.lr-condition-summary,
.lr-faq-a,
.lr-faq-a *,
.lr-info-value,
.lr-section-heading,
.lr-section-narrow p { overflow-wrap: anywhere; }
.lr-info-row,
.lr-info-value,
.lr-grid > * { min-width: 0; }

/* Homepage hero on small phones: 64px side padding plus a 38px title needed ~430px, so the title was clipped below ~365px. */
@media (max-width: 420px) {
	section[style*="height:620px"] > div[style*="padding:0 64px"] { padding-left: 24px !important; padding-right: 24px !important; }
	section[style*="height:620px"] h1 { font-size: clamp(28px, 9.2vw, 38px) !important; letter-spacing: 2px !important; }
}

/* Wide fixed-width buttons (min-width 240px + 30px padding + nowrap text) overflowed 320px screens. */
@media (max-width: 380px) {
	a.lr-btn-solid[style*="min-width"], a.lr-outline-btn[style*="min-width"] { min-width: 0 !important; max-width: 100%; box-sizing: border-box; white-space: normal !important; text-align: center; }
}

/* Bag page on small phones: 32px side padding plus a 280px minimum-width summary column exceeded a 305px viewport. */
@media (max-width: 380px) {
	.lr-bag-layout { padding-left: 16px; padding-right: 16px; }
	.lr-bag-side { min-width: 0; }
}

/* Links inside running text must not rely on colour alone (WCAG 1.4.1): underline the bag summary's inline links. */
.lr-bag-summary-fine .lr-inline-link,
.lr-italic-line .lr-inline-link { text-decoration: underline; text-underline-offset: 2px; }

/* Account forms: the privacy-policy link in running text is underlined, and the show-password eye is a proper 32px tap target. */
.woocommerce-privacy-policy-link { text-decoration: underline; text-underline-offset: 2px; }
.woocommerce form .password-input .show-password-input { width: 32px; height: 32px; min-width: 32px; min-height: 32px; top: 50%; transform: translateY(-50%); right: 6px; }

/* Accessibility batch (2026-09-21): (1) a struck-through original price stays fully legible (was faded to 2.4:1);
   (2) links inside running text are underlined, not colour-only (WCAG 1.4.1);
   (3) brand/category description headings keep their look after moving to correct heading levels. */
body .price del, body .price del .woocommerce-Price-amount, body .price del bdi { opacity: 1 !important; color: var(--wp--preset--color--muted-text); }
p > .lr-inline-link, li > .lr-inline-link, .lr-body-copy .lr-inline-link { text-decoration: underline !important; text-underline-offset: 2px; }
.term-description h2.lr-term-h4 { font-size: 15px; font-weight: 500; line-height: 1.25; margin: 19.95px 0; }
.term-description h3.lr-term-h5 { font-size: 12.45px; font-weight: 500; line-height: 1.25; margin: 20.79px 0; }

/* Announcement banner: pauses while hovered or focused, and is static for visitors who ask for reduced motion (WCAG 2.2.2 / 2.3.3). */
.lr-marquee-track:hover { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
	.lr-marquee-track { animation: none; display: flex; justify-content: center; white-space: normal; text-align: center; padding: 0 16px; }
	.lr-marquee-track > span:nth-child(2) { display: none; }
}

/* Keyboard parity for the hover-only "View Piece" overlay and image zoom. */
.lr-product-card--overlay:focus-within figure::after,
.lr-wc-card:focus-within .lr-wc-image-wrap::after { opacity: 1; }
.lr-product-card--overlay:focus-within .lr-product-view,
.lr-wc-card:focus-within .lr-product-view { opacity: 1; transform: translate(-50%,-50%) scale(1); }

/* Reduced motion: no zoom, sweep, fade or scale transitions and no lightbox animation. */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
	#lr-gallery-lightbox-modal.is-open,
	#lr-gallery-lightbox-modal.is-open .lr-modal-box--lightbox { animation: none !important; }
	.lr-product-card--overlay:hover img, .lr-wc-card:hover img { transform: none; }
}

/* Single product on phones: the page wrapper already gives a 24px gutter, and the narrow/wide sections added another 32px each side, squeezing Condition, Measurements and story text to about half the screen. */
@media (max-width: 600px) {
	body.single-product .lr-section-narrow,
	body.single-product .lr-section-wide { padding-left: 0; padding-right: 0; }
}
@media (max-width: 600px) {
	/* The product wrapper carries an inline 32px side padding on top of main's 24px, leaving a 248px image column on a 360px screen. */
	body.single-product main > div > div[style*="max-width:var(--wp--style--global--content-size)"] { padding-left: 0 !important; padding-right: 0 !important; }
}

/* Sticky header: the header's own "position: sticky" only works inside a tall container, but WordPress wraps it in a template-part div exactly as tall as the header, so it scrolled away (seen on iPhone Safari, and on desktop). Make the wrapper the sticky element. */
.wp-site-blocks > .wp-block-template-part:first-child {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 20;
}
/* Keep focused fields and in-page links from landing underneath the sticky header. */
html { scroll-padding-top: 130px; overflow-x: hidden; }

/* Menu button becomes a close (X) while the phone menu is open, so it is obvious how to close it. */
.lr-burger span { transition: transform .2s ease, opacity .2s ease; }
.lr-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.lr-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.lr-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }

/* Back-to-top button: native replacement for the beam-me-up-scotty plugin
   (deactivated) — same position/behavior, brand colors, no icon-font dependency. */
.lr-back-to-top {
	position: fixed;
	left: 20px;
	bottom: 20px;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background-color: #1B1815;
	color: #F1ECE1;
	border: 1px solid #7A5F3D;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 9999;
	padding: 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .25s ease, transform .25s ease, background-color .2s ease, visibility .25s;
}
.lr-back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.lr-back-to-top:hover,
.lr-back-to-top:focus-visible {
	background-color: #7A5F3D;
}

/* Shop card — Collection label / Era · Condition line / Singular Piece line (dynamic product-card fields). */
.lr-wc-card .lr-product-collection { display: block; margin: 2px 0 5px; font-family: var(--wp--preset--font-family--montserrat); font-size: 10px; font-weight: 500; text-transform: uppercase; letter-spacing: .09em; color: var(--wp--preset--color--muted-text); }
.lr-wc-card .lr-product-meta-line { display: block; margin-bottom: 4px; font-family: var(--wp--preset--font-family--montserrat); font-size: 11.5px; color: var(--wp--preset--color--muted-text); }
.lr-wc-card .lr-product-singular { display: block; margin-top: 5px; font-family: var(--wp--preset--font-family--cormorant-garamond); font-style: italic; font-size: 12px; color: var(--wp--preset--color--gold); }

/* Currency display switcher (header + shop-top) — display-only conversion; checkout always charges NZ$. */
.lr-currency-wrap{display:inline-flex;align-items:center;gap:8px}
.lr-currency-select{appearance:none;-webkit-appearance:none;background:transparent;border:1px solid var(--wp--preset--color--border-subtle);border-radius:2px;padding:6px 26px 6px 10px;font-family:var(--wp--preset--font-family--montserrat);font-size:11px;letter-spacing:.04em;color:var(--wp--preset--color--obsidian);cursor:pointer;background-image:url("data:image/svg+xml;charset=UTF-8,%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' stroke='%23808080' stroke-width='1.3' fill='none' fill-rule='evenodd'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center}
.lr-currency-select:hover,.lr-currency-select:focus{border-color:var(--wp--preset--color--gold)}
.lr-currency-note{font-family:var(--wp--preset--font-family--montserrat);font-size:10.5px;color:var(--wp--preset--color--muted-text);white-space:nowrap}
.lr-currency-code{font-size:.85em;color:var(--wp--preset--color--muted-text)}
.lr-currency-wrap--header .lr-currency-select{font-size:10.5px;padding:5px 22px 5px 8px;border-color:transparent}
.lr-currency-wrap--header .lr-currency-select:hover,.lr-currency-wrap--header .lr-currency-select:focus{border-color:var(--wp--preset--color--border-subtle)}
@media (max-width:680px){.lr-currency-wrap--header{display:none}}
.lr-currency-select option{background-color:var(--wp--preset--color--ivory);color:var(--wp--preset--color--obsidian)}

/* The Luxury Edit hub page — tile hover treatment. */
.lr-edit-tile img,.lr-lens-tile img{transition:transform .5s ease}
.lr-edit-tile:hover img,.lr-lens-tile:hover img{transform:scale(1.04)}
.lr-edit-tile:hover h3,.lr-lens-tile:hover h3,.lr-lifestyle-tile:hover h3{color:var(--wp--preset--color--gold)}
.lr-lifestyle-tile h3{transition:color .25s ease}

/* Merchandising badges: subtle editorial labels (see lr-merchandising.php) */
.lr-badges { position: absolute; top: 12px; left: 12px; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; pointer-events: none; }
.lr-badge { display: inline-block; font-family: var(--wp--preset--font-family--montserrat); font-size: 9px; font-weight: 500; line-height: 1; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--charcoal); background: rgba(250, 247, 242, .92); padding: 6px 9px; }
.lr-badges--page { position: static; flex-direction: row; margin: 0 0 10px; }
.lr-badges--page .lr-badge { background: none; padding: 0; font-size: 10.5px; color: var(--wp--preset--color--gold); }
.lr-gift-tagline { font-family: var(--wp--preset--font-family--cormorant-garamond); font-style: italic; font-size: 15px; color: var(--wp--preset--color--charcoal); margin: 0 0 8px; }

/* International Shipping Quote modal (My Bag) — matches ShippingQuoteModal in CheckoutScreen.jsx.txt */
.lr-quote-box { max-width: 480px; padding: 48px; }
.lr-quote-eyebrow { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; text-transform: uppercase; letter-spacing: .1em; color: var(--wp--preset--color--gold); }
.lr-quote-label { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--wp--preset--color--muted-text); margin-bottom: 8px; }
.lr-quote-section { padding: 20px 0; border-bottom: 1px solid var(--wp--preset--color--border-subtle); }
.lr-quote-pieces { margin-top: 24px; padding-top: 0; display: flex; flex-direction: column; gap: 12px; }
.lr-quote-piece { display: grid; grid-template-columns: 56px 1fr; gap: 12px; align-items: center; }
.lr-quote-piece-image { aspect-ratio: 4 / 5; overflow: hidden; }
.lr-quote-piece-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lr-quote-piece-name { display: block; font-family: var(--wp--preset--font-family--cormorant-garamond); font-weight: 500; font-size: 14.5px; color: var(--wp--preset--color--charcoal); }
.lr-quote-piece-price { font-family: var(--wp--preset--font-family--montserrat); font-size: 12.5px; color: var(--wp--preset--color--muted-text); }
.lr-quote-field { width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1px solid var(--wp--preset--color--border-subtle); border-radius: 0; font-family: var(--wp--preset--font-family--montserrat); font-size: 13.5px; background: var(--wp--preset--color--white); color: var(--wp--preset--color--charcoal); }
.lr-quote-other { margin-top: 10px; }
.lr-quote-other[hidden], .lr-quote-error[hidden], .lr-quote-done[hidden], .lr-quote-form[hidden] { display: none; }
.lr-quote-status { padding-bottom: 28px; display: flex; justify-content: space-between; align-items: baseline; }
.lr-quote-status .lr-quote-label { margin: 0; }
.lr-quote-tbc { font-family: var(--wp--preset--font-family--cormorant-garamond); font-style: italic; font-size: 14px; color: var(--wp--preset--color--gold); }
.lr-quote-emailrow { display: block; margin: 24px 0; }
.lr-quote-emailrow .lr-quote-label { margin-bottom: 6px; }
.lr-quote-error { font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; color: #9b2c2c; margin: -8px 0 14px; }
.lr-quote-submit { display: block; width: 100%; text-align: center; background: var(--wp--preset--color--obsidian); color: var(--wp--preset--color--ivory); padding: 15px; border: 0; border-radius: 0; font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: 1.5px; cursor: pointer; }
.lr-quote-submit:hover { background: var(--wp--preset--color--gold); }
.lr-quote-submit:disabled { opacity: .6; cursor: default; }
.lr-quote-fine { font-family: var(--wp--preset--font-family--montserrat); font-size: 11.5px; color: var(--wp--preset--color--muted-text); line-height: 1.6; margin: 14px 0 0; text-align: center; }
.lr-quote-done { text-align: center; }
@media (max-width: 600px) { .lr-quote-box { padding: 40px 24px 32px; } }

/* ==== Checkout — Design parity (CheckoutScreen.jsx.txt); markup in woocommerce/checkout/*.php ==== */
/* Minimal header + reassurance strip replace the site header/footer while paying (not on order-received). */
.woocommerce-checkout:not(.woocommerce-order-received) .lr-std-chrome { display: none; }
.woocommerce-order-received .lr-co-chrome { display: none; }
/* Same behaviour as the site header: stays at the top while scrolling. */
.lr-co-chrome { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 20; }
.lr-co-topbar { border-bottom: 1px solid var(--wp--preset--color--border-subtle); background: var(--wp--preset--color--ivory); }
.lr-co-topbar-inner { max-width: 1280px; margin: 0 auto; padding: 22px 32px; display: flex; align-items: center; justify-content: space-between; box-sizing: border-box; }
.lr-co-brand { text-decoration: none; display: block; }
.lr-co-brand-name { display: block; font-family: var(--wp--preset--font-family--montserrat); font-weight: 300; font-size: 18px; letter-spacing: 2.5px; text-transform: uppercase; color: var(--wp--preset--color--obsidian); }
.lr-co-brand-tag { display: block; font-family: var(--wp--preset--font-family--montserrat); font-weight: 300; font-style: italic; font-size: 11.5px; color: var(--wp--preset--color--muted-text); margin-top: 2px; }
.lr-co-secure { display: inline-flex; align-items: center; gap: 6px; font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--wp--preset--color--muted-text); }
/* No live-chat widget while paying (it covered the Complete Purchase button on phones). */
.woocommerce-checkout:not(.woocommerce-order-received) call-us-selector { display: none !important; }
/* Stripe injects a hidden helper input to read field styles; its default width pushed the page ~8px wider than a phone screen. */
#wc-stripe-hidden-style-input { left: 0 !important; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; }
/* Phones: keep the sticky checkout header compact (single line, no tagline). */
@media (max-width: 480px) {
	.lr-co-topbar-inner { padding: 12px 16px; gap: 8px; }
	.lr-co-brand-name { font-size: 15px; letter-spacing: 2px; white-space: nowrap; }
	.lr-co-brand-tag { display: none; }
	.lr-co-secure { font-size: 10px; white-space: nowrap; letter-spacing: .06em; }
}
.lr-co-strip { background: var(--wp--preset--color--obsidian); padding: 9px 0; overflow: hidden; white-space: nowrap; text-align: left; font-family: var(--wp--preset--font-family--montserrat); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--champagne); }

.woocommerce-checkout:not(.woocommerce-order-received) main.wp-block-group { max-width: 1280px; padding: 64px 32px 96px; }
.lr-co-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 80px; align-items: start; }
.lr-co-h { font-family: var(--wp--preset--font-family--cormorant-garamond); font-weight: 500; font-size: 20px; margin: 0 0 20px; color: var(--wp--preset--color--charcoal); }
.lr-co-section { margin: 0 0 40px; }

/* Fields */
.lr-co .form-row { margin: 0 0 16px; padding: 0; float: none; width: auto; }
.lr-co .form-row label { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--wp--preset--color--muted-text); margin: 0 0 6px; line-height: 1.4; }
.lr-co .form-row .required { color: var(--wp--preset--color--muted-text); text-decoration: none; border: 0; }
.lr-co .form-row .optional { display: none; }
.lr-co .input-text, .lr-co select, .lr-co textarea { width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1px solid var(--wp--preset--color--border-subtle); border-radius: 0; font-family: var(--wp--preset--font-family--montserrat); font-size: 13.5px; background: var(--wp--preset--color--white); color: var(--wp--preset--color--charcoal); }
.lr-co .woocommerce-input-wrapper { display: block; }
.lr-co .select2-container { width: 100% !important; }
.lr-co .select2-container .select2-selection--single { height: auto; min-height: 44px; border: 1px solid var(--wp--preset--color--border-subtle); border-radius: 0; background: var(--wp--preset--color--white); }
.lr-co .select2-container .select2-selection__rendered { padding: 10px 14px; line-height: 22px; font-family: var(--wp--preset--font-family--montserrat); font-size: 13.5px; color: var(--wp--preset--color--charcoal); }
.lr-co .select2-container .select2-selection__arrow { height: 42px; right: 8px; }
.lr-co .woocommerce-billing-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; }
.lr-co .woocommerce-billing-fields__field-wrapper .form-row { grid-column: span 1; }
.lr-co #billing_first_name_field { order: 1; }
.lr-co #billing_last_name_field { order: 2; }
.lr-co #billing_address_1_field { order: 3; grid-column: 1 / -1; }
.lr-co #billing_city_field { order: 4; }
.lr-co #billing_postcode_field { order: 5; }
.lr-co #billing_state_field { order: 6; grid-column: 1 / -1; }
.lr-co #billing_state_field:not(.validate-required) { display: none; }
.lr-co #billing_country_field { order: 7; }
.lr-co #billing_phone_field { order: 8; }
.lr-co-details { margin-bottom: 40px; }
.lr-co .woocommerce-account-fields { margin: 0 0 4px; }

/* Checkboxes (newsletter, create account, terms) */
.lr-co .form-row.create-account label, .lr-co #woo_ml_subscribe_field label, .lr-co .woocommerce-terms-and-conditions-wrapper label { display: flex; align-items: flex-start; gap: 8px; font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; text-transform: none; letter-spacing: 0; color: var(--wp--preset--color--muted-text); cursor: pointer; line-height: 1.6; }
.lr-co input[type="checkbox"] { margin-top: 3px; accent-color: var(--wp--preset--color--gold); }

/* Delivery cards */
.lr-co-card { border: 1px solid var(--wp--preset--color--border-subtle); padding: 18px 20px; margin-bottom: 14px; }
.lr-co-card--intl { margin-bottom: 0; }
.lr-co-card-title { display: block; font-family: var(--wp--preset--font-family--cormorant-garamond); font-weight: 500; font-size: 14px; color: var(--wp--preset--color--charcoal); margin-bottom: 4px; }
.lr-co-card-sub { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; color: var(--wp--preset--color--muted-text); margin-bottom: 8px; }
.lr-co-card-body { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 12.5px; color: var(--wp--preset--color--muted-text); line-height: 1.6; }
.lr-co-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 4px; flex-wrap: wrap; }
.lr-co-card-head .lr-co-card-title { margin: 0; }
.lr-co-linkbtn { background: none; border: 0; padding: 0; cursor: pointer; font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; color: var(--wp--preset--color--muted-text); text-decoration: underline; }
.lr-co-intl-info { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--wp--preset--color--border-subtle); }
.lr-co-intl-info[hidden] { display: none; }
.lr-co-intl-title { display: block; font-family: var(--wp--preset--font-family--cormorant-garamond); font-weight: 500; font-size: 13.5px; color: var(--wp--preset--color--charcoal); margin-bottom: 10px; }
.lr-co-intl-info p { font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; color: var(--wp--preset--color--muted-text); line-height: 1.7; margin: 0 0 10px; }
.lr-co-quote-link { display: block; margin-top: 12px; font-family: var(--wp--preset--font-family--montserrat); font-size: 11.5px; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; color: var(--wp--preset--color--charcoal); text-decoration: underline; cursor: pointer; }
.lr-co-card-fine { font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; color: var(--wp--preset--color--muted-text); line-height: 1.6; margin: 10px 0 0; }

/* Payment */
.lr-co-gold-label { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--wp--preset--color--gold); margin-bottom: 16px; }
.woocommerce-checkout .lr-co #payment { background: transparent; border: 0; }
.lr-co #payment ul.payment_methods { padding: 0; margin: 0; border: 0; list-style: none; }
.lr-co #payment ul.payment_methods > li { margin: 0 0 12px; font-family: var(--wp--preset--font-family--montserrat); font-size: 13px; }
.lr-co #payment div.payment_box { padding: 16px; margin: 10px 0 0; border: 1px solid var(--wp--preset--color--border-subtle); }
.lr-co-afterpay { font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; color: var(--wp--preset--color--muted-text); line-height: 1.6; margin: 4px 0 0; }

/* Right column */
.lr-co-side-inner { position: sticky; top: 32px; }
.lr-co-item { display: grid; grid-template-columns: 64px 1fr; gap: 14px; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--wp--preset--color--border-subtle); }
.lr-co-item-image { aspect-ratio: 4 / 5; overflow: hidden; }
.lr-co-item-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lr-co-item-brand { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--wp--preset--color--muted-text); }
.lr-co-item-name { display: block; font-family: var(--wp--preset--font-family--cormorant-garamond); font-weight: 500; font-size: 14px; margin: 3px 0 6px; color: var(--wp--preset--color--charcoal); }
.lr-co-item-cond { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 11.5px; color: var(--wp--preset--color--muted-text); }
.lr-co-item-price { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 13px; color: var(--wp--preset--color--charcoal); margin-top: 4px; }
.lr-co-totals { width: 100%; border: 0; border-collapse: collapse; margin: 0 0 28px; }
.lr-co-totals tr { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.lr-co-totals th, .lr-co-totals td { border: 0; padding: 0; background: none; font-family: var(--wp--preset--font-family--montserrat); font-size: 13px; font-weight: 400; color: var(--wp--preset--color--muted-text); text-align: left; }
.lr-co-totals td { text-align: right; }
.lr-co-totals tr:not(.order-total) { margin-bottom: 10px; }
.lr-co-totals tr.woocommerce-shipping-totals { padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid var(--wp--preset--color--border-subtle); }
.lr-co-totals ul#shipping_method { list-style: none; margin: 0; padding: 0; text-align: right; }
.lr-co-totals ul#shipping_method input.shipping_method { display: none; }
.lr-co-totals ul#shipping_method li:only-child label { cursor: default; }
.lr-co-totals ul#shipping_method label { display: inline; margin: 0; font-size: 13px; color: var(--wp--preset--color--muted-text); text-transform: none; letter-spacing: 0; }
.lr-co-totals ul#shipping_method li { margin: 0; }
.lr-co-totals tr.order-total th { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--wp--preset--color--charcoal); }
.lr-co-totals tr.order-total td, .lr-co-totals tr.order-total td .amount { font-family: var(--wp--preset--font-family--cormorant-garamond); font-weight: 500; font-size: 22px; color: var(--wp--preset--color--charcoal); }
.lr-co-place { margin: 0 0 40px; padding: 0; }
.lr-co-place .woocommerce-terms-and-conditions-wrapper { margin-bottom: 18px; }
.lr-co-place .woocommerce-terms-and-conditions-wrapper .form-row { margin: 0; }
.lr-co-place .woocommerce-terms-and-conditions-wrapper label { font-size: 11.5px; }
.lr-co #place_order { display: block; width: 100%; text-align: center; background: var(--wp--preset--color--obsidian); color: var(--wp--preset--color--ivory); padding: 17px; border: 0; border-radius: 0; font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; font-weight: 500; text-transform: uppercase; letter-spacing: 1.5px; cursor: pointer; float: none; }
.lr-co-place-note { font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; color: var(--wp--preset--color--muted-text); line-height: 1.6; margin: 12px 0 8px; text-align: center; }
.lr-co-place-italic { font-family: var(--wp--preset--font-family--montserrat); font-size: 11.5px; font-style: italic; color: var(--wp--preset--color--muted-text); line-height: 1.6; margin: 0; text-align: center; }
.lr-co-trust { padding-top: 32px; border-top: 1px solid var(--wp--preset--color--border-subtle); }
.lr-co-trust-title { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--wp--preset--color--muted-text); margin-bottom: 18px; }
.lr-co-trust-row { display: grid; grid-template-columns: 18px 1fr; gap: 10px; margin-bottom: 16px; color: var(--wp--preset--color--muted-text); }
.lr-co-trust-row svg { margin-top: 2px; }
.lr-co-trust-name { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 12.5px; font-weight: 500; color: var(--wp--preset--color--charcoal); }
.lr-co-trust-desc { font-family: var(--wp--preset--font-family--montserrat); font-size: 11.5px; color: var(--wp--preset--color--muted-text); line-height: 1.5; }
.lr-co-history { margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--wp--preset--color--border-subtle); }
.lr-co-history-title { display: block; font-family: var(--wp--preset--font-family--cormorant-garamond); font-style: italic; font-weight: 500; font-size: 15px; color: var(--wp--preset--color--charcoal); margin-bottom: 10px; }
.lr-co-history p { font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; color: var(--wp--preset--color--muted-text); line-height: 1.7; margin: 0 0 10px; }
.lr-co-history .lr-co-quote-link { display: inline; margin: 0; }

@media (max-width: 900px) {
	.lr-co-grid { grid-template-columns: 1fr; gap: 48px; }
	.lr-co-side-inner { position: static; }
	.lr-co-topbar-inner { padding: 18px 20px; }
	.woocommerce-checkout:not(.woocommerce-order-received) main.wp-block-group { padding: 40px 20px 72px; }
	.lr-co .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr; }
	.lr-co .woocommerce-billing-fields__field-wrapper .form-row { grid-column: 1 / -1; }
}

/* Checkout — specificity fixes over WooCommerce/theme form defaults */
.woocommerce-checkout .lr-co .form-row { float: none !important; width: auto !important; }
.woocommerce-checkout .lr-co .input-text, .woocommerce-checkout .lr-co select, .woocommerce-checkout .lr-co .select2-container .select2-selection--single { border: 1px solid var(--wp--preset--color--border-subtle) !important; box-shadow: none; }
.woocommerce-checkout .lr-co .input-text:focus, .woocommerce-checkout .lr-co select:focus { border-color: var(--wp--preset--color--gold) !important; outline: 0; }
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info, .woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { background: none; border: 0; padding: 0; margin: 0 0 12px; font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; color: var(--wp--preset--color--muted-text); }
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info::before, .woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before { display: none; }
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info a, .woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a { color: var(--wp--preset--color--charcoal); text-decoration: underline; }
.woocommerce-checkout main.wp-block-group .woocommerce { max-width: none; }
.lr-co #place_order { width: 100%; }
.woocommerce-checkout .lr-co #billing_state_field:not(.validate-required) { display: none !important; }
.woocommerce-checkout .woocommerce-form-login-toggle .wc-block-components-notice-banner, .woocommerce-checkout .woocommerce-form-coupon-toggle .wc-block-components-notice-banner { background: none; border: 0; padding: 0; margin: 0 0 12px; font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; color: var(--wp--preset--color--muted-text); }
.woocommerce-checkout .woocommerce-form-login-toggle .wc-block-components-notice-banner > svg, .woocommerce-checkout .woocommerce-form-coupon-toggle .wc-block-components-notice-banner > svg { display: none; }
.woocommerce-checkout .woocommerce-form-login-toggle .wc-block-components-notice-banner a, .woocommerce-checkout .woocommerce-form-coupon-toggle .wc-block-components-notice-banner a { color: var(--wp--preset--color--charcoal); text-decoration: underline; }
.lr-co-details #woo_ml_subscribe_field, .lr-co-details .woo-ml-subscribe, .lr-co-details p:has(#woo_ml_subscribe) { margin: 0 0 12px; }
.woocommerce-checkout .lr-co .lr-co-totals, .woocommerce-checkout .lr-co .lr-co-totals tr, .woocommerce-checkout .lr-co .lr-co-totals th, .woocommerce-checkout .lr-co .lr-co-totals td { border: 0 !important; background: none !important; box-shadow: none; }
.woocommerce-checkout .lr-co .lr-co-totals tr.woocommerce-shipping-totals { border-bottom: 1px solid var(--wp--preset--color--border-subtle) !important; }
.woocommerce-checkout .lr-co .lr-co-totals tr.order-total { padding-top: 0; }
.lr-co #customer_details { display: flex; flex-direction: column; }
.lr-co .woocommerce-billing-fields { display: contents; }
.lr-co-details { order: 1; margin-bottom: 0; }
.lr-co #customer_details > p, .lr-co #customer_details > .form-row { order: 2; margin: 0 0 40px; }
.lr-co-address { order: 3; }
.lr-co-place abbr.required { display: none; }
.woocommerce-checkout .lr-co .input-text, .woocommerce-checkout .lr-co .select2-container .select2-selection--single { height: 46px; }
.woocommerce-checkout .lr-co .select2-container .select2-selection__rendered { line-height: 24px; }
.woocommerce-checkout .lr-co .select2-container .select2-selection__arrow { height: 44px; }
.lr-co-payment .lr-co-place { margin: 24px 0 20px; }

/* Checkout coupon prompt (order summary) */
.lr-co-coupon { margin: 0 0 28px; border: 1px solid var(--wp--preset--color--gold); background: var(--wp--preset--color--white); }
.lr-co-coupon-toggle { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; background: none; border: 0; cursor: pointer; text-align: left; font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; color: var(--wp--preset--color--charcoal); }
.lr-co-coupon-cta { font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; text-decoration: underline; white-space: nowrap; color: var(--wp--preset--color--gold); }
.lr-co-coupon-panel { padding: 0 16px 16px; }
.lr-co-coupon-panel[hidden], .lr-co-coupon-msg[hidden] { display: none; }
.lr-co-coupon-row { display: flex; gap: 8px; }
.lr-co-coupon-input { flex: 1; min-width: 0; box-sizing: border-box; height: 46px; padding: 12px 14px; border: 1px solid var(--wp--preset--color--border-subtle); border-radius: 0; font-family: var(--wp--preset--font-family--montserrat); font-size: 13.5px; background: var(--wp--preset--color--white); }
.lr-co-coupon-apply { padding: 0 22px; background: var(--wp--preset--color--obsidian); color: var(--wp--preset--color--ivory); border: 0; border-radius: 0; cursor: pointer; font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: 1.5px; }
.lr-co-coupon-apply:disabled { opacity: .6; }
.lr-co-coupon-msg { margin: 10px 0 0; font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; line-height: 1.5; color: var(--wp--preset--color--muted-text); }
.lr-co-coupon-msg.is-error { color: var(--lr-error); }

/* ---- Payment Plan (2026-09-30) ---- */
.lr-pp-block { border: 1px solid var(--wp--preset--color--border-subtle); background: var(--wp--preset--color--muted-surface); padding: 18px 20px; margin: 4px 0 14px; text-align: center; }
.lr-pp-block-title { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: .1em; color: var(--wp--preset--color--gold); margin-bottom: 8px; }
.lr-pp-block p { font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; line-height: 1.65; color: var(--wp--preset--color--muted-text); margin: 0 0 8px; }
.lr-purchase-col > .lr-pp-block { order: 4; }
.lr-pp-modal { max-width: 520px; }
.lr-pp-tiers { margin: 20px 0; border-top: 1px solid var(--wp--preset--color--border-subtle); }
.lr-pp-tier-row { display: flex; justify-content: space-between; gap: 16px; padding: 10px 4px; border-bottom: 1px solid var(--wp--preset--color--border-subtle); font-family: var(--wp--preset--font-family--montserrat); font-size: 12.5px; color: var(--wp--preset--color--charcoal); }
.lr-pp-table-row { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--wp--preset--color--border-subtle); font-family: var(--wp--preset--font-family--montserrat); font-size: 13px; color: var(--wp--preset--color--charcoal); }
.lr-pp-table-row:last-child { border-bottom: 0; }
.lr-pp-table-head { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--wp--preset--color--gold); }
.lr-co-pp-title { display: block; font-family: var(--wp--preset--font-family--montserrat); font-size: 12px; font-weight: 500; color: var(--wp--preset--color--charcoal); margin-top: 12px; }
.lr-co-afterpay > .lr-co-pp-title:first-child { margin-top: 0; }
.lr-co-afterpay p { margin: 2px 0 0; }
.lr-co-afterpay .lr-co-quote-link { display: inline-block; margin-top: 8px; }
@media (max-width: 680px) { .lr-pp-table-row { grid-template-columns: 1fr; gap: 4px; padding: 14px 16px; } .lr-pp-table-head { display: none; } }
.lr-pp-block .lr-modal-trigger { display: block; margin: 0 auto; }
.lr-pp-modal .lr-btn-solid { background: var(--wp--preset--color--obsidian); color: var(--wp--preset--color--ivory); padding: 15px 20px; font-family: var(--wp--preset--font-family--montserrat); font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: 1.5px; }

/* Soft ivory gradient behind WHITE-BACKGROUND product photos only (2026-10-05).
   Images carry .lr-white-bg (functions.php filter, set from a one-off scan); multiply turns
   their baked-in white into this gradient while the product keeps its colour. Lifestyle
   photos have no class and are untouched. Remove once lifestyle photography is in. */
.lr-wc-image-wrap:has(img.lr-white-bg),
.lr-product-card figure:has(img.lr-white-bg),
.lr-gallery-main:has(img.lr-white-bg),
.lr-gallery-thumb:has(img.lr-white-bg),
.lr-remember-photo:has(img.lr-white-bg),
.lr-arch-fig:has(img.lr-white-bg),
.lr-archive-card figure:has(img.lr-white-bg) {
	isolation: isolate;
	background: linear-gradient(160deg, #FBF8F2 0%, #F3EEE3 55%, #E9E1D1 100%);
}
.lr-wc-image-wrap img.lr-white-bg,
.lr-product-card figure img.lr-white-bg,
.lr-gallery-main img.lr-white-bg,
.lr-gallery-thumb img.lr-white-bg,
.lr-remember-photo img.lr-white-bg,
.lr-arch-fig img.lr-white-bg,
.lr-archive-card figure img.lr-white-bg { mix-blend-mode: multiply; aspect-ratio: 1/1 !important; height: auto !important; object-fit: cover; }
.lr-arch-fig { display: block; margin: 0; line-height: 0; }

/* Homepage/edit-row product cards: white-background photos were forced to 1/1 (rule above) while lifestyle photos stay 4/5, so cards in one row had different heights. Same 4/5 frame for both; "cover" fills the frame (a "contain" attempt left visible bands, because the photos are slightly off-white and multiply darker than the plain gradient). (2026-10-05) */
.lr-product-card figure img.lr-white-bg { aspect-ratio: 4/5 !important; object-fit: cover; }

/* Shop / Current Collection cards: white-background photos were forced to 1/1 by the rule above while lifestyle photos stay 4/5, so cards in one row had different image heights. Same 4/5 frame for both ("cover"), matching the homepage/edit-row cards. (2026-10-05) */
.lr-wc-image-wrap img.lr-white-bg { aspect-ratio: 4/5 !important; object-fit: cover; }
/* Homepage archive-row cards (.lr-archive-card): same 4/5 frame for white-background and lifestyle photos, as the shop cards above. The standalone Archive Edit grid (.lr-arch-card) is already a uniform 1/1 grid. (2026-10-05) */
.lr-archive-card figure img.lr-white-bg { aspect-ratio: 4/5 !important; object-fit: cover; }
/* Archive Edit grid: same 4/5 image frame as the shop cards, so a piece keeps its shape when it moves from the shop to the archive after selling. (2026-10-05) */
.lr-arch-grid .lr-arch-card .lr-arch-fig img,
.lr-arch-grid .lr-arch-card .lr-arch-fig img.lr-white-bg { aspect-ratio: 4/5 !important; height: auto !important; object-fit: cover; }

/* Mobile shop: side padding stacked (main 24 + .lr-shop-wrap 24 + .lr-shop-grid-wrap 32 = 80px each side), squeezing product cards to ~215px on a 375px phone. Keep only the main 24px gutter. (2026-10-05) */
@media (max-width: 640px) {
	.lr-shop-wrap { padding-left: 0; padding-right: 0; }
	.lr-shop-wrap .lr-shop-grid-wrap { padding-left: 0; padding-right: 0; }
}

/* Shop filters on phones/tablets: collapsed behind a "Filter & Refine" button (search box stays visible) so products are not pushed ~4,000px down the page. Desktop (>900px) is unchanged. (2026-10-05) */
.lr-shop-filter-toggle { display: none; }
@media (max-width: 900px) {
	.lr-shop-filter-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; box-sizing: border-box; padding: 13px 16px; background: transparent; border: 1px solid var(--wp--preset--color--obsidian, #1c1917); color: var(--wp--preset--color--obsidian, #1c1917); font-family: var(--wp--preset--font-family--montserrat); font-size: 11.5px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
	.lr-shop-filter-toggle em { font-style: normal; font-size: 10.5px; letter-spacing: .04em; text-transform: none; color: var(--wp--preset--color--gold); }
	.lr-shop-filter-toggle span::after { content: " +"; }
	.lr-shop-sidebar.is-open .lr-filter-toggle-icon, .lr-shop-sidebar.is-open .lr-shop-filter-toggle span::after { content: " \2212"; }
	.lr-shop-sidebar:not(.is-open) > :not(.lr-shop-filter-toggle):not(.lr-shop-search):not(.lr-shop-clear-all) { display: none; }
	.lr-shop-sidebar { gap: 14px; }
}

/* Archive Edit "Recently Archived": two cards per row on phones instead of one long column. (2026-10-05) */
@media (max-width: 680px) {
	body.page-id-25175 .lr-grid-4 { grid-template-columns: repeat(2, 1fr); gap: 14px; }
}

/* Shop pagination on phones: the page buttons were 48px, so "1 2 3 4 ... 15 16 17 >" wrapped onto two lines. 32px buttons with a 4px gap fit nine in one row on a 375px screen. (2026-10-05) */
@media (max-width: 480px) {
	.lr-shop-wrap .woocommerce-pagination ul.page-numbers { gap: 4px; flex-wrap: wrap; justify-content: center; max-width: 100%; }
	/* Long lists (middle pages: 17 items) would still wrap, so on phones show only: arrows, first and last page, the current page and its two neighbours, and the dots. */
	.lr-shop-wrap .woocommerce-pagination ul.page-numbers li:not(:has(.prev, .next, .current, .dots)):not(:has(+ li .current)):not(:has(.current) + li):not(:first-child):not(:has(.prev) + li):not(:last-child):not(:has(+ li .next)) { display: none; }
	.lr-shop-wrap .woocommerce-pagination ul.page-numbers li .page-numbers { min-width: 32px; width: 32px; min-height: 36px; height: 36px; padding: 0; font-size: 11px; box-sizing: border-box; }
}
