/* ==========================================================================
   BikerDroid — base design system
   Tokens, typography, layout normalisation over GeneratePress, and shared
   components (buttons, forms, notices, badges, section heads, rails, drawers,
   toasts, breadcrumbs, pagination). Feature styles live in their own files.
   ========================================================================== */

/* Fonts: @font-face rules are printed in <head> by inc/setup.php (same-origin URLs). */

/* ---------- Design tokens ---------- */
:root {
	/* Gold (logo #FDC602) */
	--bd-gold: #fdc602;
	--bd-gold-300: #ffe066;
	--bd-gold-400: #ffd22e;
	--bd-gold-600: #e8b400;
	--bd-gold-700: #b98f00;
	--bd-gold-ink: #8c6700;          /* gold text on white (AA) */
	--bd-gold-50: #fffaeb;
	--bd-gold-100: #fff1c2;
	--bd-gold-grad: linear-gradient(135deg, #ffe27a 0%, #fdc602 45%, #d9a300 100%);
	--bd-gold-soft: rgba(253, 198, 2, 0.14);

	/* Black */
	--bd-black: #0a0a0a;
	--bd-dark-1: #111111;
	--bd-dark-2: #181818;
	--bd-dark-3: #222222;
	--bd-dark-4: #2e2e2e;
	--bd-dark-line: rgba(255, 255, 255, 0.1);
	--bd-dark-line-2: rgba(255, 255, 255, 0.18);

	/* White & neutrals */
	--bd-white: #ffffff;
	--bd-paper: #f7f6f2;
	--bd-paper-2: #efede7;
	--bd-line: #e7e5df;
	--bd-line-2: #d6d3cb;

	/* Text */
	--bd-text: #111111;
	--bd-text-2: #4a4a4a;
	--bd-text-3: #6a6a6a;           /* ≥4.5:1 on white, paper and paper-2 */
	--bd-on-dark: #ffffff;
	--bd-on-dark-2: rgba(255, 255, 255, 0.74);
	--bd-on-dark-3: rgba(255, 255, 255, 0.6);

	/* Status */
	--bd-success: #15803d;
	--bd-success-bg: #ecfdf3;
	--bd-danger: #c62828;
	--bd-danger-bg: #fef2f2;
	--bd-info: #1d4ed8;
	--bd-info-bg: #eff6ff;
	--bd-warning: #a16207;
	--bd-warning-bg: #fffbeb;

	/* Type */
	--bd-font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--bd-font-display: "Saira", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--bd-fs-2xs: 11px;
	--bd-fs-xs: 12px;
	--bd-fs-sm: 13.5px;
	--bd-fs-base: 15px;
	--bd-fs-md: 17px;
	--bd-fs-lg: 20px;
	--bd-fs-xl: 24px;
	--bd-fs-2xl: clamp(26px, 2.6vw, 32px);
	--bd-fs-3xl: clamp(30px, 3.6vw, 44px);
	--bd-fs-4xl: clamp(36px, 5vw, 60px);
	--bd-fs-hero: clamp(40px, 6.4vw, 88px);
	--bd-lh: 1.6;

	/* Shape */
	--bd-r-xs: 4px;
	--bd-r-sm: 6px;
	--bd-r: 10px;
	--bd-r-lg: 16px;
	--bd-r-xl: 24px;
	--bd-r-pill: 999px;
	--bd-r-btn: 8px;

	/* Elevation */
	--bd-shadow-xs: 0 1px 2px rgba(10, 10, 10, 0.06);
	--bd-shadow-sm: 0 2px 8px -2px rgba(10, 10, 10, 0.12);
	--bd-shadow: 0 12px 28px -12px rgba(10, 10, 10, 0.22);
	--bd-shadow-lg: 0 28px 60px -24px rgba(10, 10, 10, 0.35);
	--bd-ring: 0 0 0 3px rgba(253, 198, 2, 0.45);

	/* Layout */
	--bd-container: 1320px;
	--bd-gutter: clamp(16px, 3vw, 32px);
	--bd-section-y: clamp(56px, 7vw, 104px);
	--bd-header-h: 0px;          /* set by the header script (sticky offsets) */
	--bd-admin-bar: var(--wp-admin--admin-bar--height, 0px);
	--bd-sticky-top: calc(var(--bd-admin-bar) + var(--bd-header-h) + 16px);

	/* Motion */
	--bd-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--bd-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--bd-dur: 0.22s;
	--bd-dur-slow: 0.45s;

	/* Layers */
	--bd-z-header: 100;
	--bd-z-dropdown: 120;
	--bd-z-sticky: 90;
	--bd-z-overlay: 990;
	--bd-z-drawer: 1000;
	--bd-z-toast: 1100;
}

/* ---------- Base ---------- */
html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}
html.bd-lock {
	overflow: hidden;
}
body.bd-theme {
	background: var(--bd-white);
	color: var(--bd-text);
	font-family: var(--bd-font-body);
	font-size: var(--bd-fs-base);
	line-height: var(--bd-lh);
	font-feature-settings: "cv11", "ss01";
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
.bd-theme button,
.bd-theme input,
.bd-theme select,
.bd-theme textarea {
	font-family: var(--bd-font-body);
}
.bd-theme h1,
.bd-theme h2,
.bd-theme h3,
.bd-theme h4,
.bd-theme h5,
.bd-theme h6 {
	font-family: var(--bd-font-display);
	color: inherit;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin: 0 0 0.5em;
}
.bd-theme h1 { font-size: var(--bd-fs-3xl); }
.bd-theme h2 { font-size: var(--bd-fs-2xl); }
.bd-theme h3 { font-size: var(--bd-fs-xl); }
.bd-theme h4 { font-size: var(--bd-fs-lg); }
.bd-theme h5,
.bd-theme h6 { font-size: var(--bd-fs-md); }

.bd-theme a {
	color: inherit;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color var(--bd-dur) var(--bd-ease), background-color var(--bd-dur) var(--bd-ease), border-color var(--bd-dur) var(--bd-ease), opacity var(--bd-dur) var(--bd-ease);
}
.bd-theme a:hover {
	color: var(--bd-gold-ink);
}
.bd-theme img {
	max-width: 100%;
	height: auto;
}
.bd-theme ::selection {
	background: var(--bd-gold);
	color: var(--bd-black);
}
.bd-theme :focus {
	outline: none;
}
.bd-theme :focus-visible {
	outline: 2px solid var(--bd-gold);
	outline-offset: 2px;
	border-radius: var(--bd-r-xs);
}
.bd-theme hr {
	border: 0;
	border-top: 1px solid var(--bd-line);
	margin: 32px 0;
}

/* ---------- GeneratePress layout normalisation ---------- */
.bd-theme .site.grid-container,
.bd-theme .grid-container {
	max-width: var(--bd-container);
	padding-left: var(--bd-gutter);
	padding-right: var(--bd-gutter);
	box-sizing: border-box;
}
.bd-theme .site.grid-container {
	background: transparent;
}
.bd-theme.one-container .site-content,
.bd-theme.separate-containers .site-content {
	padding: 0;
}
.bd-theme .site-content {
	display: block;
	padding-top: 40px;
	padding-bottom: var(--bd-section-y);
}
.bd-theme .content-area,
.bd-theme .site-main {
	width: 100%;
	margin: 0;
	float: none;
}
.bd-theme.one-container .container,
.bd-theme.separate-containers .inside-article,
.bd-theme.one-container .inside-article,
.bd-theme .inside-article {
	background: transparent;
	padding: 0;
}
.bd-theme .site-main > * {
	margin-bottom: 0;
}
.bd-theme .entry-header {
	margin-bottom: 24px;
}
.bd-theme .entry-title {
	font-size: var(--bd-fs-3xl);
	text-transform: uppercase;
	font-stretch: 110%;
}
.bd-theme .entry-content:not(:first-child),
.bd-theme .entry-summary:not(:first-child),
.bd-theme .page-content:not(:first-child) {
	margin-top: 0;
}

/* Full-bleed templates (home page etc.): remove the page container entirely. */
.bd-full .site.grid-container,
.bd-full .site-content {
	max-width: none;
	padding: 0;
}
.bd-full .site-content {
	padding-top: 0;
	padding-bottom: 0;
}

/* ---------- Container & section ---------- */
.bd-container {
	width: 100%;
	max-width: var(--bd-container);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--bd-gutter);
	padding-right: var(--bd-gutter);
	box-sizing: border-box;
}
.bd-section {
	padding-top: var(--bd-section-y);
	padding-bottom: var(--bd-section-y);
}
.bd-section--paper { background: var(--bd-paper); }
.bd-section--dark {
	background: var(--bd-black);
	color: var(--bd-on-dark);
}
.bd-dark {
	color: var(--bd-on-dark);
}

/* ---------- Typography helpers ---------- */
.bd-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 12px;
	font-family: var(--bd-font-body);
	font-size: var(--bd-fs-xs);
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--bd-gold-ink);
}
.bd-eyebrow::before {
	content: "";
	width: 22px;
	height: 3px;
	background: var(--bd-gold);
	transform: skewX(-30deg);
	border-radius: 1px;
	flex: none;
}
.bd-section--dark .bd-eyebrow,
.bd-dark .bd-eyebrow,
.bd-pagehead .bd-eyebrow {
	color: var(--bd-gold);
}
.bd-display {
	font-family: var(--bd-font-display);
	font-weight: 800;
	font-stretch: 112%;
	text-transform: uppercase;
	line-height: 0.98;
	letter-spacing: -0.015em;
}
.bd-display em,
.bd-section-title em {
	font-style: normal;
	color: var(--bd-gold-ink);
}
.bd-section--dark .bd-display em,
.bd-section--dark .bd-section-title em,
.bd-dark .bd-display em,
.bd-dark .bd-section-title em {
	color: var(--bd-gold);
}
.bd-muted { color: var(--bd-text-3); }
.bd-price,
.bd-theme .price {
	font-family: var(--bd-font-display);
	font-variant-numeric: tabular-nums;
}

/* Long-form page content */
.bd-prose,
.bd-theme .entry-content {
	font-size: 16px;
	line-height: 1.75;
	color: var(--bd-text-2);
}
.bd-prose h2,
.bd-prose h3,
.bd-theme .entry-content h2,
.bd-theme .entry-content h3 {
	color: var(--bd-text);
	margin-top: 1.6em;
}
/* :where() keeps this at low specificity so components can restyle their own links. */
.bd-prose a,
.bd-theme .entry-content a:where(:not(.button):not(.bd-btn):not(.wp-block-button__link)) {
	color: var(--bd-text);
	text-decoration: underline;
	text-decoration-color: var(--bd-gold);
	text-decoration-thickness: 2px;
}
.bd-prose ul,
.bd-prose ol,
.bd-theme .entry-content ul,
.bd-theme .entry-content ol {
	margin: 0 0 1.4em 1.2em;
}
.bd-prose li,
.bd-theme .entry-content li {
	margin-bottom: 0.4em;
}
.bd-theme .entry-content blockquote {
	border-left: 3px solid var(--bd-gold);
	background: var(--bd-paper);
	padding: 16px 20px;
	margin: 24px 0;
	font-style: normal;
	border-radius: 0 var(--bd-r) var(--bd-r) 0;
}
.bd-theme .entry-content table:not(.shop_table):not(.woocommerce-table) {
	border-collapse: collapse;
	width: 100%;
}
.bd-theme .entry-content table:not(.shop_table):not(.woocommerce-table) th,
.bd-theme .entry-content table:not(.shop_table):not(.woocommerce-table) td {
	border: 1px solid var(--bd-line);
	padding: 10px 14px;
}

/* ---------- Buttons ---------- */
.bd-btn,
.bd-theme .button,
.bd-theme button.button,
.bd-theme a.button,
.bd-theme input[type="submit"],
.bd-theme .woocommerce #respond input#submit,
.bd-theme .woocommerce a.button,
.bd-theme .woocommerce button.button,
.bd-theme .woocommerce input.button,
.bd-theme .wp-block-button__link,
.bd-theme .wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 12px 24px;
	border: 1.5px solid transparent;
	border-radius: var(--bd-r-btn);
	background: var(--bd-black);
	color: var(--bd-white);
	font-family: var(--bd-font-body);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	box-shadow: none;
	transition: background-color var(--bd-dur) var(--bd-ease), color var(--bd-dur) var(--bd-ease), border-color var(--bd-dur) var(--bd-ease), transform var(--bd-dur) var(--bd-ease), box-shadow var(--bd-dur) var(--bd-ease);
	-webkit-tap-highlight-color: transparent;
}
.bd-btn:hover,
.bd-theme .button:hover,
.bd-theme button.button:hover,
.bd-theme a.button:hover,
.bd-theme input[type="submit"]:hover,
.bd-theme .woocommerce a.button:hover,
.bd-theme .woocommerce button.button:hover,
.bd-theme .wp-block-button__link:hover,
.bd-theme .wp-element-button:hover {
	background: var(--bd-dark-3);
	color: var(--bd-gold);
	transform: translateY(-1px);
}
.bd-btn:active,
.bd-theme .button:active {
	transform: translateY(0);
}
.bd-btn .bd-icon {
	flex: none;
}

/* Primary call to action: gold */
.bd-btn--gold,
.bd-theme .button.alt,
.bd-theme button.button.alt,
.bd-theme .woocommerce a.button.alt,
.bd-theme .woocommerce button.button.alt,
.bd-theme .single_add_to_cart_button,
.bd-theme .checkout-button,
.bd-theme .wc-block-components-button:not(.is-link):not(.wc-block-components-panel__button) {
	background: var(--bd-gold);
	color: var(--bd-black);
	border-color: var(--bd-gold);
}
.bd-btn--gold:hover,
.bd-theme .button.alt:hover,
.bd-theme button.button.alt:hover,
.bd-theme .woocommerce a.button.alt:hover,
.bd-theme .woocommerce button.button.alt:hover,
.bd-theme .single_add_to_cart_button:hover,
.bd-theme .checkout-button:hover,
.bd-theme .wc-block-components-button:not(.is-link):not(.wc-block-components-panel__button):hover {
	background: var(--bd-gold-400);
	border-color: var(--bd-gold-400);
	color: var(--bd-black);
	box-shadow: 0 10px 24px -10px rgba(253, 198, 2, 0.7);
}
.bd-btn--dark {
	background: var(--bd-black);
	color: var(--bd-white);
}
.bd-btn--light {
	background: var(--bd-white);
	color: var(--bd-black);
}
.bd-btn--light:hover {
	background: var(--bd-gold);
	color: var(--bd-black);
}
.bd-btn--outline {
	background: transparent;
	color: var(--bd-text);
	border-color: currentColor;
}
.bd-btn--outline:hover {
	background: var(--bd-black);
	border-color: var(--bd-black);
	color: var(--bd-white);
}
.bd-btn--outline-light {
	background: transparent;
	color: var(--bd-white);
	border-color: rgba(255, 255, 255, 0.4);
}
.bd-btn--outline-light:hover {
	background: var(--bd-white);
	border-color: var(--bd-white);
	color: var(--bd-black);
}
.bd-btn--ghost {
	background: transparent;
	color: inherit;
	border-color: transparent;
	padding-left: 12px;
	padding-right: 12px;
}
.bd-btn--ghost:hover {
	background: var(--bd-gold-soft);
	color: inherit;
}
.bd-btn--sm {
	min-height: 38px;
	padding: 8px 16px;
	font-size: 12.5px;
}
.bd-btn--lg {
	min-height: 56px;
	padding: 16px 32px;
	font-size: 15px;
}
.bd-btn--block {
	width: 100%;
}
.bd-btn[disabled],
.bd-btn.is-disabled,
.bd-theme .button.disabled,
.bd-theme .button:disabled,
.bd-theme .button[disabled] {
	opacity: 0.45;
	cursor: not-allowed;
	transform: none;
}
.bd-theme .button.loading,
.bd-btn.is-loading {
	position: relative;
	color: transparent !important;
	pointer-events: none;
}
.bd-theme .button.loading::after,
.bd-btn.is-loading::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 18px;
	height: 18px;
	border: 2px solid currentColor;
	border-color: var(--bd-black) transparent var(--bd-black) transparent;
	border-radius: 50%;
	animation: bd-spin 0.7s linear infinite;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
	font-family: inherit;
}
.bd-theme .button.added::after {
	content: none;
}
.bd-theme .added_to_cart.wc-forward {
	display: none;
}

/* Icon-only round button */
.bd-iconbtn {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: var(--bd-r-pill);
	background: transparent;
	color: inherit;
	cursor: pointer;
	position: relative;
	transition: background-color var(--bd-dur) var(--bd-ease), color var(--bd-dur) var(--bd-ease);
}
.bd-iconbtn:hover {
	background: var(--bd-gold-soft);
	color: inherit;
}

/* Arrow text link */
.bd-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
}
.bd-link-arrow .bd-icon {
	transition: transform var(--bd-dur) var(--bd-ease);
}
.bd-link-arrow:hover .bd-icon {
	transform: translateX(4px);
}

/* Button colour guards: generic link colours (`.bd-theme a { color: inherit }` and
   `.bd-theme a:hover`) are more specific than the single-class button rules above, so
   link-buttons could inherit white text on gold, or turn dark gold on hover. These keep
   every button variant's own colours in any context. Module rules of equal specificity
   still win (they load later). */
.bd-theme .bd-btn { color: var(--bd-white); }
.bd-theme .bd-btn:hover,
.bd-theme .bd-btn:focus-visible { color: var(--bd-gold); }
.bd-theme .bd-btn--gold,
.bd-theme .bd-btn--gold:hover,
.bd-theme .bd-btn--gold:focus-visible,
.bd-theme .bd-btn--light,
.bd-theme .bd-btn--light:hover,
.bd-theme .bd-btn--light:focus-visible,
.bd-theme .bd-btn--outline-light:hover { color: var(--bd-black); }
/* Outline buttons only swap their background on hover; on keyboard focus they keep their
   resting look (plus the focus ring), so their text keeps its resting colour too. */
.bd-theme .bd-btn--outline,
.bd-theme .bd-btn--outline:focus-visible { color: var(--bd-text); }
.bd-theme .bd-btn--outline:hover,
.bd-theme .bd-btn--outline-light,
.bd-theme .bd-btn--outline-light:focus-visible { color: var(--bd-white); }
.bd-theme .bd-btn--ghost,
.bd-theme .bd-btn--ghost:hover,
.bd-theme .bd-btn--ghost:focus-visible { color: inherit; }

/* Links on dark surfaces hover in bright gold (the default hover gold is for white
   backgrounds). :where() keeps this as weak as the generic rule, so components win. */
.bd-theme :where(.bd-dark, .bd-section--dark, .bd-pagehead) a:where(:not(.bd-btn):not(.button)):hover { color: var(--bd-gold); }

/* Carousel arrows turn gold on hover: keep the icon black. */
.bd-theme .bd-rail__btn:hover,
.bd-theme .bd-rail__btn:focus-visible { color: var(--bd-black); }

/* ---------- Forms ---------- */
.bd-theme input[type="text"],
.bd-theme input[type="email"],
.bd-theme input[type="url"],
.bd-theme input[type="password"],
.bd-theme input[type="search"],
.bd-theme input[type="number"],
.bd-theme input[type="tel"],
.bd-theme input[type="date"],
.bd-theme select,
.bd-theme textarea,
.bd-theme .select2-container .select2-selection--single {
	width: 100%;
	min-height: 48px;
	padding: 11px 14px;
	border: 1.5px solid var(--bd-line-2);
	border-radius: var(--bd-r-btn);
	background-color: var(--bd-white);
	color: var(--bd-text);
	font-size: 15px;
	line-height: 1.4;
	box-shadow: none;
	transition: border-color var(--bd-dur) var(--bd-ease), box-shadow var(--bd-dur) var(--bd-ease);
	box-sizing: border-box;
}
.bd-theme textarea {
	min-height: 120px;
	resize: vertical;
}
.bd-theme input:hover,
.bd-theme select:hover,
.bd-theme textarea:hover {
	border-color: var(--bd-text-3);
}
.bd-theme input[type="text"]:focus,
.bd-theme input[type="email"]:focus,
.bd-theme input[type="url"]:focus,
.bd-theme input[type="password"]:focus,
.bd-theme input[type="search"]:focus,
.bd-theme input[type="number"]:focus,
.bd-theme input[type="tel"]:focus,
.bd-theme input[type="date"]:focus,
.bd-theme select:focus,
.bd-theme textarea:focus {
	border-color: var(--bd-black);
	box-shadow: var(--bd-ring);
	outline: none;
}
.bd-theme select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 16px;
	cursor: pointer;
}
.bd-theme input[type="checkbox"],
.bd-theme input[type="radio"] {
	accent-color: var(--bd-black);
	width: 18px;
	height: 18px;
}
.bd-theme label {
	font-size: 13.5px;
	font-weight: 600;
	color: var(--bd-text);
}
.bd-theme ::placeholder {
	color: var(--bd-text-3);
	opacity: 1;
}
.bd-theme .woocommerce form .form-row {
	padding: 0;
	margin: 0 0 16px;
}
.bd-theme .woocommerce form .form-row label {
	margin-bottom: 6px;
	line-height: 1.4;
}
.bd-theme .woocommerce form .form-row .required {
	color: var(--bd-danger);
	text-decoration: none;
}
.bd-theme .woocommerce form .form-row.woocommerce-invalid input.input-text {
	border-color: var(--bd-danger);
}

/* Quantity stepper (wrapped by .bd-qty in feature modules) */
.bd-theme .quantity .qty {
	width: 64px;
	min-height: 48px;
	text-align: center;
	font-weight: 700;
	-moz-appearance: textfield;
}
.bd-theme .quantity .qty::-webkit-outer-spin-button,
.bd-theme .quantity .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* ---------- Notices ---------- */
.bd-theme .woocommerce-message,
.bd-theme .woocommerce-info,
.bd-theme .woocommerce-error,
.bd-theme .woocommerce-noreviews,
.bd-theme p.no-comments {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
	margin: 0 0 24px;
	padding: 14px 18px 14px 50px;
	border: 1px solid var(--bd-line);
	border-left: 4px solid var(--bd-gold);
	border-radius: var(--bd-r);
	background: var(--bd-white);
	color: var(--bd-text);
	font-size: 14.5px;
	line-height: 1.5;
	list-style: none;
	box-shadow: var(--bd-shadow-xs);
}
.bd-theme .woocommerce-message::before,
.bd-theme .woocommerce-info::before,
.bd-theme .woocommerce-error::before {
	position: absolute;
	left: 16px;
	top: 14px;
	width: 20px;
	height: 20px;
	margin: 0;
	font-family: inherit;
	content: "";
	background: currentColor;
	-webkit-mask: var(--bd-notice-icon) center / contain no-repeat;
	mask: var(--bd-notice-icon) center / contain no-repeat;
}
.bd-theme .woocommerce-message {
	border-left-color: var(--bd-success);
	--bd-notice-icon: 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
}
.bd-theme .woocommerce-message::before { color: var(--bd-success); }
.bd-theme .woocommerce-info {
	border-left-color: var(--bd-gold);
	--bd-notice-icon: 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E");
}
.bd-theme .woocommerce-info::before { color: var(--bd-gold-700); }
.bd-theme .woocommerce-error {
	border-left-color: var(--bd-danger);
	background: var(--bd-danger-bg);
	--bd-notice-icon: 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4M12 16h.01'/%3E%3C/svg%3E");
}
.bd-theme .woocommerce-error::before { color: var(--bd-danger); }
.bd-theme .woocommerce-error li {
	margin: 0;
	width: 100%;
}
.bd-theme .woocommerce-message .button,
.bd-theme .woocommerce-info .button,
.bd-theme .woocommerce-error .button {
	order: 2;
	margin-left: auto;
	min-height: 36px;
	padding: 8px 14px;
	font-size: 12px;
	float: none;
}
.bd-theme .woocommerce-notices-wrapper:empty {
	display: none;
}

/* ---------- Badges, chips, counters ---------- */
.bd-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 9px;
	border-radius: var(--bd-r-xs);
	background: var(--bd-black);
	color: var(--bd-white);
	font-size: var(--bd-fs-2xs);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	white-space: nowrap;
}
.bd-badge--sale {
	background: var(--bd-gold);
	color: var(--bd-black);
}
.bd-badge--new {
	background: var(--bd-white);
	color: var(--bd-black);
	box-shadow: inset 0 0 0 1.5px var(--bd-black);
}
.bd-badge--out {
	background: #5f5f5f;
	color: var(--bd-white);
}
.bd-badge--hot {
	background: var(--bd-black);
	color: var(--bd-gold);
}

.bd-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 36px;
	padding: 6px 14px;
	border: 1.5px solid var(--bd-line-2);
	border-radius: var(--bd-r-pill);
	background: var(--bd-white);
	color: var(--bd-text);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: border-color var(--bd-dur) var(--bd-ease), background-color var(--bd-dur) var(--bd-ease), color var(--bd-dur) var(--bd-ease);
}
.bd-chip:hover {
	border-color: var(--bd-black);
	color: var(--bd-text);
}
.bd-chip.is-active,
.bd-chip[aria-pressed="true"],
.bd-chip[aria-selected="true"] {
	background: var(--bd-black);
	border-color: var(--bd-black);
	color: var(--bd-gold);
}
.bd-chip__count {
	font-weight: 500;
	opacity: 0.75;
}
.bd-dark .bd-chip,
.bd-section--dark .bd-chip {
	background: transparent;
	border-color: var(--bd-dark-line-2);
	color: var(--bd-on-dark);
}
.bd-dark .bd-chip:hover,
.bd-section--dark .bd-chip:hover {
	border-color: var(--bd-gold);
	color: var(--bd-gold);
}

.bd-count {
	position: absolute;
	top: 2px;
	right: 0;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: var(--bd-r-pill);
	background: var(--bd-gold);
	color: var(--bd-black);
	font-size: 10.5px;
	font-weight: 800;
	line-height: 18px;
	text-align: center;
	box-sizing: border-box;
	pointer-events: none;
}
.bd-count[hidden] {
	display: none;
}

/* ---------- Star ratings ---------- */
.bd-theme .star-rating {
	color: var(--bd-gold-600);
	font-size: 13px;
}
.bd-theme .star-rating::before {
	color: var(--bd-line-2);
}
.bd-theme p.stars a {
	color: var(--bd-gold-600);
}

/* ---------- Section heading ---------- */
.bd-section-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 32px;
	flex-wrap: wrap;
	margin-bottom: clamp(24px, 3vw, 40px);
}
.bd-section-head__main {
	max-width: 720px;
}
.bd-section-head--center {
	justify-content: center;
	text-align: center;
}
.bd-section-head--center .bd-section-head__main {
	margin: 0 auto;
}
.bd-section-head--center .bd-eyebrow {
	justify-content: center;
}
.bd-section-title,
.bd-theme .bd-section-title {
	margin: 0;
	font-family: var(--bd-font-display);
	font-size: var(--bd-fs-3xl);
	font-weight: 800;
	font-stretch: 108%;
	line-height: 1.05;
	letter-spacing: -0.01em;
	text-transform: uppercase;
}
.bd-section-text {
	margin: 12px 0 0;
	color: var(--bd-text-2);
	font-size: 16px;
	line-height: 1.6;
}
.bd-section--dark .bd-section-text,
.bd-dark .bd-section-text {
	color: var(--bd-on-dark-2);
}
.bd-section-head__aside {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

/* ---------- Dark page heading band ---------- */
.bd-pagehead {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(900px 300px at 85% -20%, rgba(253, 198, 2, 0.22), transparent 60%),
		linear-gradient(180deg, #0d0d0d 0%, #0a0a0a 100%);
	color: var(--bd-on-dark);
	padding: clamp(28px, 4vw, 48px) 0 clamp(28px, 4vw, 44px);
}
.bd-pagehead::after {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.025) 0 2px, transparent 2px 14px);
	pointer-events: none;
}
.bd-pagehead__inner {
	position: relative;
	z-index: 1;
}
.bd-pagehead__title,
.bd-theme .bd-pagehead__title {
	margin: 0;
	font-size: var(--bd-fs-4xl);
	font-weight: 800;
	font-stretch: 112%;
	line-height: 1;
	text-transform: uppercase;
	color: var(--bd-white);
}
.bd-pagehead__text {
	max-width: 720px;
	margin-top: 14px;
	color: var(--bd-on-dark-2);
	font-size: 15.5px;
}
.bd-pagehead__text p:last-child {
	margin-bottom: 0;
}

/* ---------- Breadcrumbs ---------- */
.bd-theme .woocommerce-breadcrumb,
.bd-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
	margin: 0 0 16px;
	padding: 0;
	font-size: 12.5px;
	font-weight: 500;
	color: var(--bd-text-3);
}
.bd-theme .woocommerce-breadcrumb a,
.bd-breadcrumb a {
	color: var(--bd-text-2);
	text-decoration: none;
}
.bd-theme .woocommerce-breadcrumb a:hover,
.bd-breadcrumb a:hover {
	color: var(--bd-gold-ink);
}
.bd-breadcrumb__sep {
	opacity: 0.5;
}
.bd-pagehead .woocommerce-breadcrumb,
.bd-pagehead .bd-breadcrumb {
	color: var(--bd-on-dark-3);
	margin-bottom: 18px;
}
.bd-pagehead .woocommerce-breadcrumb a,
.bd-pagehead .bd-breadcrumb a {
	color: var(--bd-on-dark-2);
}
.bd-pagehead .woocommerce-breadcrumb a:hover,
.bd-pagehead .bd-breadcrumb a:hover {
	color: var(--bd-gold);
}

/* ---------- Pagination ---------- */
.bd-theme .woocommerce-pagination,
.bd-theme .paging-navigation .nav-links {
	margin-top: 48px;
	text-align: center;
}
.bd-theme .woocommerce-pagination ul.page-numbers,
.bd-theme nav.woocommerce-pagination ul {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	border: 0;
	margin: 0;
}
.bd-theme .woocommerce-pagination ul.page-numbers li,
.bd-theme nav.woocommerce-pagination ul li {
	border: 0;
	float: none;
	display: block;
}
.bd-theme .woocommerce-pagination .page-numbers a,
.bd-theme .woocommerce-pagination .page-numbers span,
.bd-theme .paging-navigation .page-numbers {
	display: grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 1.5px solid var(--bd-line);
	border-radius: var(--bd-r-btn);
	background: var(--bd-white);
	color: var(--bd-text);
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
	box-sizing: border-box;
}
.bd-theme .woocommerce-pagination .page-numbers a:hover,
.bd-theme .paging-navigation a.page-numbers:hover {
	border-color: var(--bd-black);
	background: var(--bd-white);
	color: var(--bd-text);
}
.bd-theme .woocommerce-pagination .page-numbers span.current,
.bd-theme .paging-navigation .page-numbers.current {
	background: var(--bd-black);
	border-color: var(--bd-black);
	color: var(--bd-gold);
}

/* ---------- Product rails (carousels) ---------- */
.bd-rail {
	--rail-gap: 20px;
	--rail-per-view: 4;
	--rail-visible: var(--rail-per-view);
	position: relative;
}
.bd-rail__viewport {
	overflow: hidden;
	margin: -12px;
	padding: 12px;
}
.bd-theme ul.products.bd-rail__track,
.bd-rail__track {
	display: grid;
	grid-auto-flow: column;
	grid-template-columns: none;
	grid-auto-columns: calc((100% - (var(--rail-visible) - 1) * var(--rail-gap)) / var(--rail-visible));
	gap: var(--rail-gap);
	margin: -12px;
	padding: 12px;
	list-style: none;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: 12px; /* snap to the content edge, matching the padding above */
	scroll-behavior: smooth;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.bd-rail__track::-webkit-scrollbar {
	display: none;
}
.bd-theme ul.products.bd-rail__track::before,
.bd-theme ul.products.bd-rail__track::after {
	content: none;
	display: none;
}
.bd-theme ul.products.bd-rail__track > li.product,
.bd-rail__track > * {
	width: auto;
	margin: 0;
	float: none;
	scroll-snap-align: start;
	min-width: 0;
}
.bd-rail__btn {
	position: absolute;
	top: 38%;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	padding: 0;
	border: 1px solid var(--bd-line);
	border-radius: var(--bd-r-pill);
	background: var(--bd-white);
	color: var(--bd-black);
	box-shadow: var(--bd-shadow);
	cursor: pointer;
	opacity: 0;
	transform: translateY(-50%) scale(0.9);
	transition: opacity var(--bd-dur) var(--bd-ease), transform var(--bd-dur) var(--bd-ease), background-color var(--bd-dur) var(--bd-ease);
}
.bd-rail__btn--prev { left: -18px; }
.bd-rail__btn--next { right: -18px; }
.bd-rail:hover .bd-rail__btn:not([disabled]),
.bd-rail:focus-within .bd-rail__btn:not([disabled]) {
	opacity: 1;
	transform: translateY(-50%) scale(1);
}
.bd-rail__btn:hover {
	background: var(--bd-gold);
	border-color: var(--bd-gold);
}
.bd-rail__btn[disabled] {
	opacity: 0 !important;
	pointer-events: none;
}
@media (max-width: 1279px) {
	.bd-rail { --rail-visible: min(var(--rail-per-view), 3); }
}
@media (max-width: 1023px) {
	.bd-rail { --rail-visible: min(var(--rail-per-view), 2.6); --rail-gap: 16px; }
	.bd-rail__btn { display: none; }
}
@media (max-width: 767px) {
	.bd-rail { --rail-visible: min(var(--rail-per-view), 2.15); --rail-gap: 12px; }
	.bd-rail__viewport { margin-right: calc(-1 * var(--bd-gutter)); padding-right: var(--bd-gutter); }
}
@media (max-width: 380px) {
	.bd-rail { --rail-visible: min(var(--rail-per-view), 1.7); }
}

/* ---------- Drawers & overlay ---------- */
.bd-overlay {
	position: fixed;
	inset: 0;
	z-index: var(--bd-z-overlay);
	background: rgba(10, 10, 10, 0.55);
	backdrop-filter: blur(2px);
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--bd-dur-slow) var(--bd-ease-out), visibility var(--bd-dur-slow);
}
.bd-overlay.is-visible {
	opacity: 1;
	visibility: visible;
}
.bd-drawer {
	position: fixed;
	top: 0;
	bottom: 0;
	right: 0;
	z-index: var(--bd-z-drawer);
	display: flex;
	flex-direction: column;
	width: min(440px, 92vw);
	background: var(--bd-white);
	color: var(--bd-text);
	box-shadow: var(--bd-shadow-lg);
	transform: translateX(105%);
	visibility: hidden;
	transition: transform var(--bd-dur-slow) var(--bd-ease-out), visibility var(--bd-dur-slow);
}
.bd-drawer--left {
	right: auto;
	left: 0;
	transform: translateX(-105%);
}
.bd-drawer.is-open {
	transform: translateX(0);
	visibility: visible;
}
.bd-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 20px;
	border-bottom: 1px solid var(--bd-line);
	flex: none;
}
.bd-drawer__title {
	margin: 0;
	font-family: var(--bd-font-display);
	font-size: 20px;
	font-weight: 800;
	font-stretch: 108%;
	text-transform: uppercase;
	letter-spacing: 0;
}
.bd-drawer__body {
	flex: 1 1 auto;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 20px;
}
.bd-drawer__foot {
	flex: none;
	padding: 16px 20px calc(16px + env(safe-area-inset-bottom));
	border-top: 1px solid var(--bd-line);
	background: var(--bd-white);
}
.bd-drawer--dark {
	background: var(--bd-black);
	color: var(--bd-on-dark);
}
.bd-drawer--dark .bd-drawer__head,
.bd-drawer--dark .bd-drawer__foot {
	border-color: var(--bd-dark-line);
	background: var(--bd-black);
}

/* ---------- Toast ---------- */
.bd-toasts {
	position: fixed;
	left: 50%;
	bottom: calc(24px + env(safe-area-inset-bottom));
	z-index: var(--bd-z-toast);
	display: grid;
	gap: 8px;
	transform: translateX(-50%);
	width: max-content;
	max-width: calc(100vw - 32px);
	pointer-events: none;
}
.bd-toast {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 18px;
	border-radius: var(--bd-r);
	background: var(--bd-black);
	color: var(--bd-white);
	font-size: 14px;
	font-weight: 600;
	box-shadow: var(--bd-shadow-lg);
	pointer-events: auto;
	animation: bd-toast-in 0.35s var(--bd-ease-out);
}
.bd-toast .bd-icon {
	color: var(--bd-gold);
	flex: none;
}
.bd-toast a {
	color: var(--bd-gold);
	text-decoration: underline;
}
.bd-toast.is-leaving {
	animation: bd-toast-out 0.25s var(--bd-ease) forwards;
}
@media (max-width: 767px) {
	.bd-toasts { bottom: calc(84px + env(safe-area-inset-bottom)); }
}

/* ---------- Loading ---------- */
.bd-spinner {
	display: inline-block;
	width: 20px;
	height: 20px;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: bd-spin 0.7s linear infinite;
}
.bd-skeleton {
	background: linear-gradient(90deg, var(--bd-paper) 25%, var(--bd-paper-2) 37%, var(--bd-paper) 63%);
	background-size: 400% 100%;
	animation: bd-shimmer 1.4s ease infinite;
	border-radius: var(--bd-r-sm);
}
.bd-theme .blockUI.blockOverlay {
	background: rgba(255, 255, 255, 0.7) !important;
}

/* ---------- Payment badges ---------- */
.bd-paybadges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.bd-paybadge {
	display: inline-grid;
	place-items: center;
	min-width: 46px;
	height: 30px;
	padding: 0 8px;
	border-radius: var(--bd-r-sm);
	background: var(--bd-white);
	border: 1px solid var(--bd-line);
	color: var(--bd-text);
	font-size: 10.5px;
	font-weight: 800;
	letter-spacing: 0.02em;
	box-sizing: border-box;
}
.bd-dark .bd-paybadge,
.bd-section--dark .bd-paybadge {
	background: var(--bd-dark-2);
	border-color: var(--bd-dark-line);
	color: var(--bd-on-dark);
}

/* ---------- Reveal on scroll ---------- */
.bd-js [data-bd-reveal] {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 0.7s var(--bd-ease-out), transform 0.7s var(--bd-ease-out);
	transition-delay: var(--bd-reveal-delay, 0s);
}
.bd-js [data-bd-reveal].is-visible {
	opacity: 1;
	transform: none;
}

/* ---------- Utilities ---------- */
.bd-sr-only,
.bd-theme .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.bd-theme .skip-link.screen-reader-text:focus {
	clip: auto;
	width: auto;
	height: auto;
	margin: 0;
	padding: 12px 18px;
	background: var(--bd-gold);
	color: var(--bd-black);
	z-index: 100000;
	top: 8px;
	left: 8px;
	font-weight: 700;
}
@media (max-width: 767px) {
	.bd-hide-mobile { display: none !important; }
}
@media (min-width: 768px) {
	.bd-show-mobile { display: none !important; }
}
@media (max-width: 1023px) {
	.bd-hide-tablet { display: none !important; }
}
@media (min-width: 1024px) {
	.bd-show-tablet { display: none !important; }
}

/* ---------- Keyframes ---------- */
@keyframes bd-spin {
	to { transform: rotate(360deg); }
}
@keyframes bd-shimmer {
	0% { background-position: 100% 50%; }
	100% { background-position: 0 50%; }
}
@keyframes bd-toast-in {
	from { opacity: 0; transform: translateY(12px) scale(0.98); }
	to { opacity: 1; transform: none; }
}
@keyframes bd-toast-out {
	to { opacity: 0; transform: translateY(8px); }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.bd-js [data-bd-reveal] {
		opacity: 1;
		transform: none;
	}
}

/* ---------- Free-shipping meter ---------- */
.bd-freeship {
	padding: 12px 14px;
	border-radius: var(--bd-r);
	background: var(--bd-paper);
	border: 1px solid var(--bd-line);
}
.bd-freeship__text {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 8px;
	font-size: 13.5px;
	line-height: 1.4;
	color: var(--bd-text-2);
}
.bd-freeship__text strong {
	color: var(--bd-text);
}
.bd-freeship__text .bd-icon {
	flex: none;
	color: var(--bd-gold-ink);
}
.bd-freeship__bar {
	height: 6px;
	border-radius: var(--bd-r-pill);
	background: var(--bd-paper-2);
	overflow: hidden;
}
.bd-freeship__bar > span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--bd-gold-grad);
	transition: width 0.6s var(--bd-ease-out);
}
.bd-freeship.is-complete {
	background: var(--bd-success-bg);
	border-color: rgba(21, 128, 61, 0.2);
}
.bd-freeship.is-complete .bd-freeship__text .bd-icon {
	color: var(--bd-success);
}
.bd-freeship.is-complete .bd-freeship__bar > span {
	background: var(--bd-success);
}
