/* ==========================================================================
   Effektiv, shop styles: archive, product card, single product,
   cart/checkout blocks, my account, notices.
   ========================================================================== */

.page-head--center {
	display: flex;
	justify-content: center;
	padding-bottom: clamp(1.5rem, 3vw, 3rem);
}

/* --------------------------------------------------------------------------
   Archive layout
   -------------------------------------------------------------------------- */

.shop-layout {
	display: grid;
	grid-template-columns: 19.125rem minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 6.5rem);
	align-items: start;
}

.shop-sidebar {
	position: sticky;
	top: 1.5rem;
	display: grid;
	gap: 2rem;
}

.shop-search {
	position: relative;
	display: flex;
	align-items: center;
}
.shop-search .icon {
	position: absolute;
	left: 1rem;
	color: var(--c-text-muted);
	pointer-events: none;
}
.shop-search input {
	width: 100%;
	height: 3.375rem;
	padding: 0 1rem 0 2.75rem;
	border: 1px solid transparent;
	border-radius: 15px;
	background: rgb(255 255 255 / 0.1);
	color: #fff;
	font-size: var(--fs-small);
	transition: border-color var(--t-fast) ease, background-color var(--t-fast) ease;
}
.shop-search input::placeholder {
	color: var(--c-text-muted);
}
.shop-search input:focus {
	outline: none;
	border-color: rgb(255 255 255 / 0.5);
	background: rgb(255 255 255 / 0.14);
}
.shop-search input::-webkit-search-cancel-button {
	filter: invert(1);
}

.shop-cats__title {
	margin-bottom: 1rem;
	font-size: var(--fs-h4);
}
.shop-cats ul {
	display: grid;
	gap: 0.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.shop-cat {
	display: flex;
	align-items: center;
	gap: 1.1rem;
	min-height: 2.9rem;
	padding: 0.5rem 1rem;
	border: 1px solid var(--c-line-strong);
	border-radius: var(--r-control);
	background: #111;
	font-size: var(--fs-small);
	text-decoration: none;
	transition:
		border-color var(--t-fast) ease,
		background-color var(--t-fast) ease,
		transform var(--t-press) var(--ease-out);
}
.shop-cat:active {
	transform: scale(0.98);
}
.shop-cat .icon {
	color: #fff;
}
.shop-cat[aria-current="page"] {
	border-color: var(--c-green);
	background: color-mix(in srgb, var(--c-green) 12%, #111);
}
@media (hover: hover) and (pointer: fine) {
	.shop-cat:hover {
		border-color: #fff;
	}
}

.shop-head {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: 1rem 2rem;
	margin-bottom: 1rem;
}
.shop-head__title {
	margin: 0;
	font-size: var(--fs-h2);
}

.shop-ordering {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-size: var(--fs-small);
	color: var(--c-text-muted);
}
.shop-ordering select {
	height: 2.5rem;
	padding: 0 2.25rem 0 0.9rem;
	border: 1px solid var(--c-line-strong);
	border-radius: var(--r-control);
	background: #111 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23fff'%3E%3Cpath d='M212.24 100.24l-80 80a6 6 0 0 1-8.48 0l-80-80a6 6 0 0 1 8.48-8.48L128 167.51l75.76-75.75a6 6 0 0 1 8.48 8.48Z'/%3E%3C/svg%3E") no-repeat right 0.75rem center / 0.9rem;
	color: #fff;
	appearance: none;
}
.js .shop-ordering .shop-ordering__submit {
	display: none;
}

.shop-empty {
	display: grid;
	justify-items: start;
	gap: 1rem;
	padding: 3rem 0;
	color: var(--c-text-muted);
}

.shop-description {
	margin-top: clamp(3rem, 6vw, 5rem);
	font-size: var(--fs-small);
}

@media (max-width: 1023px) {
	.shop-layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.5rem;
	}
	.shop-sidebar,
	.shop-main {
		min-width: 0;
	}
	.shop-sidebar {
		position: static;
		grid-template-columns: minmax(0, 1fr);
		gap: 1rem;
	}
	.shop-cats {
		min-width: 0;
	}
	.shop-cats__title {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
	}
	.shop-cats ul {
		display: flex;
		gap: 0.5rem;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		margin-inline: calc(var(--gutter) * -1);
		padding: 0 var(--gutter) 0.25rem;
		scrollbar-width: none;
	}
	.shop-cats ul::-webkit-scrollbar {
		display: none;
	}
	.shop-cats li {
		flex: none;
		scroll-snap-align: start;
	}
	.shop-cat {
		white-space: nowrap;
	}
}

/* --------------------------------------------------------------------------
   Product grid + card
   -------------------------------------------------------------------------- */

.product-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(0.75rem, 1.2vw, 1.25rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
.product-grid > li {
	display: flex;
}
@media (max-width: 1199px) and (min-width: 1024px), (max-width: 899px) {
	.product-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 559px) {
	.product-grid {
		grid-template-columns: 1fr;
	}
}

.product-card {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	border-radius: var(--r-card);
	background: linear-gradient(180deg, #1d1d1d 0%, var(--c-surface) 45%);
	overflow: clip;
	transition: background-color var(--t-base) ease;
}

.product-card__media {
	display: grid;
	place-items: center;
	aspect-ratio: 4 / 3;
	padding: 1.5rem 1.5rem 0;
}
.product-card__media img {
	width: auto;
	height: 100%;
	max-height: 100%;
	object-fit: contain;
	filter: drop-shadow(0 1.25rem 1.25rem rgb(0 0 0 / 0.45));
	transition: transform 520ms var(--ease-out);
}

.product-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 1.25rem clamp(1.25rem, 2.4vw, 2.6rem) clamp(1.25rem, 2vw, 1.75rem);
}

.product-card__title {
	margin: 0 0 0.75rem;
	font-size: clamp(1.5rem, 1.05rem + 0.9vw, 2.25rem);
	line-height: 1;
}
.product-card__link {
	text-decoration: none;
}
/* Stretched link: the whole card is clickable. */
.product-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
}
.product-card__link:focus-visible {
	outline: none;
}
.product-card__link:focus-visible::after {
	outline: 2px solid #fff;
	outline-offset: -2px;
}

.product-card__excerpt {
	margin: 0 0 1rem;
	color: var(--c-text-soft);
	font-size: var(--fs-xs);
	line-height: 1.6;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.product-card__foot {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 1rem;
	margin-top: auto;
}

.product-card__price {
	display: block;
	margin-bottom: 0.4rem;
	font-size: var(--fs-small);
	font-weight: 500;
	font-variant-numeric: tabular-nums;
}
.product-card__price del {
	margin-right: 0.35rem;
	color: var(--c-text-muted);
	font-weight: 300;
}
.product-card__price ins {
	text-decoration: none;
}

.stock-line {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.6875rem;
	line-height: 1.4;
}
.stock-line--in { color: var(--c-green); }
.stock-line--backorder { color: #e7a93c; }
.stock-line--out { color: var(--c-text-muted); }

.cart-btn {
	position: relative;
	z-index: 2;
	display: grid;
	place-items: center;
	flex: none;
	width: 3.1rem;
	height: 3.1rem;
	border-radius: var(--r-control);
	background: var(--c-green-ink);
	color: #fff;
	text-decoration: none;
	transition:
		background-color var(--t-fast) ease,
		transform var(--t-press) var(--ease-out);
	-webkit-tap-highlight-color: transparent;
}
.cart-btn:active {
	transform: scale(0.92);
}
.cart-btn .icon {
	grid-area: 1 / 1;
	transition: opacity 160ms ease, transform 260ms var(--ease-out), filter 160ms ease;
}
.cart-btn__done {
	opacity: 0;
	transform: scale(0.6);
	filter: blur(3px);
}
.cart-btn.is-loading .icon:first-child {
	animation: cart-pulse 700ms var(--ease-in-out) infinite alternate;
}
.cart-btn.is-added .icon:first-child {
	opacity: 0;
	transform: scale(0.6);
	filter: blur(3px);
}
.cart-btn.is-added .cart-btn__done {
	opacity: 1;
	transform: none;
	filter: none;
}
.cart-btn--outline {
	background: transparent;
	border: 1px solid var(--c-line-strong);
}
@keyframes cart-pulse {
	to { opacity: 0.45; transform: scale(0.9); }
}

@media (hover: hover) and (pointer: fine) {
	.product-card:hover {
		background-color: #1f1f1f;
	}
	.product-card:hover .product-card__media img {
		transform: translateY(-0.5rem) rotate(-2deg) scale(1.03);
	}
	.cart-btn:hover {
		background: var(--c-green-ink-hover);
	}
	.cart-btn--outline:hover {
		background: #fff;
		color: #000;
	}
}

/* --------------------------------------------------------------------------
   Single product
   -------------------------------------------------------------------------- */

.product-top {
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(0, 1fr);
	gap: clamp(2rem, 6vw, 6.5rem);
	align-items: start;
}

.product-gallery {
	position: relative;
	display: grid;
	grid-template-columns: 5rem minmax(0, 1fr);
	gap: 1rem;
	padding: clamp(1rem, 2.6vw, 3rem);
	border-radius: var(--r-card);
	background: linear-gradient(180deg, #292929 0%, #1a1a1a 38%, var(--c-surface) 100%);
	min-height: clamp(22rem, 36vw, 40rem);
}
.product-gallery__stage {
	grid-column: 2;
	grid-row: 1;
	display: grid;
	place-items: center;
}
.product-gallery__slide {
	grid-area: 1 / 1;
	margin: 0;
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
}
.product-gallery__slide img {
	width: 100%;
	height: 100%;
	max-height: 36rem;
	object-fit: contain;
	filter: drop-shadow(0 1.75rem 1.5rem rgb(0 0 0 / 0.5));
}
.product-gallery__slide.is-entering {
	animation: gallery-in 320ms var(--ease-out);
}
@keyframes gallery-in {
	from {
		opacity: 0;
		filter: blur(6px);
		transform: scale(0.98);
	}
}
.product-gallery__thumbs {
	grid-column: 1;
	grid-row: 1;
	display: grid;
	align-content: start;
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.product-gallery__thumb {
	display: block;
	width: 5rem;
	height: 5rem;
	padding: 0;
	border: 1px solid transparent;
	border-radius: var(--r-control);
	background: #111;
	overflow: hidden;
	opacity: 0.6;
	transition: opacity var(--t-fast) ease, border-color var(--t-fast) ease, transform var(--t-press) var(--ease-out);
}
.product-gallery__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.product-gallery__thumb[aria-pressed="true"] {
	opacity: 1;
	border-color: #fff;
}
.product-gallery__thumb:hover {
	opacity: 1;
}
.product-gallery__thumb:active {
	transform: scale(0.95);
}
.product-gallery:not(:has(.product-gallery__thumbs)) {
	grid-template-columns: 1fr;
}
.product-gallery:not(:has(.product-gallery__thumbs)) .product-gallery__stage {
	grid-column: 1;
}

.product-summary {
	padding-top: clamp(0rem, 1.5vw, 1.5rem);
}
.product-summary__title {
	margin-bottom: 0.9rem;
	font-size: clamp(2.25rem, 1.4rem + 2.2vw, 3.4375rem);
	line-height: 1;
}
.product-summary__intro {
	max-width: 32rem;
	color: var(--c-text-muted);
	font-size: var(--fs-body);
	line-height: 1.6;
}
.product-summary__intro p:last-child {
	margin-bottom: 0;
}

/* Tier picker (Amount 1 / 2 / 6 / 12) */
.tier-picker {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.75rem;
	margin: 1.75rem 0 0;
	padding: 0;
	border: 0;
	min-inline-size: 0;
}
.tier-picker__legend {
	float: left;
	padding: 0;
	margin-right: 0.5rem;
	font-size: var(--fs-body);
	font-weight: 300;
}
.tier-picker__options {
	display: flex;
	flex-wrap: wrap;
	gap: 0.875rem;
}
.tier {
	position: relative;
	display: block;
	cursor: pointer;
}
.tier__input {
	position: absolute;
	opacity: 0;
	inset: 0;
	margin: 0;
	cursor: pointer;
}
.tier__box {
	position: relative;
	display: grid;
	place-items: center;
	width: 4.25rem;
	height: 4.3rem;
	border: 1px solid var(--c-line-strong);
	border-radius: var(--r-control);
	overflow: hidden;
	transition:
		border-color var(--t-fast) ease,
		background-color var(--t-fast) ease,
		transform var(--t-press) var(--ease-out);
}
.tier__qty {
	font-size: 1.125rem;
	font-weight: 300;
	font-variant-numeric: tabular-nums;
}
.tier__qty--small {
	font-size: 1.125rem; /* same size as the numerals */
}
.tier--custom .tier__box {
	width: auto;
	padding-inline: 0.9rem;
}
/* Corner ribbon, as in the design. */
.tier__badge {
	position: absolute;
	top: 0.55rem;
	right: -1.55rem;
	width: 5rem;
	padding: 0.1rem 0;
	background: var(--c-green-ink);
	color: #fff;
	font-size: 0.625rem;
	font-weight: 400;
	line-height: 1.3;
	text-align: center;
	transform: rotate(45deg);
}
.tier:active .tier__box {
	transform: scale(0.96);
}
.tier__input:checked + .tier__box {
	border-color: var(--c-green);
	background: color-mix(in srgb, var(--c-green) 10%, transparent);
}
.tier__input:focus-visible + .tier__box {
	outline: 2px solid #fff;
	outline-offset: 3px;
}
@media (hover: hover) and (pointer: fine) {
	.tier:hover .tier__box {
		border-color: #fff;
	}
	.tier__input:checked + .tier__box {
		border-color: var(--c-green);
	}
}

.tier-picker__custom {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-basis: 100%;
	font-size: var(--fs-small);
}
.qty-input {
	width: 6rem;
	height: 2.75rem;
	padding: 0 0.75rem;
	border: 1px solid var(--c-line-strong);
	border-radius: var(--r-control);
	background: #111;
	color: #fff;
	font-variant-numeric: tabular-nums;
}
.qty-input:focus {
	outline: none;
	border-color: #fff;
}

.price-block {
	margin-top: 1.75rem;
}
.price-block__price {
	margin: 0;
	font-family: var(--f-display);
	font-size: clamp(2rem, 1.6rem + 1vw, 2.5rem);
	font-weight: 500;
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
	transition: filter 180ms ease, opacity 180ms ease;
}
.price-block__price.is-updating {
	filter: blur(3px);
	opacity: 0.6;
}
.price-block__price .woocommerce-Price-currencySymbol {
	margin-right: 0.15em;
	font-size: 0.55em;
	vertical-align: 0.05em;
}
.price-block__price del {
	margin-right: 0.5rem;
	color: var(--c-text-muted);
	font-size: 0.55em;
}
.price-block__price ins {
	text-decoration: none;
}
.price-block__total {
	margin: 0.25rem 0 0;
	color: var(--c-text-soft);
	font-size: var(--fs-small);
	font-variant-numeric: tabular-nums;
}
.price-block__note {
	margin: 0.25rem 0 0;
	color: var(--c-text-muted);
	font-size: var(--fs-body);
}

.buy-form__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.25rem;
	margin-top: 1.5rem;
}
.buy-form__submit {
	min-width: 9.8rem;
	gap: 0.8rem;
}
.buy-form__submit .icon {
	transition: opacity 160ms ease, transform 260ms var(--ease-out), filter 160ms ease;
}
.buy-form__submit .buy-form__done {
	display: none;
}
.buy-form__submit.is-added .icon:first-child {
	display: none;
}
.buy-form__submit.is-added .buy-form__done {
	display: block;
	animation: done-in 320ms var(--ease-out);
}
.buy-form__submit.is-loading {
	opacity: 0.8;
	pointer-events: none;
}
@keyframes done-in {
	from {
		opacity: 0;
		transform: scale(0.6);
		filter: blur(3px);
	}
}
.buy-form__feedback {
	min-height: 1.5em;
	margin: 0.75rem 0 0;
	font-size: var(--fs-small);
	color: var(--c-text-soft);
}
.buy-form__feedback a {
	color: #fff;
}
.buy-form__feedback.is-error {
	color: var(--c-danger);
}

/* B2B call to action (markup from inc/b2b). */
.b2b-cta {
	font-size: var(--fs-xs);
}
.b2b-cta__link {
	color: var(--c-text-muted);
	text-decoration: underline;
	text-decoration-color: var(--c-line-strong);
	text-underline-offset: 0.45em;
	transition: color var(--t-fast) ease;
}
.b2b-cta__link:hover {
	color: #fff;
}
.b2b-cta__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.35rem 0.8rem;
	border: 1px solid var(--c-green);
	border-radius: var(--r-pill);
	color: #fff;
}

.product-usps {
	margin-top: 2.5rem;
}
.product-usps__title {
	margin-bottom: 1rem;
	font-size: var(--fs-h4);
}
.product-usps ul {
	display: grid;
	gap: 0.55rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.product-usps li {
	display: flex;
	align-items: center;
	gap: 1.1rem;
	color: var(--c-text-muted);
	line-height: 1.5;
}
.product-usps .icon {
	color: var(--c-green);
}

.product-info {
	display: grid;
	grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr);
	gap: clamp(1.5rem, 2.2vw, 2.5rem);
	align-items: start;
	margin-top: clamp(2rem, 3vw, 3.5rem);
}
.product-info__main {
	display: grid;
	gap: clamp(1.5rem, 2.2vw, 3.5rem);
}
.info-card {
	padding: clamp(1.5rem, 3vw, 3.5rem);
	border-radius: var(--r-card);
	background: var(--c-surface);
}
.info-card__title {
	margin-bottom: 1.5rem;
	font-size: var(--fs-h4);
}
.info-card .prose {
	color: var(--c-text-muted);
	font-size: var(--fs-small);
	line-height: 1.9;
}

.spec-list {
	display: grid;
	gap: 1.9rem;
	margin: 0;
}
.spec-list__row {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: 1rem 2rem;
}
.spec-list dt {
	font-weight: 500;
	font-size: var(--fs-small);
}
.spec-list dd {
	margin: 0;
	color: var(--c-text-muted);
	font-size: var(--fs-small);
	line-height: 1.8;
}

.related-products .products-block__title {
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

@media (max-width: 899px) {
	.product-top,
	.product-info {
		grid-template-columns: 1fr;
	}
	.product-gallery {
		grid-template-columns: 1fr;
		min-height: 0;
	}
	.product-gallery__stage {
		grid-column: 1;
		aspect-ratio: 1;
	}
	.product-gallery__thumbs {
		grid-column: 1;
		grid-row: 2;
		display: flex;
		gap: 0.6rem;
	}
	.product-gallery__thumb {
		width: 4rem;
		height: 4rem;
	}
	.spec-list__row {
		grid-template-columns: 1fr;
		gap: 0.2rem;
	}
}

/* --------------------------------------------------------------------------
   Notices (classic + blocks)
   -------------------------------------------------------------------------- */

.woocommerce-notices-wrapper:empty {
	display: none;
}
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	margin: 0 0 1.5rem;
	padding: 1rem 1.25rem;
	border: 1px solid var(--c-line);
	border-radius: var(--r-card);
	background: var(--c-surface);
	color: var(--c-text-soft);
	font-size: var(--fs-small);
	list-style: none;
}
.woocommerce-message,
.wc-block-components-notice-banner.is-success {
	border-color: color-mix(in srgb, var(--c-green) 60%, transparent);
}
.woocommerce-error,
.wc-block-components-notice-banner.is-error {
	border-color: color-mix(in srgb, var(--c-danger) 60%, transparent);
}
.woocommerce-message .button,
.woocommerce-info .button {
	order: 2;
	color: #fff;
	text-decoration: underline;
	background: none;
	border: 0;
	padding: 0;
}
.wc-block-components-notice-banner > svg {
	fill: currentColor;
	background: none !important;
}

/* --------------------------------------------------------------------------
   WooCommerce pages (cart, checkout, account)
   -------------------------------------------------------------------------- */

.woo-page {
	padding-bottom: var(--section);
}
.woo-page__title {
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

/* Blocks: shared form controls on dark. */
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-textarea,
.wc-blocks-components-select__select,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-block-components-form .wc-block-components-text-input input {
	border: 1px solid #3a3a3a !important;
	border-radius: var(--r-control) !important;
	background: #0f0f0f !important;
	color: #fff !important;
}
.wc-block-components-text-input input:focus,
.wc-blocks-components-select__select:focus,
.wc-block-components-textarea:focus {
	border-color: #fff !important;
	box-shadow: none !important;
	outline: none;
}
.wc-block-components-text-input label,
.wc-blocks-components-select__label,
.wc-block-components-combobox .wc-block-components-combobox-control label {
	color: var(--c-text-muted) !important;
}
.wc-blocks-components-select__container {
	background: #0f0f0f !important;
	border-radius: var(--r-control) !important;
}
.wc-blocks-components-select__expand {
	fill: #fff !important;
}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"],
.wc-block-components-radio-control__input {
	border-color: var(--c-line-strong) !important;
	background: #0f0f0f !important;
}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked,
.wc-block-components-radio-control__input:checked {
	border-color: var(--c-green) !important;
}
.wc-block-components-radio-control__input:checked::before {
	background: var(--c-green) !important;
}
.wc-block-components-checkbox .wc-block-components-checkbox__mark {
	fill: #fff !important;
}

.wc-block-components-button:not(.is-link),
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	min-height: 3.25rem;
	border: 0 !important;
	border-radius: var(--r-control) !important;
	background: var(--c-green-ink) !important;
	color: #fff !important;
	font-family: var(--f-body);
	font-weight: 400;
	transition: background-color var(--t-fast) ease, transform var(--t-press) var(--ease-out) !important;
}
.wc-block-components-button:not(.is-link):hover {
	background: var(--c-green-ink-hover) !important;
}
.wc-block-components-button:not(.is-link):active {
	transform: scale(0.98);
}
.wc-block-components-button.is-link,
.wc-block-components-totals-coupon-link,
.wc-block-components-checkout-return-to-cart-button {
	color: var(--c-text-soft) !important;
}

.wc-block-cart,
.wc-block-checkout {
	color: var(--c-text);
}
.wc-block-cart .wc-block-components-sidebar,
.wc-block-checkout__sidebar .wc-block-components-order-summary,
.wp-block-woocommerce-checkout-order-summary-block {
	padding: clamp(1.25rem, 2.5vw, 2rem) !important;
	border: 0 !important;
	border-radius: var(--r-card);
	background: var(--c-surface);
}
.wc-block-cart-items,
.wc-block-cart-items th,
.wc-block-cart-items td,
.wc-block-components-totals-wrapper,
.wc-block-components-order-summary-item,
.wc-block-checkout__actions,
.wc-block-components-checkout-step,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-panel {
	border-color: var(--c-line) !important;
}
.wc-block-cart-items__header,
.wc-block-components-product-metadata,
.wc-block-components-checkout-step__description,
.wc-block-components-totals-item__description,
.wc-block-components-product-price__regular,
.wc-block-components-order-summary-item__description {
	color: var(--c-text-muted) !important;
}
.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img {
	border-radius: var(--r-control);
	background: #1d1d1d;
}
.wc-block-components-product-name {
	font-family: var(--f-display);
	font-size: 1.25rem !important;
	font-weight: 500;
	text-transform: uppercase;
	text-decoration: none;
	color: #fff !important;
}
.wc-block-components-quantity-selector {
	border-color: var(--c-line-strong) !important;
	border-radius: var(--r-control) !important;
}
.wc-block-components-quantity-selector::after {
	border-color: var(--c-line-strong) !important;
}
.wc-block-components-quantity-selector input,
.wc-block-components-quantity-selector button {
	color: #fff !important;
	background: transparent !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-family: var(--f-display);
	font-size: 1.5rem !important;
	font-weight: 500;
	text-transform: uppercase;
}
.wc-block-components-checkout-step__title,
.wc-block-components-title.wc-block-components-title,
.wc-block-cart__totals-title {
	font-family: var(--f-display) !important;
	font-size: 1.5rem !important;
	font-weight: 500 !important;
	text-transform: uppercase !important;
	letter-spacing: 0 !important;
}
.wc-block-components-checkout-step__container::after {
	background: var(--c-line) !important;
}
.wc-block-components-checkout-step::before,
.wc-block-components-checkout-step__heading::before {
	border-color: var(--c-line-strong) !important;
	background: #000 !important;
	color: #fff !important;
}
.wc-block-components-radio-control--highlight-checked,
.wc-block-components-radio-control-accordion-option {
	border-color: var(--c-line) !important;
}
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted {
	box-shadow: inset 0 0 0 1px var(--c-green) !important;
	border-radius: var(--r-control);
}
.wc-block-components-sale-badge {
	border-color: var(--c-green) !important;
	background: transparent !important;
	color: var(--c-green) !important;
}
.wc-block-components-panel__button,
.wc-block-components-totals-coupon__button {
	color: #fff !important;
}
.wc-block-components-address-card {
	border-color: var(--c-line) !important;
	border-radius: var(--r-control) !important;
}
.wc-block-components-address-card__edit {
	color: #fff !important;
}
.wc-block-components-validation-error,
.wc-block-components-validation-error p {
	color: var(--c-danger) !important;
}
.wc-block-components-text-input.has-error input {
	border-color: var(--c-danger) !important;
}
.wc-block-cart__empty-cart__title,
.wp-block-woocommerce-empty-cart-block h2 {
	font-family: var(--f-display);
	text-transform: uppercase;
}
.wc-block-components-spinner::after {
	border-color: #fff;
	border-top-color: transparent;
}
.wc-block-checkout__terms,
.wc-block-components-checkout-policies {
	color: var(--c-text-muted);
	font-size: var(--fs-small);
}
.wc-block-checkout__terms a,
.wc-block-components-checkout-policies a {
	color: #fff;
}

/* Classic forms (my account, order pay, lost password). */
.woocommerce form .form-row {
	display: grid;
	gap: 0.4rem;
	margin: 0 0 1.1rem;
}
.woocommerce form .form-row label {
	color: var(--c-text-soft);
	font-size: var(--fs-small);
}
.woocommerce form .form-row .required {
	color: var(--c-orange);
	text-decoration: none;
}
.woocommerce form .input-text,
.woocommerce form select,
.woocommerce form textarea {
	width: 100%;
	min-height: 3rem;
	padding: 0.65rem 0.9rem;
	border: 1px solid #3a3a3a;
	border-radius: var(--r-control);
	background: #0f0f0f;
	color: #fff;
}
.woocommerce form .input-text:focus,
.woocommerce form select:focus,
.woocommerce form textarea:focus {
	outline: none;
	border-color: #fff;
}
.woocommerce .button,
.woocommerce button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3rem;
	padding: 0.5rem 1.5rem;
	border: 0;
	border-radius: var(--r-control);
	background: var(--c-green-ink);
	color: #fff;
	font-size: var(--fs-small);
	font-weight: 400;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--t-fast) ease, transform var(--t-press) var(--ease-out);
}
.woocommerce .button:hover,
.woocommerce button[type="submit"]:hover {
	background: var(--c-green-ink-hover);
}
.woocommerce .button:active,
.woocommerce button[type="submit"]:active {
	transform: scale(0.98);
}

/* My account */
.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: 16rem minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
}
.woocommerce-account:not(.logged-in) .woocommerce {
	grid-template-columns: minmax(0, 1fr);
	max-width: 64rem;
}
.woocommerce-MyAccount-navigation ul {
	display: grid;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce-MyAccount-navigation a {
	display: block;
	padding: 0.7rem 1rem;
	border: 1px solid var(--c-line);
	border-radius: var(--r-control);
	font-size: var(--fs-small);
	text-decoration: none;
	transition: border-color var(--t-fast) ease;
}
.woocommerce-MyAccount-navigation a:hover {
	border-color: #fff;
}
.woocommerce-MyAccount-navigation .is-active a {
	border-color: var(--c-green);
	background: color-mix(in srgb, var(--c-green) 10%, transparent);
}
.woocommerce-MyAccount-content {
	color: var(--c-text-soft);
}
.woocommerce-MyAccount-content a {
	color: #fff;
}
.woocommerce-orders-table,
.woocommerce-table,
.shop_table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--fs-small);
	font-variant-numeric: tabular-nums;
}
.woocommerce-orders-table th,
.woocommerce-orders-table td,
.woocommerce-table th,
.woocommerce-table td,
.shop_table th,
.shop_table td {
	padding: 0.85rem 0.75rem;
	border-bottom: 1px solid var(--c-line);
	text-align: left;
}
.woocommerce-orders-table th,
.shop_table thead th {
	color: var(--c-text-muted);
	font-weight: 400;
}
.u-columns.col2-set {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(2rem, 4vw, 4rem);
}
.u-columns.col2-set .u-column1,
.u-columns.col2-set .u-column2 {
	padding: clamp(1.5rem, 3vw, 2.5rem);
	border-radius: var(--r-card);
	background: var(--c-surface);
}
.woocommerce-Addresses .woocommerce-Address {
	padding: 1.5rem;
	border-radius: var(--r-card);
	background: var(--c-surface);
}
@media (max-width: 899px) {
	.woocommerce-account .woocommerce,
	.u-columns.col2-set {
		grid-template-columns: 1fr;
	}
	.woocommerce-MyAccount-navigation ul {
		display: flex;
		overflow-x: auto;
		gap: 0.4rem;
	}
	.woocommerce-MyAccount-navigation a {
		white-space: nowrap;
	}
}

.b2b-cta__note {
	color: var(--c-text-muted);
}

/* My account: business panel (markup from inc/b2b/account.php). */
.b2b-account {
	padding: clamp(1.5rem, 3vw, 2.5rem);
	border-radius: var(--r-card);
	background: var(--c-surface);
}
.b2b-account__status {
	color: #fff;
	font-size: var(--fs-lead);
}
.b2b-account__details,
.b2b-account__company {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 0.6rem 2rem;
	margin: 1.5rem 0;
	font-size: var(--fs-small);
}
.b2b-account__details dt,
.b2b-account__company dt {
	color: var(--c-text-muted);
}
.b2b-account__details dd,
.b2b-account__company dd {
	margin: 0;
	color: #fff;
}
.b2b-account__note,
.b2b-account__meta {
	color: var(--c-text-muted);
	font-size: var(--fs-small);
}

/* Variant picker (size / scent) reuses the tier boxes, sized to its label. */
.variant-picker .tier__box {
	width: auto;
	min-width: 4.25rem;
	height: 3rem;
	padding-inline: 1rem;
}
.variant-picker .tier__qty {
	font-size: var(--fs-small);
	white-space: nowrap;
}
.tier--variant.is-soldout .tier__qty {
	color: var(--c-text-muted);
	text-decoration: line-through;
	text-decoration-color: rgb(255 255 255 / 0.35);
}
.variant-picker + .tier-picker {
	margin-top: 1.25rem;
}
.price-block__price--empty:empty {
	display: none;
}
.price-block__stock {
	margin-top: 0.5rem;
}
.price-block__stock .stock-line {
	font-size: var(--fs-small);
}
.buy-form.is-unavailable .price-block {
	margin-top: 1rem;
}
.product-summary__unavailable {
	margin: 0;
	color: var(--c-text-soft);
}
.buy-form__submit:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

/* Subcategories: shown under the active top-level category. */
.shop-cat[data-open]:not([aria-current]) {
	border-color: rgb(255 255 255 / 0.6);
}
.shop-cats__sub {
	display: grid;
	gap: 0.1rem;
	margin: 0.4rem 0 0.35rem 1.1rem !important;
	padding: 0 0 0 1rem !important;
	border-left: 1px solid var(--c-line);
	list-style: none;
}
.shop-subcat {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.35rem 0.5rem;
	border-radius: var(--r-control);
	color: var(--c-text-muted);
	font-size: var(--fs-small);
	text-decoration: none;
	transition: color var(--t-fast) ease, background-color var(--t-fast) ease;
}
.shop-subcat:hover {
	color: #fff;
}
.shop-subcat[aria-current="page"] {
	color: #fff;
	background: rgb(255 255 255 / 0.06);
}
.shop-subcat__count {
	font-variant-numeric: tabular-nums;
	opacity: 0.6;
}
@media (max-width: 1023px) {
	.shop-cats__sub {
		display: none;
	}
}

.shop-ordering label {
	white-space: nowrap;
}

/* WooCommerce gives the pagination <ul> the class "page-numbers" too. */
.woocommerce-pagination ul.page-numbers {
	display: flex;
	min-width: 0;
	height: auto;
	padding: 0;
	border: 0;
	background: none;
}

/* Only specifications: keep the card in the left column, like the design. */
.product-info > .info-card--specs:first-child {
	grid-column: 1;
}
