/**
 * Dofamin design system — v2 (2026-04-23)
 * Prototype-faithful layout + premium editorial uplift. No shadows, no gradients.
 * All component classes prefixed .dof-* to avoid collision with Woodmart/Elementor.
 */

/* ===================== TOKENS ===================== */
:root {
	/* Client design system — sheet «01 Дизайн-система» of the Visual Style Update TZ
	   (round 2, 2026-09-17). These are the canonical names; the --dof-* tokens below
	   are kept as aliases so the existing stylesheets need no rewrite. */
	--ml-navy:           #1D446D;
	--ml-navy-deep:      #12263B;
	--ml-cream:          #FAEEC6;
	--ml-cream-light:    #FDF6E3;
	--ml-yellow:         #FFE786;
	--ml-rose:           #D68188;
	--ml-rose-dark:      #B05F66;
	--ml-blue-light:     #DBE7FB;
	--ml-blue-accent:    #A5BCF8;
	--ml-text-secondary: #3D5B78;
	--ml-coral:          #D97757;
	/* Typography roles (sheet 01, §3): Onest = display/body/nav/buttons,
	   Bitter 600 = section H2 + KPI numbers, Cormorant Garamond 500 italic = accent. */
	--ml-font-sans:    'Onest', Arial, sans-serif;
	--ml-font-display: 'Bitter', Georgia, serif;
	--ml-font-accent:  'Cormorant Garamond', Georgia, serif;

	/* Palette — anchor (aliases onto the --ml-* set above). */
	--dof-bg:        var(--wd-main-bgcolor, var(--ml-cream));
	--dof-bg-2:      var(--ml-cream-light);
	--dof-bg-3:      #e8d9ab;
	--dof-ink:       var(--wd-title-color, var(--ml-navy-deep));
	--dof-ink-2:     color-mix(in oklch, var(--dof-ink) 72%, transparent);
	/* Ph14 DEV-04/08/11 root fix: 48% -> 60%. Canvas-measured (qa-phase14.js technique) against
	   both real backgrounds this token hits at its lowest-contrast use sites: rgb(248,248,245)
	   catalog filter-chip counts and rgb(242,242,239) cart item-count. 48% read 3.27:1 / 3.24:1
	   (both RED); 58% is the exact AA crossover (4.53 / 4.46 -- the second background still
	   fails at 58%); 60% clears both with margin (4.84 / 4.76) without jumping to a materially
	   darker value that risks muted text reading as primary body copy (spot-checked
	   home/catalog/product/cart @1280 post-deploy -- see 14-05-SUMMARY.md). */
	--dof-ink-3:     color-mix(in oklch, var(--dof-ink) 60%, transparent);
	--dof-ink-4:     color-mix(in oklch, var(--dof-ink) 28%, transparent);
	--dof-accent:    var(--wd-alternative-color, #ffe786);
	--dof-accent-lt: color-mix(in oklch, var(--dof-accent) 12%, var(--dof-bg));
	/* Hover of the yellow accent is a deeper yellow, NOT the WoodMart accented-button
	   hover var: that var resolved to near-black live and produced navy-on-navy hovers. */
	--dof-accent-dk: #f0d65a;
	--dof-adk:       var(--dof-accent-dk);
	--dof-accent-tint: color-mix(in oklch, var(--dof-accent) 8%, transparent);
	/* Secondary accent (pink): bullets, counters, focus rings, link hover. As TEXT on
	   the cream base use the darkened variant (5.1:1); the raw pink is 2.5:1 there. */
	--dof-accent-2:      var(--ml-rose);
	--dof-accent-2-text: #9d4a51;
	/* Dark surfaces (header, footer, inverted blocks) and text on them. */
	--dof-surface-dark: var(--ml-navy);
	--dof-on-dark:      var(--ml-cream);
	--dof-warn:      #e67e22;
	--dof-error:     #c0392b;

	/* Hairlines — live, oklch-based */
	--dof-line:      color-mix(in oklch, var(--dof-ink) 12%, transparent);
	--dof-line-2:    color-mix(in oklch, var(--dof-ink) 7%, transparent);
	--dof-line-strong: color-mix(in oklch, var(--dof-ink) 22%, transparent);

	/* Typography families */
	--dof-font-sans:  var(--ml-font-sans);
	--dof-font-serif: var(--ml-font-accent);
	--dof-font-mono:  ui-monospace, 'JetBrains Mono', 'SF Mono', Menlo, monospace;

	/* Fluid type scale — editorial */
	--dof-fs-eyebrow: clamp(10px, 0.65rem + 0.1vw, 11px);
	--dof-fs-xs:      11px;
	--dof-fs-sm:      12px;
	--dof-fs-body:    clamp(14px, 0.9rem + 0.2vw, 16px);
	/* Sizes per sheet 01 §3 (desktop / tablet / mobile): H1 78/60/44, H2 54/44/34,
	   H3 28–32/26/24, lead 21/19/18. */
	--dof-fs-lead:    clamp(18px, 1rem + 0.35vw, 21px);
	--dof-fs-h3:      clamp(24px, 1.3rem + 0.45vw, 30px);
	--dof-fs-h2:      clamp(34px, 1.6rem + 1.6vw, 54px);
	--dof-fs-h1:      clamp(44px, 2rem + 2.6vw, 78px);
	--dof-fs-display: clamp(44px, 2rem + 2.6vw, 78px);

	/* Line heights */
	--dof-lh-tight:   .94;
	--dof-lh-snug:    1.18;
	--dof-lh-body:    1.55;
	--dof-lh-lead:    1.5;

	/* Spacing — harmonic */
	--dof-sp-1:  4px;
	--dof-sp-2:  8px;
	--dof-sp-3:  12px;
	--dof-sp-4:  16px;
	--dof-sp-5:  24px;
	--dof-sp-6:  40px;
	--dof-sp-7:  64px;
	--dof-sp-8:  96px;
	--dof-sp-9:  140px;
	--dof-sp-10: 200px;

	/* Layout */
	--dof-max:       var(--wd-container-w, 1360px);
	--dof-max-text:  68ch;
	--dof-gutter:    clamp(20px, 4vw, 64px);
	--dof-radius:    var(--wd-brd-radius, 5px);

	/* Icon sizes -- DEV-17 T2 closeout ladder. Only --dof-icon-md has a live
	   consumer today (.ml-arrow, merchlab-studio.css -- the button CTA arrow
	   glyph, the one concrete icon-sized element inside a Ph14-marked block);
	   sm/lg are forward-declared rungs so the next toolbar/drawer/chip icon
	   that needs a size has a ladder to join instead of a new ad-hoc value,
	   matching the --dof-sp-1..10 precedent (declare the full scale, wire
	   what's live). */
	--dof-icon-sm: 14px;
	--dof-icon-md: 18px;
	--dof-icon-lg: 24px;

	/* Motion curves */
	--dof-ease:       cubic-bezier(.22, .61, .36, 1);
	--dof-ease-out:   cubic-bezier(.16, 1, .3, 1);
	--dof-ease-inout: cubic-bezier(.65, 0, .35, 1);
	--dof-ease-expo:  cubic-bezier(.87, 0, .13, 1);
	--dof-dur-fast:   150ms;
	--dof-dur:        300ms;
	--dof-dur-slow:   700ms;
	--dof-dur-xslow:  1100ms;
	--dof-dur-press:    140ms;
	--dof-dur-tooltip:  160ms;
	--dof-dur-hover:    220ms;
	--dof-dur-popover:  220ms;
	--dof-dur-section:  360ms;
	--dof-ease-drawer:  cubic-bezier(0.32, 0.72, 0, 1);

	/* Grain — subtle film texture for materiality */
	--dof-grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.55 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/></svg>");
}

/* ===================== RESET & BASE ===================== */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--wd-text-font);
	font-size: var(--dof-fs-body);
	line-height: var(--dof-lh-body);
	background: var(--dof-bg) !important;
	font-feature-settings: 'cv02','cv03','cv11','ss01';
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6 {
	font-family: var(--wd-title-font);
	color: var(--wd-title-color);
	line-height: var(--dof-lh-tight);
	font-weight: 500;
	letter-spacing: -0.025em;
	margin: 0;
	text-wrap: balance;
}
h1 em, h2 em, .dof-accent-text-serif {
	font-family: var(--dof-font-serif);
	font-style: italic;
	font-weight: 400;
	letter-spacing: -0.02em;
}
p { margin: 0; }
a { color: inherit; text-decoration: none; transition: color var(--dof-dur) var(--dof-ease); }
img { display: block; max-width: 100%; height: auto; }
button { font-family: inherit; cursor: pointer; }

/* ===================== CANVAS (prototype-faithful) ===================== */
.dof-canvas {
	margin: 0 auto;
	background: var(--dof-bg);
}

/* ===================== TYPOGRAPHY HELPERS ===================== */
.dof-eyebrow {
	font-size: var(--dof-fs-eyebrow);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--dof-ink-3);
	font-weight: 500;
	display: inline-block;
}
.dof-h1       { font-size: var(--dof-fs-h1); }
.dof-h2       { font-size: var(--dof-fs-h2); }
.dof-h3       { font-size: var(--dof-fs-h3); }
.dof-display  { font-size: var(--dof-fs-display); line-height: 1.05; letter-spacing: -0.02em; font-weight: 500; }
.dof-lead     { font-size: var(--dof-fs-lead); line-height: 1.7; color: var(--dof-ink-2); }
.dof-caption  { font-size: var(--dof-fs-sm); color: var(--dof-ink-3); letter-spacing: 0.01em; }

.dof-accent { color: var(--dof-accent); }

/* ===================== MODERN UTILITIES ===================== */
.dof-serif-italic { font-family: var(--dof-font-serif); font-style: italic; font-weight: 400; letter-spacing: -0.02em; }
.dof-tabular      { font-variant-numeric: tabular-nums; font-feature-settings: 'tnum' 1, 'lnum' 1; }
.dof-balance      { text-wrap: balance; }
.dof-pretty       { text-wrap: pretty; }
.dof-uppercase    { text-transform: uppercase; letter-spacing: .14em; }

/* Grain overlay — layered on body for material feel */
body::after {
	content: "";
	position: fixed;
	inset: 0;
	pointer-events: none;
	background-image: var(--dof-grain);
	mix-blend-mode: multiply;
	opacity: .045;
	z-index: 1000;
}

/* Kinetic text — character split reveal (used by JS) */
.dof-split .dof-char {
	display: inline-block;
	opacity: 0;
	transform: translateY(0.6em) rotate(2deg);
	transition: opacity var(--dof-dur-slow) var(--dof-ease-out), transform var(--dof-dur-slow) var(--dof-ease-out);
	will-change: opacity, transform;
}
.dof-split.is-in .dof-char {
	opacity: 1;
	transform: translateY(0) rotate(0);
}

/* Odometer digit — counts on reveal */
.dof-odo {
	display: inline-flex;
	font-variant-numeric: tabular-nums;
	overflow: hidden;
	line-height: 1;
	vertical-align: baseline;
}
.dof-odo__col {
	display: block;
	height: 1em;
	overflow: hidden;
}
.dof-odo__track {
	display: flex;
	flex-direction: column;
	transition: transform 1400ms var(--dof-ease-expo);
	will-change: transform;
}
.dof-odo__track > span { height: 1em; display: block; }

/* Marquee — infinite horizontal loop */
.dof-marquee {
	display: flex;
	overflow: hidden;
	gap: 0;
	mask-image: linear-gradient(90deg, transparent, var(--dof-ink) 8%, var(--dof-ink) 92%, transparent);
	-webkit-mask-image: linear-gradient(90deg, transparent, var(--dof-ink) 8%, var(--dof-ink) 92%, transparent);
}
.dof-marquee__track {
	display: flex;
	gap: var(--dof-sp-7);
	flex-shrink: 0;
	animation: dof-marquee 40s linear infinite;
	will-change: transform;
}
.dof-marquee:hover .dof-marquee__track { animation-play-state: paused; }
@keyframes dof-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-100%); }
}

/* Link with animated underline */
.dof-link {
	position: relative;
	display: inline-flex;
	align-items: baseline;
	gap: .35em;
}
.dof-link::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -2px;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform var(--dof-dur) var(--dof-ease-out);
}
.dof-link:hover::after { transform: scaleX(1); }

/* Button — hollow with bottom-fill on hover (editorial) */
.dof-btn-editorial {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: .5em;
	padding: 18px 28px;
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--dof-ink);
	background: transparent;
	border: 1px solid var(--dof-ink);
	overflow: hidden;
	isolation: isolate;
	text-decoration: none;
	transition: color var(--dof-dur) var(--dof-ease-out);
}
.dof-btn-editorial::before {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 0;
	background: var(--dof-ink);
	transition: height var(--dof-dur-slow) var(--dof-ease-expo);
	z-index: -1;
}
.dof-btn-editorial:hover { color: var(--dof-bg); }
.dof-btn-editorial:hover::before { height: 100%; }
.dof-btn-editorial--accent { border-color: var(--dof-accent); color: var(--dof-accent); }
.dof-btn-editorial--accent::before { background: var(--dof-accent); }
.dof-btn-editorial--accent:hover { color: var(--wd-title-color, #12263b); }

/* Reduced motion — disable heavy animation */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.dof-split .dof-char { opacity: 1 !important; transform: none !important; }
	body::after { display: none; }
}

/* ===================== BUTTONS ===================== */
/* Ph14 DEV-16 (14-09) -- this base radius previously read var(--dof-radius), which resolves to
   var(--wd-brd-radius, 5px) (a Woodmart theme-option fallback, NOT the button design-system
   token) -- one of three prior consolidation passes that never converged on a shared radius
   value (RESEARCH Pitfall 5). Aligned onto the canonical --ml-btn-radius (14-03) so this base
   agrees with every other button family sitewide; only radius moves here, per plan scope --
   padding/font-size/letter-spacing of this specific legacy family are untouched (out of DEV-16's
   tested 6-surface scope, no live usage found there). */
/* -- DEV-16 marker scope ends above (radius only, already on the token). The
   .dof-btn/-primary/-secondary/-ghost rule and every other rule below it predate this phase
   (2026-07-22, git blame-verified) and are unaudited legacy, per this closeout's "phase-
   added blocks only" scope guard -- not re-swept here. -- */
.dof-btn,
.dof-btn-primary,
.dof-btn-secondary,
.dof-btn-ghost {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--dof-sp-2);
	font-family: var(--dof-font-sans);
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	font-weight: 500;
	padding: 14px 24px;
	border-radius: var(--ml-btn-radius, 2px);
	border: 1px solid transparent;
	cursor: pointer;
	transition:
		background var(--dof-dur) var(--dof-ease),
		color var(--dof-dur) var(--dof-ease),
		border-color var(--dof-dur) var(--dof-ease),
		transform var(--dof-dur) var(--dof-ease);
	text-decoration: none;
	line-height: 1;
}

.quantity .minus,
.quantity .plus,
.quantity .qty {
	min-width: 44px !important;
	min-height: 44px !important;
}

.woocommerce .price,
.woocommerce div.product p.price,
.woocommerce-cart .woocommerce-Price-amount,
.woocommerce-checkout .woocommerce-Price-amount,
.woocommerce-account .woocommerce-Price-amount,
.merch-card-price {
	border-color: currentColor !important;
	color: var(--dof-ink) !important;
}

.woocommerce label[for^="shipping_method_"] {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
}

.wd-accordion-title.wd-active,
.wd-accordion-title.wd-active .wd-accordion-title-text,
.wd-accordion-title.wd-active .wd-accordion-title-text > span {
	border-color: var(--dof-accent) !important;
	color: var(--dof-ink) !important;
}

.dh-finp,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce-ordering select,
.widget_product_categories select,
.woocommerce-account .show-password-input,
.woocommerce-account .wd-switch-to-register {
	min-width: 44px !important;
	min-height: 44px !important;
}

.merch-case-gallery__link,
.merch-case-gallery__link img {
	color: var(--dof-ink) !important;
}
.dof-btn-primary   { background: var(--dof-ink);    color: var(--dof-bg); }
.dof-btn-primary:hover   { background: var(--dof-surface-dark); }
.dof-btn-secondary { background: var(--dof-accent); color: var(--dof-ink); }
.dof-btn-secondary:hover { background: var(--dof-accent-dk); color: var(--dof-on-dark); }
.dof-btn-ghost     { background: transparent; color: var(--dof-accent); border-color: var(--dof-accent); }
.dof-btn-ghost:hover     { background: var(--dof-accent-lt); }

.dof-btn .dof-arrow,
.dof-btn-primary .dof-arrow,
.dof-btn-secondary .dof-arrow,
.dof-btn-ghost .dof-arrow { transition: transform var(--dof-dur) var(--dof-ease); display: inline-block; }
.dof-btn:hover .dof-arrow,
.dof-btn-primary:hover .dof-arrow,
.dof-btn-secondary:hover .dof-arrow,
.dof-btn-ghost:hover .dof-arrow { transform: translateX(4px); }

@media (max-width: 480px) {
	.dof-btn-primary, .dof-btn-secondary, .dof-btn-ghost { width: 100%; }
}

/* ===================== HERO V3 — FULL PHOTO + BOTTOM BAR ===================== */
.dof-heroV3 {
	position: relative;
	/* Break out of any container to full viewport width */
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	display: grid;
	grid-template-rows: 1fr auto;
	min-height: clamp(560px, calc(100svh - 60px), 960px);
	background: var(--dof-bg);
	color: var(--dof-ink);
	overflow: hidden;
	isolation: isolate;
}

/* Photo area — takes all remaining vertical space */
.dof-heroV3__photo {
	position: relative;
	overflow: hidden;
	background: var(--dof-surface-dark);
	min-height: 420px;
}
.dof-heroV3__photo img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	object-position: center 40%;
	filter: brightness(1.02) contrast(1.04) saturate(.96);
	transform: scale(1.05);
	transform-origin: center 45%;
	transition: transform 1800ms var(--dof-ease-out);
	will-change: transform;
}
.dof-heroV3.is-loaded .dof-heroV3__photo img { transform: scale(1); }

/* Pulsing green pill badge top-left on photo */
.dof-heroV3__badge {
	position: absolute;
	top: clamp(20px, 3vw, 40px);
	left: clamp(20px, 3vw, 48px);
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 18px;
	background: var(--dof-accent);
	color: var(--dof-ink);
	font-size: 11px;
	letter-spacing: .20em;
	font-weight: 500;
	border-radius: 999px;
	box-shadow: 0 2px 14px rgba(0,0,0,.15);
}
.dof-heroV3__badge-dot {
	width: 7px; height: 7px; border-radius: 50%;
	background: var(--dof-bg-2);
	box-shadow: 0 0 0 3px rgba(255,255,255,.25);
	animation: dof-heroV3-pulse 2s var(--dof-ease) infinite;
}
@keyframes dof-heroV3-pulse {
	0%,100% { box-shadow: 0 0 0 3px rgba(255,255,255,.30); }
	50%     { box-shadow: 0 0 0 7px rgba(255,255,255,.0); }
}

/* Tiny caption bottom-right on photo */
.dof-heroV3__photo-caption {
	position: absolute;
	right: clamp(20px, 3vw, 48px);
	bottom: clamp(16px, 2vw, 24px);
	z-index: 3;
	font-size: 10px;
	letter-spacing: .18em;
	color: rgba(255,255,255,.75);
	font-weight: 500;
	text-shadow: 0 1px 3px rgba(0,0,0,.5);
}

/* Bottom bar — light editorial */
.dof-heroV3__bar {
	background: var(--dof-bg);
	color: var(--dof-ink);
	padding: clamp(22px, 2.4vw, 32px) clamp(24px, 4vw, 64px) clamp(26px, 2.8vw, 36px);
	display: flex;
	flex-direction: column;
	gap: clamp(12px, 1.8vw, 20px);
	border-top: 1px solid var(--dof-line);
}

/* Stats strip */
.dof-heroV3__stats {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: clamp(14px, 1.8vw, 28px);
	justify-content: flex-end;
	color: var(--dof-ink);
	padding-bottom: 4px;
}
.dof-heroV3__stat {
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
}
.dof-heroV3__stat-v {
	font-size: clamp(20px, 1.1rem + 0.6vw, 28px);
	font-weight: 500;
	letter-spacing: -0.02em;
	color: var(--dof-ink);
	line-height: 1;
}
.dof-heroV3__stat-l {
	font-size: 11px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--dof-ink-3);
	font-weight: 500;
}
.dof-heroV3__stats-sep {
	color: var(--dof-ink-4);
	font-weight: 300;
}

/* Main bar row — copy | subtitle | CTAs */
.dof-heroV3__main {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: end;
	gap: clamp(20px, 3vw, 48px);
}

/* Copy block (left) */
.dof-heroV3__copy { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.dof-heroV3__eyebrow {
	font-size: 10px;
	letter-spacing: .24em;
	color: var(--wd-link-color-hover);
	margin: 0;
	font-weight: 500;
}
.dof-heroV3__h1 {
	font-size: clamp(30px, 3.6vw, 68px);
	line-height: 1.04;
	font-weight: 300;
	letter-spacing: -0.03em;
	color: var(--dof-ink);
	margin: 0;
	text-wrap: balance;
}
.dof-heroV3__h1-line {
	display: block;
	overflow: hidden;
	padding: 0.08em 0.22em 0.12em 0;
	margin: -0.08em 0 -0.12em -0.02em;
}
.dof-heroV3__h1-inner {
	display: block;
	transform: translateY(105%);
	transition: transform 1000ms var(--dof-ease-expo);
	will-change: transform;
}
.dof-heroV3.is-in .dof-heroV3__h1-inner { transform: translateY(0); }
.dof-heroV3__h1-line:nth-child(2) .dof-heroV3__h1-inner { transition-delay: 140ms; }
.dof-heroV3__h1-accent {
	font-family: var(--dof-font-serif);
	font-style: italic;
	font-weight: 400;
	font-optical-sizing: auto;
	font-size: 1em;
	letter-spacing: -0.045em;
	color: var(--wd-link-color-hover);
	padding-right: .18em;
	margin-right: .08em;
}

/* Subtitle (center) */
.dof-heroV3__sub {
	font-size: clamp(13px, 0.9rem + 0.1vw, 15px);
	line-height: 1.55;
	color: var(--dof-ink-2);
	max-width: 52ch;
	margin: 0;
	text-align: right;
}

/* CTAs (right) */
.dof-heroV3__ctas {
	display: flex;
	gap: 10px;
	flex-wrap: nowrap;
	align-items: stretch;
}
.dof-heroV3__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 16px 26px;
	font-size: 11px;
	letter-spacing: .18em;
	font-weight: 500;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1;
	transition: background 280ms var(--dof-ease-out), color 280ms var(--dof-ease-out), border-color 280ms var(--dof-ease-out);
	white-space: nowrap;
	border: 1px solid transparent;
}
.dof-heroV3__btn--primary {
	background: var(--dof-accent);
	color: var(--dof-ink);
	border-color: var(--dof-accent);
}
.dof-heroV3__btn--primary:hover {
	background: color-mix(in oklch, var(--dof-accent) 82%, var(--dof-surface-dark));
}
.dof-heroV3__btn--primary svg { transition: transform 260ms var(--dof-ease-out); }
.dof-heroV3__btn--primary:hover svg { transform: translateX(4px); }

.dof-heroV3__btn--ghost {
	background: transparent;
	color: var(--dof-ink);
	border-color: var(--dof-line-strong);
}
.dof-heroV3__btn--ghost:hover {
	background: color-mix(in srgb, var(--dof-ink) 5%, transparent);
	border-color: var(--dof-ink);
}

/* Reveal states — subtitle + ctas fade in after H1 */
.dof-heroV3__sub,
.dof-heroV3__ctas {
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 600ms var(--dof-ease-out) 420ms, transform 600ms var(--dof-ease-out) 420ms;
}
.dof-heroV3.is-in .dof-heroV3__sub,
.dof-heroV3.is-in .dof-heroV3__ctas { opacity: 1; transform: translateY(0); }

.dof-heroV3__stats {
	opacity: 0;
	transition: opacity 600ms var(--dof-ease-out) 600ms;
}
.dof-heroV3.is-in .dof-heroV3__stats { opacity: 1; }


.dof-heroV3__rightcol {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 12px;
	text-align: right;
	align-self: flex-end;
}

/* ----- Tablet ----- */
@media (max-width: 1100px) {
	.dof-heroV3__main {
		grid-template-columns: 1fr;
		gap: 18px;
	}
	.dof-heroV3__rightcol {
		align-items: flex-start;
		text-align: left;
	}
	.dof-heroV3__sub { max-width: 60ch; text-align: left; }
	.dof-heroV3__ctas { justify-content: flex-start; }
	.dof-heroV3__stats { justify-content: flex-start; }
	.dof-heroV3__h1 { font-size: clamp(36px, 5vw, 54px); }
}

/* ----- Mobile ----- */
@media (max-width: 720px) {
	.dof-heroV3 {
		min-height: auto;
		grid-template-rows: auto auto;
	}
	.dof-heroV3__photo {
		aspect-ratio: 5 / 4;
		max-height: 44svh;
		min-height: 240px;
	}
	.dof-heroV3__bar {
		padding: 22px 22px 26px;
		gap: 0;
		display: flex;
		flex-direction: column;
	}
	/* Break rightcol + main, use order to re-sequence children */
	.dof-heroV3__rightcol,
	.dof-heroV3__main { display: contents; }

	.dof-heroV3__copy { order: 1; margin-bottom: 12px; }
	.dof-heroV3__sub  { order: 2; margin-bottom: 16px; }
	.dof-heroV3__ctas { order: 3; margin-bottom: 20px; }
	.dof-heroV3__stats { order: 4; }

	.dof-heroV3__eyebrow {
		font-size: 10px;
		letter-spacing: .22em;
		margin-bottom: 12px;
	}
	.dof-heroV3__h1 {
		font-size: clamp(30px, 8.5vw, 44px);
		letter-spacing: -0.035em;
		line-height: 1.02;
	}
	.dof-heroV3__h1-accent { font-size: 1em; letter-spacing: -0.04em; }

	.dof-heroV3__sub {
		font-size: 14px;
		line-height: 1.55;
		color: var(--dof-ink-2);
		max-width: none;
		text-align: left;
	}

	.dof-heroV3__ctas {
		display: flex;
		flex-direction: column;
		gap: 10px;
		width: 100%;
	}
	.dof-heroV3__btn {
		width: 100%;
		padding: 16px 20px;
		font-size: 11px;
		letter-spacing: .16em;
	}

	/* Stats — 2×2 grid, editorial */
	.dof-heroV3__stats {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 16px 24px;
		padding-top: 22px;
		border-top: 1px solid var(--dof-line);
		justify-content: start;
	}
	.dof-heroV3__stats-sep { display: none; }
	.dof-heroV3__stat {
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
		text-align: left;
	}
	.dof-heroV3__stat-v {
		font-size: 24px;
		line-height: 1;
		font-weight: 500;
	}
	.dof-heroV3__stat-l {
		font-size: 10px;
		letter-spacing: .14em;
		color: var(--dof-ink-3);
	}

	.dof-heroV3__badge {
		top: 14px;
		left: 14px;
		padding: 8px 14px;
		font-size: 10px;
		letter-spacing: .16em;
		gap: 8px;
	}
	.dof-heroV3__photo-caption { display: none; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	.dof-heroV3__photo img,
	.dof-heroV3__h1-inner,
	.dof-heroV3__sub,
	.dof-heroV3__ctas,
	.dof-heroV3__stats {
		transform: none !important;
		opacity: 1 !important;
		transition: none !important;
	}
	.dof-heroV3__badge-dot { animation: none; }
}

/* ===================== FULL-BLEED SITE ===================== */
/* Site padding — matches the gutter inside content sections */
:root { --dof-site-pad: clamp(24px, 4vw, 64px); }

/* Remove 1600px cap, but KEEP horizontal padding so header/footer align with content */
.whb-header .container,
.whb-main-header .container,
.whb-general-header-inner,
.site-footer .container,
.copyrights-wrapper .container,
.footer-container > .container {
	max-width: 100% !important;
	width: 100% !important;
	padding-left: var(--dof-site-pad) !important;
	padding-right: var(--dof-site-pad) !important;
}

/* main#main-content — ZERO horizontal padding so hero can break to 100vw.
   Individual content sections below define their own horizontal padding. */
main#main-content,
main#main-content.container,
main#main-content.content-layout-wrapper,
.wd-content-layout,
.wd-content-layout.content-layout-wrapper,
body .site-content > .container,
.main-page-wrapper > .container,
.page-wrapper > .container {
	max-width: 100% !important;
	width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* Kill vertical gap between header and hero */
main#main-content,
main#main-content.content-layout-wrapper,
.wd-content-layout,
.wd-page-content,
.site-content,
.main-page-wrapper,
.page-wrapper,
article.page,
article.page .entry-content,
.wd-entry-content {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.dof-canvas { padding-top: 0; margin-top: 0; padding-bottom: 0; }
.dof-canvas > *:first-child { margin-top: 0 !important; }

/* Hide the home page's auto title block */
.home .wd-page-title,
.home .page-title,
.home .woocommerce-breadcrumb,
.home article.page > header,
.home .entry-header { display: none !important; }

/* Kill any thin line / shadow at the seam header ↔ hero */
.whb-header,
.whb-main-header,
.whb-sticky-header,
.whb-sticky-clone,
.whb-row,
.whb-column { border-bottom: 0 !important; box-shadow: none !important; }
.whb-header::after,
.whb-main-header::after { display: none !important; }
.dof-heroV3 { border-top: 0 !important; margin-top: 0 !important; }
/* Belt-and-braces: no border on the first section below the header */
main#main-content > :first-child,
.wd-content-layout > :first-child,
.dof-canvas > :first-child { border-top: 0 !important; }

/* ===================== HEADER ALIGNMENT ===================== */
/* Kill Woodmart's internal negative margins / inner paddings that push logo & tools
   out of line with section content. Enforce identical side padding on every header row. */
.whb-col-left,
.whb-col-right,
.whb-col-center,
.whb-mobile-left,
.whb-mobile-right,
.whb-mobile-center { margin-left: 0 !important; margin-right: 0 !important; }

.whb-col-left > .wd-header-nav,
.whb-col-left > .site-logo,
.whb-col-right > .wd-tools-element:first-child,
.whb-col-right > *:first-child { margin-left: 0 !important; }
.whb-col-right > .wd-tools-element:last-child,
.whb-col-right > *:last-child,
.whb-col-left > *:last-child { margin-right: 0 !important; }

/* Top bar (the "Головна · Оплата..." secondary row) — same pad as main header */
.whb-top-bar,
.whb-top-bar > .container,
.whb-top-bar .container,
.whb-header .whb-top-bar .container {
	padding-left: var(--dof-site-pad) !important;
	padding-right: var(--dof-site-pad) !important;
	max-width: 100% !important;
}

/* Make sure all main header rows use the exact same gutter as hero bar */
.whb-main-header > .whb-row,
.whb-main-header .whb-row,
.whb-row > .container,
.whb-flex-row {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.whb-main-header .container,
.whb-top-bar .container {
	padding-left: var(--dof-site-pad) !important;
	padding-right: var(--dof-site-pad) !important;
}

/* Hero bar inner padding must match header pad exactly */
.dof-heroV3__bar {
	padding-left: var(--dof-site-pad) !important;
	padding-right: var(--dof-site-pad) !important;
}


/* ===================== TRUST MARQUEE (replaces 4-item row) ===================== */
.dof-trustMq {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	overflow: hidden;
	background: var(--dof-bg-2);
	padding: 22px 0;
	border-top: 1px solid var(--dof-line);
	border-bottom: 1px solid var(--dof-line);
	position: relative;
}
.dof-trustMq__track {
	display: inline-flex;
	align-items: center;
	gap: 56px;
	white-space: nowrap;
	animation: dof-trustMq-scroll 90s linear infinite;
	will-change: transform;
	flex-shrink: 0;
	min-width: max-content;
}
.dof-trustMq:hover .dof-trustMq__track { animation-play-state: paused; }
@keyframes dof-trustMq-scroll {
	from { transform: translate3d(0, 0, 0); }
	to   { transform: translate3d(-16.6666%, 0, 0); }
}
.dof-trustMq__item {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-size: 14px;
	letter-spacing: .01em;
	color: var(--dof-ink);
	font-weight: 500;
	flex-shrink: 0;
}
.dof-trustMq__dot {
	width: 7px; height: 7px;
	border-radius: 50%;
	background: var(--dof-accent);
	flex-shrink: 0;
}
.dof-trustMq__sep {
	color: var(--dof-ink-3);
	opacity: .45;
	font-size: 16px;
	padding: 0 8px;
	flex-shrink: 0;
}

@media (prefers-reduced-motion: reduce) {
	.dof-trustMq__track { animation: none; padding-left: 0; }
}

/* ===================== TRUST BAR ===================== */
.dof-trust {
	background: var(--dof-bg-2);
	border-bottom: 1px solid var(--dof-line);
	padding: var(--dof-sp-5) var(--dof-sp-7);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--dof-sp-6);
	max-width: var(--dof-max);
	margin-left: auto;
	margin-right: auto;
}
.dof-trust__item {
	display: flex;
	align-items: center;
	gap: var(--dof-sp-2);
	font-size: 13px;
	color: var(--dof-ink-2);
	letter-spacing: 0.01em;
}
.dof-trust__dot {
	width: 5px; height: 5px; border-radius: 50%; background: var(--dof-accent); flex: none;
}
.dof-trust__div { width: 1px; height: 20px; background: var(--dof-line); }

@media (max-width: 767px) {
	.dof-trust { flex-direction: column; align-items: flex-start; padding: var(--dof-sp-5) var(--dof-sp-4); gap: var(--dof-sp-3); }
	.dof-trust__div { display: none; }
}

/* ===================== SEGMENTS (3 cards) ===================== */
.dof-segments {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	border-bottom: 1px solid var(--dof-line);
	max-width: var(--dof-max);
	margin-left: auto;
	margin-right: auto;
}
.dof-segment {
	padding: var(--dof-sp-7);
	border-right: 1px solid var(--dof-line);
	text-decoration: none;
	color: inherit;
	transition: background var(--dof-dur) var(--dof-ease), transform var(--dof-dur) var(--dof-ease);
	display: block;
	position: relative;
}
.dof-segment:last-child { border-right: none; }
.dof-segment:hover:not(.dof-segment--accent) { background: var(--dof-bg-2); }
.dof-segment:hover { transform: translateY(-1px); }
.dof-segment__n {
	font-size: 11px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--dof-ink-3);
	margin-bottom: var(--dof-sp-4);
}
.dof-segment__t {
	font-size: 22px;
	font-weight: 500;
	color: var(--dof-ink);
	line-height: 1.25;
	margin-bottom: var(--dof-sp-3);
	letter-spacing: -0.015em;
}
.dof-segment__d {
	font-size: 14px;
	color: var(--dof-ink-2);
	line-height: 1.7;
	margin-bottom: var(--dof-sp-6);
}
.dof-segment__cta {
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--dof-ink);
	display: inline-flex;
	align-items: center;
	gap: var(--dof-sp-2);
	font-weight: 500;
}
.dof-segment__cta::after {
	content: '→';
	transition: transform var(--dof-dur) var(--dof-ease);
}
.dof-segment:hover .dof-segment__cta::after { transform: translateX(6px); }

.dof-segment--accent { background: var(--dof-accent-lt); border-top: 2px solid var(--dof-accent); }
.dof-segment--accent .dof-segment__t   { color: var(--dof-accent-dk); }
.dof-segment--accent .dof-segment__cta { color: var(--dof-accent); }

@media (max-width: 1023px) {
	.dof-segments { grid-template-columns: 1fr; }
	.dof-segment  { border-right: none; border-bottom: 1px solid var(--dof-line); padding: var(--dof-sp-6) var(--dof-sp-5); }
	.dof-segment:last-child { border-bottom: none; }
}

/* ===================== SECTION HEADER utility ===================== */
.dof-secH {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	padding: 0 var(--dof-sp-7);
	max-width: var(--dof-max);
	margin: 0 auto var(--dof-sp-5);
}
.dof-secH__title {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--dof-ink);
}
.dof-secH__link {
	font-size: 13px;
	color: var(--dof-accent);
	text-decoration: none;
	display: inline-flex; align-items: center; gap: var(--dof-sp-2);
}
.dof-secH__link::after { content: '→'; transition: transform var(--dof-dur) var(--dof-ease); }
.dof-secH__link:hover::after { transform: translateX(4px); }
@media (max-width: 767px) {
	.dof-secH { padding: 0 var(--dof-sp-4); }
}

/* ===================== CATALOG STRIP ===================== */
.dof-catalog {
	padding: var(--dof-sp-8) 0;
}
.dof-catalog__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	background: var(--dof-line);
	border-top: 1px solid var(--dof-line);
	border-bottom: 1px solid var(--dof-line);
}
.dof-catalog__footer {
	padding: var(--dof-sp-6) var(--dof-sp-7) 0;
	text-align: center;
}

@media (max-width: 1023px) { .dof-catalog__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .dof-catalog__grid { grid-template-columns: 1fr; } }

/* ===================== BRANDING BLOCK ===================== */
.dof-branding {
	background: var(--dof-bg-2);
	padding: var(--dof-sp-9) var(--dof-sp-7);
	border-top: 1px solid var(--dof-line);
}
.dof-branding__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--dof-sp-8);
	max-width: var(--dof-max);
	margin: 0 auto;
	align-items: start;
}
.dof-branding__copy .dof-lead { margin: var(--dof-sp-4) 0 var(--dof-sp-6); max-width: 42ch; }
.dof-branding__h2 { font-size: var(--dof-fs-h2); font-weight: 500; line-height: 1.15; letter-spacing: -0.02em; }
.dof-branding__tech {
	list-style: none;
	padding: 0;
	margin: 0 0 var(--dof-sp-6) 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--dof-sp-3);
}
.dof-branding__tile {
	padding: var(--dof-sp-4);
	background: var(--dof-bg);
	border: 1px solid var(--dof-line);
	border-radius: var(--dof-radius);
	transition: border-color var(--dof-dur) var(--dof-ease), transform var(--dof-dur) var(--dof-ease);
}
.dof-branding__tile:hover { border-color: var(--dof-accent); transform: translateY(-2px); }
.dof-branding__tile-n { font-size: 13px; font-weight: 600; color: var(--dof-ink); margin-bottom: 4px; }
.dof-branding__tile-d { font-size: 12px; color: var(--dof-ink-3); }
.dof-branding__ctas { display: flex; gap: var(--dof-sp-3); flex-wrap: wrap; }

.dof-branding__aside { display: flex; flex-direction: column; gap: var(--dof-sp-4); }
.dof-branding__steps {
	padding: var(--dof-sp-5);
	background: var(--dof-bg);
	border: 1px solid var(--dof-line);
	border-radius: var(--dof-radius);
}
.dof-branding__steps-h { font-size: 13px; font-weight: 600; color: var(--dof-ink); margin-bottom: var(--dof-sp-4); letter-spacing: 0.01em; }
.dof-branding__step { display: flex; gap: var(--dof-sp-3); margin-bottom: var(--dof-sp-3); }
.dof-branding__step:last-child { margin-bottom: 0; }
.dof-branding__step-n { font-size: 11px; color: var(--dof-accent); font-weight: 600; min-width: 20px; }
.dof-branding__step-t { font-size: 13px; color: var(--dof-ink-2); line-height: 1.5; }

.dof-branding__timing {
	padding: var(--dof-sp-4) var(--dof-sp-5);
	background: var(--dof-bg);
	border: 1px solid var(--dof-line);
	border-radius: var(--dof-radius);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--dof-sp-3);
}
.dof-branding__timing-l { font-size: 13px; font-weight: 600; color: var(--dof-ink); }
.dof-branding__timing-d { font-size: 12px; color: var(--dof-ink-3); }
.dof-branding__timing-v { font-size: 22px; font-weight: 500; color: var(--dof-accent); white-space: nowrap; letter-spacing: -0.01em; }

@media (max-width: 1023px) { .dof-branding__grid { grid-template-columns: 1fr; gap: var(--dof-sp-6); } }
@media (max-width: 767px)  { .dof-branding { padding: var(--dof-sp-7) var(--dof-sp-4); } }
@media (max-width: 420px)  {
	.dof-branding__tech { grid-template-columns: 1fr; }
	.dof-branding__ctas { flex-direction: column; }
}

/* ===================== WHY (6 advantages, 3x2 grid) ===================== */
.dof-why {
	padding: var(--dof-sp-9) var(--dof-sp-7);
	border-top: 1px solid var(--dof-line);
}
.dof-why__grid {
	max-width: var(--dof-max);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: var(--dof-line);
	border: 1px solid var(--dof-line);
}
.dof-why__item {
	background: var(--dof-bg);
	padding: var(--dof-sp-6);
	transition: background var(--dof-dur) var(--dof-ease);
}
.dof-why__item:hover { background: var(--dof-bg-2); }
.dof-why__icon {
	width: 40px; height: 40px;
	border: 1px solid var(--dof-line); border-radius: var(--dof-radius);
	display: flex; align-items: center; justify-content: center;
	margin-bottom: var(--dof-sp-4);
	color: var(--dof-accent);
}
.dof-why__icon svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.3; }
.dof-why__t { font-size: 14px; font-weight: 600; color: var(--dof-ink); margin-bottom: var(--dof-sp-2); }
.dof-why__d { font-size: 13px; color: var(--dof-ink-2); line-height: 1.7; }

@media (max-width: 767px) {
	.dof-why { padding: var(--dof-sp-7) var(--dof-sp-4); }
	.dof-why__grid { grid-template-columns: 1fr; }
}

/* ===================== MERCHLAB BRIDGE ===================== */
.dof-merchlab {
	margin: 0 auto;
	max-width: var(--dof-max);
	padding: 0 var(--dof-sp-7) var(--dof-sp-8);
}
.dof-merchlab__inner {
	background: var(--dof-accent);
	color: var(--dof-ink);
	border-radius: var(--dof-radius);
	padding: var(--dof-sp-7);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--dof-sp-6);
	position: relative;
	overflow: hidden;
}
.dof-merchlab__eye { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.7); margin-bottom: var(--dof-sp-2); }
.dof-merchlab__h   { font-size: var(--dof-fs-h3); font-weight: 500; color: var(--dof-on-dark); margin-bottom: var(--dof-sp-2); letter-spacing: -0.015em; }
.dof-merchlab__sub { font-size: 14px; color: rgba(255,255,255,.85); line-height: 1.7; }
.dof-merchlab__btn {
	background: var(--dof-bg-2);
	color: var(--dof-accent-dk);
	padding: 14px 28px;
	border-radius: var(--dof-radius);
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	display: inline-flex; align-items: center; gap: var(--dof-sp-2);
	transition: background var(--dof-dur) var(--dof-ease), color var(--dof-dur) var(--dof-ease);
}
.dof-merchlab__btn:hover { background: var(--dof-bg-2); }
.dof-merchlab__btn::after { content: '→'; transition: transform var(--dof-dur) var(--dof-ease); }
.dof-merchlab__btn:hover::after { transform: translateX(4px); }

@media (max-width: 767px) {
	.dof-merchlab { padding: 0 var(--dof-sp-4) var(--dof-sp-7); }
	.dof-merchlab__inner { flex-direction: column; align-items: flex-start; padding: var(--dof-sp-6); gap: var(--dof-sp-4); }
	.dof-merchlab__btn { width: 100%; justify-content: center; }
}

/* ===================== CLIENT LOGOS ===================== */
.dof-clients {
	max-width: var(--dof-max);
	margin: 0 auto;
	padding: var(--dof-sp-7) var(--dof-sp-7);
	border-top: 1px solid var(--dof-line);
}
.dof-clients__row {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	border: 1px solid var(--dof-line);
	border-radius: var(--dof-radius);
	overflow: hidden;
	margin-top: var(--dof-sp-5);
}
.dof-clients__logo {
	min-height: 68px;
	display: flex; align-items: center; justify-content: center;
	border-right: 1px solid var(--dof-line);
	font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--dof-ink-3);
	background: var(--dof-bg);
	transition: background var(--dof-dur) var(--dof-ease), color var(--dof-dur) var(--dof-ease);
}
.dof-clients__logo:last-child { border-right: none; }
.dof-clients__logo:hover { background: var(--dof-bg-2); color: var(--dof-ink); }

@media (max-width: 767px) {
	.dof-clients { padding: var(--dof-sp-7) var(--dof-sp-4); }
	.dof-clients__row { grid-template-columns: repeat(3, 1fr); }
	.dof-clients__logo:nth-child(3n) { border-right: none; }
	.dof-clients__logo:nth-child(-n+3) { border-bottom: 1px solid var(--dof-line); }
}

/* ===================== FORM SECTION ===================== */
.dof-formSec {
	background: var(--dof-bg-2);
	padding: var(--dof-sp-9) var(--dof-sp-7);
	border-top: 1px solid var(--dof-line);
}
.dof-formSec__grid {
	max-width: var(--dof-max);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--dof-sp-8);
	align-items: start;
}
.dof-formSec__h2 { margin-bottom: var(--dof-sp-3); font-size: var(--dof-fs-h2); font-weight: 500; letter-spacing: -0.02em; }
.dof-formSec__sub { margin-bottom: var(--dof-sp-6); }
.dof-formSec__bens { display: flex; flex-direction: column; gap: var(--dof-sp-3); margin-top: var(--dof-sp-5); }
.dof-formSec__ben  { display: flex; align-items: center; gap: var(--dof-sp-3); font-size: 14px; color: var(--dof-ink-2); }
.dof-formSec__ben::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--dof-accent); flex: none; }

.dof-form {
	background: var(--dof-bg);
	padding: var(--dof-sp-6);
	border: 1px solid var(--dof-line);
	border-radius: var(--dof-radius);
	display: flex; flex-direction: column; gap: var(--dof-sp-4);
}
.dof-form__row { display: flex; flex-direction: column; gap: 6px; }
.dof-form__label {
	font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--dof-ink-2); font-weight: 500;
}
.dof-form__input,
.dof-form__select,
.dof-form__textarea {
	background: var(--dof-bg);
	border: 1px solid var(--dof-line);
	border-radius: var(--dof-radius);
	padding: 12px 14px;
	font-size: 14px;
	color: var(--dof-ink);
	font-family: var(--dof-font-sans);
	transition: border-color var(--dof-dur) var(--dof-ease);
	width: 100%;
}
.dof-form__input:focus,
.dof-form__select:focus,
.dof-form__textarea:focus { border-color: var(--dof-accent); outline: none; }
.dof-form__textarea { resize: vertical; min-height: 90px; }
.dof-form__submit { margin-top: var(--dof-sp-2); }
.dof-form__note { font-size: 12px; color: var(--dof-ink-3); }
.dof-form__success, .dof-form__error {
	padding: var(--dof-sp-4);
	border-radius: var(--dof-radius);
	font-size: 13px;
	display: none;
}
.dof-form__success { background: var(--dof-accent-lt); color: var(--dof-accent-dk); border: 1px solid var(--dof-accent); }
.dof-form__error   { background: #fdecea; color: #8a1c1c; border: 1px solid #c0392b; }

@media (max-width: 1023px) { .dof-formSec__grid { grid-template-columns: 1fr; gap: var(--dof-sp-6); } }
@media (max-width: 767px)  { .dof-formSec { padding: var(--dof-sp-7) var(--dof-sp-4); } }


/* ===================== WOODMART HEADER — structural only ===================== */
/* Colors/fonts for header elements are managed in Woodmart Header Builder (post 802259)
   and Theme Settings > Typography. Here: only hairlines, sticky blur, min-height. */
.whb-header,
.whb-main-header {
	border-bottom: 1px solid var(--dof-line);
	box-shadow: none !important;
}
.whb-header .whb-row,
.whb-main-header > .whb-row { padding: 0; }

.whb-sticked,
.whb-sticked .whb-main-header {
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.site-mobile-menu .menu-item > a,
.site-mobile-menu a {
	min-height: 48px;
}

/* Dark header — tool icons + labels white, hover = accent */
.whb-header .wd-header-my-account > a,
.whb-header .wd-header-my-account .wd-tools-icon,
.whb-header .wd-header-my-account .wd-tools-text,
.whb-header .wd-header-cart > a,
.whb-header .wd-header-cart .wd-tools-icon,
.whb-header .wd-header-cart .wd-tools-text,
.whb-header .wd-header-cart .wd-tools-text-cart,
.whb-header .wd-header-cart .wd-cart-number,
.whb-header .wd-header-cart .wd-cart-subtotal,
.whb-header .wd-header-search > a,
.whb-header .wd-header-search .wd-tools-icon,
.whb-header .wd-header-wishlist > a,
.whb-header .wd-header-wishlist .wd-tools-icon {
	color: var(--dof-on-dark);
}
.whb-header .wd-tools-icon svg,
.whb-header .wd-tools-icon svg * {
	fill: currentColor;
	stroke: currentColor;
}
.whb-header .wd-header-my-account > a:hover,
.whb-header .wd-header-cart > a:hover,
.whb-header .wd-header-search > a:hover,
.whb-header .wd-header-wishlist > a:hover {
	color: var(--wd-primary-color, #ffe786);
}

/* ===================== WOODMART FOOTER — structural only ===================== */
/* Colors/fonts managed inside Woodmart HTML Block (ID 818) editor + global Theme Settings.
   Here: hairlines, vertical rhythm, uppercase widget titles, list reset. */
.site-footer,
.footer-container {
	border-top: 1px solid var(--dof-line);
	padding-top: var(--dof-sp-7);
	padding-bottom: var(--dof-sp-5);
}
.site-footer .widget-title,
.site-footer h1,
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer h5 {
	letter-spacing: .14em;
	text-transform: uppercase;
	margin-bottom: var(--dof-sp-4);
}
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.copyrights-wrapper,
.site-footer .copyrights {
	border-top: 1px solid rgba(255,255,255,.12);
	padding-top: var(--dof-sp-4);
	padding-bottom: var(--dof-sp-4);
}

/* ===================== WOOCOMMERCE PRODUCT CARD — structural only ===================== */
/* Card colors/fonts/buttons managed in Theme Settings > Shop / Buttons / Colors.
   Here: flat-editorial layout — hairline grid, aspect-ratio image, uppercase button padding,
   circular swatches/wishlist, scale-on-hover, no shadows. */

.products .product-grid-item,
.products .product {
	box-shadow: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
}

.dof-catalog__grid .products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 1px !important;
	background: var(--dof-line) !important;
	border-top: 1px solid var(--dof-line);
	border-bottom: 1px solid var(--dof-line);
	margin: 0 !important;
}
.dof-catalog__grid .products::before,
.dof-catalog__grid .products::after { display: none !important; }
.dof-catalog__grid .products .product { width: 100% !important; margin: 0 !important; }

@media (max-width: 1023px) { .dof-catalog__grid .products { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 480px)  { .dof-catalog__grid .products { grid-template-columns: 1fr !important; } }

/* Card image — aspect-ratio + scale-on-hover */
.products .product-element-top,
.products .product-image-link {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 5;
	border-radius: 0 !important;
}
.products .product-element-top img,
.products .product-image-link img,
.products .wp-post-image {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	transition: transform var(--dof-dur-slow) var(--dof-ease) !important;
}
.products .product-grid-item:hover .product-element-top img,
.products .product:hover .product-image-link img { transform: scale(1.03); }

/* Labels — shape only, colors via Theme Settings > Labels */
.products .product-labels {
	top: 12px !important;
	left: 12px !important;
	gap: 6px !important;
}
.products .product-label {
	letter-spacing: .12em !important;
	text-transform: uppercase;
	padding: 4px 10px !important;
	border-radius: var(--dof-radius) !important;
	min-width: auto !important;
	min-height: auto !important;
	line-height: 1.4 !important;
	border: none !important;
}

/* Card body padding + title/price margins */
.products .product-wrapper,
.products .product-element-bottom {
	padding: var(--dof-sp-4) !important;
}
.products .wd-entities-title,
.products .woocommerce-loop-product__title {
	margin: 0 0 4px 0 !important;
	line-height: 1.4 !important;
}
.products .price {
	margin-top: var(--dof-sp-2) !important;
	display: block;
}

/* Swatches — shape + hover */
.products .wd-swatches-product,
.products .wd-swatch-container {
	margin: var(--dof-sp-2) 0 0 !important;
	gap: 5px !important;
}
.products .wd-swatch {
	width: 14px !important;
	height: 14px !important;
	border-radius: 50% !important;
	border: 0.5px solid color-mix(in srgb, var(--dof-ink) 15%, transparent) !important;
	transition: transform var(--dof-dur) var(--dof-ease) !important;
}
.products .wd-swatch:hover { transform: scale(1.1); }

/* Hover mask reset */
.products .hover-mask,
.products .wd-buttons,
.products .wd-add-btn,
.products .product-buttons {
	background: transparent !important;
	box-shadow: none !important;
}

/* Buttons — structural only, colors via Theme Settings > Buttons */
.products .button,
.products .add_to_cart_button,
.products .product_type_simple,
.products .product_type_variable,
.products .added_to_cart,
.products .add-to-cart-loop,
.products .wd-tooltip-label,
.products .wd-buy-now-btn {
	border: none !important;
	padding: 10px 16px !important;
	border-radius: var(--dof-radius) !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	box-shadow: none !important;
	text-shadow: none !important;
}

/* Wishlist / compare — circular hairline shape, colors via Theme Settings */
.products .wd-wishlist-btn,
.products .wd-compare-btn,
.products .wd-product-loop-icons .wd-tools-icon {
	background: rgba(255,255,255,.9) !important;
	border: 1px solid var(--dof-line) !important;
	border-radius: 50% !important;
}


/* ===================== MOBILE GUTTER ALIGN ===================== */
/* Match: header logo / cart / top menu / hero bar content / hero badge — all same left edge */
@media (max-width: 720px) {
	:root { --dof-site-pad: 16px; }

	.dof-heroV3__bar {
		padding-left: var(--dof-site-pad) !important;
		padding-right: var(--dof-site-pad) !important;
	}
	.dof-heroV3__badge {
		left: var(--dof-site-pad) !important;
		top: 14px !important;
	}
	/* Woodmart's Header Builder mobile column — flush to the same edge */
	.whb-mobile-left,
	.whb-mobile-left .site-logo,
	.whb-col-mobile,
	.whb-mobile-header .site-logo a {
		padding-left: 0 !important;
		margin-left: 0 !important;
	}
}

/* ===================== MOBILE LOGO FLUSH (stronger) ===================== */
@media (max-width: 720px) {
	/* Container still gets 16px; no other left pads inside the mobile header */
	.whb-general-header > .container,
	.whb-main-header > .whb-row > .container,
	.whb-main-header .container {
		padding-left: var(--dof-site-pad) !important;
		padding-right: var(--dof-site-pad) !important;
	}
	.whb-main-header .whb-flex-row,
	.whb-main-header .whb-row,
	.whb-column.whb-mobile-left,
	.whb-column.whb-mobile-left.whb-column_mobile2,
	.whb-column.whb-mobile-left > *,
	.whb-mobile-left .site-logo,
	.whb-mobile-left .site-logo > a,
	.whb-mobile-left .wd-logo,
	.whb-mobile-left .wd-logo > a,
	.whb-mobile-left a.wd-logo,
	.whb-mobile-left a.wd-main-logo {
		padding-left: 0 !important;
		margin-left: 0 !important;
	}
	.whb-main-header .whb-flex-row { justify-content: space-between !important; }
	/* Top bar row (cart icon row) — same 16px pad so icons align */
	.whb-top-bar > .container,
	.whb-top-bar .container {
		padding-left: var(--dof-site-pad) !important;
		padding-right: var(--dof-site-pad) !important;
	}
	/* Mobile nav tool buttons flush */
	.whb-mobile-nav-icon,
	.whb-column.whb-mobile-right,
	.whb-column.whb-mobile-right > * {
		margin-right: 0 !important;
		padding-right: 0 !important;
	}
}

/* ===================== EDITORIAL FOOTER (dark) ===================== */
.site-footer,
.footer-container {
	background: var(--dof-surface-dark) !important;
	color: var(--dof-on-dark) !important;
	border-top: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
.dof-footer {
	background: var(--dof-surface-dark);
	color: var(--dof-on-dark);
	border-top: 0;
}
.html-block-818,
.site-footer .html-block-shortcode,
.site-footer .wd-html-block { padding: 0 !important; }

.dof-footer {
	width: 100%;
	max-width: 100%;
	padding: 48px var(--dof-site-pad) 28px !important;
	display: flex;
	flex-direction: column;
	gap: clamp(56px, 6vw, 96px);
}

.dof-footer__top {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 2.2fr);
	gap: clamp(40px, 5vw, 96px);
	align-items: start;
}

.dof-footer__brand { display: flex; flex-direction: column; gap: clamp(20px, 2.4vw, 32px); }

.dof-footer__eyebrow {
	margin: 0;
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: color-mix(in oklch, var(--dof-accent) 50%, var(--dof-on-dark));
	font-weight: 500;
}

/* White logo image instead of text wordmark */
.dof-footer__logo-wrap { display: inline-block; line-height: 0; }
.dof-footer__logo {
	display: block;
	width: clamp(120px, 14vw, 220px);
	height: auto;
	filter: brightness(1.05);
}

.dof-footer__lede {
	margin: 0;
	max-width: 36ch;
	font-size: clamp(15px, 1rem + 0.2vw, 17px);
	line-height: 1.55;
	color: rgba(255,255,255,.72);
}
.dof-footer__lede em.dof-serif-italic { color: color-mix(in oklch, var(--dof-accent) 40%, var(--dof-on-dark)); }

.dof-footer__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	align-self: flex-start;
	padding: 16px 26px;
	background: var(--dof-bg-2);
	color: var(--dof-ink);
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	font-weight: 500;
	text-decoration: none;
	transition: background var(--dof-dur) var(--dof-ease-out), color var(--dof-dur) var(--dof-ease-out);
	border: 1px solid var(--dof-bg-2);
}
.dof-footer__cta:hover { background: var(--dof-accent); border-color: var(--dof-accent); color: var(--dof-ink); }
.dof-footer__cta svg { transition: transform var(--dof-dur) var(--dof-ease-out); }
.dof-footer__cta:hover svg { transform: translateX(4px); }

/* COLUMNS */
.dof-footer__cols {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(24px, 3vw, 48px);
}
.dof-footer__col h3.dof-footer__col-h {
	margin: 0 0 clamp(14px, 1.4vw, 22px) 0;
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: rgba(255,255,255,.50);
	font-weight: 500;
}
.dof-footer__col ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.dof-footer__col a {
	font-size: 14px;
	line-height: 1.4;
	color: var(--dof-on-dark);
	text-decoration: none;
	letter-spacing: -0.005em;
	transition: color var(--dof-dur-fast) var(--dof-ease-out), border-color var(--dof-dur-fast) var(--dof-ease-out);
	display: inline-block;
	border-bottom: 1px solid transparent;
	padding-bottom: 2px;
}
.dof-footer__col a:hover {
	color: var(--dof-accent);
	border-color: var(--dof-accent);
}
.dof-footer__col li {
	font-size: 14px;
	color: rgba(255,255,255,.72);
	line-height: 1.4;
}

/* CONTACT column */
.dof-footer__col--contact .dof-footer__contact a { font-weight: 500; }
.dof-footer__col--contact .dof-footer__contact a[href^="tel:"] {
	font-size: 18px;
	letter-spacing: -0.01em;
	font-weight: 500;
}
.dof-footer__social {
	margin-top: 18px;
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}
.dof-footer__social a {
	font-size: 12px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--dof-on-dark);
	border-bottom: 1px solid rgba(255,255,255,.55);
	padding-bottom: 2px;
	transition: color var(--dof-dur-fast) var(--dof-ease-out), border-color var(--dof-dur-fast) var(--dof-ease-out);
}
.dof-footer__social a:hover {
	color: var(--dof-accent);
	border-color: var(--dof-accent);
}

/* BOTTOM bar */
.dof-footer__bottom {
	border-top: 1px solid rgba(255,255,255,.10);
	padding-top: clamp(20px, 2vw, 28px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	font-size: 12px;
	color: rgba(255,255,255,.55);
}
.dof-footer__copy { margin: 0; letter-spacing: .02em; }
.dof-footer__credit { margin: 0; max-width: 50ch; text-align: right; }

/* Payment strip — single image (combined Visa/Mastercard/Apple/Google) */
.dof-footer__pay {
	display: inline-flex;
	align-items: center;
	gap: 15px;
	flex-wrap: wrap;
	flex-shrink: 0;
	background: transparent;
	padding: 0;
	border-radius: 0;
}
.dof-footer__pay .dof-pay-icon {
	display: block;
	height: 28px;
	width: auto;
	flex-shrink: 0;
	transition: opacity var(--dof-dur-fast) var(--dof-ease-out);
	opacity: .92;
}
.dof-footer__pay .dof-pay-icon:hover { opacity: 1; }


/* RESPONSIVE */
@media (max-width: 1100px) {
	.dof-footer__top { grid-template-columns: 1fr; gap: 48px; }
	.dof-footer__cols { grid-template-columns: repeat(2, 1fr); }
	.dof-footer__credit { text-align: left; }
	.dof-footer__bottom { justify-content: flex-start; }
}
@media (max-width: 720px) {
	.dof-footer { padding: 40px var(--dof-site-pad) 24px !important; gap: 40px; }
	.dof-footer__cols { grid-template-columns: 1fr; gap: 32px; }
	.dof-footer__col h3.dof-footer__col-h { margin-bottom: 12px; }
	.dof-footer__col a { font-size: 15px; }
	.dof-footer__logo { width: clamp(100px, 36vw, 160px); }
	.dof-footer__lede { font-size: 14px; }
	.dof-footer__bottom { flex-direction: column; align-items: flex-start; gap: 16px; }
	.dof-footer__pay { gap: 15px; }
	.dof-footer__pay .dof-pay-icon { height: 20px; }
}

/* Hide Woodmart's stock copyright bar */
.copyrights-wrapper { display: none !important; }


/* ══════════════════════════════════════════════════════════════════
   v0.8 — ПОЛНЫЙ РЕДИЗАЙН СЕКЦИЙ (ниже hero)
   ══════════════════════════════════════════════════════════════════ */

/* ── Scroll-reveal (базовые состояния) ────────────────────────────── */
.dof-reveal {
	transition: opacity .75s cubic-bezier(.2,.65,.3,1), transform .75s cubic-bezier(.2,.65,.3,1);
}
.dof-reveal.is-revealed { opacity: 1; transform: none; }

[data-stagger] > * {
	transform: translateY(24px);
	transition: opacity .6s cubic-bezier(.2,.65,.3,1), transform .6s cubic-bezier(.2,.65,.3,1);
}
[data-stagger].is-revealed > * { opacity: 1; transform: none; }
[data-stagger].is-revealed > *:nth-child(2) { transition-delay: .08s; }
[data-stagger].is-revealed > *:nth-child(3) { transition-delay: .16s; }
[data-stagger].is-revealed > *:nth-child(4) { transition-delay: .24s; }
[data-stagger].is-revealed > *:nth-child(5) { transition-delay: .32s; }
[data-stagger].is-revealed > *:nth-child(6) { transition-delay: .40s; }

@media (prefers-reduced-motion: reduce) {
	.dof-reveal, [data-stagger] > * {
		opacity: 1 !important; transform: none !important; transition: none !important;
	}
}

/* ── Утилиты ──────────────────────────────────────────────────────── */
.dof-eyebrow {
	font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
	color: var(--wd-link-color-hover); font-weight: 500; margin: 0 0 var(--dof-sp-3);
}
.dof-lead {
	font-size: clamp(15px, 1rem + .3vw, 18px); line-height: 1.65;
	color: var(--dof-ink-2); margin: 0;
}

/* ── Кнопки ───────────────────────────────────────────────────────── */
.dof-btn-primary {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 14px 28px;
	background: var(--dof-ink); color: var(--dof-bg);
	font-size: 11px; letter-spacing: .15em; text-transform: uppercase; font-weight: 500;
	font-family: var(--dof-font-sans); text-decoration: none;
	border: 1px solid var(--dof-ink);
	transition: background .25s, color .25s, border-color .25s;
}
.dof-btn-primary:hover { background: var(--dof-accent); border-color: var(--dof-accent); color: var(--dof-ink); }
.dof-btn-primary--inv { background: var(--dof-bg-2); color: var(--dof-ink); border-color: var(--dof-bg-2); }
.dof-btn-primary--inv:hover { background: var(--dof-accent); border-color: var(--dof-accent); color: var(--dof-ink); }

.dof-btn-ghost {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 14px 28px;
	background: transparent; color: var(--dof-ink);
	font-size: 11px; letter-spacing: .15em; text-transform: uppercase; font-weight: 500;
	font-family: var(--dof-font-sans); text-decoration: none;
	border: 1px solid var(--dof-line-strong);
	transition: background .25s, color .25s, border-color .25s;
}
.dof-btn-ghost:hover { border-color: var(--dof-ink); background: var(--dof-ink); color: var(--dof-bg); }
.dof-btn-ghost--inv { border-color: rgba(255,255,255,.3); color: var(--dof-on-dark); }
.dof-btn-ghost--inv:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.6); color: var(--dof-on-dark); }

/* ══════════════════════════════════════════════════════════════════
   v0.11.0 EDITORIAL — sections 3 through 9
   Stacked full-bleed structure (intro on top, content full-width below)
   ══════════════════════════════════════════════════════════════════ */

/* ─── Shared: eyebrow / arrow-link ─────────────────────────────── */
.dof-eyebrow {
	display: inline-block;
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--wd-link-color-hover);
	margin: 0 0 28px;
}
.dof-arrow-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-size: 14px;
	letter-spacing: .04em;
	color: var(--dof-ink);
	font-weight: 500;
	padding: 14px 0;
	position: relative;
	text-decoration: none;
	transition: color var(--dof-dur-hover) var(--dof-ease-out);
}
.dof-arrow-link::after {
	content: '';
	position: absolute;
	left: 0; right: 0; bottom: 8px;
	height: 1px;
	background: var(--dof-line);
	transform-origin: left;
	transition: transform var(--dof-dur-hover) var(--dof-ease-out),
		background var(--dof-dur-hover) var(--dof-ease-out);
}
.dof-arrow-link svg {
	transition: transform var(--dof-dur-hover) var(--dof-ease-out);
	flex-shrink: 0;
}
.dof-arrow-link.is-primary { color: var(--dof-accent); }
.dof-arrow-link.is-primary::after { background: var(--dof-accent); }
@media (hover: hover) and (pointer: fine) {
	.dof-arrow-link:hover svg { transform: translateX(8px); }
	.dof-arrow-link:hover::after { background: var(--dof-ink); }
	.dof-arrow-link.is-primary:hover::after { background: var(--dof-accent); }
}

/* ══════════════════════════════════════════════════════════════════
   v0.12.0 — PROTOTYPE-FAITHFUL HOME (full-width, .dh- namespace)
   Source: D:\Завантаження\Telegram Desktop\Рекомендація_технічного_завдання.html PAGE 1
   ══════════════════════════════════════════════════════════════════ */

/* ── Reveal animation (works on all viewports incl. mobile) ───────── */
.dof-reveal {
	transition: opacity 480ms var(--dof-ease-out), transform 480ms var(--dof-ease-out);
	will-change: opacity, transform;
}
html.dof-js-ready .dof-reveal:not(.is-revealed) {
	opacity: 0;
	transform: translateY(16px);
}
.dof-reveal.is-revealed { opacity: 1; transform: none; }
[data-stagger] > * { transition-delay: calc(var(--dof-stagger-i, 0) * 60ms); }
@media (prefers-reduced-motion: reduce) {
	.dof-reveal, .dof-reveal.is-revealed { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ── Buttons (prototype-faithful) ─────────────────────────────────── */
.dh-btn-p {
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 11px; letter-spacing: .1em; text-transform: uppercase; font-weight: 600;
	background: var(--dof-ink); color: var(--dof-bg);
	border: none; padding: 12px 24px; cursor: pointer; border-radius: 2px;
	font-family: inherit; text-decoration: none;
	transition: background 200ms var(--dof-ease-out), transform 140ms var(--dof-ease-out);
}
.dh-btn-p:hover { background: var(--dof-surface-dark); }
.dh-btn-p:active { transform: scale(0.97); }
.dh-btn-g {
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
	background: transparent; color: var(--dof-accent);
	border: 1px solid var(--dof-accent); padding: 12px 24px; cursor: pointer; border-radius: 2px;
	font-family: inherit; text-decoration: none;
	transition: background 200ms var(--dof-ease-out), transform 140ms var(--dof-ease-out);
}
.dh-btn-g:hover { background: var(--dof-alt, #fff6d1); }
.dh-btn-g:active { transform: scale(0.97); }

/* Section header reused across blocks */
.dh-sec-hdr {
	display: flex; align-items: baseline; justify-content: space-between;
	margin-bottom: 22px;
}
.dh-sec-t {
	font-size: 12px; font-weight: 600; letter-spacing: .12em;
	text-transform: uppercase; color: var(--dof-ink);
}
.dh-sec-lnk {
	font-size: 13px; color: var(--dof-accent); cursor: pointer;
	text-decoration: none;
	transition: gap 200ms var(--dof-ease-out);
}
.dh-sec-lnk:hover { color: var(--dof-adk, #f0d65a); }

/* ─── SEGMENTS — 3 columns, accent on the active one ─────────────── */
.dh-segs {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	border-bottom: 1px solid var(--dof-line);
}
.dh-seg {
	display: block;
	padding: clamp(36px, 4vw, 56px) clamp(28px, 3.5vw, 56px);
	border-right: 1px solid var(--dof-line);
	cursor: pointer;
	text-decoration: none; color: inherit;
	transition: background 220ms var(--dof-ease-out);
}
.dh-seg:last-child { border-right: none; }
.dh-seg:hover { background: var(--dof-bg-2, #fdf6e3); }
.dh-seg-n {
	font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
	color: var(--dof-ink-3, #5c7590); margin: 0 0 12px;
}
.dh-seg-t {
	font-size: clamp(18px, 1.6vw, 24px); font-weight: 600;
	color: var(--dof-ink); margin: 0 0 8px; line-height: 1.3;
	letter-spacing: -0.005em;
}
.dh-seg-d {
	font-size: 14px; color: var(--dof-ink-2, #3d5b78);
	line-height: 1.65; margin: 0 0 22px;
}
.dh-seg-cta {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 11px; letter-spacing: .08em; text-transform: uppercase;
	color: var(--dof-ink); font-weight: 600;
}
.dh-seg-arr { transition: transform 220ms var(--dof-ease-out); display: inline-block; }
.dh-seg:hover .dh-seg-arr { transform: translateX(5px); }
.dh-seg.is-on { background: var(--dof-alt, #fff6d1); border-top: 2px solid var(--dof-accent); }
.dh-seg.is-on .dh-seg-t { color: var(--dof-adk, #f0d65a); }
.dh-seg.is-on .dh-seg-cta { color: var(--dof-accent); }

/* ─── CATALOG — full-width, native Woodmart products-tabs ─────────── */
.dh-cat {
	padding: clamp(40px, 5vw, 64px) clamp(28px, 3.5vw, 56px);
	border-bottom: 1px solid var(--dof-line);
}
.dh-cat .dh-sec-hdr {
	max-width: none;
	margin-bottom: 24px;
}
/* Restyle native Woodmart tabs nav */
.dh-cat .wd-nav-tabs.products-tabs-title {
	display: flex; gap: 8px; flex-wrap: wrap;
	list-style: none; padding: 0; margin: 0 0 26px;
	border: none !important; background: transparent !important;
}
.dh-cat .wd-nav-tabs.products-tabs-title li {
	margin: 0 !important; padding: 0 !important;
	border: none !important;
}
.dh-cat .wd-nav-tabs.products-tabs-title li > a {
	display: inline-flex; align-items: center;
	font-size: 11px; letter-spacing: .04em; padding: 6px 14px !important;
	border: 1px solid var(--dof-line) !important;
	background: transparent !important;
	color: var(--dof-ink-2, #3d5b78) !important;
	border-radius: 2px !important;
	cursor: pointer; font-family: inherit;
	transition: background 200ms var(--dof-ease-out), color 200ms var(--dof-ease-out), border-color 200ms var(--dof-ease-out);
	line-height: 1.4 !important;
}
.dh-cat .wd-nav-tabs.products-tabs-title li > a::before,
.dh-cat .wd-nav-tabs.products-tabs-title li > a::after { display: none !important; }
.dh-cat .wd-nav-tabs.products-tabs-title li:hover > a {
	background: var(--dof-bg-2, #fdf6e3) !important;
}
.dh-cat .wd-nav-tabs.products-tabs-title li.wd-active > a {
	background: var(--dof-ink) !important;
	color: var(--dof-bg) !important;
	border-color: var(--dof-ink) !important;
}
/* Carousel cards: clean, prototype-faithful */
.dh-cat .wd-carousel-container,
.dh-cat .wd-carousel,
.dh-cat .wd-carousel-inner {
	border: none !important; box-shadow: none !important;
	background: transparent !important;
}
/* Catalog: keep native Woodmart UI (swatches, A2C, sku) */
/* Carousel arrows */
.dh-cat .wd-btn-arrow,
.dh-cat .swiper-button-prev,
.dh-cat .swiper-button-next {
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	width: 32px !important; height: 32px !important;
	color: var(--dof-ink) !important;
	transition: opacity 200ms var(--dof-ease-out), transform 140ms var(--dof-ease-out) !important;
	opacity: 0.7;
}
.dh-cat .wd-btn-arrow:hover { opacity: 1 !important; }
.dh-cat .wd-btn-arrow:active { transform: scale(0.94) !important; }
.dh-cat .wd-btn-arrow svg, .dh-cat .wd-btn-arrow:before { color: var(--dof-ink) !important; fill: var(--dof-ink) !important; }

.dh-cat-foot {
	text-align: center;
	padding: 22px 0 0;
}

/* ─── BRANDING ──────────────────────────────────────────────────── */
.dh-branding {
	border-top: 1px solid var(--dof-line);
	padding: clamp(40px, 5vw, 64px) clamp(28px, 3.5vw, 56px);
	background: var(--dof-bg-2, #fdf6e3);
}
.dh-br-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(36px, 4vw, 64px);
	align-items: start;
}
.dh-br-eye {
	font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
	color: var(--dof-ink-3, #5c7590); margin: 0 0 14px;
}
.dh-br-h2 {
	font-size: clamp(24px, 2.6vw, 34px); font-weight: 600;
	color: var(--dof-ink); line-height: 1.2;
	margin: 0 0 14px; letter-spacing: -0.01em;
}
.dh-br-sub {
	font-size: 15px; color: var(--dof-ink-2, #3d5b78);
	line-height: 1.7; margin: 0 0 26px;
}
.dh-tech-list {
	display: grid; grid-template-columns: 1fr 1fr;
	gap: 10px;
}
.dh-tch {
	padding: 12px 14px;
	background: var(--dof-bg);
	border: 1px solid var(--dof-line); border-radius: 2px;
	transition: border-color 200ms var(--dof-ease-out), transform 200ms var(--dof-ease-out);
}
.dh-tch:hover { border-color: var(--dof-accent); transform: translateY(-2px); }
.dh-tch-n { font-size: 13px; font-weight: 600; color: var(--dof-ink); margin: 0 0 2px; }
.dh-tch-d { font-size: 12px; color: var(--dof-ink-3, #5c7590); margin: 0; }
.dh-br-cta {
	display: flex; gap: 12px; flex-wrap: wrap;
	margin-top: 28px;
}
.dh-br-r {
	display: flex; flex-direction: column; gap: 14px;
}
.dh-steps-card {
	padding: 22px;
	background: var(--dof-bg);
	border: 1px solid var(--dof-line); border-radius: 2px;
}
.dh-steps-h {
	font-size: 13px; font-weight: 600;
	color: var(--dof-ink); margin: 0 0 14px;
}
.dh-step-row { display: flex; gap: 12px; margin-bottom: 10px; }
.dh-step-row:last-child { margin-bottom: 0; }
.dh-sn {
	font-size: 11px; color: var(--dof-accent); font-weight: 600;
	min-width: 18px; padding-top: 2px;
}
.dh-st { font-size: 13px; color: var(--dof-ink-2, #3d5b78); line-height: 1.5; }
.dh-timing {
	padding: 16px 18px;
	background: var(--dof-bg);
	border: 1px solid var(--dof-line); border-radius: 2px;
	display: flex; justify-content: space-between; align-items: center;
}
.dh-timing-l { font-size: 13px; font-weight: 600; color: var(--dof-ink); margin: 0 0 2px; }
.dh-timing-d { font-size: 12px; color: var(--dof-ink-3, #5c7590); margin: 0; }
.dh-timing-v { font-size: 20px; font-weight: 600; color: var(--dof-accent); white-space: nowrap; font-variant-numeric: tabular-nums; }

/* ─── WHY — circle Phosphor icons ─────────────────────────────── */
.dh-why {
	padding: clamp(40px, 5vw, 64px) clamp(28px, 3.5vw, 56px);
	border-top: 1px solid var(--dof-line);
}
.dh-why-grid {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	background: var(--dof-line);
	margin-top: 26px;
	border: 1px solid var(--dof-line);
}
.dh-wi {
	background: var(--dof-bg);
	padding: 28px;
	transition: background 200ms var(--dof-ease-out);
}
.dh-wi:hover { background: var(--dof-bg-2, #fdf6e3); }
.dh-wi-icon {
	width: 48px; height: 48px;
	border: 1px solid var(--dof-line);
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	margin-bottom: 16px;
	color: var(--dof-accent);
	background: var(--dof-bg);
	transition: background 220ms var(--dof-ease-out), color 220ms var(--dof-ease-out), border-color 220ms var(--dof-ease-out);
}
.dh-wi-icon svg { width: 22px; height: 22px; }
.dh-wi:hover .dh-wi-icon {
	background: var(--dof-accent); color: var(--dof-ink); border-color: var(--dof-accent);
}
.dh-wi-t { font-size: 14px; font-weight: 600; color: var(--dof-ink); margin: 0 0 6px; }
.dh-wi-d { font-size: 13px; color: var(--dof-ink-2, #3d5b78); line-height: 1.65; margin: 0; }

/* ─── BRIDGE — accent stripe ─────────────────────────────────── */
.dh-bridge-w {
	padding: 0 clamp(28px, 3.5vw, 56px) clamp(40px, 5vw, 64px);
}
.dh-bridge {
	background: var(--dof-accent);
	border-radius: 2px;
	padding: clamp(32px, 3.5vw, 48px) clamp(28px, 3.5vw, 56px);
	display: flex; align-items: center; justify-content: space-between;
	gap: 28px;
}
.dh-br-eye2 {
	font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
	color: rgba(255, 255, 255, .65); margin: 0 0 8px;
}
.dh-br-h22 {
	font-size: clamp(20px, 2vw, 28px); font-weight: 600;
	color: var(--dof-on-dark); margin: 0 0 8px; line-height: 1.2;
}
.dh-br-sub2 {
	font-size: 14px; color: rgba(255, 255, 255, .82);
	line-height: 1.65; margin: 0;
}
.dh-br-btn {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
	background: var(--dof-bg-2); color: var(--dof-adk, #f0d65a);
	border: none; padding: 13px 26px; cursor: pointer; border-radius: 2px;
	font-weight: 600; white-space: nowrap; flex-shrink: 0;
	font-family: inherit; text-decoration: none;
	transition: background 200ms var(--dof-ease-out), transform 140ms var(--dof-ease-out);
}
.dh-br-btn:hover { background: var(--dof-bg-2, #fdf6e3); }
.dh-br-btn:active { transform: scale(0.97); }

/* ─── CLIENTS — 9 logos, transparent, grayscale → color hover ─── */
.dh-clients {
	padding: clamp(40px, 5vw, 64px) clamp(28px, 3.5vw, 56px);
	border-top: 1px solid var(--dof-line);
}
.dh-logos {
	display: grid;
	grid-template-columns: repeat(9, minmax(0, 1fr));
	border: 1px solid var(--dof-line);
	border-radius: 2px;
	overflow: hidden;
	margin-top: 22px;
}
.dh-logo-ph {
	height: 80px;
	display: flex; align-items: center; justify-content: center;
	border-right: 1px solid var(--dof-line);
	background: var(--dof-bg);
	padding: 0 14px;
	transition: background 220ms var(--dof-ease-out);
}
.dh-logo-ph:last-child { border-right: none; }
.dh-logo-ph:hover { background: var(--dof-bg-2, #fdf6e3); }
.dh-logo-ph img {
	max-height: 32px;
	max-width: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: none;
	opacity: 1;
	transition: filter 280ms var(--dof-ease-out), opacity 280ms var(--dof-ease-out);
}
.dh-logo-ph:hover img { filter: grayscale(0); opacity: 1; }

/* ─── FORM ────────────────────────────────────────────────── */
.dh-form-sec {
	padding: clamp(40px, 5vw, 64px) clamp(28px, 3.5vw, 56px);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(36px, 4vw, 64px);
	align-items: start;
	border-top: 1px solid var(--dof-line);
	background: var(--dof-bg-2, #fdf6e3);
}
.dh-f-h2 {
	font-size: clamp(22px, 2.2vw, 30px); font-weight: 600;
	color: var(--dof-ink); margin: 0 0 10px; letter-spacing: -0.01em; line-height: 1.2;
}
.dh-f-sub {
	font-size: 15px; color: var(--dof-ink-2, #3d5b78);
	line-height: 1.7; margin: 0 0 26px;
}
.dh-f-bens { display: flex; flex-direction: column; gap: 10px; }
.dh-fben { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--dof-ink-2, #3d5b78); }
.dh-fben-d { width: 6px; height: 6px; border-radius: 50%; background: var(--dof-accent); flex-shrink: 0; }
.dh-fbox {
	background: var(--dof-bg);
	border: 1px solid var(--dof-line); border-radius: 4px;
	padding: 28px;
}
.dh-frow { margin-bottom: 16px; }
.dh-flbl {
	font-size: 11px; letter-spacing: .06em; text-transform: uppercase;
	color: var(--dof-ink-3, #5c7590); margin: 0 0 6px; display: block; font-weight: 500;
}
.dh-finp, .dh-fsel, .dh-ftxt {
	width: 100%;
	font-size: 14px; color: var(--dof-ink);
	background: var(--dof-bg-2, #fdf6e3);
	border: 1px solid var(--dof-line); border-radius: 2px;
	padding: 10px 13px;
	outline: none;
	font-family: inherit;
	transition: border-color 200ms var(--dof-ease-out), background 200ms var(--dof-ease-out);
}
.dh-finp:focus, .dh-fsel:focus, .dh-ftxt:focus {
	border-color: var(--dof-accent); background: var(--dof-bg);
}
.dh-ftxt { resize: vertical; min-height: 76px; }
.dh-fsub {
	width: 100%;
	padding: 13px;
	font-size: 11px; letter-spacing: .1em; text-transform: uppercase; font-weight: 600;
	background: var(--dof-accent); color: var(--dof-ink);
	border: none; cursor: pointer; border-radius: 2px;
	font-family: inherit;
	transition: background 200ms var(--dof-ease-out), transform 140ms var(--dof-ease-out);
}
.dh-fsub:hover { background: var(--dof-adk, #f0d65a); }
.dh-fsub:active { transform: scale(0.98); }
.dh-fnote { font-size: 11px; color: var(--dof-ink-3, #5c7590); text-align: center; margin: 10px 0 0; }
.dof-form__success, .dof-form__error { font-size: 13px; margin-top: 12px; }
.dof-form__success { color: var(--dof-accent); }
.dof-form__error { color: var(--dof-red, #c0392b); }

/* ─── RESPONSIVE ─────────────────────────────────────────── */
@media (max-width: 1023px) {
	.dh-br-grid { grid-template-columns: 1fr; }
	.dh-form-sec { grid-template-columns: 1fr; }
	.dh-why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dh-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.dh-logo-ph:nth-child(3n) { border-right: none; }
	.dh-logo-ph:nth-child(n+4) { border-top: 1px solid var(--dof-line); }
	.dh-bridge { flex-direction: column; align-items: flex-start; gap: 18px; }
}
@media (max-width: 640px) {
	.dh-segs { grid-template-columns: 1fr; }
	.dh-seg { border-right: none; border-bottom: 1px solid var(--dof-line); }
	.dh-seg:last-child { border-bottom: none; }
	.dh-why-grid { grid-template-columns: 1fr; }
	.dh-tech-list { grid-template-columns: 1fr; }
	.dh-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.dh-cat .wd-nav-tabs.products-tabs-title { gap: 6px; }
	.dh-br-cta { flex-direction: column; }
	.dh-br-cta .dh-btn-p, .dh-br-cta .dh-btn-g { width: 100%; }
}

/* v0.12.7 — Catalog visual fixes (equal height + uniform icons) */
.dh-cat .swiper-slide,
.dh-cat .wd-carousel-item {
	height: auto !important;
	display: flex !important;
	align-items: stretch !important;
}
.dh-cat .swiper-slide > .wd-product,
.dh-cat .wd-carousel-item > .wd-product {
	width: 100%;
	display: flex;
	flex-direction: column;
}
.dh-cat .wd-product .product-wrapper,
.dh-cat .wd-product .wd-product-wrapper {
	display: flex !important;
	flex-direction: column !important;
	height: 100%;
	flex: 1 1 auto;
}
.dh-cat .wd-product .wd-entities-title {
	min-height: 2.8em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.dh-cat .wd-product .price {
	margin-top: auto;
}
.dh-cat .wd-product .wd-buttons {
	margin-top: 8px;
}

/* Quick-view + wishlist icons — both no background */
.dh-cat .wd-product .wd-action-btn,
.dh-cat .wd-product .wd-wishlist-btn,
.dh-cat .wd-product .quick-shop-btn,
.dh-cat .wd-product .wd-buy-now-btn,
.dh-cat .wd-product .compare-btn,
.dh-cat .wd-product .wd-action-btn > a,
.dh-cat .wd-product .wd-action-btn > span {
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	border: none !important;
}
.dh-cat .wd-product .wd-action-btn:hover,
.dh-cat .wd-product .wd-action-btn:hover > a {
	background: transparent !important;
	color: var(--dof-accent) !important;
}

/* v0.13.0 — Why-grid contrast + clients slider polish */

/* Чому Dofamin: видимые рамки, контрастные иконки */
.dh-why-grid {
	background: var(--dof-line);
	border: 1px solid var(--dof-line);
}
.dh-wi {
	background: var(--dof-bg);
	position: relative;
}
.dh-wi-icon {
	background: var(--dof-bg-2, #fdf6e3);
	border: 1px solid var(--dof-line);
	color: var(--dof-accent);
}
.dh-wi-icon svg {
	stroke-width: 14;
	width: 22px; height: 22px;
}
.dh-wi:hover .dh-wi-icon {
	background: var(--dof-accent);
	border-color: var(--dof-accent);
	color: var(--dof-ink);
}
.dh-wi-t { font-weight: 600; color: var(--dof-ink); margin: 0 0 6px; }
.dh-wi-d { font-size: 13px; color: var(--dof-ink-2, #3d5b78); line-height: 1.65; margin: 0; }

/* Clients native slider — minimal styling */
.dh-clients-slider .wd-images-gallery {
	margin: 22px 0 0;
	overflow: hidden;
}
.dh-clients-slider .wd-carousel-container,
.dh-clients-slider .wd-carousel,
.dh-clients-slider .wd-carousel-inner {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}
.dh-clients-slider .wd-gallery-item,
.dh-clients-slider .swiper-slide {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 96px !important;
	background: var(--dof-bg);
	padding: 0 24px;
	transition: background 220ms var(--dof-ease-out);
}
.dh-clients-slider .wd-gallery-item:hover,
.dh-clients-slider .swiper-slide:hover {
	background: var(--dof-bg-2);
}
.dh-clients-slider .wd-gallery-item img,
.dh-clients-slider .swiper-slide img {
	max-height: 40px !important;
	max-width: 100% !important;
	width: auto !important;
	height: auto !important;
	object-fit: contain !important;
	display: block;
}
/* Hide pagination dots inside this slider */
.dh-clients-slider .wd-nav-pagin-wrap { display: none !important; }
/* Hide Woodmart's default arrow buttons too — autoplay only */
/* clients slider arrows visible (v0.13.3) */

@media (max-width: 1023px) {
	.dh-clients-slider .wd-gallery-item,
	.dh-clients-slider .swiper-slide { height: 80px !important; padding: 0 16px; }
}

/* v0.13.1 — Why-grid borders + carousel arrows hover-only */

/* Why-grid: per-cell borders (replaces gap-background trick to avoid top stripe) */
.dh-why-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 0 !important;
	background: transparent !important;
	border: 1px solid var(--dof-line) !important;
	margin-top: 26px;
}
.dh-wi {
	border-right: 1px solid var(--dof-line);
	border-bottom: 1px solid var(--dof-line);
	background: var(--dof-bg);
}
.dh-wi:nth-child(3n) { border-right: none; }
.dh-wi:nth-last-child(-n+3) { border-bottom: 1px solid var(--dof-line); }
@media (max-width: 1023px) {
	.dh-why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.dh-wi { border-right: 1px solid var(--dof-line); border-bottom: 1px solid var(--dof-line); }
	.dh-wi:nth-child(3n) { border-right: 1px solid var(--dof-line); }
	.dh-wi:nth-child(2n) { border-right: none; }
	.dh-wi:nth-last-child(-n+3) { border-bottom: 1px solid var(--dof-line); }
	.dh-wi:nth-last-child(-n+2) { border-bottom: none; }
}
@media (max-width: 640px) {
	.dh-why-grid { grid-template-columns: 1fr !important; }
	.dh-wi, .dh-wi:nth-child(3n), .dh-wi:nth-child(2n) { border-right: none; border-bottom: 1px solid var(--dof-line); }
	.dh-wi:last-child { border-bottom: none; }
}

/* Bottom border on Why section */
.dh-why { border-bottom: 1px solid var(--dof-line); }

/* ══════════════════════════════════════════════════════════════════
   CONTENT PAGES (v0.14.5 — clean full-width rewrite)
   Replaces all prior v0.14.x blocks. Single source of truth.
   ══════════════════════════════════════════════════════════════════ */

/* ── Page hero ─────────────────────────────────────────────────────── */
.dh-page-hero {
	width: 100%;
	background: var(--dof-bg-2);
	border-bottom: 1px solid var(--dof-line);
	padding: clamp(72px, 8vw, 140px) var(--dof-site-pad) clamp(48px, 5vw, 80px);
}
.dh-page-hero__eye {
	display: block;
	margin: 0 0 16px;
}
.dh-page-hero__h1 {
	font-family: var(--dof-font-sans);
	font-size: clamp(36px, 5vw, 76px);
	font-weight: 300;
	letter-spacing: -0.03em;
	line-height: 1.04;
	color: var(--dof-ink);
	margin: 0;
	max-width: 22ch;
	text-wrap: balance;
}
.dh-page-hero__sub {
	font-size: clamp(15px, 1.1vw, 18px);
	color: var(--dof-ink-2);
	line-height: 1.65;
	max-width: 60ch;
	margin: 18px 0 0;
}

/* ── Prose container — full-width, padded ──────────────────────────── */
.dh-prose-wrap {
	width: 100%;
	padding: 0;
	margin: clamp(48px, 6vw, 88px) 0;
}
.dh-prose {
	width: 100%;
	padding: 0 var(--dof-site-pad);
	font-family: var(--dof-font-sans);
	color: var(--dof-ink-2);
	font-size: 16px;
	line-height: 1.75;
}

/* TOC two-column on wide screens (only when body has dh-has-toc) */
@media (min-width: 1280px) {
	body.dh-has-toc .dh-prose-wrap {
		display: grid;
		grid-template-columns: 240px minmax(0, 1fr);
		gap: clamp(40px, 4vw, 80px);
		padding: 0 var(--dof-site-pad);
	}
	body.dh-has-toc .dh-prose-wrap > .dh-prose {
		padding: 0;
	}
}

/* ── Prose typography (text blocks have reading-width cap) ─────────── */
.dh-prose > h2,
.dh-prose > h3,
.dh-prose > p,
.dh-prose > ul,
.dh-prose > ol,
.dh-prose > blockquote,
.dh-prose > pre,
.dh-prose > hr,
.dh-prose > figure {
	max-width: 880px;
	margin-left: 0;
	margin-right: 0;
}

.dh-prose h2 {
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.2;
	color: var(--dof-ink);
	margin-top: 56px;
	margin-bottom: 18px;
	scroll-margin-top: 100px;
}
.dh-prose h3 {
	font-size: clamp(20px, 2vw, 26px);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.3;
	color: var(--dof-ink);
	margin-top: 36px;
	margin-bottom: 14px;
	scroll-margin-top: 100px;
}
.dh-prose h2:first-child,
.dh-prose h3:first-child {
	margin-top: 0;
}
.dh-prose p {
	margin: 0 0 18px;
}
.dh-prose strong { color: var(--dof-ink); font-weight: 600; }

.dh-prose ul, .dh-prose ol { list-style: none; padding: 0; margin: 0 0 24px; }
.dh-prose li { position: relative; padding-left: 24px; margin-bottom: 10px; line-height: 1.7; }
.dh-prose ul li::before { content: '─'; position: absolute; left: 0; top: 0; color: var(--dof-accent); font-weight: 600; }
.dh-prose ol { counter-reset: list-counter; }
.dh-prose ol li { counter-increment: list-counter; }
.dh-prose ol li::before { content: counter(list-counter) '.'; position: absolute; left: 0; top: 0; color: var(--dof-accent); font-weight: 600; font-variant-numeric: tabular-nums; }

.dh-prose a {
	color: var(--dof-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--dof-line);
	transition: border-color var(--dof-dur-hover) var(--dof-ease-out), color var(--dof-dur-hover) var(--dof-ease-out);
}
.dh-prose a:hover { color: var(--dof-accent); border-color: var(--dof-accent); }
.dh-prose a:focus-visible { color: var(--dof-accent); border-color: var(--dof-accent); outline: 2px solid var(--dof-accent); outline-offset: 2px; border-radius: 1px; }

.dh-prose blockquote { border-left: 3px solid var(--dof-accent); padding: 4px 0 4px 24px; margin: 28px 0; font-size: 17px; }
.dh-prose code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.92em; background: var(--dof-bg-2); padding: 2px 6px; border-radius: 2px; color: var(--dof-ink); }
.dh-prose pre { display: block; padding: 16px 20px; background: var(--dof-bg-2); border-left: 3px solid var(--dof-line); margin: 24px 0; overflow-x: auto; font-size: 13px; }
.dh-prose pre code { background: transparent; padding: 0; }
.dh-prose hr { border: 0; height: 1px; background: var(--dof-line); margin: 40px 0; }
.dh-prose img { max-width: 100%; height: auto; margin: 24px 0; display: block; }

/* ── Stats grid (Про нас) — full-bleed via negative margin ─────────── */
.dh-prose .dh-stats {
	list-style: none !important;
	padding: 0;
	margin: clamp(40px, 5vw, 64px) calc(-1 * var(--dof-site-pad));
	max-width: none;
	width: auto;
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 0;
	border-top: 1px solid var(--dof-line);
	border-bottom: 1px solid var(--dof-line);
	background: var(--dof-bg);
}
.dh-prose .dh-stats__item {
	padding: clamp(28px, 3vw, 48px) clamp(20px, 2vw, 32px);
	display: flex;
	flex-direction: column;
	gap: 6px;
	border-right: 1px solid var(--dof-line);
	transition: background var(--dof-dur-hover) var(--dof-ease-out);
	margin: 0;
	list-style: none;
}
.dh-prose .dh-stats__item::before { display: none; content: none; }
.dh-prose .dh-stats__item:last-child { border-right: none; }
.dh-prose .dh-stats__item:hover { background: var(--dof-bg-2); }
.dh-prose .dh-stats__num {
	font-size: clamp(36px, 4.5vw, 64px);
	font-weight: 300;
	letter-spacing: -0.03em;
	line-height: 1;
	color: var(--dof-ink);
	font-variant-numeric: tabular-nums;
}
.dh-prose .dh-stats__lbl {
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--dof-ink-3);
	line-height: 1.4;
}
@media (max-width: 1023px) {
	.dh-prose .dh-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.dh-prose .dh-stats__item:nth-child(3n) { border-right: none; }
	.dh-prose .dh-stats__item:nth-child(n+4) { border-top: 1px solid var(--dof-line); }
}
@media (max-width: 640px) {
	.dh-prose .dh-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dh-prose .dh-stats__item { border-right: 1px solid var(--dof-line); }
	.dh-prose .dh-stats__item:nth-child(2n) { border-right: none; }
	.dh-prose .dh-stats__item:nth-child(n+3) { border-top: 1px solid var(--dof-line); }
}

/* ── TOC sidebar ───────────────────────────────────────────────────── */
.dh-toc { display: none; }
@media (min-width: 1280px) {
	body.dh-has-toc .dh-toc {
		display: block;
		position: sticky;
		top: 100px;
		font-size: 13px;
		align-self: start;
	}
	.dh-toc__title { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--dof-ink-3); font-weight: 500; margin: 0 0 14px; }
	.dh-toc__list { list-style: none; padding: 0; margin: 0; }
	.dh-toc__item { margin-bottom: 8px; }
	.dh-toc__link {
		display: block;
		color: var(--dof-ink-2);
		text-decoration: none;
		padding: 6px 0 6px 16px;
		border-left: 1px solid var(--dof-line);
		font-size: 13px;
		line-height: 1.4;
		transition: color var(--dof-dur-hover) var(--dof-ease-out), border-color var(--dof-dur-hover) var(--dof-ease-out);
	}
	.dh-toc__link:hover { color: var(--dof-ink); border-color: var(--dof-ink-3); }
	.dh-toc__link.is-active { color: var(--dof-ink); border-color: var(--dof-accent); font-weight: 500; }
	.dh-toc__link:focus-visible { color: var(--dof-ink); border-color: var(--dof-accent); outline: 2px solid var(--dof-accent); outline-offset: -2px; }
	.dh-toc__item--h3 .dh-toc__link { padding-left: 32px; font-size: 12px; }
}

/* ── CTA row ───────────────────────────────────────────────────────── */
.dh-cta-row {
	width: 100%;
	background: var(--dof-ink);
	color: var(--dof-on-dark);
	padding: clamp(48px, 6vw, 80px) var(--dof-site-pad);
	text-align: center;
}
.dh-cta-row__title {
	font-family: var(--dof-font-sans);
	font-size: clamp(24px, 3vw, 40px);
	font-weight: 300;
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--dof-on-dark);
	margin: 0 auto 14px;
	max-width: 22ch;
}
.dh-cta-row__sub { font-size: 16px; color: rgba(255,255,255,0.7); margin: 0 auto 32px; }
.dh-cta-row__links { display: flex; gap: 24px; justify-content: center; flex-wrap: wrap; }
.dh-cta-row__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--dof-on-dark);
	text-decoration: none;
	font-size: 14px;
	padding: 14px 28px;
	border: 1px solid rgba(255,255,255,0.3);
	border-radius: 2px;
	transition: background var(--dof-dur-hover) var(--dof-ease-out), border-color var(--dof-dur-hover) var(--dof-ease-out);
}
.dh-cta-row__link:hover { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.6); }
.dh-cta-row__link:focus-visible { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.6); outline: 2px solid var(--dof-bg-2); outline-offset: 2px; }
.dh-cta-row__link svg { width: 16px; height: 16px; opacity: 0.7; }
@media (max-width: 1023px) { .dh-cta-row__links { gap: 12px; } }

/* ── Contacts grid ─────────────────────────────────────────────────── */
.dh-contacts-grid {
	width: 100%;
	display: grid;
	grid-template-columns: 1fr 1fr;
	margin-top: clamp(56px, 7vw, 96px);
	border-top: 1px solid var(--dof-line);
	border-bottom: 1px solid var(--dof-line);
}
.dh-contacts-info {
	padding: clamp(48px, 6vw, 88px) clamp(24px, 4vw, 64px) clamp(48px, 6vw, 88px) var(--dof-site-pad);
	border-right: 1px solid var(--dof-line);
	background: var(--dof-bg);
}
.dh-contacts-form {
	padding: clamp(48px, 6vw, 88px) var(--dof-site-pad) clamp(48px, 6vw, 88px) clamp(24px, 4vw, 64px);
	background: var(--dof-bg-2);
}
.dh-contacts-info__row {
	padding: 18px 0;
	border-bottom: 1px solid var(--dof-line);
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.dh-contacts-info__row:last-child { border-bottom: 0; }
.dh-contacts-info__label { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--dof-ink-3); font-weight: 500; }
.dh-contacts-info__value { font-size: clamp(16px, 1.2vw, 20px); color: var(--dof-ink); font-weight: 500; letter-spacing: -0.01em; line-height: 1.4; }
.dh-contacts-info__value a { color: inherit; text-decoration: none; transition: color var(--dof-dur-hover) var(--dof-ease-out); }
.dh-contacts-info__value a:hover { color: var(--dof-accent); }
.dh-contacts-info__value a:focus-visible { color: var(--dof-accent); outline: 2px solid var(--dof-accent); outline-offset: 2px; }

/* Contacts form — white inputs, no border noise */
.dh-contacts-form .dh-fbox { background: transparent; padding: 0; border: 0; }
.dh-contacts-form .dh-frow { border: 0; padding: 0; margin-bottom: 18px; }
.dh-contacts-form .dh-flbl {
	display: block;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--dof-ink-3);
	margin-bottom: 8px;
}
.dh-contacts-form .dh-finp,
.dh-contacts-form .dh-fsel,
.dh-contacts-form .dh-ftxt {
	background: var(--dof-bg-2);
	border: 1px solid var(--dof-line);
	border-radius: 2px;
	padding: 14px 16px;
	font-size: 15px;
	color: var(--dof-ink);
	width: 100%;
	transition: border-color var(--dof-dur-hover) var(--dof-ease-out);
}
.dh-contacts-form .dh-finp:focus,
.dh-contacts-form .dh-fsel:focus,
.dh-contacts-form .dh-ftxt:focus { border-color: var(--dof-ink); outline: 0; }
.dh-contacts-form .dh-ftxt { min-height: 140px; resize: vertical; }
.dh-contacts-form .dh-fsub {
	width: 100%;
	background: var(--dof-accent);
	color: var(--dof-ink);
	border: 0;
	padding: 18px 28px;
	font-size: 13px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-weight: 600;
	margin-top: 8px;
	cursor: pointer;
	transition: background var(--dof-dur-hover) var(--dof-ease-out);
}
.dh-contacts-form .dh-fsub:hover { background: var(--dof-adk); }
.dh-contacts-form .dh-fnote { font-size: 12px; color: var(--dof-ink-3); text-align: center; margin-top: 12px; }

@media (max-width: 1023px) {
	.dh-contacts-grid { grid-template-columns: 1fr; }
	.dh-contacts-info { border-right: 0; border-bottom: 1px solid var(--dof-line); }
}

/* ── Map ───────────────────────────────────────────────────────────── */
.dh-map-wrap {
	width: 100%;
	height: clamp(360px, 50vw, 540px);
	border-bottom: 1px solid var(--dof-line);
}
.dh-map-wrap iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	filter: grayscale(0.6) contrast(0.95);
	transition: filter var(--dof-dur) var(--dof-ease-out);
}
.dh-map-wrap:hover iframe { filter: none; }

/* ── Mobile breakpoint ─────────────────────────────────────────────── */
@media (max-width: 640px) {
	.dh-page-hero__h1 { font-size: clamp(32px, 9vw, 48px); }
	.dh-prose h2 { margin-top: 40px; }
}

/* v0.14.6 — escape Woodmart's 12-column grid parent */
.wd-content-layout > .dh-page-content-main,
.wd-content-layout.content-layout-wrapper > .dh-page-content-main {
	grid-column: 1 / -1 !important;
	width: 100%;
	max-width: none;
}

/* v0.14.7 — 3 fixes: light CTA-row bg, larger gap, centered prose */

/* 1. Center prose text blocks horizontally */
.dh-prose > h2,
.dh-prose > h3,
.dh-prose > p,
.dh-prose > ul,
.dh-prose > ol,
.dh-prose > blockquote,
.dh-prose > pre,
.dh-prose > hr,
.dh-prose > figure {
	margin-left: auto !important;
	margin-right: auto !important;
}

/* 2. Larger gap between prose end and CTA-row (textual pages only — contacts has no CTA) */
.dh-prose-wrap {
	margin-bottom: clamp(80px, 9vw, 140px) !important;
}

/* 3. CTA-row light theme */
.dh-cta-row {
	background: rgb(239, 235, 229) !important;
	color: var(--dof-ink);
}
.dh-cta-row__title {
	color: var(--dof-ink) !important;
}
.dh-cta-row__sub {
	color: var(--dof-ink-2) !important;
}
.dh-cta-row__link {
	color: var(--dof-ink) !important;
	border: 1px solid var(--dof-line) !important;
	background: var(--dof-bg-2) !important;
}
.dh-cta-row__link:hover {
	background: var(--dof-ink) !important;
	color: var(--dof-on-dark) !important;
	border-color: var(--dof-ink) !important;
}
.dh-cta-row__link:focus-visible {
	background: var(--dof-ink) !important;
	color: var(--dof-on-dark) !important;
	border-color: var(--dof-ink) !important;
	outline: 2px solid var(--dof-accent);
	outline-offset: 2px;
}
.dh-cta-row__link svg {
	opacity: 1;
	color: inherit;
}

/* v0.14.8 — fixes per user feedback */

/* 1. Apply 2-column grid ONLY when TOC actually rendered (not just body class).
   Falls back to full-width single column if JS hasn't generated TOC. */
body.dh-has-toc .dh-prose-wrap {
	display: block !important;
	grid-template-columns: none !important;
}
@media (min-width: 1280px) {
	body.dh-has-toc .dh-prose-wrap:has(> .dh-toc) {
		display: grid !important;
		grid-template-columns: 240px minmax(0, 1fr) !important;
		gap: clamp(40px, 4vw, 80px);
	}
}

/* 2. Hide first heading inside prose (it duplicates page title). */
body.dh-page-content .dh-prose > h1:first-child,
body.dh-page-content .dh-prose > h2:first-child,
body.dh-page-content .dh-prose > h3:first-child,
body.dh-page-content .dh-prose > h4:first-child,
body.dh-page-content .dh-prose > h5:first-child,
body.dh-page-content .dh-prose > h6:first-child {
	display: none !important;
}

/* 3. CTA-row buttons: black bg + white text, hover → accent green. */
.dh-cta-row__link {
	background: var(--dof-ink) !important;
	color: var(--dof-on-dark) !important;
	border: 1px solid var(--dof-ink) !important;
}
.dh-cta-row__link:hover {
	background: rgb(45, 105, 79) !important;
	border-color: rgb(45, 105, 79) !important;
	color: var(--dof-on-dark) !important;
}
.dh-cta-row__link:focus-visible {
	background: rgb(45, 105, 79) !important;
	border-color: rgb(45, 105, 79) !important;
	color: var(--dof-on-dark) !important;
	outline: 2px solid var(--dof-accent);
	outline-offset: 2px;
}

/* 4. All clickable links in prose: black, hover → accent green */
.dh-prose a {
	color: var(--dof-ink) !important;
	border-bottom: 1px solid var(--dof-line) !important;
}
.dh-prose a:hover {
	color: rgb(45, 105, 79) !important;
	border-bottom-color: rgb(45, 105, 79) !important;
}
.dh-prose a:focus-visible {
	color: rgb(45, 105, 79) !important;
	border-bottom-color: rgb(45, 105, 79) !important;
}
/* Override styled spans inside content links (Elementor leftovers with inline color: #f1c21b etc) */
.dh-prose a span,
.dh-prose a strong,
.dh-prose a strong span {
	color: inherit !important;
}

/* v0.14.9 — drop TOC sidebar entirely, keep headings inline in prose */
.dh-toc { display: none !important; }
body.dh-has-toc .dh-prose-wrap,
body.dh-has-toc .dh-prose-wrap:has(> .dh-toc) {
	display: block !important;
	grid-template-columns: none !important;
	gap: 0 !important;
}

/* Make prose headings (other than the first hidden duplicate) actually visible */
body.dh-page-content .dh-prose > h2,
body.dh-page-content .dh-prose > h3,
body.dh-page-content .dh-prose > h4 {
	display: block !important;
}
body.dh-page-content .dh-prose > h1:first-child,
body.dh-page-content .dh-prose > h2:first-child,
body.dh-page-content .dh-prose > h3:first-child,
body.dh-page-content .dh-prose > h4:first-child,
body.dh-page-content .dh-prose > h5:first-child,
body.dh-page-content .dh-prose > h6:first-child {
	display: none !important;
}

/* v0.14.10 — restore TOC sidebar (was wrongly removed in v0.14.9) */
.dh-toc { display: revert !important; }
@media (min-width: 1280px) {
	body.dh-has-toc .dh-prose-wrap:has(> .dh-toc) {
		display: grid !important;
		grid-template-columns: 240px minmax(0, 1fr) !important;
		gap: clamp(40px, 4vw, 80px) !important;
	}
	body.dh-has-toc .dh-toc {
		display: block !important;
		position: sticky;
		top: 100px;
		font-size: 13px;
		align-self: start;
	}
}
@media (max-width: 1279px) {
	body.dh-has-toc .dh-toc { display: none !important; }
}

/* v0.14.11 — center ALL heading levels in prose (h4/h5/h6/h1 were missing) */
.dh-prose > h1,
.dh-prose > h4,
.dh-prose > h5,
.dh-prose > h6 {
	max-width: 880px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Ensure h4/h5/h6 typography matches h3 if used as inline section labels */
.dh-prose > h4 {
	font-size: clamp(18px, 1.6vw, 22px);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.3;
	color: var(--dof-ink);
	margin-top: 36px;
	margin-bottom: 14px;
	scroll-margin-top: 100px;
}
.dh-prose > h5 {
	font-size: clamp(15px, 1.2vw, 18px);
	font-weight: 600;
	color: var(--dof-ink);
	margin-top: 28px;
	margin-bottom: 12px;
}
.dh-prose > h6 {
	font-size: 13px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--dof-ink-3);
	font-weight: 500;
	margin-top: 28px;
	margin-bottom: 10px;
}

/* ══════════════════════════════════════════════════════════════════
   v0.14.12 — Unified button system (light + dark themes)
   Ph14 DEV-16 (14-09): this pass's shared-base radius (0 !important) is one of three prior
   consolidation attempts that never included border-radius in a converged value (RESEARCH
   Pitfall 5) -- aligned onto --ml-btn-radius (14-03) so it agrees with the canonical contract
   instead of fighting it. Color/hover semantics of this pass are untouched.
   ══════════════════════════════════════════════════════════════════ */

/* Shared base for all unified buttons */
.dof-heroV3__btn,
.dh-btn-p,
.dh-btn-g,
.dh-fsub,
.dof-footer__cta,
.dh-cta-row__link {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;
	padding: 16px 28px !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	font-family: var(--dof-font-sans) !important;
	border-radius: var(--ml-btn-radius, 2px) !important;
	cursor: pointer !important;
	text-decoration: none !important;
	line-height: 1.2 !important;
	transition: background var(--dof-dur-hover) var(--dof-ease-out),
	            color var(--dof-dur-hover) var(--dof-ease-out),
	            border-color var(--dof-dur-hover) var(--dof-ease-out) !important;
}

/* ── LIGHT BG: primary (filled black) ─────────────────────────────── */
.dof-heroV3__btn--primary,
.dh-btn-p,
.dh-fsub {
	background: var(--dof-ink) !important;
	color: var(--dof-on-dark) !important;
	border: 1px solid var(--dof-ink) !important;
}
.dof-heroV3__btn--primary:hover,
.dh-btn-p:hover,
.dh-fsub:hover,
.dof-heroV3__btn--primary:focus-visible,
.dh-btn-p:focus-visible,
.dh-fsub:focus-visible {
	background: var(--dof-accent) !important;
	border-color: var(--dof-accent) !important;
	color: var(--dof-ink) !important;
}

/* ── LIGHT BG: ghost (outline) ────────────────────────────────────── */
.dof-heroV3__btn--ghost,
.dh-btn-g {
	background: transparent !important;
	color: var(--dof-ink) !important;
	border: 1px solid var(--dof-line) !important;
}
.dof-heroV3__btn--ghost:hover,
.dh-btn-g:hover,
.dof-heroV3__btn--ghost:focus-visible,
.dh-btn-g:focus-visible {
	background: var(--dof-ink) !important;
	border-color: var(--dof-ink) !important;
	color: var(--dof-on-dark) !important;
}

/* ── DARK BG: primary (filled white) ──────────────────────────────── */
.dof-footer__cta {
	background: var(--dof-bg-2) !important;
	color: var(--dof-ink) !important;
	border: 1px solid var(--dof-bg-2) !important;
}
.dof-footer__cta:hover,
.dof-footer__cta:focus-visible {
	background: var(--dof-accent) !important;
	border-color: var(--dof-accent) !important;
	color: var(--dof-ink) !important;
}

/* ── LIGHT BG (CTA-row was changed to light in v0.14.7): ghost ────── */
.dh-cta-row__link {
	background: transparent !important;
	color: var(--dof-ink) !important;
	border: 1px solid var(--dof-line) !important;
}
.dh-cta-row__link:hover,
.dh-cta-row__link:focus-visible {
	background: var(--dof-ink) !important;
	border-color: var(--dof-ink) !important;
	color: var(--dof-on-dark) !important;
}
.dh-cta-row__link svg {
	width: 16px !important;
	height: 16px !important;
	opacity: 1 !important;
}

/* ── Hero CTA bar bg ensure light context ─────────────────────────── */
.dof-heroV3__btn svg path,
.dh-btn-p svg path,
.dh-btn-g svg path {
	stroke: currentColor !important;
}

/* Form submit full-width even though base is inline-flex */
.dh-fsub {
	width: 100% !important;
}

/* Active press feedback for all unified buttons */
.dof-heroV3__btn:active,
.dh-btn-p:active,
.dh-btn-g:active,
.dh-fsub:active,
.dof-footer__cta:active,
.dh-cta-row__link:active {
	transform: scale(0.98);
	transition: transform 100ms !important;
}

/* v0.14.13 — Unified product-card buttons (catalog "ПЕРЕГЛЯНУТИ" / "Додати в кошик") */
.dh-cat-wrap .wd-buttons .add_to_cart_button,
.dh-cat-wrap .wd-buttons .product_type_simple,
.dh-cat-wrap .wd-buttons .product_type_variable,
.dh-cat-wrap .wd-buttons .product_type_grouped,
.dh-cat-wrap .wd-buttons a.button,
.dh-cat-wrap .wd-buttons .button.wp-element-button,
.dh-cat-wrap .wd-buy-now-btn,
.dh-cat-wrap .wd-buttons .added_to_cart {
	background: var(--dof-ink) !important;
	color: var(--dof-on-dark) !important;
	border: 1px solid var(--dof-ink) !important;
	border-radius: 0 !important;
	padding: 14px 22px !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	font-family: var(--dof-font-sans) !important;
	line-height: 1.2 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	min-height: 0 !important;
	width: auto !important;
	cursor: pointer !important;
	transition: background var(--dof-dur-hover) var(--dof-ease-out),
	            border-color var(--dof-dur-hover) var(--dof-ease-out),
	            color var(--dof-dur-hover) var(--dof-ease-out) !important;
}
.dh-cat-wrap .wd-buttons .add_to_cart_button:hover,
.dh-cat-wrap .wd-buttons .product_type_variable:hover,
.dh-cat-wrap .wd-buttons .product_type_simple:hover,
.dh-cat-wrap .wd-buttons a.button:hover,
.dh-cat-wrap .wd-buttons .button.wp-element-button:hover,
.dh-cat-wrap .wd-buy-now-btn:hover {
	background: var(--dof-accent) !important;
	border-color: var(--dof-accent) !important;
	color: var(--dof-ink) !important;
}
.dh-cat-wrap .wd-buttons .add_to_cart_button:active,
.dh-cat-wrap .wd-buttons .product_type_variable:active,
.dh-cat-wrap .wd-buttons .product_type_simple:active {
	transform: scale(0.98);
	transition: transform 100ms !important;
}

/* v0.14.14 — Direct override for product card buttons (no .wd-buttons middle wrapper) */
.dh-cat-wrap .add_to_cart_button,
.dh-cat-wrap .product_type_simple,
.dh-cat-wrap .product_type_variable,
.dh-cat-wrap .product_type_grouped,
.dh-cat-wrap a.button,
.dh-cat-wrap .button.wp-element-button,
.dh-cat-wrap .add-to-cart-loop,
.dh-cat-wrap .wd-buy-now-btn {
	background: var(--dof-ink) !important;
	color: var(--dof-on-dark) !important;
	border: 1px solid var(--dof-ink) !important;
	border-radius: 0 !important;
	padding: 14px 22px !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	font-family: var(--dof-font-sans) !important;
	line-height: 1.2 !important;
	min-height: 0 !important;
	text-decoration: none !important;
	transition: background var(--dof-dur-hover) var(--dof-ease-out),
	            border-color var(--dof-dur-hover) var(--dof-ease-out),
	            color var(--dof-dur-hover) var(--dof-ease-out) !important;
}
.dh-cat-wrap .add_to_cart_button:hover,
.dh-cat-wrap .product_type_simple:hover,
.dh-cat-wrap .product_type_variable:hover,
.dh-cat-wrap .product_type_grouped:hover,
.dh-cat-wrap a.button:hover,
.dh-cat-wrap .button.wp-element-button:hover,
.dh-cat-wrap .add-to-cart-loop:hover,
.dh-cat-wrap .wd-buy-now-btn:hover {
	background: var(--dof-accent) !important;
	border-color: var(--dof-accent) !important;
	color: var(--dof-ink) !important;
}
.dh-cat-wrap .add_to_cart_button:active,
.dh-cat-wrap .product_type_variable:active,
.dh-cat-wrap a.button:active {
	transform: scale(0.98) !important;
	transition: transform 100ms !important;
}

/* v0.14.15 — Product card buttons via .dh-cat ancestor (corrected) */
.dh-cat .add_to_cart_button,
.dh-cat .product_type_simple,
.dh-cat .product_type_variable,
.dh-cat .product_type_grouped,
.dh-cat a.button,
.dh-cat .button.wp-element-button,
.dh-cat .add-to-cart-loop,
.dh-cat .wd-buy-now-btn {
	background: var(--dof-ink) !important;
	color: var(--dof-on-dark) !important;
	border: 1px solid var(--dof-ink) !important;
	border-radius: 0 !important;
	padding: 14px 22px !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	font-family: var(--dof-font-sans) !important;
	line-height: 1.2 !important;
	min-height: 0 !important;
	text-decoration: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: auto !important;
	transition: background var(--dof-dur-hover) var(--dof-ease-out),
	            border-color var(--dof-dur-hover) var(--dof-ease-out),
	            color var(--dof-dur-hover) var(--dof-ease-out) !important;
}
.dh-cat .add_to_cart_button:hover,
.dh-cat .product_type_simple:hover,
.dh-cat .product_type_variable:hover,
.dh-cat .product_type_grouped:hover,
.dh-cat a.button:hover,
.dh-cat .button.wp-element-button:hover,
.dh-cat .add-to-cart-loop:hover,
.dh-cat .wd-buy-now-btn:hover {
	background: var(--dof-accent) !important;
	border-color: var(--dof-accent) !important;
	color: var(--dof-ink) !important;
}


/* v0.14.16 — hide stray Woodmart sticky sidebar-opener (.wd-sidebar-opener)
   on all custom child-theme pages. WC integration injects a fixed left-edge
   burger that Theme Settings "Hidden sidebar" toggles don't cover for
   non-blog/non-shop layouts. Hide it everywhere except shop archives where
   the filter sidebar is meaningful. */
body:not(.archive):not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_tag) .wd-sidebar-opener,
body.page-template .wd-sidebar-opener,
body.dh-page-content .wd-sidebar-opener,
body.home .wd-sidebar-opener {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
}


/* v0.14.17 — header tools: white burger icon + white account text (main + sticky clone).
   Header .whb-row has black background; default Woodmart inherits 51,51,51 in sticky clone
   which leaves the account label and mobile burger looking gray. Force white. */
.whb-header .wd-header-mobile-nav .wd-tools-icon::before,
.whb-header .wd-header-mobile-nav .wd-tools-text,
.whb-clone  .wd-header-mobile-nav .wd-tools-icon::before,
.whb-clone  .wd-header-mobile-nav .wd-tools-text,
.whb-header .wd-header-my-account .wd-tools-text,
.whb-header .wd-header-my-account a,
.whb-clone  .wd-header-my-account .wd-tools-text,
.whb-clone  .wd-header-my-account a {
	color: var(--dof-on-dark) !important;
}
.whb-header .wd-header-mobile-nav a:hover .wd-tools-icon::before,
.whb-header .wd-header-mobile-nav a:hover .wd-tools-text,
.whb-clone  .wd-header-mobile-nav a:hover .wd-tools-icon::before,
.whb-clone  .wd-header-mobile-nav a:hover .wd-tools-text,
.whb-header .wd-header-my-account a:hover,
.whb-clone  .wd-header-my-account a:hover {
	color: var(--dof-accent, #ffe786) !important;
}


/* v0.15.0 — A1 MOQ banner styles (cart + checkout). */
.dh-moq {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 18px;
	margin: 0 0 24px 0;
	font: 500 14px/1.45 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.01em;
	border: 1px solid;
	border-radius: 0;
}
.dh-moq__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex-shrink: 0;
}
.dh-moq--warn {
	background: var(--dof-bg-2);
	border-color: #f0c98a;
	color: #6b3d00;
}
.dh-moq--warn .dh-moq__dot { background: #d97706; }
.dh-moq--ok {
	background: var(--dof-accent-lt);
	border-color: var(--dof-accent);
	color: var(--dof-ink);
}
.dh-moq--ok .dh-moq__dot { background: var(--dof-accent, #ffe786); }
.dh-btn-disabled {
	opacity: 0.45 !important;
	pointer-events: none !important;
	cursor: not-allowed !important;
}


/* v0.15.1 — A3 Cart customization (counter + manager block + skin) */
.woocommerce-cart .woocommerce {
	max-width: 1200px;
	margin: 32px auto 64px;
	padding: 0 var(--dof-site-pad, clamp(24px, 4vw, 64px));
}
.woocommerce-cart .cart_totals,
.woocommerce-cart .cross-sells { margin-top: 0; }
.woocommerce-cart table.shop_table {
	border: 0;
	border-collapse: collapse;
}
.woocommerce-cart table.shop_table th {
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--dof-ink-2, #3d5b78);
	padding: 14px 12px;
	border-bottom: 1px solid var(--dof-line, #e8d9ab);
	background: transparent;
}
.woocommerce-cart table.shop_table td {
	padding: 18px 12px;
	border-bottom: 1px solid var(--dof-line, #e8d9ab);
	vertical-align: middle;
	font-size: 14px;
	color: var(--dof-ink, #12263b);
}
.woocommerce-cart table.shop_table .product-name a {
	color: var(--dof-ink, #12263b);
	font-weight: 500;
	border-bottom: 0;
}
.woocommerce-cart table.shop_table .product-name a:hover { color: var(--dof-accent, #ffe786); }
.woocommerce-cart .product-thumbnail img {
	border-radius: 0 !important;
}
.woocommerce-cart .product-quantity .quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--dof-line, #e8d9ab);
	border-radius: 0;
	overflow: hidden;
}
.woocommerce-cart .product-quantity .qty {
	width: 56px;
	border: 0;
	text-align: center;
	font-weight: 600;
}
.woocommerce-cart .product-subtotal {
	font-weight: 600;
	color: var(--dof-ink, #12263b);
}
.woocommerce-cart .product-remove a {
	color: var(--dof-ink-2, #3d5b78);
	font-size: 18px;
	line-height: 1;
	border: 0;
}
.woocommerce-cart .product-remove a:hover { color: #b00020; }
.dh-cart-counter {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 14px 12px 0;
	font-size: 12px;
	color: var(--dof-ink-2, #3d5b78);
	letter-spacing: 0.04em;
}
.dh-cart-counter__qty {
	font-weight: 600;
	color: var(--dof-ink, #12263b);
}
.dh-cart-counter__lines { color: var(--dof-ink-3, #5c7590); }

/* Cart totals (right-side panel) */
.woocommerce-cart .cart-collaterals {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}
.woocommerce-cart .cart_totals {
	background: var(--dof-bg-2);
	border: 1px solid var(--dof-line, #e8d9ab);
	padding: 24px;
	border-radius: 0;
}
.woocommerce-cart .cart_totals h2 {
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--dof-ink-2, #3d5b78);
	margin: 0 0 16px;
}
.woocommerce-cart .cart_totals table { border: 0; }
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
	padding: 10px 0;
	border: 0;
	border-bottom: 1px solid var(--dof-line, #e8d9ab);
	font-size: 13px;
}
.woocommerce-cart .cart_totals table th {
	font-weight: 500;
	color: var(--dof-ink-2, #3d5b78);
	background: transparent;
}
.woocommerce-cart .cart_totals .order-total td,
.woocommerce-cart .cart_totals .order-total th {
	font-size: 16px;
	font-weight: 700;
	color: var(--dof-ink, #12263b);
}
.woocommerce-cart .wc-proceed-to-checkout {
	padding-top: 18px;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	display: block;
	width: 100%;
	padding: 16px 28px;
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	background: var(--dof-ink, #12263b);
	color: var(--dof-on-dark);
	border: 1px solid var(--dof-ink, #12263b);
	border-radius: 0;
	transition: background .2s, color .2s;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover {
	background: var(--dof-accent, #ffe786);
	border-color: var(--dof-accent, #ffe786);
}

/* Manager block */
.dh-cart-manager {
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid var(--dof-line, #e8d9ab);
}
.dh-cart-manager__label {
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--dof-ink-3, #5c7590);
	margin: 0 0 12px;
}
.dh-cart-manager__row {
	display: flex;
	align-items: center;
	gap: 12px;
}
.dh-cart-manager__avatar {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--dof-bg-2, #fdf6e3);
	color: var(--dof-accent, #ffe786);
	display: flex;
	align-items: center;
	justify-content: center;
	font: 600 13px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.04em;
	flex-shrink: 0;
}
.dh-cart-manager__name {
	font-size: 14px;
	font-weight: 600;
	color: var(--dof-ink, #12263b);
	margin: 0 0 2px;
}
.dh-cart-manager__tg {
	font-size: 12px;
	color: var(--dof-accent, #ffe786) !important;
	border: 0 !important;
	letter-spacing: 0.02em;
}
.dh-cart-manager__tg:hover { color: var(--dof-ink, #12263b) !important; }

/* Coupon row */
.woocommerce-cart .coupon {
	display: flex;
	gap: 8px;
	margin: 18px 0 8px;
}
.woocommerce-cart .coupon input[name="coupon_code"] {
	flex: 1;
	padding: 10px 12px;
	border: 1px solid var(--dof-line, #e8d9ab);
	border-radius: 0;
	font-size: 13px;
}
.woocommerce-cart .coupon button[name="apply_coupon"] {
	padding: 10px 18px;
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	background: transparent;
	color: var(--dof-ink, #12263b);
	border: 1px solid var(--dof-line, #e8d9ab);
	border-radius: 0;
}
.woocommerce-cart .coupon button[name="apply_coupon"]:hover {
	background: var(--dof-ink, #12263b);
	color: var(--dof-on-dark);
	border-color: var(--dof-ink, #12263b);
}

/* Mobile */
@media (max-width: 767px) {
	.woocommerce-cart table.shop_table thead { display: none; }
	.woocommerce-cart table.shop_table tbody tr {
		display: grid;
		grid-template-columns: 80px 1fr auto;
		gap: 10px 14px;
		padding: 16px 0;
		border-bottom: 1px solid var(--dof-line, #e8d9ab);
	}
	.woocommerce-cart table.shop_table td {
		padding: 0;
		border: 0;
	}
	.woocommerce-cart table.shop_table td.product-thumbnail { grid-row: 1 / 4; }
	.woocommerce-cart table.shop_table td.product-name { grid-column: 2 / 4; }
}


/* v0.15.3 — A4 Checkout CSS skin (form, fields, payment, place-order). */
.woocommerce-checkout .woocommerce form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: 48px;
	align-items: start;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--dof-site-pad, clamp(24px, 4vw, 64px));
	box-sizing: border-box;
}
.woocommerce-checkout .woocommerce form.checkout > * {
	min-width: 0;
}
.woocommerce-checkout .woocommerce form.checkout > #customer_details,
.woocommerce-checkout .woocommerce form.checkout > .customer-details {
	grid-column: 1 !important;
	width: 100% !important;
	max-width: 100% !important;
	flex: none !important;
}
.woocommerce-checkout .woocommerce form.checkout > #order_review_heading {
	grid-column: 2 !important;
	width: 100% !important;
	max-width: 100% !important;
	flex: none !important;
}
.woocommerce-checkout .woocommerce form.checkout > #order_review,
.woocommerce-checkout .woocommerce form.checkout > .checkout-order-review {
	grid-column: 2 !important;
	width: 100% !important;
	max-width: 100% !important;
	flex: none !important;
}
.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review .shop_table,
.woocommerce-checkout #order_review .woocommerce-checkout-payment {
	width: 100% !important;
	max-width: none !important;
}
@media (max-width: 1023px) {
	.woocommerce-checkout .woocommerce form.checkout {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.woocommerce-checkout .woocommerce form.checkout > #customer_details,
	.woocommerce-checkout .woocommerce form.checkout > #order_review_heading,
	.woocommerce-checkout .woocommerce form.checkout > #order_review {
		grid-column: 1;
	}
}

/* Section headings */
.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading {
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--dof-ink-2, #3d5b78) !important;
	margin: 0 0 18px;
	padding: 0 0 12px;
	border-bottom: 1px solid var(--dof-line, #e8d9ab);
}

/* Form fields */
.woocommerce-checkout .form-row {
	margin-bottom: 16px;
}
.woocommerce-checkout .form-row label {
	font-size: 12px;
	font-weight: 500;
	color: var(--dof-ink-2, #3d5b78);
	margin-bottom: 6px;
	display: block;
}
.woocommerce-checkout .form-row .required {
	color: var(--dof-accent, #ffe786);
	text-decoration: none;
}
.woocommerce-checkout .form-row input[type="text"],
.woocommerce-checkout .form-row input[type="tel"],
.woocommerce-checkout .form-row input[type="email"],
.woocommerce-checkout .form-row input[type="password"],
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .select2-container--default .select2-selection--single {
	width: 100% !important;
	padding: 12px 14px;
	border: 1px solid var(--dof-line, #e8d9ab) !important;
	border-radius: 0 !important;
	font: 400 14px/1.4 var(--dof-font-body, Inter), system-ui, sans-serif !important;
	color: var(--dof-ink, #12263b) !important;
	background: var(--dof-bg-2) !important;
	outline: 0 !important;
	height: auto !important;
	transition: border-color .18s;
}
.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single {
	border-color: var(--dof-ink, #12263b) !important;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 1.4;
	color: var(--dof-ink, #12263b);
	padding: 0;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100%;
	top: 0;
}

/* Order review table */
.woocommerce-checkout #order_review {
	position: sticky;
	top: 24px;
}
.woocommerce-checkout table.shop_table {
	background: var(--dof-bg-2);
	border: 1px solid var(--dof-line, #e8d9ab);
	border-radius: 0;
}
.woocommerce-checkout table.shop_table thead th {
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 14px 16px;
	color: var(--dof-ink-2, #3d5b78);
	border-bottom: 1px solid var(--dof-line, #e8d9ab);
}
.woocommerce-checkout table.shop_table td,
.woocommerce-checkout table.shop_table tfoot th {
	padding: 12px 16px;
	font-size: 13px;
	color: var(--dof-ink, #12263b);
	border-top: 1px solid var(--dof-line, #e8d9ab);
}
.woocommerce-checkout table.shop_table .order-total td,
.woocommerce-checkout table.shop_table .order-total th {
	font-size: 16px;
	font-weight: 700;
}

/* Payment methods */
.woocommerce-checkout .wc_payment_methods {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
}
.woocommerce-checkout .wc_payment_method {
	background: var(--dof-bg-2) !important;
	border: 1px solid var(--dof-line, #e8d9ab);
	margin-bottom: 8px;
	padding: 12px 14px;
}
.woocommerce-checkout .wc_payment_method label {
	font-size: 14px;
	font-weight: 500;
	color: var(--dof-ink, #12263b);
	display: inline-flex;
	align-items: center;
	gap: 10px;
}
.woocommerce-checkout .wc_payment_method input[type="radio"] {
	accent-color: var(--dof-accent, #ffe786);
}
.woocommerce-checkout .payment_box {
	background: var(--dof-bg-2, #fdf6e3) !important;
	border-radius: 0 !important;
	padding: 14px 16px !important;
	font-size: 13px;
	line-height: 1.5;
	color: var(--dof-ink-2, #3d5b78);
	margin-top: 10px !important;
}
.woocommerce-checkout .payment_box::before {
	display: none !important;
}

/* Place order button */
.woocommerce-checkout #place_order {
	display: block;
	width: 100%;
	margin-top: 18px;
	padding: 18px 28px !important;
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase;
	background: var(--dof-ink, #12263b) !important;
	color: var(--dof-on-dark) !important;
	border: 1px solid var(--dof-ink, #12263b) !important;
	border-radius: 0 !important;
	height: auto !important;
	transition: background .2s, border-color .2s;
}
.woocommerce-checkout #place_order:hover {
	background: var(--dof-accent, #ffe786) !important;
	border-color: var(--dof-accent, #ffe786) !important;
}

/* Tos / terms */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	margin-top: 12px;
	font-size: 12px;
	color: var(--dof-ink-3, #5c7590);
}

/* Login prompt at top of checkout */
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle {
	background: var(--dof-bg-2, #fdf6e3);
	border: 0 !important;
	border-radius: 0;
	padding: 12px 16px;
	margin-bottom: 16px;
	font-size: 13px;
}
.woocommerce-checkout .woocommerce-form-login-toggle a,
.woocommerce-checkout .woocommerce-form-coupon-toggle a {
	color: var(--dof-accent, #ffe786) !important;
	border: 0 !important;
	font-weight: 500;
}


/* v0.15.7 — A6 Sample request flow (button + modal). */
.dh-sample-open {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 14px;
	padding: 14px 24px;
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--dof-accent, #ffe786);
	background: transparent;
	border: 1px solid var(--dof-accent, #ffe786);
	border-radius: 0;
	cursor: pointer;
	transition: background .2s, color .2s;
}
.dh-sample-open:hover {
	background: var(--dof-accent, #ffe786);
	color: var(--dof-ink, #12263b);
}

.dh-sample-modal[hidden] { display: none; }
.dh-sample-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.dh-sample-modal__backdrop {
	position: absolute;
	inset: 0;
	background: color-mix(in srgb, var(--dof-ink) 55%, transparent);
}
.dh-sample-modal__panel {
	position: relative;
	width: 100%;
	max-width: 520px;
	max-height: 90vh;
	overflow-y: auto;
	background: var(--dof-bg-2);
	padding: 36px 32px 28px;
	border-radius: 0;
	box-shadow: 0 30px 60px -15px rgba(0,0,0,.18);
}
.dh-sample-modal__close {
	position: absolute;
	top: 14px;
	right: 16px;
	background: transparent;
	border: 0;
	font-size: 26px;
	line-height: 1;
	color: var(--dof-ink-2, #3d5b78);
	cursor: pointer;
}
.dh-sample-modal__close:hover { color: var(--dof-ink, #12263b); }
.dh-sample-modal__eyebrow {
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--dof-accent, #ffe786);
	margin: 0 0 8px;
}
.dh-sample-modal__title {
	font: 500 26px/1.15 var(--dof-font-display, "Cabinet Grotesk"), Inter, system-ui, sans-serif;
	color: var(--dof-ink, #12263b);
	margin: 0 0 14px;
}
.dh-sample-modal__lead {
	font-size: 13px;
	line-height: 1.55;
	color: var(--dof-ink-2, #3d5b78);
	margin: 0 0 20px;
}

.dh-sample-form__row { display: block; margin-bottom: 14px; }
.dh-sample-form__lbl {
	display: block;
	font-size: 11px;
	letter-spacing: 0.04em;
	font-weight: 500;
	color: var(--dof-ink-2, #3d5b78);
	margin-bottom: 6px;
	text-transform: uppercase;
}
.dh-sample-form input[type="text"],
.dh-sample-form input[type="tel"],
.dh-sample-form select,
.dh-sample-form textarea {
	width: 100%;
	padding: 11px 12px;
	border: 1px solid var(--dof-line, #e8d9ab);
	border-radius: 0;
	font: 400 14px/1.4 var(--dof-font-body, Inter), system-ui, sans-serif;
	color: var(--dof-ink, #12263b);
	background: var(--dof-bg-2);
	outline: 0;
	transition: border-color .18s;
}
.dh-sample-form input:focus,
.dh-sample-form select:focus,
.dh-sample-form textarea:focus { border-color: var(--dof-ink, #12263b); }
.dh-sample-form__split { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dh-sample-form__submit {
	display: block;
	width: 100%;
	margin-top: 6px;
	padding: 14px 28px;
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	background: var(--dof-ink, #12263b);
	color: var(--dof-on-dark);
	border: 1px solid var(--dof-ink, #12263b);
	border-radius: 0;
	cursor: pointer;
	transition: background .2s;
}
.dh-sample-form__submit:hover { background: var(--dof-accent, #ffe786); border-color: var(--dof-accent, #ffe786); }
.dh-sample-form__msg {
	margin: 12px 0 0;
	font-size: 13px;
	min-height: 18px;
}
.dh-sample-form__msg.is-ok    { color: var(--dof-accent, #ffe786); }
.dh-sample-form__msg.is-error { color: #b00020; }


/* v0.15.8 — B1 Catalog (shop archive) skin under design system */

/* Top toolbar */
.woocommerce.archive .wd-shop-tools-element,
.woocommerce.archive .wd-shop-tools {
	font-size: 12px;
	letter-spacing: 0.04em;
	color: var(--dof-ink-2, #3d5b78);
}
.woocommerce.archive .woocommerce-result-count,
.woocommerce.archive .woocommerce-ordering select {
	font-size: 13px;
	color: var(--dof-ink, #12263b);
}

/* Sidebar typography */
.woocommerce.archive .sidebar-container .widget-title,
.woocommerce.archive .sidebar-container .wd-widget-title {
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	color: var(--dof-ink-2, #3d5b78) !important;
	margin: 0 0 14px !important;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--dof-line, #e8d9ab);
}
.woocommerce.archive .sidebar-container .widget {
	margin-bottom: 28px;
}
.woocommerce.archive .sidebar-container .widget li {
	font-size: 13px;
	color: var(--dof-ink, #12263b);
	padding: 6px 0;
}
.woocommerce.archive .sidebar-container .widget li a {
	color: var(--dof-ink, #12263b);
	border: 0;
}
.woocommerce.archive .sidebar-container .widget li a:hover {
	color: var(--dof-accent, #ffe786);
}
.woocommerce.archive .sidebar-container .widget .count {
	font-size: 11px;
	color: var(--dof-ink-3, #5c7590);
}

/* Product card */
.woocommerce.archive .wd-product .product-wrapper {
	border: 1px solid var(--dof-line, #e8d9ab);
	background: var(--dof-bg-2);
	padding: 0;
	transition: border-color .2s, transform .2s;
}
.woocommerce.archive .wd-product .product-wrapper:hover {
	border-color: var(--dof-ink, #12263b);
	transform: translateY(-3px);
}
.woocommerce.archive .wd-product .wd-product-thumb {
	background: var(--dof-bg-2, #fdf6e3);
	overflow: hidden;
}
.woocommerce.archive .wd-product .wd-product-thumb img {
	transition: transform .35s ease;
}
.woocommerce.archive .wd-product .product-wrapper:hover .wd-product-thumb img {
	transform: scale(1.05);
}
.woocommerce.archive .wd-product .product-element-bottom {
	padding: 16px 18px 18px;
}
.woocommerce.archive .wd-product .wd-entities-title,
.woocommerce.archive .wd-product .wd-entities-title a {
	font: 500 14px/1.35 var(--dof-font-body, Inter), system-ui, sans-serif !important;
	color: var(--dof-ink, #12263b) !important;
	letter-spacing: 0.01em;
}
.woocommerce.archive .wd-product .wd-entities-title a:hover {
	color: var(--wd-link-color-hover, #9d4a51) !important;
}
.woocommerce.archive .wd-product .price {
	font: 600 16px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
	color: var(--dof-ink, #12263b) !important;
	letter-spacing: 0.02em;
}
.woocommerce.archive .wd-product .price del {
	color: var(--dof-ink-3, #5c7590) !important;
	font-size: 13px;
	font-weight: 400;
	margin-right: 6px;
}
.woocommerce.archive .wd-product .price ins {
	background: transparent;
	text-decoration: none;
}
.merch-card-price del,
.single-product div.product .summary .price del {
	color: var(--wd-text-color, #62605d) !important;
	font-size: .78em;
	font-weight: 500;
	margin-right: 6px;
}
.merch-card-price ins,
.single-product div.product .summary .price ins {
	color: var(--wd-title-color, #12263b) !important;
	background: transparent;
	text-decoration: none;
}

/* Stock pill (✓ В наявності) */
.woocommerce.archive .wd-product .wd-product-stock {
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wd-text-color, #3d5b78);
	margin-bottom: 8px;
}

/* Buy / view button */
.woocommerce.archive .wd-product .wd-add-btn .button,
.woocommerce.archive .wd-product .add_to_cart_button,
.woocommerce.archive .wd-product .product_type_simple,
.woocommerce.archive .wd-product .product_type_variable,
.woocommerce.archive .wd-product .button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 12px 18px !important;
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase;
	background: var(--dof-ink, #12263b) !important;
	color: var(--dof-on-dark) !important;
	border: 1px solid var(--dof-ink, #12263b) !important;
	border-radius: 0 !important;
	transition: background .2s, border-color .2s;
}
.woocommerce.archive .wd-product .wd-add-btn .button:hover,
.woocommerce.archive .wd-product .add_to_cart_button:hover,
.woocommerce.archive .wd-product .product_type_simple:hover,
.woocommerce.archive .wd-product .product_type_variable:hover,
.woocommerce.archive .wd-product .button:hover {
	background: var(--dof-accent, #ffe786) !important;
	border-color: var(--dof-accent, #ffe786) !important;
	color: var(--wd-title-color, #12263b) !important;
}

/* Wishlist heart */
.woocommerce.archive .wd-product .wd-wishlist-btn a {
	color: var(--dof-ink-2, #3d5b78);
}
.woocommerce.archive .wd-product .wd-wishlist-btn a:hover,
.woocommerce.archive .wd-product .wd-wishlist-btn .added a {
	color: var(--dof-accent, #ffe786);
}

/* Sale / new badges */
.woocommerce.archive .wd-product .product-labels span {
	font: 600 10px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase;
	padding: 6px 10px !important;
	border-radius: 0 !important;
	background: var(--dof-ink, #12263b) !important;
	color: var(--dof-on-dark) !important;
}
.woocommerce.archive .wd-product .product-labels .onsale,
.woocommerce.archive .wd-product .product-labels .wd-onsale {
	background: var(--dof-accent, #ffe786) !important;
}

/* Range filter */
.woocommerce.archive .price_slider .ui-slider-range {
	background: var(--dof-accent, #ffe786) !important;
}
.woocommerce.archive .price_slider .ui-slider-handle {
	background: var(--dof-ink, #12263b) !important;
	border-radius: 50%;
	border: 0;
}
.woocommerce.archive .price_slider_amount .button {
	padding: 8px 14px !important;
	font-size: 11px !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase;
	background: var(--dof-ink, #12263b) !important;
	color: var(--dof-on-dark) !important;
	border-radius: 0 !important;
}

/* Pagination */
.woocommerce.archive .woocommerce-pagination ul.page-numbers li a,
.woocommerce.archive .woocommerce-pagination ul.page-numbers li span {
	border-radius: 0 !important;
	border: 1px solid var(--dof-line, #e8d9ab) !important;
	padding: 8px 14px !important;
	font-size: 13px !important;
	color: var(--dof-ink, #12263b) !important;
}
.woocommerce.archive .woocommerce-pagination ul.page-numbers li .current {
	background: var(--dof-ink, #12263b) !important;
	color: var(--dof-on-dark) !important;
	border-color: var(--dof-ink, #12263b) !important;
}


/* v0.15.10 — Round 1 fixes */

/* F-3: hide the legacy dh-moq banner on full cart (we rely on WC notice now). */
.woocommerce-cart .dh-moq { display: none !important; }

/* Mini-cart MOQ note (NEW for F-4) */
.dh-mini-moq {
	margin: 10px 0;
	padding: 10px 12px;
	font-size: 12px;
	line-height: 1.4;
	letter-spacing: 0.02em;
	border: 1px solid;
}
.dh-mini-moq--warn { background: var(--dof-bg-2); border-color: #f0c98a; color: #6b3d00; }
.dh-mini-moq--ok   { background: var(--dof-accent-lt); border-color: var(--dof-accent); color: var(--dof-ink); }

/* F-5: hide our duplicate × icon — keep the native Woodmart "Видалити" link/icon. */
.woocommerce-cart .product-remove a.remove + a.remove,
.woocommerce-cart .product-remove > .wc-block-cart-item__remove-link + a {
	display: none !important;
}
/* If both Woodmart and WC core render — Woodmart adds .wd-remove which can duplicate.
   Prefer WC core .remove and hide Woodmart wd-remove, or vice-versa. We pick WC core. */
.woocommerce-cart .product-remove .wd-product-remove {
	display: none !important;
}

/* F-8: remove our duplicate "Підсумки кошика" heading — WC default already renders.
   Our cart_totals h2 was being styled but Woodmart also emits one — this hides any extra. */
.woocommerce-cart .cart_totals > h2 + h2,
.woocommerce-cart .cart_totals h3 + h3 { display: none !important; }

/* F-12: make the cabinet sidebar header clickable + linkified visually */
.woocommerce-account .woocommerce-MyAccount-navigation .my-account-sidebar-title,
.woocommerce-account .woocommerce-MyAccount-navigation > h3 {
	cursor: pointer;
}
.woocommerce-account .woocommerce-MyAccount-navigation .my-account-sidebar-title:hover,
.woocommerce-account .woocommerce-MyAccount-navigation > h3:hover {
	color: var(--dof-accent, #ffe786) !important;
}

/* F-15: sample modal — bullet-proof stacking */
.dh-sample-modal {
	z-index: 2147483646 !important; /* near max int — beats Woodmart sticky 999 etc */
	isolation: isolate;
}

/* F-19: catalog page container width + vertical breathing */
.woocommerce.archive .wd-page-content,
.woocommerce.archive .main-page-wrapper {
	max-width: 1440px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: var(--dof-site-pad, clamp(24px, 4vw, 64px)) !important;
	padding-right: var(--dof-site-pad, clamp(24px, 4vw, 64px)) !important;
	box-sizing: border-box;
}
.woocommerce.archive .wd-content-area,
.woocommerce.archive main.wd-content-layout {
	padding-top: 32px !important;
	padding-bottom: 64px !important;
}
@media (max-width: 1023px) {
	.woocommerce.archive .wd-content-area,
	.woocommerce.archive main.wd-content-layout {
		padding-top: 20px !important;
		padding-bottom: 40px !important;
	}
}

/* Mobile checkout F-10 quick fix — let grid collapse properly + remove our forced max-width on form children */
@media (max-width: 1023px) {
	.woocommerce-checkout .woocommerce form.checkout {
		display: block !important;
		padding: 0 var(--dof-site-pad, 24px) !important;
	}
	.woocommerce-checkout .woocommerce form.checkout > #customer_details,
	.woocommerce-checkout .woocommerce form.checkout > #order_review_heading,
	.woocommerce-checkout .woocommerce form.checkout > #order_review {
		width: 100% !important;
		max-width: 100% !important;
		display: block !important;
		margin-bottom: 24px;
	}
	.woocommerce-checkout #order_review { position: static !important; }
	.woocommerce-checkout .col2-set { display: block !important; }
	.woocommerce-checkout .col2-set .col-1,
	.woocommerce-checkout .col2-set .col-2 {
		width: 100% !important;
		max-width: 100% !important;
		flex: none !important;
		margin-bottom: 16px;
	}
}


/* v0.15.11 — Round 2 fixes */

/* F-5 precise: keep only the FIRST remove element in product-remove cell. */
.woocommerce-cart .product-remove > a:not(:first-of-type),
.woocommerce-cart .product-remove .wd-remove-product,
.woocommerce-cart .product-remove .wd-remove,
.woocommerce-cart .product-remove .wd-product-remove {
	display: none !important;
}

/* F-6: visually hint that cart updates inline — Woodmart already has data-updating but our skin overrides the spinner.
   Re-enable a subtle "loading" visual on .quantity input via aria-busy. */
.woocommerce-cart .product-quantity .quantity[aria-busy="true"] .qty {
	opacity: .55;
}

/* F-13: distinct line-icon backgrounds per B2BKing tab (override Woodmart .wd-nav-icon ::before).
   Uses inline SVG data URLs — green stroke, 24x24, line-style consistent with rest. */
.woocommerce-account .wd-my-account-links li.wd-my-acc-b2bking_messages .wd-nav-icon::before,
.woocommerce-account .wd-my-account-links li.wd-my-acc-conversations .wd-nav-icon::before,
.woocommerce-account .wd-my-account-links li.b2bking_my_messages .wd-nav-icon::before {
	content: '';
	display: block;
	width: 28px; height: 28px;
	background: center/contain no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d6a4f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/></svg>");
}
.woocommerce-account .wd-my-account-links li.wd-my-acc-b2bking_offers .wd-nav-icon::before,
.woocommerce-account .wd-my-account-links li.b2bking_my_offers .wd-nav-icon::before {
	content: '';
	display: block;
	width: 28px; height: 28px;
	background: center/contain no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d6a4f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z'/><circle cx='7' cy='7' r='1.5'/></svg>");
}
.woocommerce-account .wd-my-account-links li.wd-my-acc-b2bking_purchase_lists .wd-nav-icon::before,
.woocommerce-account .wd-my-account-links li.b2bking_purchase_lists .wd-nav-icon::before {
	content: '';
	display: block;
	width: 28px; height: 28px;
	background: center/contain no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d6a4f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2'/><rect x='9' y='3' width='6' height='4' rx='1'/><path d='M9 12h6M9 16h4'/></svg>");
}
.woocommerce-account .wd-my-account-links li.wd-my-acc-b2bking_bulk_order .wd-nav-icon::before,
.woocommerce-account .wd-my-account-links li.b2bking_bulkorder .wd-nav-icon::before {
	content: '';
	display: block;
	width: 28px; height: 28px;
	background: center/contain no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d6a4f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='6' width='20' height='12' rx='1'/><path d='M2 10h20M7 14h2M11 14h2'/></svg>");
}
.woocommerce-account .wd-my-account-links li.wd-my-acc-b2bking_subaccounts .wd-nav-icon::before,
.woocommerce-account .wd-my-account-links li.b2bking_subaccounts .wd-nav-icon::before {
	content: '';
	display: block;
	width: 28px; height: 28px;
	background: center/contain no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d6a4f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='8' r='3'/><path d='M2 21a7 7 0 0 1 14 0'/><circle cx='17' cy='5' r='2'/><path d='M19 13a4 4 0 0 1 4 4v1'/></svg>");
}
/* Hide font-icon (gear/cog) when our SVG is set. */
.woocommerce-account .wd-my-account-links li.wd-my-acc-b2bking_messages .wd-nav-icon,
.woocommerce-account .wd-my-account-links li.wd-my-acc-b2bking_offers .wd-nav-icon,
.woocommerce-account .wd-my-account-links li.wd-my-acc-b2bking_purchase_lists .wd-nav-icon,
.woocommerce-account .wd-my-account-links li.wd-my-acc-b2bking_bulk_order .wd-nav-icon,
.woocommerce-account .wd-my-account-links li.wd-my-acc-b2bking_subaccounts .wd-nav-icon {
	font-size: 0 !important;
}

/* F-19 polish: stronger gutter on wide viewports for shop archive only. */
@media (min-width: 1280px) {
	.woocommerce.archive .wd-page-content {
		padding-left: clamp(40px, 6vw, 100px) !important;
		padding-right: clamp(40px, 6vw, 100px) !important;
	}
}


/* v0.15.12 — Round 3 fixes */

/* Round 3 — Cart × icon: hide text content, render as SVG cross. */
.woocommerce-cart .product-remove a.remove,
.woocommerce-cart .product-remove a.remove:visited,
.woocommerce-cart .product-remove a.remove:link {
	display: inline-block;
	width: 22px;
	height: 30px;
	font-size: 0 !important;
	line-height: 0 !important;
	color: transparent !important;
	background: center/16px 16px no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='1.8' stroke-linecap='round'><line x1='5' y1='5' x2='19' y2='19'/><line x1='19' y1='5' x2='5' y2='19'/></svg>") !important;
	border: 0 !important;
	text-decoration: none !important;
}
.woocommerce-cart .product-remove a.remove:hover {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b00020' stroke-width='1.8' stroke-linecap='round'><line x1='5' y1='5' x2='19' y2='19'/><line x1='19' y1='5' x2='5' y2='19'/></svg>") !important;
	color: transparent !important;
}

/* Round 3 — drop the WC default h2 in cart_totals (user wants Проміжний підсумок only). */
.woocommerce-cart .cart_totals h2,
.woocommerce-cart .cart-collaterals .cart_totals h2 {
	display: none !important;
}

/* Round 3 — hide the manual «Оновити кошик» button (cart auto-updates via JS now). */
.woocommerce-cart button[name="update_cart"] {
	display: none !important;
}
.woocommerce-cart .actions {
	justify-content: flex-end;
}


/* v0.15.14 — Round 4 fixes (F-12 + F-13 actual slugs) */

/* F-13 corrected: real Woodmart slugs in DOM are wd-my-acc-{conversations,offers,purchase-lists,bulkorder,subaccounts}. */
.woocommerce-account .wd-my-account-links li.wd-my-acc-conversations .wd-nav-icon::before {
	content: '';
	display: block;
	width: 28px; height: 28px;
	background: center/contain no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d6a4f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/></svg>");
}
.woocommerce-account .wd-my-account-links li.wd-my-acc-offers .wd-nav-icon::before {
	content: '';
	display: block;
	width: 28px; height: 28px;
	background: center/contain no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d6a4f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z'/><circle cx='7' cy='7' r='1.5'/></svg>");
}
.woocommerce-account .wd-my-account-links li.wd-my-acc-purchase-lists .wd-nav-icon::before {
	content: '';
	display: block;
	width: 28px; height: 28px;
	background: center/contain no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d6a4f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2'/><rect x='9' y='3' width='6' height='4' rx='1'/><path d='M9 12h6M9 16h4'/></svg>");
}
.woocommerce-account .wd-my-account-links li.wd-my-acc-bulkorder .wd-nav-icon::before {
	content: '';
	display: block;
	width: 28px; height: 28px;
	background: center/contain no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d6a4f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='6' width='20' height='12' rx='1'/><path d='M2 10h20M7 14h2M11 14h2'/></svg>");
}
.woocommerce-account .wd-my-account-links li.wd-my-acc-subaccounts .wd-nav-icon::before {
	content: '';
	display: block;
	width: 28px; height: 28px;
	background: center/contain no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d6a4f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='8' r='3'/><path d='M2 21a7 7 0 0 1 14 0'/><circle cx='17' cy='5' r='2'/><path d='M19 13a4 4 0 0 1 4 4v1'/></svg>");
}
/* Hide font-icon (cog) when our SVG is set. */
.woocommerce-account .wd-my-account-links li.wd-my-acc-conversations .wd-nav-icon,
.woocommerce-account .wd-my-account-links li.wd-my-acc-offers .wd-nav-icon,
.woocommerce-account .wd-my-account-links li.wd-my-acc-purchase-lists .wd-nav-icon,
.woocommerce-account .wd-my-account-links li.wd-my-acc-bulkorder .wd-nav-icon,
.woocommerce-account .wd-my-account-links li.wd-my-acc-subaccounts .wd-nav-icon {
	font-size: 0 !important;
}

/* F-12 visual: real sidebar title element is .woocommerce-MyAccount-title */
.woocommerce-account .woocommerce-MyAccount-title {
	cursor: pointer;
}
.woocommerce-account .woocommerce-MyAccount-title:hover,
.woocommerce-account .woocommerce-MyAccount-title a:hover {
	color: var(--dof-accent, #ffe786) !important;
}
.woocommerce-account .woocommerce-MyAccount-title a {
	color: inherit !important;
	border: 0 !important;
	text-decoration: none !important;
}


/* v0.15.15 — Round 5 fixes (2K width, scalloped edge, sample btn position, mobile cart) */

/* F-21 — wider container for 2K monitors. Cart + checkout get 1600px max-width. */
.woocommerce-cart .woocommerce {
	max-width: 1600px !important;
}
.woocommerce-checkout .woocommerce form.checkout {
	max-width: 1600px !important;
}

/* F-22 — more balanced grid; right column was wrapping prices like '5 868 грн'. */
@media (min-width: 1024px) {
	.woocommerce-checkout .woocommerce form.checkout {
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) !important;
		gap: 56px !important;
	}
}

/* F-23 — hide duplicate "Проміжний підсумок" row inside #order_review.
   The same value already shows in 'Загалом' row beneath. */
.woocommerce-checkout #order_review tr.cart-subtotal {
	display: none !important;
}

/* F-24 — Woodmart adds a scalloped/zigzag paper-edge ::before+::after on the order panel.
   Doesn't fit our flat design. Remove. */
.woocommerce-checkout .checkout-order-review::before,
.woocommerce-checkout .checkout-order-review::after {
	display: none !important;
	content: none !important;
	background: none !important;
}

/* F-25 — mini-cart drawer: tighter padding (Woodmart 24-30px was cosmetic excess). */
.cart-widget-side {
	padding-left: 24px !important;
	padding-right: 24px !important;
}
.cart-widget-side .wd-heading {
	padding: 18px 0 !important;
	margin-bottom: 0 !important;
}
.cart-widget-side .widget_shopping_cart_content {
	padding-top: 6px !important;
}
.cart-widget-side ul.cart_list li {
	padding: 14px 0 !important;
}
.cart-widget-side .wd-side-content {
	padding: 0 !important;
}
.cart-widget-side .total {
	padding: 16px 0 12px !important;
	margin: 0 !important;
}
.cart-widget-side .buttons {
	display: flex;
	flex-direction: column;
	gap: 8px !important;
	padding: 8px 0 16px !important;
}
.cart-widget-side .buttons a {
	padding: 14px 18px !important;
	font-size: 11px !important;
	letter-spacing: 0.18em !important;
}

/* Mini-cart MOQ note inside drawer */
.cart-widget-side .dh-mini-moq {
	margin: 4px 0 !important;
}

/* F-27 — mobile cart layout: collapse table to two-column blocks, no horizontal cramp */
@media (max-width: 767px) {
	.woocommerce-cart table.shop_table thead { display: none; }
	.woocommerce-cart table.shop_table tbody tr.cart_item {
		display: grid !important;
		grid-template-columns: 90px 1fr !important;
		grid-template-rows: auto auto auto auto !important;
		gap: 6px 14px !important;
		padding: 14px 0 !important;
		border-bottom: 1px solid var(--dof-line, #e8d9ab) !important;
	}
	.woocommerce-cart table.shop_table tbody tr.cart_item td {
		padding: 0 !important;
		border: 0 !important;
		display: block !important;
		vertical-align: top !important;
	}
	.woocommerce-cart table.shop_table tbody tr.cart_item td.product-thumbnail {
		grid-column: 1; grid-row: 1 / span 4; align-self: start;
	}
	.woocommerce-cart table.shop_table tbody tr.cart_item td.product-name { grid-column: 2; grid-row: 1; }
	.woocommerce-cart table.shop_table tbody tr.cart_item td.product-price { grid-column: 2; grid-row: 2; }
	.woocommerce-cart table.shop_table tbody tr.cart_item td.product-quantity { grid-column: 2; grid-row: 3; }
	.woocommerce-cart table.shop_table tbody tr.cart_item td.product-subtotal {
		grid-column: 2; grid-row: 4;
		font-weight: 700;
	}
	.woocommerce-cart table.shop_table tbody tr.cart_item td.product-remove {
		position: absolute; top: 14px; right: 0;
	}
	.woocommerce-cart table.shop_table { position: relative; }
	.woocommerce-cart .product-quantity .quantity { width: fit-content; }
	.woocommerce-cart .cart-collaterals,
	.woocommerce-cart .cart_totals {
		margin-top: 24px !important;
	}
	.woocommerce-cart table.shop_table tbody tr.wd-cart-action-row {
		display: none !important;
	}
}

/* F-28 — sample button: full-width block, sits below cart form / wishlist row */
.dh-sample-open {
	display: block !important;
	width: 100%;
	max-width: 320px;
	margin: 18px 0 8px !important;
	box-sizing: border-box;
}
.summary-inner > .dh-sample-open {
	clear: both;
}


/* v0.15.17 — Round 6 fixes (cart action align + mobile padding collapse) */

/* F-29 — single-row action group on cart: coupon + Запит + Зберегти. */
.woocommerce-cart .cart-actions {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px !important;
	margin-top: 24px;
	padding: 0;
}
.woocommerce-cart .cart-actions > * {
	flex: 0 0 auto;
}
.woocommerce-cart .cart-actions .coupon,
.woocommerce-cart .cart-actions .wd-coupon-form {
	flex: 1 1 280px;
	display: flex;
	gap: 8px;
	min-width: 0;
	margin: 0 !important;
}
.woocommerce-cart .cart-actions .coupon input[name="coupon_code"] { flex: 1 1 auto; min-width: 120px; }
.woocommerce-cart .cart-actions > button.button:not(.b2bking_add_cart_to_purchase_list_button) {
	order: 2;
	margin: 0 !important;
}
.woocommerce-cart .cart-actions > button.b2bking_add_cart_to_purchase_list_button {
	order: 3;
	margin: 0 !important;
}
/* hide hidden helper rows that flex tries to lay out */
.woocommerce-cart .cart-actions input[type="hidden"],
.woocommerce-cart .cart-actions .b2bking_loader_hidden,
.woocommerce-cart .cart-actions span:empty,
.woocommerce-cart .cart-actions div:empty,
.woocommerce-cart .cart-actions .b2bking_before_quote_request_form,
.woocommerce-cart .cart-actions textarea[name*="quote"]:not([style*="display: block"]),
.woocommerce-cart .cart-actions div.b2bking_quote_form,
.woocommerce-cart .cart-actions button.btn-default { display: none !important; }
.woocommerce-cart .cart-actions textarea {
	display: none;
}

/* F-30 — mobile cart totals: collapse double padding so content fills the card */
@media (max-width: 767px) {
	.woocommerce-cart .cart_totals {
		padding: 16px !important;
	}
	.woocommerce-cart .cart_totals .cart-totals-inner {
		padding: 0 !important;
		margin: 0 !important;
		max-width: none !important;
		box-sizing: border-box !important;
	}
	.woocommerce-cart .cart-collaterals,
	.woocommerce-cart .cart-collaterals .cart_totals {
		width: 100% !important;
		float: none !important;
	}
	.woocommerce-cart .cart_totals table { width: 100% !important; }
	.woocommerce-cart .cart_totals table th,
	.woocommerce-cart .cart_totals table td { padding: 8px 0 !important; }
}

/* F-31 — mobile checkout: tighten #order_review padding so .shop_table fills width */
@media (max-width: 1023px) {
	.woocommerce-checkout .woocommerce form.checkout {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}
	.woocommerce-checkout #order_review,
	.woocommerce-checkout #order_review_heading {
		padding: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	.woocommerce-checkout #order_review .shop_table {
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
	}
	.woocommerce-checkout #order_review .shop_table th,
	.woocommerce-checkout #order_review .shop_table td { padding: 10px 12px !important; }
	.woocommerce-checkout .woocommerce-checkout-payment {
		width: 100% !important;
		max-width: none !important;
		margin: 16px 0 !important;
	}
	/* Drop tabs to single column for mobile */
	.woocommerce-checkout #order_review_heading { margin-top: 18px; }
}

/* F-31b checkout-order-review padding fix */
@media (max-width: 1023px) {
	.woocommerce-checkout .checkout-order-review { padding: 0 !important; max-width: none !important; width: 100% !important; }
	.woocommerce-checkout .checkout-order-review > * { width: 100% !important; max-width: none !important; }
}

/* F-30b mobile th td stack — let radio shipping options use full width */
@media (max-width: 767px) {
	.woocommerce-cart .cart_totals table tr { display: block; padding: 6px 0; border-bottom: 1px solid var(--dof-line, #e8d9ab); }
	.woocommerce-cart .cart_totals table tr:last-child { border-bottom: 0; }
	.woocommerce-cart .cart_totals table th { display: block; width: 100% !important; padding: 4px 0 !important; font-weight: 600; }
	.woocommerce-cart .cart_totals table td { display: block; width: 100% !important; padding: 4px 0 !important; }
	.woocommerce-cart .cart_totals table td .woocommerce-shipping-methods { padding: 0; margin: 0; list-style: none; }
	.woocommerce-cart .cart_totals table td .shipping-calculator-button { display: inline-block; }
}

/* F-30c hide WC mobile td::before duplicate label (we already have a <th>) */
@media (max-width: 767px) {
	.woocommerce-cart .cart_totals table td::before { content: none !important; display: none !important; }
}

/* F-32 + F-33 mobile cart totals: no border lines, stacked shipping options under heading */
@media (max-width: 767px) {
	.woocommerce-cart .cart_totals table tr,
	.woocommerce-cart .cart_totals table th,
	.woocommerce-cart .cart_totals table td {
		border-bottom: 0 !important;
		border-top: 0 !important;
	}
	.woocommerce-cart .cart_totals table tr {
		display: block !important;
		padding: 6px 0 !important;
	}
	.woocommerce-cart .cart_totals table tr.shipping th,
	.woocommerce-cart .cart_totals table tr.woocommerce-shipping-totals th {
		display: block !important;
		width: 100% !important;
		text-align: left !important;
		margin-bottom: 8px;
	}
	.woocommerce-cart .cart_totals table tr.shipping td,
	.woocommerce-cart .cart_totals table tr.woocommerce-shipping-totals td {
		display: block !important;
		width: 100% !important;
		text-align: left !important;
		padding-left: 0 !important;
	}
	.woocommerce-cart .cart_totals table tr.shipping ul.woocommerce-shipping-methods,
	.woocommerce-cart .cart_totals table tr.woocommerce-shipping-totals ul.woocommerce-shipping-methods {
		list-style: none;
		padding: 0;
		margin: 0;
		text-align: left !important;
	}
	.woocommerce-cart .cart_totals table tr.shipping ul.woocommerce-shipping-methods li,
	.woocommerce-cart .cart_totals table tr.woocommerce-shipping-totals ul.woocommerce-shipping-methods li {
		text-align: left !important;
		margin: 4px 0;
	}
	.woocommerce-cart .cart_totals table tr.shipping .woocommerce-shipping-destination,
	.woocommerce-cart .cart_totals table tr.woocommerce-shipping-totals .woocommerce-shipping-destination {
		text-align: left !important;
		margin-top: 8px;
	}
}

/* F-34 remove Woodmart .cart-totals-inner thick inner border (3px) — keep only outer 1px */
.woocommerce-cart .cart_totals .cart-totals-inner {
	border: 0 !important;
}

/* F-35 stack ALL cart_totals th/td vertically on mobile, left-aligned */
@media (max-width: 767px) {
	.woocommerce-cart .cart_totals table tr {
		display: block !important;
		padding: 10px 0 !important;
	}
	.woocommerce-cart .cart_totals table th,
	.woocommerce-cart .cart_totals table td {
		display: block !important;
		width: 100% !important;
		text-align: left !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	.woocommerce-cart .cart_totals table th { margin-bottom: 6px; }
	.woocommerce-cart .cart_totals .order-total td,
	.woocommerce-cart .cart_totals .order-total th { font-size: 16px; }
}

/* F-36 hide cart line subtotal on mobile (duplicates Загалом below) */
@media (max-width: 767px) {
	.woocommerce-cart table.shop_table tbody tr.cart_item td.product-subtotal {
		display: none !important;
	}
	/* product-quantity row gap tighter */
	.woocommerce-cart table.shop_table tbody tr.cart_item {
		grid-template-rows: auto auto auto !important;
	}
}

/* F-37 mobile checkout #order_review — stack th/td, no inner borders, outer only, full-width content */
@media (max-width: 767px) {
	.woocommerce-checkout #order_review .shop_table {
		border: 1px solid var(--dof-line, #e8d9ab) !important;
		border-radius: 0;
		padding: 16px;
		background: var(--dof-bg-2);
	}
	.woocommerce-checkout #order_review .shop_table thead { display: none; }
	.woocommerce-checkout #order_review .shop_table thead tr,
	.woocommerce-checkout #order_review .shop_table tbody tr,
	.woocommerce-checkout #order_review .shop_table tfoot tr {
		display: block !important;
		border: 0 !important;
		border-bottom: 0 !important;
		padding: 8px 0 !important;
	}
	.woocommerce-checkout #order_review .shop_table th,
	.woocommerce-checkout #order_review .shop_table td {
		display: block !important;
		width: 100% !important;
		text-align: left !important;
		padding: 4px 0 !important;
		border: 0 !important;
	}
	.woocommerce-checkout #order_review .shop_table th { font-weight: 600; margin-bottom: 6px; }
	/* shipping methods list left-aligned */
	.woocommerce-checkout #order_review .woocommerce-shipping-methods {
		list-style: none;
		padding: 0;
		margin: 0;
		text-align: left !important;
	}
	.woocommerce-checkout #order_review .woocommerce-shipping-methods li {
		margin: 4px 0;
		text-align: left !important;
	}
	/* Remove td::before label (we already show th) */
	.woocommerce-checkout #order_review .shop_table td::before {
		content: none !important;
		display: none !important;
	}
	/* Order total row stays prominent */
	.woocommerce-checkout #order_review .order-total th,
	.woocommerce-checkout #order_review .order-total td { font-size: 16px; font-weight: 700; }
	/* If Woodmart inner wrapper present, kill its border too */
	/* removed: was killing .wd-table-wrapper border */
}

/* F-38 + F-39 + F-40 mobile checkout order_review polish */
@media (max-width: 767px) {
	/* outer border on order_review wrapper, no inner border */
	.woocommerce-checkout #order_review {
		border: 1px solid var(--dof-line, #e8d9ab) !important;
		background: var(--dof-bg-2);
		padding: 16px !important;
		box-sizing: border-box;
	}
	.woocommerce-checkout #order_review .shop_table {
		border: 0 !important;
		padding: 0 !important;
		background: transparent !important;
	}
	/* shipping radios on the LEFT */
	.woocommerce-checkout #order_review .woocommerce-shipping-methods input[type="radio"],
	.woocommerce-cart .cart_totals .woocommerce-shipping-methods input[type="radio"] {
		float: none !important;
		margin: 0 8px 0 0 !important;
		vertical-align: middle;
		display: inline-block !important;
	}
	.woocommerce-checkout #order_review .woocommerce-shipping-methods li,
	.woocommerce-cart .cart_totals .woocommerce-shipping-methods li {
		display: flex !important;
		align-items: flex-start !important;
		gap: 8px;
		text-align: left !important;
		padding-left: 0 !important;
	}
	.woocommerce-checkout #order_review .woocommerce-shipping-methods li label,
	.woocommerce-cart .cart_totals .woocommerce-shipping-methods li label {
		flex: 1;
		margin: 0 !important;
		cursor: pointer;
	}
}

/* F-41 — outer wd-table-wrapper border + tight padding */
.checkout-order-review > .woocommerce-checkout-review-order .wd-table-wrapper {
	padding: 5px 15px !important;
	border: 1px solid var(--dof-line, #e8d9ab) !important;
}

/* F-42 — apply same order_review styling on desktop as mobile (stack th/td, radios left, no inner borders) */
.woocommerce-checkout #order_review .shop_table {
	border: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	width: 100%;
}
.woocommerce-checkout #order_review .shop_table thead { display: none; }
.woocommerce-checkout #order_review .shop_table thead tr,
.woocommerce-checkout #order_review .shop_table tbody tr,
.woocommerce-checkout #order_review .shop_table tfoot tr {
	display: block !important;
	border: 0 !important;
	border-bottom: 0 !important;
	padding: 8px 0 !important;
}
.woocommerce-checkout #order_review .shop_table th,
.woocommerce-checkout #order_review .shop_table td {
	display: block !important;
	width: 100% !important;
	text-align: left !important;
	padding: 4px 0 !important;
	border: 0 !important;
}
.woocommerce-checkout #order_review .shop_table th { font-weight: 600; margin-bottom: 6px; }
.woocommerce-checkout #order_review .shop_table td::before { content: none !important; display: none !important; }
.woocommerce-checkout #order_review .order-total th,
.woocommerce-checkout #order_review .order-total td { font-size: 16px; font-weight: 700; }
.woocommerce-checkout #order_review .woocommerce-shipping-methods {
	list-style: none; padding: 0; margin: 0; text-align: left !important;
}
.woocommerce-checkout #order_review .woocommerce-shipping-methods li {
	display: flex !important; align-items: flex-start !important; gap: 8px;
	text-align: left !important; padding-left: 0 !important; margin: 4px 0;
}
.woocommerce-checkout #order_review .woocommerce-shipping-methods input[type="radio"] {
	float: none !important; margin: 0 8px 0 0 !important;
	vertical-align: middle; display: inline-block !important;
}
.woocommerce-checkout #order_review .woocommerce-shipping-methods li label {
	flex: 1; margin: 0 !important; cursor: pointer;
}

/* F-43 — apply same cart_totals styling on desktop as mobile */
.woocommerce-cart .cart_totals {
	border: 1px solid var(--dof-line, #e8d9ab) !important;
	background: var(--dof-bg-2);
	padding: 16px !important;
	box-sizing: border-box;
}
.woocommerce-cart .cart_totals .cart-totals-inner {
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	max-width: none !important;
}
.woocommerce-cart .cart_totals table { width: 100% !important; }
.woocommerce-cart .cart_totals table tr,
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
	border: 0 !important;
}
.woocommerce-cart .cart_totals table tr {
	display: block !important;
	padding: 10px 0 !important;
}
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
	display: block !important;
	width: 100% !important;
	text-align: left !important;
	padding: 4px 0 !important;
}
.woocommerce-cart .cart_totals table th { font-weight: 600; margin-bottom: 6px; }
.woocommerce-cart .cart_totals table td::before { content: none !important; display: none !important; }
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td { font-size: 16px; font-weight: 700; }
/* shipping radios on the LEFT, list left-aligned, no rightward layout */
.woocommerce-cart .cart_totals .woocommerce-shipping-methods {
	list-style: none; padding: 0; margin: 0; text-align: left !important;
}
.woocommerce-cart .cart_totals .woocommerce-shipping-methods li {
	display: flex !important; align-items: flex-start !important; gap: 8px;
	text-align: left !important; padding-left: 0 !important; margin: 4px 0;
}
.woocommerce-cart .cart_totals .woocommerce-shipping-methods input[type="radio"] {
	float: none !important; margin: 0 8px 0 0 !important;
	vertical-align: middle; display: inline-block !important;
}
.woocommerce-cart .cart_totals .woocommerce-shipping-methods li label {
	flex: 1; margin: 0 !important; cursor: pointer;
}


/* v0.16.0 — B2 Product matrix */
.dh-matrix { margin: 18px 0 24px; }
.dh-matrix__title {
	font: 500 13px/1.2 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.04em;
	color: var(--dof-ink, #12263b);
	margin: 0 0 12px;
}
.dh-matrix__scroll { overflow-x: auto; }
.dh-matrix__table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--dof-line, #e8d9ab);
	background: var(--dof-bg-2);
	font-size: 13px;
	min-width: 360px;
}
.dh-matrix__table th, .dh-matrix__table td {
	padding: 10px 8px !important;
	text-align: center !important;
	border-bottom: 1px solid var(--dof-line, #e8d9ab) !important;
	border-right: 1px solid var(--dof-line, #e8d9ab) !important;
	border-top: 0 !important;
	border-left: 0 !important;
	display: table-cell !important;
	width: auto !important;
}
.dh-matrix__table th:last-child, .dh-matrix__table td:last-child { border-right: 0 !important; }
.dh-matrix__table tr:last-child td { border-bottom: 0 !important; }

.dh-matrix__corner, .dh-matrix__size, .dh-matrix__total-h {
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--dof-ink-2, #3d5b78) !important;
	background: var(--dof-bg-2, #fdf6e3) !important;
}
.dh-matrix__color {
	text-align: left !important;
	font-weight: 500;
	color: var(--dof-ink, #12263b);
	white-space: nowrap;
}
.dh-matrix__qty {
	width: 56px;
	padding: 6px 8px !important;
	border: 1px solid var(--dof-line, #e8d9ab) !important;
	border-radius: 0 !important;
	font: 600 14px/1.1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
	text-align: center !important;
	outline: 0;
	background: var(--dof-bg-2);
	color: var(--dof-ink, #12263b);
	-webkit-appearance: none;
	-moz-appearance: textfield;
}
.dh-matrix__qty:focus { border-color: var(--dof-accent, #ffe786) !important; }
.dh-matrix__cell.is-disabled .dh-matrix__qty {
	background: var(--dof-bg-2);
	color: var(--dof-ink-3);
	cursor: not-allowed;
}
.dh-matrix__row-total {
	font-weight: 600;
	color: var(--dof-accent, #ffe786) !important;
}
.dh-matrix__grand-label {
	text-align: right !important;
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--dof-ink-2, #3d5b78) !important;
	background: var(--dof-bg-2, #fdf6e3) !important;
}
.dh-matrix__grand-qty,
.dh-matrix__grand-sum {
	background: var(--dof-bg-2, #fdf6e3) !important;
	font: 700 14px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
	color: var(--dof-accent, #ffe786) !important;
}
.dh-matrix__grand-sum .woocommerce-Price-amount { color: inherit; }

.dh-matrix__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 16px 0 6px;
	padding: 14px 28px;
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	background: var(--dof-ink, #12263b);
	color: var(--dof-on-dark);
	border: 1px solid var(--dof-ink, #12263b);
	border-radius: 0;
	cursor: pointer;
	transition: background .2s, border-color .2s;
}
.dh-matrix__submit:hover { background: var(--dof-accent, #ffe786); border-color: var(--dof-accent, #ffe786); }
.dh-matrix__submit:disabled { opacity: 0.55; cursor: not-allowed; }
.dh-matrix__hint {
	font-size: 11px;
	color: var(--dof-ink-3, #5c7590);
	letter-spacing: 0.04em;
	margin: 4px 0 0;
}
.dh-matrix__msg { font-size: 13px; min-height: 18px; margin: 8px 0 0; }
.dh-matrix__msg.is-ok    { color: var(--dof-accent, #ffe786); }
.dh-matrix__msg.is-error { color: #b00020; }

/* Hide default WC variations form when matrix is active */
body.dh-matrix-active .single_variation_wrap .woocommerce-variation,
body.dh-matrix-active .variations_form .variations,
body.dh-matrix-active .variations_form .reset_variations,
body.dh-matrix-active .single_add_to_cart_button,
body.dh-matrix-active form.cart .quantity:not(.dh-matrix__qty .quantity) {
	display: none !important;
}

@media (max-width: 767px) {
	.dh-matrix__qty { width: 50px; padding: 6px 4px !important; font-size: 13px !important; }
	.dh-matrix__color { font-size: 12px; padding: 8px 6px !important; }
}


/* v0.16.2 — C1 /branding/ page */
/* removed: .dh-branding max-width broke home section */
.dh-branding__heading {
	font: 500 28px/1.15 var(--dof-font-display, 'Cabinet Grotesk'), Inter, system-ui, sans-serif;
	color: var(--dof-ink, #12263b);
	margin: 0 0 24px;
	letter-spacing: -0.01em;
}
.dh-branding__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	margin-top: 28px;
	padding-top: 24px;
	border-top: 1px solid var(--dof-line, #e8d9ab);
}
.dh-branding__stat { min-width: 130px; }
.dh-branding__num {
	display: block;
	font: 600 28px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	color: var(--dof-accent, #ffe786);
	letter-spacing: -0.01em;
}
.dh-branding__lbl {
	display: block;
	margin-top: 4px;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--dof-ink-2, #3d5b78);
}

/* Technologies grid */
.dh-branding__techs { padding: 80px 0; }
.dh-branding__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}
.dh-branding__card {
	padding: 24px;
	background: var(--dof-bg-2);
	border: 1px solid var(--dof-line, #e8d9ab);
	transition: border-color .2s, transform .2s;
}
.dh-branding__card:hover { border-color: var(--dof-ink, #12263b); transform: translateY(-2px); }
.dh-branding__card-title {
	font: 600 16px/1.2 var(--dof-font-body, Inter), system-ui, sans-serif;
	margin: 0 0 10px;
	color: var(--dof-ink, #12263b);
}
.dh-branding__card-desc { font-size: 13px; line-height: 1.55; color: var(--dof-ink-2, #3d5b78); margin: 0 0 16px; }
.dh-branding__card-meta {
	display: flex;
	justify-content: space-between;
	padding-top: 14px;
	border-top: 1px solid var(--dof-line, #e8d9ab);
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--dof-accent, #ffe786);
}

/* Process steps */
.dh-branding__process { padding: 60px 0 80px; }
.dh-branding__steps {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}
.dh-branding__step {
	position: relative;
	padding: 24px 0 0;
	border-top: 1px solid var(--dof-ink, #12263b);
}
.dh-branding__step-n {
	display: block;
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.18em;
	color: var(--dof-accent, #ffe786);
	margin-bottom: 10px;
}
.dh-branding__step-title {
	font: 500 18px/1.2 var(--dof-font-body, Inter), system-ui, sans-serif;
	margin: 0 0 8px;
	color: var(--dof-ink, #12263b);
}
.dh-branding__step-desc { font-size: 13px; line-height: 1.55; color: var(--dof-ink-2, #3d5b78); margin: 0; }

/* Form */
.dh-branding__form-section { padding: 60px 0 100px; }
.dh-branding__form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: start;
}
.dh-branding__form-text p { font-size: 14px; line-height: 1.6; color: var(--dof-ink-2, #3d5b78); }
.dh-branding__form-bullets {
	list-style: none;
	padding: 24px 0 0;
	margin: 0;
	border-top: 1px solid var(--dof-line, #e8d9ab);
}
.dh-branding__form-bullets li {
	position: relative;
	padding: 8px 0 8px 22px;
	font-size: 13px;
	color: var(--dof-ink-2, #3d5b78);
}
.dh-branding__form-bullets li::before {
	content: '—';
	position: absolute; left: 0; top: 8px;
	color: var(--dof-accent, #ffe786);
	font-weight: 600;
}
.dh-branding__form { background: var(--dof-bg-2); border: 1px solid var(--dof-line, #e8d9ab); padding: 28px; }

@media (max-width: 1023px) {
	.dh-branding__grid { grid-template-columns: repeat(2, 1fr); }
	.dh-branding__steps { grid-template-columns: 1fr 1fr; }
	.dh-branding__form-grid { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 600px) {
	.dh-branding__grid { grid-template-columns: 1fr; }
	.dh-branding__steps { grid-template-columns: 1fr; }
}

/* C1-fix branding grid escape + ensure visibility on scroll */
.wd-content-layout > main.dh-branding,
main.dh-branding {
	grid-column: 1 / -1 !important;
	width: 100%;
}
.wd-content-layout > .dh-branding {
	grid-column: 1 / -1 !important;
}


/* v0.16.4 — C2 /brand-production/ landing */
/* removed: .dh-merchlab max-width broke home section */
.wd-content-layout > main.dh-merchlab,
main.dh-merchlab { grid-column: 1 / -1 !important; width: 100%; }
.dh-merchlab__heading {
	font: 500 28px/1.15 var(--dof-font-display, 'Cabinet Grotesk'), Inter, system-ui, sans-serif;
	color: var(--dof-ink, #12263b);
	margin: 0 0 24px;
	letter-spacing: -0.01em;
}
.dh-merchlab__section { padding: 60px 0; }
.dh-merchlab__cta-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.dh-merchlab__grid {
	display: grid;
	gap: 16px;
}
.dh-merchlab__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dh-merchlab__card {
	padding: 28px;
	background: var(--dof-bg-2);
	border: 1px solid var(--dof-line, #e8d9ab);
	transition: border-color .2s, transform .2s;
}
.dh-merchlab__card:hover { border-color: var(--dof-ink, #12263b); transform: translateY(-2px); }
.dh-merchlab__card-title {
	font: 600 18px/1.2 var(--dof-font-body, Inter), system-ui, sans-serif;
	color: var(--dof-ink, #12263b);
	margin: 0 0 12px;
}
.dh-merchlab__card-desc { font-size: 13px; line-height: 1.55; color: var(--dof-ink-2, #3d5b78); margin: 0; }

.dh-merchlab__steps {
	list-style: none;
	padding: 0; margin: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}
.dh-merchlab__step { padding: 24px 0 0; border-top: 1px solid var(--dof-ink, #12263b); }
.dh-merchlab__step-n {
	display: block;
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.18em;
	color: var(--dof-accent, #ffe786);
	margin-bottom: 10px;
}
.dh-merchlab__step-title {
	font: 500 18px/1.2 var(--dof-font-body, Inter), system-ui, sans-serif;
	color: var(--dof-ink, #12263b);
	margin: 0 0 8px;
}
.dh-merchlab__step-desc { font-size: 13px; line-height: 1.55; color: var(--dof-ink-2, #3d5b78); margin: 0; }

.dh-merchlab__form-section { padding: 60px 0 100px; }
.dh-merchlab__form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: start;
}
.dh-merchlab__form-grid p { font-size: 14px; line-height: 1.6; color: var(--dof-ink-2, #3d5b78); }
.dh-merchlab__hint a { color: var(--dof-accent, #ffe786); border-bottom: 1px solid currentColor; }
.dh-merchlab__form-grid form.dh-fbox { background: var(--dof-bg-2); border: 1px solid var(--dof-line, #e8d9ab); padding: 28px; }

@media (max-width: 1023px) {
	.dh-merchlab__grid--3 { grid-template-columns: 1fr; }
	.dh-merchlab__steps { grid-template-columns: 1fr 1fr; }
	.dh-merchlab__form-grid { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 600px) {
	.dh-merchlab__steps { grid-template-columns: 1fr; }
}


/* v0.16.5 — process section (used on /branding/, /brand-production/) — same vibe as home segments */
.dh-process {
	padding: 60px var(--dof-site-pad, clamp(24px, 4vw, 64px)) 80px;
}
.dh-process__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}
.dh-process__step {
	padding: 24px 0 0;
	border-top: 1px solid var(--dof-ink, #12263b);
}
.dh-process__n {
	display: block;
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.18em;
	color: var(--dof-accent, #ffe786);
	margin-bottom: 10px;
}
.dh-process__title {
	font: 500 18px/1.2 var(--dof-font-body, Inter), system-ui, sans-serif;
	color: var(--dof-ink, #12263b);
	margin: 0 0 8px;
}
.dh-process__desc {
	font-size: 13px;
	line-height: 1.55;
	color: var(--dof-ink-2, #3d5b78);
	margin: 0;
}
@media (max-width: 1023px) { .dh-process__list { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px)  { .dh-process__list { grid-template-columns: 1fr; } }

/* Drop legacy non-bleed dh-branding/dh-merchlab grids that conflicted with home design */
main.dh-branding, main.dh-merchlab {
	max-width: none !important;
	padding: 0 !important;
	grid-column: 1 / -1 !important;
}

/* v0.16.6 dof-canvas grid escape — needed when WC parent has wd-grid-g */
.wd-content-layout > main.dof-canvas,
.wd-content-layout.wd-grid-g > main.dof-canvas,
main.wd-content-layout.wd-grid-g > main.dof-canvas {
	grid-column: 1 / -1 !important;
	width: 100% !important;
	max-width: none !important;
}

/* v0.17.4 branding tech grid 4-col desktop, 2-col tablet/mobile */
#branding-techs.dh-segs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
#branding-techs .dh-seg:last-child { border-right: 0; }
@media (max-width: 1023px) {
	#branding-techs.dh-segs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	#branding-techs .dh-seg:nth-child(2) { border-right: 0; }
	#branding-techs .dh-seg:nth-child(-n+2) { border-bottom: 1px solid var(--dof-line); }
}
@media (max-width: 420px) {
	#branding-techs.dh-segs { grid-template-columns: 1fr; }
	#branding-techs .dh-seg { border-right: 0; border-bottom: 1px solid var(--dof-line); }
}

/* v0.17.6 hero fit-viewport — hero + trust marquee fit in 100vh below header on HD/FHD/2K. Mobile: photo+bar+stats visible. */
.dof-heroV3 {
	min-height: 0 !important;
	height: calc(100svh - 100px - 73px);
	max-height: none;
}
.dof-heroV3__photo {
	min-height: 0 !important;
}
@media (max-width: 1023px) {
	.dof-heroV3 { height: auto !important; min-height: 0 !important; }
	.dof-heroV3__photo { min-height: 380px !important; }
}
@media (max-width: 600px) {
	.dof-heroV3__photo { min-height: 320px !important; }
}


/* v0.18.0 — /about-us/ informational pillars (replaces dh-segs lead-gen cards) */
.dh-pillars { padding: 60px var(--dof-site-pad, clamp(24px, 4vw, 64px)) 80px; }
.dh-pillars-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	border-top: 1px solid var(--dof-line, #e8d9ab);
	border-bottom: 1px solid var(--dof-line, #e8d9ab);
	margin-top: 8px;
}
.dh-pillar {
	padding: clamp(28px, 3vw, 48px) clamp(24px, 2.6vw, 40px);
	border-right: 1px solid var(--dof-line, #e8d9ab);
	display: flex;
	flex-direction: column;
	gap: 14px;
	transition: background .2s var(--dof-ease-out, ease-out);
}
.dh-pillar:last-child { border-right: 0; }
.dh-pillar:hover { background: var(--dof-bg-2, #fdf6e3); }
.dh-pillar-n {
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.22em;
	color: var(--dof-accent, #ffe786);
	text-transform: uppercase;
	margin: 0;
}
.dh-pillar-t {
	font: 500 22px/1.2 var(--dof-font-display, 'Cabinet Grotesk'), Inter, system-ui, sans-serif;
	color: var(--dof-ink, #12263b);
	margin: 0;
	letter-spacing: -0.01em;
}
.dh-pillar-d {
	font-size: 14px;
	line-height: 1.6;
	color: var(--dof-ink-2, #3d5b78);
	margin: 0;
	flex: 1;
}
.dh-pillar-meta {
	display: inline-block;
	margin-top: auto;
	padding-top: 12px;
	border-top: 1px solid var(--dof-line, #e8d9ab);
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--dof-accent, #ffe786);
}
@media (max-width: 1023px) {
	.dh-pillars-grid { grid-template-columns: 1fr; }
	.dh-pillar { border-right: 0; border-bottom: 1px solid var(--dof-line, #e8d9ab); }
	.dh-pillar:last-child { border-bottom: 0; }
}


/* v0.18.2 — карточка товара (single-product) — layout прототипа */
.dof-product { background: var(--dof-bg, #fdf6e3); }
.prod-wrap {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp(20px, 3vw, 40px) var(--dof-site-pad, clamp(24px, 4vw, 64px)) clamp(40px, 5vw, 80px);
}

/* Эскейп Woodmart 12-col grid */
.wd-content-layout > main.dof-product,
.wd-content-layout.wd-grid-g > main.dof-product {
	grid-column: 1 / -1 !important;
	width: 100%;
}

/* Breadcrumbs */
.prod-bc {
	font-size: 12px;
	letter-spacing: 0.02em;
	color: var(--dof-ink-3, #5c7590);
	margin: 0 0 24px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
}
.prod-bc a {
	color: var(--dof-ink-2, #3d5b78);
	border: 0;
	text-decoration: none;
	transition: color .15s;
}
.prod-bc a:hover { color: var(--dof-accent, #ffe786); }
.prod-bc-s { color: var(--dof-ink-3, #5c7590); margin: 0 4px; }
.prod-bc-c { color: var(--dof-ink, #12263b); }

/* 2-колоночный grid */
.prod-grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(28px, 4vw, 56px);
	align-items: start;
}

/* === ГАЛЕРЕЯ === */
.prod-gallery { position: sticky; top: 100px; }
.gal-main {
	position: relative;
	aspect-ratio: 4 / 5;
	background: var(--dof-bg-2);
	border: 1px solid var(--dof-line, #e8d9ab);
	overflow: hidden;
	margin-bottom: 12px;
}
.gal-main__img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain;
	display: block;
}
.gal-main__placeholder {
	position: absolute; inset: 0;
	background: var(--dof-bg-2, #fdf6e3);
}
.gal-badge {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	padding: 6px 12px;
	font: 600 10px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--dof-on-dark);
	background: var(--dof-ink, #12263b);
	border-radius: 0;
}
.gal-badge--sale { background: var(--dof-accent, #ffe786); }

.gal-thumbs {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.gal-th {
	padding: 0;
	width: 64px;
	height: 80px;
	background: var(--dof-bg-2);
	border: 1px solid var(--dof-line, #e8d9ab);
	cursor: pointer;
	overflow: hidden;
	transition: border-color .15s, transform .2s;
}
.gal-th img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}
.gal-th:hover { border-color: var(--dof-ink-2, #3d5b78); }
.gal-th.on { border-color: var(--dof-accent, #ffe786); }

/* === ИНФО-КОЛОНКА === */
.prod-brand {
	font: 500 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--dof-accent, #ffe786);
	margin: 0 0 12px;
}
.prod-name {
	font: 500 clamp(28px, 3.4vw, 40px)/1.15 var(--dof-font-display, 'Cabinet Grotesk'), Inter, system-ui, sans-serif;
	color: var(--dof-ink, #12263b);
	letter-spacing: -0.01em;
	margin: 0 0 12px;
}
.prod-sku {
	font-size: 13px;
	line-height: 1.6;
	color: var(--dof-ink-2, #3d5b78);
	margin: 0 0 16px;
}

.prod-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 24px;
}
.prod-ptag {
	display: inline-flex;
	align-items: center;
	padding: 6px 12px;
	font-size: 11px;
	letter-spacing: 0.04em;
	color: var(--dof-ink-2, #3d5b78);
	background: var(--dof-bg-2, #fdf6e3);
	border-radius: 999px;
}

.prod-divr {
	border: 0;
	border-top: 1px solid var(--dof-line, #e8d9ab);
	margin: 22px 0;
}

/* Доступность */
.prod-avail {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	margin: 0 0 22px;
}
.prod-avail__i {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--dof-ink, #12263b);
}
.prod-adot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex-shrink: 0;
}
.prod-adot--g { background: var(--dof-accent, #ffe786); box-shadow: 0 0 0 3px color-mix(in srgb, var(--dof-accent) 18%, transparent); }
.prod-adot--o { background: #d97706; box-shadow: 0 0 0 3px rgba(217,119,6,0.18); }

/* Блок образцов */
.prod-sample {
	background: rgba(45, 106, 79, 0.06);
	border: 1px solid rgba(45, 106, 79, 0.18);
	padding: 18px 20px;
	margin: 0 0 24px;
}
.prod-sample__h {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font: 600 13px/1.2 var(--dof-font-body, Inter), system-ui, sans-serif;
	color: var(--dof-accent, #ffe786);
	letter-spacing: 0.04em;
	margin: 0 0 8px;
}
.prod-sample__d {
	font-size: 13px;
	line-height: 1.55;
	color: var(--dof-ink-2, #3d5b78);
	margin: 0 0 14px;
}
.prod-sample__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 22px;
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--dof-accent, #ffe786);
	background: transparent;
	border: 1px solid var(--dof-accent, #ffe786);
	border-radius: 0;
	cursor: pointer;
	transition: background .2s, color .2s;
}
.prod-sample__btn:hover { background: var(--dof-accent, #ffe786); color: var(--dof-ink, #12263b); }

/* Заголовок матрицы */
.prod-sizes-ttl {
	font: 600 14px/1.3 var(--dof-font-body, Inter), system-ui, sans-serif;
	color: var(--dof-ink, #12263b);
	margin: 0 0 14px;
	letter-spacing: 0.01em;
}

/* Tier-mini */
.prod-tier-mini {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 6px;
	margin: 18px 0 18px;
}
.prod-tcol {
	padding: 14px 16px;
	background: var(--dof-bg-2);
	border: 1px solid var(--dof-line, #e8d9ab);
	transition: border-color .2s, background .2s;
}
.prod-tcol.on {
	border-color: var(--dof-accent, #ffe786);
	background: rgba(45, 106, 79, 0.06);
}
.prod-tcol__q {
	font: 600 11px/1.1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.06em;
	color: var(--dof-ink-2, #3d5b78);
	margin: 0 0 6px;
	text-transform: uppercase;
}
.prod-tcol.on .prod-tcol__q { color: var(--dof-accent, #ffe786); }
.prod-tcol__p {
	font: 600 16px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	color: var(--dof-ink, #12263b);
	margin: 0;
}

/* Price block */
.prod-price-bl {
	padding: 18px 0;
	border-top: 1px solid var(--dof-line, #e8d9ab);
	border-bottom: 1px solid var(--dof-line, #e8d9ab);
	margin: 18px 0 18px;
}
.prod-price-bl__v {
	font: 600 clamp(28px, 3vw, 36px)/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	color: var(--dof-accent, #ffe786);
	letter-spacing: -0.01em;
	margin: 0 0 6px;
}
.prod-price-bl__s {
	font-size: 12px;
	color: var(--dof-ink-3, #5c7590);
	letter-spacing: 0.02em;
	margin: 0;
}

/* Branding cross-sell */
.prod-brand-cs {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 20px;
	background: var(--dof-bg-2);
	border: 1px solid var(--dof-line, #e8d9ab);
	margin: 18px 0 24px;
	color: var(--dof-ink, #12263b);
	text-decoration: none;
	transition: border-color .2s, transform .2s;
}
.prod-brand-cs:hover {
	border-color: var(--dof-accent, #ffe786);
	transform: translateY(-2px);
}
.prod-brand-cs__icon {
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--dof-line, #e8d9ab);
	color: var(--dof-accent, #ffe786);
	flex-shrink: 0;
}
.prod-brand-cs__txt { flex: 1; min-width: 0; }
.prod-brand-cs__t {
	font: 600 13px/1.3 var(--dof-font-body, Inter), system-ui, sans-serif;
	color: var(--dof-ink, #12263b);
	margin: 0 0 3px;
}
.prod-brand-cs__d {
	font-size: 12px;
	line-height: 1.55;
	color: var(--dof-ink-2, #3d5b78);
	margin: 0;
}
.prod-brand-cs__arr {
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--dof-accent, #ffe786);
	white-space: nowrap;
}

/* Характеристики */
.prod-chars {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	border: 1px solid var(--dof-line, #e8d9ab);
	background: var(--dof-bg-2);
}
.prod-chars__row {
	display: grid;
	grid-template-columns: 1fr 1.4fr;
	gap: 16px;
	padding: 14px 18px;
	border-bottom: 1px solid var(--dof-line, #e8d9ab);
	border-right: 1px solid var(--dof-line, #e8d9ab);
}
.prod-chars__row:nth-child(2n) { border-right: 0; }
.prod-chars__row:nth-last-child(-n+2) { border-bottom: 0; }
.prod-chars__k {
	font: 600 11px/1.3 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--dof-ink-3, #5c7590);
}
.prod-chars__v {
	font-size: 13px;
	color: var(--dof-ink, #12263b);
}

/* Описание ниже */
.prod-desc {
	max-width: 780px;
	margin: 60px auto 0;
	padding: 40px 0 0;
	border-top: 1px solid var(--dof-line, #e8d9ab);
}
.prod-desc__h {
	font: 500 22px/1.2 var(--dof-font-display, 'Cabinet Grotesk'), Inter, system-ui, sans-serif;
	color: var(--dof-ink, #12263b);
	margin: 0 0 18px;
}
.prod-desc__body { font-size: 15px; line-height: 1.7; color: var(--dof-ink-2, #3d5b78); }
.prod-desc__body p { margin: 0 0 14px; }

/* Адаптация под планшет/мобайл */
@media (max-width: 1023px) {
	.prod-grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}
	.prod-gallery { position: static; }
	.prod-chars { grid-template-columns: 1fr; }
	.prod-chars__row {
		grid-template-columns: 1fr 1fr;
		border-right: 0;
	}
	.prod-chars__row:nth-last-child(-n+2):not(:last-child) { border-bottom: 1px solid var(--dof-line, #e8d9ab); }
	.prod-chars__row:last-child { border-bottom: 0; }
}
@media (max-width: 600px) {
	.prod-tier-mini { grid-template-columns: 1fr; }
	.prod-tcol { padding: 12px 14px; }
	.prod-brand-cs { flex-direction: column; align-items: flex-start; gap: 10px; }
	.prod-brand-cs__arr { align-self: flex-end; }
	.gal-main { aspect-ratio: 1 / 1; }
	.gal-th { width: 56px; height: 70px; }
}


/* v0.18.3 — карточка товара: правки */

/* 5. Расширение карточки до 1600px (как cart/checkout) */
.prod-wrap {
	max-width: 1600px !important;
}

/* 2. Скрываем число цены пока матрица пустая */
.prod-price-bl.is-empty .prod-price-bl__v { display: none; }
.prod-price-bl.is-empty .prod-price-bl__s {
	font-size: 14px;
	color: var(--dof-ink-2, #3d5b78);
	letter-spacing: 0;
	margin: 0;
}

/* Убираем нижний border на 6-ом ряду char (когда rows == 6 на десктоп 2-col, последние 2 не должны иметь bottom) */
@media (min-width: 1024px) {
	.prod-chars__row:nth-last-child(-n+2) { border-bottom: 0; }
}


/* v0.18.6 — B2BKing native tables skin (tier + info + variations) */

/* Контейнеры моих помощников */
.dof-b2b-tier-wrap,
.dof-b2b-info-wrap,
.dof-b2b-variations-wrap {
	margin: 18px 0 8px;
}

/* Многоуровневая таблица цен ─────────────────────────────── */
.b2bking_tiered_pricing_table,
table.b2bking_tiered_pricing_table {
	width: 100% !important;
	border-collapse: collapse !important;
	border: 1px solid var(--dof-line, rgba(18,38,59,.22)) !important;
	border-radius: 0 !important;
	background: var(--dof-bg-2) !important;
	margin: 0 !important;
	font-family: var(--dof-font-body, system-ui) !important;
}
.b2bking_tiered_pricing_table thead th {
	background: var(--dof-bg, #fdf6e3) !important;
	color: var(--dof-ink-2, #3d5b78) !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	padding: 12px 14px !important;
	border-bottom: 1px solid var(--dof-line, rgba(18,38,59,.22)) !important;
	text-align: left !important;
}
.b2bking_tiered_pricing_table tbody td {
	padding: 14px !important;
	border-bottom: 1px solid var(--dof-line, #fdf6e3) !important;
	color: var(--dof-ink, #12263b) !important;
	font-size: 14px !important;
	line-height: 1.4 !important;
	background: var(--dof-bg-2) !important;
}
.b2bking_tiered_pricing_table tbody tr:last-child td {
	border-bottom: 0 !important;
}
.b2bking_tiered_pricing_table tbody tr.b2bking_active_tier_row td,
.b2bking_tiered_pricing_table tbody tr:hover td {
	background: rgba(45, 106, 79, 0.06) !important;
}
.b2bking_tiered_pricing_table tbody tr.b2bking_active_tier_row td {
	color: var(--dof-accent, #ffe786) !important;
	font-weight: 600 !important;
}
.b2bking_tiered_pricing_table .woocommerce-Price-amount {
	color: inherit !important;
	font-weight: 600 !important;
}
.b2bking_tiered_pricing_table .woocommerce-Price-amount bdi {
	white-space: nowrap;
}

/* Информационная таблица (Спеціальна таблиця інформації) */
.b2bking_information_table,
table.b2bking_information_table {
	width: 100% !important;
	border-collapse: collapse !important;
	border: 1px solid var(--dof-line, rgba(18,38,59,.22)) !important;
	border-radius: 0 !important;
	background: var(--dof-bg-2) !important;
	margin: 0 !important;
}
.b2bking_information_table thead th {
	background: var(--dof-bg, #fdf6e3) !important;
	color: var(--dof-ink-2, #3d5b78) !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	padding: 12px 14px !important;
	border-bottom: 1px solid var(--dof-line, rgba(18,38,59,.22)) !important;
	text-align: left !important;
}
.b2bking_information_table tbody td {
	padding: 12px 14px !important;
	border-bottom: 1px solid var(--dof-line, #fdf6e3) !important;
	color: var(--dof-ink, #12263b) !important;
	font-size: 14px !important;
}
.b2bking_information_table tbody tr:last-child td {
	border-bottom: 0 !important;
}
.b2bking_information_table tbody td:first-child {
	color: var(--dof-ink-2, #3d5b78) !important;
	width: 40%;
}

/* Variations table — bulk-order форма */
.dof-b2b-variations-wrap .b2bking_bulkorder_form_container {
	border: 1px solid var(--dof-line, rgba(18,38,59,.22)) !important;
	border-radius: 0 !important;
	background: var(--dof-bg-2) !important;
}
.dof-b2b-variations-wrap .b2bking_bulkorder_addtocart_button,
.dof-b2b-variations-wrap button.b2bking_bulkorder_addtocart_button {
	background: var(--dof-ink, #12263b) !important;
	color: var(--dof-on-dark) !important;
	border-radius: 0 !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	padding: 16px 28px !important;
	border: 0 !important;
}
.dof-b2b-variations-wrap .b2bking_bulkorder_addtocart_button:hover {
	background: var(--dof-accent, #ffe786) !important;
}

/* Compact spacing внутри prod-info колонки */
.prod-info .dof-b2b-tier-wrap { margin-top: 18px; }
.prod-info .dof-b2b-info-wrap { margin-top: 14px; }

@media (max-width: 600px) {
	.b2bking_tiered_pricing_table thead th,
	.b2bking_information_table thead th {
		font-size: 10px !important;
		padding: 10px 12px !important;
	}
	.b2bking_tiered_pricing_table tbody td,
	.b2bking_information_table tbody td {
		font-size: 13px !important;
		padding: 11px 12px !important;
	}
}


/* v0.18.8 — B2BKing tier table → card-grid layout (как в прототипе) */

.dof-b2b-tier-wrap {
	margin: 18px 0 14px;
}

/* Скрываем thead — заголовки колонок не нужны в card-layout */
.b2bking_tiered_price_table thead {
	display: none !important;
}

/* Сама таблица — без бордеров, фон прозрачный */
.b2bking_tiered_price_table,
table.b2bking_tiered_price_table {
	width: 100% !important;
	border: 0 !important;
	border-collapse: separate !important;
	border-spacing: 0 !important;
	background: transparent !important;
	margin: 0 !important;
	padder: 0 !important;
}

/* tbody — горизонтальный ряд карточек */
.b2bking_tiered_price_table tbody {
	display: flex !important;
	gap: 1px !important;
	background: transparent !important;
}

/* Каждая строка → карточка tier */
.b2bking_tiered_price_table tbody tr {
	flex: 1 !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 4px !important;
	padding: 14px 10px !important;
	background: var(--dof-bg-2, #fdf6e3) !important;
	border: 1px solid var(--dof-line, color-mix(in srgb, var(--dof-ink) 10%, transparent)) !important;
	text-align: center !important;
	cursor: default !important;
	transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease !important;
}

/* Скругления краёв */
.b2bking_tiered_price_table tbody tr:first-child {
	border-radius: 2px 0 0 2px !important;
}
.b2bking_tiered_price_table tbody tr:last-child {
	border-radius: 0 2px 2px 0 !important;
}
.b2bking_tiered_price_table tbody tr:not(:first-child) {
	border-left-width: 0 !important;
}

/* td — блочные элементы внутри карточки, без табличных бордеров */
.b2bking_tiered_price_table tbody td {
	display: block !important;
	border: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	width: 100% !important;
	text-align: center !important;
}

/* Первая ячейка — qty range */
.b2bking_tiered_price_table tbody td:first-child {
	font-size: 11px !important;
	font-weight: 500 !important;
	letter-spacing: 0.04em !important;
	color: var(--dof-ink-3, #5c7590) !important;
	text-transform: none !important;
	order: 1;
}

/* Последняя ячейка — цена */
.b2bking_tiered_price_table tbody td:last-child {
	font-size: 15px !important;
	font-weight: 600 !important;
	color: var(--dof-ink, #12263b) !important;
	order: 2;
}
.b2bking_tiered_price_table tbody td:last-child .woocommerce-Price-amount,
.b2bking_tiered_price_table tbody td:last-child bdi {
	color: inherit !important;
	font-weight: 600 !important;
}

/* Активный tier (B2BKing навешивает класс через JS, мы тоже навесим в нашем JS) */
.b2bking_tiered_price_table tbody tr.b2bking_active_tier_row,
.b2bking_tiered_price_table tbody tr.is-active {
	background: var(--dof-alt, #fff6d1) !important;
	border-color: color-mix(in srgb, var(--dof-accent) 30%, transparent) !important;
	z-index: 1;
	position: relative;
}
.b2bking_tiered_price_table tbody tr.b2bking_active_tier_row td:last-child,
.b2bking_tiered_price_table tbody tr.is-active td:last-child {
	color: var(--dof-adk, #f0d65a) !important;
}

/* Mobile — 1 столбец */
@media (max-width: 600px) {
	.b2bking_tiered_price_table tbody {
		flex-direction: column !important;
		gap: 0 !important;
	}
	.b2bking_tiered_price_table tbody tr {
		flex-direction: row !important;
		justify-content: space-between !important;
		padding: 12px 14px !important;
		border-left-width: 1px !important;
		border-bottom-width: 0 !important;
	}
	.b2bking_tiered_price_table tbody tr:last-child {
		border-bottom-width: 1px !important;
	}
	.b2bking_tiered_price_table tbody tr:first-child {
		border-radius: 2px 2px 0 0 !important;
	}
	.b2bking_tiered_price_table tbody tr:last-child {
		border-radius: 0 0 2px 2px !important;
	}
	.b2bking_tiered_price_table tbody td {
		width: auto !important;
		text-align: left !important;
	}
	.b2bking_tiered_price_table tbody td:last-child {
		text-align: right !important;
	}
}


/* v0.18.9 — tier header + qty unit + actions 70/30 */

/* Заголовок над tier-таблицей */
.dof-b2b-tier-h {
	margin: 0 0 10px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--dof-ink-2, #3d5b78);
}

/* Добавляем «шт» в первую ячейку tier-таблицы */
.b2bking_tiered_price_table tbody td:first-child::after {
	content: ' шт';
	color: inherit;
	white-space: pre;
}

/* Раскладка кнопок ── 70/30 на десктопе, на всю ширину контейнера */
.prod-actions {
	display: flex;
	flex-direction: row;
	align-items: stretch;
	gap: 10px;
	width: 100%;
	margin: 16px 0 10px;
}
.prod-actions__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 52px;
	padding: 0 18px;
	font-family: inherit;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	border-radius: 0;
	border: 1px solid transparent;
	cursor: pointer;
	transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
	white-space: nowrap;
}
.prod-actions__btn:active { transform: translateY(1px); }
.prod-actions__btn:disabled { opacity: 0.5; cursor: not-allowed; }

.prod-actions__btn--primary {
	flex: 7 1 0;
	background: var(--dof-ink, #12263b);
	color: var(--dof-bg, #faeec6);
	border-color: var(--dof-ink, #12263b);
}
.prod-actions__btn--primary:hover {
	background: var(--dof-accent, #ffe786);
	border-color: var(--dof-accent, #ffe786);
}

.prod-actions__btn--ghost {
	flex: 3 1 0;
	background: transparent;
	color: var(--dof-accent, #ffe786);
	border-color: var(--dof-accent, #ffe786);
}
.prod-actions__btn--ghost:hover {
	background: var(--dof-alt, #fff6d1);
}

@media (max-width: 600px) {
	.prod-actions {
		flex-direction: column;
		gap: 8px;
	}
	.prod-actions__btn {
		flex: 1 1 auto;
		width: 100%;
		height: 50px;
	}
}


/* v0.18.10 — fix prod-grid mobile overflow */

.prod-grid > * {
	min-width: 0 !important;
	max-width: 100% !important;
}
.prod-info {
	min-width: 0;
	max-width: 100%;
}
.dh-matrix {
	max-width: 100%;
}


/* v0.18.11 — equalize prod-actions buttons (override old .dh-matrix__submit margin/padding) */

.prod-actions .dh-matrix__submit,
.prod-actions .prod-actions__btn {
	margin: 0 !important;
	padding: 0 18px !important;
	height: 52px !important;
	line-height: 1 !important;
	box-sizing: border-box !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0;
}

/* Гарантируем одинаковое выравнивание flex-родителя */
.prod-actions {
	align-items: stretch !important;
}


/* v0.18.12 — tier table multi-row grid (3-в-ряд с переносом) */

/* Переопределяем v0.18.8 flex-layout на CSS Grid с авто-переносом */
.b2bking_tiered_price_table tbody {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 1px !important;
	flex-direction: initial !important;
}

.b2bking_tiered_price_table tbody tr {
	flex: initial !important;
	border-left-width: 1px !important;
	border-radius: 2px !important;
}

/* Сбрасываем спец-скругления первого/последнего ряда от v0.18.8 — теперь все одинаковые */
.b2bking_tiered_price_table tbody tr:first-child,
.b2bking_tiered_price_table tbody tr:last-child {
	border-radius: 2px !important;
}
.b2bking_tiered_price_table tbody tr:not(:first-child) {
	border-left-width: 1px !important;
}

/* Mobile — 1 столбец */
@media (max-width: 600px) {
	.b2bking_tiered_price_table tbody {
		grid-template-columns: 1fr !important;
	}
}


/* v0.18.16 — Опис влево + Розмірна сітка + Відгуки */

/* Опис: full-width внутри prod-wrap, выровнен влево, читаемая ширина */
.prod-desc {
	max-width: none !important;
	margin: 60px 0 0 !important;
	padding: 40px 0 0 !important;
	border-top: 1px solid var(--dof-line, #e8d9ab);
}
.prod-desc__h {
	font: 500 22px/1.2 var(--dof-font-display, 'Cabinet Grotesk'), Inter, system-ui, sans-serif;
	color: var(--dof-ink, #12263b);
	margin: 0 0 18px;
}
.prod-desc__body {
	font-size: 15px;
	line-height: 1.7;
	color: var(--dof-ink-2, #3d5b78);
	max-width: 920px;
}
.prod-desc__body p { margin: 0 0 14px; }

/* Заголовок секции "Вибір кольору..." с кнопкой Розмірна сітка справа */
.prod-sizes-h {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 6px 0 12px;
}
.prod-sizes-h .prod-sizes-ttl {
	margin: 0;
	font: 500 13px/1.2 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.04em;
	color: var(--dof-ink, #12263b);
}
.prod-sizes-h__guide {
	display: inline-flex;
	align-items: center;
}
/* Скин на родную Woodmart кнопку size guide */
.prod-sizes-h__guide .wd-size-guide-btn,
.prod-sizes-h__guide .size-guide-btn {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: var(--dof-accent, #ffe786) !important;
	background: transparent !important;
	border: 1px solid var(--dof-accent, #ffe786) !important;
	border-radius: 0 !important;
	padding: 9px 14px !important;
	cursor: pointer;
	transition: background 0.18s ease, color 0.18s ease;
}
.prod-sizes-h__guide .wd-size-guide-btn:hover,
.prod-sizes-h__guide .size-guide-btn:hover {
	background: var(--dof-alt, #fff6d1) !important;
}
.prod-sizes-h__guide .wd-size-guide-btn .wd-tools-icon {
	width: 14px !important;
	height: 14px !important;
}

/* Отзывы: тонкий wrap — внутри Woodmart рендерит свою разметку (woocommerce-Reviews) */
.prod-reviews {
	margin: 60px 0 0;
	padding: 40px 0 0;
	border-top: 1px solid var(--dof-line, #e8d9ab);
}
.prod-reviews .woocommerce-Reviews-title {
	font: 500 22px/1.2 var(--dof-font-display, 'Cabinet Grotesk'), Inter, system-ui, sans-serif !important;
	color: var(--dof-ink, #12263b) !important;
	margin: 0 0 24px !important;
}

@media (max-width: 1023px) {
	.prod-sizes-h {
		flex-wrap: wrap;
		gap: 8px;
	}
	.prod-desc { margin-top: 40px !important; padding-top: 28px !important; }
	.prod-reviews { margin-top: 40px; padding-top: 28px; }
}


/* v0.18.18 — review form star rating (p.stars > a) */

.prod-reviews p.stars,
p.stars {
	display: inline-flex;
	gap: 2px;
	margin: 6px 0 14px;
	font-size: 22px;
	line-height: 1;
}
.prod-reviews p.stars > span,
p.stars > span {
	display: inline-flex;
	gap: 2px;
}
.prod-reviews p.stars a,
p.stars a {
	display: inline-block;
	position: relative;
	width: 1.05em;
	height: 1.05em;
	overflow: hidden;
	text-indent: -9999em;
	cursor: pointer;
	text-decoration: none;
}
.prod-reviews p.stars a::before,
p.stars a::before {
	content: "\2605"; /* ★ */
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	text-indent: 0;
	line-height: 1;
	color: var(--dof-line, #a5b4c4);
	transition: color 0.15s ease;
}

/* Hover: ВСЯ строка подсвечивается accent, но при hover на конкретной звезде —
   её next siblings возвращаются в серый */
.prod-reviews p.stars:hover a::before,
p.stars:hover a::before {
	color: var(--dof-accent, #ffe786);
}
.prod-reviews p.stars a:hover ~ a::before,
p.stars a:hover ~ a::before {
	color: var(--dof-line, #a5b4c4);
}

/* Selected — wc-single-product.js навешивает класс .selected на p.stars
   и .active на конкретную <a> (или ставит её в attribute aria-checked="true") */
.prod-reviews p.stars.selected a.active::before,
p.stars.selected a.active::before {
	color: var(--dof-accent, #ffe786);
}
.prod-reviews p.stars.selected a.active ~ a::before,
p.stars.selected a.active ~ a::before {
	color: var(--dof-line, #a5b4c4);
}
.prod-reviews p.stars.selected a:not(.active)::before,
p.stars.selected a:not(.active)::before {
	color: var(--dof-accent, #ffe786);
}
.prod-reviews p.stars.selected a.active ~ a::before,
p.stars.selected a.active ~ a::before {
	color: var(--dof-line, #a5b4c4);
}


/* v0.18.21 — hide Woodmart sticky-add-to-cart bar on product page (мы используем свою матрицу) */

body.single-product .wd-sticky-btn {
	display: none !important;
}
body.single-product {
	padding-bottom: 0 !important;
}

/* Ph14 DEV-12/DEV-14 — product-page mobile bottom-toolbar clearance. 14-05 (interim) hid
   .wd-toolbar after proving a padding-bottom reserve alone cannot close the worst-case-scroll
   gate (qa-phase14.js's worstCaseScroll() always scrolls the CTA's own bottom edge flush with
   the viewport bottom, reachable on any page with ordinary trailing content -- same root cause
   as 14-02-SUMMARY's Drift 2). 14-07 (this block, re-tuned 2026-08-09) adds the REAL
   product-specific sticky CTA bar (.merch-sticky-cta, markup in merch-product-page.php, JS in
   merch-sticky-cta.js) that replaces .wd-toolbar's role on this page per the audit ("sticky CTA
   вместо общего тулбара на товаре"). Menu access on mobile product stays available via the
   HEADER burger (.wd-header-mobile-nav, live-confirmed present/visible independent of
   .wd-toolbar) -- .wd-toolbar's own "Меню" item was never the only path, so hiding it does not
   remove drawer access (dev13 sanity, no regression). .wd-toolbar stays hidden (decision
   unchanged); .wd-sticky-btn stays disabled (RESEARCH Pitfall 4, v0.18.21, untouched). The
   #main-content padding-bottom re-tune (re-sized from the old 55 px toolbar assumption to the
   new bar's own live-measured height, ~69 px incl. padding, no safe-area-inset on this test rig,
   plus a buffer) lives LOWER in this file (search "DEV-14 cascade note") -- deploy-verified
   this session that the pre-existing "PHASE 10 — FINAL VISUAL CONTRACT" block (~line 9973)
   sets the SAME selector's padding-bottom to 24 px !important and, being later in the file with
   identical specificity, was silently winning the cascade over a same-block declaration here;
   redeclaring after it (not here) is what actually takes effect. .scrollToTop is pushed up by
   the bar's height so it never sits behind/under the bar. */
@media (max-width: 767px) {
	body.single-product .wd-toolbar {
		display: none !important;
	}
	body.single-product .scrollToTop {
		bottom: calc(69px + 12px + env(safe-area-inset-bottom)) !important; /* one-off: 69px = .merch-sticky-cta's own live-measured bar height (see comment above), 12px = clearance buffer -- a measured push-up value, not a ladder rung */
	}
}

/* Ph14 DEV-14 (14-07) — mobile sticky CTA bar itself: fixed bottom, full-width, safe-area-
   aware, layered above .wd-toolbar/.scrollToTop (both z-index:350 in Woodmart core). Consumes
   the 14-03 --ml-btn-* contract as-is (ml-btn ml-btn--primary on the button, no new button
   styles) -- only the BAR CONTAINER and price text are new CSS here. */
.merch-sticky-cta {
	display: none; /* mobile-only, see media query below */
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 355;
	align-items: center;
	justify-content: space-between;
	gap: var(--dof-sp-3, 12px);
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); /* one-off: measured safe-area-aware bar padding, mixed with env() so not a plain ladder value */
	background: var(--dof-bg-2);
	border-top: 1px solid var(--dof-line, rgba(18,38,59,.22));
	box-shadow: 0 -2px 8px rgba(0, 0, 0, .08); /* one-off: measured bar-lift shadow, no shadow ladder exists in this design system */
	transform: translateY(100%);
	opacity: 0;
	visibility: hidden;
	transition: transform 220ms ease, opacity 220ms ease, visibility 0s linear 220ms;
	pointer-events: none;
}
.merch-sticky-cta__price {
	font-size: 13px; /* one-off: sticky-bar price text, sized between --dof-fs-sm(12) and --dof-fs-body's clamp floor(14) to fit the compact bar without wrapping -- measured, no exact rung */
	font-weight: 600;
	color: var(--dof-ink, #12263b);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.merch-sticky-cta__btn {
	flex: 0 0 auto;
}
@media (max-width: 767px) {
	body.single-product .merch-sticky-cta {
		display: flex;
	}
	body.single-product .merch-sticky-cta.is-shown {
		transform: translateY(0);
		opacity: 1;
		visibility: visible;
		transition: transform 220ms ease, opacity 220ms ease, visibility 0s linear 0s;
		pointer-events: auto;
	}
}
@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
	body.single-product .merch-sticky-cta,
	body.single-product .merch-sticky-cta.is-shown {
		transition: visibility 0s linear;
	}
}


/* v0.18.23 — full-width shop archive (каталог) */

body.archive.woocommerce .wd-content-layout.container,
body.post-type-archive-product .wd-content-layout.container,
body.tax-product_cat .wd-content-layout.container,
body.tax-product_tag .wd-content-layout.container {
	max-width: 1600px !important;
	width: 100% !important;
	padding-left: var(--dof-site-pad, clamp(24px, 4vw, 64px)) !important;
	padding-right: var(--dof-site-pad, clamp(24px, 4vw, 64px)) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Отступы сверху/снизу для архива */
body.archive.woocommerce .main-page-wrapper,
body.post-type-archive-product .main-page-wrapper,
body.tax-product_cat .main-page-wrapper,
body.tax-product_tag .main-page-wrapper {
	padding-top: 60px;
	padding-bottom: 80px;
}

/* На мобильном — поменьше */
@media (max-width: 768px) {
	body.archive.woocommerce .main-page-wrapper,
	body.post-type-archive-product .main-page-wrapper,
	body.tax-product_cat .main-page-wrapper,
	body.tax-product_tag .main-page-wrapper {
		padding-top: 32px;
		padding-bottom: 48px;
	}
}


/* v0.18.24 — fix: расширить main-page-wrapper до 1600 на архивах + padding !important */

body.archive.woocommerce .wd-page-content.main-page-wrapper,
body.post-type-archive-product .wd-page-content.main-page-wrapper,
body.tax-product_cat .wd-page-content.main-page-wrapper,
body.tax-product_tag .wd-page-content.main-page-wrapper {
	max-width: 1600px !important;
	padding-top: 60px !important;
	padding-bottom: 80px !important;
}

body.archive.woocommerce .wd-content-layout.container,
body.post-type-archive-product .wd-content-layout.container,
body.tax-product_cat .wd-content-layout.container,
body.tax-product_tag .wd-content-layout.container {
	max-width: 100% !important;
	padding-left: var(--dof-site-pad, clamp(24px, 4vw, 64px)) !important;
	padding-right: var(--dof-site-pad, clamp(24px, 4vw, 64px)) !important;
}

@media (max-width: 768px) {
	body.archive.woocommerce .wd-page-content.main-page-wrapper,
	body.post-type-archive-product .wd-page-content.main-page-wrapper,
	body.tax-product_cat .wd-page-content.main-page-wrapper,
	body.tax-product_tag .wd-page-content.main-page-wrapper {
		padding-top: 32px !important;
		padding-bottom: 48px !important;
	}
}


/* v0.18.25 — full-width FHD/2K: убираем max-width: 1600 у главных контейнеров */

/* Product card */
.prod-wrap {
	max-width: none !important;
	padding-left: var(--dof-site-pad, clamp(24px, 4vw, 64px));
	padding-right: var(--dof-site-pad, clamp(24px, 4vw, 64px));
}

/* Каталог (shop archive) */
body.archive.woocommerce .wd-page-content.main-page-wrapper,
body.post-type-archive-product .wd-page-content.main-page-wrapper,
body.tax-product_cat .wd-page-content.main-page-wrapper,
body.tax-product_tag .wd-page-content.main-page-wrapper {
	max-width: none !important;
}


/* v0.18.26 — pagination next/prev: один шеврон (убираем дубль-стрелку) */

.woocommerce.archive .woocommerce-pagination ul.page-numbers li .next,
.woocommerce.archive .woocommerce-pagination ul.page-numbers li .prev,
.woocommerce-pagination ul.page-numbers li .next,
.woocommerce-pagination ul.page-numbers li .prev {
	position: relative;
	width: 44px !important;
	height: 36px !important;
	padding: 0 !important;
	font-size: 0 !important;
	color: transparent !important;
	overflow: hidden;
}

/* Удаляем Woodmart ::before-иконку */
.woocommerce-pagination ul.page-numbers li .next::before,
.woocommerce-pagination ul.page-numbers li .prev::before {
	display: none !important;
	content: none !important;
}

/* Рисуем чистый шеврон через ::after */
.woocommerce-pagination ul.page-numbers li .next::after,
.woocommerce-pagination ul.page-numbers li .prev::after {
	content: '';
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	line-height: 1;
	color: var(--dof-ink, #12263b);
	font-family: inherit;
}
.woocommerce-pagination ul.page-numbers li .next::after { content: '›'; }
.woocommerce-pagination ul.page-numbers li .prev::after { content: '‹'; }

.woocommerce-pagination ul.page-numbers li .next:hover::after,
.woocommerce-pagination ul.page-numbers li .prev:hover::after {
	color: var(--dof-accent, #ffe786);
}


/* v0.18.28 — fix: heart icon без фона + dropdown профиля чёрный текст */

/* Сердечко (wishlist) в карточках товаров — без фона, без круга */
.product .wd-action-btn,
.product .wd-action-btn.wd-style-icon,
.products .product .wd-wishlist-btn,
.products .product .wd-compare-btn {
	background: transparent !important;
	box-shadow: none !important;
	border: 0 !important;
}
.product .wd-action-btn.wd-style-icon::before,
.products .product .wd-action-btn.wd-style-icon::before {
	background: transparent !important;
	box-shadow: none !important;
}
.product .wd-action-btn:hover,
.products .product .wd-action-btn:hover {
	background: transparent !important;
}
.product .wd-action-btn .wd-tools-icon,
.products .product .wd-action-btn .wd-tools-icon {
	color: var(--dof-ink, #12263b) !important;
}
.product .wd-action-btn:hover .wd-tools-icon,
.products .product .wd-action-btn:hover .wd-tools-icon {
	color: var(--dof-accent, #ffe786) !important;
}

/* Header dropdown профиля «Привіт, X» — белый фон + чёрный текст */
.wd-header-my-account .wd-dropdown-menu,
.wd-header-my-account .wd-dropdown-menu.color-scheme-dark {
	background: var(--dof-bg-2) !important;
	color: var(--dof-ink, #12263b) !important;
	border: 1px solid var(--dof-line, #e8d9ab) !important;
	box-shadow: 0 8px 24px color-mix(in srgb, var(--dof-ink) 6%, transparent) !important;
}
.wd-header-my-account .wd-dropdown-menu a,
.wd-header-my-account .wd-dropdown-menu.color-scheme-dark a,
.wd-header-my-account .wd-dropdown-menu li,
.wd-header-my-account .wd-dropdown-menu.color-scheme-dark li {
	color: var(--dof-ink, #12263b) !important;
}
.wd-header-my-account .wd-dropdown-menu a:hover,
.wd-header-my-account .wd-dropdown-menu.color-scheme-dark a:hover {
	color: var(--dof-accent, #ffe786) !important;
	background: var(--dof-bg, #fdf6e3) !important;
}


/* v0.18.29 — Thank-you page redesign (.dh-thankyou) */

/* Скрываем WP page title «Оформлення замовлення» / «Дякуємо за замовлення!» */
body.woocommerce-order-received .entry-title,
body.woocommerce-order-received .page-title,
body.woocommerce-order-received .breadcrumbs,
body.woocommerce-order-received .wd-page-title,
body.woocommerce-order-received .woocommerce-thankyou-order-received {
	display: none !important;
}

/* Wrap full-width + padding */
.dh-thankyou {
	max-width: 1100px;
	margin: 0 auto;
	padding: 80px var(--dof-site-pad, 24px) 120px;
	text-align: center;
}

@media (max-width: 768px) {
	.dh-thankyou { padding: 48px 20px 64px; }
}

/* Animated success mark */
.dh-thankyou__mark {
	display: inline-block;
	width: 96px;
	height: 96px;
	margin: 0 auto 28px;
}
.dh-thankyou__mark svg {
	width: 100%;
	height: 100%;
}
.dh-thankyou__mark-circle {
	stroke-dasharray: 277;
	stroke-dashoffset: 277;
	animation: dh-thankyou-circle 0.8s cubic-bezier(0.65, 0, 0.45, 1) 0.1s forwards;
}
.dh-thankyou__mark-check {
	stroke-dasharray: 70;
	stroke-dashoffset: 70;
	animation: dh-thankyou-check 0.5s cubic-bezier(0.65, 0, 0.45, 1) 0.7s forwards;
}
@keyframes dh-thankyou-circle {
	to { stroke-dashoffset: 0; }
}
@keyframes dh-thankyou-check {
	to { stroke-dashoffset: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.dh-thankyou__mark-circle,
	.dh-thankyou__mark-check { animation: none; stroke-dashoffset: 0; }
}

/* Заголовок + subtitle */
.dh-thankyou__h {
	font: 500 clamp(28px, 3.4vw, 40px)/1.15 var(--dof-font-display, 'Cabinet Grotesk'), Inter, system-ui, sans-serif;
	color: var(--dof-ink, #12263b);
	margin: 0 0 16px;
	letter-spacing: -0.01em;
}
.dh-thankyou__sub {
	font: 400 17px/1.6 var(--dof-font-body, Inter), system-ui, sans-serif;
	color: var(--dof-ink-2, #3d5b78);
	max-width: 640px;
	margin: 0 auto 56px;
}

/* Overview block: стилизуем стандартную WC сводку */
.dh-thankyou__overview {
	margin: 0 0 56px;
}
.dh-thankyou__overview .woocommerce-thankyou-order-details,
.dh-thankyou__overview ul.woocommerce-thankyou-order-details {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 0 !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 1px solid var(--dof-line, #e8d9ab) !important;
	background: var(--dof-bg-2) !important;
}
.dh-thankyou__overview .woocommerce-thankyou-order-details li {
	padding: 24px 18px !important;
	border-right: 1px solid var(--dof-line, #e8d9ab) !important;
	text-align: center !important;
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 16px !important;
	font-weight: 500 !important;
	color: var(--dof-ink, #12263b) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	margin: 0 !important;
}
.dh-thankyou__overview .woocommerce-thankyou-order-details li:last-child {
	border-right: 0 !important;
}
.dh-thankyou__overview .woocommerce-thankyou-order-details li strong {
	display: block !important;
	font-weight: 600 !important;
	color: var(--dof-ink, #12263b) !important;
	font-size: 18px !important;
	order: 2;
}
.dh-thankyou__overview .woocommerce-thankyou-order-details li::before {
	content: '';
}

@media (max-width: 768px) {
	.dh-thankyou__overview .woocommerce-thankyou-order-details {
		grid-template-columns: 1fr 1fr !important;
	}
	.dh-thankyou__overview .woocommerce-thankyou-order-details li:nth-child(2n) {
		border-right: 0 !important;
	}
	.dh-thankyou__overview .woocommerce-thankyou-order-details li:nth-child(-n+2) {
		border-bottom: 1px solid var(--dof-line, #e8d9ab) !important;
	}
}

/* Order details / addresses (стандартные WC table) */
.dh-thankyou__details {
	text-align: left;
	margin: 0 0 48px;
}
.dh-thankyou__details h2,
.dh-thankyou__details .woocommerce-column__title {
	font: 500 22px/1.2 var(--dof-font-display, 'Cabinet Grotesk'), Inter, system-ui, sans-serif !important;
	color: var(--dof-ink, #12263b) !important;
	margin: 32px 0 18px !important;
}
.dh-thankyou__details table.woocommerce-table--order-details,
.dh-thankyou__details .woocommerce-table {
	width: 100% !important;
	border-collapse: collapse !important;
	border: 1px solid var(--dof-line, #e8d9ab) !important;
	background: var(--dof-bg-2) !important;
	margin: 0 0 32px !important;
}
.dh-thankyou__details .woocommerce-table th,
.dh-thankyou__details .woocommerce-table td {
	padding: 14px 18px !important;
	border-bottom: 1px solid var(--dof-line, #fdf6e3) !important;
	font-size: 14px !important;
	text-align: left !important;
}
.dh-thankyou__details .woocommerce-table th {
	background: var(--dof-bg, #fdf6e3) !important;
	font-size: 11px !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: var(--dof-ink-3, #5c7590) !important;
}
.dh-thankyou__details .woocommerce-customer-details {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}
.dh-thankyou__details .woocommerce-customer-details address {
	padding: 22px 24px !important;
	border: 1px solid var(--dof-line, #e8d9ab) !important;
	background: var(--dof-bg-2) !important;
	font-style: normal !important;
	font-size: 14px !important;
	line-height: 1.7 !important;
	color: var(--dof-ink-2, #3d5b78) !important;
}
@media (max-width: 768px) {
	.dh-thankyou__details .woocommerce-customer-details {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}

/* CTA */
.dh-thankyou__cta {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
	margin: 56px 0 0;
}
.dh-thankyou__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 16px 32px;
	font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	border: 1px solid transparent;
	border-radius: 0;
	cursor: pointer;
	transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
	text-decoration: none !important;
}
.dh-thankyou__btn--primary {
	background: var(--dof-ink, #12263b);
	color: var(--dof-on-dark);
	border-color: var(--dof-ink, #12263b);
}
.dh-thankyou__btn--primary:hover {
	background: var(--dof-accent, #ffe786);
	border-color: var(--dof-accent, #ffe786);
	color: var(--dof-ink, #12263b);
}
.dh-thankyou__btn--ghost {
	background: transparent;
	color: var(--dof-accent, #ffe786);
	border-color: var(--dof-accent, #ffe786);
}
.dh-thankyou__btn--ghost:hover {
	background: var(--dof-alt, #fff6d1);
}


/* Phase 09 — one functional WooCommerce account presentation. */
.woocommerce-account {
	--account-space-1: 4px;
	--account-space-2: 8px;
	--account-space-3: 16px;
	--account-space-4: 24px;
	--account-space-5: 32px;
	--account-space-6: 48px;
	--account-space-7: 64px;
}

body.woocommerce-account .wd-my-account-wrapper {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: 32px;
	width: min(calc(100% - 64px), var(--wd-container-w));
	margin-inline: auto;
	padding: 0 0 clamp(64px, 8vw, 104px);
}

@media (min-width: 1024px) {
	body.woocommerce-account .wd-my-account-wrapper,
	body.woocommerce-account .wd-my-account-wrapper.wd-grid-g {
		grid-template-columns: 240px minmax(0, 1fr) !important;
	}

	body.woocommerce-account .wd-my-account-sidebar,
	body.woocommerce-account .wd-my-account-sidebar.wd-grid-col {
		grid-column: 1 !important;
		width: 240px !important;
	}

	body.woocommerce-account .woocommerce-MyAccount-content,
	body.woocommerce-account .woocommerce-MyAccount-content.wd-grid-col {
		grid-column: 2 !important;
		width: auto !important;
	}
}

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	min-width: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--dof-line, #e8d9ab);
}

.woocommerce-account .woocommerce-MyAccount-navigation li {
	margin: 0;
	border-bottom: 1px solid var(--dof-line, #e8d9ab);
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: flex;
	align-items: center;
	min-height: 46px !important;
	padding: var(--account-space-2) var(--account-space-3);
	color: var(--dof-ink, #12263b) !important;
	border: 0;
	overflow-wrap: anywhere;
}

.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
	background: var(--dof-bg-2, #fdf6e3);
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active > a,
.woocommerce-account .woocommerce-MyAccount-navigation a[aria-current="page"] {
	color: var(--wd-title-color, #12263b) !important;
	font-weight: 600;
	box-shadow: inset 3px 0 0 var(--dof-accent, #ffe786);
}

.woocommerce-account .woocommerce-MyAccount-navigation a:focus-visible,
.woocommerce-account .woocommerce-MyAccount-content a:focus-visible,
.woocommerce-account .woocommerce-MyAccount-content button:focus-visible,
.woocommerce-account .woocommerce-MyAccount-content input:focus-visible,
.woocommerce-account .woocommerce-MyAccount-content select:focus-visible,
.woocommerce-account .woocommerce-MyAccount-content textarea:focus-visible {
	outline: 2px solid var(--dof-accent, #ffe786) !important;
	outline-offset: 2px;
}

.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-content * {
	min-width: 0;
}

.woocommerce-account .woocommerce-MyAccount-content {
	padding: clamp(24px, 3vw, 40px) !important;
	border: 1px solid var(--wd-form-brd-color);
	border-radius: var(--wd-brd-radius);
	background: var(--wd-main-bgcolor);
}

.woocommerce-account .woocommerce-MyAccount-content h2 {
	font: 600 20px/1.3 var(--dof-font-body, Inter), system-ui, sans-serif;
	margin: 0 0 var(--account-space-4);
}

.woocommerce-account .woocommerce-MyAccount-content p,
.woocommerce-account .woocommerce-MyAccount-content td,
.woocommerce-account .woocommerce-MyAccount-content th,
.woocommerce-account .woocommerce-MyAccount-content a {
	overflow-wrap: anywhere;
}

.woocommerce-account .woocommerce-MyAccount-content a {
	display: inline-flex;
	align-items: center;
	min-width: 44px;
	min-height: 44px !important;
}

.woocommerce-account .woocommerce-MyAccount-content input,
.woocommerce-account .woocommerce-MyAccount-content select,
.woocommerce-account .woocommerce-MyAccount-content textarea,
.woocommerce-account .woocommerce-MyAccount-content button,
.woocommerce-account .woocommerce-MyAccount-content .button,
.woocommerce-account .woocommerce-form-login input,
.woocommerce-account .woocommerce-form-register input,
.woocommerce-account .woocommerce-form-login button,
.woocommerce-account .woocommerce-form-register button {
	min-height: 44px;
	box-sizing: border-box;
}

.woocommerce-account .woocommerce-MyAccount-content .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--dof-accent, #ffe786) !important;
	border-color: var(--dof-accent, #ffe786) !important;
	color: var(--dof-ink, #12263b) !important;
}

.woocommerce-account .wd-my-account-links,
.woocommerce-account .dh-cab-stats,
.woocommerce-account .dh-cab-stat-cards,
.woocommerce-account .b2bking_account_dashboard_top_content,
.woocommerce-account .dh-cab-menu-toggle,
.woocommerce-account .dh-cab-menu-backdrop,
.woocommerce-account .dh-cab-menu-close {
	display: none !important;
}

.woocommerce-account .dh-cab-empty {
	padding: var(--account-space-4);
	background: var(--dof-bg-2, #fdf6e3);
	border: 1px dashed var(--dof-line, #e8d9ab);
}

.woocommerce-account .dh-cab-field-label,
.woocommerce-account .merch-account-field-label {
	display: none;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--dof-ink-3, #5c7590);
}

.woocommerce-account .merch-account-template-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--account-space-4);
}

.woocommerce-account .merch-account-template-card,
.woocommerce-account .merch-account-manager-card {
	padding: var(--account-space-4);
	border: 1px solid var(--dof-line, #e8d9ab);
	background: var(--dof-bg, #fdf6e3);
}

.woocommerce-account .merch-account-template-preview {
	display: grid;
	place-items: center;
	aspect-ratio: 4 / 3;
	margin-bottom: var(--account-space-3);
	background: var(--dof-bg-2, #fdf6e3);
	overflow: hidden;
}

.woocommerce-account .merch-account-template-preview img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.woocommerce-account .merch-account-template-status,
.woocommerce-account .merch-account-documents-table td:nth-child(5) {
	color: var(--dof-ink-2, #3d5b78);
}

.woocommerce-account .merch-account-manager-card {
	display: flex;
	align-items: center;
	gap: var(--account-space-4);
}

.woocommerce-account .merch-account-manager-avatar {
	display: grid;
	place-items: center;
	flex: 0 0 96px;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background: var(--dof-bg-2, #fdf6e3);
	color: var(--dof-ink, #12263b);
	font-size: 20px;
	font-weight: 600;
}

.woocommerce-account .merch-account-manager-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--account-space-2);
}

.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .merch-account-documents-table {
	width: 100%;
	table-layout: fixed;
	border-collapse: collapse;
}

.woocommerce-account .woocommerce-orders-table th,
.woocommerce-account .woocommerce-orders-table td,
.woocommerce-account .merch-account-documents-table th,
.woocommerce-account .merch-account-documents-table td {
	padding: var(--account-space-3);
	border-bottom: 1px solid var(--dof-line, #e8d9ab);
	text-align: left;
	white-space: normal;
}

.woocommerce-account .merch-account-documents-table td:nth-child(5) {
	font-weight: 600;
	border-left: 2px solid var(--dof-accent, #ffe786);
}

@media (max-width: 1023px) {
	body.woocommerce-account .wd-my-account-wrapper,
	body.woocommerce-account .wd-my-account-wrapper.wd-grid-g {
		display: block !important;
		width: min(calc(100% - 32px), var(--wd-container-w)) !important;
		max-width: var(--wd-container-w) !important;
		padding: 0 0 88px !important;
	}

	body.woocommerce-account .wd-my-account-sidebar,
	body.woocommerce-account .woocommerce-MyAccount-navigation,
	body.woocommerce-account .wd-my-account-sidebar.wd-grid-col {
		display: block !important;
		position: static !important;
		width: 100% !important;
		max-width: none !important;
		height: auto !important;
		margin: 0 0 var(--account-space-4) !important;
		padding: 0 !important;
		transform: none !important;
		box-shadow: none !important;
		overflow: visible !important;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.woocommerce-account .woocommerce-MyAccount-content,
	.woocommerce-account .woocommerce-MyAccount-content.wd-grid-col {
		width: 100% !important;
		max-width: 100% !important;
		padding: 24px !important;
	}

	.woocommerce-account .merch-account-template-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.woocommerce-account .woocommerce-orders-table,
	.woocommerce-account .woocommerce-orders-table tbody,
	.woocommerce-account .merch-account-documents-table,
	.woocommerce-account .merch-account-documents-table tbody {
		display: block !important;
		width: 100% !important;
	}

	.woocommerce-account .woocommerce-orders-table thead,
	.woocommerce-account .merch-account-documents-table thead {
		display: none;
	}

	.woocommerce-account .woocommerce-orders-table tr,
	.woocommerce-account .merch-account-documents-table tr {
		display: grid !important;
		gap: var(--account-space-2);
		width: 100%;
		margin-bottom: var(--account-space-3);
		padding: var(--account-space-3);
		border: 1px solid var(--dof-line, #e8d9ab);
		background: var(--dof-bg, #fdf6e3);
	}

	.woocommerce-account .woocommerce-orders-table td,
	.woocommerce-account .woocommerce-orders-table th[scope="row"],
	.woocommerce-account .merch-account-documents-table td {
		display: grid !important;
		grid-template-columns: minmax(92px, 0.4fr) minmax(0, 1fr);
		align-items: center;
		gap: var(--account-space-3);
		width: 100% !important;
		padding: var(--account-space-1) 0 !important;
		border: 0 !important;
		white-space: normal !important;
		text-align: left !important;
	}

	.woocommerce-account .dh-cab-field-label,
	.woocommerce-account .merch-account-field-label {
		display: block;
	}

	.woocommerce-account .woocommerce-orders-table .button,
	.woocommerce-account .merch-account-documents-table .button {
		width: 100%;
	}
}

@media (max-width: 480px) {
	body.woocommerce-account .wd-my-account-wrapper,
	body.woocommerce-account .wd-my-account-wrapper.wd-grid-g {
		padding: 0 0 88px !important;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.woocommerce-account .merch-account-template-grid {
		grid-template-columns: 1fr;
	}

	.woocommerce-account .merch-account-manager-card {
		align-items: flex-start;
		padding: var(--account-space-3);
	}

	.woocommerce-account .merch-account-manager-avatar {
		flex-basis: 72px;
		width: 72px;
		height: 72px;
	}

	.woocommerce-account .woocommerce-orders-table td,
	.woocommerce-account .woocommerce-orders-table th[scope="row"],
	.woocommerce-account .merch-account-documents-table td {
		grid-template-columns: 1fr;
		gap: var(--account-space-1);
	}
}

@media (prefers-reduced-motion: reduce) {
	.woocommerce-account *,
	.woocommerce-account *::before,
	.woocommerce-account *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* v0.19.8 — F-2: zero margin on footer li (Woodmart base.min.css `:is(ul,ol) li { margin-bottom: var(--li-mb) }` adds spurious gap) */
.dof-footer__col li,
.dof-footer__col ul li {
	margin: 0 !important;
}

/* F-1: 2-line eyebrow with subtle year line */
.dof-footer__eyebrow-year {
	display: inline-block;
	margin-top: 4px;
	opacity: 0.75;
}


/* v0.20.0 — G-4: hide «Нам довіряють» trust-block on home/about/branding/brand-production until client provides logos.
   When logos ready: remove this rule. */
.dh-clients {
	display: none !important;
}


/* v0.20.1 — I-1: ограничить высоту лого в top-bar row чтобы не перекрывал menu items.
   Source: dofamin-white.svg natural 200×100 → constrain to 48×96. Apply in both
   main header and sticky clone. */
.whb-header .site-logo,
.whb-header .site-logo .site-logo__link,
.whb-header .site-logo a {
	height: 48px !important;
	display: inline-flex !important;
	align-items: center !important;
}

.whb-header .site-logo img,
.whb-header .site-logo .custom-logo,
.whb-header .site-logo a img {
	height: 48px !important;
	width: auto !important;
	max-height: 48px !important;
	max-width: 200px !important;
	object-fit: contain !important;
}


/* v0.20.2 — I-1 revision: logo 48 → 56px. Lives in 50px general-header row,
   bottom edge gently overflows by 6px but does NOT touch top-bar (y 4-46). */
.whb-header .site-logo,
.whb-header .site-logo .site-logo__link,
.whb-header .site-logo a {
	height: 56px !important;
}

.whb-header .site-logo img,
.whb-header .site-logo .custom-logo,
.whb-header .site-logo a img {
	height: 56px !important;
	max-height: 56px !important;
	max-width: 240px !important;
}


/* v0.20.3 — G-5: «default»-style inputs (cool light gray bg + soft border).
   Replaces warm cream #f0ece6 from earlier .dh-finp ruleset. */
.dh-fbox .dh-finp,
.dh-fbox .dh-fsel,
.dh-fbox .dh-ftxt,
.dof-form .dh-finp,
.dof-form .dh-fsel,
.dof-form .dh-ftxt {
	background: var(--dof-bg-2) !important;
	border-color: var(--dof-line-strong) !important;
}
.dh-fbox .dh-finp:focus,
.dh-fbox .dh-fsel:focus,
.dh-fbox .dh-ftxt:focus,
.dof-form .dh-finp:focus,
.dof-form .dh-fsel:focus,
.dof-form .dh-ftxt:focus {
	background: var(--dof-bg-2) !important;
	border-color: var(--dof-accent) !important;
}


/* v0.20.4 — K-1: lost-password link in cabinet profile */
.dh-cab-lost-pwd {
	margin: -8px 0 8px;
	font-size: 12px;
	letter-spacing: 0.04em;
}
.dh-cab-lost-pwd a {
	color: var(--dof-accent);
	text-decoration: none;
	border-bottom: 1px solid color-mix(in oklch, var(--dof-accent) 50%, transparent);
	transition: border-color 200ms var(--dof-ease-out);
}
.dh-cab-lost-pwd a:hover {
	border-bottom-color: var(--dof-accent);
}

/* v0.20.4 — K-2: spacing before «Зберегти адресу» button (edit-address WC default form) */
.woocommerce-account .woocommerce-address-fields__field-wrapper + p,
.woocommerce-account form.woocommerce-address-fields .form-row.form-row-wide:last-of-type,
.woocommerce-account form.edit-address-form button,
.woocommerce-account form.woocommerce-EditAccountForm + form button {
	margin-top: 24px !important;
}

.woocommerce-account .woocommerce-address-fields button[type="submit"],
.woocommerce-account .woocommerce-EditAccountForm button[type="submit"] {
	margin-top: 28px !important;
}

/* v0.20.4 — P-4: WooCommerce native reviews block CSS skin to match design system */
#reviews,
.woocommerce-Reviews {
	max-width: 920px;
	margin: 56px 0 0;
	padding: 32px 0 0;
	border-top: 1px solid var(--dof-line);
}
#reviews h2,
#reviews #reply-title,
.woocommerce-Reviews h2,
.woocommerce-Reviews-title {
	font: 600 22px/1.2 var(--dof-font-display, 'Cabinet Grotesk'), Inter, system-ui, sans-serif;
	letter-spacing: -0.01em;
	color: var(--dof-ink, #12263b);
	margin: 0 0 20px;
}

/* reviews list */
#reviews .commentlist,
#reviews ol.commentlist {
	list-style: none;
	padding: 0;
	margin: 0 0 32px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}
#reviews .commentlist li {
	padding: 20px 24px;
	background: var(--dof-bg-2);
	border: 1px solid var(--dof-line);
	border-radius: 4px;
}
#reviews .commentlist .comment-text {
	margin-left: 0;
	border: none !important;
	background: transparent;
	padding: 0;
}
#reviews p.meta {
	font-size: 12px;
	color: var(--dof-ink-3, #5c7590);
	margin: 0 0 10px;
}
#reviews .description {
	font-size: 14px;
	line-height: 1.6;
	color: var(--dof-ink-2, #3d5b78);
}
#reviews .star-rating {
	float: none;
	margin: 0 0 6px;
}

/* review form */
#review_form_wrapper {
	padding: 24px;
	background: var(--dof-bg-2);
	border: 1px solid var(--dof-line);
	border-radius: 4px;
}
#review_form .comment-form {
	margin: 0;
}
#review_form .comment-form label {
	display: block;
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--dof-ink-3, #5c7590);
	margin: 0 0 6px;
	font-weight: 500;
}
#review_form .comment-form input[type="text"],
#review_form .comment-form input[type="email"],
#review_form .comment-form textarea {
	width: 100%;
	font: 14px/1.4 inherit;
	color: var(--dof-ink);
	background: var(--dof-bg-2);
	border: 1px solid var(--dof-line-strong);
	border-radius: 2px;
	padding: 10px 13px;
	outline: none;
	transition: border-color 200ms var(--dof-ease-out), background 200ms var(--dof-ease-out);
}
#review_form .comment-form input:focus,
#review_form .comment-form textarea:focus {
	background: var(--dof-bg-2);
	border-color: var(--dof-accent);
}
#review_form .comment-form-rating .stars {
	margin-bottom: 8px;
}
#review_form .comment-form p {
	margin: 0 0 16px;
}
#review_form .form-submit input[type="submit"] {
	padding: 13px 28px;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 600;
	background: var(--dof-ink, #12263b);
	color: var(--dof-on-dark);
	border: none;
	border-radius: 0;
	cursor: pointer;
	transition: background 200ms var(--dof-ease-out);
}
#review_form .form-submit input[type="submit"]:hover {
	background: var(--dof-accent);
}

/* hide WC dropdown title selector at top of reviews (Найновіші / Старі) — оставляем native */


/* v0.20.5 — P-1: color preview swatches block on product card. */
.prod-color-preview {
	margin: 24px 0;
}
.prod-color-preview__h {
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--dof-ink-3, #5c7590);
	margin: 0 0 12px;
	font-weight: 500;
}
.prod-color-preview__list {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}
.prod-color-preview__sw {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: 4px;
	background: transparent;
	border: none;
	cursor: pointer;
	transition: transform 200ms var(--dof-ease-out);
	font: inherit;
}
.prod-color-preview__sw:hover {
	transform: translateY(-2px);
}
.prod-color-preview__sw.is-active .prod-color-preview__dot {
	box-shadow: 0 0 0 2px var(--dof-accent), 0 0 0 4px #fff;
}
.prod-color-preview__dot {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	background-color: var(--dof-bg-2);
	display: block;
	box-shadow: 0 0 0 1px var(--dof-line, rgba(18,38,59,.22));
	transition: box-shadow 200ms var(--dof-ease-out);
}
.prod-color-preview__sw:hover .prod-color-preview__dot {
	box-shadow: 0 0 0 2px var(--dof-ink, #12263b);
}
.prod-color-preview__lbl {
	font-size: 11px;
	letter-spacing: 0.02em;
	color: var(--dof-ink-2, #3d5b78);
}


/* v0.20.8 — P-6: wishlist + share row on product card. */
.prod-actions-row {
	display: flex;
	gap: 16px;
	align-items: center;
	margin: 16px 0 24px;
	padding: 12px 0;
	border-top: 1px solid var(--dof-line);
	border-bottom: 1px solid var(--dof-line);
}
.prod-actions-row__item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	letter-spacing: 0.04em;
	color: var(--dof-ink-2, #3d5b78);
	background: transparent;
	border: none;
	padding: 6px 0;
	cursor: pointer;
	transition: color 200ms var(--dof-ease-out);
	font-family: inherit;
}
.prod-actions-row__item:hover {
	color: var(--dof-accent);
}
.prod-wishlist-wrap .wd-wishlist-icon,
.prod-wishlist-wrap a.wd-wishlist-btn {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	letter-spacing: 0.04em;
	color: var(--dof-ink-2, #3d5b78);
	background: transparent;
	text-decoration: none;
}
.prod-wishlist-wrap .wd-wishlist-icon::before {
	font-size: 16px;
	color: currentColor;
}
.prod-share-btn svg {
	flex-shrink: 0;
}


/* v0.20.9 — E C-1: size filter sub-headers (дитячі/дорослі) */
.dh-size-subhead {
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--dof-ink-3, #5c7590);
	font-weight: 500;
	margin: 12px 0 6px;
	padding: 0;
	list-style: none !important;
}
.dh-size-subhead:first-child {
	margin-top: 0;
}


/* ─────────────────────────────────────────────────────────────
   v0.21.0 — Revisions batch 2 («Правки v1» QA-feedback)
   ───────────────────────────────────────────────────────────── */

/* R-1: actions row уравнять стилистику (нет uppercase, нет hover-bg, hover → accent) */
.prod-actions-row__item,
.prod-actions-row__item span,
.prod-share-btn,
.prod-share-btn span {
	text-transform: none !important;
}
.prod-actions-row {
	border: none !important;
	padding: 0 !important;
	margin: 16px 0 24px !important;
	display: flex;
	gap: 24px;
	align-items: center;
}
.prod-actions-row__item,
.prod-wishlist-wrap .wd-wishlist-icon,
.prod-wishlist-wrap a.wd-wishlist-btn,
.prod-wishlist-wrap .wd-action-btn {
	background: transparent !important;
	box-shadow: none !important;
	color: var(--dof-ink-2, #3d5b78) !important;
	opacity: 1 !important;
	transition: color 200ms var(--dof-ease-out) !important;
}
.prod-actions-row__item:hover,
.prod-actions-row__item:hover *,
.prod-wishlist-wrap a:hover,
.prod-wishlist-wrap a:hover *,
.prod-wishlist-wrap .wd-wishlist-icon:hover,
.prod-wishlist-wrap .wd-wishlist-icon:hover *,
.prod-share-btn:hover,
.prod-share-btn:hover * {
	color: var(--dof-accent) !important;
	background: transparent !important;
}

/* R-2: убрать линию + уменьшить gap между description и reviews */
#reviews,
.woocommerce-Reviews {
	border-top: none !important;
	margin-top: 24px !important;
	padding-top: 0 !important;
}
.prod-desc {
	padding-bottom: 0 !important;
	margin-bottom: 12px !important;
}
.prod-desc + #reviews,
section.prod-desc + #reviews,
section.prod-desc + .woocommerce-Reviews,
section.prod-desc + .wd-reviews-tools,
section.prod-desc + * {
	margin-top: 24px !important;
}

/* R-3: компактнее footer */
.dof-footer {
	padding-top: 56px !important;
	padding-bottom: 24px !important;
	gap: 32px !important;
}
.dof-footer__top {
	gap: 32px !important;
}
.dof-footer__brand {
	gap: 16px !important;
}
.dof-footer__lede {
	margin: 0 !important;
}
.dof-footer__cta {
	margin-top: 4px !important;
}
.dof-footer__bottom {
	padding-top: 20px !important;
	margin-top: 0 !important;
}

/* R-4: header logo больше (56 → 64) — занимает main row 50px + overflow 14px вниз */
.whb-header .site-logo,
.whb-header .site-logo .site-logo__link,
.whb-header .site-logo a {
	height: 64px !important;
}
.whb-header .site-logo img,
.whb-header .site-logo .custom-logo,
.whb-header .site-logo a img {
	height: 64px !important;
	max-height: 64px !important;
	max-width: 240px !important;
}

/* R-5: global accent button hover — preserves contrast in Woodmart popups
   (wishlist create modal) AND account dropdown (Увійти button) */
a.btn.btn-accent:hover,
button.btn.btn-accent:hover,
.btn.btn-accent:hover,
.wd-wishlist-save-btn:hover,
.wd-wishlist-back-to-lists:hover,
input.button[type="submit"]:hover,
.woocommerce-form-login button[type="submit"]:hover,
.wd-login-form button:hover {
	background: var(--dof-accent, #ffe786) !important;
	color: var(--dof-ink, #12263b) !important;
	border-color: var(--dof-accent, #ffe786) !important;
}

/* R-5 K-3: Wishlist content section bg = page bg (fix «фон не сходиться») */
.woocommerce-account .wd-wishlist-content,
.woocommerce-account .wd-wishlist-head,
.woocommerce-account .tinv-wishlist,
body.woocommerce-account.woocommerce-wishlist .wd-content-area {
	background: transparent !important;
}


/* v0.21.2 — fix logo column 20px hardcoded height → auto so 64px logo fits */
.whb-header .whb-column.whb-col-left.whb-column8,
.whb-header .whb-column-logo {
	height: auto !important;
	min-height: 64px !important;
}


/* ─────────────────────────────────────────────────────────────
   v0.21.3 — Revisions batch 4 (QA round 2)
   ───────────────────────────────────────────────────────────── */

/* R2-1: pure white on wishlist & cabinet (no off-white diff) */
body.page-id-60,
body.woocommerce-wishlist,
body.woocommerce-account,
body.woocommerce-account .wd-page-wrapper,
body.page-id-60 .wd-page-wrapper {
	background: var(--dof-bg-2) !important;
}

/* R2-2: бОльший лого — 72px height + zero padding */
.whb-header .site-logo,
.whb-header .site-logo .site-logo__link,
.whb-header .site-logo a {
	height: 72px !important;
	padding: 0 !important;
}
.whb-header .site-logo img,
.whb-header .site-logo .custom-logo,
.whb-header .site-logo a img {
	height: 72px !important;
	max-height: 72px !important;
	max-width: 280px !important;
	padding: 0 !important;
}
/* R2-3: gap над «Увійти» button в account-dropdown login form */
.wd-dropdown-my-account .woocommerce-form-login button[type="submit"],
.wd-dropdown-my-account .woocommerce-form-login input[type="submit"],
.wd-dropdown-my-account form.login button[type="submit"],
.wd-login-form button[type="submit"] {
	margin-top: 20px !important;
}
.wd-dropdown-my-account .woocommerce-form-login p,
.wd-dropdown-my-account form.login p {
	margin-bottom: 14px !important;
}

/* R2-4: catalog carousel/grid card buttons aligned to bottom even
   when card has no swatch-row (force flex column + auto margin) */
.wd-products .wd-product,
.wd-products-archive .wd-product,
.products .wd-product {
	display: flex !important;
}
.wd-products .wd-product .product-wrapper,
.wd-products-archive .wd-product .product-wrapper,
.products .wd-product .product-wrapper {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 1 auto !important;
}
.wd-products .wd-product .product-element-bottom,
.wd-products-archive .wd-product .product-element-bottom,
.products .wd-product .product-element-bottom {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 !important;
	justify-content: flex-start !important;
}
.wd-products .wd-product .product-element-bottom .button,
.wd-products .wd-product .product-element-bottom a.add_to_cart_button,
.wd-products .wd-product .product-element-bottom > a:last-child,
.wd-products-archive .wd-product .product-element-bottom .button,
.products .wd-product .product-element-bottom .button {
	margin-top: auto !important;
}

/* v0.21.4 — продолжение R2-4: даже когда у карточки 0 swatches, swatch row
   занимает фиксированную min-height чтобы name/price не сдвигались вверх. */
.wd-product .product-element-bottom .wd-swatches-grid,
.wd-product .product-element-bottom .wd-swatches-product,
.wd-product .wd-swatches-on-grid {
	min-height: 22px !important;
}
.wd-product .product-element-bottom > div:empty {
	min-height: 22px !important;
}

/* v0.21.5 — final R2-4 fix: когда .wd-swatches-product/.wd-swatches-grid ОТСУТСТВУЮТ
   в DOM (товары без pa_kolir вообще), используем pseudo-element ::before
   как 22px placeholder в начале product-element-bottom. */
.wd-product .product-element-bottom:not(:has(.wd-swatches-product)):not(:has(.wd-swatches-grid)):not(:has(.wd-swatches-on-grid))::before {
	content: '';
	display: block;
	height: 30px;
}

/* v0.21.7 — placeholder colour: блекло-сірий замість чорного у всіх формах */
.dh-finp::placeholder,
.dh-fsel::placeholder,
.dh-ftxt::placeholder,
.dh-sample-form__input::placeholder,
.dh-cab-finp::placeholder,
.dh-fbox input::placeholder,
.dh-fbox textarea::placeholder,
.dof-form input::placeholder,
.dof-form textarea::placeholder,
.woocommerce-account input::placeholder,
.woocommerce-checkout input::placeholder,
form.checkout input::placeholder,
form.checkout textarea::placeholder,
form.woocommerce-form-login input::placeholder,
input[type="text"]::placeholder,
input[type="email"]::placeholder,
input[type="tel"]::placeholder,
input[type="number"]::placeholder,
input[type="password"]::placeholder,
textarea::placeholder {
    color: var(--dof-ink-3) !important;
    opacity: 1 !important;
    font-weight: 400 !important;
}
.dh-finp::-webkit-input-placeholder,
.dh-cab-finp::-webkit-input-placeholder,
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
    color: var(--dof-ink-3) !important;
}
.dh-finp::-moz-placeholder,
.dh-cab-finp::-moz-placeholder,
input::-moz-placeholder,
textarea::-moz-placeholder {
    color: var(--dof-ink-3) !important;
    opacity: 1 !important;
}
.dh-finp:-ms-input-placeholder,
input:-ms-input-placeholder {
    color: var(--dof-ink-3) !important;
}

/* v0.21.8 — fix input text color (must be deep black) + lighten placeholder */
.dh-finp,
.dh-fsel,
.dh-ftxt,
.dh-cab-finp,
.dh-sample-form__input,
.dh-fbox input,
.dh-fbox textarea,
.dh-fbox select,
.dof-form input,
.dof-form textarea,
.dof-form select {
    color: var(--dof-ink) !important;
}
.dh-finp::placeholder,
.dh-fsel::placeholder,
.dh-ftxt::placeholder,
.dh-cab-finp::placeholder,
.dh-sample-form__input::placeholder,
.dh-fbox input::placeholder,
.dh-fbox textarea::placeholder,
.dof-form input::placeholder,
.dof-form textarea::placeholder,
input::placeholder,
textarea::placeholder {
    color: var(--dof-ink-4) !important;
    opacity: 1 !important;
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
    color: var(--dof-ink-4) !important;
}
input::-moz-placeholder,
textarea::-moz-placeholder {
    color: var(--dof-ink-4) !important;
    opacity: 1 !important;
}


/* v0.22.8 — Mobile: extend cabinet styles to /wishlist/ + B2BKing endpoints */
@media (max-width: 1023px) {

    /* ─── Wishlist standalone page (page-id-60, body.woocommerce-wishlist) ─── */
    body.page-id-60 .woocommerce,
    body.woocommerce-wishlist .woocommerce,
    body.page-id-60 .wd-content-area > .container,
    body.woocommerce-wishlist .wd-content-area > .container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    body.page-id-60 .wd-my-account-wrapper,
    body.page-id-60 .wd-my-account-wrapper.wd-grid-g,
    body.woocommerce-wishlist .wd-my-account-wrapper,
    body.woocommerce-wishlist .wd-my-account-wrapper.wd-grid-g {
        display: block !important;
        grid-template-columns: none !important;
        padding: 24px 0 48px !important;
        margin: 0 !important;
        max-width: 100% !important;
        width: 100% !important;
    }
    body.page-id-60 .woocommerce-MyAccount-content,
    body.woocommerce-wishlist .woocommerce-MyAccount-content,
    body.page-id-60 .wd-wishlist-content,
    body.woocommerce-wishlist .wd-wishlist-content {
        padding: 0 16px !important;
        margin: 0 !important;
        max-width: 100% !important;
        width: 100% !important;
        grid-column: 1 / -1 !important;
    }

    /* Hide sidebar on wishlist page too (same drawer behavior) */
    body.page-id-60 .wd-my-account-sidebar,
    body.woocommerce-wishlist .wd-my-account-sidebar,
    body.page-id-60 .woocommerce-MyAccount-navigation,
    body.woocommerce-wishlist .woocommerce-MyAccount-navigation {
        display: none !important;
    }
    body.page-id-60.dh-cab-menu-open .wd-my-account-sidebar,
    body.page-id-60.dh-cab-menu-open .woocommerce-MyAccount-navigation,
    body.woocommerce-wishlist.dh-cab-menu-open .wd-my-account-sidebar,
    body.woocommerce-wishlist.dh-cab-menu-open .woocommerce-MyAccount-navigation {
        display: block !important;
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        width: min(82vw, 320px) !important;
        height: 100vh !important;
        z-index: 999999 !important;
        background: var(--dof-bg-2) !important;
        overflow-y: auto !important;
        padding: 64px 20px 24px !important;
        box-shadow: -10px 0 32px rgba(0,0,0,0.2) !important;
    }

    /* Wishlist head + content cards padding cleanup */
    body.woocommerce-wishlist .wd-wishlist-head,
    body.page-id-60 .wd-wishlist-head {
        padding: 0 !important;
        margin-bottom: 16px !important;
    }
    body.woocommerce-wishlist .wd-wishlist-content {
        padding: 16px !important;
    }

    /* ─── B2BKing endpoint pages (conversations/offers/lists/mass-order) ─── */
    .b2bking_account_section,
    .b2bking_account_section_inner,
    .b2bking_my_account_box,
    .b2bking_offer_box,
    .b2bking_conversation_box,
    .b2bking_list_box,
    div[class*="b2bking_account"]:not(body),
    div[class*="b2bking_my_account"]:not(body),
    section[class*="b2bking_account"] {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding: 16px !important;
        box-sizing: border-box;
    }

    /* B2BKing typography → align with design system */
    .b2bking_account_section h1,
    .b2bking_account_section h2,
    .b2bking_account_section h3,
    [class*="b2bking"] h1,
    [class*="b2bking"] h2,
    [class*="b2bking"] h3 {
        font-family: var(--dof-font-display, 'Cabinet Grotesk'), Inter, system-ui, sans-serif !important;
        color: var(--dof-ink, #12263b) !important;
        font-weight: 600 !important;
        letter-spacing: -0.01em !important;
        margin: 0 0 16px !important;
    }
    .b2bking_account_section h1,
    [class*="b2bking"] h1 { font-size: 24px !important; line-height: 1.2 !important; }
    .b2bking_account_section h2,
    [class*="b2bking"] h2 { font-size: 20px !important; line-height: 1.25 !important; }
    .b2bking_account_section h3,
    [class*="b2bking"] h3 { font-size: 16px !important; line-height: 1.3 !important; }

    .b2bking_account_section p,
    [class*="b2bking"] p {
        font-family: var(--dof-font-body, Inter), system-ui, sans-serif !important;
        font-size: 14px !important;
        line-height: 1.55 !important;
        color: var(--dof-ink-2, #3d5b78) !important;
    }

    /* B2BKing buttons → design system */
    .b2bking_account_section a.button,
    .b2bking_account_section button,
    .b2bking_account_section input[type="submit"],
    [class*="b2bking"] a.button,
    [class*="b2bking"] button.button,
    [class*="b2bking"] input[type="submit"] {
        background: var(--dof-ink, #12263b) !important;
        color: var(--dof-on-dark) !important;
        border: 1px solid var(--dof-ink, #12263b) !important;
        border-radius: 0 !important;
        padding: 12px 22px !important;
        font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
        text-transform: uppercase !important;
        letter-spacing: 0.16em !important;
        text-decoration: none !important;
        cursor: pointer;
        transition: background 200ms;
        width: 100% !important;
        max-width: 100% !important;
        margin: 8px 0 !important;
        box-sizing: border-box;
    }
    .b2bking_account_section a.button:hover,
    [class*="b2bking"] a.button:hover,
    [class*="b2bking"] button.button:hover {
        background: var(--dof-accent, #ffe786) !important;
        border-color: var(--dof-accent, #ffe786) !important;
    }

    /* B2BKing form fields */
    .b2bking_account_section input[type="text"],
    .b2bking_account_section input[type="email"],
    .b2bking_account_section input[type="tel"],
    .b2bking_account_section textarea,
    .b2bking_account_section select,
    [class*="b2bking"] input[type="text"],
    [class*="b2bking"] input[type="email"],
    [class*="b2bking"] textarea,
    [class*="b2bking"] select {
        width: 100% !important;
        max-width: 100% !important;
        font-size: 14px !important;
        padding: 10px 13px !important;
        background: var(--dof-bg-2) !important;
        border: 1px solid var(--dof-line-strong) !important;
        border-radius: 2px !important;
        box-sizing: border-box;
    }
    [class*="b2bking"] input:focus,
    [class*="b2bking"] textarea:focus,
    [class*="b2bking"] select:focus {
        background: var(--dof-bg-2) !important;
        border-color: var(--dof-accent, #ffe786) !important;
        outline: none;
    }

    /* B2BKing tables — readable on mobile */
    [class*="b2bking"] table {
        width: 100% !important;
        display: block;
        overflow-x: auto;
        font-size: 13px !important;
    }
    [class*="b2bking"] table th,
    [class*="b2bking"] table td {
        padding: 10px 8px !important;
        white-space: nowrap;
    }

    /* B2BKing notices (yellow boxes user saw on screens) */
    .b2bking_no_results_div,
    [class*="b2bking_notice"],
    .b2bking_account_section .woocommerce-info,
    .b2bking_account_section .woocommerce-message {
        padding: 14px 18px !important;
        font-size: 14px !important;
        line-height: 1.4 !important;
        border-radius: 4px !important;
    }
}

/* v0.22.9 — Mobile B2BKing — bulkorder + purchase-lists overflow fixes */
@media (max-width: 1023px) {

    /* ─── BulkOrder page (/my-account/bulkorder/) ─── */
    .b2bking_quick_order_form,
    .b2bking_quick_order_form_inner,
    [class*="b2bking_quick_order"] {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        box-sizing: border-box;
    }

    /* Top toolbar: Фільтри / Пошук / Кошик — flex wrap, prevent overflow */
    .b2bking_quick_order_form .b2bking_qo_filters_button,
    .b2bking_quick_order_form .b2bking_qo_search,
    .b2bking_quick_order_form > div:first-of-type,
    [class*="b2bking_quick_order"] > div:first-of-type {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .b2bking_quick_order_form input[type="text"],
    .b2bking_quick_order_form input[type="search"] {
        flex: 1 1 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    /* Product rows inside bulkorder — column stack with image+text */
    .b2bking_quick_order_form table,
    [class*="b2bking_quick_order"] table {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
    }
    .b2bking_quick_order_form table tbody,
    .b2bking_quick_order_form table tr {
        display: block !important;
        width: 100% !important;
    }
    .b2bking_quick_order_form table td {
        display: block !important;
        width: 100% !important;
        padding: 8px 16px !important;
        text-align: left !important;
        box-sizing: border-box;
    }
    .b2bking_quick_order_form img,
    [class*="b2bking_quick_order"] img {
        max-width: 80px !important;
        height: auto !important;
        margin: 0 auto !important;
        display: block !important;
    }

    /* ─── Purchase Lists page (/my-account/purchase-lists/) ─── */
    .b2bking_purchase_lists_table_wrapper,
    .b2bking_purchase_list,
    [class*="purchase_list"],
    [class*="b2bking_list"] {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        box-sizing: border-box;
    }

    /* DataTables wrapper — horizontal scroll if needed */
    .dataTables_wrapper {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        padding: 0 !important;
    }
    .dataTables_wrapper .dataTables_length,
    .dataTables_wrapper .dataTables_filter,
    .dataTables_wrapper .dataTables_info,
    .dataTables_wrapper .dataTables_paginate {
        float: none !important;
        display: block !important;
        width: 100% !important;
        text-align: left !important;
        margin: 8px 0 !important;
        font-size: 13px !important;
    }
    .dataTables_wrapper .dataTables_filter input,
    .dataTables_wrapper .dataTables_length select {
        max-width: 200px !important;
        width: auto !important;
        margin-left: 8px !important;
    }
    .dataTables_wrapper table.dataTable {
        width: 100% !important;
        max-width: 100% !important;
        display: block;
        overflow-x: auto;
        font-size: 13px !important;
    }
    .dataTables_wrapper table.dataTable th,
    .dataTables_wrapper table.dataTable td {
        padding: 10px 8px !important;
        white-space: nowrap;
    }
    .dataTables_wrapper .dataTables_paginate .paginate_button {
        padding: 6px 10px !important;
        font-size: 13px !important;
        margin: 0 2px !important;
    }

    /* «Новий список» button — fit screen, not stretched full-width */
    .b2bking_purchase_lists_header button,
    .b2bking_purchase_lists_header a,
    [class*="new_list"] button,
    [class*="new_list"] a,
    .b2bking_account_section .b2bking_purchase_lists_top_button {
        max-width: 200px !important;
        width: auto !important;
        white-space: nowrap !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 8px !important;
    }

    /* Headers on B2BKing pages — adjust size on mobile */
    body.woocommerce-account h1,
    .b2bking_account_section h1,
    .b2bking_quick_order_form h1,
    .b2bking_purchase_lists h1 {
        font-size: 22px !important;
        line-height: 1.2 !important;
        margin: 0 0 16px !important;
        word-wrap: break-word;
        hyphens: auto;
    }

    /* Top section flex (header + button) — column stack on mobile */
    .b2bking_purchase_lists_header,
    .b2bking_account_section > div:has(> button),
    .b2bking_account_section > div:has(> a.button) {
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
        align-items: flex-start !important;
        margin-bottom: 16px !important;
    }
}


/* v0.22.10 — Real B2BKing class targets (DOM-probed) */
@media (max-width: 1023px) {

    /* BulkOrder container */
    .b2bking_myaccount_bulkorder_container,
    .b2bking_bulkorder_container_final,
    .b2bking_bulkorder_form_container {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        box-sizing: border-box;
    }
    .b2bking_myaccount_bulkorder_title {
        font-size: 22px !important;
        line-height: 1.2 !important;
        margin: 0 0 16px !important;
        font-family: var(--dof-font-display, 'Cabinet Grotesk'), Inter, system-ui, sans-serif !important;
        color: var(--dof-ink, #12263b) !important;
        font-weight: 600 !important;
        letter-spacing: -0.01em !important;
        word-wrap: break-word;
    }

    /* Toolbar */
    .b2bking_bulkorder_cream_header_container {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .b2bking_bulkorder_form_container_content_header_top {
        flex: 0 0 auto !important;
        font-size: 12px !important;
        padding: 0 12px !important;
        height: 40px !important;
        display: flex !important;
        align-items: center !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }
    .b2bking_bulkorder_search_text_indigo,
    .b2bking_bulkorder_search_text_cream {
        flex: 1 1 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        font-size: 13px !important;
        padding: 10px 12px !important;
        background: var(--dof-bg-2) !important;
        border: 1px solid var(--dof-line-strong) !important;
        border-radius: 2px !important;
        box-sizing: border-box;
    }

    /* Bulkorder table */
    .b2bking_bulkorder_form_container table {
        font-size: 13px !important;
    }
    .b2bking_bulkorder_form_container table img {
        max-width: 64px !important;
        height: auto !important;
    }
    .b2bking_bulkorder_form_container button,
    .b2bking_bulkorder_form_container .button,
    .b2bking_bulkorder_form_container a.button,
    .b2bking_bulkorder_bulk_add_to_cart_button {
        background: var(--dof-ink, #12263b) !important;
        color: var(--dof-on-dark) !important;
        border: 1px solid var(--dof-ink, #12263b) !important;
        border-radius: 0 !important;
        padding: 10px 16px !important;
        font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
        text-transform: uppercase !important;
        letter-spacing: 0.12em !important;
        text-decoration: none !important;
        cursor: pointer;
        transition: background 200ms;
    }
    .b2bking_bulkorder_form_container button:hover,
    .b2bking_bulkorder_form_container .button:hover {
        background: var(--dof-accent, #ffe786) !important;
        border-color: var(--dof-accent, #ffe786) !important;
    }

    /* Purchase Lists header */
    .b2bking_purchase_list_top_container {
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
        align-items: flex-start !important;
        margin-bottom: 20px !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .b2bking_purchase_lists_top_title {
        font-size: 22px !important;
        line-height: 1.2 !important;
        margin: 0 !important;
        font-family: var(--dof-font-display, 'Cabinet Grotesk'), Inter, system-ui, sans-serif !important;
        color: var(--dof-ink, #12263b) !important;
        font-weight: 600 !important;
        letter-spacing: -0.01em !important;
        word-wrap: break-word;
    }
    .b2bking_purchase_list_new_link,
    a.b2bking_purchase_list_new_link {
        background: var(--dof-ink, #12263b) !important;
        color: var(--dof-on-dark) !important;
        border: 1px solid var(--dof-ink, #12263b) !important;
        border-radius: 0 !important;
        padding: 10px 18px !important;
        font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
        text-transform: uppercase !important;
        letter-spacing: 0.12em !important;
        text-decoration: none !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 8px !important;
        width: auto !important;
        max-width: 100% !important;
        cursor: pointer;
        transition: background 200ms;
    }
    .b2bking_purchase_list_new_link:hover {
        background: var(--dof-accent, #ffe786) !important;
        border-color: var(--dof-accent, #ffe786) !important;
    }
    .b2bking_purchase_list_new_link svg {
        width: 14px !important;
        height: 14px !important;
        fill: currentColor !important;
    }

    /* DataTables */
    .dataTables_wrapper {
        width: 100% !important;
        max-width: 100% !important;
        font-size: 13px !important;
    }
    .dataTables_wrapper .dataTables_length label,
    .dataTables_wrapper .dataTables_filter label {
        font-size: 13px !important;
        color: var(--dof-ink-2, #3d5b78) !important;
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
        flex-wrap: wrap;
    }
    .dataTables_wrapper .dataTables_length select,
    .dataTables_wrapper .dataTables_filter input {
        font-size: 13px !important;
        padding: 6px 10px !important;
        background: var(--dof-bg-2) !important;
        border: 1px solid var(--dof-line-strong) !important;
        border-radius: 2px !important;
        max-width: 200px !important;
        width: auto !important;
        min-width: 80px !important;
    }
    .dataTables_wrapper table.dataTable {
        width: 100% !important;
        max-width: 100% !important;
        font-size: 13px !important;
    }
    .dataTables_wrapper table.dataTable thead th {
        background: var(--dof-ink, #12263b) !important;
        color: var(--dof-on-dark) !important;
        font-size: 11px !important;
        letter-spacing: 0.12em !important;
        text-transform: uppercase !important;
        padding: 12px 8px !important;
        font-weight: 600 !important;
        border: none !important;
    }
    .dataTables_wrapper table.dataTable tbody td {
        padding: 12px 8px !important;
        font-size: 13px !important;
        color: var(--dof-ink-2, #3d5b78) !important;
        background: var(--dof-bg-2) !important;
        border-bottom: 1px solid var(--dof-line, rgba(18,38,59,.22)) !important;
    }
    .dataTables_wrapper table.dataTable tbody td.dataTables_empty {
        text-align: center !important;
        color: var(--dof-ink-3, #5c7590) !important;
        padding: 24px 8px !important;
    }
    .dataTables_wrapper .dataTables_info {
        font-size: 12px !important;
        color: var(--dof-ink-3, #5c7590) !important;
        margin: 12px 0 !important;
    }
    .dataTables_wrapper .dataTables_paginate {
        margin: 12px 0 !important;
    }
    .dataTables_wrapper .dataTables_paginate .paginate_button {
        padding: 8px 12px !important;
        font-size: 13px !important;
        border-radius: 2px !important;
        margin: 0 2px !important;
        border: 1px solid var(--dof-line, rgba(18,38,59,.22)) !important;
        background: var(--dof-bg-2) !important;
        color: var(--dof-ink-2, #3d5b78) !important;
        cursor: pointer;
    }
    .dataTables_wrapper .dataTables_paginate .paginate_button.current,
    .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
        background: var(--dof-ink, #12263b) !important;
        color: var(--dof-on-dark) !important;
        border-color: var(--dof-ink, #12263b) !important;
    }
    .dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
        opacity: 0.4 !important;
        cursor: not-allowed;
    }
    .dataTables_wrapper .dataTables_length,
    .dataTables_wrapper .dataTables_filter,
    .dataTables_wrapper .dataTables_info,
    .dataTables_wrapper .dataTables_paginate {
        float: none !important;
        display: block !important;
        width: 100% !important;
        text-align: left !important;
    }
    .dataTables_wrapper .dataTables_info,
    .dataTables_wrapper .dataTables_paginate {
        text-align: center !important;
    }
}


/* v0.22.11 — B2BKing real-class final styling (DOM-probed actual classes) */

/* Apply globally (not only mobile) so admin desktop view also consistent */

/* Bulkorder containers — design-system cards */
.b2bking_bulkorder_indigo_product_container,
.b2bking_bulkorder_cream_product_container {
    background: var(--dof-bg-2) !important;
    border: 1px solid var(--dof-line, rgba(18,38,59,.22)) !important;
    border-radius: 4px !important;
    padding: 16px !important;
    margin: 0 0 12px !important;
}

/* Bulkorder product name — design-system typography */
.b2bking_bulkorder_indigo_name,
.b2bking_bulkorder_cream_name,
a.b2bking_bulkorder_indigo_name,
a.b2bking_bulkorder_cream_name {
    font-family: var(--dof-font-body, Inter), system-ui, sans-serif !important;
    color: var(--dof-ink, #12263b) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    text-decoration: none !important;
    padding: 8px 0 !important;
}
.b2bking_bulkorder_indigo_price,
.b2bking_bulkorder_cream_price {
    color: var(--dof-accent, #ffe786) !important;
    font-weight: 600 !important;
    font-size: 14px !important;
}

/* «Переглянути параметри» / «Приховати параметри» button (view options toggle) */
.b2bking_cream_view_options_button,
.b2bking_bulkorder_indigo_add.b2bking_cream_view_options_button,
button.b2bking_bulkorder_indigo_add.b2bking_bulkorder_cream_add.b2bking_cream_view_options_button {
    background: var(--dof-ink, #12263b) !important;
    color: var(--dof-on-dark) !important;
    border: 1px solid var(--dof-ink, #12263b) !important;
    border-radius: 0 !important;
    padding: 10px 16px !important;
    font: 600 11px/1.2 var(--dof-font-body, Inter), system-ui, sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background 200ms !important;
    margin: 8px 0 0 !important;
    min-height: 40px !important;
}
.b2bking_cream_view_options_button:hover {
    background: var(--dof-accent, #ffe786) !important;
    border-color: var(--dof-accent, #ffe786) !important;
    color: var(--dof-ink, #12263b) !important;
}

/* «Додати в кошик» (without view_options class) — accent green */
.b2bking_bulkorder_indigo_add:not(.b2bking_cream_view_options_button),
.b2bking_bulkorder_cream_add:not(.b2bking_cream_view_options_button),
button.b2bking_bulkorder_indigo_add:not(.b2bking_cream_view_options_button) {
    background: var(--dof-accent, #ffe786) !important;
    color: var(--dof-ink, #12263b) !important;
    border: 1px solid var(--dof-accent, #ffe786) !important;
    border-radius: 0 !important;
    padding: 10px 16px !important;
    font: 600 11px/1.2 var(--dof-font-body, Inter), system-ui, sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    cursor: pointer !important;
    transition: background 200ms !important;
    margin: 8px 0 0 !important;
    min-height: 40px !important;
}
.b2bking_bulkorder_indigo_add:not(.b2bking_cream_view_options_button):hover {
    background: var(--dof-adk, #f0d65a) !important;
    border-color: var(--dof-adk, #f0d65a) !important;
}

/* «Add selected items to cart» bottom button */
.b2bking_bulkorder_indigo_add_selected_items_to_cart,
.b2bking_bulkorder_cream_add_selected_items_to_cart,
[class*="add_selected_items_to_cart"] {
    background: var(--dof-accent, #ffe786) !important;
    color: var(--dof-ink, #12263b) !important;
    border: 1px solid var(--dof-accent, #ffe786) !important;
    border-radius: 0 !important;
    padding: 12px 24px !important;
    font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: 0.16em !important;
    cursor: pointer !important;
}
.b2bking_bulkorder_indigo_add_selected_items_to_cart:hover {
    background: var(--dof-adk, #f0d65a) !important;
}

/* Cart price area at top «0 грн» */
.b2bking_cream_cart_button_price,
.b2bking_bulkorder_cream_cart_button_price {
    font-weight: 600 !important;
    color: var(--dof-ink, #12263b) !important;
}

/* Filter and search header tiles in tool-bar (Cream theme) */
.b2bking_bulkorder_form_container_content_header_top {
    background: var(--dof-bg-2) !important;
    border: 1px solid var(--dof-line, rgba(18,38,59,.22)) !important;
    border-radius: 2px !important;
}

/* Mobile-specific layout adjustments */
@media (max-width: 1023px) {

    /* Bulkorder product container — column stack */
    .b2bking_bulkorder_indigo_product_container,
    .b2bking_bulkorder_cream_product_container {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 8px !important;
        text-align: center !important;
    }
    .b2bking_bulkorder_indigo_image,
    .b2bking_bulkorder_cream_image {
        max-width: 80px !important;
        height: auto !important;
        margin: 0 auto !important;
    }
    .b2bking_bulkorder_indigo_name,
    .b2bking_bulkorder_cream_name,
    a.b2bking_bulkorder_indigo_name {
        text-align: center !important;
        margin: 0 auto !important;
    }
    .b2bking_cream_view_options_button,
    .b2bking_bulkorder_indigo_add {
        width: 100% !important;
        max-width: 100% !important;
        margin: 8px 0 0 !important;
    }

    /* Toolbar header tiles (Фільтри / Search / Кошик) full-row */
    .b2bking_bulkorder_cream_header_container {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        width: 100% !important;
        margin: 0 0 16px !important;
    }
    .b2bking_bulkorder_form_container_content_header_top {
        flex: 1 1 calc(50% - 4px) !important;
        min-width: 0 !important;
        height: 42px !important;
        padding: 0 10px !important;
        font-size: 12px !important;
    }
    /* Search field row — full width */
    .b2bking_bulkorder_form_container_content_header_top:has(input[type="text"]),
    .b2bking_bulkorder_form_container_content_header_top:has(.b2bking_bulkorder_search_text_indigo) {
        flex: 1 1 100% !important;
    }
    .b2bking_bulkorder_search_text_indigo,
    .b2bking_bulkorder_search_text_cream {
        width: 100% !important;
        font-size: 13px !important;
        padding: 10px 12px !important;
        background: var(--dof-bg-2) !important;
        border: 1px solid var(--dof-line-strong) !important;
        border-radius: 2px !important;
        box-sizing: border-box;
    }

    /* DataTables full-width tables */
    .dataTables_wrapper {
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
    }
    .dataTables_wrapper table.dataTable {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    /* Container around purchase-lists — full mobile width */
    .b2bking_purchase_list_top_container {
        padding: 0 !important;
    }
}

/* v0.22.12 — Bulkorder image margin fix \*/
@media (max-width: 1023px) {
    .b2bking_bulkorder_indigo_image, .b2bking_bulkorder_cream_image { margin: 0 auto 8px !important; display: block !important; max-width: 100px !important; }
    .b2bking_bulkorder_indigo_product_container, .b2bking_bulkorder_cream_product_container { text-align: center !important; }
    .b2bking_bulkorder_indigo_price, .b2bking_bulkorder_cream_price { text-align: center !important; display: block !important; margin: 4px auto !important; }
}


/* v0.22.13 — Bulkorder row stack on mobile + price styling */
@media (max-width: 1023px) {

    /* Row container — column stack as a card */
    .b2bking_bulkorder_form_container_content_line {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 8px !important;
        padding: 16px !important;
        background: var(--dof-bg-2) !important;
        border: 1px solid var(--dof-line, rgba(18,38,59,.22)) !important;
        border-radius: 4px !important;
        margin: 0 0 12px !important;
        text-align: center !important;
    }
    .b2bking_bulkorder_form_container_content_line_product {
        display: none !important;
    }
    /* Inner product container — no extra border (parent now is the card) */
    .b2bking_bulkorder_indigo_product_container,
    .b2bking_bulkorder_cream_product_container {
        background: transparent !important;
        border: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    /* Price block */
    .b2bking_cream_order_form_final_lines,
    .b2bking_bulkorder_indigo_order_form_final_lines,
    .b2bking_bulkorder_cream_order_form_final_lines {
        text-align: center !important;
        font-weight: 600 !important;
        font-size: 15px !important;
        color: var(--dof-accent, #ffe786) !important;
        margin: 0 !important;
    }
    /* Hide the "—" dash separator */
    .b2bking_cream_order_form_final_lines {
        position: relative;
    }
}


/* v0.22.14 — FINAL fixes after detailed DOM probe */

/* 1) Body must NEVER receive padding from b2bking_account_page class */
body[class*="b2bking_account_page"],
body.b2bking_account_page,
body[class*="b2bking_b2b_user"],
body[class*="b2bking_bulkorder"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-bottom: 0 !important;
}

/* 2) Purchase Lists "Новий список" — use ID selector (spec 100, unbeatable) */
#b2bking_purchase_list_new_button,
button#b2bking_purchase_list_new_button {
    background: var(--dof-ink, #12263b) !important;
    background-color: var(--dof-ink, #12263b) !important;
    color: var(--dof-on-dark) !important;
    border: 1px solid var(--dof-ink, #12263b) !important;
    border-radius: 0 !important;
    padding: 10px 18px !important;
    font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    cursor: pointer !important;
    width: auto !important;
    transition: background 200ms !important;
}
#b2bking_purchase_list_new_button:hover {
    background: var(--dof-accent, #ffe786) !important;
    background-color: var(--dof-accent, #ffe786) !important;
    border-color: var(--dof-accent, #ffe786) !important;
    color: var(--dof-ink, #12263b) !important;
}
#b2bking_purchase_list_new_button svg,
#b2bking_purchase_list_new_button .b2bking_purchase_list_new_button_icon {
    width: 16px !important;
    height: 16px !important;
    color: var(--dof-on-dark) !important;
    fill: var(--dof-bg-2) !important;
    stroke: var(--dof-bg-2) !important;
}
#b2bking_purchase_list_new_button svg path,
#b2bking_purchase_list_new_button svg * {
    color: var(--dof-on-dark) !important;
    fill: var(--dof-bg-2) !important;
    stroke: var(--dof-bg-2) !important;
}
#b2bking_purchase_list_new_button:hover svg,
#b2bking_purchase_list_new_button:hover svg *,
#b2bking_purchase_list_new_button:hover .b2bking_purchase_list_new_button_icon {
    color: var(--dof-ink, #12263b) !important;
    fill: var(--dof-ink, #12263b) !important;
    stroke: var(--dof-ink, #12263b) !important;
}

/* 3) View Options button — body prefix to beat B2BKing's 31-spec !important */
body button.b2bking_bulkorder_indigo_add.b2bking_bulkorder_cream_add.b2bking_cream_view_options_button {
    background: var(--dof-ink, #12263b) !important;
    background-color: var(--dof-ink, #12263b) !important;
    color: var(--dof-on-dark) !important;
    border: 1px solid var(--dof-ink, #12263b) !important;
    border-radius: 0 !important;
    padding: 10px 16px !important;
    font: 600 11px/1.2 var(--dof-font-body, Inter), system-ui, sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    min-height: 40px !important;
}
body button.b2bking_bulkorder_indigo_add.b2bking_bulkorder_cream_add.b2bking_cream_view_options_button:hover {
    background: var(--dof-accent, #ffe786) !important;
    background-color: var(--dof-accent, #ffe786) !important;
    border-color: var(--dof-accent, #ffe786) !important;
    color: var(--dof-ink, #12263b) !important;
}
/* Text inside view options button */
body .b2bking_cream_view_options_text,
body .b2bking_cream_hide_options_text {
    color: var(--dof-on-dark) !important;
    font: inherit !important;
}
body .b2bking_cream_view_options_button:hover .b2bking_cream_view_options_text,
body .b2bking_cream_view_options_button:hover .b2bking_cream_hide_options_text {
    color: var(--dof-ink, #12263b) !important;
}

/* 4) Add to Cart (non-view-options) — accent green */
body button.b2bking_bulkorder_indigo_add.b2bking_bulkorder_cream_add:not(.b2bking_cream_view_options_button) {
    background: var(--dof-accent, #ffe786) !important;
    background-color: var(--dof-accent, #ffe786) !important;
    color: var(--dof-ink, #12263b) !important;
    border: 1px solid var(--dof-accent, #ffe786) !important;
    border-radius: 0 !important;
    padding: 10px 16px !important;
    font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
}

/* 5) Bulkorder image — kill 302px margin-left, center */
body .b2bking_bulkorder_indigo_image,
body .b2bking_bulkorder_cream_image,
body img.b2bking_bulkorder_indigo_image {
    margin: 0 auto 8px !important;
    display: block !important;
    max-width: 100px !important;
    height: auto !important;
}

/* 6) Mobile: full bleed content (no horizontal padding on content area) */
@media (max-width: 1023px) {
    body.woocommerce-account .woocommerce-MyAccount-content,
    body.woocommerce-account .woocommerce-MyAccount-content.wd-grid-col {
        padding: 0 !important;
    }
    /* Cards have their own padding */
    body .b2bking_bulkorder_form_container_content_line {
        margin-left: 12px !important;
        margin-right: 12px !important;
    }
    body .dataTables_wrapper,
    body table.dataTable {
        width: 100% !important;
        margin: 0 !important;
    }
}

/* 7) Compact bulkorder card layout — readable list-item style */
body .b2bking_bulkorder_form_container_content_line {
    display: grid !important;
    grid-template-columns: 80px 1fr !important;
    grid-template-rows: auto auto !important;
    grid-template-areas:
        "image  info"
        "actions actions" !important;
    gap: 12px !important;
    padding: 12px !important;
    background: var(--dof-bg-2) !important;
    border: 1px solid var(--dof-line, rgba(18,38,59,.22)) !important;
    border-radius: 4px !important;
    text-align: left !important;
}
body .b2bking_bulkorder_indigo_product_container,
body .b2bking_bulkorder_cream_product_container {
    display: contents !important;
}
body .b2bking_bulkorder_indigo_image,
body .b2bking_bulkorder_cream_image {
    grid-area: image !important;
    margin: 0 !important;
    max-width: 80px !important;
    height: auto !important;
    align-self: center !important;
    justify-self: center !important;
}
body .b2bking_bulkorder_indigo_name,
body .b2bking_bulkorder_cream_name,
body a.b2bking_bulkorder_indigo_name {
    grid-area: info !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    align-self: center !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    color: var(--dof-ink, #12263b) !important;
    text-decoration: none !important;
}
body .b2bking_cream_order_form_final_lines {
    grid-area: actions !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    width: 100% !important;
    margin: 0 !important;
}
body .b2bking_cream_order_form_final_lines .b2bking_bulkorder_form_container_content_line_subtotal {
    flex: 0 0 auto !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--dof-accent, #ffe786) !important;
    padding: 0 !important;
    margin: 0 !important;
    white-space: nowrap;
}
body .b2bking_cream_order_form_final_lines .b2bking_bulkorder_form_container_content_line_cart_indigo,
body .b2bking_cream_order_form_final_lines .b2bking_bulkorder_form_container_content_line_cart_cream {
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: 220px !important;
    margin: 0 0 0 auto !important;
}
body .b2bking_cream_order_form_final_lines button {
    width: 100% !important;
    margin: 0 !important;
    min-height: 36px !important;
}
body .b2bking_cream_order_form_final_lines .b2bking_cream_input_group {
    display: none !important;
}


/* v0.22.15 — User feedback fixes (purchase-lists + bulkorder) */
@media (max-width: 1023px) {

    /* 1) Return 16px side padding on content (full-bleed removed) */
    body.woocommerce-account .woocommerce-MyAccount-content,
    body.woocommerce-account .woocommerce-MyAccount-content.wd-grid-col {
        padding: 0 16px !important;
    }
    body .b2bking_bulkorder_form_container_content_line {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* 2) DataTables — override inline width: 105px etc. on TH cells */
    body table.dataTable {
        width: 100% !important;
        table-layout: auto !important;
    }
    body table.dataTable thead th,
    body table.dataTable thead th.sorting,
    body table.dataTable thead th.sorting_asc,
    body table.dataTable thead th.sorting_desc {
        width: auto !important;
        min-width: 0 !important;
    }
    body table.dataTable tbody td {
        width: auto !important;
    }

    /* 3) Pagination buttons «Попередня / Наступна» — design system */
    .dataTables_wrapper .dataTables_paginate .paginate_button,
    .dataTables_wrapper .dataTables_paginate a.paginate_button,
    .b2bking_purchase_lists_table_previous,
    .b2bking_purchase_lists_table_next,
    a.paginate_button.previous,
    a.paginate_button.next {
        padding: 10px 18px !important;
        font: 600 11px/1 var(--dof-font-body, Inter), system-ui, sans-serif !important;
        text-transform: uppercase !important;
        letter-spacing: 0.12em !important;
        border-radius: 0 !important;
        border: 1px solid var(--dof-ink, #12263b) !important;
        background: var(--dof-bg-2) !important;
        color: var(--dof-ink, #12263b) !important;
        margin: 0 4px !important;
        text-decoration: none !important;
        cursor: pointer !important;
        transition: background 200ms !important;
    }
    .dataTables_wrapper .dataTables_paginate .paginate_button:hover,
    .dataTables_wrapper .dataTables_paginate a.paginate_button:hover {
        background: var(--dof-ink, #12263b) !important;
        color: var(--dof-on-dark) !important;
    }
    .dataTables_wrapper .dataTables_paginate .paginate_button.current {
        background: var(--dof-ink, #12263b) !important;
        color: var(--dof-on-dark) !important;
    }
    .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
    .dataTables_wrapper .dataTables_paginate a.paginate_button.disabled {
        opacity: 0.35 !important;
        cursor: not-allowed !important;
        background: var(--dof-bg-2) !important;
        color: var(--dof-ink, #12263b) !important;
        pointer-events: none;
    }
}

/* 4) Bulkorder card layout — price on its own row UNDER button (no overlap) */
body .b2bking_bulkorder_form_container_content_line {
    display: grid !important;
    grid-template-columns: 80px 1fr !important;
    grid-template-areas:
        "image  info"
        "actions actions"
        "price   price" !important;
    gap: 10px !important;
    padding: 14px !important;
    background: var(--dof-bg-2) !important;
    border: 1px solid var(--dof-line, rgba(18,38,59,.22)) !important;
    border-radius: 4px !important;
}
body .b2bking_bulkorder_indigo_product_container,
body .b2bking_bulkorder_cream_product_container {
    display: contents !important;
}
body .b2bking_bulkorder_indigo_image,
body .b2bking_bulkorder_cream_image {
    grid-area: image !important;
    margin: 0 !important;
    max-width: 70px !important;
    align-self: center !important;
    justify-self: start !important;
}
body .b2bking_bulkorder_indigo_name,
body .b2bking_bulkorder_cream_name,
body a.b2bking_bulkorder_indigo_name {
    grid-area: info !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: center !important;
    text-align: left !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    color: var(--dof-ink, #12263b) !important;
    text-decoration: none !important;
}
/* Action row: button takes full width */
body .b2bking_cream_order_form_final_lines {
    grid-area: actions !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
body .b2bking_cream_order_form_final_lines .b2bking_bulkorder_form_container_content_line_cart_indigo,
body .b2bking_cream_order_form_final_lines .b2bking_bulkorder_form_container_content_line_cart_cream {
    order: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}
body .b2bking_cream_order_form_final_lines button {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    min-height: 40px !important;
}
/* Price row — below button, centered */
body .b2bking_cream_order_form_final_lines .b2bking_bulkorder_form_container_content_line_subtotal {
    order: 2 !important;
    width: 100% !important;
    flex: 0 0 auto !important;
    text-align: center !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--dof-accent, #ffe786) !important;
}
/* Hide empty separator placeholders */
body .b2bking_cream_order_form_final_lines .b2bking_cream_input_group {
    display: none !important;
}
/* Optional checkbox for variation cards — small at bottom-right */
body .b2bking_cream_order_form_final_lines input[type="checkbox"] {
    order: 3 !important;
    align-self: center !important;
    margin: 4px auto 0 !important;
}

/* 5) Filter dropdown — bring closer to button, less space gap */
@media (max-width: 1023px) {
    .b2bking_bulkorder_form_cream_main_container {
        margin-top: 0 !important;
    }
    .b2bking_bulkorder_form_container_cream_filters {
        margin-top: 8px !important;
    }
    /* When filters are open: tight layout, sit right under the trigger */
    .b2bking_bulkorder_form_container_cream_filters:not(.b2bking_filters_closed) {
        padding: 12px !important;
        background: var(--dof-bg-2) !important;
        border: 1px solid var(--dof-line, rgba(18,38,59,.22)) !important;
        border-radius: 4px !important;
        margin: 4px 0 12px !important;
    }
    .b2bking_bulkorder_form_container_cream_filters_content_first,
    .b2bking_bulkorder_form_container_cream_filters_content_second,
    .b2bking_bulkorder_form_container_cream_filters_content_third {
        padding: 0 !important;
        margin: 0 0 12px !important;
    }
}

/* v0.22.16 — Force subtotal position static (override B2BKing absolute) */
body .b2bking_cream_order_form_final_lines .b2bking_bulkorder_form_container_content_line_subtotal,
body .b2bking_bulkorder_form_container_content_line_subtotal { position: static !important; top: auto !important; right: auto !important; left: auto !important; width: 100% !important; max-width: 100% !important; }

/* v0.22.17 — override inline width on dataTable TH \*/
body table.dataTable thead th[style*="width"], body table.dataTable tbody td[style*="width"] { width: auto !important; min-width: 0 !important; }

/* v0.22.18 — Force table rows to flex to distribute visible cols full width \*/
@media (max-width: 1023px) {
  body table.dataTable thead tr, body table.dataTable tbody tr { display: flex !important; width: 100% !important; }
  body table.dataTable thead th, body table.dataTable tbody td { flex: 1 1 0 !important; display: block !important; box-sizing: border-box; }
  body table.dataTable thead th:last-child, body table.dataTable tbody td:last-child { flex: 0 0 90px !important; text-align: right !important; }
  body table.dataTable thead th[style*="display: none"], body table.dataTable tbody td[style*="display: none"] { display: none !important; flex: 0 !important; }
}

/* v0.22.19 — Revert flex tr, use table-layout fixed + equal distribute (respects display:none from DT-Responsive) \*/
@media (max-width: 1023px) {
  body table.dataTable thead tr, body table.dataTable tbody tr { display: table-row !important; width: 100% !important; }
  body table.dataTable thead th, body table.dataTable tbody td { display: table-cell !important; flex: none !important; }
  body table.dataTable { table-layout: fixed !important; width: 100% !important; }
  body table.dataTable thead th:last-child, body table.dataTable tbody td:last-child { width: 70px !important; text-align: right !important; }
}

/* v0.22.20 — kill ALL body padding on B2BKing pages \*/
body[class*="b2bking_account_page"], body.b2bking_account_page, body.b2bking_bulkorder, body[class*="b2bking_b2b_user"] { padding: 0 !important; }

/* v0.22.21 — Catalog mobile grid fix (2 cols ≤1023, 1 col ≤480) \*/
@media (max-width: 0px) {
  .wd-products-element, .wd-products, ul.products, .products.wd-products-holder { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; padding: 0 !important; margin: 0 !important; }
  .wd-product, .product-grid-item { width: 100% !important; max-width: 100% !important; margin: 0 !important; flex: none !important; box-sizing: border-box; }
  .wd-product .product-image-link img, .wd-product img.wp-post-image, .wd-product .product-element-top img { width: 100% !important; height: auto !important; max-width: 100% !important; }
  .wd-product .wd-entities-title, .wd-product .product-title { font-size: 13px !important; line-height: 1.3 !important; padding: 0 8px !important; }
  .wd-product .price, .wd-product .product-price { font-size: 13px !important; }
  .wd-product .button, .wd-product .add_to_cart_button { font-size: 10px !important; padding: 10px 8px !important; letter-spacing: 0.1em !important; }
  /* Catalog wrapper compensation \*/
  body.archive .wd-content-area > .container, body.post-type-archive-product .wd-content-area > .container, body.tax-product_cat .wd-content-area > .container { padding-left: 12px !important; padding-right: 12px !important; }
}
@media (max-width: 0px) {
  .wd-products-element, .wd-products, ul.products { grid-template-columns: 1fr !important; gap: 12px !important; }
  .wd-product .wd-entities-title, .wd-product .product-title { font-size: 14px !important; padding: 0 12px !important; }
  .wd-product .button { font-size: 11px !important; padding: 12px 16px !important; }
}

/* v0.22.22 — Force card to fill grid cell (override Woodmart --wd-col-sm) \*/
@media (max-width: 0px) {
  body .wd-products-element .wd-product, body .wd-products-element .wd-product.wd-col, body .wd-products .wd-product.wd-col, body ul.products li.product.wd-col { width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; --wd-col-sm: 12 !important; --wd-col-md: 12 !important; }
}

/* v0.22.23 — Catalog: correct grid target (ul.products, not wrapper) \*/
@media (max-width: 0px) {
  body .wd-products-element { display: block !important; }
  body ul.products.wd-products, body .wd-products.wd-grid-g, body .products.wd-products.grid-columns-4 { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; width: 100% !important; max-width: 100% !important; padding: 0 !important; }
  body ul.products .wd-product, body ul.products .wd-product.wd-col, body .wd-products .wd-product.wd-col { width: 100% !important; max-width: 100% !important; flex: none !important; --wd-col-sm: 12 !important; --wd-col-md: 12 !important; }
}
@media (max-width: 0px) {
  body ul.products.wd-products, body .wd-products.wd-grid-g { grid-template-columns: 1fr !important; }
}

/* v0.22.25 — Catalog card mobile polish (match desktop visual) \*/
@media (max-width: 0px) {
  body ul.products.wd-products { gap: 16px !important; padding: 0 12px !important; }
  body ul.products .wd-product { background: var(--dof-bg-2); padding: 10px !important; border-radius: 4px; }
  body ul.products .wd-product .product-element-top, body ul.products .wd-product .wd-product-thumb { margin-bottom: 12px !important; }
  body ul.products .wd-product .product-image-link, body ul.products .wd-product .product-element-top img { aspect-ratio: 1 / 1.1; object-fit: cover; }
  body ul.products .wd-product .wd-entities-title, body ul.products .wd-product .product-title { text-align: center !important; padding: 4px 8px !important; font-size: 13px !important; min-height: 36px; line-height: 1.3; margin: 0 0 6px; font-weight: 500; }
  body ul.products .wd-product .price, body ul.products .wd-product .product-price { text-align: center !important; display: block !important; font-size: 15px !important; font-weight: 700 !important; color: var(--dof-accent, #ffe786) !important; padding: 4px 0 8px !important; }
  body ul.products .wd-product .button, body ul.products .wd-product .add_to_cart_button { font-size: 11px !important; padding: 11px 12px !important; letter-spacing: 0.12em !important; font-weight: 600 !important; text-transform: uppercase !important; width: 100% !important; }
  body ul.products .wd-product .wd-buttons { display: flex; }
  body ul.products .wd-product .wd-product-stock { text-align: center; font-size: 11px; padding: 4px 0; }
  /* Sidebar btn small upgrade — center icon and text \*/
  body .wd-show-sidebar-btn { width: 100%; padding: 12px 16px !important; }
  body .wd-show-sidebar-btn a { display: flex !important; align-items: center; justify-content: center; gap: 8px; color: var(--dof-ink, #12263b) !important; font-weight: 600 !important; font-size: 12px !important; letter-spacing: 0.1em !important; text-transform: uppercase !important; }
}


/* v0.22.26 — Catalog mobile: correct selector .products.wd-products + card alignment */
@media (max-width: 0px) {

    /* Container — grid 2-col, the right selector this time */
    body .products.wd-products,
    body div.products.wd-products {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 16px !important;
        padding: 0 12px !important;
        margin: 0 !important;
    }

    /* Force each card to span exactly 1 column (kill Woodmart --wd-col-* vars) */
    body .products.wd-products > .wd-product,
    body .products.wd-products > .product {
        --wd-col-lg: 12 !important;
        --wd-col-md: 12 !important;
        --wd-col-sm: 12 !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        background: var(--dof-bg-2) !important;
        border: 1px solid var(--dof-line, rgba(18,38,59,.22)) !important;
        border-radius: 4px !important;
        overflow: hidden !important;
    }

    /* Inner wrapper — flex column so we can push button to bottom */
    body .products.wd-products .wd-product .wd-product-wrapper,
    body .products.wd-products .wd-product .product-wrapper {
        display: flex !important;
        flex-direction: column !important;
        height: 100% !important;
        padding: 0 !important;
    }

    /* Image area — kill the beige plate, force 1:1 image */
    body .products.wd-products .product-element-top {
        background: var(--dof-bg-2) !important;
        background-color: var(--dof-bg-2) !important;
        margin: 0 !important;
        padding: 0 !important;
        aspect-ratio: 1 / 1 !important;
        overflow: hidden !important;
    }
    body .products.wd-products .wd-product-img-link,
    body .products.wd-products .product-image-link {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        aspect-ratio: 1 / 1 !important;
        background: var(--dof-bg-2) !important;
        margin: 0 !important;
    }
    body .products.wd-products .wd-product-img-link img,
    body .products.wd-products .product-image-link img {
        width: 100% !important;
        height: 100% !important;
        aspect-ratio: 1 / 1 !important;
        object-fit: cover !important;
        display: block !important;
    }
    /* Kill secondary/hover swap image showing as extra plate */
    body .products.wd-products .wd-product-img-link img.hover-img,
    body .products.wd-products .product-image-link img.hover-img,
    body .products.wd-products img.show-on-hover {
        display: none !important;
    }

    /* Info section — fills remaining space, button pinned to bottom */
    body .products.wd-products .wd-product .product-wrapper > *:not(.product-element-top) {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    body .products.wd-products .wd-entities-title {
        margin: 12px 0 4px !important;
        padding: 0 8px !important;
        text-align: center !important;
        font-size: 13px !important;
        font-weight: 500 !important;
        line-height: 1.3 !important;
        min-height: 36px !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }
    body .products.wd-products .wd-entities-title a {
        color: var(--dof-ink, #12263b) !important;
        text-decoration: none !important;
    }
    /* Stock indicator + price block */
    body .products.wd-products .wd-product .wd-product-stock {
        text-align: center !important;
        font-size: 11px !important;
        margin: 4px 0 !important;
        padding: 0 !important;
    }
    body .products.wd-products .price {
        text-align: center !important;
        font-size: 15px !important;
        font-weight: 700 !important;
        color: var(--dof-accent, #ffe786) !important;
        margin: 8px 0 !important;
        padding: 0 !important;
    }
    /* Button — pinned to bottom via margin-top auto */
    body .products.wd-products .wd-product .wd-add-btn,
    body .products.wd-products .wd-product .product-buttons,
    body .products.wd-products .wd-product .add_to_cart_button,
    body .products.wd-products .wd-product > .wd-product-wrapper > .button,
    body .products.wd-products .wd-product .wd-product-wrapper > a.button {
        margin-top: auto !important;
        margin-bottom: 10px !important;
        margin-left: 10px !important;
        margin-right: 10px !important;
    }
    body .products.wd-products .wd-product .button,
    body .products.wd-products .wd-product a.button {
        display: block !important;
        width: calc(100% - 20px) !important;
        margin-left: 10px !important;
        margin-right: 10px !important;
        margin-bottom: 10px !important;
        padding: 11px 12px !important;
        font-size: 11px !important;
        font-weight: 600 !important;
        letter-spacing: 0.12em !important;
        text-transform: uppercase !important;
        text-align: center !important;
        border-radius: 0 !important;
        background: var(--dof-ink, #12263b) !important;
        color: var(--dof-on-dark) !important;
        border: 1px solid var(--dof-ink, #12263b) !important;
    }
    body .products.wd-products .wd-product .button:hover {
        background: var(--dof-accent, #ffe786) !important;
        border-color: var(--dof-accent, #ffe786) !important;
        color: var(--dof-ink, #12263b) !important;
    }

    /* Wishlist heart + labels positioning */
    body .products.wd-products .wd-buttons.wd-pos-r-t {
        top: 8px !important;
        right: 8px !important;
        left: auto !important;
    }
    body .products.wd-products .product-labels {
        top: 8px !important;
        left: 8px !important;
    }
    body .products.wd-products .product-label {
        font-size: 10px !important;
        padding: 4px 8px !important;
        letter-spacing: 0.1em !important;
    }
}


/* v0.22.27 — Card title overflow & word-break on narrow viewports */
@media (max-width: 0px) {
    /* Force wrapping of long product titles inside 2-col grid cards */
    body .products.wd-products .wd-product .wd-entities-title,
    body .products.wd-products .wd-product h3.wd-entities-title,
    body .products.wd-products .wd-product .wd-entities-title a {
        font-size: 12px !important;
        line-height: 1.3 !important;
        word-break: break-word !important;
        overflow-wrap: anywhere !important;
        hyphens: auto !important;
        box-sizing: border-box !important;
        max-width: 100% !important;
        width: 100% !important;
        padding: 0 6px !important;
        min-width: 0 !important;
    }

    /* All flex/grid children need min-width:0 to shrink properly */
    body .products.wd-products .wd-product,
    body .products.wd-products .wd-product .product-wrapper,
    body .products.wd-products .wd-product .product-wrapper > * {
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    /* Card itself — bound by grid column, no overflow allowed */
    body .products.wd-products .wd-product {
        overflow: hidden !important;
    }

    /* Stock / price — also limit width */
    body .products.wd-products .wd-product .wd-product-stock,
    body .products.wd-products .wd-product .price {
        max-width: 100% !important;
        width: 100% !important;
        padding: 0 6px !important;
        box-sizing: border-box !important;
    }

    /* Button — full width minus minimal padding */
    body .products.wd-products .wd-product .button,
    body .products.wd-products .wd-product a.button {
        width: calc(100% - 16px) !important;
        margin-left: 8px !important;
        margin-right: 8px !important;
        padding: 11px 8px !important;
        font-size: 10px !important;
        letter-spacing: 0.1em !important;
        box-sizing: border-box !important;
    }
}

/* Very narrow phones (≤400px) — even tighter */
@media (max-width: 0px) {
    body .products.wd-products {
        gap: 12px !important;
    }
    body .products.wd-products .wd-product .wd-entities-title {
        font-size: 11px !important;
        padding: 0 4px !important;
        min-height: 32px !important;
    }
    body .products.wd-products .wd-product .price {
        font-size: 14px !important;
    }
    body .products.wd-products .wd-product .button {
        font-size: 10px !important;
        padding: 10px 6px !important;
        letter-spacing: 0.08em !important;
    }
}


/* v0.22.28 — Catalog card: tighten vertical rhythm on mobile */
@media (max-width: 0px) {
    /* Kill Woodmart's empty 30px ::before ghost block on product-element-bottom */
    body .products.wd-products .wd-product .product-element-bottom::before,
    body .products.wd-products .wd-product .product-element-bottom::after {
        display: none !important;
        content: none !important;
        height: 0 !important;
        margin: 0 !important;
    }

    /* Bottom container — tighter padding + smaller gap */
    body .products.wd-products .wd-product .product-element-bottom {
        padding: 10px 8px !important;
        gap: 4px !important;
    }

    /* Title — kill margins, let flex gap handle spacing */
    body .products.wd-products .wd-product .wd-entities-title {
        margin: 0 !important;
        padding: 0 4px !important;
        min-height: 32px !important;
    }

    /* Stock — minimal */
    body .products.wd-products .wd-product .wd-product-stock {
        margin: 0 !important;
        padding: 0 !important;
        font-size: 11px !important;
    }

    /* Price — slight emphasis */
    body .products.wd-products .wd-product .price {
        margin: 2px 0 !important;
        padding: 0 !important;
    }

    /* Button — minimal top gap, sits right under price */
    body .products.wd-products .wd-product .wd-add-btn {
        margin: 4px 0 0 !important;
    }
    body .products.wd-products .wd-product .button,
    body .products.wd-products .wd-product a.button {
        margin: 0 !important;
        width: 100% !important;
    }
}


/* v0.22.30 — Catalog size filter: unify all size labels as circle pills */
.wd-widget .wd-swatches-filter {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
}
/* Subheader items (Дорослі / Дитячі) — full-width text label */
.wd-widget .wd-swatches-filter > li.dh-size-subhead {
    flex: 1 1 100% !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: var(--dof-ink-3, #5c7590) !important;
    margin: 10px 0 4px !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
}
/* Each size item — flex inline */
.wd-widget .wd-swatches-filter > li.wc-layered-nav-term {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 0 0 auto !important;
}
/* Link wrapper — strip default padding */
.wd-widget .wd-swatches-filter > li.wc-layered-nav-term .layered-nav-link {
    padding: 0 !important;
    display: inline-flex !important;
    text-decoration: none !important;
}
/* === ITEM WITHOUT WOODMART SWATCH (86, 1-2, XS/S, S/M ...) ===
   Style the .wd-filter-lable span as a circle pill */
.wd-widget .wd-swatches-filter > li.wc-layered-nav-term:not(.wd-swatch-wrap) .wd-filter-lable,
.wd-widget .wd-swatches-filter > li.wc-layered-nav-term:not(.wd-swatch-wrap) .layered-nav-link > span:not(.count) {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 36px !important;
    height: 36px !important;
    padding: 0 10px !important;
    border: 1px solid var(--dof-ink, #12263b) !important;
    border-radius: 999px !important;
    background: var(--dof-bg-2) !important;
    color: var(--dof-ink, #12263b) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
    transition: background 200ms, color 200ms !important;
}
.wd-widget .wd-swatches-filter > li.wc-layered-nav-term:not(.wd-swatch-wrap) .layered-nav-link:hover .wd-filter-lable,
.wd-widget .wd-swatches-filter > li.wc-layered-nav-term:not(.wd-swatch-wrap).chosen .wd-filter-lable {
    background: var(--dof-ink, #12263b) !important;
    color: var(--dof-on-dark) !important;
}
/* === ITEM WITH WOODMART SWATCH (S, M, L, XL ...) ===
   Match the same look — override Woodmart's 25×25 with 36×36 pill */
.wd-widget .wd-swatches-filter .wd-swatch.wd-text {
    min-width: 36px !important;
    width: auto !important;
    height: 36px !important;
    padding: 0 10px !important;
    border-radius: 999px !important;
    border: 1px solid var(--dof-ink, #12263b) !important;
    background: var(--dof-bg-2) !important;
    color: var(--dof-ink, #12263b) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
}
.wd-widget .wd-swatches-filter .wd-swatch-wrap:hover .wd-swatch.wd-text,
.wd-widget .wd-swatches-filter .wd-swatch-wrap.wd-active .wd-swatch.wd-text,
.wd-widget .wd-swatches-filter .wd-swatch-wrap.chosen .wd-swatch.wd-text {
    background: var(--dof-ink, #12263b) !important;
    color: var(--dof-on-dark) !important;
}
/* Hide inner Woodmart .wd-swatch-text duplicate (we render the parent .wd-swatch directly) */
.wd-widget .wd-swatches-filter .wd-swatch.wd-text .wd-swatch-text {
    color: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
}
/* Count next to swatch — small, subdued */
.wd-widget .wd-swatches-filter > li .count {
    font-size: 10px !important;
    color: var(--dof-ink-3, #5c7590) !important;
    margin: 0 !important;
}


/* v0.22.30 — Footer line-wrap fix on 1366×768 laptops */
@media (min-width: 1024px) and (max-width: 1500px) {
    /* Don't break phone number across lines */
    .dof-footer__contact a[href^="tel:"],
    .dof-footer__contact li {
        white-space: nowrap !important;
    }
    /* Eyebrow stays as 2-line block; widen brand col a bit to keep it tight */
    .dof-footer__eyebrow {
        white-space: normal !important;
        word-spacing: -0.02em !important;
        letter-spacing: 0.08em !important;
    }
    /* Slightly bigger contact column at this width */
    .dof-footer__col--contact {
        min-width: 200px !important;
    }
}


/* v0.22.31 — Fix size filter pills (cover S/M, XS/S, 1-2 missing swatch fallback) */

/* Default: ALL .wd-filter-lable inside size filter render as circle pill */
.wd-widget .wd-swatches-filter .wd-filter-lable {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 36px !important;
    height: 36px !important;
    padding: 0 10px !important;
    border: 1px solid var(--dof-ink, #12263b) !important;
    border-radius: 999px !important;
    background: var(--dof-bg-2) !important;
    color: var(--dof-ink, #12263b) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
    transition: background 200ms, color 200ms !important;
}
/* Hide label when sibling .wd-swatch exists (Woodmart-rendered swatch wins) */
.wd-widget .wd-swatches-filter .wd-swatch + .wd-filter-lable,
.wd-widget .wd-swatches-filter .wd-swatch.wd-text ~ .wd-filter-lable {
    display: none !important;
}
/* Hover / active state on label-pill */
.wd-widget .wd-swatches-filter .layered-nav-link:hover .wd-filter-lable,
.wd-widget .wd-swatches-filter .wd-swatch-wrap.chosen .wd-filter-lable,
.wd-widget .wd-swatches-filter .wd-swatch-wrap.wd-active .wd-filter-lable,
.wd-widget .wd-swatches-filter li.chosen .wd-filter-lable {
    background: var(--dof-ink, #12263b) !important;
    color: var(--dof-on-dark) !important;
}


/* v0.22.32 — Size filter vertical stack + wishlist/account bg + desktop close-btn hide */

/* (1) Size filter — vertical stack one-per-row, like "Фільтрувати за категорією" */
.wd-widget .wd-swatches-filter,
.wd-widget .wd-swatches-filter.wd-layout-list {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
}
.wd-widget .wd-swatches-filter > li.wc-layered-nav-term {
    display: inline-flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 10px !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}
.wd-widget .wd-swatches-filter > li.wc-layered-nav-term .layered-nav-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 0 !important;
    text-decoration: none !important;
    flex: 0 0 auto !important;
}
.wd-widget .wd-swatches-filter > li.dh-size-subhead {
    display: block !important;
    width: 100% !important;
    margin: 10px 0 6px !important;
}
.wd-widget .wd-swatches-filter .wd-swatch.wd-text {
    margin: 0 !important;
}

/* (2) Wishlist + Account — kill Woodmart cream bg on .wd-page-content (xts-theme injects rgb(250,250,249)) */
body.woocommerce-wishlist .wd-page-content,
body.woocommerce-wishlist .wd-page-content.main-page-wrapper,
body.woocommerce-account .wd-page-content,
body.woocommerce-account .wd-page-content.main-page-wrapper,
body.page-id-60 .wd-page-content,
body.page-id-60 .wd-page-content.main-page-wrapper {
    background-color: transparent !important;
    background-image: none !important;
}

/* (3) Cabinet sidebar close button — desktop has no drawer, hide on ≥1024px */
@media (min-width: 1024px) {
    .dh-cab-menu-close,
    .wd-my-account-sidebar .dh-cab-menu-close,
    .woocommerce-MyAccount-navigation .dh-cab-menu-close {
        display: none !important;
    }
}

/* v0.22.33 — B2 matrix: heading + contrast inputs + over-stock red marker */
.dh-matrix__head { margin: 0 0 12px; }
.dh-matrix__lead { font-size: 15px; font-weight: 600; color: var(--dof-ink, #12263b); margin: 0 0 2px; }
.dh-matrix__sub { font-size: 13px; color: var(--dof-ink-3); margin: 0; }
.dh-matrix__qty { background: var(--dof-bg-2) !important; }
.dh-matrix__qty:hover { border-color: var(--dof-accent, #ffe786) !important; }
.dh-matrix__cell { position: relative; }
.dh-matrix__qty.is-over { border-color: #d33 !important; box-shadow: 0 0 0 1px #d33 inset; }
.dh-matrix__cell.is-over::after { content: ''; position: absolute; top: 3px; right: 3px; width: 8px; height: 8px; background: #d33; border-radius: 2px; pointer-events: none; }

/* v0.22.34 — matrix: subtle available qty under field + mobile color accordion */
.dh-matrix__avail { display: block; margin-top: 3px; font-size: 10px; line-height: 1; color: var(--dof-ink-3); text-align: center; }
.dh-matrix__avail--none { display: none; }      /* desktop: nothing for 0-stock */
.dh-matrix__color-meta { display: none; }        /* desktop: only the color name */

@media (max-width: 767px) {
	.dh-matrix__scroll { overflow: visible; }
	.dh-matrix__table, .dh-matrix__table tbody, .dh-matrix__table tr, .dh-matrix__table td { display: block; width: auto; }
	.dh-matrix__table thead { display: none; }

	.dh-matrix__row { border: 1px solid var(--dof-line, #e7e4df); border-radius: 10px; margin: 0 0 10px; overflow: hidden; background: var(--dof-bg-2); }
	.dh-matrix__row--empty { opacity: .6; }

	.dh-matrix__color {
		display: flex; align-items: center; justify-content: space-between; gap: 10px;
		padding: 13px 14px !important; cursor: pointer; background: var(--dof-bg-2);
		font-weight: 600; border: 0 !important; text-align: left !important; width: auto !important;
	}
	.dh-matrix__color::after { content: '⌄'; font-size: 16px; color: var(--dof-ink-3); transition: transform .2s; }
	.dh-matrix__row.is-collapsed .dh-matrix__color::after { transform: rotate(-90deg); }
	.dh-matrix__color-name { flex: 1 1 auto; }
	.dh-matrix__color-meta { display: block; flex: 0 0 auto; font-size: 11px; font-weight: 400; color: var(--dof-ink-3); }

	.dh-matrix__row.is-collapsed .dh-matrix__cell,
	.dh-matrix__row.is-collapsed .dh-matrix__row-total { display: none; }

	.dh-matrix__cell {
		display: flex; align-items: center; gap: 10px;
		padding: 9px 14px !important; border-top: 1px solid var(--dof-line, #fdf6e3) !important;
		text-align: left !important;
	}
	.dh-matrix__cell.is-disabled { display: none; }  /* hide non-existent color×size */
	.dh-matrix__cell::before { content: attr(data-size-label); flex: 0 0 54px; font-weight: 600; color: var(--dof-ink-2); text-transform: uppercase; font-size: 13px; }
	.dh-matrix__cell .dh-matrix__qty { width: 74px !important; margin: 0 !important; }
	.dh-matrix__avail { margin: 0 0 0 auto !important; text-align: right; font-size: 12px; color: var(--dof-ink-3); }
	.dh-matrix__avail--none { display: block; }       /* mobile: show "немає" */
	.dh-matrix__cell.is-over::after { display: none; }      /* avoid collision with avail text */
	.dh-matrix__cell.is-over { box-shadow: inset 3px 0 0 #d33; }

	.dh-matrix__row-total {
		display: flex !important; justify-content: space-between; align-items: center;
		padding: 11px 14px !important; border-top: 1px solid var(--dof-line, #fdf6e3) !important;
		font-weight: 600; background: var(--dof-bg-2);
	}
	.dh-matrix__row-total::before { content: 'Разом:'; font-weight: 600; color: var(--dof-ink-2); }

	.dh-matrix__table tfoot { display: block; margin-top: 6px; border: 1px solid var(--dof-line, #e7e4df); border-radius: 10px; overflow: hidden; }
	.dh-matrix__table tfoot tr { display: flex; justify-content: space-between; align-items: center; padding: 11px 14px; }
	.dh-matrix__table tfoot tr + tr { border-top: 1px solid var(--dof-line, #fdf6e3); }
	.dh-matrix__table tfoot td { display: block; padding: 0 !important; border: 0 !important; }
	.dh-matrix__grand-label { text-align: left; }
}

/* v0.22.35 — force matrix cell stacking on mobile (Woodmart td override war) */
@media (max-width: 767px) {
	.dh-matrix__table, .dh-matrix__table tbody, .dh-matrix__table tr { display: block !important; }
	.dh-matrix .dh-matrix__color { display: flex !important; }
	.dh-matrix .dh-matrix__cell { display: flex !important; }
	.dh-matrix .dh-matrix__row-total { display: flex !important; }
	.dh-matrix__table tfoot, .dh-matrix__table tfoot td { display: block !important; }
	.dh-matrix__table tfoot tr { display: flex !important; }
	.dh-matrix__cell.is-disabled { display: none !important; }
	.dh-matrix__row.is-collapsed .dh-matrix__cell,
	.dh-matrix__row.is-collapsed .dh-matrix__row-total { display: none !important; }
}

/* v0.22.36 — mobile: stop avail text clipping (tighten qty input width) */
@media (max-width: 767px) {
	.dh-matrix .dh-matrix__cell .dh-matrix__qty { width: 60px !important; min-width: 0 !important; flex: 0 0 60px; }
	.dh-matrix .dh-matrix__cell { padding-right: 12px !important; }
	.dh-matrix .dh-matrix__avail { margin-left: auto !important; padding-left: 8px; white-space: nowrap; }
}

/* v0.22.37 — OOS X marker, made-to-order tooltip, faded-red "Немає" */
.dh-matrix__field { position: relative; display: inline-block; }
.dh-matrix__x { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #d33; font-weight: 700; font-size: 15px; pointer-events: none; }
.dh-matrix__qty:not(:placeholder-shown) + .dh-matrix__x,
.dh-matrix__qty:focus + .dh-matrix__x { opacity: 0; }
.dh-matrix__avail--none { display: block; color: #d98a8a; }
.dh-matrix__tooltip { position: absolute; z-index: 9999; max-width: 230px; background: #2b2b2b; color: var(--dof-on-dark); font-size: 12px; line-height: 1.35; padding: 6px 9px; border-radius: 6px; transform: translateX(-50%); pointer-events: none; display: none; box-shadow: 0 6px 18px rgba(0,0,0,.2); }
.dh-matrix__tooltip.is-on { display: block; }

/* v0.22.38 — made-to-order cart badges */
.dof-badge { display: inline-block; font-size: 11px; font-weight: 600; line-height: 1; padding: 2px 7px; border-radius: 20px; white-space: nowrap; }
.dof-badge--stock { background: var(--dof-accent-lt); color: var(--dof-ink); }
.dof-badge--mto { background: #fef3c7; color: #92400e; }

/* v0.22.39 — OOS X overlay driven by value (is-filled), not focus/placeholder */
.dh-matrix__cell--oos:not(.is-filled) .dh-matrix__x { opacity: 1 !important; }
.dh-matrix__cell--oos.is-filled .dh-matrix__x { opacity: 0 !important; }

/* v0.22.42 — unavailable color×size cell shows a bold dash */
.dh-matrix__na { display: inline-block; font-weight: 700; font-size: 18px; line-height: 1; color: var(--dof-ink-4); }
@media (max-width: 767px) {
	.dh-matrix__cell.is-disabled { display: flex !important; }
	.dh-matrix__cell.is-disabled .dh-matrix__na { margin-left: auto; }
}

/* Ph5 gate-fix 5: filter-chip wrap + card CTA uniform */

/* === Fix A: sidebar filter-chip labels wrap instead of clipping ===
   Applies to the Технологія/Матеріал layered-nav widgets on /catalog/ and
   /suvenirka/ (same sidebar, same off-canvas mobile "Фільтри" panel — one
   DOM, confirmed via live probe). Root cause (DOM-probed, computed styles):
   .layered-nav-link carried "flex: 0 0 auto" (v0.22.32, never shrinks below
   its content's natural width) and .wd-filter-lable had no width bound, so
   a long term name (e.g. "гравіювання золотого логотипу (тільки для арт.
   11N01B9E2 ...)") grew its <a> to ~579px while the scroll column
   (ul.wd-scroll-content) is only ~250px wide with overflow-x:hidden (needed
   for the widget's own vertical scrollbar, ul height:223px/overflow-y:auto)
   — the excess silently clipped past the column edge, unreadable.
   Scoped to filter_tech=/filter_material= hrefs only (not Щільність/Тираж):
   those two widgets' values are always short numbers and must keep their
   compact circular-pill look unchanged — an unscoped flex:1 1 auto would
   stretch a 2-char "50" pill to the full ~250px row width, a regression. */
.wd-widget .wd-swatches-filter > li.wc-layered-nav-term > a.layered-nav-link[href*="filter_tech="],
.wd-widget .wd-swatches-filter > li.wc-layered-nav-term > a.layered-nav-link[href*="filter_material="] {
	flex: 1 1 auto !important;
	min-width: 0 !important;
}
.wd-widget .wd-swatches-filter > li.wc-layered-nav-term > a.layered-nav-link[href*="filter_tech="] .wd-filter-lable,
.wd-widget .wd-swatches-filter > li.wc-layered-nav-term > a.layered-nav-link[href*="filter_material="] .wd-filter-lable {
	height: auto !important;
	min-height: 36px !important;
	width: 100% !important;
	max-width: 100% !important;
	white-space: normal !important;
	word-break: break-word !important;
	line-height: 1.35 !important;
	padding: 8px 12px !important;
	text-align: left !important;
	justify-content: flex-start !important;
	border-radius: 16px !important; /* the inherited 999px stadium radius clamps to a stretched
		vertical capsule once the box grows tall (wrapped 3-4 line labels) — a soft
		rounded-rect chip reads better for paragraph-length text; short single-line
		terms elsewhere keep the full 999px pill untouched (unscoped selector). */
}
/* Count badge stays attached beside (not centered inside) a wrapped multi-line
   label — pinned near the first text line instead of floating mid-block.
   :has() is progressive enhancement: unsupported browsers simply keep the
   pre-existing centered alignment (still valid, non-broken fallback) — the
   wrap/no-clip fix above does not depend on :has() at all. */
.wd-widget .wd-swatches-filter > li.wc-layered-nav-term:has(> a.layered-nav-link[href*="filter_tech="]),
.wd-widget .wd-swatches-filter > li.wc-layered-nav-term:has(> a.layered-nav-link[href*="filter_material="]) {
	align-items: flex-start !important;
}
.wd-widget .wd-swatches-filter > li.wc-layered-nav-term:has(> a.layered-nav-link[href*="filter_tech="]) > .count,
.wd-widget .wd-swatches-filter > li.wc-layered-nav-term:has(> a.layered-nav-link[href*="filter_material="]) > .count {
	margin-top: 8px !important;
}

/* === Fix B: product-card CTA pair — uniform width + clear gap ===
   Card markup: <div class="merch-card-ctas"><a class="... merch-cta-details">
   Детальніше</a><a class="... merch-cta-constructor">В конструктор</a></div>
   (remote-theme/woocommerce/content-product.php). Root cause: .merch-card-ctas
   had zero CSS of its own (default display:block) and .dof-btn-primary/
   .dof-btn-ghost are display:inline-flex (content-sized) with no gap between
   them — DOM-probed live: 24.5px width difference between the two buttons,
   0px vertical gap (bottom of one touched the top of the other exactly).
   Applies sitewide — same card partial on /catalog/, /suvenirka/, and every
   product page's "Схожі товари" related grid. */
.merch-card-ctas {
	display: flex !important;
	flex-direction: column !important;
	gap: var(--dof-sp-2, 8px) !important;
	margin-top: var(--dof-sp-3, 12px) !important;
}
.merch-card-ctas .merch-cta-constructor {
	width: 100% !important;
	box-sizing: border-box !important;
	justify-content: center !important;
}

/* Ph5 gate-fix 6b: product badge must not wrap on narrow cards (НОВИН-КА @375px) */
.product-label { white-space: nowrap; }

/* ══════════════════════════════════════════════════════════════════
   Ph5 gate-fix 7 — product-page CTA pair + top/bottom breathing room
   (user feedback, 2026-07-10)
   ══════════════════════════════════════════════════════════════════ */

/* Item 1+4: .merch-cta-block (merch-product-blocks.php) rendered two
   zero-gap inline-flex <a> tags with no container styling of its own —
   they butted edge-to-edge (0px horizontal gap, DOM-probed live) and,
   since .dh-btn-g's :hover fill (var(--dof-ink)) matches .dh-btn-p's own
   resting fill, hovering the secondary button made both read as one solid
   black bar. Stack + force equal width + add a clear gap — same pattern
   already used for the archive/related-grid card CTAs (gate-fix 5's
   .merch-card-ctas). Applies at every breakpoint (stacked is the agreed
   design for mobile AND desktop). */
.merch-cta-block {
	display: flex;
	flex-direction: column;
	gap: var(--dof-sp-3, 12px);
	margin-top: var(--dof-sp-4, 16px);
}
.merch-cta-block .merch-cta-primary,
.merch-cta-block .merch-cta-secondary {
	width: 100%;
	box-sizing: border-box;
}

/* Item 3: header-to-content gap (breadcrumbs on desktop, gallery on
   mobile) and the related-products-to-footer gap were both measured at
   an exact 0px live (DOM-probed 2026-07-10, .whb-header bottom ==
   .product-image-summary-wrap top; .related-and-upsells bottom ==
   .wd-footer top). #main-content is Woodmart's shared page wrapper (same
   id on every template) — scope to body.single-product so archive/home
   pages are untouched. */
body.single-product #main-content {
	padding-top: var(--dof-sp-5, 24px) !important;
	padding-bottom: var(--dof-sp-6, 40px) !important;
}
@media (max-width: 767px) {
	body.single-product #main-content {
		padding-top: var(--dof-sp-4, 16px) !important;
		padding-bottom: var(--dof-sp-5, 24px) !important;
	}
}

/* DEV-14 cascade note (14-07): same selector as the Phase-10 rule directly above (equal
   specificity, both !important) -- redeclaring AFTER it is what makes this value the one
   actually in effect (deploy-verified this session: an earlier same-value declaration up near
   the DEV-12/DEV-14 section, ~line 6478, was being silently discarded by source order). Sized
   to the sticky CTA bar's own live-measured height (~69px incl. padding) plus a clearance
   buffer, so page content (tirazh table, related products, footer) always clears the bar when
   shown at the bottom of the page. */
@media (max-width: 767px) {
	body.single-product #main-content {
		padding-bottom: max(88px, calc(92px + env(safe-area-inset-bottom))) !important;
	}
}

/* ══════════════════════════════════════════════════════════════════
   Ph6.1 checkpoint round 2, D1 — product-page button trio: uniform
   size, accent-color primary action (user feedback, 2026-07-20)
   ══════════════════════════════════════════════════════════════════ */

/* Root cause: native WC `.single_add_to_cart_button` (the real add-to-cart
   submit, D-08-renamed "Додати на прорахунок") rendered at Woodmart's
   default compact size (163x42px, DOM-probed) sitting directly above two
   FULL-WIDTH CTAs (594x47px, gate-fix 7's own .merch-cta-block) — visibly
   mismatched sizing AND, being dark like the two CTAs below it with no
   accent, gave the visitor no cue that THIS is the one button that
   actually queues a lead ("Додати на прорахунок" — the primary action).
   Per user: accent-color the real add-to-cart submit; the two CTAs below
   step back to secondary (unchanged dark-solid / outline treatment from
   gate-fix 7).
   Scope: `form.cart:not(.variations_form)` covers simple products
   (souvenirs) where form.cart's ONLY children are `.quantity` + the
   button; `.woocommerce-variation-add-to-cart` covers variable products
   (hudi/футболка) where the same two elements live in Woodmart's own
   variation-swap wrapper — never touching the swatch/attribute markup
   that lives elsewhere inside `form.cart.variations_form`. Both
   containers are ALREADY native flex rows (DOM-probed: `display:flex`,
   `gap:10px`) — only the button itself needs sizing/color, no layout
   restructuring. */
form.cart:not(.variations_form) .single_add_to_cart_button,
.woocommerce-variation-add-to-cart .single_add_to_cart_button {
	flex: 1 1 auto !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 16px 28px !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	font-family: var(--dof-font-sans) !important;
	border-radius: 0 !important;
	line-height: 1.2 !important;
	background: var(--dof-accent) !important;
	border: 1px solid var(--dof-accent) !important;
	color: var(--dof-ink) !important;
}
form.cart:not(.variations_form) .single_add_to_cart_button:hover,
.woocommerce-variation-add-to-cart .single_add_to_cart_button:hover,
form.cart:not(.variations_form) .single_add_to_cart_button:focus-visible,
.woocommerce-variation-add-to-cart .single_add_to_cart_button:focus-visible {
	background: var(--dof-accent-dk) !important;
	border-color: var(--dof-accent-dk) !important;
	color: var(--dof-on-dark) !important;
}
/* Height match for the two CTAs below (gate-fix 7's .merch-cta-block):
   the add-to-cart button's padding-driven natural height (~47px, same
   padding/font values as .dh-btn-p/.dh-btn-g) already matches closely;
   pin both explicitly so all three buttons read as visually identical
   height regardless of font-rendering variance across browsers. */
.merch-cta-block .merch-cta-primary,
.merch-cta-block .merch-cta-secondary,
form.cart:not(.variations_form) .single_add_to_cart_button,
.woocommerce-variation-add-to-cart .single_add_to_cart_button {
	height: 48px !important;
}

/* ══════════════════════════════════════════════════════════════════
   PHASE 10 — FINAL VISUAL CONTRACT: native yellow/black components
   ══════════════════════════════════════════════════════════════════ */
.whb-header .wd-header-cart .wd-cart-number,
.whb-header .wd-header-cart.wd-design-2 .wd-cart-number.wd-tools-count,
body .wd-header-cart .wd-tools-icon > .wd-cart-number.wd-tools-count {
	border-color: var(--dof-accent) !important;
	background: var(--dof-accent) !important;
	background-color: var(--dof-accent) !important;
	color: var(--dof-ink) !important;
}

.scrollToTop {
	min-width: 44px !important;
	min-height: 44px !important;
}

.whb-header .wd-tools-element > a,
.whb-main-header .wd-tools-element > a,
.whb-header .wd-nav > li > a,
.whb-main-header .wd-nav > li > a {
	min-width: 44px !important;
	min-height: 44px !important;
}

.whb-header .wd-nav > li.current-menu-item > a,
.whb-main-header .wd-nav > li.current-menu-item > a {
	border-color: var(--dof-accent) !important;
	color: var(--dof-accent) !important;
}

body .whb-header .wd-nav.wd-style-bg > li > a,
body .whb-main-header .wd-nav.wd-style-bg > li > a {
	border-color: var(--dof-accent) !important;
	background: var(--dof-accent) !important;
	color: var(--dof-ink) !important;
}

body .whb-header .wd-nav.wd-style-bg > li > a:hover,
body .whb-main-header .wd-nav.wd-style-bg > li > a:hover {
	border-color: var(--dof-accent-dk) !important;
	background: var(--dof-accent-dk) !important;
	color: var(--dof-on-dark) !important;
}

.merch-card-ctas > a,
.merch-card-ctas > .button,
.dof-btn-ghost {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 44px !important;
}

/* Ph14 DEV-16 (14-09): third of three prior consolidation passes (RESEARCH Pitfall 5) --
   :where() intentionally carries zero specificity so this sweep never wins a cascade fight
   against a more specific rule (that's WHY min-height/padding/radius/border kept losing to
   page-local overrides even with !important on some of them). Values token-ized onto the
   canonical --ml-btn-* contract (14-03) for single-source-of-truth; more specific per-surface
   rules (merchlab-studio.css, loaded after this file) are what actually WIN the cascade and
   enforce these numbers live -- this block stays as documented intent/fallback, not the
   decisive rule. */
:where(
	.dof-btn-primary,
	.dh-btn-p,
	.dh-fsub,
	.merch-form__submit,
	.dh-thankyou__btn--primary,
	.woocommerce a.button.alt,
	.woocommerce button.button.alt,
	.woocommerce input.button.alt,
	.single_add_to_cart_button,
	.checkout-button,
	#place_order
) {
	min-height: var(--ml-btn-h, 48px);
	padding: var(--ml-btn-pad, 16px 24px);
	border: 1px solid var(--dof-accent) !important;
	border-radius: var(--ml-btn-radius, 2px) !important;
	background: var(--dof-accent) !important;
	color: var(--dof-ink) !important;
	font-weight: 600;
}

:where(
	.dof-btn-primary,
	.dh-btn-p,
	.dh-fsub,
	.merch-form__submit,
	.dh-thankyou__btn--primary,
	.woocommerce a.button.alt,
	.woocommerce button.button.alt,
	.woocommerce input.button.alt,
	.single_add_to_cart_button,
	.checkout-button,
	#place_order
):hover {
	border-color: var(--dof-accent-dk) !important;
	background: var(--dof-accent-dk) !important;
	color: var(--dof-on-dark) !important;
}

/* -- DEV-16 marker scope ends above. The focus-visible/swatch/thankyou/form-input rules
   below predate this phase (2026-07-22, git blame-verified) and are unaudited legacy, per
   this closeout's "phase-added blocks only" scope guard -- not re-swept here. -- */
:where(a, button, input, select, textarea, [tabindex], .wd-swatch):focus-visible {
	outline: 2px solid var(--dof-accent) !important;
	outline-offset: 2px !important;
}

:where(
	.wd-swatch.wd-active,
	.wd-swatch.active-swatch,
	.woocommerce-MyAccount-navigation-link.is-active > a,
	.wd-nav-product-cat .wd-active > a,
	.wd-filter-list .wd-active > a
) {
	border-color: var(--dof-accent) !important;
	box-shadow: inset 0 -2px 0 var(--dof-accent);
	color: var(--dof-ink) !important;
}

:where(
	.woocommerce-message,
	.woocommerce-info,
	.dh-thankyou__overview,
	.dh-thankyou__mark,
	.dof-badge--stock
) {
	color: var(--dof-ink) !important;
}

.dh-thankyou__mark-bg { color: var(--dof-accent-lt); }
.dh-thankyou__mark-circle,
.dh-thankyou__mark-check { color: var(--dof-ink); }

:where(
	.woocommerce form .form-row input.input-text,
	.woocommerce form .form-row select,
	.woocommerce form .form-row textarea,
	.lumise-product input,
	.lumise-product select,
	.lumise-product button
) {
	min-height: 48px;
	border: 1px solid var(--dof-line-strong) !important;
	border-radius: 2px !important;
}

/* Ph14 DEV-08 remainder — cart/checkout ::placeholder contrast. Live-measured baseline:
   both fields render #9ca3af (rgb(156,163,175)) at opacity:1 already -- traced to an
   EXISTING v0.21.7 rule (line ~7830, `form.checkout textarea::placeholder` etc.), not a
   Chromium-default-opacity problem -- 2.26:1 against the cart coupon field's ancestor bg
   rgb(242,242,239), 2.54:1 against checkout's white. Two prior attempts here both lost the
   cascade fight (confirmed live, post-deploy re-runs, not theoretical): attempt 1 used
   :where() (0 specificity, lost to everything); attempt 2 used plain class selectors
   (`.woocommerce textarea::placeholder`, specificity 0-1-2) which still lost to the existing
   `form.checkout textarea::placeholder` (0-1-3, one more type selector). Fixed by chaining
   `body.woocommerce-checkout`/`body.woocommerce-cart` to push specificity above every
   existing placeholder rule in this file (checked: none exceed 0-1-3). Recalibrated
   --dof-ink-3 (see :root, 48%->60%) clears 4.5:1 on both real backgrounds (4.76:1 / 4.94:1)
   with more margin than --dof-ink-2 would need, while staying legibly lighter than real
   input text. */
body.woocommerce-cart .merch-coupon-toggle input::placeholder,
body.woocommerce-checkout .woocommerce input.input-text::placeholder,
body.woocommerce-checkout .woocommerce textarea::placeholder,
body.woocommerce-checkout form.checkout input::placeholder,
body.woocommerce-checkout form.checkout textarea::placeholder {
	color: var(--dof-ink-3) !important;
	opacity: 1 !important;
}

/* -- DEV-08 marker scope ends above. The #main-content padding-bottom rule below predates
   this phase (2026-07-22, git blame-verified) and is unaudited legacy, per this closeout's
   "phase-added blocks only" scope guard -- not re-swept here. -- */
@media (max-width: 767px) {
	:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account, body.page-template-page-request) #main-content {
		padding-bottom: max(88px, calc(72px + env(safe-area-inset-bottom))) !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto !important; }
	.dof-reveal,
	html.dof-js-ready .dof-reveal:not(.is-revealed),
	[data-stagger] > * {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
		animation: none !important;
	}
}
/* Phase 10 utility-page heading: Woo shortcodes omit a visible H1. */
.merchlab-utility-title {
  width: min(calc(100% - 64px), var(--wd-container-w));
  margin: 0 auto clamp(24px, 4vw, 40px);
  padding-top: clamp(32px, 5vw, 64px);
  color: var(--wd-title-color, #12263b);
  font-size: clamp(36px, 4vw, 52px);
  line-height: 1.05;
  letter-spacing: -.04em;
}
@media (max-width: 767px) {
	.merchlab-utility-title {
		width: calc(100% - 32px);
		margin-inline: auto !important;
		padding-top: 28px;
		font-size: 32px;
	}
}

@media (max-width: 767px) {
	.woocommerce-account .dh-cab-otable,
	.woocommerce-account .dh-cab-otable tbody {
		display: block;
		width: 100%;
	}

	.woocommerce-account .dh-cab-otable thead {
		display: none;
	}

	.woocommerce-account .dh-cab-otable tr {
		display: grid;
		gap: 8px;
		padding: 16px;
		border: 1px solid var(--wd-form-brd-color);
		border-radius: var(--wd-brd-radius);
	}

	.woocommerce-account .dh-cab-otable td {
		display: grid;
		grid-template-columns: minmax(92px, .45fr) minmax(0, 1fr);
		gap: 12px;
		padding: 0 !important;
		border: 0 !important;
		text-align: left !important;
		overflow-wrap: anywhere;
	}

	.woocommerce-account .dh-cab-otable td::before {
		content: attr(data-title);
		color: var(--wd-text-color);
		font-size: 12px;
		font-weight: 600;
	}
}

/* ==========================================================================
   Ph14 DEV-10/15 — checkout compaction (notes collapse, mobile summary
   accordion, non-critical fixed-element hiding). DOF_VER 0.23.2 -> 0.23.3.
   ========================================================================== */

/* DEV-10: notes collapse, both breakpoints. Deliberately NO explicit
   display:none override here (unlike the Ph12 cart.php coupon toggle's
   belt-and-suspenders rule) -- live-measured on this server's Chromium
   (post-deploy qa-phase14.js run): forcing display:none on the details'
   non-summary children collapses #order_comments's own
   getBoundingClientRect() to a zeroed 0,0,0,0 rect, which breaks dev10's
   mobile single-column order assert (review.top < notes.top) since a
   zeroed rect always reads as "top:0", i.e. ABOVE everything else on the
   page -- exactly backwards from the real (relocated, off-screen-below)
   position. Native <details> without [open] already hides the content from
   paint/interaction via the browser's own internal content-visibility
   mechanism (confirmed live: closed-state rect still reports its true, real
   document position) -- that native behavior alone is what this assert (and
   the "collapsed" leg above, which already accepts toggle-closed as
   sufficient proof) needs; do not re-add the extra override. */

details.merch-notes-toggle > summary {
	cursor: pointer;
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 8px 0;
	color: var(--dof-ink, #12263b);
	font: 500 14px/1.4 var(--dof-font-sans, Inter), system-ui, sans-serif;
}

/* Auto-grow when expanded instead of the fixed 190-215px textarea (field-
   sizing is a progressive enhancement -- Chromium supports it, other
   engines fall back to the min-height + native resize handle below). */
#order_comments {
	field-sizing: content;
	min-height: 96px;
}

/* DEV-15: mobile-only summary accordion -- items collapsed by default,
   order-total (tfoot) + payment box (#place_order) always visible. The
   disclosure control is a real <button> (not <details>, which can't
   legally wrap a <table>'s <tbody> rows) -- hidden on desktop, OQ3 guard:
   nothing else about the desktop 2-column layout changes. */
.merch-summary-toggle { display: none; }

@media (max-width: 767px) {
	.merch-summary-toggle {
		display: inline-flex;
		align-items: center;
		gap: 6px;
		min-height: var(--ml-btn-h-sm, 44px);
		margin: 0 0 12px;
		padding: 0;
		border: 0;
		background: none;
		color: var(--dof-ink, #12263b);
		font-family: var(--dof-font-sans, Inter), system-ui, sans-serif;
		font-size: var(--ml-btn-fs, 11px);
		font-weight: var(--ml-btn-fw, 600);
		letter-spacing: var(--ml-btn-ls, .14em);
		text-transform: uppercase;
		text-decoration: underline;
		text-underline-offset: 3px;
		cursor: pointer;
	}
	.merch-summary-toggle::after {
		content: "\25BE"; /* ▾ */
		transition: transform var(--dof-dur-fast, 150ms) var(--dof-ease, ease);
	}
	#order_review.merch-summary-open .merch-summary-toggle::after {
		transform: rotate(180deg);
	}

	/* !important required: a pre-existing mobile "card" table layout
	   (line ~4891, .woocommerce-checkout #order_review .shop_table tbody tr)
	   already forces these same rows to display:block!important -- live-
	   measured (post-deploy) that a non-important collapse rule here loses
	   to that tie-specificity !important rule regardless of source order.
	   Equal specificity + both !important falls back to source order, and
	   this rule is later in the file, so it wins; the pre-existing card
	   layout still applies correctly once .merch-summary-open is present
	   (this :not() selector simply stops matching, so nothing here
	   overrides it in the expanded state). */
	#order_review:not(.merch-summary-open) .woocommerce-checkout-review-order-table thead,
	#order_review:not(.merch-summary-open) .woocommerce-checkout-review-order-table tbody tr {
		display: none !important;
	}

	/* Submit-near-total: the payment box follows the table immediately --
	   just trim its default top gap so #place_order never sits more than a
	   short compact space below the order-total row. */
	#order_review #payment.woocommerce-checkout-payment {
		margin-top: 8px;
	}
}

/* DEV-15 (RESEARCH, verbatim): neither .wd-toolbar (55px, always-on) nor
   .scrollToTop (44x44, scroll-triggered) is critical to completing an
   order on checkout specifically (unlike the product page's sticky-CTA,
   which DOES gate a purchase action) -- hide both so nothing competes with
   #place_order at worst-case scroll. The shared #main-content
   padding-bottom clearance reserve above is left untouched (binding,
   14-02-SUMMARY Drift 2): once these two elements are hidden,
   fixedBottomElements() finds nothing on checkout, so the clearance leg
   passes without needing to trim that reserve.
*/
@media (max-width: 767px) {
	body.woocommerce-checkout :is(.wd-toolbar, .scrollToTop) {
		display: none !important;
	}
}

/* ==========================================================================
   Ph14 DEV-12 — cart mobile clearance (14-02-SUMMARY Drift 2, cart leg).
   ========================================================================== */

/* Live-measured (worst-case scroll, both 390x844 and 390x700): .checkout-button gets
   pushed flush with the viewport bottom by qa-phase14.js's worstCaseScroll() and .wd-toolbar
   (55px, always-on) is still visible there -- the existing #main-content padding-bottom
   reserve above (line ~10096, body.woocommerce-cart already included) does not close this
   on its own, same reasoning as the product-page block earlier in this file: the reserve
   only affects how far the page CAN scroll, not the CTA's own flush-scroll target, which is
   always reachable given the page's ordinary trailing content (order summary / manager-card
   widget). Fix: hide the same non-critical fixed elements already removed on checkout
   mobile (14-04) -- generic nav chrome, not required to reach checkout from the cart page.
   Checkout's own leg belongs to 14-04 and is untouched here. */
@media (max-width: 767px) {
	body.woocommerce-cart :is(.wd-toolbar, .scrollToTop) {
		display: none !important;
	}
}

/* ==========================================================================
   Ph14 DEV-11 — checkout form contrast/focus/error states.
   ========================================================================== */

/* 1. Optional-label contrast. Live-measured: `.optional` ("(необов'язково)") renders
   rgb(187,187,187) -- NOT one of this file's ink tokens, a plain hardcoded WooCommerce/
   Woodmart-core default -- 1.71:1 against the checkout section bg rgb(242,242,239) (RED).
   Move onto the recalibrated --dof-ink-3 (see :root, 60% -- 4.76:1 on this exact bg,
   confirmed above for the cart item-count use site). */
.woocommerce-checkout .optional {
	color: var(--dof-ink-3) !important;
}

/* 2. Field borders >= 3:1 (WCAG 1.4.11 non-text contrast). The sitewide form-control sweep
   (line ~10112) forces 1px solid --dof-line-strong (22% mix) -- measured only ~1.6:1 against
   both white and the checkout section bg, well short of 3:1. --dof-line-strong is a global
   hairline token used across the whole site (not just form borders); darkening it globally
   would be a much bigger visual change than this item calls for, so it's overridden here
   scoped to checkout fields only, at a stronger local mix that clears 3:1 with margin
   (50% -> 3.59:1 / 3.50:1 on white / rgb(242,242,239)). */
body.woocommerce-checkout :where(.woocommerce form .form-row input.input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea) {
	border-color: color-mix(in oklch, var(--dof-ink) 50%, transparent) !important;
}

/* 3. Focus-visible ring, matching the --ml-btn-focus-ring token family (14-03) for a
   consistent focus language sitewide. ADDS to (does not replace) the pre-existing
   `.woocommerce-checkout .form-row input:focus { border-color: var(--dof-ink) }` rule
   (line ~3746, already live, already >=3:1 on its own) -- the ring is layered on top via
   box-shadow so nothing regresses if this block is ever removed. var(--ml-btn-focus-ring)
   is declared on :root in merchlab-studio.css; CSS custom properties resolve at paint time
   regardless of which stylesheet file references them, so the cross-file reference is safe
   as long as merchlab-studio.css stays enqueued (it always is, dof-init.php). */
body.woocommerce-checkout .form-row :is(input, select, textarea):focus-visible {
	outline: none;
	box-shadow: var(--ml-btn-focus-ring, 0 0 0 2px #fff, 0 0 0 4px var(--dof-ink, #12263b));
}

/* 4. Invalid-field state. Live-measured baseline: WC's own per-field inline message
   (`.checkout-inline-error-message`, a qodax-checkout-manager class) is ALREADY readable
   (rgb(202,25,25) on rgb(242,242,239) -- 5.11:1, untouched here) but the invalid INPUT's
   border color does not change at all (identical to a valid field) and the top-of-page
   `.woocommerce-error` notice list renders white text on an amber/gold background
   (rgb(255,255,255) on rgb(224,178,82) -- 1.97:1, the exact "accent-yellow-on-white"
   problem this item warns against) -- both live-confirmed via a real triggered validation
   error, screenshot in 14-05-SUMMARY.md. --dof-error (#c0392b, already declared, previously
   unused anywhere) clears 4.5:1 on both white and the checkout section bg (5.44:1 / 4.85:1). */
.woocommerce-checkout .woocommerce-invalid :is(input.input-text, select, textarea) {
	border-color: var(--dof-error) !important;
}
.woocommerce-error {
	background: var(--dof-bg-2) !important;
	border: 1px solid var(--dof-error) !important;
	color: var(--dof-ink) !important;
}
.woocommerce-error li,
.woocommerce-error li a {
	color: var(--dof-error) !important;
}

/* One whole-cart clear action shared by the cart page and WoodMart drawer. */
.merchlab-clear-cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 8px 14px;
	border: 1px solid currentColor;
	background: transparent;
	color: #b00020 !important;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.merchlab-clear-cart:hover,
.merchlab-clear-cart:focus-visible {
	border-color: #b00020;
	background: #b00020;
	color: var(--dof-on-dark) !important;
}
.woocommerce-cart .cart-actions .merchlab-clear-cart {
	order: 4;
	margin: 0;
}
.widget_shopping_cart .merchlab-clear-cart {
	width: 100%;
	margin: 0 0 10px;
}
