/*
Theme Name: Le Bouton Maison
Theme URI: https://lebouton.co.za/
Template: lebouton
Author: Le Bouton
Description: Luxury direction for Le Bouton. A child theme of "Le Bouton" with a warm-neutral palette, transparent header, cinematic hero and an editorial homepage. Deactivate it to return to the parent design at any time.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.0.2
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lebouton-maison
WC requires at least: 8.5
WC tested up to: 11.2
*/

/*
 * Loaded after the parent stylesheet. Sections:
 * 1. Tokens & base   2. Header   3. Hero   4. Homepage sections
 * 5. Product cards & WooCommerce overrides   6. Footer   7. Motion
 */

/* ---------- 1. Tokens & base ---------- */
:root {
	--lbm-stone: var(--wp--preset--color--sand);
	--lbm-ivory: var(--wp--preset--color--ivory);
	--lbm-ink: var(--wp--preset--color--ink);
	--lbm-noir: var(--wp--preset--color--navy-deep);
	--lbm-gold: var(--wp--preset--color--copper);
	--lbm-bronze: var(--wp--preset--color--copper-deep);
	--lbm-champagne: var(--wp--preset--color--gold);
	--lbm-line: var(--wp--preset--color--line);
	--lbm-muted: var(--wp--preset--color--muted);
	--lbm-ease: cubic-bezier(.22, .61, .21, 1);
	--lbm-header-h: 88px;
}

body { letter-spacing: .005em; }
::selection { background: var(--lbm-ink); color: var(--lbm-ivory); }

.lbm-kicker,
.lb-eyebrow {
	font-family: var(--wp--preset--font-family--sans);
	font-size: .6875rem;
	font-weight: 500;
	letter-spacing: .32em;
	text-transform: uppercase;
	color: var(--lbm-bronze);
}
.has-navy-background-color .lbm-kicker,
.has-navy-deep-background-color .lbm-kicker { color: var(--lbm-champagne); }

h1 em, h2 em, .lbm-serif em { font-style: italic; font-weight: 300; color: inherit; }
.lbm-hairline { width: 48px; height: 1px; border: 0; background: var(--lbm-gold); margin: 0; }

/* Quiet text link with a drawn underline. */
.lbm-link a, a.lbm-link {
	position: relative;
	display: inline-block;
	font-size: .72rem;
	font-weight: 500;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--lbm-ink);
	text-decoration: none;
	padding-bottom: 6px;
}
.lbm-link a::after, a.lbm-link::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 1px;
	background: currentColor;
	transform-origin: right;
	transition: transform .5s var(--lbm-ease);
}
.lbm-link a:hover::after, a.lbm-link:hover::after { transform: scaleX(.35); }
.lbm-link a:hover { color: var(--lbm-bronze); }
.has-navy-background-color .lbm-link a,
.has-navy-deep-background-color .lbm-link a { color: var(--lbm-ivory); }

/* Ghost button (outline) in the luxury style. */
.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 1px solid currentColor;
	color: var(--lbm-ink);
	background: transparent;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--lbm-ink); color: var(--lbm-ivory); border-color: var(--lbm-ink); }

/* Parent accents re-tuned for the neutral palette. */
.lb-hero::before { background: radial-gradient(closest-side, rgba(203, 182, 140, .16), transparent 70%); }
.lb-quote-band blockquote p::before,
.lb-quote-band blockquote p::after { color: var(--lbm-champagne); }

/* ---------- 2. Header ---------- */
.lbm-header {
	position: relative;
	z-index: 50;
	transition: background-color .5s var(--lbm-ease), box-shadow .5s var(--lbm-ease), backdrop-filter .5s;
}
.lbm-header__inner { min-height: var(--lbm-header-h); gap: 2rem !important; }
.lbm-header .wp-block-site-logo { margin: 0 !important; line-height: 0; }
.lbm-header .wp-block-site-logo a { display: block; line-height: 0; }
.lbm-header .wp-block-site-logo img { width: auto; height: 62px; transition: height .5s var(--lbm-ease); }
.lbm-header.is-scrolled .wp-block-site-logo img { height: 50px; }
.lbm-header__right { gap: 2.25rem !important; }

/* Inner pages: solid ivory bar with a hairline. Home: see .lbm-overlay below. */
.lb-site-header:not(.lbm-overlay) .lbm-header {
	background: var(--lbm-ivory);
	border-bottom: 1px solid var(--lbm-line);
}
.lbm-header.is-scrolled { box-shadow: 0 1px 0 var(--lbm-line); }

/* Home: header floats over the hero, then frosts on scroll. */
.lbm-overlay { position: fixed !important; top: 0; left: 0; right: 0; z-index: 60; }
.admin-bar .lbm-overlay { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .lbm-overlay { top: 0; } }
.lbm-overlay .lbm-header { background: transparent; }
.lbm-overlay .lbm-header.is-scrolled {
	background: rgba(247, 243, 238, .82);
	-webkit-backdrop-filter: saturate(140%) blur(14px);
	backdrop-filter: saturate(140%) blur(14px);
}

.lbm-header .wp-block-navigation {
	font-size: .7rem;
	font-weight: 500;
	letter-spacing: .26em;
	text-transform: uppercase;
	gap: 2.25rem;
}
.lbm-header .wp-block-navigation a,
.lbm-header .wp-block-navigation .wp-block-navigation-item__content { color: var(--lbm-ink); }
.lbm-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { position: relative; padding: .5rem 0; }
.lbm-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 1px;
	background: var(--lbm-ink);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .45s var(--lbm-ease);
}
.lbm-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after {
	transform: scaleX(1);
	transform-origin: left;
}
.lbm-header .wp-block-navigation a:hover { text-decoration: none; }
.lbm-header .wp-block-navigation .wp-block-navigation__submenu-container {
	background: var(--lbm-ivory) !important;
	border: 1px solid var(--lbm-line) !important;
	min-width: 250px !important;
	padding: 1rem 0 !important;
	box-shadow: 0 24px 50px -30px rgba(18, 17, 16, .35);
}
.lbm-header .wp-block-navigation .wp-block-navigation__submenu-container a { padding: .6rem 1.6rem !important; letter-spacing: .2em; }
.lbm-header .wp-block-navigation .wp-block-navigation__submenu-container a:hover { color: var(--lbm-bronze); }

/* Mobile overlay menu */
.lbm-header .wp-block-navigation__responsive-container-open { color: var(--lbm-ink); }
.lbm-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--lbm-ivory) !important;
	color: var(--lbm-ink) !important;
	padding: 1.75rem clamp(1.25rem, 6vw, 2.5rem) !important;
}
.lbm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start; padding-top: 3.5rem; gap: 1.4rem; }
.lbm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 2.1rem;
	font-weight: 300;
	letter-spacing: 0;
	text-transform: none;
}
.lbm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	border: 0 !important;
	box-shadow: none;
	padding: .4rem 0 0 !important;
}
.lbm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a {
	font-family: var(--wp--preset--font-family--sans);
	font-size: .78rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--lbm-muted);
	padding: .35rem 0 !important;
}

/* Header icons */
.lbm-icons { gap: 1.1rem !important; }
.lbm-icons .wp-block-search__button,
.lbm-icons .wc-block-mini-cart__button,
.lbm-icons .wp-block-woocommerce-customer-account a {
	color: var(--lbm-ink) !important;
	background: transparent !important;
	border: 0 !important;
	padding: 4px !important;
}
.lbm-icons svg { width: 22px; height: 22px; }
.lbm-icons .wp-block-search__button svg { fill: currentColor; }
.lbm-icons .wc-block-mini-cart__badge { background: var(--lbm-ink) !important; color: var(--lbm-ivory) !important; border: 0; font-size: .6rem; }
.lbm-icons .wp-block-search__inside-wrapper { border: 0 !important; padding: 0 !important; }
.lbm-icons .wp-block-search__input {
	background: transparent;
	border: 0 !important;
	border-bottom: 1px solid var(--lbm-ink) !important;
	border-radius: 0;
	padding: .35rem 0;
	font-size: .85rem;
	color: var(--lbm-ink);
}
@media (max-width: 781px) {
	:root { --lbm-header-h: 68px; }
	.lbm-header .wp-block-site-logo img { height: 48px; }
	.lbm-header.is-scrolled .wp-block-site-logo img { height: 42px; }
	.lbm-header__right { gap: 1rem !important; flex-direction: row-reverse; }
	.lbm-icons .wp-block-search { display: none; }
}

/* ---------- 3. Hero ---------- */
.lbm-hero {
	position: relative;
	min-height: min(100vh, 1080px);
	min-height: min(100svh, 1080px);   /* full screen, but never absurdly tall on portrait monitors */
	overflow: hidden;
	display: flex;
	align-items: center;
	isolation: isolate;
	/* Soft studio light: the product photos (shot on white) multiply into this. */
	background:
		radial-gradient(ellipse 70% 80% at 68% 46%, #F6F1EA 0%, #EDE6DB 46%, #E3DACC 100%);
}
.lbm-hero > *, .lbm-hero__bar > * { margin-block: 0 !important; }
.lbm-hero__ctas .wp-block-buttons { margin: 0 !important; }
/* No z-index here: the media layer must not form its own stacking context, or the multiply blend has nothing to blend with. */
.lbm-hero__media { position: absolute !important; inset: 0; margin: 0 !important; pointer-events: none; }
.lbm-hero__media > * { margin: 0 !important; }
.lbm-hero__media figure {
	position: absolute;
	top: 0; bottom: 0; right: 0;
	width: min(64%, 1180px);
	margin: 0;
	opacity: 0;
	mix-blend-mode: multiply;          /* white photo background melts into the stone light */
	transition: opacity 1.8s var(--lbm-ease);
}
.lbm-hero__media figure a { display: block; height: 100%; }   /* not clickable: the caption link in the bar is the way in */
.lbm-hero__media figure.is-active { opacity: 1; }
.lbm-hero__media figure:first-child { opacity: 1; }          /* before JS runs */
.lbm-hero.is-ready .lbm-hero__media figure:first-child:not(.is-active) { opacity: 0; }
.lbm-hero__media img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain;
	object-position: 55% 54%;
	transform: scale(1.06);
	transform-origin: 60% 50%;
}
.lbm-hero__media figcaption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
/* Full-bleed lifestyle photography: add the class "is-fullbleed" to an Image in the hero. */
.lbm-hero__media figure.is-fullbleed { left: 0; width: auto; }
.lbm-hero__media figure.is-fullbleed { mix-blend-mode: normal; }
.lbm-hero__media figure.is-fullbleed img { object-fit: cover; object-position: 50% 50%; }
.lbm-hero__media figure.is-fullbleed::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(236, 229, 218, .94) 0%, rgba(236, 229, 218, .72) 34%, rgba(236, 229, 218, 0) 62%);
}

.lbm-hero__content {
	position: relative;
	z-index: 2;
	width: 100%;
	padding-top: calc(var(--lbm-header-h) + 2rem) !important;
	padding-bottom: 7rem !important;
}
/* Align the text to the 1360px column's left edge (constrained layout would centre it). */
.lbm-hero__content > .lbm-hero__text { max-width: 680px; margin-left: max(0px, calc((100% - 1360px) / 2)) !important; margin-right: auto !important; }
.lbm-wordmark {
	font-family: var(--wp--preset--font-family--serif);
	font-size: .95rem;
	font-weight: 500;
	letter-spacing: .55em;
	text-transform: uppercase;
	color: var(--lbm-ink);
	margin: 0 0 2.25rem !important;
}
.lbm-hero h1 {
	font-size: clamp(2.9rem, 6.4vw, 6.2rem);
	font-weight: 300;
	line-height: .98;
	letter-spacing: -.025em;
	margin: 0;
	text-wrap: balance;
}
.lbm-hero h1 em { display: block; }
.lbm-hero__sub {
	max-width: 30rem;
	margin-top: 2rem !important;
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--lbm-muted);
}
.lbm-hero .wp-block-buttons { margin-top: 2.75rem !important; gap: 2rem !important; align-items: center; }

/* Bottom bar (caption + counter are built by maison.js) */
.lbm-hero__bar {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	z-index: 3;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1rem;
	padding: 1.6rem clamp(1rem, 4vw, 2.5rem);
	border-top: 1px solid rgba(31, 29, 26, .12);
	font-size: .68rem;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--lbm-ink);
}
.lbm-hero__bar p { margin: 0; }
.lbm-hero__note { text-align: center; color: var(--lbm-muted); margin: 0 !important; }
.lbm-hero__caption a { color: var(--lbm-ink); text-decoration: none; }
.lbm-hero__caption a span { color: var(--lbm-muted); margin-left: .9em; transition: margin .3s; }
.lbm-hero__caption a:hover span { margin-left: 1.3em; color: var(--lbm-ink); }
.lbm-hero__nav { justify-self: end; display: flex; align-items: center; gap: 1rem; }
.lbm-hero__count { font-variant-numeric: tabular-nums; min-width: 4.5em; text-align: right; }
.lbm-hero__dots { display: flex; gap: .4rem; }
.lbm-hero__dots button,
.lbm-hero__pause {
	appearance: none;
	background: none;
	border: 0;
	padding: 10px 0;
	cursor: pointer;
	color: var(--lbm-ink);
}
.lbm-hero__dots button { width: 34px; }
.lbm-hero__dots button span { display: block; height: 1px; background: rgba(31, 29, 26, .22); overflow: hidden; }
.lbm-hero__dots button span::after { content: ""; display: block; height: 100%; width: 100%; background: var(--lbm-ink); transform: scaleX(0); transform-origin: left; }
.lbm-hero__dots button.is-active span::after { animation: lbm-progress var(--lbm-slide-ms, 6500ms) linear forwards; }
.lbm-hero.is-paused .lbm-hero__dots button.is-active span::after,
.lbm-hero__dots button.is-done span::after { animation: none; transform: scaleX(1); }
.lbm-hero__pause { padding: 6px; display: inline-flex; }
.lbm-hero__pause svg { width: 12px; height: 12px; fill: currentColor; }

@media (max-width: 900px) {
	/* Phones/tablets: photo band on top, text beneath — no overlap. */
	.lbm-hero { flex-direction: column; align-items: stretch; justify-content: flex-start; padding-top: var(--lbm-header-h); }
	.lbm-hero__media { position: relative !important; inset: auto; height: 34svh; min-height: 220px; flex: 0 0 auto; }
	.lbm-hero__media figure { width: 100%; top: 0; bottom: 0; height: auto; }
	.lbm-hero__media figure.is-fullbleed::after { display: none; }
	.lbm-hero__content { padding-top: .5rem !important; padding-bottom: 6rem !important; }
	.lbm-wordmark { margin-bottom: 1rem !important; font-size: .78rem; }
	.lbm-hero__sub { margin-top: 1.1rem !important; font-size: 1rem; }
	.lbm-hero__ctas { margin-top: 1.6rem !important; gap: 1.25rem !important; }
	.lbm-hero__bar { grid-template-columns: minmax(0, 1fr) auto; padding-top: 1rem; padding-bottom: 1rem; gap: .75rem; }
	.lbm-hero__note { display: none; }
	.lbm-hero__caption { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.lbm-hero__caption a span { display: none; }
	.lbm-hero__count { min-width: 0; white-space: nowrap; }
	.lbm-hero__dots button { width: 20px; }
}
/* ---------- 4. Homepage sections ---------- */
.lbm-section { position: relative; }
.lbm-narrative p.lbm-statement {
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.6rem, 3.1vw, 2.6rem);
	font-weight: 300;
	line-height: 1.35;
	letter-spacing: -.005em;
	color: var(--lbm-ink);
}
.lbm-signature { font-family: var(--wp--preset--font-family--serif); font-style: italic; font-size: 1.15rem; color: var(--lbm-muted); }

.lbm-head { align-items: flex-end !important; gap: 1rem 3rem !important; }
.lbm-head h2 { margin: 0; font-size: clamp(2.2rem, 4.2vw, 3.6rem); font-weight: 300; }

/* The Edit: an editorial (bento) arrangement of the WooCommerce loop. */
.lbm-edit .wc-block-product-template__responsive.columns-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-flow: dense;
	column-gap: clamp(1rem, 2vw, 1.75rem);
	row-gap: clamp(2rem, 3vw, 3rem);
}
.lbm-edit .wc-block-product-template > li:first-child { grid-column: span 2; grid-row: span 2; }
/* The large piece's image is taken out of flow, so the two rows of small cards set the height and it fills them. */
.lbm-edit .wc-block-product-template > li:first-child .wc-block-components-product-image { flex: 1 1 auto; position: relative; min-height: 360px; }
.lbm-edit .wc-block-product-template > li:first-child .wc-block-components-product-image a { position: absolute; inset: 0; }
.lbm-edit .wc-block-product-template > li:first-child .wc-block-components-product-image img { position: absolute; inset: 0; width: 100%; height: 100% !important; aspect-ratio: auto; object-fit: contain; transform: scale(1.25); }
.lbm-edit .wc-block-product-template > li:first-child .wc-block-components-product-image:hover img,
.lbm-edit .wc-block-product-template > li:first-child:hover .wc-block-components-product-image img { transform: scale(1.32); }
.lbm-edit .wc-block-product-template > li:first-child .wp-block-post-title { font-size: 1.9rem !important; }
@media (max-width: 1024px) {
	.lbm-edit .wc-block-product-template__responsive.columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.lbm-edit .wc-block-product-template > li:first-child { grid-row: span 1; }
	.lbm-edit .wc-block-product-template > li:first-child .wc-block-components-product-image { min-height: 0; aspect-ratio: 4 / 3; }
}

/* Collections: tall editorial tiles. */
.lbm-tiles { gap: clamp(1rem, 2vw, 1.75rem) !important; }
.lbm-tile {
	position: relative;
	overflow: hidden;
	background: var(--lbm-stone);
	aspect-ratio: 3 / 4;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 2rem !important;
}
.lbm-tile > .wp-block-image { position: absolute; inset: 0; margin: 0 !important; mix-blend-mode: multiply; }
.lbm-tile > .wp-block-image img {
	width: 100%; height: 100%;
	object-fit: contain;
	object-position: 50% 38%;
	transform: scale(1.02);
	transition: transform 1.4s var(--lbm-ease);
}
.lbm-tile:hover > .wp-block-image img { transform: scale(1.08); }
.lbm-tile > :not(.wp-block-image) { position: relative; z-index: 1; margin: 0 !important; }
.lbm-tile h3 { font-size: clamp(1.8rem, 2.6vw, 2.4rem); font-weight: 300; margin-top: .4rem !important; }
.lbm-tile h3 a { color: var(--lbm-ink); text-decoration: none; }
.lbm-tile h3 a::after { content: ""; position: absolute; inset: 0; }      /* whole tile clickable */
.lbm-tile .lbm-tile__more { margin-top: 1rem !important; font-size: .68rem; letter-spacing: .26em; text-transform: uppercase; color: var(--lbm-muted); }
@media (max-width: 781px) { .lbm-tile { aspect-ratio: 4 / 5; } }

/* Craft: dark band with specs. */
.lbm-specs { border-top: 1px solid rgba(247, 243, 238, .16); margin-top: 2.5rem !important; }
.lbm-specs > * { margin: 0 !important; }
.lbm-spec {
	display: grid;
	grid-template-columns: 9rem 1fr;
	gap: 1rem;
	padding: 1.05rem 0;
	border-bottom: 1px solid rgba(247, 243, 238, .16);
	font-size: .95rem;
	color: rgba(247, 243, 238, .86);
}
.lbm-spec strong { font-weight: 500; font-size: .66rem; letter-spacing: .26em; text-transform: uppercase; color: var(--lbm-champagne); padding-top: .25em; }
.lbm-craft-media { margin: 0 !important; background: #fff; }
.lbm-craft-media img { display: block; width: 100%; }
@media (max-width: 600px) { .lbm-spec { grid-template-columns: 1fr; gap: .25rem; } }

/* Services: understated trust signals. */
.lbm-services { gap: 0 !important; border-top: 1px solid var(--lbm-line); }
.lbm-services > .wp-block-column { padding: 2.25rem 2rem 0 0 !important; margin: 0 !important; }
.lbm-services h3 {
	font-family: var(--wp--preset--font-family--sans);
	font-size: .7rem !important;
	font-weight: 500;
	letter-spacing: .28em;
	text-transform: uppercase;
	margin: 0 0 .8rem;
}
.lbm-services p { font-size: .95rem; color: var(--lbm-muted); margin: 0; }
@media (max-width: 781px) { .lbm-services > .wp-block-column { padding: 1.5rem 0 1.5rem !important; border-bottom: 1px solid var(--lbm-line); } }

/* Final call to action */
.lbm-final { overflow: hidden; }
.lbm-final h2 { font-size: clamp(2.8rem, 6vw, 5.4rem); font-weight: 300; line-height: 1; }
.lbm-final-media { margin: 0 !important; mix-blend-mode: multiply; }
.lbm-final-media img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; transform: scale(1.4); }

/* FAQ (parent pattern) in the quieter style */
.lb-faq .wp-block-details summary { font-weight: 300; font-size: 1.5rem; }
.lb-faq .wp-block-details summary::after { color: var(--lbm-ink); font-weight: 200; }

/* ---------- 5. Product cards & WooCommerce ---------- */
.wc-block-product .wc-block-components-product-image { background: var(--lbm-stone); }
.wc-block-product .wp-block-post-title { font-weight: 400; letter-spacing: -.005em; }
.wc-block-product .wp-block-post-terms { letter-spacing: .26em; font-size: .62rem; }
.wc-block-product .wc-block-components-product-price,
.wc-block-product .wp-block-woocommerce-product-price { font-size: .92rem !important; letter-spacing: .04em; color: var(--lbm-muted); }
.wc-block-product .wp-block-button__link,
.wc-block-product .wc-block-components-product-button__button {
	border-color: var(--lbm-ink) !important;
	color: var(--lbm-ink) !important;
	letter-spacing: .24em !important;
	font-weight: 500 !important;
}
.wc-block-product .wp-block-button__link:hover,
.wc-block-product .wc-block-components-product-button__button:hover { background: var(--lbm-ink) !important; color: var(--lbm-ivory) !important; }
/* Quick-add appears on hover/focus with a mouse; always visible on touch. */
@media (hover: hover) and (pointer: fine) {
	.wc-block-product .wp-block-woocommerce-product-button { opacity: 0; transform: translateY(6px); transition: opacity .4s var(--lbm-ease), transform .4s var(--lbm-ease); }
	.wc-block-product:hover .wp-block-woocommerce-product-button,
	.wc-block-product:focus-within .wp-block-woocommerce-product-button { opacity: 1; transform: none; }
}

/* Primary commerce buttons in noir. */
.lb-product-summary .single_add_to_cart_button,
.lb-sticky-atc button,
.wc-block-cart .wc-block-components-button:not(.is-link),
.wc-block-checkout .wc-block-components-button:not(.is-link),
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button,
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout,
.woocommerce .button,
.woocommerce a.button {
	background: var(--lbm-noir) !important;
	color: var(--lbm-ivory) !important;
	border-radius: 0 !important;
	letter-spacing: .22em !important;
	font-weight: 500 !important;
}
.lb-product-summary .single_add_to_cart_button:hover,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover,
.woocommerce .button:hover,
.woocommerce a.button:hover { background: var(--lbm-bronze) !important; }
.lb-assurance, .wc-block-components-sidebar { background: var(--lbm-stone) !important; border-color: transparent !important; }
.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image,
.woocommerce-product-gallery .flex-viewport,
.woocommerce-product-gallery .flex-control-thumbs li { background: var(--lbm-stone); }
.lb-page-hero { background: var(--lbm-stone) !important; }
.lb-trust { background: var(--lbm-ivory) !important; border-top: 1px solid var(--lbm-line); }
.lb-icon::before, .lb-hero-badges p::before { background: var(--lbm-ink); }
.lb-cat-pills .wp-block-button__link { background: transparent !important; border-color: rgba(31, 29, 26, .25) !important; }
.lb-cat-pills .wp-block-button__link:hover,
.lb-cat-pills .wp-block-button__link.is-current { background: var(--lbm-ink) !important; border-color: var(--lbm-ink) !important; color: var(--lbm-ivory) !important; }

/* ---------- 6. Footer ---------- */
.lbm-footer-top { gap: 2rem 4rem !important; padding-bottom: clamp(2.5rem, 5vw, 4.5rem); border-bottom: 1px solid rgba(247, 243, 238, .12); }
.lbm-footer-statement {
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(2rem, 4vw, 3.4rem);
	font-weight: 300;
	line-height: 1.05;
	color: var(--lbm-ivory);
	margin: 0 !important;
}
.lbm-footer-statement em { color: var(--lbm-champagne); }
.lb-footer .wp-block-site-logo img { max-height: 76px; }
.lb-footer .lb-newsletter input[type="email"],
.lb-footer .lb-newsletter input[type="text"] { border-radius: 0; background: transparent; border: 0; border-bottom: 1px solid rgba(247, 243, 238, .4); padding-left: 0; }
.lb-footer .lb-newsletter input[type="submit"] { background: var(--lbm-ivory); color: var(--lbm-noir); border-radius: 0; }
.lb-footer .lb-newsletter input[type="submit"]:hover { background: var(--lbm-champagne); }
.lb-pay span { border-radius: 0; border-color: rgba(247, 243, 238, .2); }

/* ---------- 7. Motion ---------- */
@keyframes lbm-kenburns { from { transform: scale(1.02); } to { transform: scale(1.14); } }
@keyframes lbm-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes lbm-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: no-preference) {
	.lbm-hero__media figure.is-active img { animation: lbm-kenburns 9s var(--lbm-ease) forwards; }
	.lb-js .lbm-hero__text > * { animation: lbm-rise 1.2s var(--lbm-ease) both; }
	.lb-js .lbm-hero__text > *:nth-child(2) { animation-delay: .12s; }
	.lb-js .lbm-hero__text > *:nth-child(3) { animation-delay: .24s; }
	.lb-js .lbm-hero__text > *:nth-child(4) { animation-delay: .36s; }
	.lb-js .lbm-hero__text > *:nth-child(5) { animation-delay: .48s; }
}
