/* LuwiPress Gold — custom Elementor widget styles. */

/* ─── Global horizontal overflow safety net ──────────────────────────
 * Prevents the storefront from ever showing a horizontal scrollbar
 * on mobile when a single rogue widget (long product title with
 * letter-spacing, a 100vw section that doesn't account for scrollbar
 * width, a flex row that doesn't allow shrinking, etc.) would
 * otherwise push the body past the viewport. `overflow-x: clip` is
 * preferred over `hidden` because it does NOT establish a new
 * scroll container — `position: sticky` inside still works as
 * expected. BOTH html and body must use `clip` (not `hidden`) or the
 * root scroll context kicks in and sticky descendants stop sticking
 * (regression hit the category hero in 1.7.9). Both lines declare
 * hidden first then clip so older browsers degrade to hidden (sticky
 * breaks there but they're a vanishingly small share of mobile
 * traffic); modern browsers honour `clip` and sticky works.
 */
html { overflow-x: hidden; overflow-x: clip; }
html, body { max-width: 100vw; }
body { overflow-x: hidden; overflow-x: clip; }

/* ─────────────────────────────────────────────────────────────────── */
/* Product Card                                                        */
/* ─────────────────────────────────────────────────────────────────── */

.lwp-pc {
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 8px;
	overflow: hidden;
	border: 1px solid var(--line-light, #f0ebe0);
	text-decoration: none;
	color: inherit;
	transition: transform .35s, box-shadow .35s;
	position: relative;
}
.lwp-pc:hover {
	transform: translateY(-3px);
	box-shadow: 0 20px 50px -22px rgba(60, 40, 0, .25);
}
.lwp-pc-img {
	aspect-ratio: 1 / 1;
	background: linear-gradient(135deg, #f0e6d0, #d4c19a);
	position: relative;
	overflow: hidden;
}
.lwp-pc-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.lwp-pc-badge {
	position: absolute;
	top: 12px; left: 12px;
	background: var(--sale, #a33b3e);
	color: #fff;
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
	padding: 5px 10px;
	font-weight: 600;
	z-index: 2;
}
.lwp-pc-fav {
	position: absolute;
	top: 12px; right: 12px;
	width: 34px; height: 34px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ink, #1b1c1c);
	font-size: 14px;
	backdrop-filter: blur(6px);
	z-index: 2;
}
.lwp-pc-fav:hover { color: var(--sale, #a33b3e); }
.lwp-pc-quick-add {
	position: absolute;
	left: 50%; bottom: 14px;
	transform: translate(-50%, 12px);
	opacity: 0;
	background: var(--ink, #1b1c1c);
	color: #fff;
	padding: 10px 18px;
	border-radius: 24px;
	font-size: 12px;
	letter-spacing: .06em;
	text-transform: uppercase;
	font-weight: 600;
	cursor: pointer;
	transition: transform .25s ease, opacity .25s ease;
	white-space: nowrap;
	z-index: 3;
	font-family: var(--sans, 'Inter', sans-serif);
}
.lwp-pc:hover .lwp-pc-quick-add { opacity: 1; transform: translate(-50%, 0); }
.lwp-pc-quick-add:hover { background: var(--primary, #735c00); }

.lwp-pc-meta {
	padding: 18px 20px 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}
.lwp-pc-cat {
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
}
.lwp-pc-title {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 17px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--ink, #1b1c1c);
	margin: 0;
}
.lwp-pc-maker {
	font-size: 12px;
	color: var(--ink-soft, #4d4635);
	font-style: italic;
}
.lwp-pc-price {
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid var(--line-light, #f0ebe0);
	color: var(--primary, #735c00);
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 20px;
	font-weight: 500;
}
.lwp-pc-price del {
	color: var(--muted, #7f7663);
	font-size: 13px;
	font-weight: 400;
	font-family: var(--sans, 'Inter', sans-serif);
	margin-right: 8px;
}
.lwp-pc-price ins {
	background: transparent;
	text-decoration: none;
	color: var(--primary, #735c00);
}
.lwp-pc--placeholder {
	border: 2px dashed var(--line, #e8e2d3);
	border-radius: 8px;
	padding: 64px 24px;
	text-align: center;
	color: var(--muted, #7f7663);
	font-style: italic;
	background: var(--bg-alt, #f6f3f2);
}

/* ─────────────────────────────────────────────────────────────────── */
/* Master Profile                                                      */
/* ─────────────────────────────────────────────────────────────────── */

.lwp-mp--card {
	display: flex;
	flex-direction: column;
	gap: 14px;
	text-decoration: none;
	color: inherit;
}
.lwp-mp--card .lwp-mp-portrait {
	aspect-ratio: 3 / 4;
	border-radius: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 64px;
	font-weight: 500;
	transition: transform .35s;
	background-size: cover;
	background-position: center;
}
.lwp-mp--card:hover .lwp-mp-portrait { transform: translateY(-4px); }
.lwp-mp-meta { display: flex; flex-direction: column; gap: 3px; }
.lwp-mp-name {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 20px;
	font-weight: 500;
	letter-spacing: -.01em;
	margin: 0;
}
.lwp-mp-loc {
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 10.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--primary, #735c00);
}
.lwp-mp-spec {
	font-size: 13px;
	color: var(--ink-soft, #4d4635);
	font-style: italic;
}
.lwp-mp-count {
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 11px;
	color: var(--muted, #7f7663);
	margin-top: 4px;
}

.lwp-mp--feature {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
	align-items: center;
}
.lwp-mp--feature .lwp-mp-portrait {
	aspect-ratio: 3 / 4;
	border-radius: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 120px;
	font-weight: 500;
	background-size: cover;
	background-position: center;
}
.lwp-mp--feature .lwp-mp-eyebrow {
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--primary, #735c00);
	margin-bottom: 18px;
	display: inline-flex;
	align-items: center;
	gap: 14px;
}
.lwp-mp--feature .lwp-mp-name {
	font-size: clamp(46px, 5vw, 72px);
	margin: 8px 0 24px;
}
.lwp-mp--feature .lwp-mp-spec {
	color: var(--ink-soft, #4d4635);
	font-size: 16px;
	max-width: 50ch;
	line-height: 1.65;
}
.lwp-mp-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	border-top: 1px solid var(--line, #e8e2d3);
	padding-top: 28px;
	margin: 32px 0;
	max-width: 480px;
}
.lwp-mp-stats .n {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 36px;
	color: var(--primary, #735c00);
	font-weight: 500;
	line-height: 1;
	display: block;
}
.lwp-mp-stats .l {
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
	margin-top: 6px;
	display: block;
}

@media (max-width: 1024px) {
	.lwp-mp--feature { grid-template-columns: 1fr; gap: 32px; }
}

/* ─────────────────────────────────────────────────────────────────── */
/* Timeline                                                            */
/* ─────────────────────────────────────────────────────────────────── */

.lwp-tl {
	color: #ddd;
	padding: 96px 0;
}
.lwp-tl-inner {
	max-width: 1372px;
	margin: 0 auto;
	padding: 0 32px;
}
.lwp-tl-eyebrow {
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--primary-light, #D4AF37);
}
.lwp-tl-heading {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 46px;
	font-weight: 500;
	letter-spacing: -.02em;
	color: #fff;
	line-height: 1.06;
	margin: 14px 0 48px;
}
.lwp-tl-list {
	display: flex;
	flex-direction: column;
	border-top: 1px solid #2a2520;
}
.lwp-tl-row {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 32px;
	padding: 28px 0;
	border-bottom: 1px solid #2a2520;
	align-items: start;
}
.lwp-tl-row .yr {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 42px;
	font-weight: 500;
	line-height: 1;
}
.lwp-tl-row h4 {
	font-size: 18px;
	color: #fff;
	font-weight: 600;
	margin: 0 0 6px;
}
.lwp-tl-row p {
	font-size: 14px;
	color: #a39c8e;
	line-height: 1.6;
	max-width: 60ch;
	margin: 0;
}

@media (max-width: 680px) {
	.lwp-tl { padding: 64px 0; }
	.lwp-tl-heading { font-size: 32px; margin-bottom: 32px; }
	.lwp-tl-row { grid-template-columns: 1fr; gap: 8px; }
	.lwp-tl-row .yr { font-size: 28px; }
}

/* ─────────────────────────────────────────────────────────────────── */
/* Info Bar                                                            */
/* ─────────────────────────────────────────────────────────────────── */

.lwp-ib {
	color: #fff;
}
.lwp-ib-inner {
	max-width: 1372px;
	margin: 0 auto;
	padding: 24px 32px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
.lwp-ib-col {
	display: flex;
	align-items: center;
	gap: 14px;
	min-width: 0;
}
.lwp-ib-icon {
	width: 38px; height: 38px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	flex-shrink: 0;
	font-size: 16px;
	background: linear-gradient(135deg, #9A7B3A 0%, #D4AF6E 50%, #9A7B3A 100%);
	box-shadow: 0 2px 8px rgba(154, 123, 58, 0.3);
}
.lwp-ib-icon i, .lwp-ib-icon svg { font-size: 16px; color: #fff; }
.lwp-ib-icon svg { width: 16px; height: 16px; fill: currentColor; }
.lwp-ib-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
	gap: 2px;
}
.lwp-ib-title {
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .02em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.lwp-ib-desc {
	font-size: 11px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

@media (max-width: 900px) {
	.lwp-ib-inner { grid-template-columns: repeat(2, 1fr); padding: 18px 20px; gap: 14px; }
	.lwp-ib-icon { width: 30px; height: 30px; font-size: 13px; }
	.lwp-ib-title { font-size: 12px; }
	.lwp-ib-desc { font-size: 10px; }
}

/* ─────────────────────────────────────────────────────────────────── */
/* Editorial Grid                                                      */
/* ─────────────────────────────────────────────────────────────────── */

.lwp-eg-section { padding: 96px 0; }
.lwp-eg-head {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 32px;
	margin-bottom: 48px;
	max-width: 1372px;
	margin-left: auto;
	margin-right: auto;
	/* No horizontal padding (1.10.15) — the 32px inset pushed the eyebrow +
	 * "From the Journal" heading 32px in from the cards below + every other
	 * section heading. Flush to the content edge so it lines up. */
	padding: 0;
}
.lwp-eg-eyebrow {
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--primary, #735c00);
	margin-bottom: 14px;
	display: inline-flex;
	align-items: center;
	gap: 14px;
}
.lwp-eg-heading {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: clamp(34px, 3.4vw, 48px);
	font-weight: 500;
	letter-spacing: -.02em;
	line-height: 1.05;
	margin: 0;
}
.lwp-eg-all {
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink, #1b1c1c);
	text-decoration: none;
	border-bottom: 1px solid var(--ink, #1b1c1c);
	padding-bottom: 4px;
	flex-shrink: 0;
}
.lwp-eg-all:hover { color: var(--primary, #735c00); border-color: var(--primary, #735c00); }

.lwp-eg-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 24px;
	max-width: 1372px;
	margin: 0 auto;
	padding: 0 32px;
}
.lwp-eg-card {
	background: var(--card, #fff);
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 6px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	transition: transform .35s, box-shadow .35s;
}
.lwp-eg-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 40px -22px rgba(115, 92, 0, .3);
}
.lwp-eg-img {
	aspect-ratio: 16 / 10;
	background: linear-gradient(135deg, #dfd2b3, #a08758);
	background-size: cover;
	background-position: center;
}
.lwp-eg-card--feat .lwp-eg-img { aspect-ratio: 5 / 4; }
.lwp-eg-meta {
	padding: 24px;
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.lwp-eg-cat {
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 10px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--primary, #735c00);
}
.lwp-eg-title {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 20px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: -.005em;
	margin: 0;
}
.lwp-eg-card--feat .lwp-eg-title { font-size: 28px; }
.lwp-eg-excerpt {
	font-size: 13.5px;
	color: var(--ink-soft, #4d4635);
	line-height: 1.55;
	margin: 0;
}
.lwp-eg-byline {
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 10px;
	letter-spacing: .12em;
	color: var(--muted, #7f7663);
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid var(--line-light, #f0ebe0);
	text-transform: uppercase;
}

@media (max-width: 1100px) {
	.lwp-eg-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px) {
	.lwp-eg-grid { grid-template-columns: 1fr; }
	.lwp-eg-head { flex-direction: column; align-items: flex-start; gap: 18px; }
}

/* ─── Generic archive Load More / Infinite Scroll (1.10.17) ──────────── */
/* Drives the Vendor, Event + blog/category archives via loadmore.js. Styles
 * live here (widgets.css is site-wide) so non-WooCommerce archives get them;
 * the WC shop carries a duplicate set in woo-overrides.css. */
.lwp-loadmore-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	padding: 28px 0 12px;
}
.lwp-loadmore-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 26px;
	background: var(--ink, #1b1c1c);
	color: #fff;
	border: 0;
	border-radius: 999px;
	font-family: var(--mono, ui-monospace, monospace);
	font-size: 12px;
	letter-spacing: .12em;
	text-transform: uppercase;
	font-weight: 600;
	cursor: pointer;
	transition: background .14s ease, transform .14s ease;
}
.lwp-loadmore-btn:hover { background: var(--primary, #735c00); }
.lwp-loadmore-btn:disabled { opacity: .55; cursor: progress; }
.lwp-loadmore-btn[hidden] { display: none; }
.lwp-loadmore-spinner {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px;
	background: var(--bg-alt, #f5f0e6);
	border: 1px solid var(--border, #e8dfc9);
	border-radius: 999px;
}
.lwp-loadmore-spinner[hidden] { display: none; }
.lwp-loadmore-spinner__ring {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 2px solid var(--border, #e8dfc9);
	border-top-color: var(--primary, #735c00);
	animation: lwp-loadmore-spin .9s linear infinite;
	display: inline-block;
}
.lwp-loadmore-status {
	font-family: var(--mono, ui-monospace, monospace);
	font-size: 11px;
	letter-spacing: .12em;
	color: var(--muted, #7f7663);
	min-height: 14px;
}
@keyframes lwp-loadmore-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
	.lwp-loadmore-spinner__ring { animation: none; }
}
/* While load-more is active, hide the native pagination. The links stay in the
 * DOM (display:none is still crawlable) so SEO/discovery is unaffected. */
.lwp-loadmore-active .lwp-jnl-pagination,
.lwp-loadmore-active nav.pagination,
.lwp-loadmore-active .lwp-people-archive__pagination,
.lwp-loadmore-active .woocommerce-pagination {
	display: none !important;
}

/* ─────────────────────────────────────────────────────────────────── */
/* Hero                                                                */
/* ─────────────────────────────────────────────────────────────────── */

.lwp-hero {
	position: relative;
}
.lwp-hero-inner {
	max-width: 1372px;
	margin: 0 auto;
	padding: 80px 32px 100px;
	display: grid;
	gap: 80px;
	align-items: center;
}

.lwp-hero--split .lwp-hero-inner {
	grid-template-columns: 1.05fr 1fr;
}
.lwp-hero--centered .lwp-hero-inner {
	grid-template-columns: 1fr;
	text-align: center;
	max-width: 880px;
}
.lwp-hero--centered .lwp-hero-text { max-width: 100%; }
.lwp-hero--centered .lwp-hero-cta { justify-content: center; }
.lwp-hero--centered .lwp-hero-stats { margin-left: auto; margin-right: auto; }

.lwp-hero--full-bleed {
	background-size: cover;
	background-position: center;
	color: #fff;
}
.lwp-hero--full-bleed::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(28, 22, 12, .45);
	pointer-events: none;
	z-index: 1;
}
.lwp-hero--full-bleed .lwp-hero-inner {
	position: relative;
	z-index: 2;
	grid-template-columns: 1fr;
	padding: 120px 32px 140px;
	max-width: 880px;
	text-align: center;
}
.lwp-hero--full-bleed .lwp-hero-h1,
.lwp-hero--full-bleed .lwp-hero-lead,
.lwp-hero--full-bleed .lwp-hero-eyebrow { color: #fff; }
.lwp-hero--full-bleed .lwp-hero-cta { justify-content: center; }

.lwp-hero-eyebrow {
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--primary, #735c00);
	font-weight: 500;
	margin-bottom: 24px;
	display: inline-flex;
	align-items: center;
	gap: 14px;
}
.lwp-hero-eyebrow::before {
	content: "";
	width: 36px;
	height: 1px;
	background: currentColor;
}
.lwp-hero-h1 {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-weight: 500;
	font-size: clamp(54px, 5.6vw, 82px);
	line-height: 1.02;
	letter-spacing: -.025em;
	margin: 0 0 28px;
	text-wrap: balance;
}
.lwp-hero-h1 em {
	font-style: italic;
	color: var(--primary, #735c00);
}
.lwp-hero-h1 .underline {
	position: relative;
	white-space: nowrap;
}
.lwp-hero-h1 .underline::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 6px;
	height: 8px;
	background: rgba(212, 175, 55, .35);
	z-index: -1;
}
.lwp-hero-lead {
	font-size: 17px;
	color: var(--ink-soft, #4d4635);
	max-width: 48ch;
	line-height: 1.6;
	margin: 0 0 36px;
	text-wrap: pretty;
}
.lwp-hero--centered .lwp-hero-lead { margin-left: auto; margin-right: auto; }

.lwp-hero-cta {
	display: flex;
	gap: 14px;
	align-items: center;
	margin-bottom: 48px;
	flex-wrap: wrap;
}
.lwp-hero-btn {
	font-family: var(--sans, 'Inter', sans-serif);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .02em;
	text-decoration: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	border: 0;
}
.lwp-hero-btn--primary {
	padding: 16px 28px;
	background: linear-gradient(135deg, var(--primary, #735c00), var(--primary-light, #D4AF37));
	color: #fff;
	border-radius: 8px;
	box-shadow: 0 10px 30px -10px rgba(115, 92, 0, .4);
}
.lwp-hero-btn--primary:hover { box-shadow: 0 12px 36px -8px rgba(115, 92, 0, .55); }
.lwp-hero-btn--secondary {
	padding: 16px 0 8px;
	background: transparent;
	color: inherit;
	font-weight: 500;
	border-bottom: 1px solid currentColor;
}
.lwp-hero-btn-arrow { font-size: 16px; }

.lwp-hero-visual {
	background: linear-gradient(135deg, #3d2f1f 0%, #6b4a2c 50%, #a87c4a 100%);
	background-size: cover;
	background-position: center;
	border-radius: 6px;
	height: 560px;
	position: relative;
}
.lwp-hero--centered .lwp-hero-visual {
	height: 480px;
	margin-top: 48px;
}

/* Master overlay — frosted card, bottom-left of the hero visual (split)
 * or the hero section itself (full-bleed). Avatar circle + name (Playfair)
 * + role (mono uppercase). */
.lwp-hero-master {
	position: absolute;
	left: 24px;
	bottom: 24px;
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	padding: 10px 18px 10px 10px;
	background: rgba(255, 255, 255, 0.86);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border: 1px solid rgba(232, 226, 211, 0.7);
	border-radius: 999px;
	box-shadow: 0 18px 36px -16px rgba(0, 0, 0, 0.35);
	max-width: calc(100% - 48px);
	z-index: 2;
}
.lwp-hero-master__avatar {
	width: 56px;
	height: 56px;
	border-radius: 999px;
	object-fit: cover;
	flex-shrink: 0;
	border: 2px solid var(--primary-light, #D4AF37);
}
.lwp-hero-master__meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.lwp-hero-master__name {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 17px;
	color: var(--ink, #1b1c1c);
	font-weight: 500;
	line-height: 1.2;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.lwp-hero-master__role {
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 10.5px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
}
.lwp-hero--full-bleed { position: relative; }
.lwp-hero--full-bleed > .lwp-hero-master {
	left: max(32px, calc((100vw - var(--content-w, 1372px)) / 2 + 32px));
	bottom: 32px;
}
@media (max-width: 680px) {
	.lwp-hero-master { left: 16px; bottom: 16px; padding: 8px 14px 8px 8px; gap: 10px; }
	.lwp-hero-master__avatar { width: 44px; height: 44px; border-width: 1.5px; }
	.lwp-hero-master__name { font-size: 15px; }
	.lwp-hero-master__role { font-size: 9.5px; letter-spacing: .1em; }
	.lwp-hero--full-bleed > .lwp-hero-master { left: 16px; bottom: 16px; }
}

.lwp-hero-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	border-top: 1px solid var(--line, #e8e2d3);
	padding-top: 28px;
	max-width: 480px;
}
.lwp-hero-stat-num {
	display: block;
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 32px;
	color: var(--primary, #735c00);
	font-weight: 500;
	line-height: 1;
}
.lwp-hero-stat-lbl {
	display: block;
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
	margin-top: 6px;
}

@media (max-width: 1100px) {
	.lwp-hero--split .lwp-hero-inner { grid-template-columns: 1fr; gap: 48px; }
	.lwp-hero-visual { height: 420px; }
}
@media (max-width: 680px) {
	.lwp-hero-inner { padding: 48px 20px 64px; }
	.lwp-hero--full-bleed .lwp-hero-inner { padding: 80px 20px 100px; }
	.lwp-hero-stats { grid-template-columns: 1fr 1fr; }
}

/* ─────────────────────────────────────────────────────────────────── */
/* Mega Menu                                                           */
/* ─────────────────────────────────────────────────────────────────── */

.lwp-mm { font-family: var(--sans, 'Inter', sans-serif); }
.lwp-mm-top {
	display: flex;
	gap: 28px;
	list-style: none;
	margin: 0;
	padding: 0;
	align-items: center;
}
.lwp-mm-top > li { position: relative; }
.lwp-mm-top > li > a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .01em;
	color: var(--ink, #1b1c1c);
	text-decoration: none;
	padding: 18px 0;
	transition: color .2s;
}
.lwp-mm-top > li > a:hover { color: var(--primary, #735c00); }
.lwp-mm-arrow {
	font-size: 11px;
	color: var(--muted, #7f7663);
	transform: rotate(90deg);
	display: inline-block;
	transition: transform .2s;
}
.lwp-mm-top > li.is-mega:hover .lwp-mm-arrow,
.lwp-mm-top > li.has-children:hover .lwp-mm-arrow { transform: rotate(270deg); }

/* Simple dropdown (1-3 items, no 3rd level) */
.lwp-mm-dropdown {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 240px;
	background: #fff;
	border: 1px solid var(--line, #e8e2d3);
	border-top: 0;
	box-shadow: 0 24px 48px -16px rgba(0, 0, 0, .18);
	padding: 14px 0;
	list-style: none;
	margin: 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity .22s ease, transform .22s ease, visibility .22s;
	z-index: 90;
}
.lwp-mm-top > li:hover > .lwp-mm-dropdown,
.lwp-mm-top > li:focus-within > .lwp-mm-dropdown {
	opacity: 1; visibility: visible; transform: translateY(0);
}
.lwp-mm-dropdown a {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	padding: 10px 18px;
	color: var(--ink, #1b1c1c);
	text-decoration: none;
	font-size: 14px;
}
.lwp-mm-dropdown a:hover { color: var(--primary, #735c00); background: var(--bg-alt, #f6f3f2); }
.lwp-mm-count {
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 11px;
	color: var(--muted, #7f7663);
}

/* Top-level count badge — DEPRECATED 1.6.4. Counts now render inside the
 * mega panel header (.lwp-mm-panel-head-count) for cleaner top-level
 * typography. Hidden defensively in case a stale render path still emits
 * the markup. */
.lwp-mm-top-count { display: none !important; }

/* Mega panel header (1.6.5 polish) — bigger visual presence so it reads
 * as a banner, not a thin strip. Houses the category title in serif
 * display, a strong accent-coloured count pill, and a "View all" CTA
 * with a hairline arrow. Anchors the dropdown to its archive
 * destination so the panel feels like a navigable place. */
.lwp-mm-panel-head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: -44px -52px 28px;
	padding: 22px 52px;
	border-bottom: 1px solid var(--line, #e8e2d3);
	background: linear-gradient(180deg, rgba(115, 92, 0, 0.06) 0%, rgba(115, 92, 0, 0) 100%), var(--bg-alt, #f6f3f2);
}
.lwp-mm-panel-head-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 28px;
	padding: 0 12px;
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	color: #fff;
	background: var(--primary, #735c00);
	border-radius: 999px;
	flex-shrink: 0;
	box-shadow: 0 2px 6px rgba(115, 92, 0, .25);
}
.lwp-mm-panel-head-link {
	display: inline-flex;
	align-items: baseline;
	gap: 16px;
	color: var(--ink, #1b1c1c);
	text-decoration: none;
	margin-left: 4px;
	flex: 1 1 auto;
	min-width: 0;
}
.lwp-mm-panel-head-title {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -.005em;
	line-height: 1.1;
	color: var(--ink, #1b1c1c);
	flex: 1 1 auto;
	min-width: 0;
}
.lwp-mm-panel-head-link em {
	font-style: normal;
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 10.5px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--primary, #735c00);
	transition: transform .18s ease, color .18s ease;
	flex-shrink: 0;
	white-space: nowrap;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
}
.lwp-mm-panel-head-link:hover .lwp-mm-panel-head-title { color: var(--primary, #735c00); }
.lwp-mm-panel-head-link:hover em { transform: translateX(4px); }

/* Column-head wrapper — flex layout so the count badge sits on the
 * right edge with its own column space, not jammed against the label.
 * Replaces the prior inline-span treatment that visually merged into
 * the heading on letter-spaced caps. */
.lwp-mm-col-head {
	display: flex !important;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	margin: 0 0 10px !important;
	padding-bottom: 8px !important;
	position: relative; /* anchor for the absolutely-positioned ::after arrow */
}
.lwp-mm-col-head + .lwp-mm-col-head { margin-top: 18px !important; }
.lwp-mm-col-head a {
	flex: 1 1 100%;
	width: 100%;
	min-width: 0;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
/* Push the count to the anchor's right edge regardless of label length,
 * so badges form a single vertical column down the panel.
 * `margin-left: auto` is the belt-and-braces fallback for browsers that
 * compute the space-between differently when the parent has a sibling
 * pseudo-element (the ::after hover arrow, see below). */
.lwp-mm-col-head a .lwp-mm-col-head-count {
	margin-left: auto;
}
.lwp-mm-col-head-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 1px 8px;
	min-width: 22px;
	height: 16px;
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--primary, #735c00);
	background: var(--bg-alt, #f6f3f2);
	border-radius: 999px;
	flex-shrink: 0;
}
.lwp-mm-col-head a:hover .lwp-mm-col-head-count {
	color: #fff;
	background: var(--primary, #735c00);
}
/* Header-only columns (no <ul> children) get a subtle "→" affordance
 * so they read as clickable destinations, not orphaned labels.
 *
 * Positioned absolutely so it does NOT consume flex space in the parent
 * — otherwise the count pill gets pushed left of the column right edge
 * (even at opacity:0 the arrow's box still occupied a slice of the
 * row, breaking vertical alignment of pills across rows).
 */
.lwp-mm-col-head:not(:has(+ ul))::after,
.lwp-mm-col-head:has(+ .lwp-mm-col-head)::after {
	content: '→';
	font-family: var(--mono, monospace);
	font-size: 11px;
	color: var(--muted, #8b7f6a);
	opacity: 0;
	transition: opacity .15s ease, transform .15s ease;
	position: absolute;
	right: -16px;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
}
.lwp-mm-col-head:not(:has(+ ul)):hover::after,
.lwp-mm-col-head:has(+ .lwp-mm-col-head):hover::after {
	opacity: 1;
	transform: translate(2px, -50%);
}

/* Full mega panel (4+ kids or 3rd-level present) */
.lwp-mm-panel {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translate(-50%, -6px);
	background: #fff;
	border-top: 1px solid var(--line, #e8e2d3);
	box-shadow: 0 24px 48px -16px rgba(0, 0, 0, .18);
	min-width: 1100px;
	max-width: min(calc(var(--content-w, 1372px) - 32px), 96vw);
	padding: 44px 52px 48px;
	opacity: 0;
	visibility: hidden;
	transition: opacity .22s ease, transform .22s ease, visibility .22s;
	z-index: 90;
}
.lwp-mm-top > li.is-mega:hover > .lwp-mm-panel,
.lwp-mm-top > li.is-mega:focus-within > .lwp-mm-panel {
	opacity: 1; visibility: visible; transform: translate(-50%, 0);
}
.lwp-mm-panel-cols {
	display: grid;
	gap: 36px;
	align-items: start;
}
.lwp-mm-col h5,
.lwp-mm-col-head {
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
	font-weight: 600;
	margin: 0 0 12px;
	border-bottom: 1px solid var(--line, #e8e2d3);
	padding-bottom: 10px;
}
.lwp-mm-col-head a {
	color: inherit;
	text-decoration: none;
}
.lwp-mm-col-head a:hover { color: var(--primary, #735c00); }
.lwp-mm-col ul {
	list-style: none;
	margin: 0 0 18px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.lwp-mm-col ul a {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	color: var(--ink, #1b1c1c);
	text-decoration: none;
	font-size: 14px;
	padding: 4px 0;
	transition: color .15s, transform .15s;
}
.lwp-mm-col ul a:hover { color: var(--primary, #735c00); transform: translateX(6px); }
.lwp-mm-col ul span {
	font-family: var(--mono, monospace);
	font-size: 11px;
	font-weight: 500;
	color: var(--primary, #735c00);
	background: var(--bg-alt, #f6f3f2);
	padding: 2px 8px;
	border-radius: 999px;
	letter-spacing: .04em;
	min-width: 24px;
	text-align: center;
	flex-shrink: 0;
}

/* Featured slot inside mega panel */
.lwp-mm-feat {
	width: 360px;
	border-radius: 10px;
	overflow: hidden;
	background: #faf6ee;
	border: 1px solid var(--line, #e8e2d3);
	text-decoration: none;
	color: inherit;
	transition: transform .25s, box-shadow .25s;
	display: flex;
	flex-direction: column;
}
.lwp-mm-feat:hover { transform: translateY(-3px); box-shadow: 0 12px 24px -10px rgba(0, 0, 0, .18); }
.lwp-mm-feat-img {
	height: 160px;
	background: linear-gradient(135deg, #d4b97a, #7a5a2c);
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: flex-end;
	padding: 14px;
}
.lwp-mm-feat-img span {
	font-family: var(--mono, monospace);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #fff;
	background: rgba(0, 0, 0, .3);
	padding: 4px 10px;
	border-radius: 20px;
	backdrop-filter: blur(4px);
}
.lwp-mm-feat-meta { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 6px; }
.lwp-mm-feat-title {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.2;
}
.lwp-mm-feat-link {
	font-size: 12px;
	color: var(--primary, #735c00);
	font-weight: 600;
}

.lwp-mm--placeholder {
	border: 2px dashed var(--line, #e8e2d3);
	padding: 32px;
	border-radius: 6px;
	text-align: center;
	color: var(--muted, #7f7663);
	font-style: italic;
	background: var(--bg-alt, #f6f3f2);
}

@media (max-width: 900px) {
	.lwp-mm-top { display: none; }
	/* Mobile drawer rendering handled by overlays.css/app.js */
}

/* ─────────────────────────────────────────────────────────────────── */
/* Megabar (sub-cat strip)                                             */
/* ─────────────────────────────────────────────────────────────────── */

.lwp-megabar {
	border-top: 1px solid var(--line, #e8e2d3);
	border-bottom: 1px solid var(--line, #e8e2d3);
	font-size: 13px;
}
.lwp-megabar-inner {
	max-width: var(--content-w, 1372px);
	margin: 0 auto;
	padding: 10px 32px;
	display: flex;
	gap: 16px;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
}
.lwp-megabar a {
	color: var(--ink-soft, #4d4635);
	text-decoration: none;
	letter-spacing: .02em;
	white-space: nowrap;
	transition: color .15s;
}
.lwp-megabar a:hover { color: var(--primary, #735c00); }
.lwp-megabar-sep { color: var(--line, #e8e2d3); font-weight: 300; }

.lwp-megabar--empty {
	padding: 14px;
	text-align: center;
	color: var(--muted, #7f7663);
	font-style: italic;
	font-size: 13px;
}

@media (max-width: 680px) {
	.lwp-megabar-inner { gap: 10px; padding: 8px 16px; font-size: 12px; }
}

/* ═════════════════════════════════════════════════════════════════════ */
/*  Product Grid widget (lwp-product-grid) base layout (1.10.5+)         */
/*                                                                       */
/*  The widget emits `<ul class="lwp-product-grid products columns-N     */
/*  …__list">`. Columns + gap are wired to Elementor per-instance        */
/*  controls, but `display:grid` itself was never set in ANY stylesheet  */
/*  — so when the per-instance Elementor CSS is stale or dropped from    */
/*  the LiteSpeed-combined sheet, the list falls back to WooCommerce's    */
/*  float layout while `li.lwp-pcard { margin:0 }` kills the float        */
/*  gutters → cards render edge-to-edge with zero spacing. These base     */
/*  rules make the grid self-sufficient. `display:grid` + the li reset    */
/*  carry `!important` to beat WC's `ul.products.columns-N li.product`    */
/*  float sizing (specificity 0,4,2); columns/gap stay LOW specificity    */
/*  so the Elementor controls (0,2,0) still override per instance.        */
/* ═════════════════════════════════════════════════════════════════════ */
html body ul.products.lwp-product-grid__list {
	display: grid !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 100%;
}
html body ul.products.lwp-product-grid__list > li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
}
html body ul.products.lwp-product-grid__list::before,
html body ul.products.lwp-product-grid__list::after {
	content: none !important;
	display: none !important;
}
/* Low-specificity defaults — Elementor's columns/gap controls override. */
.lwp-product-grid__list {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}
.lwp-product-grid__heading {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 28px;
	font-weight: 500;
	color: var(--ink, #1b1c1c);
	margin: 0 0 24px;
}
@media (max-width: 1024px) {
	.lwp-product-grid__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
}
@media (max-width: 680px) {
	.lwp-product-grid__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
}

/* Content-width parity (1.10.14) — the product-grid wrapper otherwise renders
 * ~34px wider than the 1372px content width on each side, so its cards break
 * alignment with every other lwp widget (section heads, category/master grids,
 * hero, story split). Box it to the content width, centered, like the rest. */
.lwp-product-grid {
	max-width: var(--content-w, 1372px);
	margin-left: auto;
	margin-right: auto;
}

/* ═════════════════════════════════════════════════════════════════════ */
/*  Reference-faithful WooCommerce components (1.1.0)                    */
/*  Tapadum Gold Claude Design — content-product / cart / dashboard /    */
/*  orders / login. All classes prefixed `.lwp-` to avoid clobbering     */
/*  third-party plugin styles.                                            */
/* ═════════════════════════════════════════════════════════════════════ */

/* ─── Product card (used by woocommerce/content-product.php) ─────────── */

li.lwp-pcard {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	background: transparent !important;
	display: flex !important;
	flex-direction: column !important;
	min-width: 0;
}
.lwp-pcard-link {
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	gap: 14px;
	min-width: 0;
}
.lwp-pcard-img {
	aspect-ratio: 1 / 1;
	border-radius: 6px;
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, #f0e6d0, #d4c19a);
	transition: transform .35s cubic-bezier(.23, 1, .32, 1);
	min-width: 0;
}
.lwp-pcard:hover .lwp-pcard-img { transform: translateY(-4px); }
.lwp-pcard-img .lwp-pcard-thumb,
.lwp-pcard-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	min-width: 0;
}
.lwp-pcard-badge {
	position: absolute;
	top: 14px;
	left: 14px;
	background: var(--sale, #a33b3e);
	color: #fff;
	font-family: var(--mono, monospace);
	font-size: 10px;
	letter-spacing: .14em;
	padding: 5px 9px;
	border-radius: 3px;
	z-index: 2;
}
.lwp-pcard-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.lwp-pcard-cat {
	font-family: var(--mono, monospace);
	font-size: 10px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
}
.lwp-pcard-title {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-weight: 500;
	font-size: 18px;
	letter-spacing: -.01em;
	line-height: 1.25;
	color: var(--ink, #1b1c1c);
	margin: 0;
}
.lwp-pcard-maker {
	font-size: 12px;
	color: var(--ink-soft, #4d4635);
	font-style: italic;
}
.lwp-pcard-price {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin-top: 6px;
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 20px;
	color: var(--primary, #735c00);
	font-weight: 500;
}
.lwp-pcard-price del {
	font-size: 13px;
	color: var(--muted, #7f7663);
	text-decoration: line-through;
	font-family: var(--sans, 'Inter', sans-serif);
	font-weight: 400;
}
.lwp-pcard-price ins {
	background: transparent;
	text-decoration: none;
	color: var(--primary, #735c00);
	font-weight: 500;
}

/* Card text gutter (1.10.7+) — inset the title + price 16px so they line up
 * with the bottom add-to-cart pill (which sits 16px in via its own margin),
 * instead of hugging the card's left edge. The media/image stays full-bleed.
 * Archive cards wrap their text in `.lwp-pcard-meta`; the lwp-product-grid
 * widget puts the title/price DIRECTLY under `.lwp-pcard-link` — pad whichever
 * applies (the `>` direct-child guard stops the archive double-padding). */
.lwp-pcard-meta,
.lwp-pcard-link > .lwp-pcard-title,
.lwp-pcard-link > .lwp-pcard-price {
	padding-left: 16px;
	padding-right: 16px;
}

/* ─── Loop card ATC button (1.7.11+) ─────────────────────────────────────
 *
 * Full-width pill anchored at the bottom of the card via flex flow.
 * Plain WC outputs `<a class="button add_to_cart_button">Add to cart</a>`
 * (in-stock simple/variable/grouped/external) or `<a class="button
 * product_type_*">Read more</a>` (out-of-stock / non-purchasable) as a
 * sibling of `.lwp-pcard-link` inside `li.product`. Since `li.product`
 * is `display: flex; flex-direction: column` and the inner link is
 * `flex: 1 1 auto`, the button auto-aligns to the card bottom.
 *
 * Combined with `ul.products` being `display: grid` (stretch default),
 * buttons form a horizontal baseline across cards in the same row even
 * when titles wrap to 1 vs 2 vs 3 lines.
 *
 * Specificity: `html body.woocommerce.woocommerce-page ul.products
 * li.product > a.button.add_to_cart_button` = (0,6,5). Beats plausible
 * host overrides (~0,5,4) without needing the `.lwp-pcard` chain — so
 * Elementor's WC Products widget + WC's related-products render get
 * the same treatment as the archive grid.
 */

html body.woocommerce.woocommerce-page ul.products li.product,
html body.woocommerce ul.products li.product {
	position: relative !important;
	height: 100% !important;
}
html body.woocommerce.woocommerce-page ul.products li.product > a.lwp-pcard-link,
html body.woocommerce ul.products li.product > a.lwp-pcard-link {
	flex: 1 1 auto !important;
}

/* Pill button — full-width minus 16px gutter, sits at card bottom.
 * Covers `.add_to_cart_button` (simple/variable/grouped/external)
 * plus generic `.button` (Read more for out-of-stock). The
 * `:not(.lwp-pcard-link)` guard excludes the card's own inner link. */
html body.woocommerce.woocommerce-page ul.products li.product > a.button.add_to_cart_button,
html body.woocommerce.woocommerce-page ul.products li.product > a.button.product_type_simple,
html body.woocommerce.woocommerce-page ul.products li.product > a.button.product_type_variable,
html body.woocommerce.woocommerce-page ul.products li.product > a.button.product_type_grouped,
html body.woocommerce.woocommerce-page ul.products li.product > a.button.product_type_external,
html body.woocommerce.woocommerce-page ul.products li.product > a.button:not(.lwp-pcard-link),
html body.woocommerce ul.products li.product > a.button.add_to_cart_button,
html body.woocommerce ul.products li.product > a.button:not(.lwp-pcard-link) {
	position: static !important;
	display: block !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 14px 16px 16px !important;
	padding: 13px 18px !important;
	background: var(--ink, #1b1c1c) !important;
	background-color: var(--ink, #1b1c1c) !important;
	background-image: none !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 8px !important;
	font-family: var(--mono, 'JetBrains Mono', monospace) !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: .14em !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: uppercase !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	box-shadow: 0 2px 8px -3px rgba(0, 0, 0, .25) !important;
	cursor: pointer !important;
	transition: background 180ms ease, transform 180ms ease, box-shadow 180ms ease !important;
	float: none !important;
	box-sizing: border-box !important;
	align-self: auto !important;
}
html body.woocommerce.woocommerce-page ul.products li.product > a.button:hover,
html body.woocommerce ul.products li.product > a.button:hover {
	background: var(--primary, #735c00) !important;
	background-color: var(--primary, #735c00) !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 6px 16px -4px rgba(115, 92, 0, .35) !important;
}
/* Loading state during AJAX. */
html body.woocommerce.woocommerce-page ul.products li.product > a.add_to_cart_button.loading {
	opacity: .55 !important;
	pointer-events: none !important;
}
/* Added confirmation — gold lock, label flips to "Added ✓" via WC's
 * own class swap on `a.added_to_cart` (handled below). */
html body.woocommerce.woocommerce-page ul.products li.product > a.add_to_cart_button.added,
html body.woocommerce ul.products li.product > a.add_to_cart_button.added {
	background: var(--primary, #735c00) !important;
	background-color: var(--primary, #735c00) !important;
}

/* ─── Body-agnostic CTA tier (1.7.34+) ───────────────────────────────────
 * The two rule tiers above both require `body.woocommerce` (or its
 * `.woocommerce-page` companion), which WP only adds on native WC
 * templates. The HOMEPAGE — built in Elementor with the WC Products
 * widget — has neither class on the body, so those rules silently
 * miss and the ATC pill falls back to washed-gray Elementor styling
 * AND the li.product flex-column structure (which pushes the button
 * to the card bottom via lwp-pcard-link absorbing vertical space) is
 * also lost — so buttons land at random Y positions depending on how
 * many lines the title or price block consumes.
 *
 * This tier anchors on `li.product.lwp-pcard` (a class the theme
 * stamps on every product card regardless of where it's rendered) so
 * Elementor-hosted product grids — homepage, page-builder landing
 * pages, search-result widgets — inherit the same bold-black brand pill
 * AND bottom-aligned anchor as the shop archive. Specificity (0,4,4)
 * beats Elementor's per-widget button overrides. */
html body ul.products li.product.lwp-pcard {
	display: flex !important;
	flex-direction: column !important;
	height: 100% !important;
	position: relative !important;
}
html body ul.products li.product.lwp-pcard > a.lwp-pcard-link {
	flex: 1 1 auto !important;
}
html body ul.products li.product.lwp-pcard > a.button.add_to_cart_button,
html body ul.products li.product.lwp-pcard > a.button.product_type_simple,
html body ul.products li.product.lwp-pcard > a.button.product_type_variable,
html body ul.products li.product.lwp-pcard > a.button.product_type_grouped,
html body ul.products li.product.lwp-pcard > a.button.product_type_external,
html body ul.products li.product.lwp-pcard > a.button:not(.lwp-pcard-link) {
	position: static !important;
	display: block !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 14px 16px 16px !important;
	padding: 13px 18px !important;
	background: var(--ink, #1b1c1c) !important;
	background-color: var(--ink, #1b1c1c) !important;
	background-image: none !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 8px !important;
	font-family: var(--mono, 'JetBrains Mono', monospace) !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: .14em !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: uppercase !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	box-shadow: 0 2px 8px -3px rgba(0, 0, 0, .25) !important;
	cursor: pointer !important;
	transition: background 180ms ease, transform 180ms ease, box-shadow 180ms ease !important;
	float: none !important;
	box-sizing: border-box !important;
	align-self: auto !important;
}
html body ul.products li.product.lwp-pcard > a.button.add_to_cart_button:hover,
html body ul.products li.product.lwp-pcard > a.button:not(.lwp-pcard-link):hover {
	background: var(--primary, #735c00) !important;
	background-color: var(--primary, #735c00) !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 6px 16px -4px rgba(115, 92, 0, .35) !important;
}
html body ul.products li.product.lwp-pcard > a.add_to_cart_button.loading {
	opacity: .55 !important;
	pointer-events: none !important;
}
html body ul.products li.product.lwp-pcard > a.add_to_cart_button.added {
	background: var(--primary, #735c00) !important;
	background-color: var(--primary, #735c00) !important;
}

/* "View cart" link WC appends after a successful add — redundant with
 * the floating cart drawer trigger in the header. Hide it. */
html body.woocommerce.woocommerce-page ul.products li.product a.added_to_cart,
html body.woocommerce ul.products li.product a.added_to_cart {
	display: none !important;
}

/* ─── Status pills (orders table, dashboard, view-order) ─────────────── */

.lwp-pill {
	display: inline-block;
	font-family: var(--mono, monospace);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	padding: 4px 9px;
	border-radius: 3px;
	font-weight: 500;
	background: var(--bg-alt, #f6f3f2);
	color: var(--ink, #1b1c1c);
}
.lwp-pill--delivered  { background: #e8f3e3; color: #2a5a1f; }
.lwp-pill--shipped    { background: #e3eef7; color: #1f4a6b; }
.lwp-pill--processing { background: #f7eedb; color: #7a5a1a; }
.lwp-pill--cancelled  { background: #f3e3e3; color: #7a1f1f; }

.lwp-row-act {
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ink, #1b1c1c);
	text-decoration: none;
	border-bottom: 1px solid var(--ink, #1b1c1c);
	padding-bottom: 2px;
}
.lwp-row-act:hover {
	color: var(--primary, #735c00);
	border-bottom-color: var(--primary, #735c00);
}

/* ─── Account stat cards (dashboard) ─────────────────────────────────── */

.lwp-acct-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin-bottom: 24px;
}
.lwp-acct-stat {
	background: #fff;
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 8px;
	padding: 22px;
	min-width: 0;
}
.lwp-acct-stat .n {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 32px;
	color: var(--primary, #735c00);
	font-weight: 500;
	line-height: 1;
}
/* `wc_price()` wraps in `.woocommerce-Price-amount > bdi > symbol`. Force
 * those to inherit the serif size so lifetime spend reads like the other
 * stat numbers. */
.lwp-acct-stat .n .woocommerce-Price-amount,
.lwp-acct-stat .n bdi { font: inherit; color: inherit; }
.lwp-acct-stat .l {
	font-family: var(--mono, monospace);
	font-size: 10.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
	margin-top: 8px;
}
.lwp-acct-card h3 {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 22px;
	font-weight: 500;
	margin-bottom: 18px;
	letter-spacing: -.01em;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 14px;
}
.lwp-acct-card h3 a {
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink, #1b1c1c);
	text-decoration: none;
	border-bottom: 1px solid var(--ink, #1b1c1c);
	padding-bottom: 3px;
	font-weight: 400;
}
.lwp-acct-card h3 a:hover {
	color: var(--primary, #735c00);
	border-bottom-color: var(--primary, #735c00);
}
.lwp-acct-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}
.lwp-acct-table th {
	text-align: left;
	font-family: var(--mono, monospace);
	font-size: 10.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
	padding: 10px 12px;
	border-bottom: 1px solid var(--line, #e8e2d3);
	font-weight: 500;
}
.lwp-acct-table td {
	padding: 16px 12px;
	border-bottom: 1px solid var(--line-light, #f0ebe0);
	color: var(--ink-soft, #4d4635);
	vertical-align: middle;
}
.lwp-acct-table tr:last-child td { border-bottom: none; }
.lwp-ord-id {
	font-family: var(--mono, monospace);
	color: var(--ink, #1b1c1c);
	font-weight: 500;
}
.lwp-ord-prod { color: var(--ink, #1b1c1c); font-weight: 500; }
.lwp-ord-prod small {
	display: block;
	font-weight: 400;
	color: var(--muted, #7f7663);
	font-size: 12.5px;
	margin-top: 2px;
}
.lwp-acct-sub {
	color: var(--ink-soft, #4d4635);
	font-size: 14.5px;
	margin-bottom: 32px;
	max-width: 60ch;
}
.lwp-addr-display {
	color: var(--ink-soft, #4d4635);
	font-size: 14.5px;
	line-height: 1.65;
}
.lwp-addr-display strong {
	color: var(--ink, #1b1c1c);
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 18px;
	font-weight: 500;
	letter-spacing: -.01em;
}

@media (max-width: 1024px) {
	.lwp-acct-stats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.lwp-acct-stats { grid-template-columns: 1fr; }
	.lwp-acct-table thead { display: none; }
	.lwp-acct-table tr { display: block; border-bottom: 1px solid var(--line, #e8e2d3); padding: 14px 0; }
	.lwp-acct-table td { display: flex; justify-content: space-between; border: none; padding: 6px 0; }
}

/* ─── Cart layout ────────────────────────────────────────────────────── */

/* Wrap the whole cart form so its grid never escapes the brand content
 * width when the cart page is rendered inside an Elementor container
 * (or any other parent) that exposes a wider max-width. Without this
 * cap, `1fr + 380px` could push the right column off-screen when the
 * Elementor wrapper grew to a custom width via container settings. */
.lwp-cart-form {
	max-width: var(--content-w, 1372px);
	margin-left: auto;
	margin-right: auto;
	width: 100%;
	box-sizing: border-box;
	padding-left: 16px;
	padding-right: 16px;
}

.lwp-cart-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 480px;
	gap: 40px;
	margin-top: 32px;
	align-items: start;
	max-width: 100%;
}

/* Sticky cart bar is mobile-only — hide by default; mobile @media inside
 * woo-overrides.css turns it into a fixed bottom bar at ≤767px. Without
 * this default the element renders inline as a block between the cart
 * form and footer on desktop, leaking the red mobile checkout button
 * into the desktop layout. */
.lwp-sticky-cart-bar { display: none; }
@media (max-width: 767px) {
	.lwp-sticky-cart-bar { display: grid; }
}
.lwp-cart-list {
	background: #fff;
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 8px;
	overflow: hidden;
}
.lwp-cart-row {
	display: grid;
	grid-template-columns: 90px 1fr auto auto auto auto;
	gap: 20px;
	align-items: center;
	padding: 20px 24px;
	border-bottom: 1px solid var(--line-light, #f0ebe0);
}
.lwp-cart-row:last-of-type { border-bottom: none; }
.lwp-cart-row__thumb img {
	aspect-ratio: 1 / 1;
	width: 90px;
	height: 90px;
	border-radius: 4px;
	object-fit: cover;
}
.lwp-cart-row__name {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 17px;
	font-weight: 500;
	letter-spacing: -.01em;
	color: var(--ink, #1b1c1c);
	min-width: 0;
}
.lwp-cart-row__name a { color: inherit; text-decoration: none; }
.lwp-cart-row__name small {
	display: block;
	font-family: var(--mono, monospace);
	font-weight: 400;
	font-size: 10.5px;
	color: var(--muted, #7f7663);
	letter-spacing: .12em;
	margin-top: 4px;
	text-transform: uppercase;
}
.lwp-cart-row__price {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 18px;
	color: var(--ink, #1b1c1c);
	min-width: 80px;
	text-align: right;
}
.lwp-cart-row__qty .quantity {
	display: flex;
	align-items: center;
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 6px;
	overflow: hidden;
}
.lwp-cart-row__qty input.qty {
	width: 56px;
	height: 38px;
	border: 0;
	background: #fff;
	text-align: center;
	font-family: var(--sans, 'Inter', sans-serif);
	font-weight: 600;
}
.lwp-cart-row__total {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 20px;
	color: var(--primary, #735c00);
	font-weight: 500;
	min-width: 90px;
	text-align: right;
}
.lwp-cart-rm {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border: 0;
	background: none;
	color: var(--muted, #7f7663);
	cursor: pointer;
	font-size: 22px;
	line-height: 1;
	text-decoration: none;
	border-radius: 50%;
	transition: background .15s, color .15s;
}
.lwp-cart-rm:hover { color: var(--sale, #a33b3e); background: var(--bg-alt, #f6f3f2); }

.lwp-cart-actions {
	display: flex;
	gap: 12px;
	padding: 18px 24px;
	border-top: 1px solid var(--line-light, #f0ebe0);
	flex-wrap: wrap;
	align-items: center;
}
.lwp-cart-coupon {
	display: flex;
	gap: 8px;
	flex: 1;
	min-width: 280px;
}
.lwp-cart-coupon input {
	flex: 1;
	padding: 10px 12px;
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 6px;
	font-family: var(--sans, 'Inter', sans-serif);
	font-size: 13px;
}

.lwp-btn-primary,
.lwp-btn-secondary {
	font-family: var(--sans, 'Inter', sans-serif);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .04em;
	border-radius: 8px;
	padding: 12px 20px;
	cursor: pointer;
	border: 0;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	transition: transform .2s, box-shadow .2s, background .2s;
}
.lwp-btn-primary {
	background: linear-gradient(135deg, var(--primary, #735c00), var(--primary-light, #D4AF37));
	color: #fff;
	box-shadow: 0 10px 30px -10px rgba(115, 92, 0, .4);
}
.lwp-btn-primary:hover {
	transform: translateY(-1px);
	box-shadow: 0 12px 36px -8px rgba(115, 92, 0, .55);
	color: #fff;
}
.lwp-btn-secondary {
	background: transparent;
	color: var(--ink, #1b1c1c);
	border: 1px solid var(--line, #e8e2d3);
}
.lwp-btn-secondary:hover { border-color: var(--primary, #735c00); color: var(--primary, #735c00); }

.lwp-cart-summary,
.cart-collaterals {
	background: #fff;
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 8px;
	padding: 28px;
	position: sticky;
	top: 120px;
}
/* WC ships `.cart-collaterals { width: 48%; float: right }` by default — that
 * pushes the totals card into the right half of our `.lwp-cart-summary`
 * aside, leaving the left half empty. Force full width + no float so the
 * card fills the grid column edge to edge on desktop. Mobile already gets
 * the same override at the @media (max-width: 1024px) block below. */
.lwp-cart-summary .cart-collaterals,
.lwp-cart-grid .cart-collaterals,
.woocommerce-cart .cart-collaterals {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	margin: 0 !important;
}
.cart-collaterals h2 {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 22px;
	font-weight: 500;
	letter-spacing: -.01em;
	margin: 0 0 18px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--line, #e8e2d3);
}
.cart-collaterals .shop_table_responsive,
.cart-collaterals .shop_table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}
.cart-collaterals .shop_table th,
.cart-collaterals .shop_table td {
	padding: 8px 0 !important;
	background: transparent !important;
	border: 0 !important;
	color: var(--ink-soft, #4d4635);
	text-align: right;
}
.cart-collaterals .shop_table th {
	text-align: left;
	color: var(--ink-soft, #4d4635);
	font-weight: 400;
	font-family: var(--sans, 'Inter', sans-serif);
}
.cart-collaterals .shop_table tr.order-total td,
.cart-collaterals .shop_table tr.order-total th {
	border-top: 1px solid var(--line, #e8e2d3) !important;
	padding-top: 18px !important;
	margin-top: 14px;
	font-size: 16px;
	white-space: nowrap;
}
.cart-collaterals .shop_table tr.order-total .amount,
.cart-collaterals .shop_table tr.order-total bdi {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 22px;
	color: var(--primary, #735c00);
	font-weight: 500;
	white-space: nowrap;
}
.cart-collaterals .shop_table tr.order-total .amount .woocommerce-Price-currencySymbol {
	margin-right: 1px;
}
.cart-collaterals .wc-proceed-to-checkout { padding: 0 !important; margin-top: 18px; }

/* Cart totals tightening — WC ships a shipping destination + calculator block
 * inside `.cart_totals` that, when empty or partially-filled, leaves a large
 * vertical gap between the "Cart totals" heading and the first row. Force
 * inline + compact layout for shipping rows and hide the empty cross-sells
 * placeholder that WC keeps in the DOM. */
.cart-collaterals .woocommerce-shipping-destination,
.cart-collaterals .woocommerce-shipping-totals,
.cart-collaterals .shipping-calculator-button,
.cart-collaterals .shipping {
	font-size: 13px !important;
	line-height: 1.45 !important;
	margin: 0 !important;
	padding: 8px 0 !important;
}
.cart-collaterals .woocommerce-shipping-destination strong { font-weight: 500; }
.cart-collaterals .woocommerce-shipping-calculator { margin-top: 6px !important; padding: 0 !important; }
.cart-collaterals .shipping-calculator-button {
	display: inline-block;
	color: var(--primary, #735c00);
	text-decoration: underline;
	text-underline-offset: 2px;
}
/* Hide WC cross-sells slot when it's empty — saves the 60-120px gap between
 * the totals table and the checkout button. WC keeps a `<div class="cross-sells">`
 * placeholder even when no related products are configured. */
.cart-collaterals .cross-sells:empty,
.cart-collaterals .woocommerce-additional-fields:empty { display: none !important; }
/* Tighten the form-level wrapper that WC adds for the coupon + update-cart
 * row when shipping calculator is collapsed. */
.cart-collaterals form.woocommerce-shipping-calculator { margin: 6px 0 0 !important; }
.cart-collaterals .checkout-button {
	width: 100% !important;
	background: linear-gradient(135deg, var(--primary, #735c00), var(--primary-light, #D4AF37)) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 8px !important;
	padding: 16px 28px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	font-family: var(--sans, 'Inter', sans-serif) !important;
	box-shadow: 0 10px 30px -10px rgba(115, 92, 0, .4);
}
.cart-collaterals .checkout-button:hover {
	box-shadow: 0 12px 36px -8px rgba(115, 92, 0, .55) !important;
	transform: translateY(-1px) !important;
	color: #fff !important;
}

/* Higher-specificity guardrails — WooCommerce ships `button.alt` with a
 * theme-accent red on some installs, and WooPayments injects its own
 * red Express Checkout button. Lock the proceed button to the brand
 * gold gradient regardless of which classes the merchant plugins add. */
body.woocommerce .cart-collaterals a.checkout-button,
body.woocommerce-cart .cart-collaterals a.checkout-button,
body.woocommerce-cart .cart-collaterals .button.alt,
body.woocommerce-cart .cart-collaterals .button.alt.wc-forward,
body.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout > .button {
	background: linear-gradient(135deg, var(--primary, #735c00), var(--primary-light, #D4AF37)) !important;
	color: #fff !important;
	border: 0 !important;
	box-shadow: 0 10px 30px -10px rgba(115, 92, 0, .4) !important;
}

/* Cart-totals: anchor color brand-aligned. WP/WC default link blue
 * clashes with the warm gold + cream palette. */
.cart-collaterals a,
.cart-collaterals a:visited,
.lwp-cart-summary a,
.lwp-cart-summary a:visited {
	color: var(--primary, #735c00);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}
.cart-collaterals a:hover,
.lwp-cart-summary a:hover {
	color: var(--primary-dark, #5a4700);
}
/* Express-checkout buttons (WooPayments / PayPal SDK / Apple Pay /
 * Google Pay) enforce their own brand colors and clash with the warm
 * palette inside the cart sidebar. Hide them in the cart totals card;
 * shoppers still see them on the checkout page itself where mixed
 * payment-method branding is accepted UX. */
.cart-collaterals .wc-payments-payment-request-wrapper,
.cart-collaterals .wcpay-payment-request-button-separator,
.cart-collaterals .wc-payments-payment-request-button-separator,
.cart-collaterals #wc-payments-express-checkout-element,
.cart-collaterals .wcpay-express-checkout-wrapper,
.cart-collaterals .paypal-buttons,
.cart-collaterals .wc-stripe-payment-request-button-separator,
.cart-collaterals .applepay-button,
.cart-collaterals .gpay-button {
	display: none !important;
}

@media (max-width: 1024px) {
	.lwp-cart-grid { grid-template-columns: 1fr; gap: 28px; }
	.lwp-cart-summary,
	.cart-collaterals { position: static; }
}
@media (max-width: 680px) {
	.lwp-cart-row {
		grid-template-columns: 60px 1fr;
		gap: 14px;
	}
	.lwp-cart-row__price,
	.lwp-cart-row__qty,
	.lwp-cart-row__total,
	.lwp-cart-row__remove {
		grid-column: 2;
		justify-self: start;
		text-align: left;
		min-width: auto;
	}
	.lwp-cart-row__thumb img { width: 60px; height: 60px; }
}

/* ─── Auth (login + register on /my-account/) ────────────────────────── */

.lwp-auth-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
	margin-top: 32px;
	max-width: 1100px;
}
.lwp-auth-grid--single { grid-template-columns: 1fr; max-width: 540px; }
.lwp-auth-card {
	background: #fff;
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 8px;
	padding: 36px;
}
.lwp-auth-card h2 {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 30px;
	font-weight: 500;
	margin: 0 0 8px;
	letter-spacing: -.015em;
}
.lwp-auth-card .sub {
	color: var(--ink-soft, #4d4635);
	font-size: 14px;
	margin-bottom: 24px;
}
.lwp-auth-card .alt {
	margin-top: 18px;
	font-size: 13px;
	color: var(--ink-soft, #4d4635);
}
.lwp-auth-card .alt a { color: var(--primary, #735c00); text-decoration: underline; }

.lwp-form-label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
	margin-bottom: 14px;
}
.lwp-form-label input,
.lwp-auth-card input[type="text"],
.lwp-auth-card input[type="email"],
.lwp-auth-card input[type="password"] {
	padding: 12px 14px;
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 6px;
	font-size: 14px;
	font-family: var(--sans, 'Inter', sans-serif);
	color: var(--ink, #1b1c1c);
	background: #fff;
	text-transform: none;
	letter-spacing: 0;
}
.lwp-form-label input:focus,
.lwp-auth-card input:focus { outline: none; border-color: var(--primary, #735c00); }
.lwp-form-actions {
	display: flex;
	gap: 14px;
	margin-top: 8px;
	align-items: center;
	flex-wrap: wrap;
}
.lwp-remember {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--sans, 'Inter', sans-serif);
	font-size: 13px;
	color: var(--ink-soft, #4d4635);
	text-transform: none;
	letter-spacing: 0;
}

@media (max-width: 800px) {
	.lwp-auth-grid { grid-template-columns: 1fr; gap: 28px; }
}

/* ═════════════════════════════════════════════════════════════════════ */
/*  1.1.1 — Checkout / Thank-you / Tracking / Account suite               */
/* ═════════════════════════════════════════════════════════════════════ */

/* ─── Checkout (form-checkout) ───────────────────────────────────────── */

.lwp-co-grid {
	display: grid;
	grid-template-columns: 1fr 420px;
	gap: 48px;
	margin-top: 32px;
	align-items: start;
}
.lwp-co-main { display: flex; flex-direction: column; gap: 20px; min-width: 0; }

.lwp-co-step {
	background: #fff;
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 8px;
	padding: 32px;
}
.lwp-co-step h3 {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 22px;
	font-weight: 500;
	letter-spacing: -.01em;
	margin: 0 0 6px;
	display: flex;
	align-items: center;
	gap: 14px;
}
.lwp-co-stnum {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--primary, #735c00);
	color: #fff;
	font-family: var(--mono, monospace);
	font-size: 13px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	flex-shrink: 0;
}
.lwp-co-stsub {
	color: var(--muted, #7f7663);
	font-size: 13px;
	margin: 0 0 22px 44px;
	line-height: 1.5;
}
.lwp-co-stsub a { color: var(--primary, #735c00); }

/* WC's billing/shipping fields output `.form-row` with labels — restyle
 * to match form-grid pattern. WC variations (form-row-first, form-row-
 * last) become 50%-width columns in a CSS grid. */
.lwp-co-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.lwp-co-fields .form-row { margin: 0; }
.lwp-co-fields .form-row.form-row-wide,
.lwp-co-fields .form-row.notes,
.lwp-co-fields .form-row.address-field,
.lwp-co-fields .form-row[id*="_country_field"],
.lwp-co-fields .form-row[id*="_address_1_field"],
.lwp-co-fields .form-row[id*="_address_2_field"],
.lwp-co-fields .form-row[id*="_company_field"] { grid-column: span 2; }
.lwp-co-fields .form-row label {
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
	display: block;
	margin-bottom: 6px;
}
.lwp-co-fields .form-row .required { color: var(--sale, #a33b3e); border: 0; }
.lwp-co-fields .form-row input.input-text,
.lwp-co-fields .form-row textarea,
.lwp-co-fields .form-row select,
.lwp-co-fields .select2-container .select2-selection,
.lwp-co-fields .woocommerce-input-wrapper input.input-text {
	width: 100% !important;
	padding: 12px 14px !important;
	border: 1px solid var(--line, #e8e2d3) !important;
	border-radius: 6px !important;
	font-size: 14px !important;
	font-family: var(--sans, 'Inter', sans-serif) !important;
	color: var(--ink, #1b1c1c) !important;
	background: #fff !important;
	letter-spacing: 0;
	height: auto !important;
	line-height: 1.4 !important;
	box-sizing: border-box !important;
}
.lwp-co-fields .form-row input.input-text:focus,
.lwp-co-fields .form-row textarea:focus,
.lwp-co-fields .form-row select:focus { outline: none; border-color: var(--primary, #735c00) !important; }
.lwp-co-fields .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 22px; padding-left: 0; }
.lwp-co-fields .select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; right: 12px; }

/* Payment + place-order — WC outputs `.woocommerce-checkout-payment` */
.woocommerce-checkout-payment {
	background: transparent !important;
	border-radius: 0 !important;
	padding: 0 !important;
}
.woocommerce-checkout-payment ul.payment_methods {
	display: flex !important;
	flex-direction: column;
	gap: 10px;
	border: 0 !important;
	padding: 0 !important;
	margin: 0 0 18px !important;
	list-style: none;
}
.woocommerce-checkout-payment ul.payment_methods li {
	background: #fff;
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 6px;
	padding: 14px 16px !important;
	margin: 0;
	font-size: 14px;
	transition: border-color .15s, background .15s;
}
.woocommerce-checkout-payment ul.payment_methods li.payment_method_active,
.woocommerce-checkout-payment ul.payment_methods li:has(input[type="radio"]:checked) {
	border-color: var(--primary, #735c00);
	background: #fdfaef;
}
.woocommerce-checkout-payment ul.payment_methods label {
	font-family: var(--sans, 'Inter', sans-serif);
	font-weight: 500;
	color: var(--ink, #1b1c1c);
	display: inline-flex;
	align-items: center;
	gap: 14px;
	cursor: pointer;
}
.woocommerce-checkout-payment ul.payment_methods input[type="radio"] {
	accent-color: var(--primary, #735c00);
	width: 18px;
	height: 18px;
}
.woocommerce-checkout-payment .payment_box {
	background: var(--bg-alt, #f6f3f2) !important;
	margin-top: 12px !important;
	padding: 14px 16px !important;
	border-radius: 6px !important;
	font-size: 13px;
	color: var(--ink-soft, #4d4635);
}
.woocommerce-checkout-payment .payment_box::before { display: none !important; }
.woocommerce-checkout-payment #place_order {
	width: 100%;
	background: linear-gradient(135deg, var(--primary, #735c00), var(--primary-light, #D4AF37)) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 8px !important;
	padding: 16px 28px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	font-family: var(--sans, 'Inter', sans-serif) !important;
	box-shadow: 0 10px 30px -10px rgba(115, 92, 0, .4);
	margin-top: 18px;
	transition: box-shadow .2s, transform .2s;
}
.woocommerce-checkout-payment #place_order:hover {
	box-shadow: 0 12px 36px -8px rgba(115, 92, 0, .55) !important;
	transform: translateY(-1px) !important;
}

/* Sticky checkout summary on the right */
.lwp-co-summary {
	background: #fff;
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 8px;
	padding: 28px;
	position: sticky;
	top: 120px;
	min-width: 0;
}
.lwp-co-summary h3 {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 22px;
	font-weight: 500;
	margin: 0 0 18px;
	letter-spacing: -.01em;
}
.lwp-co-item {
	display: grid;
	grid-template-columns: 60px 1fr auto;
	gap: 14px;
	padding: 12px 0;
	border-bottom: 1px solid var(--line-light, #f0ebe0);
	align-items: center;
}
.lwp-co-item:last-of-type { border-bottom: 1px solid var(--line, #e8e2d3); }
.lwp-co-item-thumb { position: relative; aspect-ratio: 1 / 1; border-radius: 4px; overflow: hidden; background: var(--bg-alt, #f6f3f2); }
.lwp-co-item-thumb img,
.lwp-co-item-thumb .lwp-co-item-img {
	width: 100%; height: 100%; object-fit: cover; display: block;
}
.lwp-co-item-qty {
	position: absolute;
	top: -6px;
	right: -6px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--ink, #1b1c1c);
	color: #fff;
	font-family: var(--mono, monospace);
	font-size: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
}
.lwp-co-item-name { font-size: 13px; color: var(--ink, #1b1c1c); min-width: 0; }
.lwp-co-item-name small {
	display: block;
	font-family: var(--mono, monospace);
	font-size: 10px;
	color: var(--muted, #7f7663);
	letter-spacing: .1em;
	margin-top: 3px;
	text-transform: uppercase;
}
.lwp-co-item-px {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 15px;
	color: var(--ink, #1b1c1c);
}
.lwp-co-totals { padding: 14px 0 0; }
.lwp-co-totals .line {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 8px 0;
	font-size: 14px;
	color: var(--ink-soft, #4d4635);
}
.lwp-co-totals .line.tot {
	border-top: 1px solid var(--line, #e8e2d3);
	margin-top: 14px;
	padding-top: 18px;
	font-size: 16px;
	color: var(--ink, #1b1c1c);
}
.lwp-co-totals .line.tot strong {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 24px;
	color: var(--primary, #735c00);
	font-weight: 500;
}

/* ─── Thank-you / Order received ─────────────────────────────────────── */

.lwp-ty-hero {
	text-align: center;
	padding: 48px 0 32px;
	border-bottom: 1px solid var(--line, #e8e2d3);
	margin-bottom: 32px;
}
.lwp-ty-check {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: #e8f3e3;
	color: #2a5a1f;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 32px;
	margin: 0 auto 24px;
	font-weight: 700;
}
.lwp-ty-hero .lwp-eyebrow {
	display: inline-flex;
	justify-content: center;
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--primary, #735c00);
	font-weight: 500;
	margin-bottom: 14px;
}
.lwp-ty-hero .lwp-page-title { margin: 14px auto 0; max-width: 28ch; }
.lwp-ty-hero .lwp-page-lead { margin: 24px auto 0; }

.lwp-ty-meta {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	background: #fff;
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 8px;
	padding: 24px;
	margin-bottom: 32px;
}
.lwp-ty-meta .lbl {
	font-family: var(--mono, monospace);
	font-size: 10.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
	margin-bottom: 6px;
}
.lwp-ty-meta .val {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 18px;
	color: var(--ink, #1b1c1c);
	font-weight: 500;
}
.lwp-ty-meta .val .woocommerce-Price-amount,
.lwp-ty-meta .val bdi { font: inherit; color: inherit; }

@media (max-width: 800px) {
	.lwp-ty-meta { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
	.lwp-ty-meta { grid-template-columns: 1fr; }
}

/* ─── Tracking timeline (used by thankyou + view-order) ──────────────── */

.lwp-track {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin: 24px 0 8px;
	position: relative;
}
.lwp-track::before {
	content: "";
	position: absolute;
	top: 14px;
	left: 8%;
	right: 8%;
	height: 2px;
	background: var(--line, #e8e2d3);
	z-index: 0;
}
.lwp-track-step { position: relative; text-align: center; z-index: 1; }
.lwp-track-step .dot {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid var(--line, #e8e2d3);
	margin: 0 auto 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	color: var(--muted, #7f7663);
	transition: background .25s, border-color .25s, color .25s;
}
.lwp-track-step.done .dot {
	background: var(--primary, #735c00);
	border-color: var(--primary, #735c00);
	color: #fff;
}
.lwp-track-step.cur .dot {
	background: #fff;
	border-color: var(--primary, #735c00);
	color: var(--primary, #735c00);
}
.lwp-track-step .lbl {
	font-family: var(--mono, monospace);
	font-size: 10.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
}
.lwp-track-step.done .lbl,
.lwp-track-step.cur .lbl { color: var(--ink, #1b1c1c); }
.lwp-track-step .dt { font-size: 12px; color: var(--muted, #7f7663); margin-top: 4px; }

/* ─── Address cards (my-address + view-order summary) ────────────────── */

.lwp-addr-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.lwp-addr-card {
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 8px;
	padding: 24px;
	background: #fff;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.lwp-addr-card__lbl {
	font-family: var(--mono, monospace);
	font-size: 10.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--primary, #735c00);
	font-weight: 500;
}
.lwp-addr-card address {
	font-style: normal;
	color: var(--ink-soft, #4d4635);
	font-size: 14px;
	line-height: 1.55;
	margin-top: 4px;
}
.lwp-addr-card address strong {
	display: block;
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 20px;
	font-weight: 500;
	letter-spacing: -.01em;
	margin-bottom: 4px;
	color: var(--ink, #1b1c1c);
}
.lwp-addr-card__empty { color: var(--muted, #7f7663); font-size: 13.5px; }
.lwp-addr-card__edit {
	margin-top: auto;
	padding-top: 14px;
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink, #1b1c1c);
	text-decoration: none;
	border-bottom: 1px solid var(--ink, #1b1c1c);
	align-self: flex-start;
	padding-bottom: 3px;
}
.lwp-addr-card__edit:hover {
	color: var(--primary, #735c00);
	border-bottom-color: var(--primary, #735c00);
}

@media (max-width: 800px) {
	.lwp-addr-grid { grid-template-columns: 1fr; }
}

/* ─── Form helpers (edit-address + edit-account + login fallback) ────── */

.lwp-form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}
.lwp-form-full,
.lwp-form-grid label.full,
.lwp-form-grid .form-row.lwp-form-full { grid-column: span 2; }

.lwp-form-grid .form-row { margin: 0; }
.lwp-form-grid .form-row label {
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
	display: block;
	margin-bottom: 6px;
}
.lwp-form-grid .form-row .required { color: var(--sale, #a33b3e); border: 0; }
.lwp-form-grid .form-row input.input-text,
.lwp-form-grid .form-row textarea,
.lwp-form-grid .form-row select,
.lwp-form-grid .form-row .woocommerce-input-wrapper input.input-text {
	width: 100% !important;
	padding: 12px 14px !important;
	border: 1px solid var(--line, #e8e2d3) !important;
	border-radius: 6px !important;
	font-size: 14px !important;
	font-family: var(--sans, 'Inter', sans-serif) !important;
	color: var(--ink, #1b1c1c) !important;
	background: #fff !important;
}
.lwp-form-grid .form-row input.input-text:focus,
.lwp-form-grid .form-row textarea:focus,
.lwp-form-grid .form-row select:focus {
	outline: none;
	border-color: var(--primary, #735c00) !important;
}

.lwp-edit-account-form .lwp-form-label,
.lwp-edit-address-form .lwp-form-label { margin-bottom: 0; }
.lwp-edit-account-form .lwp-form-label small,
.lwp-edit-address-form .lwp-form-label small {
	display: block;
	font-family: var(--sans, 'Inter', sans-serif);
	font-size: 12px;
	color: var(--muted, #7f7663);
	letter-spacing: 0;
	text-transform: none;
	font-weight: 400;
	margin-top: 4px;
}

@media (max-width: 600px) {
	.lwp-form-grid { grid-template-columns: 1fr; gap: 14px; }
	.lwp-form-grid label.full,
	.lwp-form-full,
	.lwp-form-grid .form-row.lwp-form-full { grid-column: 1; }
}

/* ─── CTA row + btn-link (used after thank-you, view-order, addresses) ─ */

.lwp-cta-row {
	display: flex;
	gap: 14px;
	align-items: center;
	flex-wrap: wrap;
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid var(--line, #e8e2d3);
}
.lwp-cta-row + .lwp-cta-row { margin-top: 12px; padding-top: 0; border-top: 0; }

.lwp-btn-link {
	font-family: var(--sans, 'Inter', sans-serif);
	font-size: 14px;
	font-weight: 500;
	color: var(--ink, #1b1c1c);
	text-decoration: none;
	border-bottom: 1px solid var(--ink, #1b1c1c);
	padding-bottom: 4px;
	transition: color .15s, border-color .15s;
}
.lwp-btn-link:hover {
	color: var(--primary, #735c00);
	border-bottom-color: var(--primary, #735c00);
}

/* ─── Order detail (view-order) — items table layout ─────────────────── */

.lwp-acct-card--flush { padding: 0 !important; overflow: hidden; }
.lwp-acct-card--flush > h3,
.lwp-acct-card__head {
	padding: 24px 28px 0;
	margin: 0 !important;
}
.lwp-order-items { margin-top: 14px !important; }
.lwp-order-items td { padding: 16px 12px; }
.lwp-order-item__thumb { width: 80px; padding-left: 28px !important; }
.lwp-order-item__thumb img,
.lwp-order-items img.lwp-order-item-thumb {
	width: 64px;
	height: 64px;
	border-radius: 4px;
	object-fit: cover;
}
.lwp-order-item__qty { text-align: right; color: var(--muted, #7f7663); }
.lwp-order-item__total {
	text-align: right;
	padding-right: 28px !important;
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 17px;
	color: var(--primary, #735c00);
	font-weight: 500;
}
.lwp-order-item__total bdi,
.lwp-order-item__total .woocommerce-Price-amount { font: inherit; color: inherit; }

.lwp-order-totals .line { font-size: 14px; }
.lwp-order-totals .line.tot strong {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 22px;
	color: var(--primary, #735c00);
	font-weight: 500;
}

@media (max-width: 1024px) {
	.lwp-co-grid { grid-template-columns: 1fr; gap: 28px; }
	.lwp-co-summary { position: static; }
}
@media (max-width: 600px) {
	.lwp-co-fields { grid-template-columns: 1fr; }
	.lwp-co-fields .form-row.form-row-wide,
	.lwp-co-fields .form-row[id*="_country_field"],
	.lwp-co-fields .form-row[id*="_address_1_field"] { grid-column: 1; }
	.lwp-track { grid-template-columns: repeat(2, 1fr); }
	.lwp-track::before { display: none; }
	.lwp-co-step { padding: 22px 18px; }
}

/* ═════════════════════════════════════════════════════════════════════ */
/*  1.2.0 — Animation kit (Claude Design parity) + smart UI               */
/* ═════════════════════════════════════════════════════════════════════ */

/* ─── Page loader ────────────────────────────────────────────────────── */
.lwp-loader {
	position: fixed;
	inset: 0;
	z-index: 99999;
	background: var(--bg, #fcf9f8);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity .55s ease, visibility .55s ease;
}
.lwp-loader.lwp-loaded { opacity: 0; visibility: hidden; pointer-events: none; }
.lwp-loader-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	color: var(--primary, #735c00);
}
.lwp-loader-mark { animation: lwp-spin 1.4s linear infinite; }
.lwp-loader-arc {
	transform-origin: center;
	animation: lwp-arc 1.6s ease-in-out infinite;
}
.lwp-loader-text {
	font-family: var(--mono, 'JetBrains Mono', monospace);
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--muted, #8b7f6a);
}
.lwp-loader-bar {
	width: 120px;
	height: 2px;
	background: var(--line, #e8e2d3);
	border-radius: 2px;
	overflow: hidden;
	display: block;
	position: relative;
}
.lwp-loader-bar > span {
	display: block;
	height: 100%;
	width: 30%;
	background: linear-gradient(90deg, var(--primary, #735c00), var(--primary-light, #D4AF37));
	border-radius: 2px;
	animation: lwp-bar 1.4s ease-in-out infinite;
}
@keyframes lwp-spin { to { transform: rotate(360deg); } }
@keyframes lwp-arc {
	0%, 100% { stroke-dasharray: 8 200; stroke-dashoffset: 0; }
	50%      { stroke-dasharray: 60 200; stroke-dashoffset: -30; }
}
@keyframes lwp-bar {
	0%   { transform: translateX(-120%); }
	100% { transform: translateX(420%); }
}

/* ─── Scroll reveal + stagger ────────────────────────────────────────── */
[data-lwp-reveal] {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .8s cubic-bezier(.2, .7, .2, 1);
	will-change: transform, opacity;
}
[data-lwp-reveal].in { opacity: 1; transform: none; }
[data-lwp-reveal="left"]       { transform: translateX(-32px); }
[data-lwp-reveal="left"].in    { transform: none; }
[data-lwp-reveal="right"]      { transform: translateX(32px); }
[data-lwp-reveal="right"].in   { transform: none; }
[data-lwp-reveal="scale"]      { transform: scale(.96); }
[data-lwp-reveal="scale"].in   { transform: scale(1); }

[data-lwp-stagger] > * {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1);
}
[data-lwp-stagger].in > * { opacity: 1; transform: none; }
[data-lwp-stagger].in > *:nth-child(1) { transition-delay: .05s; }
[data-lwp-stagger].in > *:nth-child(2) { transition-delay: .12s; }
[data-lwp-stagger].in > *:nth-child(3) { transition-delay: .19s; }
[data-lwp-stagger].in > *:nth-child(4) { transition-delay: .26s; }
[data-lwp-stagger].in > *:nth-child(5) { transition-delay: .33s; }
[data-lwp-stagger].in > *:nth-child(6) { transition-delay: .40s; }
[data-lwp-stagger].in > *:nth-child(7) { transition-delay: .47s; }
[data-lwp-stagger].in > *:nth-child(8) { transition-delay: .54s; }

/* ─── Skeleton placeholders ──────────────────────────────────────────── */
.lwp-skel {
	position: relative;
	overflow: hidden;
	background: #f0e6d0;
}
.lwp-skel::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .55), transparent);
	transform: translateX(-100%);
	animation: lwp-shimmer 1.8s infinite;
}
.lwp-skel-text {
	height: 14px;
	background: #f0e6d0;
	border-radius: 3px;
	margin: 6px 0;
	position: relative;
	overflow: hidden;
}
.lwp-skel-text::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .6), transparent);
	transform: translateX(-100%);
	animation: lwp-shimmer 1.8s infinite;
}
.lwp-skel-text.w-60 { width: 60%; }
.lwp-skel-text.w-40 { width: 40%; }
.lwp-skel-text.w-80 { width: 80%; }
@keyframes lwp-shimmer { 100% { transform: translateX(100%); } }

/* ─── Image fade-in on load ──────────────────────────────────────────── */
img[data-lwp-fade] { opacity: 0; transition: opacity .6s ease; }
img[data-lwp-fade].loaded { opacity: 1; }

/* ─── Hover lift utility (cards, master tiles, journal cards) ─────────── */
.lwp-lift {
	transition: transform .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s ease;
}
.lwp-lift:hover { transform: translateY(-4px); }

/* ─── Underline-grow link (replaces static border-bottom) ─────────────── */
.lwp-ulink {
	position: relative;
	text-decoration: none;
	color: inherit;
	display: inline-block;
	padding-bottom: 2px;
}
.lwp-ulink::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .35s cubic-bezier(.2, .7, .2, 1);
}
.lwp-ulink:hover::after { transform: scaleX(1); transform-origin: left; }

/* ─── Cart bump on add-to-cart ───────────────────────────────────────── */
@keyframes lwp-cart-bounce {
	0%, 100% { transform: scale(1); }
	30%      { transform: scale(1.25); }
	60%      { transform: scale(.92); }
}
.lwp-cart-bump { animation: lwp-cart-bounce .55s ease; }

/* ─── Hero pill blink (used inside the homepage hero) ────────────────── */
.lwp-hero-pill::before,
.tap-hero-pill::before {
	content: '●';
	color: #2a7a3a;
	margin-right: 6px;
	animation: lwp-blink 2s infinite;
}
@keyframes lwp-blink { 50% { opacity: .35; } }

/* ─── body lock when overlay/drawer is open ──────────────────────────── */
body.lwp-locked { overflow: hidden; }

/* ─── Search overlay ─────────────────────────────────────────────────── */
.lwp-search-overlay {
	position: fixed;
	inset: 0;
	z-index: 99000;
	background: rgba(12, 12, 12, .55);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 80px 32px 32px;
	opacity: 0;
	visibility: hidden;
	transition: opacity .25s ease, visibility .25s ease;
}
.lwp-search-overlay.is-open { opacity: 1; visibility: visible; }
.lwp-search-panel {
	background: #fff;
	width: 100%;
	max-width: 720px;
	border-radius: 14px;
	padding: 40px 40px 32px;
	position: relative;
	box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .4);
	transform: translateY(-20px);
	transition: transform .35s cubic-bezier(.2, .7, .2, 1);
}
.lwp-search-overlay.is-open .lwp-search-panel { transform: translateY(0); }
.lwp-search-close {
	position: absolute;
	top: 18px;
	right: 18px;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--bg-alt, #f6f3f2);
	color: var(--ink, #1b1c1c);
	border: 0;
	font-size: 22px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	transition: background .15s, color .15s;
}
.lwp-search-close:hover { background: var(--ink, #1b1c1c); color: #fff; }
.lwp-search-label {
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
	display: block;
	margin-bottom: 18px;
}
.lwp-search-input-wrap {
	position: relative;
	display: flex;
	align-items: center;
}
.lwp-search-icon {
	position: absolute;
	left: 4px;
	font-size: 24px;
	color: var(--primary, #735c00);
	pointer-events: none;
}
.lwp-search-input {
	flex: 1;
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 28px;
	font-weight: 500;
	color: var(--ink, #1b1c1c);
	border: 0;
	border-bottom: 2px solid var(--line, #e8e2d3);
	background: transparent;
	padding: 14px 14px 14px 40px;
	outline: 0;
	width: 100%;
	letter-spacing: -.01em;
	transition: border-color .2s;
}
.lwp-search-input:focus { border-color: var(--primary, #735c00); }
.lwp-search-input::placeholder { color: var(--muted, #7f7663); font-style: italic; }
.lwp-search-hint {
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
	margin-top: 18px;
}
@media (max-width: 600px) {
	.lwp-search-overlay { padding: 60px 16px 16px; }
	.lwp-search-panel { padding: 28px 22px 22px; }
	.lwp-search-input { font-size: 22px; }
}

/* ─── Mini-cart drawer ───────────────────────────────────────────────── */
.lwp-cart-drawer {
	position: fixed;
	inset: 0;
	z-index: 99001;
	background: rgba(12, 12, 12, 0);
	visibility: hidden;
	transition: background .3s ease, visibility .3s ease;
}
.lwp-cart-drawer.is-open {
	background: rgba(12, 12, 12, .45);
	visibility: visible;
}
.lwp-cart-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 420px;
	max-width: 92vw;
	background: #fff;
	box-shadow: -16px 0 40px -12px rgba(0, 0, 0, .25);
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	transition: transform .35s cubic-bezier(.2, .7, .2, 1);
}
.lwp-cart-drawer.is-open .lwp-cart-drawer__panel { transform: translateX(0); }
.lwp-cart-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 22px 28px;
	border-bottom: 1px solid var(--line, #e8e2d3);
}
.lwp-cart-drawer__head h3 {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 22px;
	font-weight: 500;
	margin: 0;
	letter-spacing: -.01em;
}
.lwp-cart-drawer__close {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--bg-alt, #f6f3f2);
	border: 0;
	font-size: 22px;
	cursor: pointer;
	color: var(--ink, #1b1c1c);
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}
.lwp-cart-drawer__close:hover { background: var(--ink, #1b1c1c); color: #fff; }
.lwp-cart-drawer__body { flex: 1; overflow-y: auto; padding: 18px 28px 28px; }

/* WC mini-cart restyle inside the drawer */
.lwp-cart-drawer__body ul.cart_list,
.lwp-cart-drawer__body ul.product_list_widget {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.lwp-cart-drawer__body ul.cart_list li,
.lwp-cart-drawer__body ul.product_list_widget li {
	display: grid !important;
	grid-template-columns: 60px 1fr auto;
	gap: 14px;
	align-items: center;
	padding: 14px 0 !important;
	border-bottom: 1px solid var(--line-light, #f0ebe0) !important;
	margin: 0 !important;
}
.lwp-cart-drawer__body ul.cart_list li img,
.lwp-cart-drawer__body ul.product_list_widget li img {
	width: 60px !important;
	height: 60px !important;
	object-fit: cover;
	border-radius: 4px;
	margin: 0 !important;
	float: none !important;
}
.lwp-cart-drawer__body ul.cart_list li a,
.lwp-cart-drawer__body ul.product_list_widget li a {
	font-family: var(--serif, 'Playfair Display', Georgia, serif) !important;
	font-size: 15px !important;
	font-weight: 500;
	color: var(--ink, #1b1c1c) !important;
	text-decoration: none !important;
	display: block;
}
.lwp-cart-drawer__body .quantity {
	font-family: var(--mono, monospace);
	font-size: 12px;
	color: var(--muted, #7f7663);
	letter-spacing: .04em;
}
.lwp-cart-drawer__body .woocommerce-mini-cart__total,
.lwp-cart-drawer__body .total {
	border-top: 1px solid var(--line, #e8e2d3);
	padding-top: 18px !important;
	margin-top: 14px !important;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	font-size: 16px !important;
	color: var(--ink, #1b1c1c);
}
.lwp-cart-drawer__body .woocommerce-mini-cart__total .amount,
.lwp-cart-drawer__body .total .amount {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 22px;
	color: var(--primary, #735c00);
	font-weight: 500;
}
.lwp-cart-drawer__body .woocommerce-mini-cart__buttons {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 18px;
}
.lwp-cart-drawer__body .woocommerce-mini-cart__buttons .button {
	display: block;
	width: 100%;
	padding: 13px 18px !important;
	border-radius: 8px !important;
	font-family: var(--sans, 'Inter', sans-serif) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	text-align: center;
	text-decoration: none !important;
	transition: transform .2s, box-shadow .2s;
	box-sizing: border-box;
}
.lwp-cart-drawer__body .woocommerce-mini-cart__buttons .checkout {
	background: linear-gradient(135deg, var(--primary, #735c00), var(--primary-light, #D4AF37)) !important;
	color: #fff !important;
	border: 0 !important;
	box-shadow: 0 10px 30px -10px rgba(115, 92, 0, .4);
}
.lwp-cart-drawer__body .woocommerce-mini-cart__buttons .checkout:hover {
	transform: translateY(-1px);
	box-shadow: 0 12px 36px -8px rgba(115, 92, 0, .55);
}
.lwp-cart-drawer__body .woocommerce-mini-cart__buttons .button:not(.checkout) {
	background: transparent !important;
	color: var(--ink, #1b1c1c) !important;
	border: 1px solid var(--line, #e8e2d3) !important;
}
.lwp-cart-drawer__body .remove_from_cart_button {
	background: var(--bg-alt, #f6f3f2);
	border-radius: 50%;
	width: 24px;
	height: 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--muted, #7f7663) !important;
	font-size: 14px;
	text-decoration: none !important;
}
.lwp-cart-drawer__body .remove_from_cart_button:hover {
	background: var(--sale, #a33b3e);
	color: #fff !important;
}
.lwp-cart-drawer__body .woocommerce-mini-cart__empty-message {
	text-align: center;
	padding: 32px 0;
	color: var(--muted, #7f7663);
	font-style: italic;
}

/* ─── PDP sticky add-to-cart bar ─────────────────────────────────────── */
.lwp-pdp-sticky {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 95;
	background: #fff;
	border-top: 1px solid var(--line, #e8e2d3);
	box-shadow: 0 -10px 30px -10px rgba(0, 0, 0, .12);
	transform: translateY(110%);
	transition: transform .35s cubic-bezier(.2, .7, .2, 1);
	pointer-events: none;
}
.lwp-pdp-sticky.is-visible { transform: translateY(0); pointer-events: auto; }
.lwp-pdp-sticky__inner {
	max-width: var(--content-w, 1372px);
	margin: 0 auto;
	padding: 14px 96px 14px 32px; /* extra right padding so CTA clears the 56×56 chat launcher (right:20, bottom:20) */
	display: flex;
	gap: 18px;
	align-items: center;
}
.lwp-pdp-sticky__thumb {
	width: 56px;
	height: 56px;
	object-fit: cover;
	border-radius: 6px;
	flex-shrink: 0;
}
.lwp-pdp-sticky__meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
	flex: 1;
	min-width: 0;
}
.lwp-pdp-sticky__title {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 16px;
	font-weight: 500;
	color: var(--ink, #1b1c1c);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	letter-spacing: -.01em;
}
.lwp-pdp-sticky__price {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 16px;
	color: var(--primary, #735c00);
	font-weight: 500;
}
.lwp-pdp-sticky__price del { font-size: 12px; color: var(--muted, #7f7663); margin-right: 6px; }
.lwp-pdp-sticky__cta {
	flex-shrink: 0;
	white-space: nowrap;
}
@media (max-width: 767px) {
	/* Mobile: drop the full-width bar look and ship the sticky as a
	 * compact floating gold pill on the bottom-left. Thumb + meta are
	 * hidden because the user is already on the PDP — they know which
	 * product they're buying, so the bar's only useful payload is the
	 * CTA itself. The chat launcher (56×56 circle, bottom:20 right:20)
	 * keeps its slot on the right; the pill sits opposite at
	 * bottom:20 left:20. */
	.lwp-pdp-sticky {
		left: 16px;
		right: auto;
		bottom: 20px;
		background: transparent;
		border-top: 0;
		box-shadow: none;
		pointer-events: none;
		width: auto;
	}
	.lwp-pdp-sticky__inner {
		padding: 0;
		margin: 0;
		max-width: none;
		gap: 0;
	}
	.lwp-pdp-sticky__thumb,
	.lwp-pdp-sticky__meta { display: none; }
	.lwp-pdp-sticky__cta {
		padding: 12px 22px !important;
		font-size: 12px !important;
		font-family: var(--sans, 'Inter', sans-serif) !important;
		font-weight: 600 !important;
		letter-spacing: .06em !important;
		text-transform: uppercase !important;
		color: #fff !important;
		background: linear-gradient(135deg, var(--primary, #735c00), var(--primary-light, #D4AF37)) !important;
		border: 0 !important;
		border-radius: var(--radius-pill, 999px) !important;
		box-shadow: 0 10px 28px -10px rgba(115, 92, 0, .45),
		            0 4px 12px -4px rgba(20, 16, 8, .25) !important;
		pointer-events: auto;
	}
	.lwp-pdp-sticky.is-visible { transform: translateY(0); }
}
@media (max-width: 600px) {
	.lwp-pdp-sticky__cta { padding: 11px 18px !important; font-size: 11px !important; }
}

/* ─── Apply lift utility to all our card components automatically ────── */
.lwp-pcard,
.lwp-acct-card,
.lwp-co-step,
.lwp-addr-card,
.lwp-acct-stat,
.lwp-mm-feat,
.lwp-auth-card { transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .3s ease; }

/* ═════════════════════════════════════════════════════════════════════ */
/*  1.2.2 — Account popover / Login brand card / PDP polish / Journal     */
/* ═════════════════════════════════════════════════════════════════════ */

/* ─── Account popover (header dropdown) ──────────────────────────────── */
.lwp-account-wrap { position: relative; display: inline-flex; }
.lwp-account-pop {
	position: absolute;
	top: calc(100% + 14px);
	right: 0;
	min-width: 320px;
	background: #fff;
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 10px;
	box-shadow: 0 24px 48px -16px rgba(0, 0, 0, .18);
	padding: 22px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	transition: opacity .22s ease, transform .22s ease, visibility .22s;
	z-index: 100;
}
.lwp-account-wrap.is-open .lwp-account-pop {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.lwp-account-pop__head {
	padding-bottom: 14px;
	border-bottom: 1px solid var(--line, #e8e2d3);
	margin-bottom: 14px;
}
.lwp-account-pop__hi {
	display: block;
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 18px;
	font-weight: 500;
	letter-spacing: -.01em;
	color: var(--ink, #1b1c1c);
}
.lwp-account-pop__em {
	display: block;
	font-size: 12px;
	color: var(--muted, #7f7663);
	font-family: var(--mono, monospace);
	letter-spacing: .04em;
	margin-top: 4px;
	line-height: 1.45;
}
.lwp-account-pop__nav {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin-bottom: 12px;
}
.lwp-account-pop__nav a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 9px 10px;
	text-decoration: none;
	color: var(--ink-soft, #4d4635);
	font-size: 14px;
	border-radius: 6px;
	transition: background .15s, color .15s;
}
.lwp-account-pop__nav a:hover {
	background: var(--bg-alt, #f6f3f2);
	color: var(--primary, #735c00);
}
.lwp-account-pop__nav a span {
	font-family: var(--mono, monospace);
	font-size: 11px;
	color: var(--muted, #7f7663);
}
.lwp-account-pop__signout {
	display: block;
	padding: 10px 10px;
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--sale, #a33b3e);
	text-decoration: none;
	border-top: 1px solid var(--line, #e8e2d3);
	margin-top: 6px;
	padding-top: 14px;
}
.lwp-account-pop__signout:hover { background: #fff5f5; border-radius: 6px; }
.lwp-account-pop__form {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.lwp-account-pop__label {
	display: flex;
	flex-direction: column;
	gap: 5px;
	font-family: var(--mono, monospace);
	font-size: 10.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
}
.lwp-account-pop__label input {
	padding: 10px 12px;
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 6px;
	font-size: 14px;
	font-family: var(--sans, 'Inter', sans-serif);
	color: var(--ink, #1b1c1c);
	background: #fff;
	text-transform: none;
	letter-spacing: 0;
}
.lwp-account-pop__label input:focus { outline: none; border-color: var(--primary, #735c00); }
.lwp-account-pop__form .lwp-btn-primary {
	width: 100%;
	padding: 11px 16px;
	font-size: 12px;
}
.lwp-account-pop__alts {
	display: flex;
	justify-content: space-between;
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--line, #e8e2d3);
	font-size: 12px;
	color: var(--ink-soft, #4d4635);
	gap: 12px;
	flex-wrap: wrap;
}
.lwp-account-pop__alts a { color: var(--primary, #735c00); }

@media (max-width: 600px) {
	.lwp-account-pop {
		position: fixed;
		top: 80px;
		left: 16px;
		right: 16px;
		min-width: 0;
		max-width: none;
	}
}

/* ─── Login marketing card (auth grid right column when register off) ── */
.lwp-auth-card--brand {
	background: linear-gradient(160deg, #fdfaef, #fff);
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.lwp-auth-card--brand .lwp-eyebrow {
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--primary, #735c00);
	font-weight: 500;
}
.lwp-auth-card__brand-title {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: clamp(28px, 3vw, 36px);
	font-weight: 500;
	letter-spacing: -.02em;
	line-height: 1.1;
	color: var(--ink, #1b1c1c);
	margin: 6px 0 0;
}
.lwp-auth-card__brand-blurb {
	color: var(--ink-soft, #4d4635);
	font-size: 14.5px;
	line-height: 1.65;
	margin: 0;
}
.lwp-auth-card__perks {
	list-style: none;
	padding: 0;
	margin: 8px 0 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	border-top: 1px solid var(--line, #e8e2d3);
	padding-top: 18px;
}
.lwp-auth-card__perks li {
	font-size: 13.5px;
	color: var(--ink-soft, #4d4635);
	line-height: 1.55;
	font-family: var(--sans, 'Inter', sans-serif);
}
.lwp-auth-card__feat {
	margin-top: auto;
	display: flex;
	gap: 14px;
	align-items: center;
	padding: 14px;
	background: #fff;
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 8px;
	text-decoration: none;
	color: inherit;
	transition: transform .25s, box-shadow .25s;
}
.lwp-auth-card__feat:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 24px -10px rgba(0, 0, 0, .15);
}
.lwp-auth-card__feat-img {
	width: 64px;
	height: 64px;
	border-radius: 6px;
	object-fit: cover;
	flex-shrink: 0;
}
.lwp-auth-card__feat-meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.lwp-auth-card__feat-meta small {
	font-family: var(--mono, monospace);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
}
.lwp-auth-card__feat-meta strong {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 16px;
	font-weight: 500;
	color: var(--ink, #1b1c1c);
	letter-spacing: -.01em;
}

/* ─── PDP eyebrow + perks list + Save badge + stock pill ─────────────── */
.summary > .lwp-pdp-eyebrow,
.lwp-pdp-eyebrow {
	display: inline-flex;
	align-items: center;
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--primary, #735c00);
	font-weight: 500;
	margin-bottom: 14px;
}

/* WC summary block — restyle title + price for reference parity */
.summary > .product_title {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: clamp(32px, 3.4vw, 48px);
	font-weight: 500;
	line-height: 1.04;
	letter-spacing: -.025em;
	margin: 0 0 14px;
}
.summary > .price {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 28px;
	color: var(--primary, #735c00);
	font-weight: 500;
	display: flex;
	align-items: baseline;
	gap: 14px;
	flex-wrap: wrap;
	border-top: 1px solid var(--line, #e8e2d3);
	border-bottom: 1px solid var(--line, #e8e2d3);
	padding: 18px 0;
	margin: 18px 0 24px;
}
.summary > .price del {
	font-size: 16px;
	color: var(--muted, #7f7663);
	text-decoration: line-through;
	font-family: var(--sans, 'Inter', sans-serif);
}
.summary > .price del .woocommerce-Price-amount,
.summary > .price del bdi { font: inherit; color: inherit; }
.summary > .price ins {
	background: transparent;
	color: var(--primary, #735c00);
	text-decoration: none;
	font-weight: 500;
	font-size: 36px;
}

/* "Save €X" badge appended to the sale price by woocommerce_get_price_html
 * filter (see inc/wc-pdp-hooks.php). Sits at the right edge of the price
 * row as a soft cream-pill — matches reference `.sp-price .save`. */
.lwp-pdp-save {
	margin-left: auto;
	background: #f3e9c8;
	color: var(--primary, #735c00);
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .12em;
	padding: 5px 10px;
	border-radius: 4px;
	text-transform: uppercase;
	font-weight: 500;
	align-self: center;
}
.lwp-pdp-save .woocommerce-Price-amount,
.lwp-pdp-save bdi { font: inherit; color: inherit; }

/* Stock pill — replaces WC's plain `<p class="stock out-of-stock">`. */
.lwp-pdp-stock {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 500;
	padding: 7px 12px;
	border-radius: 999px;
	margin: 4px 0 18px;
}
.lwp-pdp-stock__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex-shrink: 0;
}
.lwp-pdp-stock--in {
	background: #e8f3e3;
	color: #2a5a1f;
}
.lwp-pdp-stock--in .lwp-pdp-stock__dot { background: #2a5a1f; box-shadow: 0 0 0 4px rgba(42, 90, 31, .12); }
.lwp-pdp-stock--out {
	background: #f3e3e3;
	color: #7a1f1f;
}
.lwp-pdp-stock--out .lwp-pdp-stock__dot { background: #7a1f1f; }
.lwp-pdp-stock--backord {
	background: #f7eedb;
	color: #7a5a1a;
}
.lwp-pdp-stock--backord .lwp-pdp-stock__dot { background: #7a5a1a; }

/* WC stock <p> wrapper — neutralise its block margin since our pill
 * already provides spacing. */
.summary p.stock { margin: 0; padding: 0; background: transparent !important; }


.lwp-pdp-perks {
	list-style: none;
	padding: 28px 32px;
	margin: 32px 0 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px 32px;
	background: var(--bg-alt, #f6f3f2);
	border-radius: 10px;
	border: 1px solid var(--line, #e8e2d3);
}
.lwp-pdp-perks li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-size: 14px;
	color: var(--ink-soft, #4d4635);
	line-height: 1.55;
	font-family: var(--sans, 'Inter', sans-serif);
}
.lwp-pdp-perks__icon {
	color: var(--primary, #735c00);
	font-size: 18px;
	flex-shrink: 0;
	line-height: 1;
	margin-top: 1px;
}
@media (max-width: 700px) {
	.lwp-pdp-perks { grid-template-columns: 1fr; padding: 20px 22px; }
}

/* ─── Journal LISTING (home.php — Posts page layout) ─────────────────── */
.lwp-journal { padding: 64px 0 96px; }
.lwp-journal-header {
	max-width: 760px;
	margin: 0 0 64px;
}
.lwp-journal-header .lwp-eyebrow {
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--primary, #735c00);
	font-weight: 500;
	display: inline-flex;
	margin-bottom: 18px;
}
.lwp-journal-header .lwp-page-title em {
	font-style: italic;
	color: var(--primary, #735c00);
}
.lwp-jnl-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 48px 32px;
}
.lwp-jnl {
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	gap: 18px;
	transition: transform .35s cubic-bezier(.2, .7, .2, 1);
}
.lwp-jnl:hover { transform: translateY(-4px); }
.lwp-jnl-img-wrap {
	aspect-ratio: 4 / 3;
	border-radius: 8px;
	overflow: hidden;
	background: var(--bg-alt, #f6f3f2);
	transition: box-shadow .35s ease;
}
.lwp-jnl:hover .lwp-jnl-img-wrap { box-shadow: 0 18px 40px -22px rgba(60, 40, 0, .25); }
.lwp-jnl-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .5s cubic-bezier(.2, .7, .2, 1);
}
.lwp-jnl:hover .lwp-jnl-img { transform: scale(1.04); }
.lwp-jnl-meta { display: flex; flex-direction: column; gap: 8px; }
.lwp-jnl-meta .lwp-eyebrow {
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
	font-weight: 500;
}
.lwp-jnl-title {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 22px;
	font-weight: 500;
	letter-spacing: -.01em;
	line-height: 1.25;
	color: var(--ink, #1b1c1c);
	margin: 0;
}
.lwp-jnl-date {
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .14em;
	color: var(--muted, #7f7663);
	margin-top: 4px;
}
.lwp-jnl-excerpt {
	font-size: 15px;
	color: var(--ink-soft, #4d4635);
	line-height: 1.65;
	margin: 4px 0 0;
}

/* Featured (first post) — 2-col big card spanning full grid width */
.lwp-jnl--big {
	grid-column: span 3;
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 48px;
	align-items: center;
	border-bottom: 1px solid var(--line, #e8e2d3);
	padding-bottom: 56px;
	margin-bottom: 8px;
}
.lwp-jnl--big .lwp-jnl-img-wrap { aspect-ratio: 5 / 4; }
.lwp-jnl--big .lwp-jnl-title { font-size: clamp(28px, 3vw, 40px); line-height: 1.1; }

.lwp-jnl-pagination {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 64px;
	padding-top: 32px;
	border-top: 1px solid var(--line, #e8e2d3);
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
	gap: 16px;
}
.lwp-jnl-pagination a {
	color: var(--ink, #1b1c1c);
	text-decoration: none;
	border-bottom: 1px solid var(--ink, #1b1c1c);
	padding-bottom: 3px;
	transition: color .15s, border-color .15s;
}
.lwp-jnl-pagination a:hover { color: var(--primary, #735c00); border-bottom-color: var(--primary, #735c00); }
.lwp-jnl-pagination__pages { color: var(--ink-soft, #4d4635); }

.lwp-jnl-empty {
	text-align: center;
	padding: 80px 32px;
	color: var(--muted, #7f7663);
	font-style: italic;
	font-size: 16px;
}

@media (max-width: 1000px) {
	.lwp-jnl-grid { grid-template-columns: repeat(2, 1fr); gap: 36px 24px; }
	.lwp-jnl--big { grid-column: span 2; grid-template-columns: 1fr; gap: 24px; padding-bottom: 36px; }
}
@media (max-width: 600px) {
	.lwp-jnl-grid { grid-template-columns: 1fr; gap: 32px; }
	.lwp-jnl--big { grid-column: span 1; padding-bottom: 28px; }
	.lwp-jnl-pagination { flex-direction: column; align-items: flex-start; gap: 8px; }
}

/* ─── Single journal post (single.php editorial branch) ──────────────── */
/* 1.7.2: tightened spacing — pre-1.7.2 sum was top 56 + crumb 36 + head 36
   + cover 48 = ~176px dead space before first paragraph (over-bumped in 1.6.7).
   Now ~108px so editorial blogs read tight without losing voice. */
.lwp-journal-single { padding-top: 32px; padding-bottom: 64px; }
.lwp-journal-head {
	max-width: 820px;
	margin: 0 auto 24px;
	text-align: center;
}
.lwp-journal-head .lwp-eyebrow {
	display: inline-flex;
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--primary, #735c00);
	font-weight: 500;
	margin-bottom: 18px;
}
.lwp-journal-head .lwp-page-title {
	font-size: clamp(32px, 4.5vw, 64px);
	margin: 0 0 18px;
}
.lwp-journal-meta {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 12px;
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
	flex-wrap: wrap;
}
.lwp-journal-meta .sep { color: var(--line, #e8e2d3); }
.lwp-journal-meta__author { color: var(--ink, #1b1c1c); font-weight: 500; }
.lwp-journal-cover {
	margin: 0 0 32px;
	max-width: 1372px;
	padding: 0 32px;
	margin-left: auto;
	margin-right: auto;
}
.lwp-journal-cover__img {
	width: 100%;
	height: auto;
	border-radius: 12px;
	display: block;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
.lwp-journal-cover figcaption {
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
	text-align: center;
	margin-top: 14px;
}
.lwp-journal-body {
	max-width: 720px;
	margin: 0 auto;
	font-size: 18px;
	line-height: 1.75;
	color: var(--ink-soft, #4d4635);
}
.lwp-journal-body > * { margin: 0 0 1.1em; }
.lwp-journal-body h2,
.lwp-journal-body h3,
.lwp-journal-body h4 {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	color: var(--ink, #1b1c1c);
	margin: 1.4em 0 .5em;
	font-weight: 500;
	letter-spacing: -.01em;
	/* Playfair Display's tall ascenders + low descenders collapse when a
	 * heading wraps to two lines and the default `line-height: normal`
	 * (~1.1) leaves them. 1.25 gives the descender clearance the serif
	 * actually needs without making short headings feel airy. */
	line-height: 1.25;
}
.lwp-journal-body h2 { font-size: 32px; }
.lwp-journal-body h3 { font-size: 26px; }
.lwp-journal-body h4 { font-size: 20px; }
.lwp-journal-body blockquote {
	border-left: 3px solid var(--primary, #735c00);
	padding: 10px 22px;
	margin: 1.6em 0;
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-style: italic;
	font-size: 22px;
	line-height: 1.5;
	color: var(--ink, #1b1c1c);
}
.lwp-journal-body img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
	margin: 1.4em auto;
	display: block;
}
.lwp-journal-body a {
	color: var(--primary, #735c00);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
.lwp-journal-tags {
	max-width: 720px;
	margin: 48px auto 0;
	padding: 24px 0 0;
	border-top: 1px solid var(--line, #e8e2d3);
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
}
.lwp-journal-tags__label {
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
	margin-right: 4px;
}
.lwp-journal-tag {
	display: inline-block;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--bg-alt, #f6f3f2);
	color: var(--ink-soft, #4d4635);
	text-decoration: none;
	font-size: 12.5px;
	transition: background .15s, color .15s;
}
.lwp-journal-tag:hover {
	background: var(--primary, #735c00);
	color: #fff;
}
.lwp-journal-foot {
	max-width: 720px;
	margin: 48px auto 0;
	padding: 32px 0 0;
	border-top: 1px solid var(--line, #e8e2d3);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.lwp-journal-foot__prev,
.lwp-journal-foot__next {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px 22px;
	border: 1px solid var(--line, #e8e2d3);
	border-radius: 8px;
	text-decoration: none;
	color: inherit;
	transition: border-color .2s, transform .2s;
}
.lwp-journal-foot__prev:hover,
.lwp-journal-foot__next:hover {
	border-color: var(--primary, #735c00);
	transform: translateY(-1px);
}
.lwp-journal-foot__next { text-align: right; }
.lwp-journal-foot__prev small,
.lwp-journal-foot__next small {
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
}
.lwp-journal-foot__prev strong,
.lwp-journal-foot__next strong {
	font-family: var(--serif, 'Playfair Display', Georgia, serif);
	font-size: 17px;
	font-weight: 500;
	color: var(--ink, #1b1c1c);
	letter-spacing: -.01em;
	line-height: 1.3;
}
.lwp-journal-comments {
	max-width: 720px;
	margin: 64px auto 0;
}
@media (max-width: 700px) {
	.lwp-journal-foot { grid-template-columns: 1fr; gap: 14px; }
	.lwp-journal-foot__next { text-align: left; }
	.lwp-journal-body { font-size: 16px; }
	.lwp-journal-body h2 { font-size: 26px; }
}

/* ─── Reduced motion respect ─────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	.lwp-loader,
	.lwp-loader-mark,
	.lwp-loader-arc,
	.lwp-loader-bar > span {
		animation: none !important;
	}
	[data-lwp-reveal],
	[data-lwp-stagger] > * {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
	.lwp-skel::after,
	.lwp-skel-text::after,
	.lwp-cart-bump,
	.lwp-hero-pill::before,
	.tap-hero-pill::before {
		animation: none !important;
	}
	.lwp-search-overlay,
	.lwp-cart-drawer,
	.lwp-cart-drawer__panel,
	.lwp-pdp-sticky,
	.lwp-search-panel {
		transition-duration: 0.01ms !important;
	}
}

/* ────────────────────────────────────────────────────────────────────── */
/* YouTube lightbox modal — opened by `[data-lwp-yt]` triggers in         */
/* frontend.js. Backdrop + 16:9 frame + close button. Locks body scroll.  */
/* ────────────────────────────────────────────────────────────────────── */

.lwp-yt-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity .2s ease;
}
.lwp-yt-modal.is-open { opacity: 1; }
.lwp-yt-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .8);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}
.lwp-yt-modal__panel {
	position: relative;
	width: min(960px, 92vw);
	max-height: 90vh;
}
.lwp-yt-modal__frame {
	position: relative;
	aspect-ratio: 16 / 9;
	width: 100%;
	background: #000;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 24px 60px -10px rgba(0, 0, 0, .65);
	transform: scale(.96);
	transition: transform .25s cubic-bezier(.2, .8, .25, 1);
}
.lwp-yt-modal.is-open .lwp-yt-modal__frame { transform: scale(1); }
.lwp-yt-modal__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}
.lwp-yt-modal__close {
	position: absolute;
	top: -44px;
	right: 0;
	background: transparent;
	border: 0;
	color: #fff;
	font-size: 32px;
	line-height: 1;
	cursor: pointer;
	padding: 4px 10px;
	transition: color .15s, transform .15s;
}
.lwp-yt-modal__close:hover { color: var(--primary-light, #D4AF37); transform: rotate(90deg); }
body.lwp-yt-open { overflow: hidden; }

@media (max-width: 600px) {
	.lwp-yt-modal__panel { width: 96vw; }
	.lwp-yt-modal__close { top: -38px; font-size: 28px; }
}

/* ────────────────────────────────────────────────────────────────────── */
/* Shop archive — 2-col page header + featured sub-category tiles.        */
/* Used by woocommerce/archive-product.php on /shop/, product cats, tags. */
/* ────────────────────────────────────────────────────────────────────── */

.lwp-archive-header {
	margin: 0 0 36px;
}
.lwp-archive-header .lwp-page-title {
	margin: 8px 0 0;
}
.lwp-archive-header .lwp-page-lead {
	margin: 14px 0 0;
	max-width: 56ch;
}
.lwp-archive-header .lwp-page-lead p {
	margin: 0 0 1em;
}
.lwp-archive-header .lwp-page-lead p:last-child {
	margin-bottom: 0;
}
.lwp-archive-header .lwp-page-lead a {
	color: var(--primary, #735c00);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color 200ms ease;
}
.lwp-archive-header .lwp-page-lead a:hover,
.lwp-archive-header .lwp-page-lead a:focus {
	color: var(--ink, #1a1612);
	text-decoration-thickness: 2px;
}
.lwp-archive-header--split {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: 48px;
	align-items: start;
	margin: 0 0 48px;
}
.lwp-archive-header__copy {
	min-width: 0;
}
.lwp-archive-header__media {
	min-width: 0;
	border-radius: var(--radius-card, 8px);
	overflow: hidden;
	background: var(--bg-alt, #f6f3f2);
	aspect-ratio: 4 / 3;
	position: sticky;
	top: 88px;
}
.lwp-archive-header__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 600ms ease;
}
.lwp-archive-header--split:hover .lwp-archive-header__img {
	transform: scale(1.02);
}

@media (max-width: 900px) {
	.lwp-archive-header--split {
		grid-template-columns: 1fr;
		gap: 24px;
		margin-bottom: 32px;
	}
	.lwp-archive-header__media {
		aspect-ratio: 16 / 9;
		order: -1;
		position: static;
	}
}

/* Shop toolbar — result count left, sort dropdown right. The WC native
 * `.woocommerce-result-count` + `.woocommerce-ordering` floats are
 * neutralised elsewhere in this stylesheet, so the toolbar needs a
 * flex layout of its own to right-align the orderby select. */
.lwp-shop-toolbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	margin: 0 0 16px;
}
.lwp-shop-toolbar > div { min-width: 0; }
.lwp-shop-toolbar .woocommerce-result-count,
.lwp-shop-toolbar .woocommerce-ordering {
	margin: 0 !important;
}
/* Higher specificity than the WC ordering reset at line ~6020 that
 * sets `margin: 0 0 16px !important` (= margin-left: 0) and would
 * otherwise pin the dropdown against the result count text. */
html body main .lwp-shop-toolbar .woocommerce-ordering,
html body .lwp-shop-results .lwp-shop-toolbar .woocommerce-ordering {
  margin-left: auto !important;
}

/* Hide Google reCAPTCHA v3 floating badge — it collides with the chat
 * launcher at bottom-right. Per Google's terms the privacy/terms
 * disclaimer must be surfaced elsewhere (footer copy already shows
 * "Secure checkout" + privacy policy link). */
.grecaptcha-badge {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.lwp-archive-subcat-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin: 0 0 48px;
}
.lwp-archive-subcat {
	display: flex;
	flex-direction: column;
	gap: 12px;
	color: var(--ink, #1b1c1c);
	text-decoration: none;
	background: var(--card, #fff);
	border: 1px solid var(--line, #e8e2d3);
	border-radius: var(--radius-card, 8px);
	padding: 12px;
	transition: transform 240ms ease, box-shadow 240ms ease, border-color 240ms ease;
}
.lwp-archive-subcat:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 32px -22px rgba(60, 40, 0, .25);
	border-color: var(--primary-light, #D4AF37);
}
.lwp-archive-subcat__img-wrap {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 6px;
	background: var(--bg-alt, #f6f3f2);
}
.lwp-archive-subcat__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 600ms ease;
}
.lwp-archive-subcat:hover .lwp-archive-subcat__img {
	transform: scale(1.05);
}
.lwp-archive-subcat__meta {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 0 4px 4px;
}
.lwp-archive-subcat__name {
	font-family: var(--serif, Playfair Display);
	font-size: 17px;
	font-weight: 500;
	line-height: 1.2;
	margin: 0;
	color: var(--ink, #1b1c1c);
}
.lwp-archive-subcat__count {
	font-family: var(--mono, ui-monospace);
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--muted, #7f7663);
}

@media (max-width: 1024px) {
	.lwp-archive-subcat-grid { grid-template-columns: repeat(3, 1fr); gap: 16px; }
}
@media (max-width: 720px) {
	.lwp-archive-subcat-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; margin-bottom: 36px; }
	.lwp-archive-subcat__name { font-size: 15px; }
}
@media (max-width: 420px) {
	.lwp-archive-subcat-grid { gap: 12px; }
	.lwp-archive-subcat { padding: 8px; }
}

/* ═════════════════════════════════════════════════════════════════════ */
/*  UI-FIXES BEGIN — 1.5.0 polish layer (5 feedback items)                */
/* ═════════════════════════════════════════════════════════════════════ */

/* ─── (5) Product card meta padding ─────────────────────────────────── */
/* Chip + title + price were flush against the card edge. Inset them so
 * the card-image keeps its full bleed but text breathes inside a 14/16
 * gutter that mirrors `.lwp-mm-feat-meta`. */
.lwp-pcard-meta {
	padding: 14px 16px 16px;
	gap: 6px;
}
.lwp-pcard-link { gap: 0; }
.lwp-pcard-cat { margin-bottom: 2px; }

/* ─── (2) Header menu typography normalize ──────────────────────────── */
/* "Blog" + "Español" inherited the WP nav link defaults (mixed case,
 * no letter-spacing) while every other top-level item rendered with
 * the Gold uppercase rhythm. Lock all top-level entries to the same
 * cadence so single-word items stop looking like outliers. */
.lwp-mm-top > li > a {
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: 13px;
	font-weight: 600;
}
.lwp-mm-top-count { font-size: 10.5px; }

/* ─── (3) Mega panel viewport-aware ─────────────────────────────────── */
/* Old rule: `min-width: 1100px` + `left: 50%; translate(-50%)` clipped
 * the panel to the left when its parent <li> sat near the viewport
 * edge. Drop the rigid min-width, let the panel grow up to a content
 * cap, and clamp it to the viewport with 24px gutters. The wrapper
 * has `position: relative` on each <li>, so we override that for mega
 * items and pin the panel to the header instead. */
.lwp-mm-top > li.is-mega { position: static; }
.lwp-mm-panel {
	min-width: 0;
	width: min(1180px, calc(100vw - 48px));
	max-width: calc(100vw - 48px);
	left: 50%;
	right: auto;
	transform: translate(-50%, -6px);
}
.lwp-mm-top > li.is-mega:hover > .lwp-mm-panel,
.lwp-mm-top > li.is-mega:focus-within > .lwp-mm-panel {
	transform: translate(-50%, 0);
}
/* Simple dropdown fallback — flip to right-anchored when the parent
 * sits in the last quarter of the menu (Blog / Español case). */
.lwp-mm-top > li:nth-last-child(-n+2) > .lwp-mm-dropdown {
	left: auto;
	right: 0;
}

/* ─── (1) Float bar ↔ footer smooth handoff ─────────────────────────── */
/* JS toggles `is-near-footer` when the footer enters the viewport.
 * Bar fades + slides down, footer no longer collides with the
 * sticky panel. Backdrop blur + softened shadow gives the modern
 * "floating" look while it is on screen. */
.lwp-pdp-sticky {
	background: rgba(255, 255, 255, .92);
	backdrop-filter: saturate(140%) blur(12px);
	-webkit-backdrop-filter: saturate(140%) blur(12px);
	box-shadow: 0 -8px 28px -12px rgba(20, 16, 8, .18);
	border-top-color: rgba(232, 226, 211, .8);
}
.lwp-pdp-sticky.is-near-footer {
	transform: translateY(110%) !important;
	opacity: 0;
	transition: transform .45s cubic-bezier(.4, .0, .2, 1), opacity .35s ease;
}

/* ═════════════════════════════════════════════════════════════════════ */
/*  (4) Mobile responsive layer — header drawer + PDP + shop + single    */
/* ═════════════════════════════════════════════════════════════════════ */

/* ─── Hamburger trigger (≤900px) ─────────────────────────────────────── */
.lwp-mobile-toggle {
	display: none;
	background: transparent;
	border: 0;
	width: 42px;
	height: 42px;
	padding: 0;
	cursor: pointer;
	color: var(--ink, #1b1c1c);
	align-items: center;
	justify-content: center;
	-webkit-tap-highlight-color: transparent;
}
.lwp-mobile-toggle__bars {
	width: 22px;
	height: 14px;
	position: relative;
	display: inline-block;
}
.lwp-mobile-toggle__bars::before,
.lwp-mobile-toggle__bars::after,
.lwp-mobile-toggle__bars span {
	content: "";
	position: absolute;
	left: 0;
	height: 1.4px;
	background: currentColor;
	border-radius: 2px;
	transition: transform .25s ease, opacity .2s ease, top .25s ease, width .25s ease;
}
.lwp-mobile-toggle__bars::before { top: 0; width: 22px; }
.lwp-mobile-toggle__bars span    { top: 6px; width: 16px; }
.lwp-mobile-toggle__bars::after  { top: 12px; width: 20px; }
.lwp-mobile-toggle.is-open .lwp-mobile-toggle__bars::before { top: 6px; transform: rotate(45deg); width: 18px; }
.lwp-mobile-toggle.is-open .lwp-mobile-toggle__bars::after  { top: 6px; transform: rotate(-45deg); width: 18px; }
.lwp-mobile-toggle.is-open .lwp-mobile-toggle__bars span    { opacity: 0; }

/* ─── Atelier-ledger drawer — design handoff 2026-05-06 ──────────────── *
 * Warm cream background, hairline-gold rules, italic serif typography,
 * subtle paper-grain dots — the "luthier ledger" aesthetic specified in
 * the Tapadum design bundle. NOT the restaurant black-with-gold trope.
 * Tokens borrowed from theme tokens.css; drawer-local additions are
 * --lwp-drw-* scoped to the drawer scope to avoid global token pollution.
 */
.lwp-mobile-drawer {
	--lwp-drw-bg: var(--bg-alt, #f6f3f2);
	--lwp-drw-bg-card: var(--bg, #fffefb);
	--lwp-drw-bg-deeper: #ede7da;
	--lwp-drw-line: var(--line, #e6e0d6);
	--lwp-drw-line-soft: #efeae0;
	--lwp-drw-ease-snap: cubic-bezier(.2, .85, .2, 1);
	--lwp-drw-ease-soft: cubic-bezier(.22, .61, .36, 1);

	position: fixed;
	left: 0;
	top: 0;
	bottom: 0;
	width: min(92vw, 420px);
	max-width: 420px;
	background: var(--lwp-drw-bg);
	color: var(--ink, #1b1c1c);
	z-index: 100010;
	display: flex;
	flex-direction: column;
	transform: translateX(-101%);
	transition: transform .42s var(--lwp-drw-ease-snap);
	box-shadow: -2px 0 0 0 rgba(115, 92, 0, .06), 24px 0 60px -24px rgba(27, 28, 28, .28);
	overflow: hidden;
	border-right: 1px solid var(--lwp-drw-line);
}
.lwp-mobile-drawer.is-open { transform: translateX(0); }

/* paper-grain dots — perf-safe radial pattern, NOT a noise PNG */
.lwp-mobile-drawer::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: radial-gradient(rgba(115, 92, 0, .04) 1px, transparent 1px);
	background-size: 14px 14px;
	opacity: .6;
	z-index: 0;
}
.lwp-mobile-drawer > * { position: relative; z-index: 1; }

/* head: logo + close (X morph) */
.lwp-mobile-drawer__head {
	display: flex;
	align-items: center;
	/* 1.10.5 — drawer header was too tall + the "Menu" wordmark added no value.
	 * Brand hidden below, so the close button rides flush-right in a slim bar. */
	justify-content: flex-end;
	padding: 8px 14px;
	flex: none;
	border-bottom: 1px solid var(--lwp-drw-line);
	font-family: var(--mono, monospace);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted, #8a8780);
}
/* 1.10.5 — "Menu" wordmark dropped (operator: no need for it). */
.lwp-mobile-drawer__brand { display: none; }
.lwp-mobile-drawer__brand--legacy {
	font-family: var(--serif, 'Playfair Display', serif);
	font-size: 24px;
	font-weight: 500;
	letter-spacing: -.01em;
	color: var(--ink, #1b1c1c);
	align-items: baseline;
	gap: 4px;
	text-transform: none;
}
.lwp-mobile-drawer__brand em { font-style: italic; color: var(--primary, #735c00); }
.lwp-mobile-drawer__brand .lwp-drw-est {
	font-family: var(--mono, monospace);
	font-size: 9px;
	letter-spacing: .2em;
	color: var(--muted, #8a8780);
	margin-left: 6px;
	align-self: flex-start;
	margin-top: 6px;
}

/* Close button — circular X mirror of the hamburger trigger */
.lwp-mobile-drawer__close {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: 1px solid var(--lwp-drw-line);
	background: var(--lwp-drw-bg-card);
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	cursor: pointer;
	transition: border-color .2s ease, background .2s ease;
	-webkit-tap-highlight-color: transparent;
}
.lwp-mobile-drawer__close:hover { border-color: var(--primary, #735c00); background: #fff; }
.lwp-mobile-drawer__close .bar {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 18px;
	height: 1.4px;
	background: var(--ink, #1b1c1c);
	border-radius: 2px;
	transform-origin: center;
	transition: transform .35s var(--lwp-drw-ease-snap);
}
.lwp-mobile-drawer__close .bar:nth-child(1) { transform: translate(-50%, -50%) rotate(45deg); }
.lwp-mobile-drawer__close .bar:nth-child(2) { transform: translate(-50%, -50%) rotate(-45deg); }

/* Body — scrollable region between head and foot */
.lwp-mobile-drawer__body {
	flex: 1;
	overflow-y: auto;
	/* 1.7.35 — clip horizontal overflow. A descendant (.lwp-drw-flat with
	 * width:100% + padding:16px 22px without explicit box-sizing) was
	 * leaking 44px past the drawer's right edge, which `overflow-x: auto`
	 * (the previous default) turned into a horizontal scrollbar so users
	 * experienced the menu items "shifting" left/right on touch scroll. */
	overflow-x: hidden;
	-webkit-overflow-scrolling: touch;
	padding: 6px 0 4px;
	scrollbar-width: thin;
	scrollbar-color: var(--lwp-drw-line) transparent;
}
.lwp-mobile-drawer__body::-webkit-scrollbar { width: 4px; }
.lwp-mobile-drawer__body::-webkit-scrollbar-thumb { background: var(--lwp-drw-line); border-radius: 2px; }

/* Section eyebrow with hairline tail.
 * 1.10.5 — hidden (operator: the "BROWSE" label adds clutter + steals vertical
 * space at the top of the drawer). The accordion list reads fine without it. */
.lwp-mobile-drawer__lbl {
	display: none;
	font-family: var(--mono, monospace);
	font-size: 9.5px;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--muted, #8a8780);
	padding: 14px 22px 6px;
	align-items: center;
	gap: 10px;
}
.lwp-mobile-drawer__lbl::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--lwp-drw-line);
}

/* Accordion — uses native <details>/<summary> for accessibility */
.lwp-mobile-drawer details.lwp-drw-acc { border-bottom: 1px solid var(--lwp-drw-line-soft); }
.lwp-mobile-drawer details.lwp-drw-acc > summary {
	list-style: none;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 12px 18px;
	font-family: var(--serif, 'Playfair Display', serif);
	font-size: 18px;
	font-weight: 500;
	letter-spacing: -.012em;
	color: var(--ink, #1b1c1c);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition: color .2s ease, background .2s ease;
	overflow-wrap: anywhere;
	word-break: break-word;
}
.lwp-mobile-drawer details.lwp-drw-acc > summary::-webkit-details-marker { display: none; }
.lwp-mobile-drawer details.lwp-drw-acc > summary:hover,
.lwp-mobile-drawer details.lwp-drw-acc > summary:focus-visible {
	color: var(--primary, #735c00);
	background: rgba(115, 92, 0, .03);
	outline: none;
}
.lwp-mobile-drawer details.lwp-drw-acc[open] > summary { color: var(--primary, #735c00); }
.lwp-mobile-drawer details.lwp-drw-acc .nm {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 8px;
	flex: 1 1 auto;
	min-width: 0;
	overflow-wrap: anywhere;
	word-break: break-word;
	line-height: 1.2;
}
.lwp-mobile-drawer details.lwp-drw-acc .ct {
	font-family: var(--mono, monospace);
	font-size: 10.5px;
	letter-spacing: .1em;
	color: var(--muted, #8a8780);
	font-weight: 400;
}

/* Plus / minus glyph (no chevron) — circular, animated rotation */
.lwp-mobile-drawer details.lwp-drw-acc .pm {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 1px solid var(--lwp-drw-line);
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	position: relative;
	transition: border-color .25s ease, background .2s ease;
}
.lwp-mobile-drawer details.lwp-drw-acc .pm::before,
.lwp-mobile-drawer details.lwp-drw-acc .pm::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 10px;
	height: 1.4px;
	background: var(--ink, #1b1c1c);
	transform: translate(-50%, -50%);
	transition: transform .35s var(--lwp-drw-ease-snap), background .25s ease;
}
.lwp-mobile-drawer details.lwp-drw-acc .pm::after { transform: translate(-50%, -50%) rotate(90deg); }
.lwp-mobile-drawer details.lwp-drw-acc > summary:hover .pm,
.lwp-mobile-drawer details.lwp-drw-acc[open] .pm {
	border-color: var(--primary, #735c00);
	background: #fff;
}
.lwp-mobile-drawer details.lwp-drw-acc[open] .pm::after { transform: translate(-50%, -50%) rotate(0); }
.lwp-mobile-drawer details.lwp-drw-acc[open] .pm::before,
.lwp-mobile-drawer details.lwp-drw-acc[open] .pm::after { background: var(--primary, #735c00); }

/* Sub-list — grid-template-rows trick for smooth height auto animation */
.lwp-mobile-drawer .lwp-drw-acc-panel {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .38s var(--lwp-drw-ease-snap);
}
.lwp-mobile-drawer details.lwp-drw-acc[open] .lwp-drw-acc-panel { grid-template-rows: 1fr; }
.lwp-mobile-drawer .lwp-drw-acc-panel > div { overflow: hidden; }
.lwp-mobile-drawer .lwp-drw-acc-list {
	padding: 2px 20px 18px 28px;
	display: flex;
	flex-direction: column;
	border-left: 1px solid var(--lwp-drw-line);
	margin-left: 20px;
}
.lwp-mobile-drawer .lwp-drw-acc-list a {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 8px;
	padding: 8px 0;
	font-size: 15px;
	color: var(--ink-soft, #4a4a48);
	text-decoration: none;
	transition: color .15s ease, padding-left .25s var(--lwp-drw-ease-snap);
	position: relative;
	overflow-wrap: anywhere;
	word-break: break-word;
}
.lwp-mobile-drawer .lwp-drw-acc-list a > span:first-child,
.lwp-mobile-drawer .lwp-drw-acc-list a:not(:has(.ct)) {
	min-width: 0;
	flex: 1 1 auto;
}
.lwp-mobile-drawer .lwp-drw-acc-list a .ct { flex: none; }
.lwp-mobile-drawer .lwp-drw-acc-list a::before {
	content: "";
	position: absolute;
	left: -23px;
	top: 50%;
	width: 14px;
	height: 1px;
	background: var(--lwp-drw-line);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .25s var(--lwp-drw-ease-snap), background .15s ease;
}
.lwp-mobile-drawer .lwp-drw-acc-list a:hover { color: var(--primary, #735c00); padding-left: 6px; }
.lwp-mobile-drawer .lwp-drw-acc-list a:hover::before { transform: scaleX(1); background: var(--primary, #735c00); }
.lwp-mobile-drawer .lwp-drw-acc-list a .ct {
	font-family: var(--mono, monospace);
	font-size: 10.5px;
	color: var(--muted, #8a8780);
	letter-spacing: .08em;
}

/* Flat (no children) — italic serif, sized down so it visually defers */
.lwp-mobile-drawer .lwp-drw-flat {
	width: 100%;
	/* 1.7.35 — explicit border-box so the 22px L/R padding sits INSIDE
	 * the 100% width box, not on top of it. Without this the anchor
	 * rendered 44px wider than the drawer body and triggered horizontal
	 * scroll inside the drawer. */
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 22px;
	font-family: var(--serif, 'Playfair Display', serif);
	font-style: italic;
	font-size: 18px;
	font-weight: 400;
	color: var(--ink-soft, #4a4a48);
	border-bottom: 1px solid var(--lwp-drw-line-soft);
	text-decoration: none;
	transition: color .2s ease, background .2s ease;
	-webkit-tap-highlight-color: transparent;
}
.lwp-mobile-drawer .lwp-drw-flat:hover { color: var(--primary, #735c00); background: rgba(115, 92, 0, .03); }
.lwp-mobile-drawer .lwp-drw-flat .arr {
	font-family: var(--mono, monospace);
	font-size: 13px;
	color: var(--muted, #8a8780);
	transition: color .2s ease, transform .25s ease;
}
.lwp-mobile-drawer .lwp-drw-flat:hover .arr { color: var(--primary, #735c00); transform: translateX(3px); }

/* Utility row — Account · Cart · Track order, single-thumb zone */
.lwp-mobile-drawer .lwp-drw-utility {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 1px;
	background: var(--lwp-drw-line);
	margin: 14px 20px 0;
	border: 1px solid var(--lwp-drw-line);
	border-radius: 12px;
	overflow: hidden;
	flex: none;
}
.lwp-mobile-drawer .lwp-drw-util {
	background: var(--lwp-drw-bg-card);
	padding: 14px 8px 12px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	font-family: var(--mono, monospace);
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ink-soft, #4a4a48);
	text-decoration: none;
	position: relative;
	transition: background .2s ease, color .2s ease;
	-webkit-tap-highlight-color: transparent;
}
.lwp-mobile-drawer .lwp-drw-util:hover { background: #fff; color: var(--primary, #735c00); }
.lwp-mobile-drawer .lwp-drw-util .glyph {
	font-family: var(--serif, 'Playfair Display', serif);
	font-size: 22px;
	font-style: italic;
	line-height: 1;
	color: var(--ink, #1b1c1c);
	transition: color .2s ease;
}
.lwp-mobile-drawer .lwp-drw-util:hover .glyph { color: var(--primary, #735c00); }
.lwp-mobile-drawer .lwp-drw-util .badge {
	position: absolute;
	top: 8px;
	right: 14px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	background: var(--sale, #a33b3e);
	color: #fff;
	font-family: var(--mono, monospace);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0;
	border-radius: 9px;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Atelier pick card — single featured product, drawer-bottom anchor */
.lwp-mobile-drawer .lwp-drw-pick {
	margin: 14px 20px 0;
	background: var(--lwp-drw-bg-card);
	border: 1px solid var(--lwp-drw-line);
	border-radius: 12px;
	overflow: hidden;
	display: grid;
	grid-template-columns: 88px 1fr;
	gap: 0;
	text-decoration: none;
	color: inherit;
	flex: none;
	transition: border-color .2s ease;
}
.lwp-mobile-drawer .lwp-drw-pick:hover { border-color: var(--primary-light, #D4AF37); }
.lwp-mobile-drawer .lwp-drw-pick .img {
	background: linear-gradient(135deg, #3d2f1f, #7a5a2c) center/cover no-repeat;
	position: relative;
	min-height: 106px;
}
.lwp-mobile-drawer .lwp-drw-pick .img .stamp {
	position: absolute;
	top: 8px;
	left: 8px;
	background: rgba(27, 28, 28, .78);
	color: #fff;
	font-family: var(--mono, monospace);
	font-size: 8.5px;
	letter-spacing: .2em;
	text-transform: uppercase;
	padding: 3px 6px;
	border-radius: 2px;
}
.lwp-mobile-drawer .lwp-drw-pick .meta {
	padding: 12px 14px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 3px;
	min-width: 0;
}
.lwp-mobile-drawer .lwp-drw-pick .meta .lbl {
	font-family: var(--mono, monospace);
	font-size: 9.5px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--primary, #735c00);
}
.lwp-mobile-drawer .lwp-drw-pick .meta h4 {
	font-family: var(--serif, 'Playfair Display', serif);
	font-size: 15.5px;
	font-weight: 500;
	letter-spacing: -.005em;
	color: var(--ink, #1b1c1c);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	margin: 0;
}
.lwp-mobile-drawer .lwp-drw-pick .meta .mk {
	font-size: 11.5px;
	font-style: italic;
	color: var(--muted, #8a8780);
}
.lwp-mobile-drawer .lwp-drw-pick .meta .px {
	font-family: var(--serif, 'Playfair Display', serif);
	font-size: 14.5px;
	color: var(--primary, #735c00);
	margin-top: 2px;
}

/* Foot — language + social + contact, warm-deeper bg distinguishes it */
.lwp-mobile-drawer__foot {
	flex: none;
	border-top: 1px solid var(--lwp-drw-line);
	background: var(--lwp-drw-bg-deeper);
	/* Right padding bumped to clear the 48×48 mobile chat launcher (right:20 + 48 + 8 buffer) */
	padding: 14px 88px 18px 20px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 14px;
}
.lwp-mobile-drawer .lwp-drw-foot-row {
	display: flex;
	align-items: center;
	justify-content: flex-start; /* keep chips left-aligned so they never sit under the bottom-right chat launcher */
	gap: 14px;
	flex-wrap: wrap;
}
.lwp-mobile-drawer .lwp-drw-foot-lbl {
	font-family: var(--mono, monospace);
	font-size: 9.5px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--ink-soft, #4a4a48);
}
.lwp-mobile-drawer__lang {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}
.lwp-mobile-drawer__lang a,
.lwp-mobile-drawer__lang button {
	padding: 6px 10px;
	border: 1px solid var(--lwp-drw-line);
	background: var(--lwp-drw-bg-card);
	font-family: var(--mono, monospace);
	font-size: 10.5px;
	letter-spacing: .14em;
	color: var(--ink-soft, #4a4a48);
	border-radius: 3px;
	text-decoration: none;
	transition: all .2s ease;
	cursor: pointer;
}
.lwp-mobile-drawer__lang a.is-active,
.lwp-mobile-drawer__lang button.on {
	border-color: var(--primary, #735c00);
	color: var(--primary, #735c00);
	background: #fff;
}
.lwp-mobile-drawer__lang a:hover,
.lwp-mobile-drawer__lang button:hover {
	border-color: var(--primary-light, #D4AF37);
	color: var(--primary, #735c00);
}
.lwp-mobile-drawer .lwp-drw-social { display: flex; gap: 6px; }
.lwp-mobile-drawer .lwp-drw-social a {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: 1px solid var(--lwp-drw-line);
	background: var(--lwp-drw-bg-card);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--mono, monospace);
	font-size: 12px;
	color: var(--ink-soft, #4a4a48);
	font-weight: 500;
	text-decoration: none;
	transition: all .2s ease;
}
.lwp-mobile-drawer .lwp-drw-social a:hover {
	border-color: var(--primary, #735c00);
	color: var(--primary, #735c00);
	background: #fff;
}
.lwp-mobile-drawer .lwp-drw-contact {
	font-family: var(--mono, monospace);
	font-size: 10.5px;
	letter-spacing: .06em;
	color: var(--muted, #8a8780);
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-top: 2px;
	border-top: 1px dashed var(--lwp-drw-line);
	padding-top: 10px;
}
.lwp-mobile-drawer .lwp-drw-contact a {
	color: var(--ink-soft, #4a4a48);
	text-decoration: none;
	transition: color .15s ease;
}
.lwp-mobile-drawer .lwp-drw-contact a:hover { color: var(--primary, #735c00); }

/* Stagger entrance for L1 rows when drawer opens */
.lwp-mobile-drawer details.lwp-drw-acc,
.lwp-mobile-drawer .lwp-drw-flat {
	opacity: 0;
	transform: translateY(8px);
	transition: opacity .4s ease, transform .4s var(--lwp-drw-ease-snap);
}
.lwp-mobile-drawer.is-open details.lwp-drw-acc,
.lwp-mobile-drawer.is-open .lwp-drw-flat { opacity: 1; transform: none; }
.lwp-mobile-drawer.is-open details.lwp-drw-acc:nth-of-type(1) { transition-delay: .10s; }
.lwp-mobile-drawer.is-open details.lwp-drw-acc:nth-of-type(2) { transition-delay: .14s; }
.lwp-mobile-drawer.is-open details.lwp-drw-acc:nth-of-type(3) { transition-delay: .18s; }
.lwp-mobile-drawer.is-open details.lwp-drw-acc:nth-of-type(4) { transition-delay: .22s; }
.lwp-mobile-drawer.is-open .lwp-drw-flat:nth-of-type(1) { transition-delay: .26s; }
.lwp-mobile-drawer.is-open .lwp-drw-flat:nth-of-type(2) { transition-delay: .30s; }
.lwp-mobile-drawer.is-open .lwp-drw-flat:nth-of-type(3) { transition-delay: .34s; }
.lwp-mobile-drawer.is-open .lwp-drw-flat:nth-of-type(4) { transition-delay: .38s; }

/* Scrim — soft fade-in, slightly faster than the drawer transform.
 * Sits ABOVE the WP admin bar (32px sticky at top) and ABOVE any sticky
 * theme header so the drawer panel is the topmost UI when open. */
.lwp-mobile-scrim {
	position: fixed;
	inset: 0;
	background: rgba(27, 28, 28, 0);
	z-index: 100005;
	pointer-events: none;
	transition: background .32s var(--lwp-drw-ease-soft, cubic-bezier(.22, .61, .36, 1));
}

/* Hide / dim the host page's sticky header while the drawer is open so
 * its logo + icons don't peek through. Also dim the admin bar (logged-in
 * preview) so the operator sees the drawer cleanly on mobile sims. */
body.lwp-drw-locked .lwp-site-header,
body.lwp-drw-locked header.elementor-location-header,
body.lwp-drw-locked header.site-header,
body.lwp-drw-locked #masthead,
body.lwp-drw-locked #wpadminbar {
	z-index: 1 !important;
	pointer-events: none;
}
.lwp-mobile-scrim.is-open {
	background: rgba(27, 28, 28, .42);
	pointer-events: auto;
}

/* Reduced-motion: kill drawer animations entirely */
@media (prefers-reduced-motion: reduce) {
	.lwp-mobile-drawer,
	.lwp-mobile-scrim,
	.lwp-mobile-drawer .lwp-drw-acc-panel,
	.lwp-mobile-drawer details.lwp-drw-acc .pm::before,
	.lwp-mobile-drawer details.lwp-drw-acc .pm::after,
	.lwp-mobile-drawer details.lwp-drw-acc,
	.lwp-mobile-drawer .lwp-drw-flat,
	.lwp-mobile-drawer .lwp-drw-acc-list a::before,
	.lwp-mobile-drawer .lwp-drw-flat .arr,
	.lwp-mobile-drawer__close .bar {
		transition: none !important;
		animation: none !important;
	}
}

/* ─── Topbar social icons (left slot) — shipped in 1.7.10 after the
 * email channel was removed. Icons are inline SVG with currentColor so
 * they pick up the topbar's text color automatically (light strip on
 * dark bg). Hover lifts toward brand gold. */
.lwp-topbar-social {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	transition: color .15s ease, transform .15s ease;
	border-radius: 4px;
}
.lwp-topbar-social:hover,
.lwp-topbar-social:focus-visible {
	color: var(--primary-light, #D4AF37);
	transform: translateY(-1px);
}
.lwp-topbar-social svg {
	display: block;
	width: 14px;
	height: 14px;
}

/* Mobile breakpoint switch */
@media (max-width: 900px) {
	/* Hide desktop mega menu, show hamburger */
	.lwp-mm-top { display: none !important; }
	.lwp-mobile-toggle { display: inline-flex; }

	/* On mobile, scale socials down a touch and tighten the gap so the
	 * row + lang pill + Track order all fit on a 360px viewport. */
	.lwp-topbar-social { width: 22px; height: 22px; }
	.lwp-topbar-social svg { width: 12px; height: 12px; }
	.lwp-topbar-l { gap: 6px; }

	/* Topbar — single horizontal row on mobile.
	 * Left: social icon row (auto-collapses when no socials configured).
	 * Right: lang pill + track-order. DHL promo dropped on mobile since
	 * the strip is already tight. The email channel was removed entirely
	 * in 1.7.10 — operators expose contact via footer/drawer/chat. */
	.lwp-topbar-inner {
		flex-direction: row;
		gap: 12px;
		padding: 6px 12px;
		justify-content: space-between;
		align-items: center;
	}
	.lwp-topbar-l, .lwp-topbar-r {
		flex-wrap: nowrap;
		gap: 10px;
		font-size: 11px;
		white-space: nowrap;
		display: inline-flex;
		align-items: center;
	}
	.lwp-topbar-l { justify-content: flex-start; }
	.lwp-topbar-r { justify-content: flex-end; }
	.lwp-topbar-loc,
	.lwp-topbar-promo { display: none !important; }
	.lwp-topbar-track { font-size: 10.5px; }
	.lwp-topbar-r .lwp-topbar-sep { display: inline !important; opacity: .5; }

	/* Site header — single-row 3-grid: hamburger · logo · actions.
	 * Forces hamburger left, logo centered, action icons right; nothing
	 * wraps to a second row up to ~360px viewport because each column is
	 * sized off the fixed-width child. Matches the design-handoff `.ch-top`
	 * pattern from Mobile Spec Preview. */
	.lwp-site-header-inner {
		display: grid !important;
		grid-template-columns: auto 1fr auto;
		align-items: center;
		gap: 10px;
		padding: 10px 14px;
		flex-wrap: nowrap !important;
	}
	.lwp-mobile-toggle {
		grid-column: 1;
		justify-self: start;
	}
	.lwp-site-header-logo {
		grid-column: 2;
		justify-self: center;
		margin: 0 !important;
		max-width: 60vw;
	}
	.lwp-site-header-logo img,
	.lwp-site-header-logo .lwp-wordmark { max-height: 36px; max-width: 100%; height: auto; width: auto; }
	.lwp-site-header-actions {
		grid-column: 3;
		justify-self: end;
		gap: 6px;
		flex-wrap: nowrap;
	}
	.lwp-icon-btn { width: 36px; height: 36px; flex: none; }
	/* Hide the desktop megabar / mega menu wrapper so it doesn't claim a row */
	.lwp-site-header-inner > nav.lwp-mm,
	.lwp-site-header-inner .lwp-mm { display: none !important; }

	/* Cart drawer full-bleed on mobile */
	.lwp-cart-drawer__panel { width: 100% !important; max-width: 100% !important; }

	/* Search overlay padding */
	.lwp-search-panel { padding: 24px 16px !important; }
	.lwp-search-input { font-size: 18px !important; }

	/* PDP — gallery + summary stack vertically */
	.woocommerce div.product .images,
	.woocommerce div.product .summary,
	.woocommerce div.product div.images,
	.woocommerce div.product div.summary {
		float: none !important;
		width: 100% !important;
		margin: 0 0 24px !important;
	}
	.woocommerce div.product .product_title { font-size: 26px !important; }
	.woocommerce div.product .price { font-size: 22px !important; }
	.woocommerce-tabs { padding: 0 !important; }
	.woocommerce-tabs ul.tabs { flex-wrap: wrap; gap: 8px; }
	.woocommerce-tabs ul.tabs li { flex: 0 0 auto; }
	.woocommerce-tabs ul.tabs li a { font-size: 12px !important; padding: 8px 12px !important; }

	/* PDP sticky bar — already covered at 600px in widgets.css; tighten
	 * the 600-900 band so the title doesn't overlap the CTA */
	.lwp-pdp-sticky__inner { padding: 12px 16px; gap: 12px; }
	.lwp-pdp-sticky__thumb { width: 48px; height: 48px; }
	.lwp-pdp-sticky__title { font-size: 14px; }

	/* Single post / page — narrower readable column.
	 * Use side padding only — preserve default vertical padding (top:64px gives breadcrumb space under sticky header). */
	.lwp-single, .lwp-page { padding-left: 16px !important; padding-right: 16px !important; }
	.lwp-single h1, .lwp-page h1 { font-size: 28px !important; line-height: 1.2; }

	/* Footer — stack columns */
	.lwp-footer-cols, .site-footer .widget-area {
		grid-template-columns: 1fr !important;
		gap: 28px !important;
	}

	/* Product card meta — slightly tighter on mobile */
	.lwp-pcard-meta { padding: 12px 14px 14px; gap: 4px; }
	.lwp-pcard-title { font-size: 16px; }
	.lwp-pcard-price { font-size: 18px; gap: 8px; }
}

@media (max-width: 600px) {
	/* One-column product grid is already set in woo-overrides.css. Just
	 * trim card paddings further so the image gets maximum width. */
	.lwp-pcard-meta { padding: 12px 12px 14px; }
	.lwp-pcard-cat { font-size: 9.5px; letter-spacing: .14em; }

	/* Hide language pill (drawer foot has it) — saves topbar real estate */
	.lwp-lang-pill { display: none; }
	.lwp-topbar-track { font-size: 10.5px; }

	/* PDP gallery — square thumbs only */
	.flex-control-thumbs li { width: 25% !important; }
}

/* ═════════════════════════════════════════════════════════════════════ */
/*  UI-FIXES END                                                          */
/* ═════════════════════════════════════════════════════════════════════ */

/* V54 BEGIN — homepage infobar native icon-box skin (2026-05-11)
 * Replaces the single HTML widget `tap_infobar_html` with 4 native
 * Elementor `icon-box` widgets inside `tap_infobar_col`. This layer
 * restores the original dark-band 4-grid look (gold circular icons,
 * white serif-bold titles, muted mono captions) on top of Elementor's
 * default icon-box markup, so the operator can edit each cell from the
 * Elementor visual editor while the brand styling stays intact.
 *
 * Selectors are scoped to `.elementor-element-tap_hp_infobar` so they
 * cannot bleed into other icon-box widgets on the site.
 */

/* Section already has background:#1A1612 from element settings; the
 * grid layout for the 4 icon-boxes lives here. */
html body .elementor-element-tap_infobar_col > .elementor-column-wrap > .elementor-widget-wrap,
html body .elementor-element-tap_infobar_col > .elementor-widget-wrap,
html body .elementor-element.elementor-element-tap_infobar_col .elementor-widget-wrap {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px !important;
  align-items: center;
}

/* Per-item wrapper — kill the default block margin/padding so the
 * grid cells sit tight. */
html body .elementor-element-tap_hp_infobar .elementor-widget-icon-box {
  width: 100%;
  max-width: 100%;
  margin: 0;
}
html body .elementor-element-tap_hp_infobar .elementor-icon-box-wrapper {
  display: flex;
  align-items: center;
  gap: 14px;
  text-align: left;
}

/* Icon — gold circular badge on dark-on-gold background, matching
 * the original `.tap-info-item .ic` rule. */
html body .elementor-element-tap_hp_infobar .elementor-icon-box-icon {
  margin: 0;
  flex-shrink: 0;
}
html body .elementor-element-tap_hp_infobar .elementor-icon-box-icon .elementor-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(212, 175, 55, .14);
  border: 1px solid rgba(212, 175, 55, .35);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #D4AF37;
  font-size: 26px;
  padding: 0;
  box-shadow: 0 0 0 0 rgba(212, 175, 55, 0);
  transition: box-shadow 240ms ease;
}
html body .elementor-element-tap_hp_infobar .elementor-icon-box-icon:hover .elementor-icon {
  box-shadow: 0 0 0 6px rgba(212, 175, 55, .08);
}
html body .elementor-element-tap_hp_infobar .elementor-icon-box-icon .elementor-icon svg,
html body .elementor-element-tap_hp_infobar .elementor-icon-box-icon .elementor-icon i {
  color: #D4AF37 !important;
  fill: currentColor;
  font-size: 24px !important;
  width: 24px !important;
  height: 24px !important;
  line-height: 1 !important;
}
@media (max-width: 767px) {
  html body .elementor-element-tap_hp_infobar .elementor-icon-box-icon .elementor-icon {
    width: 44px;
    height: 44px;
    font-size: 20px;
  }
  html body .elementor-element-tap_hp_infobar .elementor-icon-box-icon .elementor-icon svg,
  html body .elementor-element-tap_hp_infobar .elementor-icon-box-icon .elementor-icon i {
    font-size: 19px !important;
    width: 19px !important;
    height: 19px !important;
  }
}

/* Title — white Inter bold. */
html body .elementor-element-tap_hp_infobar .elementor-icon-box-content {
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
html body .elementor-element-tap_hp_infobar .elementor-icon-box-title {
  margin: 0;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  color: #fff;
}
html body .elementor-element-tap_hp_infobar .elementor-icon-box-title a,
html body .elementor-element-tap_hp_infobar .elementor-icon-box-title span {
  color: inherit;
}

/* Description — JetBrains Mono muted caption. */
html body .elementor-element-tap_hp_infobar .elementor-icon-box-description {
  margin: 0;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .06em;
  color: #a89d85;
  line-height: 1.4;
}

/* Mobile: collapse to 2 columns at <=768px to match the original
 * @media breakpoint of the legacy HTML widget. */
@media (max-width: 768px) {
  html body .elementor-element-tap_infobar_col .elementor-widget-wrap {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 18px !important;
  }
}
@media (max-width: 480px) {
  html body .elementor-element-tap_hp_infobar .elementor-icon-box-title { font-size: 13px; }
  html body .elementor-element-tap_hp_infobar .elementor-icon-box-description { font-size: 10.5px; }
}
/* end V54 */

/* ─── HP native-widget skin (Tapadum demo homepage) ─────────────────────
 * Replaces the inline <style> blocks that used to live inside each big
 * HTML widget on the homepage. The HTML widgets were decomposed into
 * native Elementor widgets (heading / text-editor / button) plus small
 * focused HTML widgets for layout-heavy groups (CTA rows, stat grids,
 * card grids). Class hooks like .tap-eyebrow / .tap-section-title /
 * .tap-lead / .tap-btn-link-as-button now live on the .elementor-element
 * wrapper instead of the bare HTML — selectors below are scoped to the
 * inner Elementor markup.
 *
 * @since 1.7.8
 */

/* === Hero section vertical column stack === */
.elementor-element-tap_hero_l .elementor-widget-wrap {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.elementor-element-tap_hero_l .elementor-widget-text-editor {
  width: auto;
}

/* Eyebrow (small uppercase tag — used everywhere) */
.tap-eyebrow .elementor-heading-title {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: #9A7B3A;
  font-weight: 600;
}
.tap-eyebrow-dark .elementor-heading-title { color: #D4AF37; }

/* H1 hero title */
.tap-h1 .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: 72px;
  line-height: 1.05;
  letter-spacing: -1px;
  color: #1A1612;
  margin: 0;
  text-wrap: pretty;
}
.tap-h1 .elementor-heading-title em {
  font-style: italic;
  color: #9A7B3A;
}

/* Section h2 title (atelier / categories / products / masters / yt / journal) */
.tap-section-title .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: 48px;
  line-height: 1.1;
  letter-spacing: -.5px;
  color: #1A1612;
  margin: 0;
}
.tap-section-title .elementor-heading-title em {
  font-style: italic;
  color: #9A7B3A;
}
.tap-section-title-dark .elementor-heading-title { color: #fff; }

/* Lead paragraph (under hero h1 + atelier h2) */
.tap-lead .elementor-widget-container p {
  font-family: 'Inter', sans-serif;
  font-size: 17px;
  line-height: 1.65;
  color: #3a342c;
  margin: 0;
  max-width: 520px;
}

/* CTA button styles for native button widgets */
.tap-btn-link-as-button .elementor-button {
  background: transparent !important;
  color: #1A1612 !important;
  border: 0 !important;
  border-bottom: 1px solid #1A1612 !important;
  border-radius: 0 !important;
  padding: 4px 0 6px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  transition: color .15s, border-color .15s !important;
  box-shadow: none !important;
  letter-spacing: 0 !important;
}
.tap-btn-link-as-button .elementor-button:hover {
  color: #9A7B3A !important;
  border-color: #9A7B3A !important;
  background: transparent !important;
}
.tap-btn-link-as-button-dark .elementor-button {
  color: #fff !important;
  border-color: #fff !important;
}
.tap-btn-link-as-button-dark .elementor-button:hover {
  color: #D4AF37 !important;
  border-color: #D4AF37 !important;
}

/* CTA row (small HTML widget) */
.tap-hero-cta {
  display: flex;
  gap: 18px;
  align-items: center;
  margin-top: 6px;
  flex-wrap: wrap;
}
.tap-btn-primary {
  padding: 14px 28px;
  background: #1A1612;
  color: #fff;
  border-radius: 8px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  letter-spacing: .02em;
  transition: all .2s;
}
.tap-btn-primary:hover {
  background: #9A7B3A;
  transform: translateY(-2px);
  box-shadow: 0 12px 24px -10px rgba(154, 123, 58, .55);
  color: #fff;
}
.tap-btn-link {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #1A1612;
  text-decoration: none;
  border-bottom: 1px solid #1A1612;
  padding-bottom: 2px;
  transition: all .15s;
}
.tap-btn-link:hover { color: #9A7B3A; border-color: #9A7B3A; }

/* Hero stats grid (small HTML widget) */
.tap-hero-stats {
  display: flex;
  gap: 36px;
  margin-top: 24px;
  padding-top: 32px;
  border-top: 1px solid #E8DFC8;
}
.tap-stat { display: flex; flex-direction: column; gap: 4px; }
.tap-stat-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 36px;
  font-weight: 500;
  color: #1A1612;
  line-height: 1;
}
.tap-stat-lbl {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: #8b7f6a;
  line-height: 1.5;
}

/* Hero RIGHT — pill + image + card overlay (small HTML widgets, all
 * absolutely positioned inside the column for the overlapping look). */
.elementor-element-tap_hero_r { position: relative; min-height: 520px; }
.tap-hero-pill {
  position: absolute;
  top: -18px;
  right: 32px;
  z-index: 3;
  background: #fff;
  border: 1px solid #E8DFC8;
  padding: 8px 16px;
  border-radius: 999px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #3a342c;
  box-shadow: 0 8px 20px -8px rgba(0, 0, 0, .15);
}
.tap-hero-pill::before {
  content: '●';
  color: #3A7A4A;
  margin-right: 6px;
  animation: tap-blink 2s infinite;
}
@keyframes tap-blink { 50% { opacity: .4; } }
.tap-hero-img {
  aspect-ratio: 4 / 5;
  background: linear-gradient(135deg, #3d2f1f, #7a5a2c);
  border-radius: 8px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 30px 60px -20px rgba(60, 40, 0, .4);
}
.tap-placeholder {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .2em;
  color: rgba(255, 255, 255, .4);
  text-transform: uppercase;
  text-align: center;
  width: 80%;
}
.tap-hero-img-tag {
  position: absolute;
  top: 24px;
  left: 24px;
  background: rgba(0, 0, 0, .5);
  backdrop-filter: blur(8px);
  padding: 10px 14px;
  border-radius: 6px;
  color: #fff;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  display: flex;
  flex-direction: column;
  gap: 2px;
  border: 1px solid rgba(255, 255, 255, .1);
}
.tap-hero-img-tag strong {
  font-family: 'Cormorant Garamond', serif;
  font-size: 14px;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  color: #D4AF37;
}
.tap-hero-card {
  position: absolute;
  bottom: -40px;
  left: -40px;
  background: #fff;
  border-radius: 6px;
  padding: 18px 22px;
  box-shadow: 0 24px 60px -20px rgba(60, 40, 0, .35);
  display: flex;
  gap: 14px;
  align-items: center;
  border: 1px solid #E8DFC8;
  max-width: 340px;
  z-index: 2;
}
.tap-hero-card-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, #9A7B3A, #D4AF37);
  flex-shrink: 0;
}
.tap-hero-card-text { display: flex; flex-direction: column; gap: 2px; }
.tap-hero-card-text .nm {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #1A1612;
}
.tap-hero-card-text .role {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #8b7f6a;
}
.tap-hero-card-text .quote {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 13px;
  color: #3a342c;
  margin-top: 6px;
  line-height: 1.4;
}

/* === ATELIER section === */
.elementor-element-tap_atelier_l { position: relative; }
.tap-atelier-img {
  aspect-ratio: 4 / 5;
  background: linear-gradient(135deg, #c89a5a, #5a3a2a);
  border-radius: 8px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tap-atelier-pl {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .4);
  text-align: center;
  padding: 0 24px;
}
.tap-atelier-card {
  position: absolute;
  bottom: -32px;
  right: -32px;
  background: #fff;
  border: 1px solid #E8DFC8;
  border-radius: 6px;
  padding: 18px 22px;
  box-shadow: 0 24px 60px -20px rgba(60, 40, 0, .35);
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-width: 260px;
}
.tap-atelier-card .eb {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #8b7f6a;
}
.tap-atelier-card strong {
  font-family: 'Cormorant Garamond', serif;
  font-size: 20px;
  font-weight: 500;
  color: #1A1612;
}
.tap-atelier-card .sub {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: #3a342c;
}

.elementor-element-tap_atelier_r .elementor-widget-wrap {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.tap-bullets {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.tap-bullets li {
  display: flex;
  gap: 18px;
  align-items: flex-start;
}
.tap-bullets li > span {
  font-family: 'Cormorant Garamond', serif;
  font-size: 24px;
  color: #9A7B3A;
  font-weight: 500;
  line-height: 1;
  flex-shrink: 0;
  min-width: 32px;
}
.tap-bullets li strong {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: #1A1612;
  margin-bottom: 4px;
}
.tap-bullets li div {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: #3a342c;
}

/* === Section-head grid layout (cats / products / masters / yt / journal) === */
/* Each section column has: eyebrow + h2 + button + grid-html in a 2-col 3-row grid. */
.elementor-element-tap_cat_col .elementor-widget-wrap,
.elementor-element-tap_prod_col .elementor-widget-wrap,
.elementor-element-tap_masters_col .elementor-widget-wrap,
.elementor-element-tap_yt_col .elementor-widget-wrap,
.elementor-element-tap_journal_col .elementor-widget-wrap {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 24px;
  align-items: end;
}
.elementor-element-tap_cat_col .tap-eyebrow,
.elementor-element-tap_prod_col .tap-eyebrow,
.elementor-element-tap_masters_col .tap-eyebrow,
.elementor-element-tap_yt_col .tap-eyebrow,
.elementor-element-tap_journal_col .tap-eyebrow { grid-column: 1; grid-row: 1; }
.elementor-element-tap_cat_col .tap-section-title,
.elementor-element-tap_prod_col .tap-section-title,
.elementor-element-tap_masters_col .tap-section-title,
.elementor-element-tap_yt_col .tap-section-title,
.elementor-element-tap_journal_col .tap-section-title { grid-column: 1; grid-row: 2; }
.elementor-element-tap_cat_col .tap-btn-link-as-button,
.elementor-element-tap_prod_col .tap-btn-link-as-button,
.elementor-element-tap_masters_col .tap-btn-link-as-button,
.elementor-element-tap_yt_col .tap-btn-link-as-button,
.elementor-element-tap_journal_col .tap-btn-link-as-button {
  grid-column: 2;
  grid-row: 2;
  align-self: end;
}
.elementor-element-tap_cat_col .tap-cat-grid-block,
.elementor-element-tap_prod_col .tap-prod-pills-block,
.elementor-element-tap_masters_col .tap-masters-grid-block,
.elementor-element-tap_yt_col .tap-yt-grid-block,
.elementor-element-tap_journal_col .tap-journal-grid-block {
  grid-column: 1 / -1;
  grid-row: 3;
  margin-top: 32px;
}

/* === Categories grid (HTML widget content) === */
.tap-cat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.tap-cat {
  position: relative;
  aspect-ratio: 4 / 3;
  border-radius: 8px;
  overflow: hidden;
  text-decoration: none;
  padding: 24px;
  display: flex;
  flex-direction: column;
  /* space-between keeps the eyebrow at the top and the h3 + sub-text glued
   * to the bottom naturally, so the eyebrow no longer overlaps the title
   * when the card is short. Previously eyebrow was absolute-positioned and
   * stacked on top of the h3 on narrower viewports. */
  justify-content: space-between;
  color: #fff;
  transition: transform .25s;
}
.tap-cat:hover { transform: translateY(-3px); }
.tap-cat-eb {
  /* In-flow at the top of the flex column. The arrow ::after / .tap-cat-arrow
   * stays absolutely positioned because it's a hover-only affordance. */
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .8);
  display: block;
}
.tap-cat-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tap-cat h3 {
  font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  font-size: 32px;
  font-weight: 500;
  color: #fff;
  margin: 0 0 4px;
  line-height: 1.15;
}
.tap-cat-sub {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: rgba(255, 255, 255, .8);
  line-height: 1.4;
}
.tap-cat-arrow {
  position: absolute;
  top: 20px;
  right: 24px;
  color: #fff;
  font-size: 20px;
  opacity: 0;
  transform: translateX(-4px);
  transition: all .2s;
}
.tap-cat:hover .tap-cat-arrow { opacity: 1; transform: translateX(0); }

/* === Products pills (HTML widget content) === */
.tap-section-head-r {
  display: flex;
  align-items: center;
  gap: 24px;
}
.tap-pills {
  display: inline-flex;
  gap: 4px;
  background: #f6f3f2;
  padding: 4px;
  border-radius: 999px;
}
.tap-pills a {
  padding: 8px 16px;
  border-radius: 999px;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #3a342c;
  text-decoration: none;
  transition: all .15s;
}
.tap-pills a.on,
.tap-pills a:hover { background: #1A1612; color: #fff; }

/* === Masters section (on dark bg) === */
.elementor-element-tap_hp_masters { background: #1A1612; }
.tap-masters-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.tap-master {
  display: flex;
  flex-direction: column;
  gap: 12px;
  text-decoration: none;
  padding: 18px;
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 8px;
  transition: all .2s;
}
.tap-master:hover {
  background: rgba(255, 255, 255, .08);
  transform: translateY(-2px);
}
.tap-master-img {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Cormorant Garamond', serif;
  font-size: 26px;
  font-weight: 500;
  color: #fff;
}
.tap-master-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tap-master-meta h4 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 18px;
  font-weight: 500;
  color: #fff;
  margin: 0;
}
.tap-master-meta .loc,
.tap-master-meta .spec,
.tap-master-meta .count {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #a89d85;
}
.tap-master-meta .count { color: #D4AF37; margin-top: 4px; }

/* === YouTube grid === */
.tap-yt-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.tap-yt {
  display: flex;
  flex-direction: column;
  gap: 12px;
  text-decoration: none;
}
.tap-yt-thumb {
  aspect-ratio: 16 / 9;
  border-radius: 6px;
  position: relative;
  overflow: hidden;
}
.tap-yt-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 52px;
  height: 52px;
  background: rgba(255, 255, 255, .92);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #1A1612;
  font-size: 16px;
  padding-left: 4px;
}
.tap-yt-time {
  position: absolute;
  right: 10px;
  bottom: 10px;
  background: rgba(0, 0, 0, .75);
  color: #fff;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  padding: 3px 6px;
  border-radius: 4px;
}
.tap-yt-meta { display: flex; flex-direction: column; gap: 4px; }
.tap-yt-meta h4 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 18px;
  font-weight: 500;
  color: #1A1612;
  margin: 0;
}
.tap-yt-meta span {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  color: #8b7f6a;
}

/* === Journal grid === */
.tap-journal-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 18px;
}
.tap-jnl {
  display: flex;
  flex-direction: column;
  gap: 14px;
  text-decoration: none;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #f0ebe0;
}
.tap-jnl-big { grid-row: span 1; }
.tap-jnl-img {
  aspect-ratio: 16 / 10;
  border-radius: 8px 8px 0 0;
}
.tap-jnl-big .tap-jnl-img { aspect-ratio: 4 / 3; }
.tap-jnl-meta {
  padding: 16px 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.tap-jnl-meta .eb {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #8b7f6a;
}
.tap-jnl-meta h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 18px;
  font-weight: 500;
  color: #1A1612;
  margin: 0;
  line-height: 1.3;
}
.tap-jnl-big .tap-jnl-meta h3 { font-size: 24px; }
.tap-jnl-meta .date {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: #8b7f6a;
  letter-spacing: .12em;
}

/* === Responsive collapses === */
@media (max-width: 1024px) {
  .tap-h1 .elementor-heading-title { font-size: 52px; }
  .tap-section-title .elementor-heading-title { font-size: 36px; }
  .tap-cat-grid,
  .tap-masters-grid,
  .tap-yt-grid { grid-template-columns: repeat(2, 1fr); }
  .tap-journal-grid { grid-template-columns: 1fr 1fr; }
  .elementor-element-tap_hero_r { min-height: auto; }
  .tap-hero-card { position: static; margin-top: 24px; max-width: none; }
  .tap-atelier-card { position: static; margin-top: -24px; margin-left: 24px; max-width: none; }
}
@media (max-width: 600px) {
  .tap-h1 .elementor-heading-title { font-size: 40px; }
  .tap-section-title .elementor-heading-title { font-size: 28px; }
  .tap-hero-stats { gap: 20px; }
  .tap-stat-num { font-size: 28px; }
  .tap-cat-grid { grid-template-columns: 1fr; }
  .tap-masters-grid,
  .tap-yt-grid,
  .tap-journal-grid { grid-template-columns: 1fr; }
  .elementor-element-tap_cat_col .elementor-widget-wrap,
  .elementor-element-tap_prod_col .elementor-widget-wrap,
  .elementor-element-tap_masters_col .elementor-widget-wrap,
  .elementor-element-tap_yt_col .elementor-widget-wrap,
  .elementor-element-tap_journal_col .elementor-widget-wrap {
    grid-template-columns: 1fr;
  }
  .elementor-element-tap_cat_col .tap-btn-link-as-button,
  .elementor-element-tap_prod_col .tap-btn-link-as-button,
  .elementor-element-tap_masters_col .tap-btn-link-as-button,
  .elementor-element-tap_yt_col .tap-btn-link-as-button,
  .elementor-element-tap_journal_col .tap-btn-link-as-button {
    grid-column: 1;
    grid-row: 3;
    justify-self: start;
  }
}
/* end HP native-widget skin */

/* ─── About + Contact native-widget skin ────────────────────────────
 * Companion to the HP native skin — handles the styling for the
 * decomposed widgets on /about-gold/ and /contact-gold/. Same pattern:
 * class hooks on the .elementor-element wrapper get scoped to the
 * inner Elementor markup.
 *
 * @since 1.7.8
 */

/* Breadcrumb (shared) */
.tap-breadcrumb {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #8b7f6a;
}
.tap-breadcrumb a {
  color: #8b7f6a;
  text-decoration: none;
  transition: color .15s;
}
.tap-breadcrumb a:hover { color: #9A7B3A; }
.tap-breadcrumb span:not(:first-child) { margin: 0 8px; }

/* About hero h1 — slightly different sizing from homepage h1 */
.tap-h1-about .elementor-heading-title {
  font-size: 60px;
  max-width: 1100px;
}
.tap-h1-contact .elementor-heading-title {
  font-size: 60px;
}

/* Atelier story image — about-page variant (different aspect ratio) */
.tap-atelier-img-ab { aspect-ratio: 4 / 5; }

/* === About timeline === */
.elementor-element-tap_ab_timeline { background: #1A1612; }
.tap-tl {
  display: flex;
  flex-direction: column;
  gap: 36px;
  margin-top: 12px;
}
.tap-tl-row {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 36px;
  align-items: start;
  padding-bottom: 36px;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.tap-tl-row:last-child { border-bottom: 0; }
.tap-tl-row .yr {
  font-family: 'Cormorant Garamond', serif;
  font-size: 48px;
  font-weight: 500;
  color: #D4AF37;
  line-height: 1;
}
.tap-tl-row h4 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 22px;
  font-weight: 500;
  color: #fff;
  margin: 0 0 8px;
}
.tap-tl-row p {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.65;
  color: #a89d85;
  margin: 0;
  max-width: 720px;
}

/* === Contact main blocks === */
.tap-ct-blocks {
  display: flex;
  flex-direction: column;
  gap: 28px;
  margin-top: 36px;
}
.tap-ct-blocks > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-bottom: 24px;
  border-bottom: 1px solid #E8DFC8;
}
.tap-ct-blocks > div:last-child { border-bottom: 0; }
.tap-ct-blocks .eb {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #8b7f6a;
}
.tap-ct-blocks strong {
  font-family: 'Cormorant Garamond', serif;
  font-size: 20px;
  font-weight: 500;
  color: #1A1612;
  margin: 4px 0;
}
.tap-ct-blocks p {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  line-height: 1.6;
  color: #3a342c;
  margin: 0;
}

/* === Contact form === */
.tap-form {
  background: #faf6ee;
  border: 1px solid #E8DFC8;
  border-radius: 8px;
  padding: 36px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.tap-form h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 28px;
  font-weight: 500;
  color: #1A1612;
  margin: 0;
}
.tap-form .sub {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: #8b7f6a;
  margin: 0 0 8px;
}
.tap-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.tap-form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #8b7f6a;
}
.tap-form input,
.tap-form select,
.tap-form textarea {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  padding: 12px 14px;
  border: 1px solid #E8DFC8;
  border-radius: 6px;
  background: #fff;
  color: #1A1612;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.tap-form input:focus,
.tap-form select:focus,
.tap-form textarea:focus {
  border-color: #9A7B3A;
  box-shadow: 0 0 0 3px rgba(154, 123, 58, .12);
}
.tap-form label.chk {
  flex-direction: row;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  text-transform: none;
  letter-spacing: 0;
  color: #3a342c;
}
.tap-form label.chk input {
  width: 16px;
  height: 16px;
  padding: 0;
}
.tap-form button[type="submit"] {
  align-self: flex-start;
  padding: 14px 32px;
  background: #1A1612;
  color: #fff;
  border-radius: 8px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .02em;
  border: 0;
  cursor: pointer;
  transition: all .2s;
}
.tap-form button[type="submit"]:hover {
  background: #9A7B3A;
  transform: translateY(-2px);
  box-shadow: 0 12px 24px -10px rgba(154, 123, 58, .55);
}
.tap-form-msg {
  display: none;
  padding: 14px 18px;
  background: #e8f3e8;
  border: 1px solid #b8d8b8;
  border-radius: 6px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: #2a5a1f;
  margin-top: 4px;
}

/* === Contact map === */
.tap-map {
  height: 420px;
  background: linear-gradient(135deg, #3a342c, #1A1612);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
}
.tap-map .pl {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .4);
}

/* === Responsive collapses (about + contact) === */
@media (max-width: 1024px) {
  .tap-h1-about .elementor-heading-title,
  .tap-h1-contact .elementor-heading-title { font-size: 44px; }
  .tap-tl-row { grid-template-columns: 80px 1fr; gap: 18px; }
  .tap-tl-row .yr { font-size: 32px; }
}
@media (max-width: 600px) {
  .tap-h1-about .elementor-heading-title,
  .tap-h1-contact .elementor-heading-title { font-size: 32px; }
  .tap-tl-row { grid-template-columns: 1fr; gap: 8px; }
  .tap-form { padding: 24px; }
  .tap-form-row { grid-template-columns: 1fr; }
  .tap-map { height: 280px; }
}
/* end About + Contact native-widget skin */

/* ─── lwp-pcard image fit override (defeat legacy Kit CSS) ─────────────
 * Legacy Kit CSS V42/V43/V44/V47 layers target the OLD default WC card
 * (`ul.products li.product img`) with `width:auto !important; height:auto
 * !important; object-fit:contain`. That rule still ships in the Kit and
 * wins over the theme's `.lwp-pcard-img img { width:100%; height:100% }`
 * by specificity, leaving non-square product photos rendering at their
 * natural ratio inside a 1:1 wrapper — empty band below the image, exactly
 * the symptom the operator screenshotted.
 *
 * This override gives the new card markup max specificity + !important
 * so the image always fills the square wrapper regardless of which Kit
 * CSS layer happens to be in play.
 *
 * @since 1.7.8
 */
/* Padding-bottom aspect-ratio polyfill — bulletproof 1:1 square regardless
 * of how Kit CSS or flex parents interact with the CSS `aspect-ratio`
 * property. `padding-bottom: 100%` of width gives a square box; height is
 * forced to 0 and children are positioned absolutely. Works in every
 * browser back to IE11 and is immune to flex-item aspect-ratio quirks. */
html body #primary .woocommerce ul.products li.lwp-pcard .lwp-pcard-img,
html body #primary ul.products li.lwp-pcard .lwp-pcard-img,
html body .woocommerce ul.products li.lwp-pcard .lwp-pcard-img,
html body .woocommerce-page ul.products li.lwp-pcard .lwp-pcard-img,
html body ul.products li.lwp-pcard .lwp-pcard-img,
html body li.lwp-pcard .lwp-pcard-img {
  width: 100% !important;
  padding: 0 0 100% 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: 1 / 1 !important;
  overflow: hidden !important;
  background: linear-gradient(135deg, #f0e6d0, #d4c19a) !important;
  border-radius: 6px !important;
  position: relative !important;
  margin: 0 !important;
  display: block !important;
}
html body #primary .woocommerce ul.products li.lwp-pcard .lwp-pcard-img img,
html body #primary ul.products li.lwp-pcard .lwp-pcard-img img,
html body .woocommerce ul.products li.lwp-pcard .lwp-pcard-img img,
html body .woocommerce ul.products li.lwp-pcard .lwp-pcard-img .lwp-pcard-thumb,
html body .woocommerce ul.products li.lwp-pcard .lwp-pcard-img a img,
html body .woocommerce ul.products li.lwp-pcard a.lwp-pcard-link .lwp-pcard-img img,
html body .woocommerce ul.products li.lwp-pcard a:first-of-type .lwp-pcard-img img,
html body .woocommerce ul.products li.lwp-pcard .lwp-pcard-img .wp-post-image,
html body .woocommerce ul.products li.lwp-pcard .lwp-pcard-img .attachment-woocommerce_thumbnail,
html body .woocommerce-page ul.products li.lwp-pcard .lwp-pcard-img img,
html body ul.products li.lwp-pcard .lwp-pcard-img img,
html body li.lwp-pcard .lwp-pcard-img img {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  min-height: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  aspect-ratio: auto !important;
  border-radius: 0 !important;
}

/* Archive toolbar: shrink the WC result-count + ordering on mobile.
 * Legacy Kit CSS V32/V37 stamped a larger uppercase font on these via
 * `ul.products`-adjacent selectors, overshadowing the theme's 10.5px
 * mono rule. Higher specificity + !important brings the operator's
 * "SHOWING 1-16 OF 128 RESULTS" line back to one row on phones. */
html body .woocommerce .woocommerce-result-count,
html body .woocommerce-page .woocommerce-result-count {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: #8a8780 !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
  line-height: 1.4 !important;
  float: none !important;
}
html body .woocommerce .woocommerce-ordering,
html body .woocommerce-page .woocommerce-ordering {
  margin: 0 0 16px !important;
  float: none !important;
}
html body .woocommerce .woocommerce-ordering select,
html body main.lwp-shop-archive .woocommerce-ordering select {
  font-family: var(--mono, 'JetBrains Mono', monospace) !important;
  font-size: 11px !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: var(--ink, #1b1c1c) !important;
  background: #fff !important;
  border: 1px solid var(--line, #e8e2d3) !important;
  border-radius: var(--radius-pill, 999px) !important;
  padding: 10px 38px 10px 18px !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none' stroke='%23735c00' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><polyline points='1,1 5,5 9,1'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  background-size: 10px 6px !important;
  cursor: pointer !important;
  transition: border-color 200ms ease, box-shadow 200ms ease !important;
  min-width: 220px;
}
html body .woocommerce .woocommerce-ordering select:hover,
html body main.lwp-shop-archive .woocommerce-ordering select:hover {
  border-color: var(--primary, #735c00) !important;
}
html body .woocommerce .woocommerce-ordering select:focus,
html body main.lwp-shop-archive .woocommerce-ordering select:focus {
  outline: none !important;
  border-color: var(--primary, #735c00) !important;
  box-shadow: 0 0 0 3px rgba(115, 92, 0, .14) !important;
}
@media (max-width: 767px) {
  html body .woocommerce .woocommerce-result-count,
  html body .woocommerce-page .woocommerce-result-count,
  html body main.lwp-shop-archive .woocommerce-result-count,
  html body main.lwp-page .woocommerce-result-count {
    font-size: 10px !important;
    letter-spacing: .10em !important;
    padding: 6px 16px 0 !important;
    line-height: 1.4 !important;
    white-space: normal !important;
  }
  html body .woocommerce .woocommerce-ordering select,
  html body main.lwp-shop-archive .woocommerce-ordering select {
    font-size: 10.5px !important;
    padding: 10px 34px 10px 14px !important;
    min-width: 0 !important;
    width: 100% !important;
  }
}

/* Belt-and-braces cart-mobile guard: even if the grid-template-columns
 * cascade leaks, force single-column + 100% width on phones so the
 * sidebar never escapes the viewport. */
@media (max-width: 1024px) {
  .lwp-cart-form,
  .lwp-cart-summary,
  .cart-collaterals,
  .lwp-cart-grid,
  .lwp-cart-list {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }
  .lwp-cart-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* ─── PDP product gallery (WooCommerce native + Flexslider) ──────────────
 * The default markup ships `<div class="woocommerce-product-gallery__image">`
 * with inline `width: 594px` set by Flexslider for desktop multi-slide view.
 * On mobile this overflows the 487px viewport horizontally (image wraps to
 * x=626/1220/1814 of the same row). Clamp every gallery slide + image to
 * the wrapper width so each slide fills exactly one screen. */
.woocommerce-product-gallery {
  max-width: 100% !important;
  width: 100% !important;
  margin: 0 auto !important;
  position: relative;
}
.woocommerce-product-gallery .flex-viewport,
.woocommerce-product-gallery .woocommerce-product-gallery__wrapper,
.woocommerce-product-gallery__image {
  max-width: 100% !important;
  width: 100% !important;
}
.woocommerce-product-gallery__image,
.woocommerce-product-gallery__image a {
  display: block;
  box-sizing: border-box;
}
.woocommerce-product-gallery__image img,
.woocommerce-product-gallery__image a img {
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  display: block;
  object-fit: contain;
}
/* Flexslider thumbnail nav — wrap into a grid that fills the gallery
 * width instead of inheriting Flexslider's inline `width: 594px` per
 * <li> which overflows narrow viewports. 5 thumbs per row on tablet,
 * 4 per row on mobile, no horizontal scroll. The <ul> + <li> need
 * `position: static !important` because Flexslider's runtime JS sets
 * `position: absolute` on individual thumbs in some configurations,
 * which makes every <li> stack on top of each other (mobile bug
 * reported 2026-05-12). `height: auto` on the <ul> beats Flexslider's
 * inline fixed height that's calculated for one-row layouts. */
.woocommerce-product-gallery .flex-control-nav.flex-control-thumbs {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px;
  margin: 12px 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  position: relative !important;
  overflow: visible !important;
}
.woocommerce-product-gallery .flex-control-nav.flex-control-thumbs li {
  width: calc((100% - 32px) / 5) !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  float: none !important;
  position: static !important;
  top: auto !important;
  left: auto !important;
  height: auto !important;
}
.woocommerce-product-gallery .flex-control-nav.flex-control-thumbs li img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
  cursor: pointer;
  border: 1px solid var(--line, #e8e2d3);
  border-radius: 4px;
  opacity: .8;
  transition: opacity 200ms ease, border-color 200ms ease;
}
.woocommerce-product-gallery .flex-control-nav.flex-control-thumbs li img:hover,
.woocommerce-product-gallery .flex-control-nav.flex-control-thumbs li img.flex-active {
  opacity: 1;
  border-color: var(--primary, #735c00);
}
@media (max-width: 600px) {
  .woocommerce-product-gallery .flex-control-nav.flex-control-thumbs li {
    width: calc((100% - 24px) / 4) !important;
  }
}
/* WC sale badge — pinned to top-left, brand-red gold accent, no overflow.
 * Default WC styles position it relative which pushes other content. */
.woocommerce span.onsale {
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  min-width: 56px !important;
  min-height: 56px !important;
  width: auto !important;
  height: auto !important;
  padding: 8px 14px !important;
  background: var(--primary, #735c00) !important;
  color: #fff !important;
  border-radius: 999px !important;
  font-family: var(--mono, 'JetBrains Mono', monospace) !important;
  font-size: 11px !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  z-index: 5 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  line-height: 1 !important;
}
@media (max-width: 767px) {
  .woocommerce span.onsale {
    top: 8px !important;
    left: 8px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    font-size: 10px !important;
    padding: 6px 10px !important;
  }
  /* Single product PDP — kill horizontal overflow + clamp Elementor
   * built containers to the viewport so the gallery doesn't pan out. */
  body.single-product main,
  body.single-product main.lwp-pdp,
  body.single-product main .lwp-pdp-container,
  body.single-product main .e-con,
  body.single-product main .e-con-boxed,
  body.single-product main .elementor-section,
  body.single-product main .elementor-container {
    max-width: 100% !important;
    overflow-x: clip;
  }
  body.single-product main .elementor-widget-wrap,
  body.single-product main .e-con-inner {
    max-width: 100% !important;
  }
  /* Single product images everywhere on PDP — defensive clamp. */
  body.single-product main img {
    max-width: 100% !important;
    height: auto !important;
  }
}

/* ─── Blog single post container — wider mobile reading column ──────────
 * Operator preference: blog post body should occupy ~92% of mobile
 * viewport (~4vw padding per side). Live DOM nests <main class="lwp-page
 * lwp-journal-single"> > <article class="lwp-journal-article">; if both
 * received 5vw padding the column collapsed to ~80%. Push padding onto
 * the article only and zero the outer main's horizontal padding so the
 * insets don't compound. */
@media (max-width: 767px) {
  body.single-post main.lwp-page,
  body.single-post main.lwp-journal-single,
  body.single-post main.lwp-single {
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }
  body.single-post .lwp-journal-article,
  body.single-post article.lwp-journal-article,
  body.single-post article.lwp-single,
  body.single-post article.lwp-journal {
    padding-left: 4vw !important;
    padding-right: 4vw !important;
    box-sizing: border-box;
  }
}

/* ─── Mobile result-count + sort dropdown — final defensive sizing ──────
 * Operator reports the SHOWING ALL N RESULTS line and SORT BY PRICE
 * dropdown are still too large on phones. The earlier rule at line 5985
 * targets `.woocommerce-result-count` but the operator's archive renders
 * inside `.lwp-shop-archive` + a Gold-specific toolbar wrapper. Add the
 * higher-specificity selectors + clamp the SELECT element itself. */
@media (max-width: 767px) {
  html body main .woocommerce-result-count,
  html body main.lwp-shop-archive .woocommerce-result-count,
  html body .lwp-shop-archive .woocommerce-result-count {
    font-size: 10px !important;
    line-height: 1.4 !important;
    letter-spacing: .08em !important;
    padding: 6px 5vw 0 !important;
    margin: 0 0 8px !important;
    text-transform: uppercase;
    font-family: var(--mono, 'JetBrains Mono', monospace) !important;
    white-space: normal !important;
  }
  html body main .woocommerce-ordering,
  html body main.lwp-shop-archive .woocommerce-ordering {
    margin: 0 5vw 12px !important;
    padding: 0 !important;
  }
  html body main .woocommerce-ordering select,
  html body main.lwp-shop-archive .woocommerce-ordering select {
    font-size: 10.5px !important;
    letter-spacing: .06em !important;
    padding: 8px 28px 8px 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    line-height: 1.4 !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
 * 1.7.9 — tablet/desktop/mobile responsive polish
 * ═══════════════════════════════════════════════════════════════════════
 * Sprint 2026-05-11 audit findings:
 *   1. Tablet (901–1100px): BLOG menu item overlaps the search icon
 *      because the .lwp-mm-top flex row + .lwp-site-header-actions wrap
 *      both compete for horizontal space and the 900px hamburger flip
 *      is too low. Tighten gaps + clamp font + nowrap.
 *   2. Top-level mega-menu labels wrap to two lines when the column is
 *      tight ("STRING INSTRUMENTS"). Force single-line.
 *   3. Mobile info-bar (`.tap-infobar`) — inline <style> in the homepage
 *      HTML widget shipped a too-tight 2-col grid that wraps "Before /
 *      every / dispatch" into 4 lines on a 360px viewport. Override with
 *      higher-specificity rules so existing imported data benefits without
 *      a re-import.
 * ═══════════════════════════════════════════════════════════════════════ */

/* (1) Top-level mega menu: keep labels single-line at every breakpoint
 * where the desktop menu is visible. */
.lwp-mm-top > li > a {
	white-space: nowrap;
}

/* (2) Tablet squeeze (901px–1100px): tighten gaps, shrink font slightly,
 * cap link padding so all six top-level items + actions cluster fit on
 * a 1024px viewport without colliding. Keeps the desktop mega menu
 * visible (matches the design intent — hamburger only at <=900px). */
@media (min-width: 901px) and (max-width: 1100px) {
	.lwp-mm-top { gap: 18px; }
	.lwp-mm-top > li > a {
		font-size: 12px;
		letter-spacing: .06em;
		padding: 16px 0;
	}
	.lwp-mm-arrow { font-size: 10px; }
	/* Pull the action icon column tighter against the menu */
	.lwp-site-header-actions { gap: 4px; }
	.lwp-icon-btn { width: 36px; height: 36px; }
	/* Logo can sit closer to nav at this breakpoint */
	.lwp-site-header-logo img,
	.lwp-site-header-logo .lwp-wordmark { max-height: 38px; }
}

/* Even narrower fallback (901px–960px) — at this width the six menu
 * items + icons start to push past 1011px even with the tightening
 * above. Demote BLOG to the drawer-only list and let the mega menu
 * carry the five product navs. The drawer always renders BLOG in the
 * mobile list AND is reachable through the footer column "Journal",
 * so no functionality is lost. */
@media (min-width: 901px) and (max-width: 960px) {
	.lwp-mm-top > li.lwp-mm-blog,
	.lwp-mm-top > li[data-menu-slug="blog"],
	.lwp-mm-top > li:has(> a[href$="/blog/"]) {
		display: none;
	}
}

/* (3) Homepage info-bar mobile wrap fix.
 *
 * Root cause (audit 2026-05-11): the Elementor SECTION wrapping the
 * info-bar widget ships its own kit rule
 *   .elementor-element-tap_infobar_col .elementor-widget-wrap {
 *     display: grid !important;
 *     grid-template-columns: repeat(4, 1fr) !important;
 *   }
 *   @media(max-width:768px) { grid-template-columns: repeat(2, 1fr) !important; }
 * meant for when each icon ships as its own widget. The homepage kit
 * actually consolidates all four icons into ONE html widget that does
 * its own internal grid — so the outer "4-column wrap" sandwich
 * collapses the single child to ~244px on mobile, which is why the
 * inner grid columns become ~110px and the text wraps to 4–5 lines.
 *
 * Fix: force the OUTER `.elementor-widget-wrap` of the info-bar
 * section to `display:block` so the single child fills the column,
 * then the inner `.tap-infobar` runs its own 2-up grid cleanly. */
html body .elementor-element.elementor-element-tap_infobar_col .elementor-widget-wrap {
	display: block !important;
	grid-template-columns: none !important;
}
html body .elementor-element.elementor-element-tap_infobar_col .elementor-widget-wrap > .elementor-element {
	width: 100% !important;
}

/* Tighten typography + sizing on the inner items. Specificity 0,2,1
 * (body .tap-infobar X) wins over the inline <style> default 0,1,1. */
@media (max-width: 768px) {
	body .tap-infobar { gap: 14px 12px; }
	body .tap-infobar .tap-info-item { gap: 10px; align-items: flex-start; }
	body .tap-infobar .tap-info-item strong {
		font-size: 13px;
		letter-spacing: .005em;
		line-height: 1.25;
	}
	body .tap-infobar .tap-info-item span {
		font-size: 10.5px;
		letter-spacing: .04em;
		line-height: 1.35;
		display: block;
		word-spacing: -0.02em;
	}
}
@media (max-width: 480px) {
	body .tap-infobar { grid-template-columns: repeat(2, 1fr) !important; gap: 12px 10px !important; }
	body .tap-infobar .tap-info-item .ic {
		width: 32px; height: 32px;
		font-size: 14px;
	}
	body .tap-infobar .tap-info-item strong { font-size: 12.5px; }
	body .tap-infobar .tap-info-item span { font-size: 10px; }
}

/* end 1.7.9 */

/* ─── tap-infobar trust signal: icon centering ──────────────────────────
 * The .ic round badge uses display:flex + align-items:center +
 * justify-content:center, BUT Unicode glyphs (⚙ ✈ ↺ ★) sit on their
 * font baseline which is below the visual center of the glyph box.
 * Plus the default line-height: normal (~1.2) inflates the line-box and
 * pushes glyphs downward inside the round. Pin line-height:1 and
 * normalize via grid place-items so any future glyph (emoji, ligature)
 * lands dead-center too. Specificity 0,3,1 beats the inline <style>
 * rule (0,1,1) carried in the HP HTML widget. */
body .tap-infobar .tap-info-item .ic {
  display: grid !important;
  place-items: center !important;
  line-height: 1 !important;
  text-align: center !important;
  font-style: normal !important;
  /* Unicode glyphs have inconsistent left-bearing; nudge slightly to
   * compensate. Most musical/symbolic glyphs from the system fallback
   * fonts (Segoe UI Symbol on Windows, Apple Color Emoji on Mac) carry
   * 0-2px of left-bearing. */
  padding: 0 !important;
}

/* YouTube Channel widget BEGIN -- lwp-youtube-channel (1.7.10) */
.lwp-ytc {
  --lwp-ytc-card-bg: #fff;
  --lwp-ytc-card-border: #E8DFC8;
  --lwp-ytc-title-color: #1A1612;
  --lwp-ytc-byline-color: #8b7f6a;
  --lwp-ytc-yt-red: #ff0033;
  --lwp-ytc-ink: var(--lwp-ink, #1b1c1c);
  --lwp-ytc-gold: var(--primary-light, #D4AF37);
  max-width: 1372px;
  margin: 0 auto;
}

.lwp-ytc-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  margin-bottom: 48px;
  flex-wrap: wrap;
}
.lwp-ytc-head__copy { min-width: 0; }
.lwp-ytc-head__actions {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.lwp-ytc-eyebrow {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #9A7B3A;
  font-weight: 600;
  display: block;
  margin-bottom: 10px;
}
.lwp-ytc-title {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: clamp(28px, 4vw, 48px);
  color: var(--lwp-ytc-ink);
  margin: 0;
  line-height: 1.1;
  text-wrap: pretty;
}

.lwp-ytc-cta {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--lwp-ytc-ink);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding: 0 0 2px;
  transition: color 0.25s ease, border-color 0.25s ease;
  white-space: nowrap;
}
.lwp-ytc-cta:hover { color: #9A7B3A; border-color: #9A7B3A; }

/* Subscribe button -- minimalist pill with idle pulse + hover fill. */
.lwp-ytc-sub {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 16px 9px 13px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--lwp-ytc-ink);
  text-decoration: none;
  background: transparent;
  border: 1px solid var(--lwp-ytc-card-border);
  border-radius: 999px;
  overflow: hidden;
  isolation: isolate;
  transition: color 0.3s ease, border-color 0.3s ease, transform 0.2s ease, box-shadow 0.3s ease;
  white-space: nowrap;
}
.lwp-ytc-sub::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--lwp-ytc-yt-red);
  transform: translateX(-101%);
  transition: transform 0.4s cubic-bezier(0.65, 0, 0.35, 1);
  z-index: -1;
}
.lwp-ytc-sub:hover,
.lwp-ytc-sub:focus-visible {
  color: #fff;
  border-color: var(--lwp-ytc-yt-red);
  box-shadow: 0 6px 18px -8px rgba(255, 0, 51, 0.55);
}
.lwp-ytc-sub:hover::before,
.lwp-ytc-sub:focus-visible::before { transform: translateX(0); }
.lwp-ytc-sub:active { transform: translateY(1px); }
.lwp-ytc-sub:focus-visible { outline: 2px solid var(--lwp-ytc-gold); outline-offset: 3px; }

.lwp-ytc-sub__icon {
  display: inline-flex;
  align-items: center;
  color: var(--lwp-ytc-yt-red);
  transition: color 0.3s ease, transform 0.3s ease;
  position: relative;
  z-index: 1;
}
.lwp-ytc-sub__icon svg { display: block; }
.lwp-ytc-sub:hover .lwp-ytc-sub__icon,
.lwp-ytc-sub:focus-visible .lwp-ytc-sub__icon { color: #fff; transform: scale(1.08); }

.lwp-ytc-sub__label { position: relative; z-index: 1; }

/* Idle pulse -- soft red halo behind the icon. */
.lwp-ytc-sub__pulse {
  position: absolute;
  left: 11px;
  top: 50%;
  width: 22px;
  height: 16px;
  border-radius: 4px;
  background: var(--lwp-ytc-yt-red);
  transform: translateY(-50%) scale(0.9);
  opacity: 0.5;
  z-index: 0;
  pointer-events: none;
  animation: lwp-ytc-sub-pulse 2.6s ease-out infinite;
}
@keyframes lwp-ytc-sub-pulse {
  0%   { opacity: 0.45; transform: translateY(-50%) scale(0.9); }
  60%  { opacity: 0;    transform: translateY(-50%) scale(1.8); }
  100% { opacity: 0;    transform: translateY(-50%) scale(1.8); }
}
.lwp-ytc-sub:hover .lwp-ytc-sub__pulse,
.lwp-ytc-sub:focus-visible .lwp-ytc-sub__pulse { animation-play-state: paused; opacity: 0; }

@media (prefers-reduced-motion: reduce) {
  .lwp-ytc-sub::before { transition: none; }
  .lwp-ytc-sub__pulse  { animation: none; opacity: 0; }
  .lwp-ytc-sub__icon   { transition: none; }
}

/* Admin-only placeholder shown when no videos are configured yet. */
.lwp-ytc-placeholder {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 28px 32px;
  background: #fff8e1;
  border: 1px dashed #c89a5a;
  border-radius: 8px;
  color: #5a4520;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
}
.lwp-ytc-placeholder strong { font-size: 15px; color: #1b1c1c; }
.lwp-ytc-placeholder span { opacity: 0.85; }

/* Video grid + card */
.lwp-ytc-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.lwp-ytc[data-columns="3"] .lwp-ytc-grid { grid-template-columns: repeat(3, 1fr); }
.lwp-ytc[data-columns="2"] .lwp-ytc-grid { grid-template-columns: repeat(2, 1fr); }

.lwp-ytc-card {
  background: var(--lwp-ytc-card-bg);
  border-radius: 8px;
  overflow: hidden;
  text-decoration: none;
  color: var(--lwp-ytc-title-color);
  display: flex;
  flex-direction: column;
  border: 1px solid var(--lwp-ytc-card-border);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.lwp-ytc-card:hover,
.lwp-ytc-card:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 18px 36px -16px rgba(60, 40, 0, 0.25);
  border-color: var(--lwp-ytc-gold);
}
.lwp-ytc-card:focus-visible { outline: 2px solid var(--lwp-ytc-gold); outline-offset: 3px; }

.lwp-ytc-thumb {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #0e0a06;
}
.lwp-ytc-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.lwp-ytc-card:hover .lwp-ytc-thumb img { transform: scale(1.05); }

.lwp-ytc-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: #1A1612;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  padding-left: 4px;
  transition: transform 0.25s ease, background-color 0.25s ease, color 0.25s ease;
}
.lwp-ytc-card:hover .lwp-ytc-play,
.lwp-ytc-card:focus-visible .lwp-ytc-play {
  transform: translate(-50%, -50%) scale(1.12);
  background: var(--lwp-ytc-gold);
  color: #1A1612;
}

.lwp-ytc-time {
  position: absolute;
  bottom: 10px;
  right: 10px;
  background: rgba(0, 0, 0, 0.75);
  color: #fff;
  padding: 3px 8px;
  border-radius: 4px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.lwp-ytc-meta {
  padding: 16px 18px 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.lwp-ytc-meta h4 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: 17px;
  color: var(--lwp-ytc-title-color);
  margin: 0;
  line-height: 1.3;
  text-wrap: pretty;
}
.lwp-ytc-byline {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--lwp-ytc-byline-color);
  text-transform: uppercase;
}

/* Responsive */
@media (max-width: 1024px) {
  .lwp-ytc-grid,
  .lwp-ytc[data-columns="3"] .lwp-ytc-grid,
  .lwp-ytc[data-columns="4"] .lwp-ytc-grid { grid-template-columns: repeat(2, 1fr); }
  .lwp-ytc-head { margin-bottom: 32px; }
}
@media (max-width: 600px) {
  .lwp-ytc-grid,
  .lwp-ytc[data-columns="2"] .lwp-ytc-grid,
  .lwp-ytc[data-columns="3"] .lwp-ytc-grid,
  .lwp-ytc[data-columns="4"] .lwp-ytc-grid { grid-template-columns: 1fr; gap: 16px; }
  .lwp-ytc-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
  .lwp-ytc-head__actions { width: 100%; }
}
/* end YouTube Channel widget */

/* Instagram Channel widget BEGIN -- lwp-instagram-channel (1.7.10) */
.lwp-igc {
  --lwp-igc-tile-border: #E8DFC8;
  --lwp-igc-title-color: #1A1612;
  --lwp-igc-ink: var(--lwp-ink, #1b1c1c);
  --lwp-igc-gold: var(--primary-light, #D4AF37);
  --lwp-igc-grad: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
  --lwp-igc-grad-dark: linear-gradient(45deg, #c66f1f 0%, #b35131 25%, #aa1a35 50%, #9a1a4d 75%, #8e0f63 100%);
  max-width: 1372px;
  margin: 0 auto;
}

.lwp-igc-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  margin-bottom: 48px;
  flex-wrap: wrap;
}
.lwp-igc-head__copy { min-width: 0; }
.lwp-igc-head__actions {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.lwp-igc-eyebrow {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #9A7B3A;
  font-weight: 600;
  display: block;
  margin-bottom: 10px;
}
.lwp-igc-title {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: clamp(28px, 4vw, 48px);
  color: var(--lwp-igc-ink);
  margin: 0;
  line-height: 1.1;
  text-wrap: pretty;
}
.lwp-igc-cta {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--lwp-igc-ink);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding: 0 0 2px;
  transition: color 0.25s ease, border-color 0.25s ease;
  white-space: nowrap;
}
.lwp-igc-cta:hover { color: #9A7B3A; border-color: #9A7B3A; }

/* Follow button -- Instagram brand gradient with hover fill + idle shimmer. */
.lwp-igc-follow {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 16px 9px 14px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--lwp-igc-ink);
  text-decoration: none;
  background: transparent;
  border: 1px solid var(--lwp-igc-tile-border);
  border-radius: 999px;
  overflow: hidden;
  isolation: isolate;
  transition: color 0.3s ease, border-color 0.3s ease, transform 0.2s ease, box-shadow 0.3s ease;
  white-space: nowrap;
}
.lwp-igc-follow::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--lwp-igc-grad);
  transform: translateX(-101%);
  transition: transform 0.4s cubic-bezier(0.65, 0, 0.35, 1);
  z-index: -1;
}
.lwp-igc-follow:hover,
.lwp-igc-follow:focus-visible {
  color: #fff;
  border-color: transparent;
  box-shadow: 0 8px 22px -10px rgba(220, 39, 67, 0.55);
}
.lwp-igc-follow:hover::before,
.lwp-igc-follow:focus-visible::before { transform: translateX(0); }
.lwp-igc-follow:active { transform: translateY(1px); }
.lwp-igc-follow:focus-visible { outline: 2px solid var(--lwp-igc-gold); outline-offset: 3px; }

.lwp-igc-follow__icon {
  display: inline-flex;
  align-items: center;
  position: relative;
  z-index: 1;
  /* The Instagram glyph itself is a gradient — we paint it via a
   * background-clipped SVG mask so it stays gradient at rest and flips
   * to white on hover. */
  color: transparent;
  background-image: var(--lwp-igc-grad);
  -webkit-background-clip: text;
  background-clip: text;
}
.lwp-igc-follow__icon svg {
  display: block;
  /* SVG strokes inherit currentColor — when the parent's `color` is
   * transparent the strokes vanish, so we explicitly set stroke via
   * a CSS var the SVG honours. */
  color: var(--lwp-igc-glyph, transparent);
  filter: drop-shadow(0 0 0 currentColor);
}
.lwp-igc-follow .lwp-igc-follow__icon { --lwp-igc-glyph: #dc2743; }
.lwp-igc-follow:hover .lwp-igc-follow__icon,
.lwp-igc-follow:focus-visible .lwp-igc-follow__icon { --lwp-igc-glyph: #fff; transform: scale(1.08); transition: transform 0.3s ease; }

.lwp-igc-follow__label { position: relative; z-index: 1; }
.lwp-igc-follow__handle {
  font-style: normal;
  font-weight: 500;
  opacity: 0.75;
  margin-left: 4px;
  letter-spacing: 0;
  text-transform: lowercase;
  font-size: 11px;
}

@media (prefers-reduced-motion: reduce) {
  .lwp-igc-follow::before { transition: none; }
  .lwp-igc-follow__icon { transition: none; }
}

/* Grid + tile */
.lwp-igc-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.lwp-igc[data-columns="6"] .lwp-igc-grid { grid-template-columns: repeat(6, 1fr); gap: 10px; }
.lwp-igc[data-columns="3"] .lwp-igc-grid { grid-template-columns: repeat(3, 1fr); }
.lwp-igc[data-columns="2"] .lwp-igc-grid { grid-template-columns: repeat(2, 1fr); }

.lwp-igc-tile {
  position: relative;
  display: block;
  background: var(--lwp-igc-tile-border);
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  text-decoration: none;
  isolation: isolate;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.lwp-igc-tile:hover,
.lwp-igc-tile:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 18px 36px -16px rgba(60, 40, 0, 0.25);
}
.lwp-igc-tile:focus-visible { outline: 2px solid var(--lwp-igc-gold); outline-offset: 3px; }
.lwp-igc-tile[aria-disabled="true"] { pointer-events: none; opacity: 0.6; }

.lwp-igc-thumb {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  background: var(--lwp-igc-grad);
}
.lwp-igc-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.lwp-igc-tile:hover .lwp-igc-thumb img { transform: scale(1.06); }

.lwp-igc-thumb__empty {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 42px;
  color: #fff;
  opacity: 0.7;
}

.lwp-igc-tile__overlay {
  position: absolute;
  inset: auto 0 0 0;
  padding: 14px 14px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: linear-gradient(to top, rgba(0,0,0,0.65), rgba(0,0,0,0.0));
  color: #fff;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.lwp-igc-tile:hover .lwp-igc-tile__overlay,
.lwp-igc-tile:focus-visible .lwp-igc-tile__overlay {
  opacity: 1;
  transform: translateY(0);
}
.lwp-igc-tile__kind {
  font-size: 18px;
  line-height: 1;
}
.lwp-igc-tile__caption {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 13px;
  line-height: 1.35;
  text-wrap: pretty;
}
.lwp-igc-tile__meta {
  position: absolute;
  top: 10px;
  right: 10px;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.08em;
  padding: 3px 7px;
  border-radius: 4px;
  text-transform: uppercase;
}

/* Responsive */
@media (max-width: 1024px) {
  .lwp-igc-grid,
  .lwp-igc[data-columns="6"] .lwp-igc-grid,
  .lwp-igc[data-columns="4"] .lwp-igc-grid { grid-template-columns: repeat(3, 1fr); }
  .lwp-igc-head { margin-bottom: 32px; }
}
@media (max-width: 600px) {
  .lwp-igc-grid,
  .lwp-igc[data-columns="2"] .lwp-igc-grid,
  .lwp-igc[data-columns="3"] .lwp-igc-grid,
  .lwp-igc[data-columns="4"] .lwp-igc-grid,
  .lwp-igc[data-columns="6"] .lwp-igc-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .lwp-igc-head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .lwp-igc-head__actions { width: 100%; }
  /* On mobile the hover-overlay is invisible — always show the caption strip. */
  .lwp-igc-tile__overlay { opacity: 1; transform: none; }
}
/* end Instagram Channel widget */

/* Section Head BEGIN -- lwp-section-head (1.7.11) */
.lwp-sh {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  margin-bottom: 48px;
  flex-wrap: wrap;
  max-width: 1372px;
  margin-left: auto;
  margin-right: auto;
}
.lwp-sh__copy { min-width: 0; }
.lwp-sh__right {
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: flex-end;
}
.lwp-sh__eyebrow {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  display: block;
  margin-bottom: 10px;
}
.lwp-sh__title {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: clamp(28px, 4vw, 48px);
  line-height: 1.1;
  letter-spacing: -0.5px;
  margin: 0;
  text-wrap: pretty;
}
.lwp-sh__title em { font-style: italic; color: #9A7B3A; }
.lwp-sh--light .lwp-sh__eyebrow { color: #9A7B3A; }
.lwp-sh--light .lwp-sh__title   { color: #1A1612; }
.lwp-sh--dark  .lwp-sh__eyebrow { color: #D4AF37; }
.lwp-sh--dark  .lwp-sh__title   { color: #fff; }

.lwp-sh__pills {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.lwp-sh__pill {
  padding: 8px 14px;
  border-radius: 20px;
  border: 1px solid #E8DFC8;
  background: #fff;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 12px;
  color: #3a342c;
  text-decoration: none;
  transition: all 0.15s ease;
  letter-spacing: 0.02em;
}
.lwp-sh__pill:hover { border-color: #9A7B3A; color: #9A7B3A; }
.lwp-sh__pill.is-on { background: #1A1612; border-color: #1A1612; color: #fff; }
.lwp-sh--dark .lwp-sh__pill { background: transparent; border-color: #3a342c; color: #fff; }
.lwp-sh--dark .lwp-sh__pill:hover { border-color: #D4AF37; color: #D4AF37; }
.lwp-sh--dark .lwp-sh__pill.is-on { background: #D4AF37; border-color: #D4AF37; color: #1A1612; }

.lwp-sh__cta {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding: 0 0 2px;
  transition: color 0.25s ease, border-color 0.25s ease;
  white-space: nowrap;
}
.lwp-sh--light .lwp-sh__cta { color: #1A1612; }
.lwp-sh--light .lwp-sh__cta:hover { color: #9A7B3A; border-color: #9A7B3A; }
.lwp-sh--dark  .lwp-sh__cta { color: #fff; }
.lwp-sh--dark  .lwp-sh__cta:hover { color: #D4AF37; border-color: #D4AF37; }

@media (max-width: 768px) {
  .lwp-sh { flex-direction: column; align-items: flex-start; margin-bottom: 32px; }
  .lwp-sh__right { align-items: flex-start; width: 100%; }
}
/* end Section Head */

/* Category Grid BEGIN -- lwp-category-grid (1.7.11) */
.lwp-cgrid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  max-width: 1372px;
  margin: 0 auto;
}
.lwp-cgrid[data-columns="3"] { grid-template-columns: repeat(3, 1fr); }
.lwp-cgrid[data-columns="2"] { grid-template-columns: repeat(2, 1fr); }

.lwp-cgrid__tile {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  aspect-ratio: 3 / 4;
  padding: 24px;
  border-radius: 8px;
  color: #fff;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.lwp-cgrid__tile::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.55), transparent 60%);
  pointer-events: none;
}
.lwp-cgrid__tile:hover,
.lwp-cgrid__tile:focus-visible {
  transform: translateY(-6px);
  box-shadow: 0 24px 48px -20px rgba(60, 40, 0, 0.5);
}
.lwp-cgrid__eyebrow {
  position: relative;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 8px;
}
.lwp-cgrid__title {
  position: relative;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: clamp(24px, 3vw, 34px);
  color: #fff;
  margin: 0 0 6px;
  line-height: 1.05;
}
.lwp-cgrid__sub {
  position: relative;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.5;
}
.lwp-cgrid__arrow {
  position: absolute;
  top: 24px;
  right: 24px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  transition: all 0.25s ease;
}
.lwp-cgrid__tile:hover .lwp-cgrid__arrow,
.lwp-cgrid__tile:focus-visible .lwp-cgrid__arrow {
  background: #fff;
  color: #1A1612;
  transform: rotate(-45deg);
}
@media (max-width: 1024px) {
  .lwp-cgrid,
  .lwp-cgrid[data-columns="3"],
  .lwp-cgrid[data-columns="4"] { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .lwp-cgrid,
  .lwp-cgrid[data-columns="2"],
  .lwp-cgrid[data-columns="3"],
  .lwp-cgrid[data-columns="4"] { grid-template-columns: 1fr; }
}
/* end Category Grid */

/* Master Grid BEGIN -- lwp-master-grid (1.7.11) */
.lwp-mgrid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  max-width: 1372px;
  margin: 0 auto;
}
.lwp-mgrid[data-columns="3"] { grid-template-columns: repeat(3, 1fr); }
.lwp-mgrid[data-columns="2"] { grid-template-columns: repeat(2, 1fr); }

.lwp-mgrid__card {
  border-radius: 8px;
  padding: 24px;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  gap: 18px;
  transition: transform 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}
.lwp-mgrid--dark .lwp-mgrid__card {
  background: #0e0a06;
  border: 1px solid #3a342c;
  color: #fff;
}
.lwp-mgrid--dark .lwp-mgrid__card:hover,
.lwp-mgrid--dark .lwp-mgrid__card:focus-visible {
  border-color: #D4AF37;
  transform: translateY(-4px);
  background: #15110b;
}
.lwp-mgrid--light .lwp-mgrid__card {
  background: #fff;
  border: 1px solid #E8DFC8;
  color: #1A1612;
}
.lwp-mgrid--light .lwp-mgrid__card:hover,
.lwp-mgrid--light .lwp-mgrid__card:focus-visible {
  border-color: #9A7B3A;
  transform: translateY(-4px);
  box-shadow: 0 18px 36px -16px rgba(60, 40, 0, 0.25);
}

.lwp-mgrid__avatar {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-style: italic;
  font-size: 36px;
  font-weight: 500;
  color: #fff;
  overflow: hidden;
}
.lwp-mgrid__avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }

.lwp-mgrid__name {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: 22px;
  margin: 0 0 4px;
}
.lwp-mgrid--dark  .lwp-mgrid__name { color: #fff; }
.lwp-mgrid--light .lwp-mgrid__name { color: #1A1612; }
.lwp-mgrid__loc {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #D4AF37;
  display: block;
  margin-bottom: 8px;
}
.lwp-mgrid__spec {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 13px;
  display: block;
  margin-bottom: 12px;
  font-style: italic;
}
.lwp-mgrid--dark  .lwp-mgrid__spec { color: #a89d85; }
.lwp-mgrid--light .lwp-mgrid__spec { color: #5a4f3e; }
.lwp-mgrid__count {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 11px;
  padding-top: 10px;
  display: block;
}
.lwp-mgrid--dark  .lwp-mgrid__count { color: #6b6151; border-top: 1px solid #3a342c; }
.lwp-mgrid--light .lwp-mgrid__count { color: #8b7f6a; border-top: 1px solid #E8DFC8; }

.lwp-mgrid__viewall { text-align: center; margin-top: 28px; }
.lwp-mgrid__viewall-link {
  display: inline-block;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-style: italic;
  font-size: 18px;
  letter-spacing: 0.02em;
  text-decoration: none;
  padding: 10px 22px;
  border-radius: 999px;
  transition: transform 0.18s ease, background 0.18s ease, color 0.18s ease;
}
.lwp-mgrid--dark  .lwp-mgrid__viewall-link { color: #D4AF37; border: 1px solid #3a342c; }
.lwp-mgrid--dark  .lwp-mgrid__viewall-link:hover,
.lwp-mgrid--dark  .lwp-mgrid__viewall-link:focus-visible { color: #fff; background: #D4AF37; border-color: #D4AF37; transform: translateY(-1px); }
.lwp-mgrid--light .lwp-mgrid__viewall-link { color: #9A7B3A; border: 1px solid #E8DFC8; }
.lwp-mgrid--light .lwp-mgrid__viewall-link:hover,
.lwp-mgrid--light .lwp-mgrid__viewall-link:focus-visible { color: #fff; background: #9A7B3A; border-color: #9A7B3A; transform: translateY(-1px); }

@media (max-width: 1024px) {
  .lwp-mgrid, .lwp-mgrid[data-columns="3"], .lwp-mgrid[data-columns="4"] { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .lwp-mgrid, .lwp-mgrid[data-columns="2"], .lwp-mgrid[data-columns="3"], .lwp-mgrid[data-columns="4"] { grid-template-columns: 1fr; }
}
/* end Master Grid */

/* Story Split BEGIN -- lwp-story-split (1.7.11) */
.lwp-story {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
  max-width: 1372px;
  margin: 0 auto;
}
.lwp-story[data-image-side="right"] .lwp-story__image-side { order: 2; }
.lwp-story[data-image-side="right"] .lwp-story__copy-side  { order: 1; }

.lwp-story__image {
  aspect-ratio: 5 / 6;
  border-radius: 8px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 30px 60px -20px rgba(60, 40, 0, 0.35);
  background-size: cover;
  background-position: center;
}
.lwp-story__card {
  position: absolute;
  bottom: 24px;
  left: 24px;
  right: 24px;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  padding: 18px 22px;
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.lwp-story__card-eb {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #9A7B3A;
  font-weight: 600;
}
.lwp-story__card strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 22px;
  font-weight: 500;
  color: #1A1612;
}
.lwp-story__card-sub {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 12px;
  color: #3a342c;
}

.lwp-story__copy-side {
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.lwp-story__eyebrow {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: #9A7B3A;
  font-weight: 600;
}
.lwp-story__title {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: clamp(32px, 4vw, 48px);
  line-height: 1.1;
  letter-spacing: -0.5px;
  color: #1A1612;
  margin: 0;
  text-wrap: pretty;
}
.lwp-story__title em { font-style: italic; color: #9A7B3A; }
.lwp-story__lead {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  color: #3a342c;
  margin: 0;
  max-width: 540px;
}

.lwp-story__bullets {
  list-style: none;
  padding: 0;
  margin: 8px 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  counter-reset: lwp-story-counter;
}
.lwp-story__bullets li {
  display: flex;
  gap: 18px;
  padding: 14px 0;
  border-top: 1px solid #E8DFC8;
}
.lwp-story__bullets li:last-child { border-bottom: 1px solid #E8DFC8; }
.lwp-story__num {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-style: italic;
  font-size: 24px;
  color: #9A7B3A;
  font-weight: 500;
  flex-shrink: 0;
  width: 36px;
}
.lwp-story__bullets div {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: #3a342c;
}
.lwp-story__bullets strong {
  display: block;
  color: #1A1612;
  font-weight: 600;
  margin-bottom: 2px;
}

.lwp-story__cta {
  align-self: flex-start;
  padding: 14px 28px;
  background: #1A1612;
  color: #fff;
  border-radius: 8px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  letter-spacing: 0.02em;
  transition: all 0.2s ease;
}
.lwp-story__cta:hover {
  background: #9A7B3A;
  transform: translateY(-2px);
  box-shadow: 0 12px 24px -10px rgba(154, 123, 58, 0.55);
  color: #fff;
}

@media (max-width: 900px) {
  .lwp-story { grid-template-columns: 1fr; gap: 32px; }
  .lwp-story[data-image-side="right"] .lwp-story__image-side,
  .lwp-story[data-image-side="right"] .lwp-story__copy-side { order: initial; }
}
/* end Story Split */

/* WC Products shortcode skin BEGIN -- targets [products class="tap-products"] (1.7.11) */
.tap-products .products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 20px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.tap-products .product {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #f0e6d0;
  position: relative;
  display: flex !important;
  flex-direction: column;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.tap-products .product:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 50px -22px rgba(60, 40, 0, 0.25);
}
.tap-products .woocommerce-loop-product__title {
  font-family: "Cormorant Garamond", Georgia, serif !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  color: #1A1612;
  padding: 14px 16px 4px !important;
  line-height: 1.3;
}
.tap-products .price {
  padding: 0 16px 14px !important;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 18px;
  color: #1A1612;
}
.tap-products .price del { color: #8b7f6a; font-size: 14px; margin-right: 6px; }
.tap-products .price ins { text-decoration: none; color: #9A7B3A; font-weight: 600; }
.tap-products .button,
.tap-products .added_to_cart { display: none !important; }
.tap-products .onsale {
  position: absolute;
  top: 14px;
  left: 14px;
  background: #C84B3A;
  color: #fff;
  padding: 4px 10px;
  border-radius: 20px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  z-index: 2;
}
.tap-products img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  width: 100%;
}
@media (max-width: 1024px) {
  .tap-products .products { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px) {
  .tap-products .products { grid-template-columns: 1fr !important; }
}
/* end WC Products shortcode skin */

/* Hero Split BEGIN -- lwp-hero-split (1.7.11) */
.lwp-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
  max-width: 1372px;
  margin: 0 auto;
}
.lwp-hero__copy {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.lwp-hero__eyebrow {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: #9A7B3A;
  font-weight: 600;
}
.lwp-hero__h1 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: clamp(40px, 6vw, 72px);
  line-height: 1.05;
  letter-spacing: -1px;
  color: #1A1612;
  margin: 0;
  text-wrap: pretty;
}
.lwp-hero__h1 em { font-style: italic; color: #9A7B3A; }
.lwp-hero__lead {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.65;
  color: #3a342c;
  margin: 0;
  max-width: 520px;
}

.lwp-hero__cta {
  display: flex;
  gap: 18px;
  align-items: center;
  margin-top: 6px;
  flex-wrap: wrap;
}
.lwp-hero__cta-primary {
  padding: 14px 28px;
  background: #1A1612;
  color: #fff;
  border-radius: 8px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  letter-spacing: 0.02em;
  transition: all 0.2s ease;
}
.lwp-hero__cta-primary:hover {
  background: #9A7B3A;
  transform: translateY(-2px);
  box-shadow: 0 12px 24px -10px rgba(154, 123, 58, 0.55);
  color: #fff;
}
.lwp-hero__cta-link {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #1A1612;
  text-decoration: none;
  border-bottom: 1px solid #1A1612;
  padding-bottom: 2px;
  transition: all 0.15s ease;
}
.lwp-hero__cta-link:hover { color: #9A7B3A; border-color: #9A7B3A; }

.lwp-hero__stats {
  display: flex;
  gap: 36px;
  margin-top: 24px;
  padding-top: 32px;
  border-top: 1px solid #E8DFC8;
}
.lwp-hero__stat {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.lwp-hero__stat-num {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 36px;
  font-weight: 500;
  color: #1A1612;
  line-height: 1;
}
.lwp-hero__stat-lbl {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #8b7f6a;
  line-height: 1.5;
}

/* Right side */
.lwp-hero__image-side {
  position: relative;
  min-height: 520px;
}
.lwp-hero__pill {
  position: absolute;
  top: -18px;
  right: 32px;
  z-index: 3;
  background: #fff;
  border: 1px solid #E8DFC8;
  padding: 8px 16px;
  border-radius: 999px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #3a342c;
  box-shadow: 0 8px 20px -8px rgba(0, 0, 0, 0.15);
}
.lwp-hero__pill::before {
  content: "●";
  color: #3A7A4A;
  margin-right: 6px;
  animation: lwp-hero-blink 2s infinite;
}
@keyframes lwp-hero-blink { 50% { opacity: 0.4; } }

.lwp-hero__image {
  aspect-ratio: 4 / 5;
  border-radius: 8px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 30px 60px -20px rgba(60, 40, 0, 0.4);
}
.lwp-hero__tag {
  position: absolute;
  top: 24px;
  left: 24px;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(8px);
  padding: 10px 14px;
  border-radius: 6px;
  color: #fff;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  display: flex;
  flex-direction: column;
  gap: 2px;
  border: 1px solid rgba(255, 255, 255, 0.1);
}
.lwp-hero__tag strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 14px;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  color: #D4AF37;
}

.lwp-hero__quote {
  position: absolute;
  bottom: -40px;
  left: -40px;
  background: #fff;
  border-radius: 6px;
  padding: 18px 22px;
  box-shadow: 0 24px 60px -20px rgba(60, 40, 0, 0.35);
  display: flex;
  gap: 14px;
  align-items: center;
  border: 1px solid #E8DFC8;
  max-width: 340px;
  z-index: 2;
}
.lwp-hero__quote-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, #9A7B3A, #D4AF37);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: 22px;
  overflow: hidden;
}
.lwp-hero__quote-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.lwp-hero__quote-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.lwp-hero__quote-name {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #1A1612;
}
.lwp-hero__quote-role {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #8b7f6a;
}
.lwp-hero__quote-q {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-style: italic;
  font-size: 13px;
  color: #3a342c;
  margin-top: 6px;
  line-height: 1.4;
}

@media (max-width: 1024px) {
  .lwp-hero { grid-template-columns: 1fr; gap: 56px; }
  .lwp-hero__image-side { min-height: auto; }
  .lwp-hero__quote { position: static; margin-top: 24px; max-width: none; }
  .lwp-hero__h1 { font-size: clamp(36px, 8vw, 52px); }
}
@media (max-width: 600px) {
  .lwp-hero__h1 { font-size: clamp(30px, 9vw, 40px); }
  .lwp-hero__stats { gap: 20px; flex-wrap: wrap; }
  .lwp-hero__stat-num { font-size: 28px; }
  .lwp-hero__pill { right: 16px; }
}
/* end Hero Split */

/* Testimonials BEGIN -- lwp-testimonials (1.7.11) */
.lwp-tst { max-width: 1372px; margin: 0 auto; }
.lwp-tst__track {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.lwp-tst[data-layout="carousel"] .lwp-tst__track {
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: minmax(320px, 1fr);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding: 0 24px;
  padding-bottom: 8px;
}
.lwp-tst[data-layout="carousel"] .lwp-tst__card { scroll-snap-align: start; }
.lwp-tst__card {
  background: #fff;
  border: 1px solid #E8DFC8;
  border-radius: 10px;
  padding: 26px 26px 22px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.lwp-tst__stars { color: #D4AF37; font-size: 16px; letter-spacing: 2px; }
.lwp-tst__stars span { color: #E8DFC8; }
.lwp-tst__stars span.is-on { color: #D4AF37; }
.lwp-tst__quote {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-style: italic;
  font-size: 18px;
  line-height: 1.5;
  color: #1A1612;
  margin: 0;
  text-wrap: pretty;
}
.lwp-tst__foot { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 1px solid #E8DFC8; }
.lwp-tst__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lwp-tst__avatar img { width: 100%; height: 100%; object-fit: cover; }
.lwp-tst__avatar--initial {
  background: linear-gradient(135deg, #9A7B3A, #D4AF37);
  color: #fff;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-style: italic;
  font-size: 20px;
}
.lwp-tst__who { display: flex; flex-direction: column; gap: 2px; }
.lwp-tst__name { font-family: "Inter", system-ui, sans-serif; font-size: 13px; font-weight: 600; color: #1A1612; }
.lwp-tst__meta { font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: #8b7f6a; }
.lwp-tst__dots { display: flex; justify-content: center; gap: 8px; margin-top: 18px; }
@media (max-width: 900px) { .lwp-tst[data-layout="grid"] .lwp-tst__track { grid-template-columns: 1fr; } }
/* end Testimonials */

/* FAQ BEGIN -- lwp-faq (1.7.11) */
.lwp-faq { max-width: 880px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.lwp-faq__item {
  border: 1px solid #E8DFC8;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.lwp-faq__item[open] { border-color: #D4AF37; box-shadow: 0 12px 24px -16px rgba(60, 40, 0, 0.2); }
.lwp-faq__q {
  list-style: none;
  cursor: pointer;
  padding: 20px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 19px;
  font-weight: 500;
  color: #1A1612;
}
.lwp-faq__q::-webkit-details-marker { display: none; }
.lwp-faq__chev {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 24px;
  font-weight: 300;
  color: #9A7B3A;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.25s ease;
  flex-shrink: 0;
}
.lwp-faq__item[open] .lwp-faq__chev { transform: rotate(45deg); }
.lwp-faq__a {
  padding: 0 24px 22px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.65;
  color: #3a342c;
}
.lwp-faq__a p:first-child { margin-top: 0; }
.lwp-faq__a p:last-child { margin-bottom: 0; }
/* end FAQ */

/* Trust Badges BEGIN -- lwp-trust-badges (1.7.11) */
.lwp-tb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 32px;
  color: #3a342c;
}
.lwp-tb[data-align="center"] { justify-content: center; }
.lwp-tb[data-align="right"]  { justify-content: flex-end; }
.lwp-tb__item {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease, transform 0.2s ease;
}
.lwp-tb__item:hover { color: #9A7B3A; transform: translateY(-2px); }
.lwp-tb__item img { max-height: 40px; width: auto; display: block; }
.lwp-tb__item i, .lwp-tb__item svg { font-size: inherit; }
.lwp-tb__lbl {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
/* end Trust Badges */

/* Newsletter BEGIN -- lwp-newsletter (1.7.11) */
.lwp-nl {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
  max-width: 1240px;
  margin: 0 auto;
}
.lwp-nl__copy { display: flex; flex-direction: column; gap: 14px; }
.lwp-nl__eyebrow {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #9A7B3A;
  font-weight: 600;
}
.lwp-nl__title {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: clamp(26px, 3.5vw, 40px);
  color: #1A1612;
  margin: 0;
  line-height: 1.1;
}
.lwp-nl__lead {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 15px;
  color: #3a342c;
  margin: 0;
  line-height: 1.6;
}

.lwp-nl__form { display: flex; flex-direction: column; gap: 12px; }
.lwp-nl__field {
  display: flex;
  align-items: stretch;
  background: #fff;
  border: 1px solid #E8DFC8;
  border-radius: 999px;
  padding: 6px 6px 6px 22px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.lwp-nl__field:focus-within { border-color: #9A7B3A; box-shadow: 0 8px 24px -12px rgba(154, 123, 58, 0.4); }
.lwp-nl__field input[type="email"] {
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 15px;
  color: #1A1612;
  min-width: 0;
}
.lwp-nl__field button {
  border: 0;
  cursor: pointer;
  padding: 12px 22px;
  background: #1A1612;
  color: #fff;
  border-radius: 999px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.02em;
  transition: background-color 0.2s ease, transform 0.15s ease;
}
.lwp-nl__field button:hover { background: #9A7B3A; }
.lwp-nl__gdpr {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 12px;
  color: #5a4f3e;
  line-height: 1.5;
  cursor: pointer;
}
.lwp-nl__gdpr input[type="checkbox"] { margin-top: 3px; flex-shrink: 0; }
.lwp-nl__msg {
  min-height: 18px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 13px;
}
.lwp-nl__msg.is-ok    { color: #3A7A4A; }
.lwp-nl__msg.is-error { color: #C84B3A; }

.lwp-nl--dark { color: #fff; }
.lwp-nl--dark .lwp-nl__title { color: #fff; }
.lwp-nl--dark .lwp-nl__lead  { color: rgba(255, 255, 255, 0.75); }
.lwp-nl--dark .lwp-nl__field { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.2); }
.lwp-nl--dark .lwp-nl__field input[type="email"] { color: #fff; }
.lwp-nl--dark .lwp-nl__field input::placeholder  { color: rgba(255, 255, 255, 0.5); }
.lwp-nl--dark .lwp-nl__field button { background: #D4AF37; color: #1A1612; }
.lwp-nl--dark .lwp-nl__field button:hover { background: #fff; }
.lwp-nl--dark .lwp-nl__gdpr { color: rgba(255, 255, 255, 0.7); }

@media (max-width: 900px) { .lwp-nl { grid-template-columns: 1fr; gap: 24px; } }
/* end Newsletter */

/* Countdown BEGIN -- lwp-countdown (1.7.11) */
.lwp-cd { max-width: 1372px; margin: 0 auto; }
.lwp-cd[data-align="left"]   { text-align: left; }
.lwp-cd[data-align="center"] { text-align: center; }
.lwp-cd[data-align="right"]  { text-align: right; }
.lwp-cd__cells {
  display: inline-flex;
  gap: 16px;
  align-items: flex-start;
  flex-wrap: wrap;
}
.lwp-cd[data-align="center"] .lwp-cd__cells { justify-content: center; }
.lwp-cd[data-align="right"]  .lwp-cd__cells { justify-content: flex-end; }
.lwp-cd__cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  min-width: 78px;
  padding: 18px 14px;
  background: #fff;
  border: 1px solid #E8DFC8;
  border-radius: 8px;
}
.lwp-cd__num {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(34px, 5vw, 56px);
  font-weight: 500;
  line-height: 1;
  color: #1A1612;
  font-variant-numeric: tabular-nums;
}
.lwp-cd__lbl {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #8b7f6a;
}
.lwp-cd--dark .lwp-cd__cell { background: #15110b; border-color: #3a342c; }
.lwp-cd--dark .lwp-cd__num { color: #fff; }
.lwp-cd--dark .lwp-cd__lbl { color: #a89d85; }
.lwp-cd__expired {
  padding: 28px 24px;
  background: #FAF6EE;
  border: 1px solid #E8DFC8;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.lwp-cd__expired-btn {
  padding: 12px 24px;
  background: #1A1612;
  color: #fff;
  text-decoration: none;
  border-radius: 8px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  transition: background-color 0.2s ease;
}
.lwp-cd__expired-btn:hover { background: #9A7B3A; color: #fff; }
/* end Countdown */

/* CTA Banner BEGIN -- lwp-cta-banner (1.7.11) */
.lwp-ctab {
  position: relative;
  padding: clamp(48px, 8vw, 96px) 32px;
  border-radius: 8px;
  color: #fff;
  overflow: hidden;
}
.lwp-ctab__inner {
  max-width: 720px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.lwp-ctab[data-align="center"] { text-align: center; }
.lwp-ctab[data-align="center"] .lwp-ctab__inner { margin: 0 auto; align-items: center; }
.lwp-ctab[data-align="right"] { text-align: right; }
.lwp-ctab[data-align="right"] .lwp-ctab__inner { margin-left: auto; align-items: flex-end; }
.lwp-ctab__eyebrow {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #D4AF37;
  font-weight: 600;
}
.lwp-ctab__title {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: clamp(28px, 5vw, 56px);
  margin: 0;
  line-height: 1.1;
  text-wrap: pretty;
}
.lwp-ctab__title em { font-style: italic; color: #D4AF37; }
.lwp-ctab__lead {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
  margin: 0;
  max-width: 560px;
}
.lwp-ctab__btns { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 6px; }
.lwp-ctab[data-align="center"] .lwp-ctab__btns { justify-content: center; }
.lwp-ctab[data-align="right"]  .lwp-ctab__btns { justify-content: flex-end; }
.lwp-ctab__btn {
  display: inline-flex;
  align-items: center;
  padding: 14px 28px;
  border-radius: 8px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  letter-spacing: 0.02em;
  transition: background-color 0.2s ease, transform 0.15s ease, color 0.2s ease;
}
.lwp-ctab__btn--primary { background: #D4AF37; color: #1A1612; }
.lwp-ctab__btn--primary:hover { background: #fff; color: #1A1612; transform: translateY(-2px); }
.lwp-ctab__btn--ghost { background: transparent; color: #fff; border: 1px solid rgba(255, 255, 255, 0.4); }
.lwp-ctab__btn--ghost:hover { background: rgba(255, 255, 255, 0.1); border-color: #fff; color: #fff; }
/* end CTA Banner */

/* Stat Counter BEGIN -- lwp-stat-counter (1.7.11) */
.lwp-sc {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  max-width: 1372px;
  margin: 0 auto;
}
.lwp-sc[data-columns="2"] { grid-template-columns: repeat(2, 1fr); }
.lwp-sc[data-columns="3"] { grid-template-columns: repeat(3, 1fr); }
.lwp-sc[data-columns="6"] { grid-template-columns: repeat(6, 1fr); }
.lwp-sc__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 0 18px;
  position: relative;
}
.lwp-sc--dividers .lwp-sc__item:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 6px;
  bottom: 6px;
  width: 1px;
  background: #E8DFC8;
}
.lwp-sc__icon { color: #9A7B3A; font-size: 22px; margin-bottom: 8px; }
.lwp-sc__num {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(40px, 5vw, 64px);
  font-weight: 500;
  color: #1A1612;
  line-height: 1;
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
  font-variant-numeric: tabular-nums;
}
.lwp-sc__prefix, .lwp-sc__suffix { font-size: 0.6em; color: #9A7B3A; }
.lwp-sc__lbl {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #1A1612;
  margin-top: 6px;
}
.lwp-sc__sub {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.06em;
  color: #8b7f6a;
}
.lwp-sc--dark .lwp-sc__num { color: #fff; }
.lwp-sc--dark .lwp-sc__lbl { color: rgba(255, 255, 255, 0.85); }
.lwp-sc--dark .lwp-sc__sub { color: rgba(255, 255, 255, 0.55); }
.lwp-sc--dark.lwp-sc--dividers .lwp-sc__item:not(:last-child)::after { background: rgba(255, 255, 255, 0.15); }
@media (max-width: 900px) {
  .lwp-sc, .lwp-sc[data-columns="3"], .lwp-sc[data-columns="4"], .lwp-sc[data-columns="6"] { grid-template-columns: repeat(2, 1fr); }
  .lwp-sc--dividers .lwp-sc__item:not(:last-child)::after { display: none; }
}
@media (max-width: 480px) {
  .lwp-sc, .lwp-sc[data-columns="2"], .lwp-sc[data-columns="3"], .lwp-sc[data-columns="4"], .lwp-sc[data-columns="6"] { grid-template-columns: 1fr; }
}
/* end Stat Counter */

/* Process Steps BEGIN -- lwp-process-steps (1.7.11) */
.lwp-ps {
  list-style: none;
  padding: 0;
  margin: 0;
  max-width: 1372px;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  gap: 28px;
}
.lwp-ps--horizontal { grid-template-columns: repeat(var(--lwp-ps-count, 4), 1fr); }
.lwp-ps--horizontal[data-count="3"] { --lwp-ps-count: 3; }
.lwp-ps--horizontal[data-count="2"] { --lwp-ps-count: 2; }
.lwp-ps--horizontal[data-count="5"] { --lwp-ps-count: 5; }
.lwp-ps__step { position: relative; }
.lwp-ps__head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.lwp-ps__num {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #1A1612;
  color: #D4AF37;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-style: italic;
  font-size: 22px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.lwp-ps__icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #FAF6EE;
  color: #9A7B3A;
  font-size: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 1px solid #E8DFC8;
}
.lwp-ps__arrow {
  font-size: 18px;
  color: #9A7B3A;
  flex: 1;
  text-align: center;
  opacity: 0.5;
}
.lwp-ps__title {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: 22px;
  color: #1A1612;
  margin: 0 0 6px;
  line-height: 1.25;
  text-wrap: pretty;
}
.lwp-ps__body {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: #3a342c;
  margin: 0;
}
.lwp-ps--vertical { grid-template-columns: 1fr; }
.lwp-ps--vertical .lwp-ps__arrow { display: none; }
@media (max-width: 900px) {
  .lwp-ps--horizontal { grid-template-columns: 1fr; }
  .lwp-ps__arrow { display: none; }
}
/* end Process Steps */

/* AI Search Bar BEGIN -- lwp-ai-search (1.7.11) */
.lwp-ais { max-width: 720px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; }
.lwp-ais__bar {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  padding: 18px 22px;
  background: #fff;
  border: 1px solid #E8DFC8;
  border-radius: 999px;
  cursor: text;
  text-align: left;
  font-family: "Inter", system-ui, sans-serif;
  color: #8b7f6a;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}
.lwp-ais[data-size="large"] .lwp-ais__bar { padding: 22px 28px; font-size: 17px; }
.lwp-ais[data-size="medium"] .lwp-ais__bar { padding: 14px 20px; font-size: 14px; }
.lwp-ais__bar:hover { border-color: #9A7B3A; transform: translateY(-1px); box-shadow: 0 12px 24px -16px rgba(60, 40, 0, 0.2); }
.lwp-ais__icon { color: #9A7B3A; flex-shrink: 0; }
.lwp-ais__placeholder { flex: 1; }
.lwp-ais__badge {
  background: linear-gradient(135deg, #9A7B3A, #D4AF37);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 999px;
  font-family: "Inter", system-ui, sans-serif;
}
.lwp-ais__chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.lwp-ais__chip {
  background: transparent;
  border: 1px solid #E8DFC8;
  padding: 8px 14px;
  border-radius: 999px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 12px;
  color: #3a342c;
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease;
}
.lwp-ais__chip:hover { border-color: #9A7B3A; color: #9A7B3A; }
.lwp-ais--dark .lwp-ais__bar { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.2); color: rgba(255, 255, 255, 0.7); }
.lwp-ais--dark .lwp-ais__chip { border-color: rgba(255, 255, 255, 0.25); color: rgba(255, 255, 255, 0.8); }
.lwp-ais--dark .lwp-ais__chip:hover { border-color: #D4AF37; color: #D4AF37; }
/* end AI Search Bar */

/* Featured Product BEGIN -- lwp-featured-product (1.7.11) */
.lwp-fp {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
  max-width: 1240px;
  margin: 0 auto;
}
.lwp-fp[data-image-side="right"] .lwp-fp__image { order: 2; }
.lwp-fp[data-image-side="right"] .lwp-fp__copy  { order: 1; }
.lwp-fp__image {
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: 10px;
  overflow: hidden;
  background: linear-gradient(135deg, #3d2f1f, #7a5a2c);
  box-shadow: 0 30px 60px -20px rgba(60, 40, 0, 0.35);
}
.lwp-fp__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lwp-fp__chip {
  position: absolute;
  top: 20px;
  left: 20px;
  background: #D4AF37;
  color: #1A1612;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 999px;
  font-weight: 600;
}
.lwp-fp__copy { display: flex; flex-direction: column; gap: 18px; }
.lwp-fp__eyebrow {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #9A7B3A;
  font-weight: 600;
}
.lwp-fp__title {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: clamp(28px, 4vw, 44px);
  color: #1A1612;
  margin: 0;
  line-height: 1.15;
}
.lwp-fp__title a { color: inherit; text-decoration: none; transition: color 0.2s ease; }
.lwp-fp__title a:hover { color: #9A7B3A; }
.lwp-fp__excerpt {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.65;
  color: #3a342c;
  margin: 0;
}
.lwp-fp__price {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 26px;
  font-weight: 500;
  color: #1A1612;
}
.lwp-fp__price del { color: #8b7f6a; font-size: 18px; margin-right: 8px; }
.lwp-fp__price ins { text-decoration: none; color: #9A7B3A; font-weight: 600; }
.lwp-fp__cta {
  align-self: flex-start;
  padding: 14px 28px;
  background: #1A1612;
  color: #fff;
  border-radius: 8px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s ease;
}
.lwp-fp__cta:hover { background: #9A7B3A; color: #fff; transform: translateY(-2px); box-shadow: 0 12px 24px -10px rgba(154, 123, 58, 0.55); }
.lwp-fp--dark .lwp-fp__title, .lwp-fp--dark .lwp-fp__price { color: #fff; }
.lwp-fp--dark .lwp-fp__excerpt { color: rgba(255, 255, 255, 0.75); }
@media (max-width: 900px) {
  .lwp-fp { grid-template-columns: 1fr; gap: 28px; }
  .lwp-fp[data-image-side="right"] .lwp-fp__image,
  .lwp-fp[data-image-side="right"] .lwp-fp__copy { order: initial; }
}
/* end Featured Product */

/* Featured Strip BEGIN -- lwp-featured-strip (1.7.11) */
.lwp-fs { max-width: 1372px; margin: 0 auto; }
.lwp-fs__head { display: flex; flex-direction: column; gap: 6px; margin-bottom: 28px; }
.lwp-fs__eyebrow {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #9A7B3A;
  font-weight: 600;
}
.lwp-fs__heading {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: clamp(24px, 3vw, 36px);
  color: #1A1612;
  margin: 0;
  line-height: 1.15;
}
.lwp-fs__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(240px, 1fr);
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 12px;
}
.lwp-fs__card {
  scroll-snap-align: start;
  background: #fff;
  border: 1px solid #E8DFC8;
  border-radius: 8px;
  overflow: hidden;
  text-decoration: none;
  color: #1A1612;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.lwp-fs__card:hover { transform: translateY(-3px); box-shadow: 0 18px 36px -16px rgba(60, 40, 0, 0.25); border-color: #D4AF37; }
.lwp-fs__img {
  position: relative;
  aspect-ratio: 1 / 1;
  background: #FAF6EE;
  overflow: hidden;
}
.lwp-fs__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lwp-fs__chip {
  position: absolute;
  top: 12px;
  left: 12px;
  background: #D4AF37;
  color: #1A1612;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 4px 8px;
  border-radius: 999px;
  font-weight: 600;
}
.lwp-fs__meta { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 4px; }
.lwp-fs__title {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: 17px;
  color: #1A1612;
  line-height: 1.3;
}
.lwp-fs__price {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
  color: #3a342c;
}
/* end Featured Strip */

/* KG Stats + KG Trending BEGIN -- lwp-kg-* (1.7.11) */
.lwp-kgstats, .lwp-kgt { max-width: 1372px; margin: 0 auto; }
.lwp-kgstats__head, .lwp-kgt__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
.lwp-kgstats__eyebrow, .lwp-kgt__eyebrow {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #9A7B3A;
  font-weight: 600;
  display: block;
  margin-bottom: 6px;
}
.lwp-kgstats__title, .lwp-kgt__heading {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: clamp(24px, 3vw, 36px);
  color: #1A1612;
  margin: 0;
  line-height: 1.15;
}
.lwp-kgstats__badge, .lwp-kgt__badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(135deg, #9A7B3A, #D4AF37);
  color: #fff;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 999px;
}
.lwp-kgstats__badge::before, .lwp-kgt__badge::before {
  content: "●";
  color: #3A7A4A;
  font-size: 8px;
  animation: lwp-kg-blink 2s infinite;
}
@keyframes lwp-kg-blink { 50% { opacity: 0.3; } }

.lwp-kgstats__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}
.lwp-kgstats__grid[data-count="3"] { grid-template-columns: repeat(3, 1fr); }
.lwp-kgstats__grid[data-count="2"] { grid-template-columns: repeat(2, 1fr); }
.lwp-kgstats__cell { display: flex; flex-direction: column; gap: 6px; padding: 24px; background: #fff; border: 1px solid #E8DFC8; border-radius: 8px; }
.lwp-kgstats__num {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(36px, 4vw, 52px);
  font-weight: 500;
  color: #1A1612;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.lwp-kgstats__lbl {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #8b7f6a;
}

.lwp-kgstats--upsell { background: linear-gradient(135deg, #FAF6EE, #fff); border: 1px dashed #D4AF37; border-radius: 12px; padding: 48px; text-align: center; }
.lwp-kgstats__upsell-inner { max-width: 540px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; align-items: center; }
.lwp-kgstats__upsell-eb {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #9A7B3A;
  font-weight: 600;
}
.lwp-kgstats__upsell-title {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: clamp(22px, 3vw, 32px);
  color: #1A1612;
  margin: 0;
  line-height: 1.2;
}
.lwp-kgstats__upsell-lead {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: #3a342c;
  margin: 0;
}
.lwp-kgstats__upsell-btn {
  margin-top: 8px;
  padding: 14px 24px;
  background: #1A1612;
  color: #fff;
  border-radius: 8px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: background-color 0.2s ease;
}
.lwp-kgstats__upsell-btn:hover { background: #9A7B3A; color: #fff; }

.lwp-kgt__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.lwp-kgt__card {
  position: relative;
  background: #fff;
  border: 1px solid #E8DFC8;
  border-radius: 8px;
  overflow: hidden;
  text-decoration: none;
  color: #1A1612;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.lwp-kgt__card:hover { transform: translateY(-4px); box-shadow: 0 18px 36px -16px rgba(60, 40, 0, 0.25); border-color: #D4AF37; }
.lwp-kgt__img {
  aspect-ratio: 16 / 10;
  background: linear-gradient(135deg, #d4b97a, #7a5a2c);
  background-size: cover;
  background-position: center;
}
.lwp-kgt__meta { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 4px; }
.lwp-kgt__name {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: 19px;
  color: #1A1612;
}
.lwp-kgt__count {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #8b7f6a;
}
.lwp-kgt__score {
  position: absolute;
  top: 12px;
  right: 12px;
  background: rgba(0, 0, 0, 0.7);
  color: #D4AF37;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 4px;
}
@media (max-width: 1024px) {
  .lwp-kgstats__grid, .lwp-kgstats__grid[data-count="3"], .lwp-kgstats__grid[data-count="4"] { grid-template-columns: repeat(2, 1fr); }
  .lwp-kgt__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .lwp-kgstats__grid, .lwp-kgstats__grid[data-count="2"], .lwp-kgstats__grid[data-count="3"], .lwp-kgstats__grid[data-count="4"] { grid-template-columns: 1fr; }
  .lwp-kgt__grid { grid-template-columns: 1fr; }
}
/* end KG widgets */

/* ────────────────────────────────────────────────────────────────────
 * 1.7.37 — Header / Footer chrome widgets BEGIN
 * ──────────────────────────────────────────────────────────────────── */

/* Topbar */
.lwp-topbar { background: #1A1612; color: #bbb; font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; letter-spacing: 0.06em; padding: 8px 0; }
.lwp-topbar__inner { max-width: 1372px; margin: 0 auto; padding: 0 32px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.lwp-topbar__left { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }
.lwp-topbar__left a, .lwp-topbar__left span { color: inherit; text-decoration: none; }
.lwp-topbar__left a:hover { color: #D4AF37; }
.lwp-topbar__right { display: flex; gap: 14px; align-items: center; }
.lwp-topbar__lang { display: flex; gap: 8px; }
.lwp-topbar__lang a { color: #888; text-decoration: none; padding: 0 2px; transition: color 0.15s; }
.lwp-topbar__lang a.on { color: #D4AF37; font-weight: 600; }
.lwp-topbar__lang a:hover { color: #D4AF37; }
.lwp-topbar__sep { color: #444; }
.lwp-topbar__util { color: inherit; text-decoration: none; }
.lwp-topbar__util:hover { color: #D4AF37; }
@media (max-width: 880px) {
  .lwp-topbar__left { gap: 14px; font-size: 10px; }
  .lwp-topbar__left span { display: none; }
}
@media (max-width: 600px) {
  .lwp-topbar__util { display: none; }
}

/* Logo */
.lwp-logo { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: 32px; color: #1A1612; text-decoration: none; letter-spacing: -0.5px; line-height: 1; display: inline-flex; align-items: center; }
.lwp-logo img { display: block; max-height: 40px; width: auto; }
.lwp-logo__accent { color: #9A7B3A; font-style: italic; transition: color 0.18s; }
.lwp-logo:hover .lwp-logo__accent { color: #D4AF37; }
.lwp-site-header.shrunk .lwp-logo { font-size: 24px; }

/* Header actions */
.lwp-ha { display: inline-flex; gap: 10px; align-items: center; justify-content: flex-end; }
.lwp-ha__icon { width: 38px; height: 38px; border-radius: 50%; border: 1px solid #E8DFC8; background: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: #1A1612; position: relative; text-decoration: none; transition: all 0.18s; padding: 0; }
.lwp-ha__icon:hover { border-color: #9A7B3A; color: #9A7B3A; transform: translateY(-1px); }
.lwp-ha__badge { position: absolute; top: -4px; right: -4px; background: #D4AF37; color: #1A1612; font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 10px; font-weight: 700; min-width: 18px; height: 18px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }
.lwp-ha__cta { padding: 9px 16px; background: #1A1612; color: #fff; border: 1px solid #1A1612; border-radius: 8px; font-family: "Inter", system-ui, sans-serif; font-size: 12px; font-weight: 600; text-decoration: none; letter-spacing: 0.04em; transition: all 0.18s; }
.lwp-ha__cta:hover { background: #9A7B3A; border-color: #9A7B3A; }
.lwp-ha__burger { display: none; width: 38px; height: 38px; border-radius: 8px; border: 1px solid #E8DFC8; background: #fff; flex-direction: column; justify-content: center; align-items: center; gap: 4px; cursor: pointer; padding: 0; }
.lwp-ha__burger span { display: block; width: 18px; height: 2px; background: #1A1612; border-radius: 1px; }
@media (max-width: 900px) {
  .lwp-ha__burger { display: inline-flex; }
  .lwp-ha__cta { display: none; }
}

/* Search overlay + drawer */
.lwp-overlay { position: fixed; inset: 0; z-index: 100020; background: rgba(12,12,12,0.92); display: flex; align-items: flex-start; justify-content: center; padding: 8vh 24px; overflow-y: auto; }
.lwp-overlay[hidden] { display: none; }
.lwp-overlay__close { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border-radius: 50%; border: 1px solid #E8DFC8; background: #fff; font-size: 24px; line-height: 1; cursor: pointer; color: #1A1612; padding: 0; z-index: 2; }
.lwp-overlay__close:hover { background: #1A1612; color: #fff; }
.lwp-search__panel { width: 100%; max-width: 720px; background: #FAF6EE; border-radius: 14px; padding: 48px 40px 40px; position: relative; box-shadow: 0 40px 80px -20px rgba(0,0,0,0.4); }
.lwp-search__eyebrow { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.18em; color: #9A7B3A; margin-bottom: 18px; }
.lwp-search__form { margin: 0 0 28px; }
.lwp-search__input-wrap { display: flex; align-items: center; gap: 12px; padding: 14px 18px; background: #fff; border: 1px solid #E8DFC8; border-radius: 10px; transition: border-color 0.18s; }
.lwp-search__input-wrap:focus-within { border-color: #9A7B3A; }
.lwp-search__input-wrap input { flex: 1; border: 0; outline: 0; background: transparent; font-family: "Inter", system-ui, sans-serif; font-size: 16px; color: #1A1612; padding: 4px 0; }
.lwp-search__suggest { display: flex; flex-direction: column; gap: 24px; }
.lwp-search__sugg-label { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 10px; text-transform: uppercase; letter-spacing: 0.18em; color: #8b7f6a; margin-bottom: 10px; }
.lwp-search__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.lwp-search__chip { padding: 8px 14px; border-radius: 20px; border: 1px solid #E8DFC8; background: #fff; font-family: "Inter", sans-serif; font-size: 12px; color: #3a342c; text-decoration: none; letter-spacing: 0.02em; transition: all 0.15s; }
.lwp-search__chip:hover { border-color: #9A7B3A; color: #9A7B3A; }

/* Mobile drawer */
.lwp-overlay--drawer { align-items: stretch; padding: 0; justify-content: flex-start; }
.lwp-drawer { width: min(360px, 90vw); height: 100vh; background: #FAF6EE; padding: 24px 0; display: flex; flex-direction: column; }
.lwp-drawer__head { display: flex; justify-content: space-between; align-items: center; padding: 0 24px 16px; border-bottom: 1px solid #E8DFC8; position: relative; }
.lwp-drawer__head .lwp-overlay__close { position: static; }
.lwp-drawer__title { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: 22px; color: #1A1612; }
.lwp-drawer__body { overflow-y: auto; padding: 16px 0; flex: 1; }
.lwp-drawer__menu { list-style: none; padding: 0; margin: 0; }
.lwp-drawer__menu li { border-bottom: 1px solid #eae3d4; }
.lwp-drawer__menu a { display: block; padding: 16px 24px; font-family: "Inter", system-ui, sans-serif; font-size: 15px; color: #1A1612; text-decoration: none; transition: background 0.15s; }
.lwp-drawer__menu a:hover { background: #fff; color: #9A7B3A; }
.lwp-drawer__menu .sub-menu { list-style: none; padding: 0; margin: 0; background: rgba(0,0,0,0.02); }
.lwp-drawer__menu .sub-menu a { padding-left: 40px; font-size: 13px; color: #3a342c; }
.lwp-drawer__empty { padding: 24px; color: #8b7f6a; font-family: "Inter", sans-serif; font-size: 13px; }

/* Footer brand */
.lwp-fb { display: flex; flex-direction: column; gap: 16px; }
.lwp-fb__logo { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: 28px; color: #fff; text-decoration: none; letter-spacing: -0.5px; line-height: 1; display: inline-block; }
.lwp-fb__logo img { max-height: 40px; width: auto; }
.lwp-fb__logo-accent { color: #D4AF37; font-style: italic; }
.lwp-fb__tagline { font-family: "Inter", system-ui, sans-serif; font-size: 14px; line-height: 1.6; color: #a89d85; margin: 0; max-width: 320px; }
.lwp-fb__contact { display: flex; flex-direction: column; gap: 4px; font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 12px; color: #a89d85; }
.lwp-fb__contact a, .lwp-fb__contact span { color: inherit; text-decoration: none; }
.lwp-fb__contact a:hover { color: #D4AF37; }
.lwp-fb__social { display: flex; gap: 10px; margin-top: 4px; }
.lwp-fb__social a { width: 36px; height: 36px; border-radius: 50%; border: 1px solid #3a342c; background: transparent; display: inline-flex; align-items: center; justify-content: center; color: #a89d85; transition: all 0.18s; text-decoration: none; }
.lwp-fb__social a:hover { border-color: #D4AF37; color: #D4AF37; }

/* Footer column */
.lwp-fc { display: flex; flex-direction: column; gap: 14px; }
.lwp-fc__heading { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.16em; color: #fff; font-weight: 600; margin: 0 0 4px; border-bottom: 1px solid #3a342c; padding-bottom: 12px; }
.lwp-fc__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.lwp-fc__list a { color: #a89d85; text-decoration: none; font-family: "Inter", sans-serif; font-size: 13px; transition: color 0.15s; }
.lwp-fc__list a:hover { color: #fff; }
.lwp-fc__list a.is-hot { color: #D4AF37; }

/* Footer bottom */
.lwp-fbot { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px; font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.04em; color: #6b6151; padding: 20px 0 8px; border-top: 1px solid #3a342c; }
.lwp-fbot__left { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.lwp-fbot__left a { color: inherit; text-decoration: none; }
.lwp-fbot__left a:hover { color: #D4AF37; }
.lwp-fbot__right { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.lwp-fbot__pay-label { margin-right: 6px; }
.lwp-fbot__pay { padding: 4px 8px; background: #1A1612; border: 1px solid #3a342c; border-radius: 4px; color: #a89d85; font-size: 10px; font-weight: 600; letter-spacing: 0.08em; }
@media (max-width: 768px) {
  .lwp-fbot { justify-content: center; text-align: center; }
}
/* end 1.7.37 header/footer widgets */

/* ────────────────────────────────────────────────────────────────────
 * 1.7.38 — Shop / Single-product widgets
 * ──────────────────────────────────────────────────────────────────── */

/* Shop filters sidebar */
.lwp-sf { font-family: "Inter", system-ui, sans-serif; font-size: 13px; color: #3a342c; }
.lwp-sf__form { display: flex; flex-direction: column; gap: 24px; }
.lwp-sf__block { border-top: 1px solid #E8DFC8; padding-top: 18px; }
.lwp-sf__block:first-child { border-top: 0; padding-top: 0; }
.lwp-sf__heading { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: #1A1612; margin: 0 0 12px; font-weight: 600; }
.lwp-sf__item { display: flex; align-items: center; gap: 10px; padding: 6px 0; cursor: pointer; font-size: 13px; }
.lwp-sf__item input[type="checkbox"] { width: 16px; height: 16px; accent-color: #1A1612; cursor: pointer; }
.lwp-sf__item span { color: #3a342c; }
.lwp-sf__count { margin-left: auto; color: #8b7f6a; font-size: 12px; font-family: "JetBrains Mono", ui-monospace, monospace; }
.lwp-sf__price-range { display: flex; align-items: center; gap: 10px; padding: 6px 0; }
.lwp-sf__price-range input[type="range"] { flex: 1; accent-color: #1A1612; }
.lwp-sf__price-min, .lwp-sf__price-max { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 12px; color: #3a342c; min-width: 40px; }
.lwp-sf__actions { display: flex; gap: 10px; align-items: center; margin-top: 8px; }
.lwp-sf__apply { padding: 11px 18px; background: #1A1612; color: #fff; border: 1px solid #1A1612; border-radius: 8px; font-family: "Inter", sans-serif; font-size: 13px; font-weight: 600; cursor: pointer; letter-spacing: 0.04em; transition: background 0.18s; flex: 1; }
.lwp-sf__apply:hover { background: #9A7B3A; border-color: #9A7B3A; }
.lwp-sf__clear { color: #8b7f6a; font-size: 12px; text-decoration: underline; cursor: pointer; }
.lwp-sf__clear:hover { color: #9A7B3A; }

/* Shop toolbar */
.lwp-stb { display: flex; justify-content: space-between; align-items: center; padding-bottom: 18px; border-bottom: 1px solid #E8DFC8; margin-bottom: 24px; flex-wrap: wrap; gap: 14px; font-family: "Inter", sans-serif; font-size: 14px; color: #3a342c; }
.lwp-stb__count strong { font-weight: 600; color: #1A1612; font-size: 14px; }
.lwp-stb__filter { color: #8b7f6a; font-size: 13px; margin-left: 6px; }
.lwp-stb__tools { display: flex; gap: 12px; align-items: center; }
.lwp-stb__view { display: inline-flex; border: 1px solid #E8DFC8; border-radius: 6px; overflow: hidden; }
.lwp-stb__view-btn { width: 36px; height: 36px; border: 0; background: #fff; cursor: pointer; color: #8b7f6a; display: inline-flex; align-items: center; justify-content: center; padding: 0; transition: all 0.15s; }
.lwp-stb__view-btn:hover { color: #1A1612; }
.lwp-stb__view-btn.is-on { background: #1A1612; color: #fff; }
.lwp-stb__sort { padding: 9px 14px; padding-right: 32px; border: 1px solid #E8DFC8; border-radius: 6px; background: #fff; font-family: "Inter", sans-serif; font-size: 13px; color: #1A1612; cursor: pointer; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='none' stroke='%231A1612' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M1 1l4 4 4-4'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; }

/* Shop view-mode body classes — set by lwp-stb__view-btn JS */
body.lwp-view-list ul.products { display: flex !important; flex-direction: column; gap: 16px; }
body.lwp-view-list ul.products li.product { display: grid !important; grid-template-columns: 200px 1fr; gap: 24px; align-items: center; }

/* Spec list */
.lwp-spec { display: grid; grid-template-columns: 1fr; gap: 0; margin: 0; padding: 0; font-family: "Inter", sans-serif; font-size: 14px; }
.lwp-spec[data-cols="2"] { grid-template-columns: 1fr 1fr; gap: 0 32px; }
.lwp-spec__row { display: grid; grid-template-columns: 140px 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid #eae3d4; align-items: baseline; }
.lwp-spec__row dt { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: #8b7f6a; margin: 0; }
.lwp-spec__row dd { color: #1A1612; margin: 0; line-height: 1.5; }
@media (max-width: 600px) {
  .lwp-spec[data-cols="2"] { grid-template-columns: 1fr; gap: 0; }
}

/* Perks list */
.lwp-perks { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; font-family: "Inter", sans-serif; font-size: 14px; }
.lwp-perks__item { display: flex; gap: 12px; align-items: flex-start; line-height: 1.5; }
.lwp-perks__icon { display: inline-flex; align-items: center; justify-content: center; color: #9A7B3A; flex-shrink: 0; margin-top: 2px; }
.lwp-perks__strong { color: #1A1612; font-weight: 600; margin-right: 4px; }
.lwp-perks__body { color: #3a342c; }
/* end 1.7.38 shop/single-product widgets */

/* ────────────────────────────────────────────────────────────────────
 * 1.8.0 — Journal / 404 widgets (full widgetization milestone)
 * ──────────────────────────────────────────────────────────────────── */

/* Featured Post */
.lwp-fp { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; text-decoration: none; color: inherit; padding: 32px; background: #FAF6EE; border-radius: 8px; transition: transform 0.18s, box-shadow 0.18s; }
.lwp-fp:hover { transform: translateY(-2px); box-shadow: 0 20px 40px -20px rgba(60,40,0,0.2); }
.lwp-fp--right .lwp-fp__img { order: 2; }
.lwp-fp__img { aspect-ratio: 4/3; border-radius: 6px; background: linear-gradient(135deg, #3a2818, #6a4022); background-size: cover; background-position: center; }
.lwp-fp__body { display: flex; flex-direction: column; gap: 14px; padding: 24px 0; }
.lwp-fp__eyebrow { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: #9A7B3A; font-weight: 600; }
.lwp-fp__title { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: clamp(28px, 4vw, 40px); line-height: 1.15; color: #1A1612; margin: 0; }
.lwp-fp__excerpt { font-family: "Inter", system-ui, sans-serif; font-size: 14px; line-height: 1.6; color: #3a342c; margin: 0; }
.lwp-fp__cta { display: inline-block; font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; border-bottom: 1px solid currentColor; padding-bottom: 2px; align-self: flex-start; }
@media (max-width: 768px) {
  .lwp-fp { grid-template-columns: 1fr; gap: 18px; padding: 18px; }
  .lwp-fp--right .lwp-fp__img { order: 0; }
}

/* Byline Card */
.lwp-byline { display: flex; gap: 12px; align-items: center; padding-top: 18px; margin-top: 18px; border-top: 1px solid #eae3d4; }
.lwp-byline__avatar { width: 44px; height: 44px; border-radius: 50%; background: #9A7B3A; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-family: "Cormorant Garamond", Georgia, serif; font-size: 18px; font-weight: 500; flex-shrink: 0; }
.lwp-byline__copy { display: flex; flex-direction: column; line-height: 1.4; }
.lwp-byline__name { font-family: "Inter", system-ui, sans-serif; font-size: 14px; font-weight: 600; color: #1A1612; }
.lwp-byline__meta { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.06em; color: #8b7f6a; }

/* Pullquote */
.lwp-pq { position: relative; margin: 32px 0; padding: 24px 0 24px 24px; border-left: 3px solid #9A7B3A; max-width: 720px; }
.lwp-pq--center { padding-left: 0; border-left: 0; border-top: 1px solid #eae3d4; border-bottom: 1px solid #eae3d4; padding-top: 36px; padding-bottom: 36px; text-align: center; margin-left: auto; margin-right: auto; }
.lwp-pq__mark { position: absolute; top: -8px; left: -12px; font-family: "Playfair Display", "Cormorant Garamond", Georgia, serif; font-size: 72px; line-height: 1; color: rgba(155, 123, 58, 0.2); user-select: none; }
.lwp-pq--center .lwp-pq__mark { position: static; display: block; margin: 0 auto 8px; }
.lwp-pq__text { font-family: "Playfair Display", "Cormorant Garamond", Georgia, serif; font-style: italic; font-size: clamp(20px, 2.5vw, 32px); line-height: 1.3; color: #735c00; text-wrap: balance; margin: 0; }
.lwp-pq__cite { margin-top: 16px; font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: #8b7f6a; font-style: normal; }
.lwp-pq__cite a { color: inherit; text-decoration: underline; }
.lwp-pq__cite a:hover { color: #9A7B3A; }

/* Reading Progress */
.lwp-rp { position: relative; width: 100%; overflow: hidden; background: #eae3d4; }
.lwp-rp--top { position: sticky; top: 0; z-index: 50; }
.lwp-rp--bottom { position: sticky; bottom: 0; z-index: 50; }
.lwp-rp__bar { display: block; width: 0; height: 100%; background: #9A7B3A; transition: width 0.05s linear; }

/* Load More button */
.lwp-lm { text-align: center; padding: 32px 0; }
.lwp-lm__btn { display: inline-block; padding: 14px 28px; background: transparent; color: #1A1612; border: 1px solid #1A1612; border-radius: 8px; font-family: "Inter", system-ui, sans-serif; font-size: 13px; font-weight: 600; text-decoration: none; letter-spacing: 0.06em; cursor: pointer; transition: all 0.18s; }
.lwp-lm__btn:hover { background: #1A1612; color: #fff; }
.lwp-lm__btn.is-loading { opacity: 0.6; pointer-events: none; }
.lwp-lm__btn.is-loading::after { content: '...'; }

/* 404 Hero */
.lwp-404 { text-align: center; padding: 80px 24px; max-width: 720px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.lwp-404__num { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: clamp(96px, 16vw, 200px); line-height: 1; color: #9A7B3A; letter-spacing: -4px; }
.lwp-404__eyebrow { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.18em; color: #9A7B3A; font-weight: 600; }
.lwp-404__title { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: clamp(28px, 5vw, 60px); line-height: 1.15; color: #1A1612; margin: 0; }
.lwp-404__title em { font-style: italic; color: #9A7B3A; }
.lwp-404__lead { font-family: "Inter", system-ui, sans-serif; font-size: 16px; line-height: 1.6; color: #3a342c; max-width: 540px; margin: 0; }
.lwp-404__search { display: flex; gap: 0; max-width: 480px; width: 100%; margin: 12px 0; border: 1px solid #E8DFC8; border-radius: 10px; background: #fff; overflow: hidden; transition: border-color 0.18s; }
.lwp-404__search:focus-within { border-color: #9A7B3A; }
.lwp-404__search input { flex: 1; border: 0; outline: 0; padding: 14px 18px; font-family: "Inter", system-ui, sans-serif; font-size: 14px; color: #1A1612; background: transparent; }
.lwp-404__search button { padding: 0 18px; background: #1A1612; color: #fff; border: 0; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.lwp-404__search button:hover { background: #9A7B3A; }
.lwp-404__cta { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; justify-content: center; margin-top: 12px; }
.lwp-404__cta-primary { padding: 12px 24px; background: #1A1612; color: #fff; border-radius: 8px; font-family: "Inter", sans-serif; font-size: 13px; font-weight: 600; text-decoration: none; transition: background 0.18s; }
.lwp-404__cta-primary:hover { background: #9A7B3A; }
.lwp-404__cta-link { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: #1A1612; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.lwp-404__cta-link:hover { color: #9A7B3A; }
/* end 1.8.0 journal/404 widgets */

/* ── 1.9.0+ dynamic post widgets (Pro Theme Builder-free) ───────────────────── */

/* Post Title */
.lwp-post-title { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: clamp(28px, 5vw, 56px); line-height: 1.15; color: #1A1612; margin: 0 0 0.4em; letter-spacing: -0.01em; }
.lwp-post-title a { color: inherit; text-decoration: none; transition: color 0.18s; }
.lwp-post-title a:hover { color: #9A7B3A; }

/* Post Content */
.lwp-post-content { font-family: "Inter", system-ui, sans-serif; font-size: 17px; line-height: 1.7; color: #3a342c; max-width: 720px; }
.lwp-post-content > * + * { margin-top: 1em; }
.lwp-post-content p { margin: 0 0 1.4em; }
.lwp-post-content h2, .lwp-post-content h3, .lwp-post-content h4, .lwp-post-content h5, .lwp-post-content h6 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; color: #1A1612; line-height: 1.25; margin: 1.6em 0 0.5em; }
.lwp-post-content h2 { font-size: 32px; }
.lwp-post-content h3 { font-size: 26px; }
.lwp-post-content h4 { font-size: 20px; }
.lwp-post-content a { color: #9A7B3A; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.lwp-post-content a:hover { color: #1A1612; }
.lwp-post-content img { max-width: 100%; height: auto; border-radius: 10px; margin: 1.4em 0; }
.lwp-post-content blockquote { margin: 1.6em 0; padding: 0 0 0 24px; border-left: 3px solid #9A7B3A; font-family: "Cormorant Garamond", Georgia, serif; font-style: italic; font-size: 22px; line-height: 1.5; color: #1A1612; }
.lwp-post-content ul, .lwp-post-content ol { padding-left: 24px; margin: 0 0 1.4em; }
.lwp-post-content li { margin: 0 0 0.5em; }
.lwp-post-content code { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 14px; background: #f7f1e3; padding: 2px 6px; border-radius: 4px; }
.lwp-post-content pre { background: #1A1612; color: #f7f1e3; padding: 18px 22px; border-radius: 10px; overflow-x: auto; margin: 1.4em 0; }
.lwp-post-content pre code { background: transparent; color: inherit; padding: 0; }

/* Post Featured Image */
.lwp-post-featured-image { margin: 0 0 1em; line-height: 0; }
.lwp-post-featured-image img { display: inline-block; max-width: 100%; height: auto; border-radius: 12px; }
.lwp-post-featured-image__caption { display: block; margin-top: 10px; font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.06em; color: #8b7f6a; line-height: 1.4; }
.lwp-post-featured-image--placeholder { background: linear-gradient(135deg, #f7f1e3 0%, #eae3d4 100%); border-radius: 12px; aspect-ratio: 16/9; display: flex; align-items: center; justify-content: center; }
.lwp-fpi-ph { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 12px; letter-spacing: 0.1em; color: #8b7f6a; text-transform: uppercase; }
/* end 1.9.0 dynamic post widgets */

/* ── 1.9.0+ dynamic WC widgets Tier 1 (Pro WC widget-free) ──────────────────── */

/* WC Title */
.lwp-wc-title { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: clamp(28px, 5vw, 56px); line-height: 1.1; color: #1A1612; margin: 0 0 0.4em; letter-spacing: -0.01em; }
.lwp-wc-title a { color: inherit; text-decoration: none; }
.lwp-wc-title a:hover { color: #9A7B3A; }

/* WC Price */
.lwp-wc-price { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: 32px; line-height: 1.2; color: #1A1612; margin: 0 0 12px; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.lwp-wc-price .amount { font-weight: 500; }
.lwp-wc-price del { opacity: 1; color: #8b7f6a; font-size: 22px; font-weight: 400; }
.lwp-wc-price del .amount { color: inherit; }
.lwp-wc-price ins { background: none; text-decoration: none; color: #d83131; font-weight: 600; }
.lwp-wc-price ins .amount { color: inherit; }

/* WC Rating */
.lwp-wc-rating { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 12px; }
.lwp-wc-rating .star-rating { color: #9A7B3A; font-size: 14px; }
.lwp-wc-rating__count { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.06em; color: #8b7f6a; }
.lwp-wc-rating__count a { color: inherit; text-decoration: none; border-bottom: 1px solid transparent; transition: border-color 0.18s; }
.lwp-wc-rating__count a:hover { border-bottom-color: #9A7B3A; }

/* WC Short Description */
.lwp-wc-short-desc { font-family: "Inter", system-ui, sans-serif; font-size: 16px; line-height: 1.65; color: #3a342c; max-width: 640px; margin: 0 0 20px; }
.lwp-wc-short-desc p:last-child { margin-bottom: 0; }
.lwp-wc-short-desc ul, .lwp-wc-short-desc ol { padding-left: 22px; margin: 0 0 12px; }
.lwp-wc-short-desc li { margin: 0 0 4px; }

/* WC Meta */
.lwp-wc-meta { display: grid; grid-template-columns: minmax(80px, auto) 1fr; gap: 4px 16px; margin: 16px 0; font-family: "Inter", system-ui, sans-serif; font-size: 13px; }
.lwp-wc-meta__label { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: #8b7f6a; line-height: 1.6; margin: 0; }
.lwp-wc-meta__value { color: #1A1612; line-height: 1.6; margin: 0; }
.lwp-wc-meta__value a { color: #9A7B3A; text-decoration: none; border-bottom: 1px solid transparent; }
.lwp-wc-meta__value a:hover { border-bottom-color: currentColor; }
/* end 1.9.0 WC widgets Tier 1 */

/* ── 1.9.0+ WC widgets Tier 2/3 (gallery / related / add-to-cart / tabs) ───── */

/* WC Gallery — anchors WC's stock CSS but tightens spacing */
.lwp-wc-gallery { margin: 0; }
.lwp-wc-gallery .woocommerce-product-gallery__image { line-height: 0; border-radius: 12px; overflow: hidden; }
.lwp-wc-gallery .woocommerce-product-gallery__image img { max-width: 100%; height: auto; }
.lwp-wc-gallery .flex-control-thumbs { margin-top: 14px; display: flex; gap: 8px; padding: 0; list-style: none; }
.lwp-wc-gallery .flex-control-thumbs li { width: auto; margin: 0; padding: 0; cursor: pointer; opacity: 0.6; transition: opacity 0.18s; }
.lwp-wc-gallery .flex-control-thumbs li:hover, .lwp-wc-gallery .flex-control-thumbs li img.flex-active { opacity: 1; }
.lwp-wc-gallery .flex-control-thumbs li img { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; border: 1px solid transparent; }
.lwp-wc-gallery .flex-control-thumbs li img.flex-active { border-color: #9A7B3A; }
.lwp-wc-gallery--placeholder { background: linear-gradient(135deg, #f7f1e3, #eae3d4); aspect-ratio: 1; border-radius: 12px; display: flex; align-items: center; justify-content: center; }
.lwp-wc-gallery__ph { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 12px; letter-spacing: 0.1em; color: #8b7f6a; text-transform: uppercase; }

/* WC Related */
.lwp-wc-related { margin: 56px 0 0; }
.lwp-wc-related__heading { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: clamp(22px, 3.5vw, 38px); line-height: 1.2; color: #1A1612; margin: 0 0 28px; letter-spacing: -0.01em; }
.lwp-wc-related__grid { list-style: none; padding: 0; margin: 0; display: grid; gap: 24px; }
.lwp-wc-related__grid li.product { margin: 0; }
.lwp-wc-related__ph { background: #f7f1e3; padding: 32px; border-radius: 10px; text-align: center; font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 12px; color: #8b7f6a; }

/* WC Add to Cart */
.lwp-wc-atc { margin: 16px 0 24px; }
.lwp-wc-atc form.cart { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-end; margin: 0; }
.lwp-wc-atc__qty-label { display: block; font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: #8b7f6a; margin-bottom: 6px; }
.lwp-wc-atc .quantity { display: flex; flex-direction: column; }
.lwp-wc-atc .quantity input.qty { width: 90px; padding: 12px 14px; border: 1px solid #E8DFC8; border-radius: 8px; background: #fff; font-family: "Inter", system-ui, sans-serif; font-size: 15px; color: #1A1612; text-align: center; -moz-appearance: textfield; }
.lwp-wc-atc .quantity input.qty::-webkit-outer-spin-button, .lwp-wc-atc .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.lwp-wc-atc .quantity input.qty:focus { outline: 0; border-color: #9A7B3A; }
.lwp-wc-atc .single_add_to_cart_button, .lwp-wc-atc button.button { display: inline-flex; align-items: center; justify-content: center; padding: 14px 30px; background: #1A1612; color: #fff; border: 1px solid #1A1612; border-radius: 8px; font-family: "Inter", system-ui, sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; cursor: pointer; transition: background 0.18s, border-color 0.18s; }
.lwp-wc-atc .single_add_to_cart_button:hover, .lwp-wc-atc button.button:hover { background: #9A7B3A; border-color: #9A7B3A; }
.lwp-wc-atc .single_add_to_cart_button:disabled, .lwp-wc-atc .single_add_to_cart_button.disabled { opacity: 0.55; cursor: not-allowed; }
.lwp-wc-atc .single_variation_wrap { margin: 0; padding: 0; }
.lwp-wc-atc .variations { width: 100%; margin: 0 0 16px; }
.lwp-wc-atc .variations td, .lwp-wc-atc .variations th { padding: 8px 0; }
.lwp-wc-atc .variations label { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: #8b7f6a; }
.lwp-wc-atc .variations select { width: 100%; padding: 12px 14px; border: 1px solid #E8DFC8; border-radius: 8px; background: #fff; font-family: "Inter", system-ui, sans-serif; font-size: 14px; color: #1A1612; }
.lwp-wc-atc .reset_variations { display: inline-block; margin-top: 8px; font-size: 12px; color: #8b7f6a; text-decoration: underline; }

/* WC Tabs */
.lwp-wc-tabs { margin: 48px 0; }
.lwp-wc-tabs__tablist { display: flex; gap: 32px; padding: 0; margin: 0 0 24px; border-bottom: 1px solid #E8DFC8; list-style: none; flex-wrap: wrap; }
.lwp-wc-tabs__tablist li { margin: 0; padding: 0; }
.lwp-wc-tabs__tab { background: none; border: 0; border-bottom: 2px solid transparent; padding: 12px 0; margin-bottom: -1px; cursor: pointer; font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: #8b7f6a; transition: color 0.18s, border-color 0.18s; }
.lwp-wc-tabs__tab[aria-selected="true"], .lwp-wc-tabs__tab.is-active { color: #1A1612; border-bottom-color: #1A1612; }
.lwp-wc-tabs__tab:hover { color: #1A1612; }
.lwp-wc-tabs__panel { font-family: "Inter", system-ui, sans-serif; font-size: 15px; line-height: 1.65; color: #3a342c; padding: 8px 0; }
.lwp-wc-tabs__panel[hidden], .lwp-wc-tabs__panel.is-hidden { display: none; }
.lwp-wc-tabs__panel h2 { font-family: "Cormorant Garamond", Georgia, serif; font-size: 24px; color: #1A1612; margin: 0 0 14px; }
.lwp-wc-tabs__panel p { margin: 0 0 12px; }
.lwp-wc-tabs__panel table.shop_attributes { width: 100%; border-collapse: collapse; }
.lwp-wc-tabs__panel table.shop_attributes th { text-align: left; font-weight: 500; padding: 10px 0; color: #8b7f6a; font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; width: 30%; }
.lwp-wc-tabs__panel table.shop_attributes td { padding: 10px 0; color: #1A1612; border-bottom: 1px solid #f0eadb; }

/* Accordion variant */
.lwp-wc-tabs--accordion .lwp-wc-tabs__acc { border-bottom: 1px solid #E8DFC8; padding: 0; }
.lwp-wc-tabs--accordion .lwp-wc-tabs__acc summary { display: flex; align-items: center; justify-content: space-between; padding: 18px 0; cursor: pointer; list-style: none; position: relative; }
.lwp-wc-tabs--accordion .lwp-wc-tabs__acc summary::-webkit-details-marker { display: none; }
.lwp-wc-tabs--accordion .lwp-wc-tabs__acc summary::after { content: "+"; font-size: 22px; font-weight: 300; color: #9A7B3A; transition: transform 0.18s; }
.lwp-wc-tabs--accordion .lwp-wc-tabs__acc[open] summary::after { content: "−"; }
.lwp-wc-tabs--accordion .lwp-wc-tabs__acc .lwp-wc-tabs__panel { padding: 0 0 20px; }
/* end 1.9.0 WC widgets Tier 2/3 */

/* ── 1.10.0 People CPT (vendor / atelier / maker) profile + archive + WC integration ── */

/* Master Grid — count chip */
.lwp-mgrid__count { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: #9A7B3A; margin-top: 4px; }

/* Single Vendor page */
.lwp-person-page { max-width: 1100px; margin: 0 auto; padding: 60px 24px; }
.lwp-person__hero { display: grid; grid-template-columns: minmax(0, 360px) 1fr; gap: 48px; align-items: start; margin-bottom: 60px; }
.lwp-person__portrait img { width: 100%; aspect-ratio: 3/4; object-fit: cover; border-radius: 14px; box-shadow: 0 20px 60px -20px rgba(60, 40, 0, 0.25); }
.lwp-person__intro { display: flex; flex-direction: column; gap: 14px; }
.lwp-person__eyebrow { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: #8b7f6a; margin: 0; }
.lwp-person__eyebrow a { color: inherit; text-decoration: none; border-bottom: 1px solid transparent; transition: border-color 0.18s; }
.lwp-person__eyebrow a:hover { border-bottom-color: #9A7B3A; }
.lwp-person__sep { margin: 0 8px; color: #c8bda6; }
.lwp-person__name { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: clamp(36px, 6vw, 64px); line-height: 1.05; color: #1A1612; margin: 0; letter-spacing: -0.02em; }
.lwp-person__occupation { font-family: "Inter", system-ui, sans-serif; font-size: 16px; font-weight: 500; color: #9A7B3A; margin: 0; }
.lwp-person__lead { font-family: "Inter", system-ui, sans-serif; font-size: 17px; line-height: 1.65; color: #3a342c; margin: 8px 0 0; max-width: 540px; }
.lwp-person__meta-strip { display: flex; gap: 32px; flex-wrap: wrap; margin-top: 16px; padding-top: 18px; border-top: 1px solid #E8DFC8; }
.lwp-person__stat { display: flex; flex-direction: column; gap: 2px; }
.lwp-person__stat-num { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: 22px; line-height: 1.1; color: #1A1612; }
.lwp-person__stat-label { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: #8b7f6a; }
.lwp-person__socials { list-style: none; padding: 0; margin: 14px 0 0; display: flex; gap: 8px; flex-wrap: wrap; }
.lwp-person__socials a { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; background: #FAF6EE; color: #1A1612; text-decoration: none; font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; transition: background 0.18s, color 0.18s; }
.lwp-person__socials a:hover { background: #1A1612; color: #fff; }
.lwp-person__socials i { font-size: 14px; }
.lwp-person__social-label { line-height: 1; }

.lwp-person__bio { font-family: "Inter", system-ui, sans-serif; font-size: 17px; line-height: 1.7; color: #3a342c; max-width: 720px; margin: 0 0 48px; }
.lwp-person__bio p { margin: 0 0 1.2em; }
.lwp-person__bio h2 { font-family: "Cormorant Garamond", Georgia, serif; font-size: 32px; color: #1A1612; margin: 1.6em 0 0.5em; }
.lwp-person__bio h3 { font-family: "Cormorant Garamond", Georgia, serif; font-size: 24px; color: #1A1612; margin: 1.4em 0 0.5em; }
.lwp-person__bio a { color: #9A7B3A; text-decoration: underline; text-underline-offset: 3px; }

.lwp-person__quote { background: #FAF6EE; border-left: 4px solid #9A7B3A; padding: 28px 32px; margin: 0 0 48px; max-width: 720px; border-radius: 0 8px 8px 0; }
.lwp-person__quote blockquote { font-family: "Cormorant Garamond", Georgia, serif; font-style: italic; font-size: 22px; line-height: 1.5; color: #1A1612; margin: 0 0 8px; }
.lwp-person__quote cite { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: #8b7f6a; font-style: normal; }

.lwp-person__work { margin-top: 32px; }
.lwp-person__work-heading { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: clamp(24px, 3.5vw, 36px); color: #1A1612; margin: 0 0 24px; }
.lwp-person__work-grid { list-style: none; padding: 0; margin: 0; display: grid; gap: 24px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.lwp-person__work-grid li.product { margin: 0; }

@media (max-width: 767px) {
	.lwp-person__hero { grid-template-columns: 1fr; gap: 28px; }
	.lwp-person__portrait img { aspect-ratio: 4/5; }
	.lwp-person__meta-strip { gap: 18px; }
}

/* Archive Vendor page */
.lwp-people-archive { max-width: 1240px; margin: 0 auto; padding: 60px 24px; }
.lwp-people-archive__header { text-align: center; margin-bottom: 56px; padding-bottom: 32px; border-bottom: 1px solid #E8DFC8; }
.lwp-people-archive__eyebrow { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: #9A7B3A; font-weight: 500; margin: 0 0 8px; }
.lwp-people-archive__heading { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: clamp(38px, 6vw, 72px); line-height: 1.05; color: #1A1612; margin: 0; letter-spacing: -0.02em; }
.lwp-people-archive__lead { font-family: "Inter", system-ui, sans-serif; font-size: 17px; line-height: 1.6; color: #3a342c; margin: 16px auto 0; max-width: 540px; }
.lwp-people-archive__grid { list-style: none; padding: 0; margin: 0; display: grid; gap: 32px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

.lwp-people-card { margin: 0; }
.lwp-people-card__link { display: flex; flex-direction: column; gap: 14px; text-decoration: none; color: inherit; transition: transform 0.2s ease; }
.lwp-people-card__link:hover { transform: translateY(-4px); }
.lwp-people-card__portrait { aspect-ratio: 3/4; border-radius: 12px; overflow: hidden; background: linear-gradient(135deg, #FAF6EE, #E8DFC8); }
.lwp-people-card__portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lwp-people-card__portrait--initials { display: flex; align-items: center; justify-content: center; }
.lwp-people-card__portrait--initials span { font-family: "Cormorant Garamond", Georgia, serif; font-size: 96px; font-weight: 500; color: #9A7B3A; line-height: 1; }
.lwp-people-card__body { display: flex; flex-direction: column; gap: 4px; padding: 0 4px; }
.lwp-people-card__name { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: 22px; line-height: 1.2; color: #1A1612; margin: 0; }
.lwp-people-card__location { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: #8b7f6a; }
.lwp-people-card__specialty { font-family: "Inter", system-ui, sans-serif; font-size: 14px; color: #3a342c; }
.lwp-people-card__years { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 10px; letter-spacing: 0.06em; color: #9A7B3A; margin-top: 2px; }

.lwp-people-archive__empty { text-align: center; padding: 80px 24px; color: #8b7f6a; font-style: italic; }

/* PDP "Made by" attribution line (WC integration) */
.lwp-product-vendors { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 6px 0 16px; font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: #8b7f6a; }
.lwp-product-vendors__label { font-weight: 500; }
.lwp-product-vendors__name { color: #1A1612; text-decoration: none; font-weight: 600; border-bottom: 1px solid #9A7B3A; padding-bottom: 1px; transition: color 0.18s; }
.lwp-product-vendors__name:hover { color: #9A7B3A; }
/* end 1.10.0 People CPT */

/* ── 1.10.3 Contact CTA Card (auto-pulls WA/Telegram from LuwiPress chat) ── */
.lwp-cta-card { background: #1A1612; color: #fff; padding: 40px; border-radius: 10px; }
.lwp-cta-card__heading { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: clamp(24px, 3.5vw, 36px); line-height: 1.2; color: #fff; margin: 0 0 8px; letter-spacing: -0.01em; }
.lwp-cta-card__lead { font-family: "Inter", system-ui, sans-serif; font-size: 14px; line-height: 1.55; color: rgba(255,255,255,0.7); margin: 0 0 24px; }
.lwp-cta-card__rows { display: flex; flex-direction: column; gap: 12px; }
.lwp-cta-card__row { display: flex; align-items: center; gap: 12px; padding: 14px 18px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; color: #fff; text-decoration: none; font-family: "Inter", system-ui, sans-serif; font-size: 14px; transition: background 0.18s, border-color 0.18s, transform 0.18s; }
.lwp-cta-card__row:hover { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.18); transform: translateX(2px); }
.lwp-cta-card__row strong { font-weight: 600; }
.lwp-cta-card__row svg { flex-shrink: 0; }
.lwp-cta-card__row--whatsapp { background: #25D366; border-color: #25D366; color: #fff; }
.lwp-cta-card__row--whatsapp:hover { background: #1ebe5d; border-color: #1ebe5d; }
.lwp-cta-card__row--telegram svg { color: #0088cc; }
.lwp-cta-card__row--email svg { color: #D4AF6E; }
.lwp-cta-card__cta { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 14px 18px; background: #9A7B3A; border: 0; border-radius: 8px; color: #1A1612; text-decoration: none; font-family: "Inter", system-ui, sans-serif; font-weight: 600; font-size: 13px; text-transform: uppercase; letter-spacing: 0.06em; margin-top: 6px; transition: background 0.18s; }
.lwp-cta-card__cta:hover { background: #b08a42; }
.lwp-cta-card__address { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,0.4); margin: 24px 0 0; }
@media (max-width: 600px) {
	.lwp-cta-card { padding: 28px 22px; }
}
/* end 1.10.3 Contact CTA Card */
