/*
Theme Name: ELX Pro
Author: ELX
Description: Responsive block theme for the ELXpro storefront and B2B experience.
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 7.4
Version: 0.8.6
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: elx-pro
Tags: block-patterns, block-styles, e-commerce, full-site-editing, one-column
*/

:root {
	--elx-card-radius: var(--wp--custom--border--radius--card, 0.875rem);
	--elx-color-border: rgb(47 50 52 / 22%);
	--elx-color-brand-surface: #d7b5cd;
	--elx-color-canvas: #f6f6f6;
	--elx-color-control-border: #737678;
	--elx-color-deep-violet: #5e3152;
	--elx-color-focus: #924e7d;
	--elx-color-muted: #2f3234;
	--elx-color-surface: #ffffff;
	--elx-color-text: #0a0a0a;
	--elx-color-tinted: rgb(215 181 205 / 22%);
	--elx-notice-error-bg: #fdecec;
	--elx-notice-error-border: #b32d2e;
	--elx-notice-error-text: #5c1a1b;
	--elx-notice-info-bg: #e8f2fb;
	--elx-notice-info-border: #2271b1;
	--elx-notice-info-text: #173a56;
	--elx-notice-success-bg: #e6f4ea;
	--elx-notice-success-border: #2e7d32;
	--elx-notice-success-text: #16351f;
	--elx-notice-warning-bg: #fff4d6;
	--elx-notice-warning-border: #a46b00;
	--elx-notice-warning-text: #4f3600;
	--elx-section-space: var(--wp--custom--layout--section, clamp(4rem, 3rem + 4vw, 7.5rem));
	--elx-shadow-card: 0 1rem 2.5rem rgb(10 10 10 / 8%);
	color-scheme: light dark;
}

html[data-elx-theme="light"] {
	--elx-color-border: rgb(47 50 52 / 22%);
	--elx-color-brand-surface: #d7b5cd;
	--elx-color-canvas: #f6f6f6;
	--elx-color-control-border: #737678;
	--elx-color-focus: #924e7d;
	--elx-color-muted: #2f3234;
	--elx-color-surface: #ffffff;
	--elx-color-text: #0a0a0a;
	--elx-color-tinted: rgb(215 181 205 / 22%);
	--elx-notice-error-bg: #fdecec;
	--elx-notice-error-border: #b32d2e;
	--elx-notice-error-text: #5c1a1b;
	--elx-notice-info-bg: #e8f2fb;
	--elx-notice-info-border: #2271b1;
	--elx-notice-info-text: #173a56;
	--elx-notice-success-bg: #e6f4ea;
	--elx-notice-success-border: #2e7d32;
	--elx-notice-success-text: #16351f;
	--elx-notice-warning-bg: #fff4d6;
	--elx-notice-warning-border: #a46b00;
	--elx-notice-warning-text: #4f3600;
	--elx-shadow-card: 0 1rem 2.5rem rgb(10 10 10 / 8%);
	color-scheme: light;
}

html[data-elx-theme="dark"] {
	--elx-color-border: rgb(246 246 246 / 22%);
	--elx-color-brand-surface: #2f3234;
	--elx-color-canvas: #0a0a0a;
	--elx-color-control-border: #a7aaac;
	--elx-color-focus: #d7b5cd;
	--elx-color-muted: #d7b5cd;
	--elx-color-surface: #2f3234;
	--elx-color-text: #f6f6f6;
	--elx-color-tinted: rgb(47 50 52 / 72%);
	--elx-notice-error-bg: #4a1f21;
	--elx-notice-error-border: #ff8a8b;
	--elx-notice-error-text: #ffe7e7;
	--elx-notice-info-bg: #15344d;
	--elx-notice-info-border: #75b8e6;
	--elx-notice-info-text: #e4f2ff;
	--elx-notice-success-bg: #173622;
	--elx-notice-success-border: #6fbf7b;
	--elx-notice-success-text: #dff5e5;
	--elx-notice-warning-bg: #473508;
	--elx-notice-warning-border: #f4c85d;
	--elx-notice-warning-text: #fff1c2;
	--elx-shadow-card: 0 1rem 2.5rem rgb(0 0 0 / 28%);
	color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
	html:not([data-elx-theme]) {
		--elx-color-border: rgb(246 246 246 / 22%);
		--elx-color-brand-surface: #2f3234;
		--elx-color-canvas: #0a0a0a;
		--elx-color-control-border: #a7aaac;
		--elx-color-focus: #d7b5cd;
		--elx-color-muted: #d7b5cd;
		--elx-color-surface: #2f3234;
		--elx-color-text: #f6f6f6;
		--elx-color-tinted: rgb(47 50 52 / 72%);
		--elx-notice-error-bg: #4a1f21;
		--elx-notice-error-border: #ff8a8b;
		--elx-notice-error-text: #ffe7e7;
		--elx-notice-info-bg: #15344d;
		--elx-notice-info-border: #75b8e6;
		--elx-notice-info-text: #e4f2ff;
		--elx-notice-success-bg: #173622;
		--elx-notice-success-border: #6fbf7b;
		--elx-notice-success-text: #dff5e5;
		--elx-notice-warning-bg: #473508;
		--elx-notice-warning-border: #f4c85d;
		--elx-notice-warning-text: #fff1c2;
		--elx-shadow-card: 0 1rem 2.5rem rgb(0 0 0 / 28%);
	}
}

html {
	scroll-behavior: smooth;
}

html body {
	background-color: var(--elx-color-canvas);
	color: var(--elx-color-text);
}

body {
	overflow-wrap: break-word;
}

img,
svg,
video {
	max-width: 100%;
}

a {
	text-underline-offset: 0.16em;
}

:where(a, button, input, select, textarea):focus-visible {
	outline: 3px solid var(--elx-color-focus);
	outline-offset: 3px;
}

.elx-skip-link {
	background: var(--elx-color-text);
	color: var(--elx-color-canvas);
	font-weight: 700;
	left: 1rem;
	padding: 0.75rem 1rem;
	position: fixed;
	top: 1rem;
	transform: translateY(-200%);
	transition: transform 120ms ease;
	z-index: 100000;
}

.elx-skip-link:focus {
	transform: translateY(0);
}

.elx-site-header,
.elx-site-footer {
	background-color: var(--elx-color-canvas);
	color: var(--elx-color-text);
}

.elx-site-header {
	border-bottom: 1px solid var(--elx-color-border);
	position: relative;
	z-index: 20;
}

.elx-header-main {
	gap: clamp(0.75rem, 0.5rem + 1vw, 1.5rem);
	min-height: 4.25rem;
	padding-block: var(--wp--preset--spacing--20);
}

.elx-site-brand {
	flex: 0 1 auto;
	gap: var(--wp--preset--spacing--20);
	min-width: 0;
}

.elx-site-brand :where(.wp-block-site-title, .elx-site-title) {
	font-family: var(--wp--preset--font-family--elx-identity);
	font-weight: 700;
	line-height: 1;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.elx-site-brand a {
	color: inherit !important;
	text-decoration: none;
}

.elx-header-controls {
	align-items: center;
	flex-shrink: 0;
	gap: 0;
	margin-left: auto;
	position: relative;
}

.elx-header-preferences-slot {
	align-items: center;
	display: flex;
	margin-inline: 0.25rem;
	min-width: 0;
}

.elx-header-preferences-slot:empty {
	display: none;
}

.elx-header-preferences {
	display: flex;
	position: static;
}

.elx-preferences-toggle[aria-expanded="true"] {
	background-color: var(--elx-color-tinted);
}

.elx-header-preferences-panel {
	background: var(--elx-color-canvas);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	box-shadow: 0 1rem 2.5rem rgb(0 0 0 / 18%);
	display: grid;
	gap: var(--wp--preset--spacing--20);
	min-width: min(22rem, calc(100vw - 2rem));
	padding: var(--wp--preset--spacing--30);
	position: absolute;
	right: 0;
	top: calc(100% + 0.625rem);
	z-index: 30;
}

.elx-header-preferences-panel[hidden] {
	display: none;
}

.elx-header-preferences-title {
	font-size: var(--wp--preset--font-size--body);
	margin: 0;
}

.elx-header-preference-row {
	align-items: center;
	display: grid;
	gap: var(--wp--preset--spacing--30);
	grid-template-columns: minmax(7rem, 1fr) auto;
	min-width: 0;
}

.elx-header-preference-label {
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

.elx-header-preferences-panel .elx-vat-switcher__label {
	display: none;
}

.elx-compact-selector {
	align-items: center;
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--wp--custom--border--radius--pill, 999px);
	display: inline-flex;
	gap: 1px;
	margin: 0;
	padding: 2px;
}

.elx-compact-selector :where(a, button) {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: var(--wp--custom--border--radius--pill, 999px);
	color: var(--elx-color-text);
	cursor: pointer;
	display: inline-flex;
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: 0.6875rem;
	font-weight: 700;
	justify-content: center;
	line-height: 1;
	min-height: 1.875rem;
	min-width: 2.125rem;
	padding: 0.35rem 0.45rem;
	text-decoration: none;
}

.elx-compact-selector :where(a[aria-current="page"], button[aria-pressed="true"]) {
	background: var(--elx-color-tinted);
	color: var(--elx-color-text);
}

.elx-compact-selector :where(a, button):focus-visible {
	outline: 2px solid var(--elx-color-focus);
	outline-offset: 2px;
}

.elx-header-controls :where(.wc-block-customer-account, .wc-block-mini-cart) {
	margin: 0;
}

.elx-header-controls :where(.wc-block-customer-account__link, .wc-block-mini-cart__button) {
	align-items: center;
	color: inherit;
	display: inline-flex;
	justify-content: center;
	min-height: 2.5rem;
	min-width: 2.5rem;
	padding: 0;
}

.elx-header-icon-button,
.elx-mobile-menu-toggle {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	height: 2.5rem;
	justify-content: center;
	padding: 0;
	width: 2.5rem;
}

.elx-header-icon-button svg,
.elx-mobile-menu-toggle svg {
	height: 1.25rem;
	width: 1.25rem;
}

.elx-search-toggle[aria-expanded="true"] {
	background-color: var(--elx-color-tinted);
}

.elx-header-search-panel {
	background-color: var(--elx-color-canvas);
	border-top: 1px solid var(--elx-color-border);
	display: none;
}

.elx-header-search-panel.is-open {
	display: block;
}

.elx-header-search-inner {
	padding-block: var(--wp--preset--spacing--20);
}

.elx-product-search {
	margin: 0 0 0 auto;
	max-width: 48rem;
	min-width: 0;
}

.elx-product-search .wp-block-search__inside-wrapper {
	background-color: var(--elx-color-surface);
	border: 1px solid var(--elx-color-control-border);
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	min-height: 3rem;
	padding: 3px;
}

.elx-product-search .wp-block-search__input {
	background: transparent;
	border: 0;
	color: var(--elx-color-text);
	min-width: 0;
}

.elx-product-search .wp-block-search__button {
	border-radius: calc(var(--wp--custom--border--radius--control, 0.375rem) - 2px);
	margin: 0;
	min-width: 2.75rem;
	padding: 0.65rem;
}

.elx-mobile-menu-toggle {
	display: none;
}

.elx-mobile-menu-toggle[hidden] {
	display: none;
}

.elx-primary-navigation {
	align-items: center;
	display: flex;
	flex: 1 1 auto;
	gap: clamp(0.65rem, 0.2rem + 0.8vw, 1.25rem);
	justify-content: center;
	margin: 0;
	min-width: 0;
}

.elx-navigation-link {
	align-items: center;
	color: inherit !important;
	display: inline-flex;
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: clamp(0.75rem, 0.7rem + 0.15vw, 0.875rem);
	font-weight: 700;
	min-height: 2.75rem;
	text-decoration: none;
	white-space: nowrap;
}

.elx-navigation-link:hover {
	text-decoration: underline;
	text-decoration-thickness: 2px;
}

.elx-navigation-item--products {
	align-items: center;
	display: inline-flex;
}

.elx-products-toggle,
.elx-mega-menu__group-header button {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	justify-content: center;
	min-height: 2.5rem;
	min-width: 2rem;
	padding: 0;
}

.elx-products-toggle svg,
.elx-mega-menu__group-header button svg {
	height: 1rem;
	transition: transform 120ms ease;
	width: 1rem;
}

.elx-products-toggle[aria-expanded="true"] svg,
.elx-mega-menu__group-header button[aria-expanded="true"] svg {
	transform: rotate(180deg);
}

.elx-products-toggle:focus-visible,
.elx-mega-menu__group-header button:focus-visible {
	outline: 2px solid var(--elx-color-focus);
	outline-offset: 2px;
}

.elx-products-mega-menu {
	background: var(--elx-color-canvas);
	border-block: 1px solid var(--elx-color-border);
	box-shadow: 0 1rem 2.5rem rgb(0 0 0 / 16%);
	color: var(--elx-color-text);
	left: 0;
	position: absolute;
	right: 0;
	top: 100%;
	z-index: 28;
}

.elx-products-mega-menu[hidden],
.elx-mega-menu__group-panel[hidden] {
	display: none;
}

.elx-products-mega-menu__inner {
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size, 1280px);
	padding: clamp(1.25rem, 1rem + 1vw, 2.25rem);
}

.elx-mega-menu__header {
	align-items: center;
	border-bottom: 1px solid var(--elx-color-border);
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 1.25rem;
	padding-bottom: 0.75rem;
}

.elx-mega-menu__header :where(p, a) {
	margin: 0;
}

.elx-mega-menu__header a {
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

.elx-mega-menu__groups {
	display: grid;
	gap: clamp(1rem, 0.75rem + 1vw, 2rem);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
}

.elx-mega-menu__group {
	min-width: 0;
}

.elx-mega-menu__group-header {
	align-items: center;
	display: flex;
	gap: 0.5rem;
	justify-content: space-between;
}

.elx-mega-menu__group-header h2 {
	font-size: var(--wp--preset--font-size--body);
	margin: 0;
}

.elx-mega-menu__group-header h2 a {
	color: inherit;
	text-decoration: none;
}

.elx-mega-menu__group-header h2 a:hover {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.elx-mega-menu__group-header button {
	display: none;
}

.elx-mega-menu__links {
	display: grid;
	gap: 0.45rem;
	list-style: none;
	margin: 0.75rem 0 0;
	padding: 0;
}

.elx-mega-menu__links .elx-mega-menu__links {
	border-left: 1px solid var(--elx-color-border);
	margin-block: 0.45rem 0.25rem;
	padding-left: 0.75rem;
}

.elx-mega-menu__links a {
	color: var(--elx-color-text);
	display: inline-block;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.35;
	overflow-wrap: anywhere;
	text-decoration: none;
}

.elx-mega-menu__links a:hover {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.elx-mega-menu__empty {
	color: var(--elx-color-muted);
	margin: 0;
}

.elx-nav-mobile-only {
	display: none;
}

.elx-theme-switcher {
	align-items: center;
	background-color: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--wp--custom--border--radius--pill, 999px);
	display: inline-flex;
	gap: 1px;
	padding: 2px;
}

.elx-theme-switcher button {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: inherit;
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	font-family: var(--wp--preset--font-family--elx-identity);
	height: 1.625rem;
	justify-content: center;
	line-height: 0;
	min-height: 1.625rem;
	padding: 0;
	width: 1.625rem;
}

.elx-theme-switcher svg {
	display: block;
	height: 0.8125rem;
	pointer-events: none;
	width: 0.8125rem;
}

.elx-theme-switcher button[aria-pressed="true"] {
	background-color: var(--elx-color-text);
	color: var(--elx-color-canvas);
}

.elx-theme-switcher button:focus-visible {
	outline: 2px solid var(--elx-color-focus);
	outline-offset: 2px;
}

.wp-block-button.is-style-elx-secondary .wp-block-button__link {
	background: transparent;
	border: 1px solid currentcolor;
	color: inherit;
}

.wp-block-button.is-style-elx-secondary .wp-block-button__link:hover {
	background-color: var(--elx-color-text);
	border-color: var(--elx-color-text);
	color: var(--elx-color-canvas);
}

.wp-block-button.is-style-elx-quiet .wp-block-button__link {
	background: transparent;
	color: var(--elx-color-text);
	padding-inline: 0;
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

.elx-section {
	padding-block: var(--elx-section-space);
}

.elx-section--tinted {
	background-color: var(--elx-color-tinted);
}

.elx-section-heading {
	margin-bottom: var(--wp--preset--spacing--50);
}

.elx-section-heading > :first-child,
.elx-section-heading > .wp-block-group > :first-child {
	margin-top: 0;
}

.elx-section-heading > :last-child,
.elx-section-heading > .wp-block-group > :last-child {
	margin-bottom: 0;
}

.elx-eyebrow {
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 750;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.elx-hero-v3 {
	background:
		radial-gradient(circle at 85% 20%, rgb(146 78 125 / 34%), transparent 32rem),
		linear-gradient(135deg, #0a0a0a 0%, #2f3234 100%);
	color: #f6f6f6;
}

.elx-hero-layout {
	gap: clamp(2.5rem, 1.5rem + 4vw, 6rem);
}

.elx-hero-copy > * {
	max-width: 48rem;
}

.elx-hero-copy h1 {
	font-family: var(--wp--preset--font-family--elx-body);
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.08;
	max-width: 13ch;
}

.elx-hero-copy .has-lead-font-size {
	color: #d7b5cd;
	max-width: 42rem;
}

.elx-hero-v3 .wp-block-button.is-style-elx-secondary .wp-block-button__link {
	color: #f6f6f6;
}

.elx-hero-v3 .wp-block-button.is-style-elx-secondary .wp-block-button__link:hover {
	background-color: #f6f6f6;
	border-color: #f6f6f6;
	color: #0a0a0a;
}

.elx-hero-visual {
	align-items: center;
	aspect-ratio: 4 / 5;
	background:
		linear-gradient(145deg, rgb(215 181 205 / 18%), transparent 55%),
		repeating-linear-gradient(135deg, transparent 0 1.5rem, rgb(246 246 246 / 4%) 1.5rem 1.6rem);
	border: 1px solid rgb(246 246 246 / 28%);
	border-radius: var(--elx-card-radius);
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 22rem;
	overflow: hidden;
	position: relative;
}

.elx-hero-visual::before {
	border: 1px solid rgb(215 181 205 / 48%);
	border-radius: 50%;
	content: "";
	inset: 14% 8%;
	position: absolute;
	transform: rotate(-12deg);
}

.elx-hero-visual__mark {
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: clamp(4rem, 2.5rem + 5vw, 8rem);
	font-weight: 800;
	letter-spacing: -0.015em;
	line-height: 1;
	position: relative;
}

.elx-hero-visual__caption {
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.12em;
	margin-top: 1rem;
	position: relative;
	text-transform: uppercase;
}

.elx-trust-strip {
	background-color: var(--elx-color-deep-violet);
	color: #f6f6f6;
	padding-block: var(--wp--preset--spacing--30);
}

.elx-trust-grid {
	display: grid;
	gap: var(--wp--preset--spacing--20);
	grid-template-columns: repeat(4, minmax(0, 1fr));
	justify-items: center;
}

.elx-trust-grid p {
	align-items: center;
	display: flex;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	gap: 0.625rem;
	justify-content: center;
	margin: 0;
	text-align: center;
}

.elx-trust-grid p::before {
	background-color: #d7b5cd;
	border-radius: 50%;
	content: "";
	flex: 0 0 0.5rem;
	height: 0.5rem;
	width: 0.5rem;
}

.elx-grid {
	display: grid;
	gap: var(--wp--preset--spacing--30);
}

.elx-grid--brands {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.elx-grid--categories {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.elx-grid--editorial {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.elx-card {
	background-color: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--elx-card-radius);
	box-shadow: var(--elx-shadow-card);
	height: 100%;
	overflow: hidden;
	padding: var(--wp--preset--spacing--30);
}

.elx-card > :last-child {
	margin-bottom: 0;
}

.elx-term-card__image {
	aspect-ratio: 4 / 3;
	background: var(--elx-color-canvas);
	border-radius: calc(var(--elx-card-radius) - 0.25rem);
	margin: 0 0 var(--wp--preset--spacing--30);
	overflow: hidden;
}

.elx-term-card__image img {
	height: 100%;
	object-fit: contain;
	width: 100%;
}

.elx-term-card__image--brand {
	aspect-ratio: 16 / 9;
}

.elx-term-card__count {
	color: var(--elx-color-muted);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.03em;
	margin-bottom: 0.5rem;
	text-transform: uppercase;
}

.elx-card h3 a {
	color: inherit;
	text-decoration: none;
}

.elx-card h3 a:hover,
.elx-card h3 a:focus-visible {
	color: var(--elx-color-accent);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.elx-media-placeholder {
	align-items: center;
	background:
		linear-gradient(135deg, var(--elx-color-tinted), transparent),
		var(--elx-color-canvas);
	border: 1px dashed var(--elx-color-border);
	border-radius: calc(var(--elx-card-radius) - 0.25rem);
	display: flex;
	justify-content: center;
	margin-bottom: var(--wp--preset--spacing--30);
	min-height: 8rem;
}

.elx-media-placeholder p {
	color: var(--elx-color-muted);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.08em;
	margin: 0;
	text-transform: uppercase;
}

.elx-media-placeholder--category {
	aspect-ratio: 4 / 3;
}

.elx-media-placeholder--category p {
	color: var(--wp--preset--color--elx-violet);
	font-size: var(--wp--preset--font-size--title);
	letter-spacing: -0.01em;
}

.elx-media-placeholder--editorial {
	aspect-ratio: 16 / 10;
}

.elx-card-link {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 750;
}

.elx-card-link a::after {
	content: " →";
}

.elx-product-collection .wc-block-product {
	min-width: 0;
}

.elx-product-collection .wc-block-components-product-image img {
	border-radius: var(--elx-card-radius);
}

.elx-product-card {
	background-color: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--elx-card-radius);
	box-shadow: var(--elx-shadow-card);
	display: flex;
	flex-direction: column;
	height: 100%;
	min-width: 0;
	overflow: hidden;
	padding: var(--wp--preset--spacing--20);
}

.elx-product-card > :first-child {
	margin-top: 0;
}

.elx-product-card > :last-child {
	margin-bottom: 0;
}

.elx-product-card .wc-block-components-product-image {
	margin: calc(var(--wp--preset--spacing--20) * -1);
	margin-bottom: var(--wp--preset--spacing--20);
}

.elx-product-card .wc-block-components-product-image img {
	aspect-ratio: 1;
	object-fit: contain;
}

.elx-product-card__brand,
.elx-product-brand {
	font-family: var(--wp--preset--font-family--elx-identity);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.elx-product-card__brand a,
.elx-product-brand a {
	color: var(--elx-color-muted);
	text-decoration: none;
}

.elx-product-card__descriptor {
	color: var(--elx-color-muted);
	margin-block: 0 var(--wp--preset--spacing--20);
}

.elx-product-card .wp-block-post-title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}

.elx-product-card__price {
	font-family: var(--wp--preset--font-family--elx-body);
	font-weight: 750;
	margin-top: auto;
}

.elx-product-card .elx-contact-for-price__link {
	background: transparent;
	border: 0;
	color: var(--elx-color-text) !important;
	justify-content: flex-start;
	min-height: 0;
	padding: 0;
	text-align: left;
}

.elx-product-card .elx-contact-for-price__link:hover {
	background: transparent;
	color: var(--elx-color-focus) !important;
}

.elx-product-card__stock {
	color: var(--elx-color-muted);
}

.elx-product-card__button .wp-block-button__link,
.elx-product-card__button .wp-element-button {
	min-height: 2.75rem;
	width: 100%;
}

.elx-empty-state {
	background-color: var(--elx-color-tinted);
	border: 1px dashed var(--elx-color-border);
	border-radius: var(--elx-card-radius);
	padding: var(--wp--preset--spacing--50);
	text-align: center;
}

.elx-b2b-cta {
	background:
		linear-gradient(115deg, rgb(146 78 125 / 28%), transparent 48%),
		#5e3152;
	color: #f6f6f6;
}

.elx-b2b-layout {
	gap: clamp(2rem, 1rem + 4vw, 6rem);
}

.elx-b2b-cta .has-lead-font-size {
	color: #d7b5cd;
}

.elx-b2b-cta .wp-block-button.is-style-elx-secondary .wp-block-button__link {
	color: #f6f6f6;
}

.elx-b2b-cta .wp-block-button.is-style-elx-secondary .wp-block-button__link:hover {
	background-color: #f6f6f6;
	border-color: #f6f6f6;
	color: #0a0a0a;
}

.elx-feature-list {
	display: grid;
	gap: var(--wp--preset--spacing--20);
	list-style: none;
	margin: 0;
	padding: 0;
}

.elx-feature-list li {
	background-color: rgb(246 246 246 / 9%);
	border: 1px solid rgb(246 246 246 / 24%);
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	font-weight: 700;
	padding: var(--wp--preset--spacing--30);
}

.elx-feature-list li::before {
	color: #d7b5cd;
	content: "✓";
	font-weight: 800;
	margin-right: 0.75rem;
}

.elx-support-cta {
	padding-top: 0;
}

.elx-support-panel {
	background-color: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--elx-card-radius);
	box-shadow: var(--elx-shadow-card);
	gap: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--50);
}

.elx-support-actions {
	flex: 0 1 auto;
}

.elx-contact-for-price {
	display: inline-flex;
	font-family: var(--wp--preset--font-family--elx-identity);
	font-weight: 750;
	margin: 0;
}

.elx-contact-for-price__link {
	align-items: center;
	background-color: var(--wp--preset--color--elx-violet);
	border: 1px solid var(--wp--preset--color--elx-violet);
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	color: var(--wp--preset--color--traffic-white) !important;
	display: inline-flex;
	justify-content: center;
	min-height: 2.75rem;
	padding: 0.65rem 1rem;
	text-decoration: none;
}

.elx-contact-for-price__link:hover {
	background-color: var(--elx-color-text);
	border-color: var(--elx-color-text);
	color: var(--elx-color-canvas) !important;
}

html[data-elx-theme="dark"] .elx-contact-for-price {
	color: var(--wp--preset--color--soft-violet);
}

html[data-elx-theme="dark"] a:where(:not(.wp-element-button)) {
	color: var(--wp--preset--color--soft-violet);
}

@media (prefers-color-scheme: dark) {
	html:not([data-elx-theme]) .elx-contact-for-price {
		color: var(--wp--preset--color--soft-violet);
	}

	html:not([data-elx-theme]) a:where(:not(.wp-element-button)) {
		color: var(--wp--preset--color--soft-violet);
	}
}

.elx-site-footer {
	border-top: 1px solid var(--elx-color-border);
}

.elx-footer-meta {
	color: var(--elx-color-muted);
}

.elx-footer-appearance {
	align-items: center;
	display: inline-flex;
	font-size: var(--wp--preset--font-size--small);
	gap: 0.5rem;
}

.elx-footer-appearance > span {
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: 0.75rem;
	font-weight: 700;
}

.elx-catalog-main,
.elx-single-product {
	min-width: 0;
}

.elx-single-product {
	overflow-x: clip;
}

.elx-catalog-header {
	margin-bottom: var(--wp--preset--spacing--40);
}

.elx-catalog-header .woocommerce-breadcrumb,
.elx-single-product .woocommerce-breadcrumb {
	color: var(--elx-color-muted);
	font-size: var(--wp--preset--font-size--small);
}

.elx-catalog-collection {
	min-width: 0;
}

.elx-catalog-toolbar {
	border-bottom: 1px solid var(--elx-color-border);
	gap: var(--wp--preset--spacing--20);
	margin-bottom: var(--wp--preset--spacing--40);
	padding-bottom: var(--wp--preset--spacing--20);
}

.elx-catalog-toolbar__actions {
	gap: var(--wp--preset--spacing--20);
	margin-left: auto;
}

.elx-catalog-toolbar .woocommerce-result-count {
	color: var(--elx-color-muted);
	font-size: var(--wp--preset--font-size--small);
	margin: 0;
}

.elx-catalog-active-summary {
	color: var(--elx-color-muted);
	font-size: var(--wp--preset--font-size--small);
}

.elx-catalog-active-summary a {
	font-weight: 700;
	margin-left: 0.35rem;
}

.elx-catalog-filter-toggle {
	background: transparent;
	border: 1px solid var(--elx-color-border);
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	color: var(--elx-color-text);
	cursor: pointer;
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: 0.75rem;
	font-weight: 700;
	min-height: 2.5rem;
	padding: 0.45rem 0.75rem;
}

.elx-catalog-toolbar select,
.elx-catalog-filters select,
.elx-single-product select,
.elx-single-product input {
	background-color: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	color: var(--elx-color-text);
	font: inherit;
	max-width: 100%;
	min-height: 2.75rem;
}

.elx-catalog-layout {
	align-items: flex-start !important;
	gap: clamp(2rem, 1.5rem + 1vw, 2.5rem);
}

.elx-catalog-layout > .wp-block-column {
	min-width: 0;
}

.elx-catalog-sidebar {
	flex: 0 0 17rem;
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 1rem);
}

.elx-catalog-search {
	border-bottom: 1px solid var(--elx-color-border);
	margin-bottom: var(--wp--preset--spacing--30);
	padding-bottom: var(--wp--preset--spacing--30);
}

.elx-catalog-search > label {
	display: block;
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: 0.875rem;
	font-weight: 700;
	margin-bottom: var(--wp--preset--spacing--10);
}

.elx-catalog-search > div {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
}

.elx-catalog-search input,
.elx-catalog-search button {
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-control-border);
	color: var(--elx-color-text);
	font: inherit;
	min-height: 2.75rem;
	min-width: 0;
}

.elx-catalog-search input {
	border-radius: var(--wp--custom--border--radius--control, 0.375rem) 0 0 var(--wp--custom--border--radius--control, 0.375rem);
	padding-inline: 0.65rem;
	width: 100%;
}

.elx-catalog-search button {
	border-left: 0;
	border-radius: 0 var(--wp--custom--border--radius--control, 0.375rem) var(--wp--custom--border--radius--control, 0.375rem) 0;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: 0.75rem;
	font-weight: 700;
	padding-inline: 0.65rem;
}

.elx-catalog-filters {
	--wc-product-filters-background-color: var(--elx-color-canvas);
	--wc-product-filters-text-color: var(--elx-color-text);
	color: var(--elx-color-text);
	width: 100%;
}

.elx-catalog-filters :where(button, input, select) {
	color: inherit;
	font: inherit;
}

.elx-catalog-filters :where(.wp-block-heading, h2, h3) {
	font-size: 1rem;
	margin: 0 0 var(--wp--preset--spacing--10);
}

.elx-catalog-filters :where(
	.elx-catalog-term-filter,
	.wp-block-woocommerce-product-filter-taxonomy,
	.wp-block-woocommerce-product-filter-price,
	.wp-block-woocommerce-product-filter-status
) {
	border-bottom: 1px solid var(--elx-color-border);
	padding-bottom: var(--wp--preset--spacing--30);
}

.elx-catalog-term-filter ul {
	display: grid;
	gap: 0.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.elx-catalog-term-filter a {
	align-items: center;
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	color: var(--elx-color-text);
	display: flex;
	font-size: 0.875rem;
	gap: 0.75rem;
	justify-content: space-between;
	min-height: 2.5rem;
	padding: 0.45rem 0.55rem;
	text-decoration: none;
}

.elx-catalog-term-filter a:hover,
.elx-catalog-term-filter a:focus-visible,
.elx-catalog-term-filter a[aria-current="page"] {
	background: var(--elx-color-tinted);
	color: var(--elx-color-text);
}

.elx-catalog-term-filter a[aria-current="page"] {
	box-shadow: inset 0.2rem 0 0 var(--elx-color-accent);
	font-weight: 750;
}

.elx-catalog-term-filter a span:last-child {
	color: var(--elx-color-muted);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.elx-catalog-filters .wc-block-product-filter-checkbox-list__label {
	align-items: center;
	display: flex;
	gap: 0.5rem;
}

.elx-catalog-filters .wc-block-product-filter-price-slider__content {
	min-width: 0;
}

.elx-catalog-products .wc-block-product-template {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	justify-content: start;
	margin-block-start: 0;
	width: 100%;
}

.elx-catalog-layout.is-filter-collapsed {
	display: block;
}

.elx-catalog-layout.is-filter-collapsed .elx-catalog-products .wc-block-product-template {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.elx-product-collection .wc-block-product-template,
.elx-product-recommendations .wc-block-product-template {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	justify-content: start;
	width: 100%;
}

.elx-catalog-collection .wc-block-product,
.elx-product-recommendations .wc-block-product {
	min-width: 0;
	width: 100%;
}

.elx-catalog-header,
.elx-catalog-collection {
	box-sizing: border-box;
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size);
	width: 100%;
}

.elx-catalog-collection .wp-block-query-pagination,
.elx-product-recommendations .wp-block-query-pagination {
	margin-top: var(--wp--preset--spacing--50);
}

.elx-catalog-collection .page-numbers {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	min-height: 2.75rem;
	min-width: 2.75rem;
}

.elx-product-hero {
	align-items: flex-start !important;
	gap: clamp(2rem, 1rem + 4vw, 5rem);
	margin-top: var(--wp--preset--spacing--40);
}

.elx-product-hero > .wp-block-column {
	min-width: 0;
}

.elx-product-gallery {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + 1rem);
}

.elx-product-gallery .woocommerce-product-gallery,
.elx-product-gallery .wp-block-woocommerce-product-image-gallery {
	max-width: 100%;
}

.elx-product-gallery img {
	border-radius: var(--elx-card-radius);
}

.elx-product-summary > * {
	max-width: 100%;
}

.elx-product-summary .wp-block-post-title {
	margin-bottom: var(--wp--preset--spacing--20);
}

.elx-product-identity {
	color: var(--elx-color-muted);
	font-size: var(--wp--preset--font-size--small);
}

.elx-product-identity .wp-block-group {
	gap: 0.5rem 1rem;
}

.elx-product-short-description {
	color: var(--elx-color-muted);
}

.elx-product-price {
	font-family: var(--wp--preset--font-family--elx-body);
	font-weight: 750;
}

.elx-product-stock,
.elx-product-availability {
	color: var(--elx-color-muted);
	font-size: var(--wp--preset--font-size--small);
}

.elx-single-product .wp-block-woocommerce-add-to-cart-form {
	margin-top: var(--wp--preset--spacing--30);
}

.elx-single-product :where(.cart, .variations_form, .grouped_form) {
	max-width: 100%;
}

.elx-single-product .variations {
	display: block;
	max-width: 100%;
	width: 100%;
}

.elx-single-product .variations tbody,
.elx-single-product .variations tr,
.elx-single-product .variations th,
.elx-single-product .variations td {
	display: block;
	max-width: 100%;
	text-align: left;
	width: 100%;
}

.elx-single-product .variations th,
.elx-single-product .variations td {
	padding: 0 0 var(--wp--preset--spacing--10);
}

.elx-single-product :where(.single_add_to_cart_button, .quantity .qty) {
	min-height: 2.75rem;
}

.elx-product-detail-sections {
	margin-block: var(--elx-section-space);
}

.elx-product-detail-sections > :where(section, .wp-block-woocommerce-product-details) {
	border-top: 1px solid var(--elx-color-border);
	padding-block: var(--wp--preset--spacing--50);
}

.elx-product-highlights ul {
	display: grid;
	gap: var(--wp--preset--spacing--20);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	padding: 0;
}

.elx-product-highlights li {
	background-color: var(--elx-color-tinted);
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	padding: var(--wp--preset--spacing--20);
}

.elx-product-highlights li::before {
	color: var(--wp--preset--color--elx-violet);
	content: "✓";
	font-weight: 800;
	margin-right: 0.625rem;
}

.elx-product-documents ul {
	display: grid;
	gap: var(--wp--preset--spacing--20);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	padding: 0;
}

.elx-product-documents a {
	align-items: center;
	background-color: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	color: var(--elx-color-text) !important;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	min-height: 3rem;
	padding: var(--wp--preset--spacing--20);
	text-decoration: none;
}

.elx-product-documents a:hover {
	border-color: var(--elx-color-focus);
}

.elx-product-document__label {
	font-weight: 700;
}

.elx-product-document__type {
	color: var(--elx-color-muted);
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: var(--wp--preset--font-size--small);
}

.elx-product-detail-sections table {
	display: block;
	max-width: 100%;
	overflow-x: auto;
}

.elx-product-recommendations {
	border-top: 1px solid var(--elx-color-border);
	margin-block: var(--elx-section-space);
	padding-top: var(--wp--preset--spacing--50);
}

@media (max-width: 1100px) {
	.elx-header-main {
		column-gap: 0;
		flex-wrap: wrap !important;
		min-height: 3.75rem;
	}

	.elx-site-brand {
		flex: 1 1 auto;
		gap: var(--wp--preset--spacing--10);
		max-width: calc(100% - 11rem);
	}

	.elx-site-brand .wp-block-site-logo img {
		max-width: 2rem;
	}

	.elx-site-brand :where(.wp-block-site-title, .elx-site-title) {
		font-size: 0.9375rem;
	}

	.elx-header-controls {
		margin-left: 0;
	}

	.elx-header-controls :where(.wc-block-customer-account__link, .wc-block-mini-cart__button),
	.elx-header-icon-button,
	.elx-mobile-menu-toggle {
		height: 2.75rem;
		min-height: 2.75rem;
		min-width: 2.75rem;
		width: 2.75rem;
	}

	.elx-header-icon-button,
	.elx-mobile-menu-toggle {
		height: 2.75rem;
		width: 2.75rem;
	}

	.elx-mobile-menu-toggle:not([hidden]) {
		display: inline-flex;
		flex: 0 0 2.75rem;
	}

	.elx-primary-navigation {
		align-items: stretch;
		border-top: 1px solid var(--elx-color-border);
		flex: 1 0 100%;
		flex-direction: column;
		gap: 0;
		margin-top: var(--wp--preset--spacing--20);
		min-height: 0;
		order: 3;
		padding-block: var(--wp--preset--spacing--20);
	}

	.elx-primary-navigation[hidden] {
		display: none;
	}

	.elx-navigation-link {
		border-bottom: 1px solid var(--elx-color-border);
		font-size: var(--wp--preset--font-size--body);
		min-height: 3rem;
	}

	.elx-navigation-item--products {
		border-bottom: 1px solid var(--elx-color-border);
		display: grid;
		grid-template-columns: minmax(0, 1fr) 3rem;
	}

	.elx-navigation-item--products > .elx-navigation-link {
		border-bottom: 0;
	}

	.elx-products-toggle {
		height: 3rem;
		min-height: 3rem;
		min-width: 3rem;
		width: 3rem;
	}

	.elx-products-mega-menu {
		border: 0;
		box-shadow: none;
		grid-column: 1 / -1;
		position: static;
	}

	.elx-products-mega-menu__inner {
		padding: 0 0 var(--wp--preset--spacing--20);
	}

	.elx-mega-menu__header {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.35rem;
		margin: 0;
		padding: var(--wp--preset--spacing--20) 0;
	}

	.elx-mega-menu__groups {
		display: block;
	}

	.elx-mega-menu__group {
		border-bottom: 1px solid var(--elx-color-border);
	}

	.elx-mega-menu__group-header {
		min-height: 3rem;
	}

	.elx-mega-menu__group-header h2 {
		font-size: var(--wp--preset--font-size--small);
	}

	.elx-mega-menu__group-header button:not([hidden]) {
		display: inline-flex;
		height: 2.75rem;
		min-height: 2.75rem;
		min-width: 2.75rem;
		width: 2.75rem;
	}

	.elx-mega-menu__group-panel {
		padding: 0 0 var(--wp--preset--spacing--20);
	}

	.elx-mega-menu__links a {
		min-height: 2.75rem;
		padding-block: 0.65rem;
		width: 100%;
	}

	.elx-nav-mobile-only {
		display: flex;
	}

	.elx-mobile-preferences-slot {
		display: block;
		padding-top: var(--wp--preset--spacing--30);
		width: 100%;
	}

	.elx-header-preferences.is-mobile {
		display: block;
		width: 100%;
	}

	.elx-header-preferences.is-mobile .elx-preferences-toggle {
		display: none;
	}

	.elx-header-preferences.is-mobile .elx-header-preferences-panel {
		border-inline: 0;
		border-radius: 0;
		box-shadow: none;
		min-width: 0;
		padding: var(--wp--preset--spacing--20) 0 0;
		position: static;
		width: 100%;
	}

	.elx-header-preferences.is-mobile .elx-header-preference-row {
		border-top: 1px solid var(--elx-color-border);
		min-height: 3.5rem;
		padding-block: var(--wp--preset--spacing--20);
	}

	.elx-header-preferences.is-mobile :where(.elx-compact-selector, .elx-vat-switcher) {
		min-height: 2.75rem;
	}

	.elx-header-preferences.is-mobile :where(.elx-compact-selector a, .elx-compact-selector button, .elx-vat-switcher button) {
		min-height: 2.75rem;
		min-width: 2.75rem;
	}
}

@media (max-width: 1024px) {
	.elx-grid--brands,
	.elx-grid--categories {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.elx-trust-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.elx-catalog-sidebar {
		flex-basis: 15rem !important;
	}

	.elx-catalog-products .wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.elx-catalog-layout.is-filter-collapsed .elx-catalog-products .wc-block-product-template {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 900px) {
	.elx-catalog-layout.is-filter-collapsed .elx-catalog-products .wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Private B2B company, list, approval, and quote workspace. */
.elx-company-workspace,
.elx-b2b-workspace {
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--elx-card-radius);
	container-type: inline-size;
	margin-block: var(--wp--preset--spacing--40);
	min-width: 0;
	padding: clamp(1rem, 3vw, 2rem);
}

.elx-company-summary,
.elx-workflow-grid {
	display: grid;
	gap: var(--wp--preset--spacing--30);
}

.elx-company-summary {
	background: var(--elx-color-tinted);
	border-radius: calc(var(--elx-card-radius) * 0.7);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
	margin-block: 1rem;
	padding: 1rem;
}

.elx-company-summary p,
.elx-workflow-card :where(h4, p) {
	margin-block: 0;
}

.elx-company-members {
	display: grid;
	gap: 0.4rem;
	list-style: none;
	padding: 0;
}

.elx-company-members li {
	align-items: baseline;
	border-bottom: 1px solid var(--elx-color-border);
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 0.8rem;
	justify-content: space-between;
	padding-block: 0.5rem;
}

.elx-company-members small {
	color: var(--elx-color-muted);
}

.elx-company-member-main {
	display: grid;
	gap: 0.2rem;
	min-width: 0;
}

.elx-company-member-actions,
.elx-company-member-actions form {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.elx-company-member-actions select {
	min-width: min(100%, 10rem);
	width: auto;
}

.elx-company-member-actions button {
	min-height: 2.75rem;
}

.elx-company-invite,
.elx-workflow-create,
.elx-quote-request,
.elx-workflow-quote-start {
	background: var(--elx-color-tinted);
	border-radius: calc(var(--elx-card-radius) * 0.7);
	margin-block: 1rem;
	padding: 1rem;
}

.elx-workspace-jump-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-block: 1rem;
}

.elx-workspace-jump-links a {
	border: 1px solid var(--elx-color-border);
	border-radius: 999px;
	color: var(--elx-color-text);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 750;
	padding: 0.45rem 0.75rem;
	text-decoration: none;
}

.elx-workflow-grid {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 31rem), 1fr));
	margin-block: 1rem 2rem;
}

.elx-workflow-card {
	align-content: start;
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: calc(var(--elx-card-radius) * 0.7);
	container-type: inline-size;
	display: grid;
	gap: 0.8rem;
	min-width: 0;
	padding: 1rem;
}

.elx-workflow-actions,
.elx-inline-form {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.elx-workflow-actions form {
	margin: 0;
}

.elx-list-editor,
.elx-list-items,
.elx-list-add-form {
	display: grid;
	gap: 0.75rem;
	min-width: 0;
}

.elx-b2b-workspace .elx-workflow-list-item {
	background: var(--elx-color-tinted);
	border-radius: calc(var(--elx-card-radius) * 0.5);
	display: grid;
	gap: 0.55rem;
	min-width: 0;
	padding: 0.75rem;
	word-break: normal;
}

.elx-b2b-workspace .elx-workflow-list-item__identity {
	display: grid;
	gap: 0.2rem;
	min-width: 0;
}

.elx-b2b-workspace .elx-workflow-list-item__identity :where(strong, small) {
	overflow-wrap: break-word;
	word-break: normal;
}

.elx-b2b-workspace .elx-workflow-list-item label {
	display: grid;
	font-size: var(--wp--preset--font-size--small);
	gap: 0.25rem;
	margin: 0;
	min-width: 0;
}

.elx-list-add-form {
	align-items: end;
	border-top: 1px solid var(--elx-color-border);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
	padding-top: 0.75rem;
}

.elx-list-add-form label:first-of-type {
	grid-column: span 2;
}

.elx-list-add-form label {
	display: grid;
	font-size: var(--wp--preset--font-size--small);
	gap: 0.25rem;
	margin: 0;
	min-width: 0;
}

.elx-list-editor > button {
	justify-self: start;
	min-height: 2.75rem;
}

.elx-list-add-form > button {
	justify-self: start;
	min-height: 2.75rem;
}

.elx-workflow-actions :where(button, a),
.elx-inline-form button,
.elx-company-invite button,
.elx-quote-request button {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	min-height: 2.75rem;
}

.elx-quote-request {
	display: grid;
	gap: 0.7rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
	margin-block: 0;
}

.elx-quote-request label:last-of-type,
.elx-quote-request .elx-workflow-actions {
	grid-column: 1 / -1;
}

.elx-quote-request label,
.elx-b2b-form.elx-workflow-create label,
.elx-b2b-form.elx-company-invite label {
	display: grid;
	gap: 0.3rem;
	margin: 0;
	min-width: 0;
}

.elx-workflow-create,
.elx-company-invite {
	align-items: end;
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr));
}

.elx-workflow-create__title {
	grid-column: span 2;
}

.elx-workflow-create__submit,
.elx-company-invite > button {
	justify-self: start;
	min-height: 2.75rem;
}

.elx-b2b-workspace .elx-b2b-form,
.elx-company-workspace .elx-b2b-form {
	box-shadow: none;
}

.elx-b2b-workspace :where(input, select, textarea),
.elx-company-workspace :where(input, select, textarea) {
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-control-border);
	border-radius: 0.35rem;
	color: var(--elx-color-text);
	font: inherit;
	max-width: 100%;
	min-height: 2.75rem;
	padding: 0.55rem 0.7rem;
	width: 100%;
}

.elx-quote-lines {
	border-collapse: collapse;
	table-layout: fixed;
	width: 100%;
}

.elx-quote-lines th,
.elx-quote-lines td {
	border-bottom: 1px solid var(--elx-color-border);
	overflow-wrap: normal;
	padding: 0.55rem 0.35rem;
	text-align: left;
	vertical-align: top;
	word-break: normal;
}

.elx-quote-lines th:nth-child(2),
.elx-quote-lines td:nth-child(2) {
	width: 3.5rem;
}

.elx-quote-lines .money {
	text-align: right;
	white-space: nowrap;
	width: 9.5rem;
}

.elx-workflow-quote-start,
.elx-purchase-request,
.elx-company-invitations {
	min-width: 0;
}

.elx-table-scroll {
	max-width: 100%;
	overflow-x: auto;
}

.elx-company-invitation-table {
	border-collapse: collapse;
	min-width: 56rem;
	width: 100%;
}

.elx-cart-quote-lines {
	min-width: 40rem;
}

.elx-purchase-lines {
	min-width: 58rem;
}

.elx-cart-quote-lines :where(th, td):nth-child(2),
.elx-purchase-lines :where(th, td):nth-child(2) {
	width: 8rem;
}

.elx-cart-quote-lines :where(th, td):nth-child(3),
.elx-purchase-lines :where(th, td):nth-child(3) {
	width: 5rem;
}

.elx-company-invitation-table :where(th, td) {
	border-bottom: 1px solid var(--elx-color-border);
	padding: 0.65rem 0.5rem;
	text-align: left;
	vertical-align: top;
}

.elx-company-invitation-table .elx-inline-form {
	display: inline-flex;
	margin: 0 0.35rem 0.35rem 0;
}

.elx-status-badge {
	background: var(--elx-notice-info-bg);
	border: 1px solid var(--elx-notice-info-border);
	border-radius: 999px;
	color: var(--elx-notice-info-text);
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 750;
	padding: 0.2rem 0.55rem;
}

.elx-status-badge--accepted {
	background: var(--elx-notice-success-bg);
	border-color: var(--elx-notice-success-border);
	color: var(--elx-notice-success-text);
}

.elx-status-badge--expired,
.elx-status-badge--revoked {
	background: var(--elx-notice-warning-bg);
	border-color: var(--elx-notice-warning-border);
	color: var(--elx-notice-warning-text);
}

.elx-invitation-page {
	min-height: 100vh;
}

.elx-invitation-shell {
	align-items: center;
	display: flex;
	justify-content: center;
	min-height: 100vh;
	padding: clamp(1rem, 5vw, 4rem);
}

.elx-invitation-card {
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--elx-card-radius);
	box-shadow: var(--elx-shadow-card);
	box-sizing: border-box;
	max-width: 44rem;
	padding: clamp(1.25rem, 4vw, 2.5rem);
	width: 100%;
}

.elx-invitation-card .elx-b2b-form {
	box-shadow: none;
	padding: 0;
}

@container (min-width: 44rem) {
	.elx-b2b-workspace .elx-workflow-list-item {
		align-items: end;
		grid-template-columns: minmax(14rem, 1.3fr) minmax(6rem, 0.35fr) minmax(16rem, 1fr);
	}
}

@container (max-width: 35rem) {
	.elx-workflow-create__title,
	.elx-list-add-form label:first-of-type {
		grid-column: 1 / -1;
	}

	.elx-workflow-create__submit,
	.elx-company-invite > button,
	.elx-list-add-form > button {
		justify-self: stretch;
		width: 100%;
	}

	.elx-company-members li,
	.elx-company-member-actions,
	.elx-company-member-actions form {
		align-items: stretch;
		display: grid;
		grid-template-columns: 1fr;
	}

	.elx-company-member-actions select {
		width: 100%;
	}
}

@media (max-width: 700px) {
	.elx-company-workspace,
	.elx-b2b-workspace {
		padding: 1rem;
	}

	.elx-quote-lines {
		font-size: 0.85rem;
	}

	.elx-quote-lines .money {
		white-space: normal;
		width: 7rem;
	}
}

@media (max-width: 360px) {
	.elx-quote-lines th:nth-child(2),
	.elx-quote-lines td:nth-child(2) {
		width: 2.5rem;
	}

	.elx-quote-lines .money {
		width: 5.7rem;
	}
}

@media (max-width: 781px) {
	.elx-product-search .wp-block-search__inside-wrapper {
		min-height: 2.75rem;
	}

	.elx-trust-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.elx-grid--editorial {
		grid-template-columns: 1fr;
	}

	.elx-section-heading--split {
		align-items: flex-start !important;
		flex-direction: column;
	}

	.elx-catalog-toolbar {
		align-items: stretch;
	}

	.elx-catalog-toolbar__actions {
		justify-content: space-between;
		margin-left: 0;
		width: 100%;
	}

	.elx-catalog-toolbar .woocommerce-ordering,
	.elx-catalog-toolbar select {
		width: 100%;
	}

	.elx-catalog-layout {
		gap: var(--wp--preset--spacing--30);
	}

	.elx-catalog-sidebar {
		flex-basis: auto !important;
		position: static;
		width: 100%;
	}

	.elx-catalog-filters :where(button, input, select, label),
	.elx-single-product :where(button, input, select) {
		min-height: 2.75rem;
	}

	.elx-product-gallery {
		position: static;
	}

	.elx-product-highlights ul,
	.elx-product-documents ul {
		grid-template-columns: 1fr;
	}

	.elx-product-recommendations {
		margin-block: var(--wp--preset--spacing--60);
	}
}

@media (max-width: 600px) {
	.elx-catalog-filter-toggle {
		display: none;
	}
}

@media (max-width: 520px) {
	.elx-site-brand {
		gap: 0.25rem;
	}

	.elx-site-brand .wp-block-site-logo img {
		max-width: 1.75rem;
	}

	.elx-site-brand :where(.wp-block-site-title, .elx-site-title) {
		font-size: 0.8125rem;
	}

	.elx-product-search .wp-block-search__input {
		font-size: 0.875rem;
	}

	.elx-grid--brands,
	.elx-grid--categories,
	.elx-trust-grid {
		grid-template-columns: 1fr;
	}

	.elx-support-actions {
		align-items: stretch;
		flex-direction: column;
		width: 100%;
	}

	.elx-support-actions .wp-block-button,
	.elx-support-actions .wp-block-button__link {
		width: 100%;
	}

	.elx-catalog-main,
	.elx-single-product {
		padding-inline: var(--wp--preset--spacing--20);
	}

	.elx-catalog-toolbar {
		align-items: stretch;
		flex-direction: column;
	}

	.elx-catalog-toolbar__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.elx-catalog-products .wc-block-product-template {
		grid-template-columns: minmax(0, 1fr);
	}

	.elx-product-card {
		padding: var(--wp--preset--spacing--20);
	}

	.elx-product-summary .wp-block-post-title {
		hyphens: auto;
	}

	.elx-single-product :where(.single_add_to_cart_button, .elx-contact-for-price__link) {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	* {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* Storefront prices, structured product data, checkout, account, and B2B. */
.elx-price-context {
	display: flex;
	flex-direction: column;
	font-family: var(--wp--preset--font-family--elx-body);
	gap: 0.2rem;
}

.elx-price-context__value {
	display: block;
	line-height: 1.25;
}

.elx-price-context[data-elx-vat-preference="incl"] .elx-price-context__value--incl,
.elx-price-context[data-elx-vat-preference="excl"] .elx-price-context__value--excl {
	font-size: 1em;
	font-weight: 750;
	order: 0;
}

.elx-price-context[data-elx-vat-preference="incl"] .elx-price-context__value--excl,
.elx-price-context[data-elx-vat-preference="excl"] .elx-price-context__value--incl {
	color: var(--elx-color-muted);
	font-size: 0.65em;
	font-weight: 600;
	order: 1;
}

.elx-price-context__value small {
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: 0.65em;
	font-weight: 700;
	letter-spacing: 0.04em;
	white-space: nowrap;
	text-transform: uppercase;
}

.elx-vat-switcher {
	align-items: center;
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--wp--custom--border--radius--pill, 999px);
	display: inline-flex;
	flex-wrap: nowrap;
	gap: 1px;
	margin: 0;
	padding: 2px;
}

.elx-vat-switcher__label {
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: 0.6875rem;
	font-weight: 700;
	margin-inline: 0.4rem 0.25rem;
	white-space: nowrap;
}

.elx-vat-switcher button {
	background: transparent;
	border: 0;
	border-radius: inherit;
	color: var(--elx-color-text);
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: 0.6875rem;
	font-weight: 700;
	min-height: 1.875rem;
	padding: 0.3rem 0.5rem;
	white-space: nowrap;
}

.elx-vat-switcher button[aria-pressed="true"] {
	background: var(--elx-color-focus);
	border-color: var(--elx-color-focus);
	color: var(--elx-color-canvas);
}

.elx-vat-switcher button:focus-visible {
	outline: 2px solid var(--elx-color-focus);
	outline-offset: 2px;
}

.elx-specification-groups {
	column-count: 3;
	column-gap: var(--wp--preset--spacing--40);
	column-width: 19rem;
	display: block;
	width: 100%;
}

.elx-specification-group {
	break-inside: avoid;
	display: inline-block;
	margin: 0 0 var(--wp--preset--spacing--40);
	min-width: 0;
	page-break-inside: avoid;
	vertical-align: top;
	width: 100%;
}

.elx-specification-group h3 {
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: 1rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.elx-specification-group table {
	border-collapse: collapse;
	display: table;
	font-size: 0.925rem;
	overflow: visible;
	width: 100%;
}

.elx-specification-group :where(th, td) {
	border-bottom: 1px solid var(--elx-color-border);
	padding: 0.7rem 0;
	text-align: left;
	vertical-align: top;
}

.elx-specification-group th {
	color: var(--elx-color-muted);
	font-weight: 600;
	padding-right: 1rem;
	width: 42%;
	word-break: normal;
	overflow-wrap: break-word;
}

.elx-product-specifications {
	box-sizing: border-box;
	max-width: none !important;
	width: 100%;
}

.elx-product-included ul {
	display: grid;
	gap: var(--wp--preset--spacing--10);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	padding-left: 1.25rem;
}

.elx-commerce-page,
.elx-content-page {
	min-width: 0;
}

.elx-commerce-page :where(input, select, textarea),
.woocommerce-account :where(input, select, textarea),
.elx-b2b-form :where(input, select, textarea) {
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-control-border);
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	box-sizing: border-box;
	color: var(--elx-color-text);
	font: inherit;
	max-width: 100%;
	min-height: 2.75rem;
	padding: 0.65rem 0.75rem;
	width: 100%;
}

.elx-error-summary {
	background: var(--elx-notice-error-bg);
	border: 1px solid var(--elx-notice-error-border);
	border-left-width: 0.3rem;
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	color: var(--elx-notice-error-text);
	margin-bottom: var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--30);
}

.elx-error-summary :where(h3, p) {
	margin-block: 0 0.5rem;
}

.elx-error-summary a {
	color: inherit;
	font-weight: 700;
}

.elx-field-error {
	color: var(--elx-notice-error-text);
	display: block;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	margin-top: 0.25rem;
}

.elx-b2b-form [aria-invalid="true"] {
	border-color: var(--elx-notice-error-border);
	border-width: 2px;
}

.wc-block-components-notice-banner,
.woocommerce-error,
.woocommerce-info,
.woocommerce-message,
.elx-notice {
	background: var(--elx-notice-info-bg);
	border: 1px solid var(--elx-notice-info-border);
	border-left: 0.3rem solid var(--elx-notice-info-border);
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	color: var(--elx-notice-info-text);
	margin-block: var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--20);
}

.wc-block-components-notice-banner :where(a, button),
.woocommerce-error a,
.woocommerce-info a,
.woocommerce-message a,
.elx-notice a {
	color: inherit;
	font-weight: 750;
	text-decoration: underline;
}

.wc-block-components-notice-banner > svg {
	fill: currentcolor;
}

.wc-block-components-notice-banner :where(a, button):focus-visible,
.woocommerce-error a:focus-visible,
.woocommerce-info a:focus-visible,
.woocommerce-message a:focus-visible,
.elx-notice a:focus-visible {
	outline-color: currentcolor;
}

.wc-block-components-notice-banner.is-error,
.elx-notice--error,
.woocommerce-error {
	background: var(--elx-notice-error-bg);
	border-color: var(--elx-notice-error-border);
	color: var(--elx-notice-error-text);
}

.wc-block-components-notice-banner.is-success,
.elx-notice--success,
.woocommerce-message {
	background: var(--elx-notice-success-bg);
	border-color: var(--elx-notice-success-border);
	color: var(--elx-notice-success-text);
}

.wc-block-components-notice-banner.is-warning,
.elx-notice--warning {
	background: var(--elx-notice-warning-bg);
	border-color: var(--elx-notice-warning-border);
	color: var(--elx-notice-warning-text);
}

.wc-block-components-notice-banner.is-info,
.elx-notice--info,
.woocommerce-info {
	background: var(--elx-notice-info-bg);
	border-color: var(--elx-notice-info-border);
	color: var(--elx-notice-info-text);
}

.wc-block-cart,
.wc-block-checkout,
.woocommerce-account .woocommerce {
	color: var(--elx-color-text);
	width: 100%;
	max-width: 100%;
}

.elx-cart-page > .wp-block-post-content,
.elx-checkout-page > .wp-block-post-content {
	box-sizing: border-box;
	margin-inline: auto;
	max-width: 78rem;
	width: 100%;
}

.elx-cart-page .wc-block-cart {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(22.5rem, 25rem);
	gap: clamp(2rem, 3vw, 3rem);
}

.elx-checkout-page .wc-block-components-sidebar-layout.wc-block-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(23.75rem, 26.875rem);
	gap: clamp(2rem, 3vw, 3rem);
}

.elx-checkout-page .wp-block-woocommerce-checkout.wc-block-checkout:not(.wc-block-components-sidebar-layout) {
	display: block;
}

.elx-cart-page :where(.wc-block-cart__main, .wc-block-cart__sidebar),
.elx-checkout-page :where(.wc-block-checkout__main, .wc-block-checkout__sidebar) {
	box-sizing: border-box;
	max-width: none !important;
	min-width: 0;
	width: 100% !important;
}

.elx-checkout-page .wc-block-checkout__sidebar {
	align-self: start;
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + 1rem);
}

.elx-commerce-page :where(.wc-block-components-product-name, .wc-block-components-order-summary-item__description) {
	overflow-wrap: break-word;
	word-break: normal;
}

.elx-commerce-page :where(.wc-block-components-product-price, .wc-block-components-totals-item__value, .wc-block-formatted-money-amount, .wc-block-components-order-summary-item__total-price) {
	white-space: nowrap;
}

.elx-checkout-page .wc-block-components-product-metadata__description {
	display: none;
}

.elx-checkout-page .wc-block-components-order-summary-item__image {
	flex: 0 0 4rem;
	width: 4rem;
}

.elx-checkout-page .wc-block-components-order-summary-item__description {
	min-width: 0;
}

.elx-commerce-page :where(input, select, textarea)::placeholder {
	color: var(--elx-color-muted);
	opacity: 0.85;
}

.elx-commerce-page :where(input, select, textarea):focus-visible {
	border-color: var(--elx-color-focus);
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--elx-color-focus) 28%, transparent);
	outline: 2px solid transparent;
}

/* Private wishlist and Save-for-later presentation. */
.elx-list-action {
	margin: 0;
}

.elx-list-button,
.elx-list-button--guest {
	align-items: center;
	background: transparent;
	border: 1px solid var(--elx-color-border);
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	box-sizing: border-box;
	color: var(--elx-color-text);
	display: inline-flex;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	justify-content: center;
	min-height: 2.75rem;
	padding: 0.5rem 0.8rem;
	text-decoration: none;
}

.elx-list-button::before,
.elx-list-button--guest::before {
	content: "♡";
	font-size: 1.15em;
	margin-right: 0.35rem;
}

.elx-list-button.is-saved {
	background: var(--elx-color-tinted);
	border-color: var(--elx-color-focus);
}

.elx-list-button.is-saved::before {
	content: "♥";
}

.elx-product-card > .wp-block-shortcode {
	margin-top: auto;
}

.elx-product-card .elx-list-button {
	width: 100%;
}

.elx-product-summary .elx-list-action {
	margin-top: var(--wp--preset--spacing--20);
}

.elx-customer-lists {
	container-type: inline-size;
	max-width: 70rem;
}

.elx-customer-lists .elx-customer-list {
	border-top: 1px solid var(--elx-color-border);
	margin-top: var(--wp--preset--spacing--50);
	padding-top: var(--wp--preset--spacing--30);
}

.elx-customer-lists .elx-list-grid {
	display: grid;
	gap: var(--wp--preset--spacing--20);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
}

.elx-customer-lists .elx-list-item {
	align-items: start;
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--elx-card-radius);
	display: grid;
	gap: var(--wp--preset--spacing--20);
	grid-template-columns: 7rem minmax(0, 1fr);
	min-width: 0;
	padding: var(--wp--preset--spacing--20);
}

.elx-customer-lists .elx-list-item__image {
	align-items: center;
	aspect-ratio: 1;
	background: var(--elx-color-canvas);
	border-radius: calc(var(--elx-card-radius) * 0.75);
	display: flex;
	justify-content: center;
	overflow: hidden;
}

.elx-customer-lists .elx-list-item__image img {
	height: 100%;
	object-fit: contain;
	width: 100%;
}

.elx-customer-lists .elx-list-item__content,
.elx-customer-lists .elx-list-item__actions {
	min-width: 0;
}

.elx-customer-lists .elx-list-item :where(h4, p) {
	margin-block: 0 0.4rem;
	overflow-wrap: break-word;
	word-break: normal;
}

.elx-customer-lists .elx-list-item__status,
.elx-list-empty {
	color: var(--elx-color-muted);
}

.elx-customer-lists .elx-list-item__actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	margin-top: var(--wp--preset--spacing--20);
}

.elx-customer-lists .elx-list-item__actions :where(button, input) {
	min-height: 2.75rem;
}

.elx-customer-lists .elx-list-quantity {
	align-items: center;
	display: flex;
	gap: 0.35rem;
	margin: 0;
}

.elx-customer-lists .elx-list-quantity input {
	max-width: 4.5rem;
	width: 100%;
}

.elx-customer-lists .elx-list-remove {
	background: transparent;
	border: 0;
	color: var(--elx-color-focus);
	padding-inline: 0.5rem;
	text-decoration: underline;
}

.elx-cart-save-panel {
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--elx-card-radius);
	box-sizing: border-box;
	margin-bottom: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--30);
	width: 100%;
}

.elx-cart-save-panel h2 {
	font-size: var(--wp--preset--font-size--title);
	margin-top: 0;
}

.elx-cart-save-panel ul {
	list-style: none;
	margin: var(--wp--preset--spacing--20) 0 0;
	padding: 0;
}

.elx-cart-save-panel li {
	align-items: center;
	border-top: 1px solid var(--elx-color-border);
	display: flex;
	gap: var(--wp--preset--spacing--20);
	justify-content: space-between;
	padding-block: var(--wp--preset--spacing--20);
}

.elx-cart-save-panel form {
	flex: 0 0 auto;
	margin: 0;
}

.elx-cart-save-panel button {
	min-height: 2.75rem;
}

@media (max-width: 781px) {
	.elx-customer-lists .elx-list-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 520px) {
	.elx-customer-lists .elx-list-item {
		grid-template-columns: 5.5rem minmax(0, 1fr);
	}

	.elx-customer-lists .elx-list-item__actions,
	.elx-cart-save-panel li {
		align-items: stretch;
		flex-direction: column;
	}

	.elx-customer-lists .elx-list-item__actions .elx-list-action,
	.elx-customer-lists .elx-list-item__actions .wp-element-button,
	.elx-cart-save-panel form,
	.elx-cart-save-panel button {
		width: 100%;
	}
}

.wc-block-components-sidebar,
.wc-block-components-order-summary,
.wc-block-checkout__order-notes,
.woocommerce-MyAccount-navigation,
.woocommerce-MyAccount-content {
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--elx-card-radius);
	box-sizing: border-box;
	padding: var(--wp--preset--spacing--30);
}

.wc-block-components-totals-wrapper,
.wc-block-components-order-summary-item,
.woocommerce table.shop_table :where(th, td) {
	border-color: var(--elx-color-border);
}

.wc-block-components-spinner::after {
	border-color: var(--elx-color-focus) transparent var(--elx-color-focus) transparent;
}

.elx-account-page {
	box-sizing: border-box;
	margin-inline: auto;
	max-width: 100rem;
	width: 100%;
}

.woocommerce-account .wp-block-post-content:has(> .woocommerce > .woocommerce-MyAccount-navigation) {
	box-sizing: border-box;
	margin-inline: auto;
	max-width: 100rem;
	width: 100%;
}

.elx-account-page > .elx-account-content.alignwide {
	box-sizing: border-box;
	margin-inline: 0;
	max-width: none;
	width: 100%;
}

.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
	align-items: start;
	display: grid;
	gap: clamp(1.5rem, 2.5vw, 2.75rem);
	grid-template-columns: minmax(15rem, 18rem) minmax(0, 1fr);
	max-width: none;
	width: 100%;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
	float: none;
	grid-column: 1;
	max-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px) - 2rem);
	overflow-y: auto;
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + 1rem);
	width: 100%;
}

.woocommerce-account .woocommerce-MyAccount-content {
	container-type: inline-size;
	float: none;
	grid-column: 2;
	min-width: 0;
	width: 100%;
}

.woocommerce-MyAccount-content > :where(p, .woocommerce-notices-wrapper) {
	max-width: 75ch;
}

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-MyAccount-navigation a {
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	display: block;
	padding: 0.7rem 0.8rem;
	text-decoration: none;
}

.woocommerce-MyAccount-navigation .is-active a {
	background: var(--elx-color-tinted);
	box-shadow: inset 0.2rem 0 0 var(--elx-color-focus);
	color: var(--elx-color-text);
	font-weight: 750;
}

.woocommerce-MyAccount-content :where(.avatar, img.avatar) {
	border-radius: 50%;
	height: auto;
	max-width: 4.5rem;
}

.woocommerce-account :where(.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword) {
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--elx-card-radius);
	box-sizing: border-box;
	margin-inline: 0;
	max-width: 42rem;
	padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem);
}

.woocommerce-account :where(.woocommerce-orders-table, .woocommerce-table--order-details, .woocommerce-MyAccount-downloads) {
	display: table;
	max-width: 100%;
	width: 100%;
}

.woocommerce-account :where(.woocommerce-Addresses, .u-columns) {
	gap: var(--wp--preset--spacing--30);
}

.elx-account-b2b-card {
	background: var(--elx-color-tinted);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--elx-card-radius);
	margin-top: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--30);
}

.elx-b2b-dashboard,
.elx-b2b-form,
.elx-purchased-documents {
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--elx-card-radius);
	box-shadow: var(--elx-shadow-card);
	padding: clamp(1.25rem, 0.85rem + 2vw, 2.5rem);
}

.elx-b2b-dashboard {
	container-type: inline-size;
}

.elx-b2b-dashboard__grid {
	display: grid;
	gap: var(--wp--preset--spacing--20);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
	margin-block: var(--wp--preset--spacing--40);
}

.elx-b2b-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	margin-top: var(--wp--preset--spacing--30);
}

.elx-b2b-access-state {
	max-width: 58rem;
}

.elx-b2b-access-state dl {
	background: var(--elx-color-tinted);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	display: grid;
	gap: 0.5rem 1rem;
	grid-template-columns: minmax(6rem, auto) minmax(0, 1fr);
	margin-block: var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--30);
}

.elx-b2b-access-state dt {
	color: var(--elx-color-muted);
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

.elx-b2b-access-state dd {
	margin: 0;
	overflow-wrap: anywhere;
}

.elx-b2b-dashboard__grid a {
	background: var(--elx-color-tinted);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	font-family: var(--wp--preset--font-family--elx-identity);
	font-weight: 700;
	padding: var(--wp--preset--spacing--30);
	text-decoration: none;
}

.elx-form-grid,
.elx-quick-order-row {
	display: grid;
	gap: var(--wp--preset--spacing--20);
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.elx-b2b-form label {
	display: grid;
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	gap: 0.35rem;
	margin-bottom: var(--wp--preset--spacing--20);
}

.elx-b2b-form button,
.woocommerce .show-password-input {
	min-height: 2.75rem;
	min-width: 2.75rem;
}

.elx-form-consent {
	align-items: flex-start;
	display: flex !important;
	font-family: var(--wp--preset--font-family--elx-body) !important;
}

.elx-form-consent input {
	flex: 0 0 auto;
	min-height: 1.25rem;
	width: 1.25rem;
}

.elx-form-honeypot {
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.elx-quick-order-row {
	border-bottom: 1px solid var(--elx-color-border);
	grid-template-columns: minmax(0, 1fr) minmax(5rem, 0.2fr);
	margin-bottom: var(--wp--preset--spacing--20);
}

.elx-portal-table {
	max-width: 100%;
	overflow-x: auto;
}

.elx-portal-table table {
	border-collapse: collapse;
	min-width: 42rem;
	width: 100%;
}

.elx-portal-table :where(th, td) {
	border-bottom: 1px solid var(--elx-color-border);
	padding: 0.75rem;
	text-align: left;
}

.elx-system-page {
	display: grid;
	gap: clamp(2.5rem, 1.5rem + 4vw, 6rem);
	left: 50%;
	margin-inline: 0 !important;
	max-width: var(--wp--style--global--wide-size) !important;
	padding-block: clamp(2.5rem, 1.5rem + 5vw, 7rem);
	position: relative;
	transform: translateX(-50%);
	width: calc(100vw - var(--wp--custom--layout--gutter, 1rem) - var(--wp--custom--layout--gutter, 1rem));
}

.elx-system-page > :where(.elx-page-grid, .elx-inspiration-query, .elx-inspiration-topics, .elx-page-section) {
	box-sizing: border-box;
	margin-inline: 0 !important;
	max-width: none !important;
	min-width: 0;
	width: 100%;
}

.elx-page-hero {
	margin-inline: 0;
	max-width: 60rem;
}

.elx-page-hero .has-display-font-size {
	max-width: 18ch;
}

.elx-page-section {
	margin-block: 0;
}

.elx-page-grid,
.elx-inspiration-query .wp-block-post-template,
.elx-inspiration-topics {
	display: grid;
	gap: var(--wp--preset--spacing--30);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
	list-style: none;
	margin-inline: 0;
	max-width: none !important;
	min-width: 0;
	padding: 0;
	width: 100%;
}

.elx-info-card {
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--elx-card-radius);
	box-shadow: var(--elx-shadow-card);
	box-sizing: border-box;
	height: 100%;
	min-width: 0;
	overflow-wrap: break-word;
	padding: clamp(1.25rem, 1rem + 1vw, 2rem);
	width: 100%;
}

.elx-company-contact {
	display: grid;
	font-style: normal;
	gap: 0.25rem;
	margin-block: var(--wp--preset--spacing--20);
}

.elx-company-contact a {
	width: fit-content;
}

.elx-b2b-price-context {
	display: grid;
	font-family: var(--wp--preset--font-family--elx-body);
	gap: 0.75rem;
	line-height: 1.3;
	max-width: 27rem;
}

.elx-b2b-price-context__normal,
.elx-b2b-price-context__customer {
	display: grid;
	gap: 0.15rem;
}

.elx-b2b-price-context__normal {
	color: var(--elx-color-muted);
	font-size: 0.875rem;
}

.elx-b2b-price-context__customer {
	color: var(--elx-color-text);
	border-left: 0.2rem solid var(--elx-color-focus);
	padding-left: 0.75rem;
}

.elx-b2b-price-context__label {
	font-family: var(--wp--preset--font-family--elx-identity);
	font-size: 0.72rem;
	font-weight: 750;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.elx-b2b-price-context__customer-heading {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.elx-b2b-price-context__saving {
	background: var(--elx-color-tinted);
	border: 1px solid var(--elx-color-border);
	border-radius: 999px;
	color: var(--elx-color-text);
	font-family: var(--wp--preset--font-family--elx-body);
	font-size: 0.7rem;
	font-weight: 700;
	padding: 0.12rem 0.45rem;
}

.elx-b2b-price-context__normal-value {
	font-size: 0.9rem;
}

.elx-b2b-price-context__customer-value {
	color: var(--elx-color-muted);
	font-size: 0.875rem;
	font-weight: 650;
}

.elx-b2b-price-context[data-elx-vat-preference="incl"] [data-elx-vat-value="incl"],
.elx-b2b-price-context[data-elx-vat-preference="excl"] [data-elx-vat-value="excl"] {
	order: 1;
}

.elx-b2b-price-context[data-elx-vat-preference="incl"] [data-elx-vat-value="excl"],
.elx-b2b-price-context[data-elx-vat-preference="excl"] [data-elx-vat-value="incl"] {
	order: 2;
}

.elx-b2b-price-context[data-elx-vat-preference="incl"] .elx-b2b-price-context__customer-value[data-elx-vat-value="incl"],
.elx-b2b-price-context[data-elx-vat-preference="excl"] .elx-b2b-price-context__customer-value[data-elx-vat-value="excl"] {
	color: var(--elx-color-text);
	font-size: clamp(1.55rem, 1.35rem + 0.7vw, 2.1rem);
	font-weight: 800;
}

.elx-b2b-price-context[data-elx-vat-preference="incl"] .elx-b2b-price-context__normal-value[data-elx-vat-value="excl"],
.elx-b2b-price-context[data-elx-vat-preference="excl"] .elx-b2b-price-context__normal-value[data-elx-vat-value="incl"] {
	font-size: 0.78rem;
}

.elx-b2b-price-context__customer-value small,
.elx-b2b-price-context__normal-value small {
	font-size: 0.65em;
	font-weight: 650;
	white-space: nowrap;
}

.elx-quick-order {
	min-width: 0;
}

.elx-quick-order form,
.elx-download-filters {
	display: grid;
	gap: var(--wp--preset--spacing--20);
}

.elx-quick-order__rows {
	display: grid;
	gap: var(--wp--preset--spacing--30);
}

.elx-quick-order__row {
	align-items: end;
	border-bottom: 1px solid var(--elx-color-border);
	display: grid;
	gap: var(--wp--preset--spacing--20);
	grid-template-columns: minmax(0, 1fr) minmax(6rem, 0.2fr) auto;
	padding-bottom: var(--wp--preset--spacing--30);
}

.elx-quick-order__combobox {
	min-width: 0;
	position: relative;
}

.elx-quick-order__combobox label,
.elx-quick-order__quantity,
.elx-download-filters label {
	display: grid;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	gap: 0.35rem;
}

.elx-quick-order :where(input, button),
.elx-download-center :where(input, select, button) {
	box-sizing: border-box;
	font: inherit;
	min-height: 2.75rem;
}

.elx-quick-order input,
.elx-download-center :where(input, select) {
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-control-border);
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	color: var(--elx-color-text);
	padding: 0.65rem 0.75rem;
	width: 100%;
}

.elx-quick-order__results {
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--elx-card-radius);
	box-shadow: var(--elx-shadow-card);
	box-sizing: border-box;
	inset: calc(100% + 0.25rem) 0 auto;
	list-style: none;
	margin: 0;
	max-height: 24rem;
	overflow-y: auto;
	padding: 0.35rem;
	position: absolute;
	z-index: 30;
}

.elx-quick-order__results [role="option"],
.elx-quick-order__selection {
	align-items: center;
	display: grid;
	gap: 0.75rem;
	grid-template-columns: 3rem minmax(0, 1fr);
	padding: 0.65rem;
}

.elx-quick-order__results [role="option"] {
	border-radius: var(--wp--custom--border--radius--control, 0.375rem);
	cursor: pointer;
}

.elx-quick-order__results [aria-selected="true"] {
	background: var(--elx-color-tinted);
	outline: 2px solid var(--elx-color-focus);
}

.elx-quick-order__results img,
.elx-quick-order__selection img {
	aspect-ratio: 1;
	object-fit: contain;
	width: 3rem;
}

.elx-quick-order__results span,
.elx-quick-order__selection span {
	display: grid;
	min-width: 0;
}

.elx-quick-order__results small,
.elx-quick-order__selection small,
.elx-quick-order__status {
	color: var(--elx-color-muted);
}

.elx-quick-order__navigation {
	margin-top: var(--wp--preset--spacing--40);
}

.elx-download-filters {
	align-items: end;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-bottom: var(--wp--preset--spacing--50);
}

.elx-download-header {
	margin-bottom: var(--wp--preset--spacing--40);
	max-width: 50rem;
}

.elx-download-search {
	grid-column: span 2;
}

.elx-download-filters .wp-element-button {
	justify-self: start;
}

.elx-download-grid {
	display: grid;
	gap: var(--wp--preset--spacing--20);
}

.elx-download-card {
	align-items: center;
	background: var(--elx-color-surface);
	border: 1px solid var(--elx-color-border);
	border-radius: var(--elx-card-radius);
	display: flex;
	gap: var(--wp--preset--spacing--30);
	justify-content: space-between;
	min-width: 0;
	padding: var(--wp--preset--spacing--30);
}

.elx-download-card :where(h3, p) {
	margin-block: 0 0.35rem;
}

.elx-download-meta {
	color: var(--elx-color-muted);
	overflow-wrap: anywhere;
}

.woocommerce p.stars a {
	display: inline-block;
	height: 1em;
	overflow: hidden;
	position: relative;
	text-indent: -999em;
	vertical-align: middle;
	width: 1em;
}

.woocommerce p.stars a::before {
	color: var(--elx-color-focus);
	content: "☆" !important;
	font-family: inherit !important;
	inset: 0 auto auto 0;
	position: absolute;
	text-indent: 0;
}

.woocommerce p.stars:hover a::before,
.woocommerce p.stars.selected a:not(.active)::before,
.woocommerce p.stars.selected a.active::before {
	content: "★" !important;
}

.woocommerce p.stars a:hover ~ a::before,
.woocommerce p.stars.selected a.active ~ a::before {
	content: "☆" !important;
}

.elx-download-contact {
	background: var(--elx-color-tinted);
	border-radius: var(--elx-card-radius);
	margin-top: var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--40);
}

.elx-footer-navigation {
	display: grid;
	gap: 0.65rem;
}

.elx-footer-navigation a {
	color: inherit;
}

@media (min-width: 901px) and (max-width: 1279px) {
	.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
		gap: clamp(1.25rem, 2vw, 2rem);
		grid-template-columns: minmax(13rem, 16rem) minmax(0, 1fr);
	}
}

@media (max-width: 900px) {
	.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-account .woocommerce-MyAccount-navigation {
		grid-column: 1;
		max-height: none;
		overflow: visible;
		padding: var(--wp--preset--spacing--10);
		position: static;
	}

	.woocommerce-MyAccount-navigation ul {
		display: grid;
		gap: 0.25rem;
		grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
		width: 100%;
	}

	.woocommerce-MyAccount-navigation li {
		min-width: 0;
	}

	.woocommerce-MyAccount-navigation a {
		height: 100%;
		overflow-wrap: break-word;
	}

	.woocommerce-MyAccount-navigation .is-active a {
		box-shadow: inset 0 -0.2rem 0 var(--elx-color-focus);
	}

	.woocommerce-account .woocommerce-MyAccount-content {
		grid-column: 1;
		padding: var(--wp--preset--spacing--20);
	}
}

@media (max-width: 700px) {
	.elx-product-included ul,
	.elx-b2b-dashboard__grid,
	.elx-form-grid,
	.elx-quick-order-row {
		grid-template-columns: 1fr;
	}

	.elx-quick-order__row,
	.elx-download-filters {
		grid-template-columns: 1fr;
	}

	.elx-download-card {
		align-items: stretch;
		flex-direction: column;
	}

	.wc-block-cart__main,
	.wc-block-cart__sidebar,
	.wc-block-checkout__main,
	.wc-block-checkout__sidebar {
		max-width: 100%;
		width: 100%;
	}

	.elx-cart-page .wc-block-cart-items {
		box-sizing: border-box;
		max-width: 100%;
		min-width: 0;
		table-layout: fixed;
		width: 100%;
	}

	.elx-cart-page .wc-block-cart-items :where(th, td) {
		min-width: 0;
	}

	.elx-cart-page .wc-block-cart-item__product {
		min-width: 0;
		overflow-wrap: break-word;
		word-break: normal;
	}
}

@media (min-width: 768px) and (max-width: 1279px) {
	.elx-specification-groups {
		column-count: 2;
	}
}

@media (min-width: 901px) and (max-width: 1279px) {
	.elx-product-collection .wc-block-product-template,
	.elx-product-recommendations .wc-block-product-template {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.elx-specification-groups {
		column-count: 1;
	}
}

@media (min-width: 600px) and (max-width: 900px) {
	.elx-product-collection .wc-block-product-template,
	.elx-product-recommendations .wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 599px) {
	.elx-product-collection .wc-block-product-template,
	.elx-product-recommendations .wc-block-product-template {
		grid-template-columns: 1fr;
	}

	.elx-download-search {
		grid-column: auto;
	}
}

@media (max-width: 900px) {
	.elx-cart-page .wc-block-cart,
	.elx-checkout-page .wc-block-components-sidebar-layout.wc-block-checkout {
		display: block;
	}

	.elx-checkout-page .wc-block-checkout__sidebar {
		position: static;
	}
}
