/*
Theme Name:   The Partners Book (WoodMart Child)
Description:  Brand design system for The Partners Book — dark, gold-accented storefront built with WoodMart + Elementor.
Template:     woodmart
Version:      1.0.0
Text Domain:  woodmart-child
*/

/* =========================================================
   1. Tokens
   ========================================================= */
:root:root {
	--tpb-bg: #0a0a0a;
	--tpb-card: #121212;
	--tpb-secondary: #1c1c1c;
	--tpb-fg: #f5f3f0;
	--tpb-muted: #a8a399;
	--tpb-border: #2c2a26;
	--tpb-primary: #c3994b;
	--tpb-accent: #efb543;
	--tpb-gold-light: #ecd58d;
	--tpb-chalk: #fafafa;
	--tpb-ink: #0d0d0d;

	--tpb-font-heading: 'Archivo', ui-sans-serif, system-ui, sans-serif;
	--tpb-font-body: 'Inter', ui-sans-serif, system-ui, sans-serif;
	--tpb-font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

	/* WoodMart variables */
	--wd-text-font: var(--tpb-font-body);
	--wd-text-color: var(--tpb-muted);
	--wd-title-font: var(--tpb-font-heading);
	--wd-title-font-weight: 700;
	--wd-title-color: var(--tpb-fg);
	--wd-entities-title-font: var(--tpb-font-heading);
	--wd-entities-title-font-weight: 600;
	--wd-entities-title-color: var(--tpb-fg);
	--wd-entities-title-color-hover: var(--tpb-accent);
	--wd-alternative-font: var(--tpb-font-mono);
	--wd-widget-title-font: var(--tpb-font-heading);
	--wd-header-el-font: var(--tpb-font-mono);
	--wd-primary-color: var(--tpb-accent);
	--wd-alternative-color: var(--tpb-primary);
	--wd-link-color: var(--tpb-fg);
	--wd-link-color-hover: var(--tpb-accent);
	--btn-default-bgcolor: var(--tpb-accent);
	--btn-default-bgcolor-hover: var(--tpb-primary);
	--btn-accented-bgcolor: var(--tpb-accent);
	--btn-accented-bgcolor-hover: var(--tpb-primary);
	--wd-form-brd-radius: 2px;
	--wd-brd-radius: 2px;
	--bgcolor-white: var(--tpb-bg);
	--bgcolor-gray-100: var(--tpb-card);
	--bgcolor-gray-200: var(--tpb-secondary);
	--brdcolor-gray-200: var(--tpb-border);
	--brdcolor-gray-300: var(--tpb-border);
	--color-gray-400: #7b776f;
	--color-gray-500: var(--tpb-muted);
	--wd-main-bgcolor: var(--tpb-bg);
}

html {
	scroll-behavior: smooth;
}

body,
.website-wrapper,
.wd-page-content,
.main-page-wrapper {
	background-color: var(--tpb-bg);
}

body {
	font-family: var(--tpb-font-body);
	color: var(--tpb-muted);
	-webkit-font-smoothing: antialiased;
}

::selection {
	background: rgba(239, 181, 67, 0.3);
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--tpb-font-heading);
	color: var(--tpb-fg);
}

/* Full-bleed Elementor pages + shop layout: drop WoodMart's content gutter */
body.elementor-template-full-width .main-page-wrapper,
body.woodmart-archive-shop .main-page-wrapper {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
body.elementor-template-full-width .wd-content-layout.container,
body.woodmart-archive-shop .wd-content-layout.container,
.wd-footer .main-footer.container {
	max-width: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
.wd-footer .main-footer { padding: 0 !important; }

/* Horizontal rows: children size to content (title left, link right) */
.e-con.tpb-row > .e-con,
.e-con.tpb-row > .elementor-widget { --width: auto; width: auto; max-width: 100%; }
.e-con.tpb-row.tpb-heading-row,
.e-con.tpb-row.tpb-row-nowrap { flex-wrap: nowrap; }
.tpb-hero-grid { align-items: center; }
@media (max-width: 767px) { .tpb-hide-mobile { display: none !important; } }

/* Elementor boxed width = mockup max-w 1440 with 40px gutters */
.elementor-section.elementor-section-boxed > .elementor-container,
.e-con.e-con-boxed > .e-con-inner {
	max-width: 1360px;
}

/* =========================================================
   2. Utilities used across Elementor widgets (add as CSS classes)
   ========================================================= */
.tpb-gold-text,
.gold-text {
	background-image: linear-gradient(100deg, var(--tpb-accent) 0%, var(--tpb-gold-light) 45%, var(--tpb-primary) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent !important;
	display: block;
}

.tpb-rays,
.tpb-rays-soft {
	position: relative;
	overflow: hidden;
}
.tpb-rays::before,
.tpb-rays-soft::before {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	background-image:
		conic-gradient(from 186deg at 74% 26%, transparent 0deg, rgba(239,181,67,.07) 7deg, transparent 15deg, rgba(239,181,67,.05) 25deg, transparent 36deg, rgba(239,181,67,.06) 48deg, transparent 62deg, rgba(239,181,67,.04) 78deg, transparent 96deg),
		radial-gradient(58% 80% at 76% 18%, rgba(239,181,67,.22), transparent 62%),
		radial-gradient(48% 62% at 92% 62%, rgba(195,153,75,.16), transparent 66%);
}
.tpb-rays-soft::before { opacity: .6; }
.tpb-hairlines::after {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	opacity: .3;
	background-image: linear-gradient(to right, rgba(44,42,38,.7) 1px, transparent 1px);
	background-size: 16.666% 100%;
}
.tpb-rays > .e-con-inner,
.tpb-rays-soft > .e-con-inner,
.tpb-rays > .elementor-element,
.tpb-rays-soft > .elementor-element {
	position: relative;
	z-index: 1;
}

.tpb-section-border {
	border-bottom: 1px solid var(--tpb-border);
}

/* Eyebrow / mono labels */
.tpb-eyebrow .elementor-heading-title,
.tpb-eyebrow {
	font-family: var(--tpb-font-mono) !important;
	font-size: 10px !important;
	font-weight: 400 !important;
	letter-spacing: .34em !important;
	text-transform: uppercase;
	color: var(--tpb-primary) !important;
	line-height: 1.4 !important;
	display: flex;
	align-items: center;
	gap: 12px;
}
.tpb-eyebrow.is-muted .elementor-heading-title { color: var(--tpb-muted) !important; letter-spacing: .28em !important; }
.tpb-eyebrow.is-ink .elementor-heading-title { color: rgba(13,13,13,.5) !important; }
.tpb-eyebrow svg { width: 14px; height: 14px; flex: none; }

.tpb-mono .elementor-heading-title,
.tpb-mono {
	font-family: var(--tpb-font-mono) !important;
	font-size: 10px !important;
	font-weight: 400 !important;
	letter-spacing: .18em !important;
	text-transform: uppercase;
	color: var(--tpb-muted) !important;
	line-height: 1.4 !important;
}

/* Headings */
.tpb-display .elementor-heading-title {
	font-family: var(--tpb-font-heading);
	font-weight: 800;
	text-transform: uppercase;
	color: var(--tpb-fg);
	font-size: clamp(48px, 13vw, 60px);
	line-height: .86;
	letter-spacing: -.03em;
}
@media (min-width: 1025px) { .tpb-display .elementor-heading-title { font-size: 76px; } }
@media (min-width: 1280px) { .tpb-display .elementor-heading-title { font-size: 88px; } }

.tpb-h1 .elementor-heading-title {
	font-family: var(--tpb-font-heading);
	font-weight: 800;
	text-transform: uppercase;
	color: var(--tpb-fg);
	font-size: 36px;
	line-height: .92;
	letter-spacing: -.02em;
}
@media (min-width: 768px) { .tpb-h1 .elementor-heading-title { font-size: 60px; } }

.tpb-h2-xl .elementor-heading-title {
	font-family: var(--tpb-font-heading);
	font-weight: 800;
	text-transform: uppercase;
	color: var(--tpb-fg);
	font-size: 30px;
	line-height: .95;
	letter-spacing: -.02em;
}
@media (min-width: 768px) { .tpb-h2-xl .elementor-heading-title { font-size: 48px; } }
.tpb-h2-xl.is-md .elementor-heading-title { font-size: 30px; }
@media (min-width: 768px) { .tpb-h2-xl.is-md .elementor-heading-title { font-size: 36px; } }

.tpb-h2 .elementor-heading-title {
	font-family: var(--tpb-font-heading);
	font-weight: 700;
	text-transform: uppercase;
	color: var(--tpb-fg);
	font-size: 24px;
	line-height: 1.15;
	letter-spacing: -.01em;
	display: flex;
	align-items: center;
	gap: 12px;
}
@media (min-width: 768px) { .tpb-h2 .elementor-heading-title { font-size: 30px; } }
.tpb-h2 svg { width: 20px; height: 20px; fill: var(--tpb-accent); color: var(--tpb-accent); flex: none; }
.tpb-h2.is-ink .elementor-heading-title { color: var(--tpb-ink); }

.tpb-h3 .elementor-heading-title {
	font-family: var(--tpb-font-heading);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--tpb-fg);
	font-size: 16px;
	line-height: 1.4;
}

.tpb-num .elementor-heading-title {
	font-family: var(--tpb-font-heading);
	font-weight: 800;
	font-size: 36px;
	line-height: 1;
	color: rgba(195,153,75,.25);
}

.tpb-stat .elementor-heading-title {
	font-family: var(--tpb-font-heading);
	font-weight: 700;
	font-size: 24px;
	line-height: 1.2;
	color: var(--tpb-fg);
}

/* Body copy */
.tpb-lead,
.tpb-lead p,
.tpb-copy,
.tpb-copy p {
	font-family: var(--tpb-font-body);
	color: var(--tpb-muted);
	line-height: 1.65;
	margin: 0;
}
.tpb-lead, .tpb-lead p { font-size: 16px; }
.tpb-copy, .tpb-copy p { font-size: 14px; }
.tpb-copy p + p { margin-top: 20px; }
.tpb-maxw-md { max-width: 448px !important; }
.tpb-maxw-sm { max-width: 384px !important; }
.tpb-maxw-xl { max-width: 576px !important; }
.tpb-maxw-xs { max-width: 320px !important; }
.tpb-maxw-3xl { max-width: 768px !important; }
@media (min-width: 768px) {
	.tpb-contact-grid > .e-con:last-child { grid-column: span 2; }
}
.tpb-hours-text p.tpb-hours { color: var(--tpb-fg); font-size: 14px; }
.tpb-hours-text p.tpb-hours-note { font-size: 12px; margin-top: 4px; }
.tpb-footer-trust { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin: 0; }
.tpb-footer-trust span { display: inline-flex; align-items: center; gap: 8px; }
.tpb-footer-logo img { width: auto !important; height: 104px !important; max-width: none; object-fit: contain; }

/* Links with arrow */
.tpb-link .elementor-heading-title,
.tpb-link .elementor-heading-title a {
	font-family: var(--tpb-font-mono);
	font-size: 10px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--tpb-primary);
	font-weight: 400;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: color .2s;
}
.tpb-link .elementor-heading-title a:hover { color: var(--tpb-accent); }
.tpb-link svg { width: 14px; height: 14px; transition: transform .2s; }
.tpb-link a:hover svg { transform: translateX(4px); }
.tpb-link.is-ink .elementor-heading-title a {
	color: var(--tpb-ink);
	border-bottom: 1px solid rgba(0,0,0,.2);
	padding-bottom: 4px;
}
.tpb-link.is-ink .elementor-heading-title a:hover { border-color: #000; }

/* Buttons */
.tpb-btn .elementor-button {
	height: 56px;
	padding: 0 28px;
	border-radius: 2px;
	font-family: var(--tpb-font-heading);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .2em;
	text-transform: uppercase;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	transition: all .25s;
	line-height: 1;
}
.tpb-btn-primary .elementor-button {
	background: var(--tpb-accent);
	color: var(--tpb-bg);
	border: 0;
}
.tpb-btn-primary .elementor-button:hover {
	background: var(--tpb-primary);
	color: var(--tpb-bg);
	box-shadow: 0 18px 40px -22px var(--tpb-accent);
}
.tpb-btn-primary .elementor-button .elementor-button-text::after {
	content: '';
	display: inline-block;
	width: 16px;
	height: 16px;
	margin-left: 12px;
	vertical-align: -3px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center/contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center/contain no-repeat;
	transition: transform .2s;
}
.tpb-btn-primary .elementor-button:hover .elementor-button-text::after { transform: translateX(4px); }
.tpb-btn-primary.no-arrow .elementor-button .elementor-button-text::after { display: none; }
.tpb-btn-outline .elementor-button {
	background: transparent;
	color: var(--tpb-fg);
	border: 1px solid var(--tpb-border);
}
.tpb-btn-outline .elementor-button:hover {
	border-color: rgba(195,153,75,.6);
	color: var(--tpb-accent);
	background: transparent;
}
.tpb-btn.is-sm .elementor-button { height: 44px; padding: 0 24px; font-size: 11px; letter-spacing: .18em; }

/* =========================================================
   3. Home — hero
   ========================================================= */
.tpb-stats {
	border-top: 1px solid var(--tpb-border);
}
.tpb-hero-media {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(44,42,38,.7);
	border-radius: 2px;
}
.tpb-hero-media .elementor-widget-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
}
.tpb-hero-media::after {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(to top, var(--tpb-bg), rgba(10,10,10,.1) 50%, transparent);
	z-index: 1;
}
.tpb-hero-media > .elementor-widget-html { position: static; }

/* Rotating "Best deals online" badge */
.tpb-deal-badge {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 112px;
	height: 112px;
	z-index: 3;
}
@media (min-width: 768px) {
	.tpb-deal-badge { top: 24px; right: 24px; width: 128px; height: 128px; }
}
.tpb-deal-badge svg.tpb-spin { width: 100%; height: 100%; animation: tpb-spin 34s linear infinite; }
.tpb-deal-badge text { fill: var(--tpb-accent); font-family: var(--tpb-font-mono); }
.tpb-deal-badge .tpb-badge-inner {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	text-align: center;
}
.tpb-deal-badge .tpb-badge-inner svg { width: 16px; height: 16px; fill: var(--tpb-accent); color: var(--tpb-accent); }
.tpb-deal-badge .tpb-badge-label { font-family: var(--tpb-font-mono); font-size: 9px; letter-spacing: .2em; text-transform: uppercase; color: rgba(245,243,240,.7); }
.tpb-deal-badge .tpb-badge-value { font-family: var(--tpb-font-heading); font-size: 20px; font-weight: 800; line-height: 1; color: var(--tpb-fg); }
@media (min-width: 768px) { .tpb-deal-badge .tpb-badge-value { font-size: 24px; } }

/* Deal-of-the-week card */
.tpb-deal-card {
	position: absolute !important;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: 3;
	border: 1px solid rgba(255,255,255,.1) !important;
	background: rgba(10,10,10,.7) !important;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-radius: 2px;
	transition: border-color .25s;
}
.tpb-deal-card:hover { border-color: rgba(195,153,75,.5) !important; }
@media (min-width: 768px) {
	.tpb-deal-card { left: 24px; bottom: 24px; right: auto; width: 300px !important; }
}
.tpb-deal-title .elementor-heading-title { font-family: var(--tpb-font-heading); font-size: 14px; font-weight: 600; color: var(--tpb-fg); }
.tpb-deal-price .elementor-heading-title { font-family: var(--tpb-font-heading); font-size: 18px; font-weight: 700; color: var(--tpb-fg); display: flex; align-items: baseline; gap: 8px; }
.tpb-deal-price del { font-family: var(--tpb-font-body); font-size: 12px; font-weight: 400; color: var(--tpb-muted); }
.tpb-deal-arrow svg { width: 20px; height: 20px; color: var(--tpb-primary); transition: transform .2s; }
.tpb-deal-card:hover .tpb-deal-arrow svg { transform: translateX(4px); }

/* Ticker */
.tpb-ticker {
	display: flex;
	overflow: hidden;
	border-top: 1px solid rgba(44,42,38,.7);
	background: rgba(0,0,0,.4);
	padding: 12px 0;
}
.tpb-ticker-track {
	display: flex;
	min-width: max-content;
	align-items: center;
	gap: 40px;
	white-space: nowrap;
	animation: tpb-marquee 44s linear infinite;
}
.tpb-ticker-track span {
	display: flex;
	align-items: center;
	gap: 40px;
	font-family: var(--tpb-font-mono);
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: .32em;
	color: var(--tpb-muted);
}
.tpb-ticker-track span::after {
	content: '';
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--tpb-accent);
}

@keyframes tpb-marquee { from { transform: translate3d(0,0,0); } to { transform: translate3d(-50%,0,0); } }
@keyframes tpb-spin { from { transform: rotate(0); } to { transform: rotate(360deg); } }

/* =========================================================
   4. Home — category strip (chalk band)
   ========================================================= */
.tpb-chalk {
	background-color: var(--tpb-chalk);
	color: var(--tpb-ink);
}
.tpb-cat .elementor-icon-box-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	text-align: center;
}
.tpb-cat .elementor-icon-box-icon { margin: 0 !important; }
.tpb-cat .elementor-icon {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	border: 1px solid rgba(0,0,0,.1);
	background: #fff;
	box-shadow: 0 1px 0 rgba(0,0,0,.04);
	display: flex !important;
	align-items: center;
	justify-content: center;
	color: var(--tpb-ink) !important;
	fill: none !important;
	transition: all .3s;
	padding: 0 !important;
	font-size: 24px;
}
.tpb-cat .elementor-icon svg { width: 24px !important; height: 24px !important; fill: none !important; stroke: currentColor; stroke-width: 1.5; }
.tpb-cat.is-more .elementor-icon { background: rgba(0,0,0,.06); }
.tpb-cat:hover .elementor-icon {
	transform: translateY(-4px);
	border-color: rgba(0,0,0,.35);
	box-shadow: 0 18px 30px -20px rgba(0,0,0,.55);
}
.tpb-cat .elementor-icon-box-title {
	margin: 0 !important;
	font-family: var(--tpb-font-body) !important;
	font-size: 10px !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	letter-spacing: .12em;
	line-height: 1.25 !important;
	color: var(--tpb-ink) !important;
	opacity: .75;
	transition: opacity .2s;
}
.tpb-cat .elementor-icon-box-title a { color: inherit !important; }
.tpb-cat:hover .elementor-icon-box-title { opacity: 1; }
.tpb-cat .elementor-icon-box-description { display: none; }

/* =========================================================
   5. Section heading row
   ========================================================= */
.tpb-heading-row {
	border-bottom: 1px solid var(--tpb-border);
}

/* =========================================================
   6. Promo banners
   ========================================================= */
.tpb-banner {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--tpb-border) !important;
	border-radius: 2px;
	aspect-ratio: 4 / 3;
	background-size: cover !important;
	background-position: center !important;
	transition: background-size .7s;
}
.tpb-banner::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, var(--tpb-bg), rgba(10,10,10,.7) 50%, transparent);
	pointer-events: none;
	z-index: 0;
}
.tpb-banner::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image: inherit;
	background-size: cover;
	background-position: center;
	z-index: -1;
	transition: transform .7s;
}
.tpb-banner > * { position: relative; z-index: 1; }
.tpb-banner-title .elementor-heading-title {
	font-family: var(--tpb-font-heading);
	font-weight: 700;
	text-transform: uppercase;
	color: var(--tpb-fg);
	font-size: 24px;
	line-height: 1.05;
	letter-spacing: -.015em;
	max-width: 10ch;
}
@media (min-width: 768px) { .tpb-banner-title .elementor-heading-title { font-size: 26px; } }
.tpb-banner-copy .elementor-heading-title { font-family: var(--tpb-font-body); font-size: 12px; font-weight: 400; color: var(--tpb-muted); }
.tpb-banner-cta .elementor-heading-title {
	font-family: var(--tpb-font-mono);
	font-size: 10px;
	font-weight: 400;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--tpb-accent);
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.tpb-banner-cta svg { width: 14px; height: 14px; transition: transform .2s; }
.tpb-banner:hover .tpb-banner-cta svg { transform: translate(2px,-2px); }

/* =========================================================
   7. Numbered promise / principles
   ========================================================= */
.tpb-promise {
	border-top: 1px solid var(--tpb-border);
}

/* =========================================================
   8. About — department cards & contact cards
   ========================================================= */
.tpb-dept {
	border: 1px solid var(--tpb-border);
	padding: 20px;
	transition: border-color .2s;
	height: 100%;
}
.tpb-dept:hover { border-color: rgba(195,153,75,.6); }
.tpb-dept .elementor-icon-box-wrapper { display: flex; align-items: flex-start; gap: 16px; text-align: left; }
.tpb-dept .elementor-icon-box-icon { margin: 0 !important; flex: none; }
.tpb-dept .elementor-icon {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--tpb-border);
	display: flex !important;
	align-items: center;
	justify-content: center;
	color: var(--tpb-primary) !important;
	padding: 0 !important;
	transition: border-color .2s;
}
.tpb-dept:hover .elementor-icon { border-color: rgba(195,153,75,.6); }
.tpb-dept .elementor-icon svg { width: 20px !important; height: 20px !important; fill: none !important; stroke: currentColor; stroke-width: 1.6; }
.tpb-dept .elementor-icon-box-title {
	margin: 0 0 4px !important;
	font-family: var(--tpb-font-heading) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--tpb-fg) !important;
}
.tpb-dept .elementor-icon-box-title a { color: inherit !important; }
.tpb-dept-grid { counter-reset: tpbdept; }
.tpb-dept .elementor-icon-box-title::before {
	counter-increment: tpbdept;
	content: counter(tpbdept, decimal-leading-zero);
	display: block;
	font-family: var(--tpb-font-mono);
	font-size: 9px;
	font-weight: 400;
	letter-spacing: .24em;
	color: var(--tpb-muted);
	margin-bottom: 4px;
}
.tpb-dept .elementor-icon-box-description {
	font-size: 12px !important;
	line-height: 1.6 !important;
	color: var(--tpb-muted) !important;
	margin: 0 !important;
}
.tpb-dept-num {
	display: block;
	font-family: var(--tpb-font-mono);
	font-size: 9px;
	letter-spacing: .24em;
	color: var(--tpb-muted);
	margin-bottom: 4px;
	font-weight: 400;
}

.tpb-contact-card {
	border: 1px solid var(--tpb-border) !important;
	background: rgba(18,18,18,.6) !important;
	transition: border-color .2s;
}
a.tpb-contact-card:hover { border-color: rgba(195,153,75,.6) !important; }
.tpb-contact-card .tpb-ico svg { width: 20px; height: 20px; color: var(--tpb-primary); display: block; }
.tpb-contact-value .elementor-heading-title { font-family: var(--tpb-font-heading); font-size: 14px; font-weight: 600; color: var(--tpb-fg); word-break: break-all; transition: color .2s; }
a.tpb-contact-card:hover .tpb-contact-value .elementor-heading-title { color: var(--tpb-accent); }

/* =========================================================
   9. Shop archive layout
   ========================================================= */
.tpb-shop-search {
	display: flex;
	gap: 8px;
	max-width: 448px;
}
.tpb-shop-search .tpb-input-wrap { position: relative; flex: 1; }
.tpb-shop-search svg {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	width: 16px;
	height: 16px;
	color: var(--tpb-muted);
	pointer-events: none;
}
.tpb-shop-search input[type="search"] {
	height: 44px;
	width: 100%;
	border-radius: 2px;
	border: 1px solid var(--tpb-border);
	background: rgba(28,28,28,.6);
	padding: 0 16px 0 40px;
	font-size: 14px;
	color: var(--tpb-fg);
}
.tpb-shop-search input[type="search"]:focus { border-color: rgba(195,153,75,.7); outline: none; }
.tpb-shop-search button {
	height: 44px;
	flex: none;
	border-radius: 2px;
	background: var(--tpb-accent);
	color: var(--tpb-bg);
	padding: 0 20px;
	font-family: var(--tpb-font-heading);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	border: 0;
	cursor: pointer;
	transition: background .2s;
}
.tpb-shop-search button:hover { background: var(--tpb-primary); }

.tpb-cat-nav-band {
	background: #000;
	border-top: 1px solid var(--tpb-border);
	border-bottom: 1px solid var(--tpb-border);
}
.tpb-cat-nav {
	display: flex;
	align-items: stretch;
	gap: 24px;
	overflow-x: auto;
	padding: 16px 0;
	scrollbar-width: none;
}
.tpb-cat-nav::-webkit-scrollbar { display: none; }
@media (min-width: 768px) { .tpb-cat-nav { justify-content: space-between; } }
.tpb-cat-nav a {
	flex: none;
	white-space: nowrap;
	border-bottom: 2px solid transparent;
	padding-bottom: 4px;
	font-family: var(--tpb-font-heading);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .14em;
	color: rgba(245,243,240,.8);
	transition: color .2s;
}
@media (min-width: 768px) { .tpb-cat-nav a { font-size: 12px; } }
.tpb-cat-nav a:hover { color: var(--tpb-accent); }
.tpb-cat-nav a.is-active { color: var(--tpb-accent); border-color: var(--tpb-accent); }

.tpb-shop-title .entry-title,
.tpb-shop-title .title,
.tpb-shop-title h1 {
	font-family: var(--tpb-font-heading) !important;
	font-weight: 800 !important;
	text-transform: uppercase;
	color: var(--tpb-fg) !important;
	font-size: 36px !important;
	line-height: .92 !important;
	letter-spacing: -.02em;
	margin: 0;
}
@media (min-width: 768px) {
	.tpb-shop-title .entry-title, .tpb-shop-title .title, .tpb-shop-title h1 { font-size: 60px !important; }
}
.tpb-shop-desc, .tpb-shop-desc p, .tpb-shop-desc .term-description {
	font-size: 14px;
	line-height: 1.65;
	color: var(--tpb-muted);
	max-width: 576px;
	margin: 0;
}
.tpb-result-row { border-bottom: 1px solid var(--tpb-border); }
.tpb-result-row .woocommerce-result-count {
	font-family: var(--tpb-font-mono);
	font-size: 10px;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--tpb-muted);
	margin: 0;
}

/* =========================================================
   10. Product cards (WoodMart grid)
   ========================================================= */
.wd-product .product-wrapper,
.wd-product .wd-product-wrapper {
	background: transparent;
}
.wd-product .product-element-top,
.wd-product .wd-product-thumb {
	border-radius: 2px;
	overflow: hidden;
	background: var(--tpb-card);
	position: relative;
}
.wd-product .product-image-link img,
.wd-product .wd-product-img-link img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	width: 100%;
	transition: transform .9s ease-out;
}
.wd-product:hover .product-image-link img,
.wd-product:hover .wd-product-img-link img {
	transform: scale(1.07);
}
.wd-product .product-element-top::after,
.wd-product .wd-product-thumb::after {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(to top, rgba(10,10,10,.7), transparent 50%);
	opacity: 0;
	transition: opacity .5s;
}
.wd-product:hover .product-element-top::after,
.wd-product:hover .wd-product-thumb::after { opacity: 1; }

/* Labels */
.product-labels {
	inset: 12px auto auto 12px !important;
	align-items: flex-start !important;
	gap: 8px;
}
.product-labels .product-label {
	border-radius: 2px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	padding: 4px 8px !important;
	font-family: var(--tpb-font-mono) !important;
	font-size: 10px !important;
	font-weight: 700 !important;
	letter-spacing: .1em !important;
	line-height: 1.3 !important;
	text-transform: uppercase;
	margin: 0 !important;
}
.product-labels .product-label.onsale {
	background: var(--tpb-accent) !important;
	color: var(--tpb-bg) !important;
}
.product-labels .product-label.new,
.product-labels .tpb-badge-label {
	background: rgba(10,10,10,.7) !important;
	color: rgba(245,243,240,.85) !important;
	border: 1px solid rgba(255,255,255,.15);
	font-size: 9px !important;
	font-weight: 400 !important;
	letter-spacing: .14em !important;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

/* Category + title + price */
.tpb-card-cat {
	display: block;
	font-family: var(--tpb-font-mono);
	font-size: 9px;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--tpb-muted);
	margin: 16px 0 8px;
	text-align: left;
}
.wd-product .wd-entities-title {
	font-family: var(--tpb-font-heading) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	text-align: left;
	margin-bottom: 8px;
}
.wd-product .wd-entities-title a { color: var(--tpb-fg); }
.wd-product .wd-entities-title a:hover { color: var(--tpb-accent); }
.wd-product .price {
	display: flex !important;
	flex-direction: row-reverse;
	justify-content: flex-end;
	align-items: baseline;
	gap: 8px;
	text-align: left;
}
.wd-product .price,
.wd-product .price ins,
.wd-product .price > .amount,
.wd-product .price ins .amount {
	font-family: var(--tpb-font-heading);
	font-size: 18px;
	font-weight: 700;
	color: var(--tpb-fg) !important;
	text-decoration: none;
}
.wd-product .price del,
.wd-product .price del .amount {
	font-family: var(--tpb-font-body);
	font-size: 14px;
	font-weight: 400;
	color: var(--tpb-muted) !important;
	opacity: 1;
}
.wd-product .product-element-bottom,
.wd-product .wd-product-header,
.wd-product .product-information { text-align: left; padding: 0 !important; }
.wd-product .wd-product-cats,
.wd-product .wd-product-brands-links { display: none; }
.wd-product .star-rating { margin: 8px 0 0; }
.wd-product .star-rating::before { color: rgba(168,163,153,.4); }
.wd-product .star-rating span::before { color: var(--tpb-primary); }

/* Hover buttons: wishlist top-right, add-to-cart round bottom-right */
.wd-product .wd-buttons {
	background: transparent !important;
	box-shadow: none !important;
}
.wd-product .wd-wishlist-btn > a,
.wd-product .wd-compare-btn > a,
.wd-product .quick-view > a {
	color: rgba(245,243,240,.8);
}
.tpb-products .wd-product .wd-compare-btn,
.tpb-products .wd-product .quick-view { display: none !important; }

/* =========================================================
   11. Header (WoodMart header builder)
   ========================================================= */
.whb-header { border: 0; }
.whb-top-bar,
.whb-top-bar-inner {
	background: #000 !important;
	border-bottom: 1px solid rgba(44,42,38,.7);
}
.whb-general-header,
.whb-header-bottom,
.whb-sticked .whb-general-header {
	background: rgba(10,10,10,.95) !important;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid rgba(44,42,38,.7) !important;
}
.whb-header-bottom { border-bottom: 1px solid rgba(44,42,38,.7) !important; }
.whb-row .container,
.whb-row > .container { max-width: 1440px; padding-left: 40px; padding-right: 40px; }
@media (max-width: 1024px) {
	.whb-row .container, .whb-row > .container { padding-left: 20px; padding-right: 20px; }
}

.tpb-topbar-item {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--tpb-font-mono);
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: .16em;
	color: var(--tpb-muted);
	white-space: nowrap;
}
.tpb-topbar-item svg { width: 14px; height: 14px; color: var(--tpb-primary); flex: none; }
.whb-top-bar .wd-header-text { padding: 0; flex: 0 0 auto !important; width: auto !important; }
.whb-top-bar .whb-col-left,
.whb-top-bar .whb-col-center,
.whb-top-bar .whb-col-right { flex: 1 1 0 !important; max-width: none !important; }
.whb-top-bar .whb-col-left { justify-content: flex-start !important; }
.whb-top-bar .whb-col-center { justify-content: center !important; }
.whb-top-bar .whb-col-right { justify-content: flex-end !important; }
@media (max-width: 1279px) { .whb-top-bar .whb-col-right .tpb-topbar-item { display: none; } }

/* Cart: icon + "CART" label instead of subtotal */
.whb-general-header .wd-header-cart .wd-tools-text { font-size: 0 !important; }
.whb-general-header .wd-header-cart .wd-tools-text > * { display: none !important; }
.whb-general-header .wd-header-cart .wd-tools-text::after {
	content: 'Cart';
	font-family: var(--tpb-font-mono);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
}
@media (max-width: 1024px) { .whb-general-header .wd-header-cart .wd-tools-text { display: none; } }

/* Brand mark */
.tpb-brand {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
}
.tpb-brand svg {
	width: 44px;
	height: 44px;
	color: var(--tpb-primary);
	flex: none;
	transition: transform .5s;
}
.tpb-brand:hover svg { transform: rotate(90deg); }
.tpb-brand .tpb-brand-text { display: flex; flex-direction: column; line-height: 1; }
.tpb-brand .tpb-brand-text span {
	font-family: var(--tpb-font-heading);
	font-weight: 600;
	text-transform: uppercase;
	font-size: 12px;
	letter-spacing: .34em;
	color: var(--tpb-fg);
}
.tpb-brand .tpb-brand-text span + span { color: var(--tpb-primary); margin-top: 2px; }
@media (max-width: 1024px) {
	.tpb-brand svg { width: 36px; height: 36px; }
	.tpb-brand .tpb-brand-text span { font-size: 11px; letter-spacing: .3em; }
}
.whb-header .wd-header-html .elementor-widget-container,
.whb-header .wd-header-html { line-height: 1; }
.whb-header .wd-header-html .e-con { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }

/* Search form */
.whb-general-header .wd-header-search-form { flex: 1; max-width: 576px; margin: 0 auto; }
.whb-general-header .searchform,
.tpb-mobile-search .searchform { position: relative; }
.whb-header .searchform input[type="text"] {
	height: 48px !important;
	border-radius: 2px !important;
	border: 1px solid var(--tpb-border) !important;
	background: rgba(28,28,28,.6) !important;
	padding-left: 44px !important;
	padding-right: 112px !important;
	font-family: var(--tpb-font-body);
	font-size: 14px !important;
	color: var(--tpb-fg) !important;
	box-shadow: none !important;
}
.whb-header .searchform input[type="text"]::placeholder { color: rgba(168,163,153,.7); }
.whb-header .searchform input[type="text"]:focus { border-color: rgba(195,153,75,.7) !important; box-shadow: 0 0 0 1px rgba(195,153,75,.4) !important; }
.whb-header .searchform::before {
	content: '';
	position: absolute;
	left: 16px;
	top: 50%;
	width: 16px;
	height: 16px;
	transform: translateY(-50%);
	background: var(--tpb-muted);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") center/contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") center/contain no-repeat;
	z-index: 2;
	pointer-events: none;
}
.whb-general-header .searchform .searchsubmit {
	position: absolute !important;
	top: 6px !important;
	right: 6px !important;
	bottom: 6px !important;
	height: 36px !important;
	width: auto !important;
	padding: 0 16px !important;
	border-radius: 2px !important;
	background: var(--tpb-accent) !important;
	color: var(--tpb-bg) !important;
	transition: background .2s;
}
.whb-general-header .searchform .searchsubmit:hover { background: var(--tpb-primary) !important; }
.whb-general-header .searchform .searchsubmit::before,
.whb-general-header .searchform .searchsubmit::after,
.whb-general-header .searchform .searchsubmit .wd-tools-icon { display: none !important; }
.whb-general-header .searchform .searchsubmit span:not(.wd-tools-icon),
.whb-general-header .searchform .searchsubmit {
	font-size: 0 !important;
}
.whb-general-header .searchform .searchsubmit .tpb-search-label,
.whb-general-header .searchform .searchsubmit::marker { display: none; }
.whb-general-header .searchform .searchsubmit {
	display: inline-flex !important;
	align-items: center;
}
.whb-general-header .searchform .searchsubmit > * { display: none !important; }
.whb-general-header .searchform .searchsubmit:not(:empty)::after,
.whb-general-header .searchform .searchsubmit:empty::after {
	content: 'Search' !important;
	display: inline !important;
	position: static !important;
	transform: none !important;
	width: auto !important;
	height: auto !important;
	border: 0 !important;
	animation: none !important;
	opacity: 1 !important;
	font-family: var(--tpb-font-heading) !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: .16em !important;
	text-transform: uppercase !important;
	color: var(--tpb-bg) !important;
	background: none !important;
}

/* Header tools */
.whb-header .wd-tools-element > a {
	color: rgba(245,243,240,.8);
	border-radius: 2px;
	transition: background .2s, color .2s;
}
.whb-header .wd-tools-element > a:hover {
	color: var(--tpb-accent);
	background: var(--tpb-secondary);
}
.whb-general-header .wd-tools-element:not(.wd-header-search-form) > a {
	height: 44px;
	min-width: 44px;
	padding: 0 10px;
	justify-content: center;
}
.whb-header .wd-tools-text,
.whb-header .wd-cart-subtotal {
	font-family: var(--tpb-font-mono);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .14em;
	font-weight: 400;
}
.whb-header .wd-tools-count {
	background: var(--tpb-accent) !important;
	color: var(--tpb-bg) !important;
	font-family: var(--tpb-font-mono);
	font-size: 10px;
	font-weight: 700;
}

/* =========================================================
   12. Footer HTML block
   ========================================================= */
.footer-container,
.wd-footer,
.footer-container .main-footer {
	background: #000 !important;
	border-top: 1px solid var(--tpb-border);
}
.footer-container .main-footer > .container,
.wd-footer .container { max-width: 100%; padding: 0; }
.tpb-footer-col-title .elementor-heading-title {
	font-family: var(--tpb-font-mono);
	font-size: 10px;
	font-weight: 400;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--tpb-muted);
}
.tpb-footer-links ul { list-style: none; margin: 0; padding: 0; }
.tpb-footer-links li { margin: 0 0 12px; font-size: 14px; }
.tpb-footer-links a {
	color: rgba(245,243,240,.85);
	display: inline-flex;
	align-items: center;
	gap: 4px;
	transition: color .2s;
}
.tpb-footer-links a:hover { color: var(--tpb-accent); }
.tpb-footer-links svg { width: 12px; height: 12px; }
.tpb-footer-contact a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--tpb-font-mono);
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--tpb-primary);
	transition: color .2s;
}
.tpb-footer-contact a:hover { color: var(--tpb-accent); }
.tpb-footer-contact svg { width: 14px; height: 14px; }
.tpb-footer-contact p { margin: 0 0 12px; }
.tpb-footer-bottom { border-top: 1px solid var(--tpb-border); }
.tpb-footer-bottom .tpb-mono svg { width: 14px; height: 14px; color: var(--tpb-primary); vertical-align: -3px; margin-right: 6px; }

/* =========================================================
   13. WooCommerce / WoodMart page chrome in dark
   ========================================================= */
.page-title,
.page-title-default {
	background: var(--tpb-bg) !important;
	border-bottom: 1px solid var(--tpb-border);
}
.page-title .entry-title,
.page-title .title {
	font-family: var(--tpb-font-heading);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: -.02em;
	color: var(--tpb-fg);
}
.woocommerce-breadcrumb, .wd-breadcrumbs { font-family: var(--tpb-font-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; }
.wd-page-content .button,
.woocommerce .button,
button.button,
.single_add_to_cart_button,
.checkout-button,
#place_order {
	font-family: var(--tpb-font-heading) !important;
	font-weight: 700 !important;
	letter-spacing: .16em !important;
	text-transform: uppercase !important;
	border-radius: 2px !important;
}
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], input[type="search"], textarea, select {
	background-color: rgba(28,28,28,.6);
	border-color: var(--tpb-border);
	color: var(--tpb-fg);
}

@media (prefers-reduced-motion: reduce) {
	.tpb-ticker-track,
	.tpb-deal-badge svg.tpb-spin { animation: none; }
	html { scroll-behavior: auto; }
}
