/* =========================================================
   Voltrix 3 — a light marketplace for electronics
   Cool grey page, white cards, a navy header and footer, one
   brand blue for links and a warm orange for the actions that
   advance a purchase. Rubik for headings, Nunito Sans for text.
   ========================================================= */

:root {
	/* page, surfaces, ink */
	--bg: #f5f3fa;
	--bg-alt: #ece8f6;
	--surface: #ffffff;
	--surface-2: #f0edf8;
	--surface-3: #e3def0;
	--border: #dcd7ea;
	--border-strong: #bdb5d3;
	--text: #342d47;
	--ink: #190f2f;
	--text-dim: #5b5475;
	--text-faint: #6b6485;

	/* navy chrome */
	--navy: #1a1033;
	--navy-2: #271a52;
	--navy-deep: #110a24;
	--on-navy: #efeafb;
	--on-navy-dim: #b7acd9;

	/* brand blue (links, active states) and orange (purchase actions) */
	--accent: #6d28d9;
	--accent-hover: #5b21b6;
	--accent-ink: #ffffff;
	--accent-soft: #ede4fd;
	--brand: #6d28d9;            /* fills that carry white text */
	--brand-hover: #5b21b6;
	--cta: var(--brand);          /* purchase buttons */
	--cta-hover: var(--brand-hover);
	--cta-ink: #ffffff;
	--on-dark-accent: #c4a8ff;    /* accent text sitting on the navy header/footer */
	--on-dark-accent-ink: #1a0f33;

	/* soft tints for icon tiles and promo cards */
	--t-violet-bg: var(--accent-soft);
	--t-orange-bg: #ffe6d1;  --t-orange-fg: #c2500a;
	--t-mint-bg: #d9f3e8;    --t-mint-fg: #0d7f58;
	--t-sand-bg: #fff0bf;    --t-sand-fg: #8c6200;

	--field-light: #ffffff;
	--field-light-ink: var(--ink);

	/* Legacy names kept so older rules and plugin skins resolve onto this palette. */
	--cyan: var(--accent);
	--magenta: var(--accent);
	--violet: var(--text-dim);
	--green: #12805c;
	--amber: #f59e0b;
	--danger: #d92d20;

	--font-heading: 'Rubik', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--font-body: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

	--step-small: clamp(.8125rem, .79rem + .1vw, .875rem);
	--step-body: clamp(1rem, .96rem + .2vw, 1.0625rem);
	--step-head: clamp(1.75rem, 1.2rem + 2vw, 2.5rem);

	--radius: 8px;
	--radius-lg: 16px;
	--container: 1240px;
	--gutter: clamp(16px, 2.4vw, 28px);
	--sheet-gap: 16px;
	--ease: cubic-bezier(.2, .7, .2, 1);

	--shadow-card: 0 1px 2px rgba(26, 16, 51, .06), 0 2px 8px rgba(26, 16, 51, .04);
	--shadow-hover: 0 2px 4px rgba(26, 16, 51, .06), 0 12px 28px rgba(26, 16, 51, .12);

	--z-header: 100;
}

:root[data-theme="dark"] {
	--bg: #0e0a1c;
	--bg-alt: #140f26;
	--surface: #1b1530;
	--surface-2: #251d40;
	--surface-3: #322958;
	--border: #3a3160;
	--border-strong: #54497f;
	--text: #d9d3ee;
	--ink: #f4f1fc;
	--text-dim: #aaa2c8;
	--text-faint: #9a92bb;
	--navy: #1a1033;
	--navy-2: #271a52;
	--navy-deep: #0b0716;
	--accent: #b39dfa;
	--accent-hover: #cdbdff;
	--accent-ink: #1a0f33;
	--accent-soft: #2a2058;
	--brand: #7c3aed;
	--brand-hover: #8b5cf6;
	--danger: #ff8a80;
	--green: #4ade9b;
	--t-orange-bg: #3a2418;  --t-orange-fg: #ffa563;
	--t-mint-bg: #14352b;    --t-mint-fg: #5fd9a8;
	--t-sand-bg: #3a3014;    --t-sand-fg: #f0c24d;
	--shadow-card: 0 1px 2px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .25);
	--shadow-hover: 0 2px 4px rgba(0, 0, 0, .5), 0 12px 28px rgba(0, 0, 0, .5);
	color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
	:root:not([data-theme]) {
		--bg: #0e0a1c;
		--bg-alt: #140f26;
		--surface: #1b1530;
		--surface-2: #251d40;
		--surface-3: #322958;
		--border: #3a3160;
		--border-strong: #54497f;
		--text: #d9d3ee;
		--ink: #f4f1fc;
		--text-dim: #aaa2c8;
		--text-faint: #9a92bb;
		--navy: #1a1033;
		--navy-2: #271a52;
		--navy-deep: #0b0716;
		--accent: #b39dfa;
		--accent-hover: #cdbdff;
		--accent-ink: #1a0f33;
		--accent-soft: #2a2058;
		--brand: #7c3aed;
		--brand-hover: #8b5cf6;
		--danger: #ff8a80;
		--green: #4ade9b;
		--t-orange-bg: #3a2418;  --t-orange-fg: #ffa563;
		--t-mint-bg: #14352b;    --t-mint-fg: #5fd9a8;
		--t-sand-bg: #3a3014;    --t-sand-fg: #f0c24d;
		--shadow-card: 0 1px 2px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .25);
		--shadow-hover: 0 2px 4px rgba(0, 0, 0, .5), 0 12px 28px rgba(0, 0, 0, .5);
		color-scheme: dark;
	}
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; background: var(--bg); }
body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: var(--font-body);
	font-size: var(--step-body);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, svg { max-width: 100%; display: block; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; margin: 0; padding: 0; }
button { font-family: inherit; cursor: pointer; }
h1, h2, h3, h4, h5 {
	font-family: var(--font-heading);
	font-weight: 600;
	letter-spacing: -.015em;
	line-height: 1.15;
	margin: 0 0 .5em;
	color: var(--ink);
	text-wrap: balance;
}
p { margin: 0 0 1em; text-wrap: pretty; }
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap;
}
.skip-link {
	position: absolute; left: var(--gutter); top: -60px;
	z-index: 200;
	background: var(--cta); color: var(--cta-ink);
	padding: .7em 1.1em; font-weight: 700; border-radius: var(--radius);
}
.skip-link:focus { top: 8px; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.site-header :focus-visible, .site-footer :focus-visible, .hero-banner :focus-visible, .sell-band :focus-visible { outline-color: #fff; }
::selection { background: var(--brand); color: #fff; }
:root { color-scheme: light; }
:root[data-theme="dark"] { color-scheme: dark; }

.container { max-width: var(--container); margin: 0 auto; }
.container-padding { padding-left: var(--gutter); padding-right: var(--gutter); }

.text-link { color: var(--accent); text-decoration: underline; text-underline-offset: .25em; }
.text-link:hover { color: var(--accent-hover); }

/* ---------- Buttons ---------- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	min-height: 44px;
	padding: .65em 1.4em;
	border-radius: var(--radius);
	font-family: var(--font-body);
	font-weight: 700;
	font-size: .975rem;
	border: 1.5px solid transparent;
	white-space: nowrap;
	cursor: pointer;
	transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s var(--ease);
}
.btn:active { transform: translateY(1px) scale(.99); }
.btn-primary { background: var(--cta); color: var(--cta-ink); }
.btn-primary:hover { background: var(--cta-hover); color: var(--cta-ink); }
.btn-blue { background: var(--brand); color: #fff; }
.btn-blue:hover { background: var(--brand-hover); color: #fff; }
.btn-outline { background: var(--surface); color: var(--ink); border-color: var(--border-strong); }
.btn-outline:hover { border-color: var(--accent); color: var(--accent); }
.btn-ghost-light { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .4); }
.btn-ghost-light:hover { background: rgba(255, 255, 255, .12); border-color: #fff; color: #fff; }
.btn-lg { min-height: 52px; padding: .75em 1.7em; font-size: 1rem; }
.btn-sm { min-height: 40px; padding: .45em 1em; font-size: .875rem; }
.btn-block { width: 100%; }

/* ---------- Theme toggle ---------- */
.theme-toggle { display: none; }
.js .theme-toggle { display: inline-flex; }
.theme-toggle .icon-sun { display: none; }
:root[data-theme="dark"] .theme-toggle .icon-sun { display: block; }
:root[data-theme="dark"] .theme-toggle .icon-moon { display: none; }

/* Drawn product art is light-toned; in dark mode flip it (hue kept) so the tiles sit in the page. */
:root[data-theme="dark"] img[src*="/assets/img/art-"] { filter: invert(1) hue-rotate(180deg) brightness(.92); }
:root[data-theme="dark"] .woocommerce-product-gallery__image img[src*="/assets/img/art-"] { filter: invert(1) hue-rotate(180deg) brightness(.92); }
input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill {
	-webkit-text-fill-color: var(--ink) !important;
	-webkit-box-shadow: 0 0 0 1000px var(--surface) inset !important;
	caret-color: var(--ink);
}

/* ---------- Topbar ---------- */
.site-topbar { background: var(--navy-deep); font-size: var(--step-small); color: var(--on-navy-dim); }
.topbar-inner { display: flex; justify-content: center; gap: 2.5em; padding-top: 8px; padding-bottom: 8px; flex-wrap: wrap; }
@media (max-width: 700px) { .topbar-hide-sm { display: none; } }

/* ---------- Header ---------- */
.site-header { position: sticky; top: 0; z-index: var(--z-header); }
.header-main { background: var(--navy); }
.header-inner {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(16px, 3vw, 40px);
	min-height: 76px;
}
.site-logo-text {
	font-family: var(--font-heading);
	font-size: 1.55rem;
	font-weight: 700;
	letter-spacing: -.02em;
	color: #fff;
	white-space: nowrap;
}
.logo-tld { color: var(--on-dark-accent); }
.custom-logo { max-height: 42px; width: auto; }

.header-search {
	display: flex;
	width: 100%;
	max-width: 700px;
	margin: 0 auto;
	background: var(--surface);
	border-radius: 10px;
	overflow: hidden;
}
.header-search-field {
	flex: 1;
	min-width: 0;
	min-height: 48px;
	border: 0;
	background: transparent;
	padding: 0 18px;
	font: inherit;
	font-size: 1rem;
	color: var(--ink);
}
.header-search-field::placeholder { color: var(--text-faint); }
.header-search-field:focus-visible { outline: 0; }
.header-search:focus-within { box-shadow: 0 0 0 3px rgba(196, 168, 255, .6); }
.header-search-submit {
	flex: 0 0 56px;
	display: grid; place-items: center;
	border: 0;
	background: var(--cta);
	color: var(--cta-ink);
	transition: background .15s ease;
}
.header-search-submit:hover { background: var(--cta-hover); }

.header-actions { display: flex; align-items: center; gap: 4px; }
.header-link {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 12px;
	background: transparent;
	border: 0;
	border-radius: var(--radius);
	color: #fff;
	font-size: .95rem;
	font-weight: 600;
	transition: background .15s ease;
}
.header-link:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.cart-count {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 22px; height: 22px; padding: 0 6px;
	background: var(--on-dark-accent); color: var(--on-dark-accent-ink);
	border-radius: 999px;
	font-size: .75rem; font-weight: 700;
	font-variant-numeric: tabular-nums;
}
.menu-toggle { display: none; }

.header-nav { background: var(--surface); border-bottom: 1px solid var(--border); }
.header-nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.main-navigation { display: flex; }
.nav-menu { display: flex; gap: 2px; }
.nav-menu > li > a {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 0 16px;
	font-weight: 600;
	font-size: .95rem;
	color: var(--ink);
	transition: color .15s ease, background .15s ease;
}
.nav-menu > li > a:hover { color: var(--accent); background: var(--surface-2); }
.nav-menu > li.current-menu-item > a, .nav-menu > li.current_page_item > a { color: var(--accent); box-shadow: inset 0 -3px 0 var(--accent); }
.nav-sell {
	display: inline-flex; align-items: center; gap: 8px;
	min-height: 48px;
	font-weight: 700; font-size: .95rem;
	color: var(--accent);
}
.nav-sell:hover { color: var(--accent-hover); text-decoration: underline; text-underline-offset: .25em; }

.mobile-nav-panel { display: none; background: var(--surface); border-bottom: 1px solid var(--border); }

@media (max-width: 900px) {
	.header-inner {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "logo actions" "search search";
		gap: 4px 8px;
		min-height: 0;
		padding-top: 10px;
		padding-bottom: 12px;
	}
	.site-branding { grid-area: logo; }
	.header-actions { grid-area: actions; }
	.header-search { grid-area: search; max-width: none; }
	.header-link-label { display: none; }
	.header-link { padding: 0 10px; }
	.cart-count { position: absolute; top: 2px; right: 0; min-width: 18px; height: 18px; font-size: .68rem; padding: 0 4px; }
	.menu-toggle { display: inline-flex; }
	.header-nav { display: none; }
	.mobile-nav-panel.is-open { display: block; padding: 6px var(--gutter) 18px; }
	.nav-menu-mobile { display: flex; flex-direction: column; }
	.nav-menu-mobile li a {
		display: flex; align-items: center; min-height: 52px;
		font-size: 1.05rem; font-weight: 600; color: var(--ink);
		border-bottom: 1px solid var(--surface-3);
	}
	.nav-menu-mobile li.current-menu-item a { color: var(--accent); }
	.mobile-sell { display: flex; align-items: center; min-height: 52px; font-weight: 700; color: var(--accent); }
}

/* ---------- Home: hero ---------- */
.home-hero { padding: 24px 0 0; }
.hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 2.25fr) minmax(0, 1fr);
	gap: var(--sheet-gap);
}
.hero-banner {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 440px;
	padding: clamp(28px, 4vw, 56px);
	background: var(--navy);
	border-radius: var(--radius-lg);
	color: #fff;
	overflow: hidden;
}
.hero-copy { position: relative; z-index: 2; max-width: 460px; }
.hero-title {
	font-size: clamp(2rem, 1.1rem + 2.5vw, 3rem);
	line-height: 1.1;
	letter-spacing: -.025em;
	color: #fff;
	margin: 0 0 .45em;
	text-wrap: pretty;
}
.hero-sub { color: var(--on-navy-dim); font-size: 1.075rem; max-width: 36ch; margin: 0; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.hero-pay { margin: 22px 0 0; font-size: .9rem; color: var(--on-navy-dim); max-width: 40ch; }
.hero-art { position: absolute; z-index: 1; right: -2%; top: 50%; transform: translateY(-50%); width: 54%; max-width: 560px; height: auto; }

.hero-promos { display: grid; grid-template-rows: 1fr 1fr; gap: var(--sheet-gap); }
.promo {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 22px 24px;
	border-radius: var(--radius-lg);
	color: var(--ink);
	transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}
.promo:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); }
.promo--blue { background: var(--t-violet-bg); }
.promo--orange { background: var(--t-orange-bg); }
.promo-icon {
	display: grid; place-items: center;
	width: 48px; height: 48px;
	border-radius: 12px;
	background: var(--surface);
	color: var(--accent);
	margin-bottom: 10px;
}
.promo--orange .promo-icon { color: var(--t-orange-fg); }
.promo-title { font-family: var(--font-heading); font-weight: 600; font-size: 1.15rem; line-height: 1.2; }
.promo-text { font-size: .95rem; color: var(--text-dim); }
.promo-link { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 10px; font-weight: 700; font-size: .95rem; color: var(--accent); }
.promo--orange .promo-link { color: var(--t-orange-fg); }

@media (max-width: 1000px) {
	.hero-grid { grid-template-columns: 1fr; }
	.hero-promos { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
	.hero-banner { min-height: 400px; }
}
@media (max-width: 760px) {
	.home-hero { padding-top: 16px; }
	.hero-banner { flex-direction: column; align-items: stretch; padding: 28px 22px 8px; }
	.hero-copy { max-width: none; }
	.hero-art { position: static; transform: none; width: 100%; max-width: 420px; align-self: center; margin-top: 12px; }
	.hero-actions .btn { flex: 1 1 100%; }
}
@media (max-width: 560px) {
	.hero-promos { grid-template-columns: 1fr; }
}

/* ---------- Home: trust strip ---------- */
.trust { padding-top: 16px; }
.trust-list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	background: var(--surface);
	border-radius: 14px;
	box-shadow: var(--shadow-card);
	padding: 6px;
}
.trust-list li { display: flex; align-items: center; gap: 14px; padding: 16px 18px; }
.trust-icon { flex: 0 0 46px; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--accent-soft); color: var(--accent); }
.trust-list strong { display: block; color: var(--ink); font-size: .975rem; line-height: 1.25; }
.trust-list small { display: block; color: var(--text-faint); font-size: .85rem; line-height: 1.3; margin-top: 2px; }
@media (max-width: 960px) { .trust-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .trust-list { grid-template-columns: 1fr; } .trust-list li { padding: 12px 14px; } }

/* ---------- Home: sections ---------- */
.home-section { padding-top: clamp(36px, 5vw, 60px); }
.section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.section-head h2 { font-size: clamp(1.35rem, 1.1rem + .9vw, 1.75rem); margin: 0; }
.section-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: .95rem; color: var(--accent); white-space: nowrap; }
.section-link:hover { color: var(--accent-hover); }
.section-link .vx-icon { transition: transform .2s var(--ease); }
.section-link:hover .vx-icon { transform: translateX(3px); }

/* Categories */
.cat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(176px, 1fr)); gap: 14px; }
.cat-tile {
	display: flex; flex-direction: column; gap: 4px;
	height: 100%;
	padding: 18px;
	background: var(--surface);
	border-radius: 14px;
	box-shadow: var(--shadow-card);
	transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}
.cat-tile:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); }
.cat-icon {
	display: grid; place-items: center;
	width: 52px; height: 52px;
	border-radius: 14px;
	margin-bottom: 10px;
}
.cat-icon--blue { background: var(--t-violet-bg); color: var(--accent); }
.cat-icon--orange { background: var(--t-orange-bg); color: var(--t-orange-fg); }
.cat-icon--mint { background: var(--t-mint-bg); color: var(--t-mint-fg); }
.cat-icon--sand { background: var(--t-sand-bg); color: var(--t-sand-fg); }
.cat-name { font-family: var(--font-heading); font-weight: 500; font-size: 1.025rem; line-height: 1.25; color: var(--ink); }
.cat-count { font-size: .85rem; color: var(--text-faint); }
@media (max-width: 560px) {
	.cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.cat-tile { padding: 14px; }
}

/* Product cards: the home grid and the WooCommerce loop share one look */
.p-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sheet-gap); }
@media (max-width: 1000px) { .p-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .p-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }

.p-card {
	position: relative;
	display: flex; flex-direction: column;
	background: var(--surface);
	border-radius: 14px;
	box-shadow: var(--shadow-card);
	overflow: hidden;
	transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}
.p-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); }
.p-card-media { position: relative; display: block; aspect-ratio: 1 / 1; background: var(--surface-2); overflow: hidden; }
.p-card-media img { width: 100%; height: 100%; object-fit: contain; transition: transform .5s var(--ease); }
.p-card:hover .p-card-media img { transform: scale(1.04); }
.p-badge {
	position: absolute; top: 10px; left: 10px; z-index: 2;
	background: var(--cta); color: var(--cta-ink);
	font-size: .75rem; font-weight: 700; line-height: 1;
	padding: .45em .75em; border-radius: 6px;
}
.p-card-body { display: flex; flex-direction: column; gap: 4px; flex: 1; padding: 14px 14px 16px; }
.p-card-title { margin: 0; font-family: var(--font-body); font-weight: 600; font-size: .975rem; line-height: 1.35; letter-spacing: 0; min-height: 2.7em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.p-card-title a { color: var(--ink); }
.p-card-title a:hover { color: var(--accent); }
.p-card-price { font-family: var(--font-heading); font-weight: 600; font-size: 1.1rem; color: var(--ink); margin: 2px 0 10px; }
.p-card-body .button { margin-top: auto; }

/* Loop buttons (home cards and WooCommerce archive) */
html .p-card a.button, html ul.products li.product a.button {
	display: inline-flex !important; align-items: center; justify-content: center;
	min-height: 44px;
	padding: .6em 1em !important;
	background: var(--cta) !important;
	color: var(--cta-ink) !important;
	border: 0 !important;
	border-radius: var(--radius) !important;
	font-family: var(--font-body);
	font-weight: 700;
	font-size: .9rem !important;
	text-transform: none;
	letter-spacing: 0;
	transition: background .15s ease, transform .15s var(--ease);
}
html .p-card a.button:hover, html ul.products li.product a.button:hover { background: var(--cta-hover) !important; color: var(--cta-ink) !important; }
html .p-card a.button:active, html ul.products li.product a.button:active { transform: translateY(1px); }
.p-card .added_to_cart, ul.products li.product .added_to_cart { display: block; margin-top: 8px; font-size: .9rem; font-weight: 600; color: var(--accent); }
.p-card a.button.loading, ul.products li.product a.button.loading { opacity: .7; }

/* Sellers */
.seller-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 14px; }
.seller-card {
	display: flex; align-items: center; gap: 14px;
	padding: 16px;
	background: var(--surface);
	border-radius: 14px;
	box-shadow: var(--shadow-card);
	color: var(--text-faint);
	transition: transform .2s var(--ease), box-shadow .2s var(--ease), color .2s ease;
}
.seller-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); color: var(--accent); }
.seller-avatar {
	flex: 0 0 52px;
	display: grid; place-items: center;
	width: 52px; height: 52px;
	border-radius: 14px;
	font-family: var(--font-heading); font-weight: 600; font-size: 1.3rem;
}
.seller-info { flex: 1; min-width: 0; }
.seller-info strong { display: block; color: var(--ink); font-size: 1rem; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.seller-info small { display: block; font-size: .85rem; color: var(--text-faint); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Payment */
.pay-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.pay-grid li { background: var(--surface); border-radius: 14px; box-shadow: var(--shadow-card); padding: 18px; }
.pay-grid strong { display: block; font-family: var(--font-heading); font-weight: 500; color: var(--ink); font-size: 1.025rem; margin-bottom: 4px; }
.pay-grid small { display: block; font-size: .875rem; color: var(--text-dim); line-height: 1.4; }
@media (max-width: 1000px) { .pay-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .pay-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 400px) { .pay-grid { grid-template-columns: 1fr; } }

/* Sell band */
.sell-band {
	display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap;
	padding: clamp(28px, 4vw, 48px);
	background: var(--brand);
	border-radius: 20px;
	color: #fff;
}
.sell-band h2 { color: #fff; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); margin: 0 0 .35em; }
.sell-band p { color: #e6dcfa; max-width: 52ch; margin: 0; }
.sell-actions { display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 600px) { .sell-actions, .sell-actions .btn { width: 100%; } }

/* ---------- Footer ---------- */
.site-footer { margin-top: clamp(48px, 7vw, 80px); background: var(--navy); color: var(--on-navy-dim); }
.footer-grid {
	display: grid;
	grid-template-columns: 1.5fr repeat(3, minmax(0, 1fr));
	gap: 40px;
	padding-top: clamp(40px, 5vw, 64px);
	padding-bottom: clamp(32px, 4vw, 48px);
}
.footer-logo { font-family: var(--font-heading); font-weight: 700; font-size: 1.5rem; letter-spacing: -.02em; color: #fff; }
.footer-brand p { margin: 12px 0 18px; max-width: 36ch; font-size: .95rem; }
.footer-pay { display: flex; flex-wrap: wrap; gap: 8px; }
.footer-pay li { padding: 5px 12px; border-radius: 999px; background: rgba(255, 255, 255, .08); color: #fff; font-size: .8125rem; font-weight: 600; }
.footer-title { font-size: 1rem; color: #fff; margin: 0 0 14px; }
.footer-col ul { display: grid; gap: 4px; }
.footer-col a { display: inline-block; padding: 5px 0; font-size: .95rem; color: var(--on-navy-dim); transition: color .15s ease; }
.footer-col a:hover { color: #fff; text-decoration: underline; text-underline-offset: .25em; }
.footer-base { background: var(--navy-deep); font-size: .85rem; }
.footer-base-inner { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-top: 16px; padding-bottom: 16px; }
.footer-base p { margin: 0; }
@media (max-width: 860px) { .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; } .footer-brand { grid-column: 1 / -1; } }

/* ---------- Generic page / blog ---------- */
/* Longhand on purpose: a "padding: 60px 0" shorthand would zero the side gutter. */
.page-content {
	padding-top: clamp(28px, 4vw, 56px);
	padding-bottom: 20px;
	padding-left: var(--gutter);
	padding-right: var(--gutter);
	max-width: 960px;
	margin: 0 auto;
}
.page-title { font-size: var(--step-head); margin-bottom: .6em; }
.entry-content { color: var(--text); font-size: 1.0625rem; line-height: 1.65; }
/* Plain pages sit on a white card; shop flows and the seller directory keep the page ground. */
body:not(.woocommerce-page) .entry-content:not(:has(#dokan-seller-listing-wrap)) {
	background: var(--surface);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	padding: clamp(20px, 4vw, 40px);
}
.entry-content > :is(p, ul, ol, blockquote, h2, h3, h4) { max-width: 70ch; }
.entry-content > :first-child { margin-top: 0; }
.entry-content > :last-child { margin-bottom: 0; }
.entry-content h2, .entry-content h3 { margin-top: 1.6em; }
.entry-content h2 { font-size: 1.5rem; }
.entry-content h3 { font-size: 1.2rem; }
.entry-content ul, .entry-content ol { padding-left: 1.3em; margin: 0 0 1.2em; }
.entry-content ul { list-style: disc; }
.entry-content ol { list-style: decimal; }
.entry-content li { margin-bottom: .4em; }
/* :not(.btn) — WooCommerce/Dokan notices render their CTA as an <a class="btn
   btn-primary"> inside .entry-content; without the exclusion this rule would
   paint that button's label the wrong colour. */
.entry-content a:not(.btn):not(.button) { color: var(--accent); text-decoration: underline; text-underline-offset: .2em; }
.entry-content a:not(.btn):not(.button):hover { color: var(--accent-hover); }
.entry-content img { border-radius: var(--radius); }
.post-meta { color: var(--text-faint); font-size: .9rem; margin-bottom: 1.5em; }

.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; padding: 32px 0; }
.post-card { background: var(--surface); border-radius: 14px; box-shadow: var(--shadow-card); overflow: hidden; }
.post-card-thumb-placeholder { aspect-ratio: 4/3; background: var(--surface-2); }
.post-card-body { padding: 16px; }
.post-card-title { font-size: 1.2rem; margin-bottom: .4em; }
.post-card-excerpt { color: var(--text-dim); font-size: .95rem; margin-bottom: 1em; }
.pagination-wrap { padding: 20px 0 40px; }
.empty-state { padding: 60px 0; max-width: 520px; }
@media (max-width: 860px) { .post-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .post-grid { grid-template-columns: 1fr; } }

.error-404-block { padding: clamp(48px, 8vw, 112px) 0; max-width: 560px; }
.error-code { font-family: var(--font-heading); font-size: clamp(4rem, 12vw, 8rem); font-weight: 700; line-height: .9; letter-spacing: -.04em; color: var(--accent); margin-bottom: .2em; }
.voltrix-search-form { display: flex; max-width: 560px; margin: 1.5em 0; background: var(--surface); border: 1px solid var(--border-strong); border-radius: 10px; overflow: hidden; }
.voltrix-search-form .search-field { flex: 1; min-width: 0; min-height: 48px; border: 0; padding: 0 16px; font: inherit; background: transparent; color: var(--ink); }
.voltrix-search-form .search-submit { flex: 0 0 52px; display: grid; place-items: center; border: 0; background: var(--cta); color: var(--cta-ink); }

/* ---------- Marketplace: seller attribution ---------- */
.seller-label { display: inline-flex; align-items: baseline; gap: .35em; font-size: var(--step-small); color: var(--text-faint); }
.seller-label a { color: var(--text-dim); font-weight: 600; }
.seller-label a:hover { color: var(--accent); text-decoration: underline; text-underline-offset: .2em; }
.p-card-body .seller-label, ul.products li.product .seller-label--loop { display: block; line-height: 1.3; }
.seller-label--single { display: flex; margin-bottom: 1.2em; font-size: .95rem; }

/* Cart grouped by seller */
.cart-seller-heading td { background: var(--accent-soft) !important; padding: .85em 1em !important; }
.cart-seller-icon { color: var(--accent); margin-right: .5em; vertical-align: -3px; }
.cart-seller-name { font-weight: 700; font-size: 1rem; color: var(--ink); }
.cart-seller-name a { color: var(--ink); }
.cart-seller-name a:hover { color: var(--accent); }
.cart-seller-badge { margin-left: .8em; font-size: .8125rem; color: var(--text-dim); }
.cart-seller-subtotal td { background: var(--surface-2) !important; text-align: right; padding: .7em 1em !important; }
.cart-seller-subtotal-label { font-size: var(--step-small); color: var(--text-faint); margin-right: .8em; }
.cart-seller-subtotal-value { font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
@media (max-width: 768px) {
	.cart-seller-heading td, .cart-seller-subtotal td { display: block !important; width: 100% !important; text-align: left; }
	.cart-seller-subtotal td { text-align: right; }
}

/* ---------- WooCommerce global buttons ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-message a.button,
.woocommerce-info a.button,
.woocommerce-error a.button {
	background: var(--surface) !important;
	color: var(--ink) !important;
	border: 1.5px solid var(--border-strong) !important;
	border-radius: var(--radius) !important;
	font-family: var(--font-body);
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	font-size: .92rem !important;
	padding: .7em 1.3em !important;
	min-height: 44px;
	line-height: 1.2;
	transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s var(--ease);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce-message a.button:hover,
.woocommerce-info a.button:hover {
	border-color: var(--accent) !important;
	color: var(--accent) !important;
	background: var(--surface) !important;
}
.woocommerce a.button:active, .woocommerce button.button:active { transform: translateY(1px); }

/* Primary actions — the buttons that advance the purchase */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce a.checkout-button,
.woocommerce .checkout-button,
.woocommerce #place_order,
.woocommerce button#place_order,
.woocommerce .single_add_to_cart_button,
.woocommerce button.single_add_to_cart_button,
.woocommerce .woocommerce-form-login .button,
.woocommerce .woocommerce-form-register .button,
.woocommerce form.woocommerce-form-login button.button,
.woocommerce form.woocommerce-form-register button.button,
.woocommerce .wc-block-components-button,
.woocommerce input[name="save_address"],
.woocommerce input[name="save_account_details"],
.woocommerce button[name="woocommerce_checkout_place_order"] {
	background: var(--cta) !important;
	color: var(--cta-ink) !important;
	border: 1.5px solid var(--cta) !important;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce a.checkout-button:hover,
.woocommerce #place_order:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce .woocommerce-form-login .button:hover,
.woocommerce .woocommerce-form-register .button:hover,
.woocommerce input[name="save_address"]:hover,
.woocommerce input[name="save_account_details"]:hover {
	background: var(--cta-hover) !important;
	border-color: var(--cta-hover) !important;
	color: var(--cta-ink) !important;
}
.woocommerce a.checkout-button { display: block; text-align: center; padding: 1em 2em !important; font-size: 1rem !important; }
.woocommerce button.button:disabled, .woocommerce button.button[disabled] { opacity: .45; cursor: not-allowed; }

/* ---------- WooCommerce global form controls ---------- */
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
.woocommerce input[type="search"],
.woocommerce select,
.woocommerce textarea,
.woocommerce .input-text,
#coupon_code {
	background: var(--surface) !important;
	border: 1px solid var(--border-strong) !important;
	color: var(--ink) !important;
	border-radius: var(--radius) !important;
	padding: .7em .9em !important;
	min-height: 44px;
	font-family: var(--font-body);
}
.woocommerce input::placeholder, .woocommerce textarea::placeholder { color: var(--text-faint); }
.woocommerce input:focus, .woocommerce select:focus, .woocommerce textarea:focus {
	outline: none;
	border-color: var(--accent) !important;
	box-shadow: 0 0 0 3px rgba(109, 40, 217, .2);
}
.woocommerce .quantity input.qty {
	background: var(--surface) !important;
	border: 1px solid var(--border-strong) !important;
	color: var(--ink) !important;
	border-radius: var(--radius) !important;
	padding: .6em .4em !important;
	text-align: center;
	font-variant-numeric: tabular-nums;
}
.woocommerce label { color: var(--text-dim); font-weight: 600; }
.woocommerce .required { color: var(--danger); }

.woocommerce table.cart img,
.woocommerce table.shop_table .product-thumbnail img {
	width: 72px !important;
	max-width: 72px;
	height: auto;
	border-radius: var(--radius);
	background: var(--surface-2);
}
.woocommerce del, .price del { opacity: .55; font-weight: 400; font-size: .85em; }
.woocommerce ins, .price ins { text-decoration: none; background: transparent; }

/* ---------- WooCommerce shells ---------- */
.woo-wrap { padding: clamp(16px, 2.5vw, 36px) 0 40px; }
.woocommerce-breadcrumb { color: var(--text-faint); font-size: var(--step-small); margin: 0 0 18px; }
.woocommerce-breadcrumb a { color: var(--text-dim); }
.woocommerce-breadcrumb a:hover { color: var(--accent); }
.woo-wrap .page-title, .woocommerce-products-header__title { font-size: var(--step-head); margin-bottom: .5em; }

.woocommerce-result-count { float: left; margin: 0 0 20px; color: var(--text-dim); font-size: .95rem; line-height: 44px; }
.woocommerce-ordering { float: right; margin: 0 0 20px; }
.woocommerce-ordering select {
	background: var(--surface); color: var(--ink); border: 1px solid var(--border-strong); border-radius: var(--radius); padding: .6em .9em; min-height: 44px; font: inherit; font-size: .95rem;
}

/* ---------- Product grid (WooCommerce loop) ---------- */
.product-grid, .related.products ul.products, ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
	gap: var(--sheet-gap);
	list-style: none;
	margin: 0; padding: 0;
	clear: both;
}
@media (max-width: 560px) {
	.product-grid, ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px; }
}
/* WooCommerce ships float-based widths for loop items which collapse inside a
   grid track — neutralise them so each item fills its own cell. */
ul.products li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	clear: none !important;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
ul.products li.product {
	display: flex !important;
	flex-direction: column;
	position: relative;
	background: var(--surface);
	border: 0;
	border-radius: 14px;
	box-shadow: var(--shadow-card);
	overflow: hidden;
	text-align: left;
	transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}
ul.products li.product:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); }
ul.products::before, ul.products::after { display: none !important; }

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: block; padding: 0; margin: 0; }
ul.products li.product a img,
ul.products li.product .woocommerce-LoopProduct-link img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: var(--surface-2);
	margin: 0 0 12px;
	border-radius: 0;
	transition: transform .5s var(--ease);
}
ul.products li.product a.woocommerce-LoopProduct-link { overflow: hidden; }
ul.products li.product:hover a img { transform: scale(1.04); }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
ul.products li.product .woocommerce-loop-product__title {
	padding: 0 14px !important;
	margin: 0 0 4px !important;
	font-family: var(--font-body);
	font-weight: 600;
	font-size: .975rem;
	letter-spacing: 0;
	line-height: 1.35;
	color: var(--ink);
	min-height: 2.7em;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
ul.products li.product:hover .woocommerce-loop-product__title { color: var(--accent); }
.woocommerce ul.products li.product .price,
ul.products li.product .price {
	display: block;
	padding: 0 14px !important;
	margin: 0 0 10px !important;
	font-family: var(--font-heading);
	color: var(--ink) !important;
	font-size: 1.1rem;
	font-weight: 600;
}
ul.products li.product .star-rating { margin: 0 14px 6px !important; }
ul.products li.product .seller-label--loop { padding: 0 14px 2px; }
ul.products li.product a.button { margin: auto 14px 16px !important; }

/* Sale: a flat tab on the picture */
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale,
ul.products li.product .onsale,
.single-product .onsale {
	position: absolute;
	z-index: 3;
	top: 10px !important; left: 10px !important; right: auto !important; bottom: auto !important;
	margin: 0 !important;
	background: var(--cta) !important;
	color: var(--cta-ink) !important;
	font-family: var(--font-body);
	font-size: .75rem !important;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	border-radius: 6px !important;
	min-height: 0 !important; min-width: 0 !important;
	width: auto !important; height: auto !important;
	padding: .45em .75em !important;
	line-height: 1 !important;
}

/* ---------- Pagination ---------- */
.woocommerce-pagination, .navigation.pagination { margin-top: 40px; }
.woocommerce-pagination ul.page-numbers, .nav-links { display: flex; gap: 6px; flex-wrap: wrap; border: 0 !important; }
.woocommerce-pagination ul.page-numbers li { border: 0 !important; float: none; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span, .nav-links .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 44px; min-height: 44px; padding: 0 .8em;
	background: var(--surface); color: var(--ink); border: 0; border-radius: var(--radius);
	box-shadow: var(--shadow-card);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}
.woocommerce nav.woocommerce-pagination ul li span.current, .nav-links .page-numbers.current { background: var(--brand); color: #fff; }
.woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--accent-soft); color: var(--accent); }

/* ---------- Single product ---------- */
.single-product div.product { display: block; }
/* WooCommerce hides the gallery (inline opacity:0) until its script has run.
   With deferred/delayed script loading that can mean until first interaction,
   so show it regardless; the script still takes over once it loads. */
.single-product div.product .woocommerce-product-gallery { opacity: 1 !important; }
.single-product div.product .woocommerce-product-gallery { background: var(--surface); border: 0; border-radius: var(--radius-lg); box-shadow: var(--shadow-card); overflow: hidden; }
.single-product div.product .woocommerce-product-gallery img { width: 100%; }
.single-product div.product .summary { padding-left: clamp(0px, 2vw, 32px); }
.single-product div.product .product_title { font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.3rem); line-height: 1.15; margin-bottom: .35em; }
.single-product div.product p.price, .single-product div.product span.price {
	color: var(--ink);
	font-family: var(--font-heading);
	font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
	font-weight: 600;
	display: block;
	margin-bottom: .6em;
}
.single-product div.product p.price ins { color: var(--ink); }
.single-product div.product p.price del { font-size: 1.05rem; }
.single-product div.product .woocommerce-product-details__short-description { font-size: 1.05rem; line-height: 1.6; padding: 0 0 1em; margin-bottom: 1em; max-width: 60ch; }
.single-product div.product .cart { margin-bottom: 1.5em; display: flex; gap: 10px; flex-wrap: wrap; }
.single-product div.product .cart .button, .single_add_to_cart_button {
	min-height: 52px;
	padding: .9em 2.2em !important;
	font-size: 1rem !important;
}
.single-product div.product .product_meta { font-size: .9rem; color: var(--text-faint); padding-top: 1em; display: grid; gap: .3em; }
.single-product div.product .product_meta a { color: var(--accent); }
.single-product div.product .product_meta a:hover { text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 860px) {
	.single-product div.product .summary { padding-left: 0; padding-top: 1.5em; }
}
.stock.out-of-stock { color: var(--danger); }
.stock.in-stock { color: var(--green) !important; font-size: .92rem; font-weight: 600; }

/* Product tabs */
.woocommerce-tabs { margin-top: clamp(32px, 5vw, 64px); clear: both; }
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex !important;
	flex-wrap: nowrap;
	overflow-x: auto;
	overflow-y: hidden;
	gap: 4px;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--border) !important;
	scrollbar-width: thin;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
	flex: 0 0 auto;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: flex; align-items: center;
	min-height: 48px;
	padding: 0 1.3em !important;
	font-family: var(--font-body);
	font-weight: 700;
	font-size: .95rem;
	color: var(--text-dim) !important;
	white-space: nowrap;
	border-bottom: 3px solid transparent;
	margin-bottom: -1px;
	transition: color .15s ease, border-color .15s ease;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--ink) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--accent) !important; border-bottom-color: var(--accent); }
.woocommerce-tabs .panel {
	background: var(--surface) !important;
	color: var(--text) !important;
	border: 0;
	border-radius: 0 0 var(--radius-lg) var(--radius-lg);
	padding: clamp(18px, 3vw, 32px) !important;
	margin: 0 !important;
	font-size: 1.025rem;
	line-height: 1.65;
	box-shadow: var(--shadow-card);
}
.woocommerce-tabs .panel > h2:first-child { display: none; }
.woocommerce-tabs .panel h2 { font-size: 1.3rem; }
.woocommerce-Reviews #comments .commentlist { padding: 0; }
.woocommerce-Reviews .comment-form input, .woocommerce-Reviews .comment-form textarea {
	background: var(--surface); border: 1px solid var(--border-strong); color: var(--ink); border-radius: var(--radius); padding: .6em .9em;
}
.related.products > h2, .upsells.products > h2 { font-size: 1.5rem; margin: clamp(40px, 6vw, 72px) 0 18px; }
table.shop_attributes th { color: var(--ink); width: 30%; }

/* ---------- Cart & checkout ---------- */
.woocommerce-cart .page-content,
.woocommerce-checkout .page-content,
.woocommerce-account .page-content { max-width: 1180px; }
/* Links in tables are navigation, not prose: keep them in the ink colour */
.entry-content .woocommerce table a:not(.button):not(.remove) { color: var(--ink); text-decoration: none; }
.entry-content .woocommerce table a:not(.button):not(.remove):hover { color: var(--accent); }
#coupon_code { width: auto !important; flex: 1 1 140px; min-width: 140px; }

.woocommerce-cart table.cart, .woocommerce-checkout table.shop_table, table.shop_table {
	background: var(--surface); border: 0; border-radius: var(--radius-lg); border-collapse: separate; border-spacing: 0; overflow: hidden; box-shadow: var(--shadow-card);
}
table.shop_table th { color: var(--ink); border-bottom: 1px solid var(--border) !important; font-weight: 700; }
table.shop_table td { border-top: 1px solid var(--surface-3) !important; color: var(--text); }
table.shop_table td a { color: var(--ink); }
table.shop_table td a:hover { color: var(--accent); }
.woocommerce-cart table.cart td.actions .coupon { display: flex; gap: 8px; flex-wrap: wrap; }
.woocommerce a.remove { color: var(--text-dim) !important; background: transparent !important; font-size: 1.5rem; }
.woocommerce a.remove:hover { color: var(--danger) !important; background: transparent !important; }
.cart-collaterals .cart_totals h2 { font-size: 1.4rem; }
.woocommerce-checkout h3 { font-size: 1.35rem; }
.woocommerce-checkout #payment { background: var(--surface); border: 0; border-radius: var(--radius-lg); box-shadow: var(--shadow-card); padding: .5em 1.4em 1.4em; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 0; padding: 0; }
.woocommerce-checkout #payment ul.payment_methods li { padding: 1em 0; border-bottom: 1px solid var(--surface-3); }
.woocommerce-checkout #payment ul.payment_methods li:last-child { border-bottom: 0; }
.woocommerce-checkout #payment ul.payment_methods li label { color: var(--ink); font-weight: 700; }
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] { accent-color: var(--accent); }
.woocommerce-checkout #payment div.payment_box { background: var(--surface-2) !important; color: var(--text-dim); border-radius: var(--radius); margin-top: .8em !important; }
.woocommerce-checkout #payment div.payment_box::before { display: none !important; }
.woocommerce-checkout #place_order { font-weight: 700; min-height: 56px; padding: 1em 2em !important; width: 100%; }
.woocommerce-info, .woocommerce-message, .woocommerce-error {
	background: var(--surface) !important; border-top: 0 !important; border-left: 4px solid var(--accent); color: var(--text) !important; border-radius: var(--radius); box-shadow: var(--shadow-card);
}
.woocommerce-error { border-left-color: var(--danger); }
.woocommerce-message { border-left-color: var(--green); }
.woocommerce-info::before { color: var(--accent) !important; }
.woocommerce-message::before { color: var(--green) !important; }
.woocommerce-error::before { color: var(--danger) !important; }
.woocommerce-info a:not(.button), .woocommerce-message a:not(.button) { color: var(--accent); text-decoration: underline; text-underline-offset: .2em; }


/* Star ratings */
.star-rating span::before { color: #f5a524; }
.star-rating::before { color: var(--surface-3); }

/* ---------------------------------------------------------------------------
   My account
   ------------------------------------------------------------------------- */
.woocommerce-account .page-content { max-width: 1120px; }
.woocommerce-account .woocommerce-notices-wrapper:empty { display: none; }

/* Signed out: two cards, login and register */
.woocommerce-account:not(.logged-in) .page-content { max-width: 960px; }
.woocommerce-account:not(.logged-in) .page-header { text-align: center; }
.woocommerce-account:not(.logged-in) .page-title { margin-bottom: .9em; }
#customer_login { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
#customer_login::before, #customer_login::after { display: none; }
#customer_login .u-column1, #customer_login .u-column2 {
	float: none; width: auto; max-width: none; margin: 0;
	background: var(--surface);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	padding: clamp(22px, 3.5vw, 36px);
}
#customer_login h2 { font-size: 1.5rem; margin: 0 0 1em; }
#customer_login form.login, #customer_login form.register,
.woocommerce form.login, .woocommerce form.register { border: 0 !important; padding: 0 !important; margin: 0 !important; border-radius: 0; background: transparent; }
#customer_login .form-row { margin: 0 0 18px; padding: 0; float: none; width: 100%; }
#customer_login label { display: block; margin-bottom: 6px; font-size: .925rem; font-weight: 700; color: var(--ink); }
#customer_login input.input-text, #customer_login input[type="text"], #customer_login input[type="email"], #customer_login input[type="password"] { width: 100%; min-height: 48px; }
#customer_login .password-input { display: block; position: relative; }
#customer_login .show-password-input { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; border: 0; background: transparent; cursor: pointer; opacity: .6; }
#customer_login .show-password-input:hover { opacity: 1; }
#customer_login form.login .form-row:last-of-type { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-bottom: 0; }
#customer_login .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-weight: 600; color: var(--text); cursor: pointer; }
#customer_login .woocommerce-form-login__rememberme input { width: 18px; height: 18px; accent-color: var(--brand); }
#customer_login .woocommerce-form-login__submit, #customer_login .woocommerce-form-register__submit,
#customer_login button.button { order: 3; width: 100%; min-height: 50px; margin: 6px 0 0 !important; font-size: 1rem !important; float: none !important; }
#customer_login .woocommerce-LostPassword { margin: 14px 0 0; text-align: center; }
#customer_login .woocommerce-LostPassword a, #customer_login .woocommerce-privacy-policy-text a { color: var(--accent); font-weight: 600; text-decoration: underline; text-underline-offset: .2em; }
#customer_login form.register > p { color: var(--text-dim); font-size: .95rem; }
#customer_login .woocommerce-privacy-policy-text p { font-size: .85rem; color: var(--text-dim); }
/* Dokan: customer / vendor choice as two chips */
#customer_login .user-role { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 18px; }
#customer_login .user-role label.radio, #customer_login .user-role label {
	display: flex; align-items: center; gap: 10px; margin: 0; min-height: 48px; padding: 0 14px;
	border: 1.5px solid var(--border-strong); border-radius: var(--radius);
	font-weight: 600; color: var(--text); cursor: pointer; background: var(--surface);
	transition: border-color .15s ease, background .15s ease, color .15s ease;
}
#customer_login .user-role br { display: none; }
#customer_login .user-role label:first-of-type { grid-column: 1; grid-row: 1; float: none; }
#customer_login .user-role label:last-of-type { grid-column: 2; grid-row: 1; float: none; }
#customer_login .user-role label:hover { border-color: var(--accent); }
#customer_login .user-role label:has(input:checked) { border-color: var(--brand); background: var(--accent-soft); color: var(--ink); }
#customer_login .user-role input[type="radio"] { width: 18px; height: 18px; margin: 0; accent-color: var(--brand); }
#customer_login .show_if_seller .split-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 760px) {
	#customer_login { grid-template-columns: 1fr; }
	#customer_login .show_if_seller .split-row { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
	#customer_login .user-role label { padding: 0 10px; gap: 8px; font-size: .875rem; white-space: nowrap; }
}

/* Signed in: sidebar and content */
.woocommerce-account.logged-in .woocommerce { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 24px; align-items: start; }
.woocommerce-account.logged-in .woocommerce::before, .woocommerce-account.logged-in .woocommerce::after { display: none; }
.woocommerce-account.logged-in .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; margin: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation { position: sticky; top: 170px; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { padding: 8px; }
.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 0; border: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { gap: 12px; min-height: 46px; padding: 0 14px; border-radius: var(--radius); font-size: .975rem; }
.woocommerce-account .woocommerce-MyAccount-navigation li a::before {
	content: ""; flex: 0 0 20px; width: 20px; height: 20px; background: currentColor; opacity: .85;
	-webkit-mask: center / contain no-repeat; mask: center / contain no-repeat;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--accent-soft); color: var(--accent); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a::before { opacity: 1; }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--danger); margin-top: 6px; }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--dashboard a::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h7v7H4zM13 4h7v7h-7zM4 13h7v7H4zM13 13h7v7h-7z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h7v7H4zM13 4h7v7h-7zM4 13h7v7H4zM13 13h7v7h-7z'/%3E%3C/svg%3E"); }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--orders a::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7l9-4 9 4v10l-9 4-9-4zM3 7l9 4 9-4M12 11v10'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7l9-4 9 4v10l-9 4-9-4zM3 7l9 4 9-4M12 11v10'/%3E%3C/svg%3E"); }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--request-a-quote a::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h9l4 4v14H6zM15 3v4h4M9 12h6M9 16h6'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h9l4 4v14H6zM15 3v4h4M9 12h6M9 16h6'/%3E%3C/svg%3E"); }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--downloads a::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7 11l5 5 5-5M5 20h14'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7 11l5 5 5-5M5 20h14'/%3E%3C/svg%3E"); }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--edit-address a::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6-5.5-6-11a6 6 0 0 1 12 0c0 5.5-6 11-6 11zM12 12a2 2 0 1 0 0-4 2 2 0 0 0 0 4z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6-5.5-6-11a6 6 0 0 1 12 0c0 5.5-6 11-6 11zM12 12a2 2 0 1 0 0-4 2 2 0 0 0 0 4z'/%3E%3C/svg%3E"); }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--rma-requests a::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 8l-4 4 4 4M4 12h11a5 5 0 0 1 0 10h-4'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 8l-4 4 4 4M4 12h11a5 5 0 0 1 0 10h-4'/%3E%3C/svg%3E"); }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--edit-account a::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM4.5 20.5c1-3.8 4-5.5 7.5-5.5s6.5 1.7 7.5 5.5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM4.5 20.5c1-3.8 4-5.5 7.5-5.5s6.5 1.7 7.5 5.5'/%3E%3C/svg%3E"); }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--following a::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9l1.5-5h13L20 9M4 9v11h16V9M9.5 20v-5h5v5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9l1.5-5h13L20 9M4 9v11h16V9M9.5 20v-5h5v5'/%3E%3C/svg%3E"); }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--support-tickets a::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v11H9l-5 4z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v11H9l-5 4z'/%3E%3C/svg%3E"); }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 4H5v16h5M15 8l4 4-4 4M19 12H9'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 4H5v16h5M15 8l4 4-4 4M19 12H9'/%3E%3C/svg%3E"); }
/* The nav lives inside .entry-content, whose list and link rules would otherwise win */
.entry-content .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 8px; }
.entry-content .woocommerce-MyAccount-navigation li { margin: 0; padding: 0; list-style: none; }
.entry-content .woocommerce-MyAccount-navigation li a:not(.button) { display: flex; align-items: center; color: var(--text-dim); text-decoration: none; font-weight: 600; }
.entry-content .woocommerce-MyAccount-navigation li a:not(.button):hover { background: var(--surface-2); color: var(--ink); }
.entry-content .woocommerce-MyAccount-navigation li.is-active a:not(.button) { background: var(--accent-soft); color: var(--accent); }
.entry-content .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a:not(.button) { color: var(--danger); }


.woocommerce-account .woocommerce-MyAccount-content {
	background: var(--surface); border-radius: var(--radius-lg); box-shadow: var(--shadow-card);
	padding: clamp(20px, 3.5vw, 36px); min-width: 0;
}
.woocommerce-account .woocommerce-MyAccount-content > *:first-child { margin-top: 0; }
.woocommerce-account .woocommerce-MyAccount-content > p:first-of-type { font-size: 1.15rem; color: var(--ink); }
.woocommerce-account .woocommerce-MyAccount-content p a:not(.button):not(.btn):not(.dokan-btn) { color: var(--accent); font-weight: 600; text-decoration: underline; text-underline-offset: .2em; }
.woocommerce-account .woocommerce-MyAccount-content h2, .woocommerce-account .woocommerce-MyAccount-content h3 { font-size: 1.3rem; }
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message { box-shadow: none; background: var(--surface-2) !important; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info .button { order: 2; margin-left: auto; }

/* Dashboard quick links */
.acct-hello { margin: 0 0 20px; font-size: 1.2rem; color: var(--ink); }
.acct-hello small { display: block; margin-top: 4px; font-size: .925rem; color: var(--text-dim); }
.acct-hello a { color: var(--accent); font-weight: 600; text-decoration: underline; text-underline-offset: .2em; }
.acct-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; margin: 0 0 24px; padding: 0; list-style: none; }
.entry-content .acct-tiles { list-style: none; padding: 0; }
.acct-tiles li { margin: 0; }
.entry-content .acct-tiles a.acct-tile { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 18px; background: var(--surface-2); border-radius: var(--radius); color: var(--ink); text-decoration: none; transition: transform .2s var(--ease), box-shadow .2s var(--ease), background .2s ease; }
.entry-content .acct-tiles a.acct-tile:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); background: var(--accent-soft); color: var(--ink); }
.acct-tile .acct-tile-icon { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 10px; border-radius: 12px; background: var(--surface); color: var(--accent); }
.acct-tile strong { font-family: var(--font-heading); font-weight: 500; font-size: 1.025rem; }
.acct-tile small { font-size: .875rem; color: var(--text-dim); line-height: 1.4; }

/* Orders, downloads and other tables sit inside the card */
.woocommerce-account .woocommerce-MyAccount-content table.shop_table { box-shadow: none; border: 1px solid var(--border); }
.woocommerce-account .woocommerce-MyAccount-content table.shop_table th { background: var(--surface-2); }

/* Addresses */
.woocommerce-account .woocommerce-Addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.woocommerce-account .woocommerce-Addresses::before, .woocommerce-account .woocommerce-Addresses::after { display: none; }
.woocommerce-account .woocommerce-Address { float: none; width: auto; margin: 0; padding: 20px; background: var(--surface-2); border-radius: var(--radius); }
.woocommerce-account .woocommerce-Address-title { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.woocommerce-account .woocommerce-Address-title h2 { margin: 0; font-size: 1.15rem; }
.woocommerce-account .woocommerce-Address-title .edit { font-size: .9rem; font-weight: 700; color: var(--accent); }
.woocommerce-account .woocommerce-Address address { font-style: normal; line-height: 1.7; color: var(--text); }

/* WooCommerce's col-1/col-2 widths are more specific than the rules above */
.woocommerce-account .woocommerce-Addresses .woocommerce-Address { width: auto !important; max-width: none; float: none !important; }
.entry-content .woocommerce-Address-title a.edit { flex: 0 0 auto; padding: .35em .85em; border: 1.5px solid var(--border-strong); border-radius: 999px; color: var(--accent); font-size: .85rem; font-weight: 700; text-decoration: none; transition: border-color .15s ease, background .15s ease; }
.entry-content .woocommerce-Address-title a.edit:hover { border-color: var(--accent); background: var(--accent-soft); }

/* Edit account / address forms */
.woocommerce-account .woocommerce-MyAccount-content form .form-row { margin-bottom: 16px; }
.woocommerce-account .woocommerce-MyAccount-content form .form-row-first, .woocommerce-account .woocommerce-MyAccount-content form .form-row-last { width: calc(50% - 8px); }
.woocommerce-account .woocommerce-MyAccount-content form fieldset { border: 1px solid var(--border); border-radius: var(--radius); padding: 18px; margin: 24px 0; }
.woocommerce-account .woocommerce-MyAccount-content form legend { padding: 0 8px; font-weight: 700; color: var(--ink); }
.woocommerce-account .woocommerce-MyAccount-content form em, .woocommerce-account .woocommerce-MyAccount-content form span em { color: var(--text-dim); font-size: .875rem; }

/* Dokan blocks on the dashboard */
.entry-content .woocommerce-MyAccount-content a.dokan-btn, .entry-content .woocommerce-MyAccount-content a.btn { text-decoration: none; color: #fff; font-weight: 700; }
.woocommerce-account .dokan-account-migration-lists, .woocommerce-account .dokan-account-migration-lists li, .woocommerce-account .dokan-wholesale-migration-wrapper { border: 0 !important; outline: 0; box-shadow: none; }
@media (max-width: 520px) { .acct-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .entry-content .acct-tiles a.acct-tile { padding: 14px; } }
.woocommerce-account .dokan-btn.vendor-dashboard { display: inline-flex; align-items: center; min-height: 48px; padding: 0 1.6em !important; border-radius: var(--radius) !important; }
.woocommerce-account .dokan-account-migration-lists { display: grid; gap: 14px; margin: 18px 0 0; padding: 0; list-style: none; }
.woocommerce-account .dokan-account-migration-lists li { border: 0 !important; display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; padding: 18px 20px; background: var(--surface-2); border-radius: var(--radius); }
.woocommerce-account .dokan-account-migration-lists .left-content, .woocommerce-account .dokan-account-migration-lists .right-content { float: none; width: auto; }
.woocommerce-account .dokan-account-migration-lists p { margin: 0 0 .25em; }

@media (max-width: 860px) {
	.woocommerce-account.logged-in .woocommerce { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-account .woocommerce-MyAccount-navigation { min-width: 0; max-width: 100%; }
	.woocommerce-account .woocommerce-MyAccount-content { max-width: 100%; overflow-wrap: anywhere; }
	.woocommerce-account .woocommerce-MyAccount-content table.shop_table { display: block; overflow-x: auto; }
	.woocommerce-account .woocommerce-MyAccount-navigation { position: static; }
	.woocommerce-account .woocommerce-MyAccount-navigation ul { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: thin; padding: 8px; }
	.woocommerce-account .woocommerce-MyAccount-navigation li { flex: 0 0 auto; }
	.woocommerce-account .woocommerce-MyAccount-navigation li a { white-space: nowrap; }
	.woocommerce-account .woocommerce-Addresses { grid-template-columns: 1fr; }
	.woocommerce-account .woocommerce-MyAccount-content form .form-row-first, .woocommerce-account .woocommerce-MyAccount-content form .form-row-last { width: 100%; }
}


/* ---------------------------------------------------------------------------
   Widgets and controls that keep browser or plugin defaults
   ------------------------------------------------------------------------- */
.woocommerce-password-strength { background: var(--surface-2) !important; border: 0 !important; color: var(--text-dim) !important; border-radius: var(--radius); padding: .5em .8em; }
.woocommerce-password-strength.strong, .woocommerce-password-strength.good { color: var(--green) !important; }
.woocommerce-password-strength.short, .woocommerce-password-strength.bad { color: var(--danger) !important; }
.woocommerce-password-hint { color: var(--text-faint) !important; }
.woocommerce-help-tip { color: var(--text-faint) !important; }
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select { border-color: var(--danger) !important; }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: var(--green) !important; }
.woocommerce #review_form #respond p.stars a { color: #f5a524 !important; }
.woocommerce #reviews #comments ol.commentlist li .comment-text { background: var(--surface) !important; border: 1px solid var(--border) !important; border-radius: var(--radius); color: var(--text); }
.woocommerce #reviews #comments ol.commentlist li img.avatar { background: var(--surface-2); border-color: transparent !important; }
.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger,
.woocommerce-product-gallery__trigger { background: var(--surface) !important; border: 0 !important; color: var(--ink) !important; }
.woocommerce-product-gallery__trigger:hover { background: var(--brand) !important; color: #fff !important; }
.woocommerce .woocommerce-ordering select, .shop-sidebar .widget { border-radius: var(--radius); }
.shop-sidebar .widget { background: var(--surface); border: 0; padding: 1.2em; margin-bottom: 1.2em; box-shadow: var(--shadow-card); }
.shop-sidebar .widget-title { font-size: 1rem; margin-bottom: .8em; }

/* ---------------------------------------------------------------------------
   Motion: a short rise for the hero on load, and hover lifts above.
   Transform and opacity only, with a reduced-motion fallback.
   ------------------------------------------------------------------------- */
@keyframes vx-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.hero-banner, .promo { animation: vx-rise .6s var(--ease) both; }
.promo:nth-child(2) { animation-delay: .08s; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.hero-banner, .promo { animation: none; }
	.p-card, .cat-tile, .seller-card, .promo, ul.products li.product, .p-card-media img, ul.products li.product a img { transition: none; }
	.p-card:hover, .cat-tile:hover, .seller-card:hover, .promo:hover, ul.products li.product:hover { transform: none; }
}
