/*
Theme Name: PromoBee
Theme URI: https://promobee.nl
Author: PromoBee
Description: WooCommerce-theme voor PromoBee — promotieartikelen en relatiegeschenken met logo.
Version: 3.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.1
Text Domain: promobee
*/

/* ==========================================================================
   0. Fonts — Inter, self-hosted variable subsets (no external requests)
   ========================================================================== */

@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("assets/fonts/inter-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
		U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
		U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("assets/fonts/inter-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
		U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0,
		U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ==========================================================================
   1. Tokens
   ========================================================================== */

:root {
	/* Brand */
	--pb-yellow: #ffc72f;
	--pb-yellow-btn: #ffcd33;
	--pb-yellow-btn-hover: #f7bd11;
	--pb-yellow-deep: #dfa900;
	--pb-yellow-soft: #fff6da;

	/* Ink and neutrals — warm greys read softer than pure grey */
	--pb-ink: #15171b;
	--pb-ink-soft: #4b5158;
	--pb-muted: #767c85;
	--pb-muted-light: #9aa0a9;
	--pb-line: #e7e5e0;
	--pb-line-soft: #f1efea;
	--pb-wash: #f7f6f2;
	--pb-wash-warm: #fbf6ea;
	--pb-dark: #15171b;
	--pb-dark-soft: #23262c;
	--pb-white: #fff;
	--pb-green: #2f9e5f;

	/* Layout */
	--pb-container: 1480px;
	--pb-container-narrow: 1080px;
	--pb-gutter: clamp(1.25rem, 3.2vw, 3rem);

	/* Shape */
	--pb-radius-xl: 32px;
	--pb-radius: 20px;
	--pb-radius-sm: 12px;
	--pb-pill: 999px;

	/* Elevation — two layers so cards lift instead of outlining */
	--pb-shadow: 0 1px 2px rgba(21, 23, 27, .04), 0 10px 30px -18px rgba(21, 23, 27, .16);
	--pb-shadow-hover: 0 2px 6px rgba(21, 23, 27, .05), 0 26px 50px -26px rgba(21, 23, 27, .3);

	/* Type */
	--pb-font: "Inter", "Inter var", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--pb-tight: -.03em;
	--pb-tighter: -.04em;

	/* Height of the header's top row; drives the sticky nav offset. */
	--pb-headtop: 78px;
	/* Height of the pinned nav bar; drives every other sticky offset. */
	--pb-navh: 71px;
}

/* ==========================================================================
   2. Base
   ========================================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	font-family: var(--pb-font);
	font-size: 16px;
	line-height: 1.55;
	color: var(--pb-ink);
	background: var(--pb-white);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-feature-settings: "cv11", "ss01";
	font-variant-numeric: tabular-nums;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--pb-ink);
	text-decoration: none;
}

a:hover {
	color: #000;
}

h1, h2, h3, h4, h5 {
	margin: 0 0 .6em;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: var(--pb-tight);
	color: var(--pb-ink);
	text-wrap: balance;
}

h1 {
	font-size: clamp(2.125rem, 4.4vw, 3.5rem);
	font-weight: 800;
	letter-spacing: var(--pb-tighter);
}

h2 {
	font-size: clamp(1.625rem, 2.9vw, 2.375rem);
	font-weight: 800;
}

h3 { font-size: 1.125rem; }
h4 { font-size: 1rem; }

p { margin: 0 0 1em; }

ul, ol { margin: 0 0 1em; padding-left: 1.15em; }

hr {
	border: 0;
	border-top: 1px solid var(--pb-line);
	margin: 2rem 0;
}

.container {
	width: 100%;
	max-width: var(--pb-container);
	margin: 0 auto;
	padding: 0 var(--pb-gutter);
}

/* Long-form copy stays readable even though the shell is wide. */
.container--narrow {
	max-width: var(--pb-container-narrow);
}

/* Small caps label above section headings. */
.eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	margin: 0 0 .85rem;
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pb-muted);
}

.eyebrow::before {
	content: "";
	width: 22px;
	height: 2px;
	border-radius: 2px;
	background: var(--pb-yellow);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.skip-link:focus {
	position: absolute !important;
	left: 1rem;
	top: 1rem;
	z-index: 10000;
	width: auto;
	height: auto;
	clip: auto;
	padding: 0.65rem 1.1rem;
	overflow: visible;
	white-space: nowrap;
	background: var(--pb-yellow);
	color: var(--pb-ink);
	font-weight: 700;
	border-radius: 8px;
}

:focus-visible {
	outline: 2px solid var(--pb-ink);
	outline-offset: 3px;
	border-radius: 4px;
}

/* Yellow hexagon checkmark used in USP rows */
.pb-check,
.usp-row li img,
.footer-usp img {
	width: 17px;
	height: 19px;
	flex: 0 0 auto;
}

/* ==========================================================================
   3. Buttons
   ========================================================================== */

.btn,
button:not([class^="cky-"]),
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	font-family: inherit;
	font-size: .9375rem;
	font-weight: 600;
	line-height: 1.2;
}

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .85rem 1.6rem;
	border: 1px solid transparent;
	border-radius: var(--pb-pill);
	cursor: pointer;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease,
		transform .18s ease, box-shadow .18s ease;
	text-align: center;
}

.btn:active {
	transform: translateY(1px);
}

.btn-primary,
.btn-bee {
	background: var(--pb-yellow-btn);
	border-color: var(--pb-yellow-btn);
	color: #1c1c1c;
	box-shadow: 0 8px 22px -12px rgba(223, 169, 0, .8);
}

.btn-primary:hover,
.btn-bee:hover {
	background: var(--pb-yellow-btn-hover);
	border-color: var(--pb-yellow-btn-hover);
	color: #000;
	box-shadow: 0 12px 28px -12px rgba(223, 169, 0, .9);
}

.btn-ghost {
	background: var(--pb-white);
	border-color: var(--pb-line);
	color: var(--pb-ink);
}

.btn-ghost:hover {
	border-color: var(--pb-ink);
	background: var(--pb-white);
}

.btn-dark {
	background: var(--pb-dark);
	border-color: var(--pb-dark);
	color: var(--pb-white);
}

.btn-dark:hover {
	background: var(--pb-dark-soft);
	color: var(--pb-white);
}

/* On dark backgrounds a translucent outline reads better than a grey border. */
.btn-outline-light {
	background: rgba(255, 255, 255, .06);
	border-color: rgba(255, 255, 255, .28);
	color: var(--pb-white);
}

.btn-outline-light:hover {
	background: rgba(255, 255, 255, .14);
	border-color: rgba(255, 255, 255, .5);
	color: var(--pb-white);
}

.text-link {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	font-size: .9375rem;
	font-weight: 600;
	color: var(--pb-ink);
	white-space: nowrap;
	transition: gap .18s ease;
}

.text-link::after {
	content: "→";
	transition: transform .18s ease;
}

.text-link:hover {
	color: #000;
}

.text-link:hover::after {
	transform: translateX(3px);
}

/* ==========================================================================
   4. Header
   ========================================================================== */

/*
 * The header sticks with a negative offset the height of its top row, so the
 * logo strip scrolls away and only the search/category bar stays pinned.
 */
.site-header {
	position: sticky;
	top: calc(-1 * var(--pb-headtop));
	z-index: 60;
	background: var(--pb-white);
}

/* Clear the fixed admin bar so the pinned nav stays visible when logged in. */
body.admin-bar .site-header {
	top: calc(32px - var(--pb-headtop));
}

@media screen and (max-width: 782px) {
	body.admin-bar .site-header {
		top: calc(46px - var(--pb-headtop));
	}
}

.header-top__inner {
	display: flex;
	align-items: center;
	gap: 1.75rem;
	height: var(--pb-headtop);
}

.logo {
	flex: 0 0 auto;
}

.logo img {
	width: 176px;
	height: auto;
}

.usp-row {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
	flex: 1 1 auto;
}

.usp-row li {
	display: flex;
	align-items: center;
	gap: .45rem;
	font-size: .8125rem;
	color: var(--pb-ink-soft);
	white-space: nowrap;
}

.usp-row li strong {
	font-weight: 700;
	color: var(--pb-ink);
}

.header-tools {
	display: flex;
	align-items: center;
	gap: .5rem;
	flex: 0 0 auto;
}

.reviews-chip {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	line-height: 1.2;
	font-size: .75rem;
	color: var(--pb-muted);
	margin-right: .5rem;
}

.reviews-chip .stars {
	color: #f5a623;
	font-size: .8125rem;
	letter-spacing: 1px;
}

.reviews-chip:hover {
	color: var(--pb-ink);
}

.tool-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--pb-line);
	border-radius: 50%;
	color: var(--pb-ink);
	background: var(--pb-white);
	transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
}

.tool-btn:hover {
	border-color: var(--pb-ink);
	background: var(--pb-white);
	transform: translateY(-1px);
}

.cart-count {
	position: absolute;
	top: -6px;
	right: -6px;
	min-width: 19px;
	height: 19px;
	padding: 0 4px;
	border-radius: 999px;
	background: var(--pb-dark);
	color: var(--pb-white);
	font-size: .6875rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}

.nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 4px;
	width: 44px;
	height: 44px;
	padding: 0 11px;
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: 50%;
	cursor: pointer;
}

.nav-toggle span {
	width: 100%;
}

.nav-toggle span {
	display: block;
	height: 2px;
	background: var(--pb-ink);
	border-radius: 2px;
}

/* --- Nav bar --- */

.site-nav {
	border-top: 1px solid var(--pb-line-soft);
	border-bottom: 1px solid var(--pb-line);
	background: rgba(255, 255, 255, .82);
	-webkit-backdrop-filter: saturate(180%) blur(16px);
	backdrop-filter: saturate(180%) blur(16px);
}

.site-nav__inner {
	display: flex;
	align-items: center;
	gap: .85rem;
	padding-top: .7rem;
	padding-bottom: .7rem;
}

.cat-dropdown {
	position: relative;
	flex: 0 0 auto;
}

.cat-toggle {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	padding: .75rem 1.35rem;
	background: var(--pb-yellow-btn);
	border: 1px solid var(--pb-yellow-btn);
	border-radius: var(--pb-pill);
	font-weight: 600;
	color: #1c1c1c;
	cursor: pointer;
	white-space: nowrap;
}

.cat-toggle:hover {
	background: var(--pb-yellow-btn-hover);
	border-color: var(--pb-yellow-btn-hover);
}

.cat-toggle__menu {
	display: block;
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
}

.cat-toggle__caret {
	display: inline-flex;
	transition: transform .2s ease;
}

.cat-dropdown.is-open .cat-toggle__caret {
	transform: rotate(180deg);
}

/* --- Mega menu --- */

.cat-panel {
	position: absolute;
	top: calc(100% + .7rem);
	left: 0;
	z-index: 70;
	width: min(1120px, calc(100vw - 2 * var(--pb-gutter)));
	padding: 1.35rem;
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	box-shadow: 0 2px 8px rgba(21, 23, 27, .05), 0 28px 64px -24px rgba(21, 23, 27, .38);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
}

/* Caret pointing back at the button. */
.cat-panel::before {
	content: "";
	position: absolute;
	top: -7px;
	left: 30px;
	width: 12px;
	height: 12px;
	background: var(--pb-white);
	border-left: 1px solid var(--pb-line);
	border-top: 1px solid var(--pb-line);
	border-radius: 2px 0 0 0;
	transform: rotate(45deg);
}

.cat-dropdown.is-open .cat-panel {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.cat-mega {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 240px;
	gap: 1.15rem;
	align-items: stretch;
}

.cat-mega__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin: 0 .15rem .7rem;
}

.cat-mega__label {
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pb-muted-light);
}

.cat-mega__head .text-link {
	font-size: .875rem;
}

.cat-mega__split {
	display: grid;
	grid-template-columns: minmax(200px, 268px) minmax(0, 1fr);
	max-height: min(62vh, 28.5rem);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius-sm);
	overflow: hidden;
	background: var(--pb-white);
}

.cat-mega__parents {
	list-style: none;
	margin: 0;
	padding: .4rem;
	overflow-y: auto;
	background: var(--pb-wash);
	border-right: 1px solid var(--pb-line);
}

.cat-mega__parent {
	display: flex;
	align-items: center;
	gap: .65rem;
	padding: .42rem .5rem;
	border-radius: 10px;
	color: var(--pb-ink);
	transition: background-color .15s ease, box-shadow .15s ease;
}

.cat-mega__parent:hover,
.cat-mega__parent:focus-visible {
	background: var(--pb-white);
}

.cat-mega__parent.is-active {
	background: var(--pb-white);
	box-shadow: inset 3px 0 0 var(--pb-yellow);
}

.cat-mega__thumb {
	flex: 0 0 36px;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 9px;
	background: var(--pb-white);
	overflow: hidden;
}

.cat-mega__parent.is-active .cat-mega__thumb,
.cat-mega__parent:hover .cat-mega__thumb {
	background: var(--pb-yellow-soft);
}

.cat-mega__thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 3px;
}

.cat-mega__text {
	min-width: 0;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	line-height: 1.25;
}

.cat-mega__text strong {
	font-size: .875rem;
	font-weight: 600;
	color: var(--pb-ink);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cat-mega__text > span {
	font-size: .7rem;
	color: var(--pb-muted-light);
}

.cat-mega__caret {
	flex: 0 0 auto;
	display: inline-flex;
	color: var(--pb-muted-light);
}

.cat-mega__parent.is-active .cat-mega__caret {
	color: var(--pb-ink);
}

.cat-mega__panes {
	min-width: 0;
	min-height: 0;
	background: var(--pb-white);
}

.cat-mega__pane {
	display: none;
	flex-direction: column;
	height: 100%;
	max-height: min(62vh, 28.5rem);
	overflow-y: auto;
	padding: .95rem 1.1rem 1rem;
}

.cat-mega__pane.is-active {
	display: flex;
}

.cat-mega__pane[hidden] {
	display: none !important;
}

.cat-mega__pane-head {
	display: flex;
	align-items: center;
	gap: .85rem;
	padding-bottom: .8rem;
	margin-bottom: .7rem;
	border-bottom: 1px solid var(--pb-line-soft);
}

.cat-mega__pane-thumb {
	flex: 0 0 64px;
	width: 64px;
	height: 64px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 12px;
	background: var(--pb-wash);
	overflow: hidden;
}

.cat-mega__pane-thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 6px;
}

.cat-mega__pane-intro {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: .2rem;
}

.cat-mega__pane-intro strong {
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: var(--pb-tight);
	line-height: 1.25;
}

.cat-mega__pane-intro .text-link {
	font-size: .8125rem;
}

.cat-mega__pane-label {
	margin: 0 0 .45rem;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pb-muted-light);
}

.cat-mega__children {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .1rem .65rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.cat-mega__children a {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: .5rem;
	padding: .4rem .5rem;
	border-radius: 8px;
	color: var(--pb-ink);
	transition: background-color .15s ease;
}

.cat-mega__children a:hover,
.cat-mega__children a:focus-visible {
	background: var(--pb-yellow-soft);
}

.cat-mega__child-name {
	min-width: 0;
	font-size: .875rem;
	font-weight: 600;
	line-height: 1.3;
}

.cat-mega__child-count {
	flex: 0 0 auto;
	font-size: .7rem;
	color: var(--pb-muted-light);
}

.cat-mega__empty {
	margin: 0;
	font-size: .875rem;
	color: var(--pb-ink-soft);
	line-height: 1.45;
}

.cat-mega__aside {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 1.35rem;
	border-radius: var(--pb-radius-sm);
	background:
		radial-gradient(120% 90% at 100% 0%, rgba(255, 199, 47, .38), transparent 62%),
		var(--pb-wash-warm);
}

.cat-mega__aside-eyebrow {
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pb-yellow-deep);
	margin-bottom: .6rem;
}

.cat-mega__aside strong {
	font-size: 1.0625rem;
	font-weight: 700;
	letter-spacing: var(--pb-tight);
	line-height: 1.25;
	margin-bottom: .5rem;
}

.cat-mega__aside p {
	font-size: .875rem;
	color: var(--pb-ink-soft);
	margin-bottom: 1.1rem;
}

.cat-mega__aside .btn {
	width: 100%;
	padding: .7rem 1rem;
	font-size: .875rem;
}

.cat-mega__phone {
	margin-top: .85rem;
	font-size: .9375rem;
	font-weight: 700;
	color: var(--pb-ink);
	border-bottom: 2px solid var(--pb-yellow);
}

/* If a menu is assigned to the location it renders as a plain link list. */
.cat-panel .mega-list {
	margin: 0;
	padding: 0;
	list-style: none;
	columns: 3;
	column-gap: 1.75rem;
}

.cat-panel .mega-list li {
	break-inside: avoid;
}

.cat-panel .mega-list a {
	display: block;
	padding: .35rem .6rem;
	border-radius: var(--pb-radius-sm);
	font-size: .9375rem;
	color: var(--pb-ink-soft);
}

.cat-panel .mega-list a:hover {
	background: var(--pb-wash);
	color: #000;
}

.site-search {
	display: flex;
	flex: 1 1 auto;
	min-width: 0;
}

.site-search {
	position: relative;
	background: var(--pb-wash);
	border: 1px solid transparent;
	border-radius: var(--pb-pill);
	padding: 3px 3px 3px 0;
	transition: border-color .18s ease, background-color .18s ease;
}

.site-search:focus-within {
	background: var(--pb-white);
	border-color: var(--pb-ink);
}

.site-search input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	padding: .6rem 1.1rem;
	font-family: inherit;
	font-size: .9375rem;
	color: var(--pb-ink);
	border: 0;
	background: transparent;
	-webkit-appearance: none;
	appearance: none;
}

.site-search input[type="search"]::placeholder {
	color: var(--pb-muted);
}

.site-search input[type="search"]:focus {
	outline: 0;
}

.search-btn {
	flex: 0 0 auto;
	width: 42px;
	height: 42px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--pb-dark);
	color: var(--pb-white);
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	transition: background-color .18s ease;
}

.search-btn:hover {
	background: var(--pb-yellow-btn);
	color: #1c1c1c;
}

.nav-phone {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	line-height: 1.25;
	padding-left: 1rem;
	border-left: 1px solid var(--pb-line);
}

.nav-phone span {
	font-size: .75rem;
	color: var(--pb-muted);
}

.nav-phone strong {
	font-size: .9375rem;
	font-weight: 700;
}

/* ==========================================================================
   5. Sections
   ========================================================================== */

.site-main {
	display: block;
}

.section {
	padding: clamp(2.5rem, 4vw, 3.75rem) 0;
}

.section--wash {
	background: var(--pb-wash);
}

.section--dark {
	background: var(--pb-dark);
	color: rgba(255, 255, 255, .72);
}

.section--dark h2,
.section--dark h3,
.section--dark strong {
	color: var(--pb-white);
}

.section--dark .section-intro,
.section--dark .section-head p {
	color: rgba(255, 255, 255, .62);
}

.section--dark .eyebrow {
	color: rgba(255, 255, 255, .55);
}

.section-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: 1.75rem;
}

.section-head h2 {
	margin: 0;
}

.section-head p {
	margin: .65rem 0 0;
	color: var(--pb-muted);
	max-width: 62ch;
}

.section-head > div {
	min-width: 0;
}

.section-title {
	text-align: center;
	margin-bottom: .6rem;
}

.section-intro {
	text-align: center;
	color: var(--pb-muted);
	max-width: 64ch;
	margin: 0 auto 2rem;
	font-size: 1rem;
}

.section-cta {
	text-align: center;
	margin: 0;
}

/* Centred heading block with an eyebrow above it. */
.section-lead {
	text-align: center;
	margin-bottom: clamp(1.75rem, 2.6vw, 2.25rem);
}

.section-lead .eyebrow {
	justify-content: center;
}

.section-lead h2 {
	margin-bottom: .6rem;
}

.section-lead p {
	margin: 0 auto;
	max-width: 64ch;
	color: var(--pb-muted);
	font-size: 1rem;
}

/* ==========================================================================
   6. Homepage — hero
   ========================================================================== */

.promo-hero {
	padding: clamp(1rem, 1.6vw, 1.5rem) 0 0;
}

/*
 * A warm panel rather than a glass one: the cut-out products need a tinted
 * surface to read against, and it keeps the block from looking like empty page.
 */
.promo-hero__card {
	display: grid;
	grid-template-columns: minmax(0, 1fr) clamp(272px, 29vw, 440px);
	align-items: center;
	gap: clamp(1.25rem, 3vw, 3rem);
	padding: clamp(1.5rem, 2.4vw, 2.5rem);
	background:
		radial-gradient(78% 120% at 100% 0%, rgba(255, 199, 47, .55), transparent 58%),
		linear-gradient(150deg, #fffaf0 0%, #fdf0d2 100%);
	border: 1px solid rgba(224, 172, 7, .16);
	border-radius: var(--pb-radius-xl);
}

.promo-hero__body {
	align-self: center;
}

.promo-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	margin-bottom: .85rem;
	padding: .3rem .85rem .3rem .4rem;
	border-radius: var(--pb-pill);
	background: var(--pb-white);
	box-shadow: 0 1px 2px rgba(21, 23, 27, .06);
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--pb-ink);
}

.promo-hero__eyebrow::before {
	content: "";
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--pb-yellow);
}

.promo-hero__body h1 {
	font-size: clamp(1.875rem, 3.1vw, 2.75rem);
	margin-bottom: .65rem;
}

/*
 * Highlighter behind two words. The z-index keeps the sweep inside the em's own
 * stacking context, so it stays above the panel background but under the text.
 */
.promo-hero__body h1 em {
	font-style: normal;
	position: relative;
	z-index: 0;
	white-space: nowrap;
}

.promo-hero__body h1 em::after {
	content: "";
	position: absolute;
	left: -.08em;
	right: -.08em;
	bottom: .06em;
	height: .34em;
	border-radius: .2em;
	background: var(--pb-yellow);
	z-index: -1;
}

.promo-hero__body p {
	color: var(--pb-ink-soft);
	max-width: 46ch;
	margin-bottom: 1.25rem;
	font-size: 1.0625rem;
}

.promo-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .65rem;
	margin-bottom: 1.15rem;
}

/* One dense line of proof instead of a separate stat band. */
.promo-hero__facts {
	display: flex;
	flex-wrap: wrap;
	gap: .2rem 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: .875rem;
	color: var(--pb-muted);
}

.promo-hero__facts li {
	display: flex;
	align-items: center;
	gap: .3rem;
}

.promo-hero__facts li:not(:last-child)::after {
	content: "";
	width: 4px;
	height: 4px;
	margin-left: .7rem;
	border-radius: 50%;
	background: var(--pb-yellow);
}

.promo-hero__facts strong {
	font-weight: 700;
	color: var(--pb-ink);
}

/*
 * One cut-out line-up instead of packshots in boxes. The packshots only filled
 * 27-41% of their square frame, so tiling them left the hero looking empty; the
 * products are lifted off their white background and packed onto one baseline
 * (see assets/img/hero/hero-groep.png).
 */
.promo-hero__media {
	position: relative;
	align-self: end;
	/* Let the products stand on the bottom edge of the panel. */
	margin-bottom: calc(-1 * clamp(1.5rem, 2.4vw, 2.5rem));
}

.promo-hero__group {
	display: block;
	width: 100%;
	height: auto;
	filter: drop-shadow(0 16px 18px rgba(92, 64, 0, .18));
}

/* Proof chip fills the empty corner above the shortest product. */
.promo-hero__badge {
	position: absolute;
	right: 0;
	top: .25rem;
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .55rem 1rem;
	border-radius: var(--pb-pill);
	background: var(--pb-dark);
	color: rgba(255, 255, 255, .82);
	font-size: .8125rem;
	font-weight: 500;
	white-space: nowrap;
	box-shadow: 0 12px 28px -12px rgba(21, 23, 27, .55);
}

.promo-hero__badge b {
	font-weight: 700;
	color: var(--pb-white);
}

.promo-hero__badge-stars {
	color: var(--pb-yellow);
	letter-spacing: .5px;
}

/* ==========================================================================
   7. Homepage — category filter pills
   ========================================================================== */

.cat-filter {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5rem;
	margin-bottom: 1.75rem;
}

.cat-filter a {
	padding: .6rem 1.15rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-pill);
	background: var(--pb-white);
	font-size: .875rem;
	font-weight: 600;
	color: var(--pb-ink-soft);
	transition: background-color .18s ease, border-color .18s ease, color .18s ease,
		transform .18s ease;
}

.cat-filter a:hover {
	background: var(--pb-ink);
	border-color: var(--pb-ink);
	color: var(--pb-white);
	transform: translateY(-2px);
}

/* ==========================================================================
   8. Homepage — value columns
   ========================================================================== */

.value-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1rem, 1.8vw, 1.5rem);
}

.value {
	padding: clamp(1.5rem, 2.2vw, 2.25rem);
	background: var(--pb-white);
	border-radius: var(--pb-radius);
	box-shadow: var(--pb-shadow);
	transition: box-shadow .2s ease, transform .2s ease;
}

.value:hover {
	box-shadow: var(--pb-shadow-hover);
	transform: translateY(-3px);
}

.value h3 {
	display: block;
	margin-bottom: .6rem;
	font-size: 1.1875rem;
}

.value h3::before {
	content: "";
	display: block;
	width: 44px;
	height: 44px;
	margin-bottom: 1.1rem;
	border-radius: 14px;
	background: var(--pb-yellow-soft);
	box-shadow: inset 0 0 0 1.5px var(--pb-yellow);
}

.value p {
	color: var(--pb-ink-soft);
	margin: 0;
}

/* ==========================================================================
   9. Homepage — customer results
   ========================================================================== */

.result-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: clamp(.75rem, 1.4vw, 1.15rem);
}

.result {
	position: relative;
	margin: 0;
	background: var(--pb-white);
	border-radius: var(--pb-radius);
	overflow: hidden;
	box-shadow: var(--pb-shadow);
	transition: box-shadow .2s ease, transform .2s ease;
}

.result:hover {
	box-shadow: var(--pb-shadow-hover);
	transform: translateY(-3px);
}

.result img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	transition: transform .4s cubic-bezier(.2, .8, .2, 1);
}

.result:hover img {
	transform: scale(1.06);
}

/* Caption sits over the image so the tiles stay a clean square grid. */
.result figcaption {
	position: absolute;
	inset: auto 0 0;
	padding: 2.25rem .85rem .8rem;
	font-size: .8125rem;
	font-weight: 500;
	color: var(--pb-white);
	background: linear-gradient(to top, rgba(12, 13, 15, .82), transparent);
}

/* ==========================================================================
   10. Homepage — brands
   ========================================================================== */

.brand-strip {
	padding: clamp(1.75rem, 2.6vw, 2.5rem) 0;
	border-top: 1px solid var(--pb-line);
	border-bottom: 1px solid var(--pb-line);
	overflow: hidden;
}

.brands-label {
	text-align: center;
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pb-muted-light);
	margin-bottom: 1.25rem;
}

/*
 * Two identical tracks scroll side by side; each shifts by its own width, so
 * the second one is already in place when the first wraps around.
 */
.brand-marquee {
	display: flex;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}

.brand-track {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: clamp(2.5rem, 4.5vw, 5rem);
	padding-right: clamp(2.5rem, 4.5vw, 5rem);
	animation: pb-marquee 40s linear infinite;
}

.brand-marquee:hover .brand-track {
	animation-play-state: paused;
}

.brand-track img {
	max-height: 40px;
	width: auto;
	flex: 0 0 auto;
	filter: grayscale(1);
	opacity: .5;
	transition: filter .25s ease, opacity .25s ease;
}

.brand-track img:hover {
	filter: grayscale(0);
	opacity: 1;
}

@keyframes pb-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-100%); }
}

@media (prefers-reduced-motion: reduce) {
	.brand-track {
		animation: none;
	}

	.brand-marquee {
		justify-content: center;
		flex-wrap: wrap;
	}

	.brand-track:nth-child(2) {
		display: none;
	}
}

/* ==========================================================================
   11. Homepage — popular categories
   ========================================================================== */

.cat-cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(.85rem, 1.6vw, 1.35rem);
}

.cat-card {
	display: flex;
	flex-direction: column;
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	overflow: hidden;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.cat-card:hover {
	border-color: transparent;
	box-shadow: var(--pb-shadow-hover);
	transform: translateY(-4px);
}

.cat-card__media {
	background: var(--pb-wash);
	overflow: hidden;
}

.cat-card__media img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: contain;
	padding: 16px;
	transition: transform .4s cubic-bezier(.2, .8, .2, 1);
}

.cat-card:hover .cat-card__media img {
	transform: scale(1.06);
}

.cat-card__body {
	padding: 1.15rem 1.25rem 1.35rem;
	display: flex;
	flex-direction: column;
	gap: .35rem;
	flex: 1 1 auto;
}

.cat-card__body strong {
	font-size: 1.0625rem;
	letter-spacing: var(--pb-tight);
}

.cat-card__body span {
	font-size: .875rem;
	color: var(--pb-muted);
}

.cat-card__cta {
	margin-top: auto;
	padding-top: .85rem;
	font-size: .875rem;
	font-weight: 600;
	color: var(--pb-ink);
}

.cat-card:hover .cat-card__cta {
	color: #000;
}

/* ==========================================================================
   12. Homepage — steps
   ========================================================================== */

.steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1rem, 2vw, 1.75rem);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: pb-step;
}

.steps li {
	position: relative;
	padding: clamp(1.5rem, 2.2vw, 2.25rem);
	background: rgba(255, 255, 255, .05);
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: var(--pb-radius);
}

.steps li::before {
	counter-increment: pb-step;
	content: counter(pb-step);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-bottom: 1.25rem;
	border-radius: 14px;
	background: var(--pb-yellow);
	font-size: 1.0625rem;
	font-weight: 800;
	color: #1c1c1c;
}

.steps li strong {
	display: block;
	margin-bottom: .45rem;
	font-size: 1.125rem;
	letter-spacing: var(--pb-tight);
}

.steps li span {
	font-size: .9375rem;
	color: rgba(255, 255, 255, .62);
}

/* A dashed connector between the cards, only where there is room. */
@media (min-width: 901px) {
	.steps li:not(:last-child)::after {
		content: "";
		position: absolute;
		top: clamp(1.5rem, 2.2vw, 2.25rem);
		right: calc(-1 * clamp(1rem, 2vw, 1.75rem) - 1px);
		width: clamp(1rem, 2vw, 1.75rem);
		height: 22px;
		border-bottom: 1px dashed rgba(255, 255, 255, .22);
	}
}

/* ==========================================================================
   13. Homepage — SEO text
   ========================================================================== */

.seo-block {
	background: var(--pb-wash);
	padding: clamp(2.5rem, 4vw, 3.5rem) 0;
	border-top: 1px solid var(--pb-line);
}

.seo-block .prose {
	max-width: 78ch;
	margin: 0 auto;
	color: var(--pb-ink-soft);
	font-size: 1rem;
	line-height: 1.7;
}

.seo-block h2 {
	text-align: center;
	margin-bottom: 1.5rem;
}

/* ==========================================================================
   14. WooCommerce
   ========================================================================== */

.shop-main {
	padding: 2rem 0 clamp(3rem, 5vw, 4.5rem);
}

.shop-layout {
	display: grid;
	grid-template-columns: 272px minmax(0, 1fr);
	gap: clamp(1.75rem, 3vw, 3.25rem);
	align-items: start;
}

.shop-content {
	min-width: 0;
}

/* Offset clears the pinned nav bar. */
.shop-sidebar {
	position: sticky;
	top: calc(var(--pb-navh) + 24px);
}

/* --- Category tree ---
   Server-rendered by promobee_category_branch(): empty branches are dropped,
   and only the branch you are browsing is expanded. */

.filter-list,
.filter-usps {
	list-style: none;
	margin: 0;
	padding: 0;
}

.filter-panel__toggle {
	display: flex;
	align-items: center;
	gap: .6rem;
	cursor: default;
	list-style: none;
}

/* Hide the native disclosure triangle; the chevron below replaces it. */
.filter-panel__toggle::-webkit-details-marker {
	display: none;
}

.filter-panel__toggle .widget-title {
	margin-bottom: 0;
}

.filter-panel__current {
	display: none;
	min-width: 0;
	overflow: hidden;
	font-size: .875rem;
	font-weight: 600;
	color: var(--pb-ink);
	text-overflow: ellipsis;
	white-space: nowrap;
}

.filter-panel__toggle::after {
	display: none;
	flex: none;
	width: 7px;
	height: 7px;
	margin-left: auto;
	border-right: 2px solid var(--pb-muted);
	border-bottom: 2px solid var(--pb-muted);
	transform: translateY(-2px) rotate(45deg);
	content: "";
}

.filter-panel[open] .filter-panel__toggle::after {
	transform: translateY(2px) rotate(-135deg);
}

/*
 * Capped so a deep branch cannot outgrow the viewport and break the sticky
 * column; theme.js scrolls the current item into view when it does overflow.
 */
.filter-tree {
	position: relative;
	max-height: calc(100vh - var(--pb-navh) - 11rem);
	margin-top: .8rem;
	overflow-y: auto;
	overscroll-behavior: contain;
}

/* .widget li a would otherwise win over .filter-link on specificity. */
.filter-tree .filter-link {
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: .38rem .55rem;
	border-radius: var(--pb-radius-sm);
	font-size: .875rem;
	line-height: 1.35;
	color: var(--pb-ink-soft);
	transition: background-color .14s ease, color .14s ease;
}

.filter-tree .filter-list[data-depth="0"] > li > .filter-link {
	font-weight: 500;
	color: var(--pb-ink);
}

.filter-tree .filter-link:hover {
	background: var(--pb-wash);
	color: var(--pb-ink);
}

.filter-tree .filter-link:focus-visible {
	outline: 2px solid var(--pb-yellow-deep);
	outline-offset: 1px;
}

.filter-tree .filter-link__label {
	min-width: 0;
}

/* Right-aligned pill instead of a superscript glued to the name. */
.filter-tree .filter-link__count {
	flex: none;
	min-width: 1.5rem;
	margin-left: auto;
	padding: .05rem .35rem;
	border-radius: var(--pb-pill);
	background: var(--pb-line-soft);
	color: var(--pb-muted);
	font-size: .6875rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
}

.filter-tree .filter-item.is-open > .filter-link {
	color: var(--pb-ink);
	font-weight: 600;
}

.filter-tree .filter-item.is-current > .filter-link {
	background: var(--pb-yellow-soft);
	box-shadow: inset 3px 0 0 var(--pb-yellow-deep);
	color: var(--pb-ink);
	font-weight: 700;
}

.filter-tree .filter-item.is-current > .filter-link .filter-link__count {
	background: var(--pb-yellow);
	color: var(--pb-ink);
}

/*
 * Only reachable through the trail or the all-empty fallback. The branch you
 * are browsing keeps its highlight even when the count says nothing is in it.
 */
.filter-tree .filter-item.is-empty:not(.is-current):not(.is-open) > .filter-link {
	color: var(--pb-muted-light);
	font-weight: 400;
}

.filter-tree .filter-item.is-empty:not(.is-current):not(.is-open) > .filter-link .filter-link__count {
	background: transparent;
	color: var(--pb-muted-light);
}

/* Nesting indents itself: each level adds its own rule and padding. */
.filter-tree .filter-list--sub {
	margin: .1rem 0 .5rem .55rem;
	padding-left: .5rem;
	border-left: 1px solid var(--pb-line);
}

.filter-tree .filter-item.is-open > .filter-list--sub,
.filter-tree .filter-item.is-current > .filter-list--sub {
	border-left-color: var(--pb-yellow);
}

.filter-usps li {
	display: flex;
	align-items: flex-start;
	gap: .5rem;
	margin-bottom: .5rem;
	font-size: .8125rem;
	color: var(--pb-ink-soft);
}

.shop-sidebar .advice-card {
	margin-top: 0;
}

.woocommerce-breadcrumb {
	font-size: .8125rem;
	color: var(--pb-muted);
	margin-bottom: 1.25rem;
}

.woocommerce-breadcrumb a {
	color: var(--pb-muted);
}

.woocommerce-breadcrumb a:hover {
	color: var(--pb-ink);
	text-decoration: underline;
}

.woocommerce-breadcrumb .sep {
	margin: 0 .45rem;
	color: #cfcfcf;
}

/* woocommerce_content() prints a bare h1.page-title on archives. */
.shop-main h1.page-title {
	margin: 0 0 1rem;
	font-size: clamp(1.5rem, 2.8vw, 1.875rem);
}

.woocommerce .term-description {
	color: var(--pb-ink-soft);
	max-width: 70ch;
	margin-bottom: 1.5rem;
}

/* Category archive — extra SEO copy under the product grid (live placement). */
.shop-main .pb-cat-seo {
	margin: 2rem 0 0;
	padding: 1.75rem 0 0;
	border-top: 1px solid var(--pb-line);
	color: var(--pb-ink);
	font-size: 1.0625rem;
	line-height: 1.7;
}

.shop-main .pb-cat-seo > *:first-child {
	margin-top: 0;
}

.shop-main .pb-cat-seo h2,
.shop-main .pb-cat-seo h3 {
	margin: 1.5rem 0 .65rem;
	line-height: 1.25;
	color: var(--pb-ink);
}

.shop-main .pb-cat-seo h2 {
	font-size: clamp(1.25rem, 2vw, 1.5rem);
}

.shop-main .pb-cat-seo h3 {
	font-size: 1.125rem;
}

.shop-main .pb-cat-seo p,
.shop-main .pb-cat-seo ul,
.shop-main .pb-cat-seo ol {
	margin: 0 0 1rem;
}

.shop-main .pb-cat-seo ul,
.shop-main .pb-cat-seo ol {
	padding-left: 1.2rem;
}

.shop-main .pb-cat-seo li {
	margin: 0 0 .4rem;
}

.shop-main .pb-cat-seo img {
	max-width: 100%;
	height: auto;
	border-radius: var(--pb-radius-sm);
}

/* Result count + ordering share one row (wrapped by promobee_loop_toolbar_*). */
.pb-loop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .75rem 1.5rem;
	margin-bottom: 1.5rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--pb-line);
}

.woocommerce .pb-loop-toolbar .woocommerce-result-count,
.woocommerce .pb-loop-toolbar .woocommerce-ordering {
	float: none;
	margin: 0;
}

.woocommerce-products-header {
	margin-bottom: 1.5rem;
}

.woocommerce-products-header__title {
	margin: 0;
}

.woocommerce .woocommerce-result-count {
	font-size: .8125rem;
	color: var(--pb-muted);
	margin: 0;
}

.woocommerce .woocommerce-ordering select,
.woocommerce select,
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="number"],
.woocommerce input[type="password"],
.woocommerce textarea {
	font-family: inherit;
	font-size: .9375rem;
	padding: .6rem .75rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius-sm);
	background: var(--pb-white);
	color: var(--pb-ink);
	max-width: 100%;
}

/* --- Product grid --- */

.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: clamp(.85rem, 1.6vw, 1.35rem);
	margin: 0 0 2.5rem;
	padding: 0;
	list-style: none;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	content: none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
	display: flex;
	flex-direction: column;
	padding: 0;
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	overflow: hidden;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
	text-align: left;
}

.woocommerce ul.products li.product:hover {
	border-color: transparent;
	box-shadow: var(--pb-shadow-hover);
	transform: translateY(-4px);
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

.woocommerce ul.products li.product img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: contain;
	padding: 18px;
	margin: 0;
	background: var(--pb-wash);
	box-shadow: none;
	transition: transform .4s cubic-bezier(.2, .8, .2, 1);
}

.woocommerce ul.products li.product:hover img {
	transform: scale(1.05);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 1.05rem 1.1rem .3rem;
	margin: 0;
	font-size: .9375rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: -.015em;
	color: var(--pb-ink);
}

.woocommerce ul.products li.product .price {
	display: block;
	padding: 0 1.1rem;
	margin: 0 0 .2rem;
	font-size: 1.125rem;
	font-weight: 800;
	letter-spacing: var(--pb-tight);
	color: var(--pb-ink);
}

.woocommerce ul.products li.product .price .pb-from {
	font-size: .75rem;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--pb-muted);
}

.woocommerce ul.products li.product .price del {
	color: var(--pb-muted-light);
	font-weight: 400;
	font-size: .875rem;
}

.woocommerce ul.products li.product .price ins {
	text-decoration: none;
}

.woocommerce ul.products li.product .pb-loop-note {
	display: block;
	padding: 0 1.1rem;
	font-size: .75rem;
	color: var(--pb-muted);
}

.woocommerce ul.products li.product .button {
	margin: 1rem 1.1rem 1.2rem;
	padding: .65rem 1rem;
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-pill);
	color: var(--pb-ink);
	font-size: .875rem;
	font-weight: 600;
	text-align: center;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.woocommerce ul.products li.product:hover .button,
.woocommerce ul.products li.product .button:hover {
	background: var(--pb-yellow-btn);
	border-color: var(--pb-yellow-btn);
	color: #1c1c1c;
}

.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
	position: absolute;
	top: 12px;
	left: 12px;
	min-height: 0;
	min-width: 0;
	margin: 0;
	padding: .25rem .65rem;
	border-radius: var(--pb-pill);
	background: var(--pb-dark);
	color: var(--pb-white);
	font-size: .6875rem;
	font-weight: 700;
	line-height: 1.6;
}

.woocommerce ul.products li.product {
	position: relative;
}

/* --- Buttons (generic Woo) --- */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	background: var(--pb-yellow-btn);
	border: 1px solid var(--pb-yellow-btn);
	border-radius: var(--pb-pill);
	color: #1c1c1c;
	padding: .8rem 1.5rem;
	text-shadow: none;
	font-weight: 600;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	background: var(--pb-yellow-btn-hover);
	border-color: var(--pb-yellow-btn-hover);
	color: #000;
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	background: var(--pb-dark);
	border-color: var(--pb-dark);
	color: var(--pb-white);
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background: #000;
	color: var(--pb-white);
}

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

.woocommerce div.product {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
	gap: clamp(2rem, 4vw, 4rem);
	align-items: start;
}

.woocommerce div.product .woocommerce-product-gallery {
	width: 100% !important;
	float: none !important;
	margin: 0;
	border-radius: var(--pb-radius-xl);
	overflow: hidden;
	background: var(--pb-wash);
}

/* Gallery column can stay in view while the configurator scrolls. */
@media (min-width: 1081px) {
	.woocommerce div.product .woocommerce-product-gallery {
		position: sticky;
		top: calc(var(--pb-navh) + 24px);
	}
}

.woocommerce div.product .summary {
	width: 100% !important;
	float: none !important;
	margin: 0;
	text-align: left;
}

.woocommerce div.product .product_title {
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 800;
	letter-spacing: var(--pb-tighter);
	margin: 0 0 .6rem;
	padding: 0;
	text-align: left;
	text-wrap: wrap;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-size: 1.75rem;
	font-weight: 800;
	letter-spacing: var(--pb-tight);
	color: var(--pb-ink);
	margin-bottom: 1rem;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--pb-ink-soft);
	font-size: 1.0625rem;
	text-align: left;
}

/*
 * Short-description opener (e.g. "… bedrukken?") inherits the page h2
 * scale and almost matches the product title. Keep it in the summary
 * column, flush left, and clearly smaller than the h1.
 */
.single-product .summary h2,
.woocommerce div.product .woocommerce-product-details__short-description > h2 {
	font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
	font-weight: 700;
	letter-spacing: var(--pb-tight);
	line-height: 1.3;
	margin: 1rem 0 .45rem;
	padding: 0;
	color: var(--pb-ink);
	text-align: left;
	text-wrap: wrap;
}

.woocommerce div.product .woocommerce-product-details__short-description > h2:first-child {
	margin-top: 0;
}

.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .6rem;
	margin: 1.25rem 0;
	padding: 1.25rem 0;
	border-top: 1px solid var(--pb-line);
	border-bottom: 1px solid var(--pb-line);
}

.woocommerce div.product form.cart .quantity input {
	width: 78px;
	padding: .65rem .5rem;
	text-align: center;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius-sm);
	font-family: inherit;
}

.woocommerce div.product .product_meta {
	font-size: .8125rem;
	color: var(--pb-muted);
}

.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells {
	grid-column: 1 / -1;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0 0 1.5rem;
	border-bottom: 1px solid var(--pb-line);
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	border: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	margin: 0 1.5rem 0 0;
	padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: .7rem 0;
	font-weight: 600;
	color: var(--pb-muted);
	border-bottom: 3px solid transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--pb-ink);
	border-bottom-color: var(--pb-yellow);
}

/* --- Notices --- */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice {
	border-top: 0;
	border-left: 3px solid var(--pb-yellow);
	border-radius: var(--pb-radius-sm);
	background: var(--pb-wash);
	color: var(--pb-ink);
	font-size: .9375rem;
	padding: 1rem 1.25rem;
	margin-bottom: 1.5rem;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	display: none;
}

.woocommerce-message {
	border-left-color: var(--pb-green);
}

.woocommerce-error {
	border-left-color: #ee4242;
	list-style: none;
}

/* --- Shared shop tables & form labels (cart / checkout) --- */

.woocommerce table.shop_table {
	width: 100%;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	border-collapse: separate;
	border-spacing: 0;
	font-size: .9375rem;
	overflow: hidden;
	background: var(--pb-white);
}

.woocommerce table.shop_table th {
	font-weight: 700;
	background: var(--pb-wash);
	border-bottom: 1px solid var(--pb-line);
	padding: .95rem 1.1rem;
	color: var(--pb-ink);
	text-align: left;
}

.woocommerce table.shop_table td {
	border-top: 1px solid var(--pb-line-soft);
	padding: 1rem 1.1rem;
	vertical-align: middle;
	color: var(--pb-ink);
}

.woocommerce table.shop_table tbody tr:first-child td {
	border-top: 0;
}

.woocommerce form .form-row {
	margin: 0 0 1rem;
	padding: 0;
}

.woocommerce form .form-row label {
	display: block;
	font-size: .875rem;
	font-weight: 600;
	color: var(--pb-ink);
	margin-bottom: .35rem;
	line-height: 1.35;
}

.woocommerce form .form-row label .required,
.woocommerce form .form-row label .optional {
	font-weight: 500;
}

.woocommerce form .form-row label .optional {
	color: var(--pb-muted);
	font-size: .8125rem;
}

.woocommerce form .form-row .input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea,
.woocommerce .woocommerce-input-wrapper .input-text,
.woocommerce .woocommerce-input-wrapper select,
.woocommerce .woocommerce-input-wrapper textarea {
	width: 100%;
	min-height: 48px;
	padding: .75rem .9rem;
	font-family: inherit;
	font-size: .9375rem;
	line-height: 1.35;
	color: var(--pb-ink);
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius-sm);
	box-shadow: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.woocommerce form .form-row textarea,
.woocommerce .woocommerce-input-wrapper textarea {
	min-height: 96px;
	resize: vertical;
}

.woocommerce form .form-row .input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce .woocommerce-input-wrapper .input-text:focus,
.woocommerce .woocommerce-input-wrapper select:focus,
.woocommerce .woocommerce-input-wrapper textarea:focus {
	outline: 0;
	border-color: var(--pb-ink);
	box-shadow: 0 0 0 3px rgba(255, 199, 47, .28);
}

.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
	width: 48%;
	float: left;
}

.woocommerce form .form-row-last {
	float: right;
}

.woocommerce form .form-row-wide {
	clear: both;
	width: 100%;
}

.woocommerce form .form-row::after {
	content: "";
	display: table;
	clear: both;
}

/* --- Pagination --- */

.woocommerce nav.woocommerce-pagination ul {
	border: 0;
	display: flex;
	gap: .4rem;
	justify-content: center;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
	margin: 0;
	overflow: visible;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	min-width: 42px;
	padding: .6rem .85rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-pill);
	font-weight: 600;
	background: var(--pb-white);
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--pb-yellow-btn);
	border-color: var(--pb-yellow-btn);
	color: #1c1c1c;
}

/* ==========================================================================
   14b. Invision configurator
   The plugin ships its own purple/green palette; this pulls it onto the
   PromoBee tokens. Theme CSS loads after the plugin CSS, so plain overrides
   win — !important is only used where the plugin used it first.
   ========================================================================== */

.product-wrapper {
	position: relative;
	margin-top: 1.5rem;
}

/*
 * variable.php opens <form class="cart"> around the whole configurator and
 * add-to-cart.php opens a second one inside it. The parser drops the nested
 * start tag, so one form ends up holding everything — and the generic
 * form.cart row from section 14 turned the group cards into shrink-to-fit
 * flex items with a stray border above and below. Lay it out as a column
 * instead, and put the cost breakdown above the buttons: the plugin prints
 * the total after them, so you would confirm before seeing what it costs.
 */
.woocommerce div.product .product-wrapper form.cart {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.product-wrapper form.cart > * {
	order: 6;
}

.product-wrapper form.cart > .productconfig-groups {
	order: 1;
}

.product-wrapper form.cart > .totals {
	order: 2;
}

.product-wrapper form.cart > .costs-breakdown-section {
	order: 3;
}

.product-wrapper form.cart > .pb-logo-upload {
	order: 4;
}

.product-wrapper form.cart > .productconfig-addtocart {
	order: 5;
}

.pb-price-note {
	display: block;
	margin-top: .2rem;
	font-size: .75rem;
	font-weight: 400;
	color: var(--pb-muted);
}

.woocommerce div.product p.price .pb-from {
	font-size: .8125rem;
	font-weight: 500;
	color: var(--pb-muted);
}

/* --- Group cards --- */

.productconfig-groups {
	counter-reset: pb-config;
}

.productconfig-group.card {
	margin-bottom: .85rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	background: var(--pb-white);
	box-shadow: none;
	transition: border-color .2s ease, box-shadow .2s ease;
}

/* Quantity-only: no visible choice groups, so keep the staffel list in flow. */
.productconfig-groups:not(:has(.productconfig-group[data-attribute-key])) .productconfig-group-aantal .product-options-aantal {
	display: flex;
	flex-direction: column;
}

.productconfig-group.card.focus {
	border-color: transparent;
	box-shadow: var(--pb-shadow);
}

.card-header.productconfig-group-header {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: 1.05rem 1.25rem;
	background: var(--pb-white);
	border-bottom: 1px solid var(--pb-line-soft);
	border-radius: var(--pb-radius) var(--pb-radius) 0 0;
}

.productconfig-group[data-group-expanded="false"] .card-header.productconfig-group-header {
	border-bottom-color: transparent;
}

/*
 * The plugin sizes the four header cells 40% / 36% / 22% / 22% — 120% in a
 * flex row, so every cell shrank and long labels wrapped. Let the title take
 * the room it needs and push the edit link to the end.
 */
.card-header.productconfig-group-header > * {
	width: auto;
}

.productconfig-group-header-title {
	flex: 1 1 auto;
	min-width: 0;
}

.productconfig-group-header-selection {
	flex: 0 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.productconfig-group-header-title strong {
	font-size: .9375rem;
	font-weight: 700;
	color: var(--pb-ink);
}

/* Number the attribute groups; the quantity group prints its own number. */
.productconfig-group[data-attribute-key] .productconfig-group-header-title strong::before {
	counter-increment: pb-config;
	content: counter(pb-config) ". ";
}

.productconfig-group-header-selection,
.productconfig-group-header-price {
	font-size: .8125rem;
	color: var(--pb-ink-soft);
}

.productconfig-group-header-edit {
	margin-left: auto;
	padding: .25rem .7rem;
	font-size: .75rem;
	font-weight: 600;
	color: var(--pb-muted);
	cursor: pointer;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-pill);
}

.productconfig-group-header-edit:hover {
	color: var(--pb-ink);
	border-color: var(--pb-ink);
}

/* --- Options --- */

.productconfig-options {
	padding: .85rem 1.1rem 1.1rem;
	gap: .5rem;
}

.productconfig-option.list-group-item {
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius-sm);
	margin: 0;
	padding: .7rem .9rem;
	font-size: .875rem;
	cursor: pointer;
	transition: border-color .16s ease, background-color .16s ease;
}

.productconfig-option.list-group-item:hover {
	border-color: var(--pb-ink);
	background: var(--pb-white);
}

/*
 * The plugin only lays radio options out as full rows inside a mobile media
 * query; at 25% width a label like "Full colour bedrukking" wraps three lines
 * in the summary column, so use rows at every breakpoint.
 */
.productconfig-options-radio,
.productconfig-options-quantity {
	flex-direction: column;
}

.productconfig-options-radio > label.productconfig-option {
	width: 100%;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
}

.productconfig-options-radio > label.productconfig-option span {
	text-align: left;
}

.productconfig-options-radio > label.productconfig-option .productconfig-option-desc {
	display: none;
}

/*
 * The rule above left-aligns every span in the row, including the surcharge.
 * Give it its own right-aligned column so the amounts stack instead of
 * floating wherever the option name ends.
 */
.productconfig-options-radio > label.productconfig-option .productconfig-option-title {
	flex: 1 1 auto;
	min-width: 0;
}

.productconfig-options-radio > label.productconfig-option .productconfig-option-price {
	flex: none;
	min-width: 5.5rem;
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.productconfig-option.product-option-selected {
	border-color: var(--pb-yellow-deep) !important;
	background: var(--pb-wash-warm);
	box-shadow: inset 0 0 0 1px var(--pb-yellow-deep);
}

.productconfig-option-title {
	font-weight: 600;
	color: var(--pb-ink);
}

/* Keep option surcharges as microcopy — below the option title. */
.productconfig-option-price .woocommerce-Price-amount bdi {
	font-size: .75rem !important;
	color: var(--pb-muted) !important;
}

.productconfig-label {
	font-size: .6875rem;
	font-weight: 400;
	color: var(--pb-muted);
}

.product-option-disabled {
	opacity: .45;
	cursor: not-allowed;
}

/*
 * Swatches: the plugin sizes them calc(25% - 11px) with a 10px right margin,
 * which does not add up to four per row once .productconfig-options adds a
 * gap. A grid drops the arithmetic and reflows on its own.
 */
.productconfig-group .productconfig-options-labels {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
	gap: .55rem;
	padding: .85rem 1.1rem 1.1rem;
}

.productconfig-group .productconfig-options-labels > label {
	width: auto !important;
	margin: 0 !important;
	padding: 0 0 .5rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius-sm) !important;
	background: var(--pb-white);
}

.productconfig-group .productconfig-options-labels > label:hover {
	border-color: var(--pb-ink) !important;
}

.productconfig-group .productconfig-options-labels > label.product-option-selected {
	border-color: var(--pb-yellow-deep) !important;
}

.productconfig-group .productconfig-options-labels > label > span {
	font-size: .6875rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--pb-ink);
}

/* Colour swatches */
.productconfig-options-labels .attribute-image-thumbnail {
	border-radius: 50%;
	border: 1px solid var(--pb-line);
}

/* --- Quantity staffel table ---
   Replaces the plugin slider: radio rows with Aantal / Volumevoordeel /
   Prijs per Stuk, plus an optional custom-quantity row below. */

.productconfig-group .list-group.productconfig-options-quantity,
.list-group.productconfig-options.productconfig-options-quantity {
	padding: .35rem 1.15rem 1.15rem;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.quantity-tiers {
	display: flex;
	flex-direction: column;
	width: 100%;
	gap: 0;
}

.quantity-tiers__head,
.quantity-tiers .quantity-tier {
	display: grid;
	grid-template-columns: 1.5rem minmax(3.5rem, 1fr) minmax(4.5rem, 1.1fr) minmax(4.5rem, 1.1fr);
	align-items: center;
	column-gap: .85rem;
	width: 100%;
	box-sizing: border-box;
}

.quantity-tiers__head {
	padding: .55rem .65rem .7rem;
	border-bottom: 1px solid var(--pb-line);
	font-size: .8125rem;
	font-weight: 700;
	color: var(--pb-ink);
}

.quantity-tiers__body {
	display: flex;
	flex-direction: column;
}

.quantity-tiers .quantity-tier.list-group-item,
.productconfig-options-quantity > label.productconfig-option.quantity-tier,
.productconfig-options-quantity .productconfig-option.quantity-tier {
	display: grid !important;
	margin: 0;
	padding: .7rem .65rem;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	cursor: pointer;
	transition: background-color .14s ease;
}

.quantity-tiers .quantity-tier.list-group-item:hover,
.productconfig-options-quantity > label.productconfig-option.quantity-tier:hover {
	background: var(--pb-wash);
	border-color: transparent;
}

.quantity-tiers .quantity-tier.product-option-selected,
.productconfig-options-quantity .quantity-tier.product-option-selected {
	background: var(--pb-wash) !important;
	border-color: transparent !important;
	box-shadow: none !important;
}

.quantity-tier__input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
	width: 0;
	height: 0;
}

.quantity-tier__radio {
	display: inline-block;
	width: 1.125rem;
	height: 1.125rem;
	border: 1.5px solid var(--pb-muted-light);
	border-radius: 50%;
	background: var(--pb-white);
	box-sizing: border-box;
	justify-self: start;
}

.quantity-tier.product-option-selected .quantity-tier__radio {
	border-color: var(--pb-ink);
	box-shadow: inset 0 0 0 3.5px var(--pb-white), inset 0 0 0 7px var(--pb-ink);
}

.quantity-tier__qty,
.quantity-tier__discount,
.quantity-tier__price {
	font-size: .9375rem;
	font-variant-numeric: tabular-nums;
	text-align: left;
}

.quantity-tier__qty {
	font-weight: 500;
	color: var(--pb-ink);
}

.quantity-tier__discount {
	font-weight: 400;
	color: var(--pb-ink-soft);
}

.quantity-tier__price,
.quantity-tier__price .woocommerce-Price-amount,
.quantity-tier__price .woocommerce-Price-amount bdi {
	font-weight: 500 !important;
	font-size: .9375rem !important;
	color: var(--pb-ink) !important;
	text-align: left;
}

.quantity-tier .productconfig-label {
	display: none;
}

.quantity-tiers__custom {
	margin-top: 1rem;
	padding-top: .15rem;
	display: flex;
	flex-direction: column;
	gap: .65rem;
}

.quantity-tiers__custom-copy {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .35rem .55rem;
}

.quantity-tiers__custom-title {
	font-size: .9375rem;
	font-weight: 500;
	color: var(--pb-ink);
}

.quantity-tiers__custom-note {
	font-size: .75rem;
	color: var(--pb-muted);
}

.quantity-tiers__custom-controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .55rem;
}

.quantity-tiers__custom-input,
.quantity-tiers__custom-input[type="number"] {
	flex: 1 1 8rem;
	min-width: 7rem;
	max-width: 14rem;
	padding: .6rem .75rem;
	border: 1px solid var(--pb-ink-soft);
	border-radius: var(--pb-radius-sm);
	background: var(--pb-white);
	color: var(--pb-ink);
	font-family: inherit;
	font-size: .875rem;
	font-weight: 500;
}

.quantity-tiers__custom-input:focus,
.quantity-tiers__custom-input[type="number"]:focus {
	border-color: var(--pb-yellow-deep);
	box-shadow: 0 0 0 3px rgba(255, 199, 47, .35);
	outline: none;
}

.quantity-tiers__custom-btn {
	flex: 0 0 auto;
	padding: .6rem 1.1rem;
	border: 1px solid var(--pb-yellow-deep);
	border-radius: var(--pb-radius-sm);
	background: var(--pb-white);
	color: var(--pb-ink);
	font-family: inherit;
	font-size: .875rem;
	font-weight: 600;
	cursor: pointer;
	transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}

.quantity-tiers__custom-btn:hover {
	background: var(--pb-yellow-soft);
	border-color: var(--pb-yellow-deep);
	color: #000;
}

/* Legacy slider styles kept harmless if an older markup path reappears. */
.quantity-slider {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	gap: .65rem;
}

.quantity-slider__header {
	gap: .75rem;
}

.quantity-slider__control {
	padding-inline: 10px;
	box-sizing: border-box;
}

.quantity-slider__range {
	display: block;
	width: 100%;
	box-sizing: border-box;
	background: linear-gradient(90deg, var(--pb-yellow-deep) var(--slider-progress, 0%), #e6e6e6 var(--slider-progress, 0%));
}

.quantity-slider__range::-webkit-slider-thumb {
	background-color: var(--pb-yellow-deep);
	box-shadow: 0 0 0 2px var(--pb-yellow-deep), 0 2px 4px rgba(0, 0, 0, .2);
}

.quantity-slider__range::-moz-range-thumb {
	background-color: var(--pb-yellow-deep);
	box-shadow: 0 0 0 2px var(--pb-yellow-deep), 0 2px 4px rgba(0, 0, 0, .2);
}

.quantity-slider__range::-moz-range-progress {
	background: var(--pb-yellow-deep);
}

.quantity-slider__ticks {
	padding-inline: 10px;
	box-sizing: border-box;
}

.quantity-slider__tick {
	font-size: .75rem;
	min-width: 0;
}

.quantity-slider__tick--active .quantity-slider__tick-line {
	background-color: var(--pb-yellow-deep);
}

.quantity-slider__current,
.quantity-slider__input input,
.quantity-slider__input input[type="number"] {
	border-color: var(--pb-line);
	border-radius: var(--pb-radius-sm);
	color: var(--pb-ink);
	font-family: inherit;
}

.quantity-slider__current {
	font-size: .9375rem;
}

.quantity-slider__input input,
.quantity-slider__input input[type="number"] {
	font-size: .875rem;
}

.quantity-slider__input input:focus,
.quantity-slider__input input[type="number"]:focus {
	border-color: var(--pb-yellow-deep);
	box-shadow: 0 0 0 3px rgba(255, 199, 47, .35);
}

/*
 * Shown instead of the slider when the product is marked "prijs op aanvraag".
 * Neither the plugin nor the theme styled it, so it rendered as a bare label
 * and a browser-default number field.
 */
.total-quantity-block {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin: 1.25rem 0;
	padding: 1rem 1.35rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	background: var(--pb-wash);
}

.total-quantity-block p {
	margin: 0;
	font-size: .875rem;
	font-weight: 600;
	color: var(--pb-ink);
}

.total-quantity-block input[type="number"] {
	width: 110px;
	padding: .55rem .65rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius-sm);
	background: var(--pb-white);
	color: var(--pb-ink);
	font-family: inherit;
	font-size: .875rem;
	font-weight: 600;
	text-align: center;
}

.total-quantity-block input[type="number"]:focus {
	border-color: var(--pb-yellow-deep);
	box-shadow: 0 0 0 3px rgba(255, 199, 47, .35);
	outline: none;
}

/* --- Price table ---
   Injected into .totals by the plugin JS from <template id="product-totals">.
   The [data-pricetable-status] selector has to be matched here, otherwise the
   plugin's `background: transparent` on it wins on specificity. */

.productconfig-pricetable,
.productconfig-pricetable[data-pricetable-status="active"] {
	margin: 1.25rem 0 .7rem;
	padding: 1.15rem 1.35rem;
	background: var(--pb-wash-warm);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
}

.productconfig-pricetable .price-per-piece-section {
	margin-bottom: 0;
}

.price-per-piece-label {
	font-size: .875rem;
}

.price-per-piece-amount {
	align-items: baseline;
	font-weight: 700;
	letter-spacing: var(--pb-tight);
}

/*
 * The three parts were sized 1.5rem / 1.75rem / 1rem with line-height 2 and
 * vertical-align: top, so the cents floated free of the euros. One baseline,
 * one step down for the cents.
 */
.price-per-piece-amount .price-currency {
	font-size: 1.25rem;
	font-weight: 700;
	margin-right: .1rem;
}

.price-per-piece-amount .price-integer {
	font-size: 1.75rem;
	font-weight: 800;
	letter-spacing: var(--pb-tight);
}

.price-per-piece-amount .price-decimal {
	display: inline;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1;
	vertical-align: baseline;
}

.price-per-piece-label,
.price-per-piece-amount,
.cost-label,
.cost-value,
.productconfig-addtocart,
.productconfig-group-footer {
	color: var(--pb-ink);
}

.price-discount-badge {
	padding: .1rem .4rem;
	border-radius: 999px;
	background: var(--pb-yellow);
	color: #1c1c1c !important;
	font-size: .6875rem;
	font-weight: 700;
}

/*
 * Setup / shipping / total. The plugin only toggles display on this block, so
 * it has to stand on its own rather than share a border with the price table.
 */
.costs-breakdown-section {
	margin: 0 0 1.1rem;
	padding: 1.05rem 1.35rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	background: var(--pb-white);
	font-size: .875rem;
}

.costs-breakdown-section .cost-label {
	font-size: .8125rem;
	color: var(--pb-ink-soft);
}

/* The plugin reveals this block with an inline display:block, which drops its
   own flex gap, so the rows space themselves. */
.costs-breakdown-section .cost-item + .cost-item {
	margin-top: .5rem;
}

.costs-breakdown-section .cost-value {
	flex: none;
	font-variant-numeric: tabular-nums;
}

.costs-breakdown-section .cost-item-total {
	padding-top: .65rem;
	border-top: 1px solid var(--pb-line);
	font-weight: 700;
}

.cost-item-total .cost-value {
	font-size: 1.125rem;
	letter-spacing: var(--pb-tight);
}

.cost-value-free {
	color: var(--pb-green);
}

.pb-logo-upload--product {
	margin: 0 0 1rem;
	padding: 1.1rem 1.15rem 1.2rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	background: var(--pb-white);
}

.pb-logo-upload__label {
	margin: 0 0 .25rem;
	font-size: .9375rem;
	font-weight: 700;
	letter-spacing: var(--pb-tight);
	color: var(--pb-ink);
}

.pb-logo-upload__lede {
	margin: 0 0 .85rem;
	font-size: .875rem;
	color: var(--pb-ink-soft);
}

.pb-logo-upload--cart {
	margin-top: .85rem;
	max-width: 22rem;
}

.pb-logo-upload--cart .pb-logo-upload__label {
	margin: 0 0 .25rem;
	font-size: .8125rem;
}

.pb-logo-upload--cart .pb-logo-upload__lede {
	margin: 0 0 .65rem;
	font-size: .8125rem;
}

.pb-logo-upload--cart .pb-logo-drop {
	padding: .95rem .75rem;
}

.pb-logo-upload.is-busy .pb-logo-drop {
	pointer-events: none;
	opacity: .72;
}

.pb-logo-drop {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .35rem;
	padding: 1.35rem 1rem;
	border: 2px dashed var(--pb-line);
	border-radius: var(--pb-radius);
	background: var(--pb-wash);
	text-align: center;
	cursor: pointer;
	transition: border-color .15s ease, background-color .15s ease;
}

.pb-logo-drop:hover,
.pb-logo-drop.is-over {
	border-color: var(--pb-yellow-deep);
	background: var(--pb-wash-warm);
}

.pb-logo-drop.is-ready {
	border-style: solid;
	border-color: var(--pb-green);
	background: var(--pb-white);
}

.pb-logo-drop__input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	overflow: hidden;
}

.pb-logo-drop {
	position: relative;
}

.pb-logo-drop__title {
	font-size: .9375rem;
	font-weight: 600;
}

.pb-logo-drop__hint,
.pb-logo-drop__file {
	font-size: .8125rem;
	color: var(--pb-muted);
}

.pb-logo-drop__file {
	color: var(--pb-ink);
	font-weight: 600;
}

#custom_upload_field {
	display: none !important;
}

/* --- Configurator buttons --- */

.productconfig-addtocart__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
}

/*
 * Both buttons carry a `3px 3px 4px #c0c0c0` drop shadow and a 30px radius
 * from the plugin. Pills with the site's soft elevation instead; the sizing
 * needs !important because the plugin marks padding and font-size too.
 */
.woocommerce button.single_add_to_cart_button.btn-quote,
.woocommerce button.btn-quote,
button.btn-quote,
.woocommerce button.single_add_to_cart_button.btn-submit-design,
.woocommerce button.btn-submit-design,
button.btn-submit-design,
.woocommerce form.cart:has(.btn-quote) .single_add_to_cart_button:not(.btn-quote) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	padding: .8rem 1.5rem !important;
	border-radius: var(--pb-pill) !important;
	font-family: inherit;
	font-size: .9375rem !important;
	font-weight: 600 !important;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease,
		box-shadow .18s ease;
}

@keyframes pb-btn-spin {
	to { transform: rotate(360deg); }
}

.pb-btn-spinner {
	display: inline-block;
	width: .85em;
	height: .85em;
	flex: 0 0 auto;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: pb-btn-spin .6s linear infinite;
}

form.cart.is-submitting {
	pointer-events: none;
}

.product-wrapper.is-submitting::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 4;
	background: rgba(28, 28, 28, .08);
	pointer-events: auto;
}

form.cart.is-submitting button[type="submit"]:not(.is-loading),
form.cart.is-submitting .single_add_to_cart_button:not(.is-loading) {
	opacity: .55;
	cursor: wait;
}

.woocommerce button.single_add_to_cart_button.is-loading,
.woocommerce button.btn-quote.is-loading,
.woocommerce button.btn-submit-design.is-loading,
button.btn-quote.is-loading,
button.btn-submit-design.is-loading {
	opacity: 1;
	cursor: wait;
	pointer-events: none;
}

.woocommerce button.btn-quote.is-loading {
	background: var(--pb-yellow-btn) !important;
	color: #1c1c1c !important;
}

.woocommerce button.btn-submit-design.is-loading,
.woocommerce form.cart:has(.btn-quote) .single_add_to_cart_button:not(.btn-quote).is-loading {
	background: var(--pb-white) !important;
	color: var(--pb-ink) !important;
}

/*
 * Quote is the primary product CTA (filled yellow). Add-to-cart stays
 * available as the outline/ghost action. Plugin CSS gives flex:1 to the
 * cart button only; reverse that here.
 */
.woocommerce button.single_add_to_cart_button.btn-quote,
.woocommerce button.btn-quote,
button.btn-quote {
	background: var(--pb-yellow-btn) !important;
	border: 1px solid var(--pb-yellow-btn) !important;
	box-shadow: 0 8px 22px -12px rgba(223, 169, 0, .8) !important;
	color: #1c1c1c !important;
	flex: 1 1 14rem !important;
	justify-content: center;
}

.woocommerce button.single_add_to_cart_button.btn-quote:hover,
.woocommerce button.btn-quote:hover,
button.btn-quote:hover {
	background: var(--pb-yellow-btn-hover) !important;
	border-color: var(--pb-yellow-btn-hover) !important;
	box-shadow: 0 12px 28px -12px rgba(223, 169, 0, .9) !important;
	color: #1c1c1c !important;
}

.woocommerce button.single_add_to_cart_button.btn-submit-design,
.woocommerce button.btn-submit-design,
button.btn-submit-design,
.woocommerce form.cart:has(.btn-quote) .single_add_to_cart_button:not(.btn-quote) {
	background: var(--pb-white) !important;
	border: 1px solid var(--pb-line) !important;
	box-shadow: none !important;
	color: var(--pb-ink) !important;
	flex: 0 1 auto !important;
	justify-content: center;
}

.woocommerce button.single_add_to_cart_button.btn-submit-design:hover,
.woocommerce button.btn-submit-design:hover,
button.btn-submit-design:hover,
.woocommerce form.cart:has(.btn-quote) .single_add_to_cart_button:not(.btn-quote):hover {
	border-color: var(--pb-ink) !important;
	background: var(--pb-wash) !important;
	color: #000 !important;
}

.woocommerce .single_add_to_cart_button:not(.btn-quote):not(.btn-submit-design) {
	background: var(--pb-yellow-btn);
	border: 1px solid var(--pb-yellow-btn);
	border-radius: var(--pb-pill);
	color: #1c1c1c;
}

.woocommerce .single_add_to_cart_button:not(.btn-quote):not(.btn-submit-design):hover {
	background: var(--pb-yellow-btn-hover);
	color: #000;
}

.woocommerce form.cart:has(.btn-quote) .single_add_to_cart_button:not(.btn-quote) {
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	color: var(--pb-ink);
}

.productconfig-addtocart__request-button {
	background: var(--pb-dark);
	border-radius: var(--pb-radius-sm);
}

.productconfig-addtocart__request-button:hover {
	background: #000;
}

.add-to-cart-alternative {
	margin: .7rem 0 0;
	font-size: .75rem;
	color: var(--pb-muted);
}

.add-to-cart-message {
	background: var(--pb-wash) !important;
	color: var(--pb-ink) !important;
	border-radius: var(--pb-radius-sm);
}

.balloon-color-options-box {
	background: var(--pb-wash);
	border-radius: var(--pb-radius-sm);
}

.loading-bar-container .loading-bar::before {
	background-color: var(--pb-yellow-deep);
}

/* ==========================================================================
   14c. Cart & checkout pages
   Classic shortcode markup ([woocommerce_cart] / [woocommerce_checkout]).
   Full container width; interactive surfaces for totals / payment.
   ========================================================================== */

body.woocommerce-cart .content-wrap {
	padding-top: clamp(1.5rem, 2.8vw, 2.35rem);
	padding-bottom: clamp(3.25rem, 6vw, 5rem);
}

body.woocommerce-checkout .content-wrap {
	padding-top: 1rem;
	padding-bottom: 2.5rem;
}

/* --- Commerce progress steps --- */

.pb-commerce-steps {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .65rem 0;
	list-style: none;
	margin: 1.35rem 0 0;
	padding: 0;
}

.pb-commerce-steps__item {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	font-size: .875rem;
	font-weight: 600;
	color: var(--pb-muted);
}

.pb-commerce-steps__item:not(:last-child)::after {
	content: "";
	display: block;
	width: clamp(1.5rem, 4vw, 2.75rem);
	height: 2px;
	margin-left: .75rem;
	margin-right: .75rem;
	border-radius: 2px;
	background: var(--pb-line);
}

.pb-commerce-steps__dot {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	border: 1.5px solid var(--pb-line);
	background: var(--pb-white);
	font-size: .75rem;
	font-weight: 700;
	line-height: 1;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease,
		transform .2s ease;
}

.pb-commerce-steps__item.is-current {
	color: var(--pb-ink);
}

.pb-commerce-steps__item.is-current .pb-commerce-steps__dot {
	background: var(--pb-yellow);
	border-color: var(--pb-yellow);
	color: #1c1c1c;
	transform: scale(1.06);
	box-shadow: 0 6px 16px -8px rgba(223, 169, 0, .85);
}

.pb-commerce-steps__item.is-done {
	color: var(--pb-ink-soft);
}

.pb-commerce-steps__item.is-done .pb-commerce-steps__dot {
	background: var(--pb-ink);
	border-color: var(--pb-ink);
	color: var(--pb-white);
	font-size: 0;
}

.pb-commerce-steps__item.is-done .pb-commerce-steps__dot::before {
	content: "";
	width: .55rem;
	height: .32rem;
	border-left: 2px solid var(--pb-white);
	border-bottom: 2px solid var(--pb-white);
	transform: rotate(-45deg) translateY(-1px);
}

.pb-commerce-steps__item.is-done:not(:last-child)::after {
	background: var(--pb-ink);
}

/* --- Trust strip under CTAs --- */

.pb-checkout-trust {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .45rem .9rem;
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
}

.pb-checkout-trust li {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	margin: 0;
	font-size: .8125rem;
	font-weight: 600;
	color: var(--pb-ink-soft);
}

.pb-checkout-trust li::before {
	content: "";
	width: .55rem;
	height: .55rem;
	border-radius: 50%;
	background: var(--pb-yellow);
	box-shadow: 0 0 0 3px rgba(255, 199, 47, .22);
}

/* --- Empty cart --- */

body.woocommerce-cart .woocommerce-cart-form + .cart-empty,
body.woocommerce-cart .wc-empty-cart-message,
body.woocommerce-cart .cart-empty.woocommerce-info {
	max-width: 34rem;
	margin: 0 auto 1.5rem;
	padding: clamp(2rem, 4vw, 2.75rem) 1.5rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	background: var(--pb-wash);
	text-align: center;
}

body.woocommerce-cart .wc-empty-cart-message .cart-empty,
body.woocommerce-cart .cart-empty.woocommerce-info {
	border: 0;
	background: transparent;
	box-shadow: none;
	padding: 0;
	margin: 0;
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--pb-ink);
}

body.woocommerce-cart .return-to-shop {
	margin: 0;
	text-align: center;
}

.woocommerce .return-to-shop .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: .85rem 1.6rem;
	border-radius: var(--pb-pill);
	background: var(--pb-yellow-btn);
	border: 1px solid var(--pb-yellow-btn);
	color: #1c1c1c;
	box-shadow: 0 8px 22px -12px rgba(223, 169, 0, .8);
	transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease,
		transform .18s ease;
}

.woocommerce .return-to-shop .button:hover {
	background: var(--pb-yellow-btn-hover);
	border-color: var(--pb-yellow-btn-hover);
	color: #000;
	box-shadow: 0 12px 28px -12px rgba(223, 169, 0, .9);
}

/* --- Cart layout --- */

@media (min-width: 960px) {
	body.woocommerce-cart .woocommerce {
		display: grid;
		grid-template-columns: minmax(0, 1.4fr) minmax(300px, .78fr);
		gap: clamp(1.5rem, 3vw, 2.5rem);
		align-items: start;
	}

	body.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper {
		grid-column: 1 / -1;
	}

	body.woocommerce-cart .woocommerce-cart-form {
		grid-column: 1;
		min-width: 0;
	}

	body.woocommerce-cart .cart-collaterals {
		grid-column: 2;
		min-width: 0;
		position: sticky;
		top: calc(var(--pb-navh) + 1rem);
	}
}

body.woocommerce-cart .woocommerce-cart-form {
	margin: 0;
	padding: 0;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	background: var(--pb-white);
	box-shadow: var(--pb-shadow);
	overflow: hidden;
}

body.woocommerce-cart .woocommerce-cart-form .shop_table {
	margin: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	overflow: visible;
}

body.woocommerce-cart .woocommerce-cart-form .shop_table thead th {
	background: var(--pb-wash);
	font-size: .8125rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--pb-ink-soft);
}

body.woocommerce-cart .woocommerce-cart-form .shop_table td {
	border-top-color: var(--pb-line-soft);
}

body.woocommerce-cart .woocommerce-cart-form .product-thumbnail img {
	width: 88px;
	height: 88px;
	object-fit: contain;
	border-radius: var(--pb-radius-sm);
	background: var(--pb-wash);
	padding: 8px;
	display: block;
	transition: transform .2s ease;
}

body.woocommerce-cart .woocommerce-cart-form tr:hover .product-thumbnail img {
	transform: scale(1.03);
}

body.woocommerce-cart .woocommerce-cart-form .product-name a {
	font-weight: 700;
	font-size: 1rem;
	letter-spacing: var(--pb-tight);
	color: var(--pb-ink);
	text-decoration: none;
}

body.woocommerce-cart .woocommerce-cart-form .product-name a:hover {
	color: var(--pb-ink);
	text-decoration: underline;
	text-decoration-color: var(--pb-yellow);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

body.woocommerce-cart .woocommerce-cart-form .product-name .variation,
body.woocommerce-cart .woocommerce-cart-form .product-name dl.variation {
	margin: .4rem 0 0;
	font-size: .8125rem;
	color: var(--pb-ink-soft);
}

.pb-item-meta {
	display: grid;
	gap: .28rem;
	margin: .5rem 0 0;
	padding: 0;
}

.pb-item-meta__row {
	display: grid;
	grid-template-columns: minmax(4.5rem, 7.5rem) minmax(0, 1fr);
	gap: .35rem .75rem;
	align-items: baseline;
}

.pb-item-meta dt,
.pb-item-meta dd {
	margin: 0;
	padding: 0;
	float: none;
	display: block;
}

.pb-item-meta dt {
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: uppercase;
	color: var(--pb-muted);
}

.pb-item-meta dd {
	font-size: .8125rem;
	font-weight: 600;
	color: var(--pb-ink);
	line-height: 1.4;
}

.pb-item-meta dd p {
	margin: 0;
}

body.woocommerce-cart .woocommerce-cart-form .product-price,
body.woocommerce-cart .woocommerce-cart-form .product-subtotal {
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

body.woocommerce-cart .woocommerce-cart-form .product-subtotal {
	font-size: 1.0625rem;
	letter-spacing: var(--pb-tight);
}

body.woocommerce-cart .woocommerce-cart-form .product-remove .remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: var(--pb-pill);
	border: 1px solid var(--pb-line);
	background: var(--pb-white);
	color: var(--pb-ink-soft);
	font-size: 1.25rem;
	line-height: 1;
	text-decoration: none;
	transition: border-color .15s ease, color .15s ease, background-color .15s ease;
}

body.woocommerce-cart .woocommerce-cart-form .product-remove .remove:hover {
	border-color: #ee4242;
	color: #ee4242;
	background: #fff5f5;
}

body.woocommerce-cart .woocommerce-cart-form .quantity .qty {
	width: 4.5rem;
	min-height: 44px;
	text-align: center;
	padding: .5rem .4rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius-sm);
	background: var(--pb-wash);
	font-weight: 600;
}

body.woocommerce-cart .woocommerce-cart-form td.actions {
	padding: 1.15rem 1.25rem;
	background: var(--pb-wash);
	border-top: 1px solid var(--pb-line);
}

body.woocommerce-cart .woocommerce-cart-form .coupon {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .65rem;
	float: left;
	margin: 0;
	padding: .35rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-pill);
	background: var(--pb-white);
}

body.woocommerce-cart .woocommerce-cart-form .coupon label {
	display: none;
}

body.woocommerce-cart .woocommerce-cart-form .coupon .input-text {
	width: auto;
	min-width: 11rem;
	flex: 1 1 10rem;
	min-height: 40px;
	padding: .55rem .95rem;
	border: 0;
	border-radius: var(--pb-pill);
	background: transparent;
	color: var(--pb-ink);
	box-shadow: none;
}

body.woocommerce-cart .woocommerce-cart-form .coupon .input-text:focus {
	outline: 0;
	box-shadow: none;
}

body.woocommerce-cart .woocommerce-cart-form .coupon .button,
body.woocommerce-cart .woocommerce-cart-form button[name="update_cart"] {
	min-height: 40px;
	padding: .55rem 1.15rem;
	border-radius: var(--pb-pill);
	border: 1px solid var(--pb-line);
	background: var(--pb-white);
	color: var(--pb-ink);
	box-shadow: none;
	transition: border-color .15s ease, background-color .15s ease;
}

body.woocommerce-cart .woocommerce-cart-form .coupon .button {
	border-color: transparent;
	background: var(--pb-wash);
}

body.woocommerce-cart .woocommerce-cart-form .coupon .button:hover,
body.woocommerce-cart .woocommerce-cart-form button[name="update_cart"]:hover {
	border-color: var(--pb-ink);
	background: var(--pb-white);
	color: var(--pb-ink);
}

body.woocommerce-cart .woocommerce-cart-form button[name="update_cart"] {
	float: right;
}

body.woocommerce-cart .cart-collaterals {
	width: 100%;
}

body.woocommerce-cart .cart-collaterals .cart_totals {
	width: 100%;
	margin: 0;
	padding: 0;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	background: var(--pb-white);
	box-shadow: var(--pb-shadow);
	overflow: hidden;
}

body.woocommerce-cart .cart-collaterals .cart_totals > h2 {
	margin: 0;
	padding: 1.25rem 1.4rem 1rem;
	font-size: 1.2rem;
	letter-spacing: var(--pb-tight);
	border-bottom: 1px solid var(--pb-line-soft);
}

body.woocommerce-cart .cart-collaterals .cart_totals .shop_table {
	border: 0;
	border-radius: 0;
	margin: 0;
	padding: 0 1.4rem;
	overflow: visible;
	background: transparent;
}

body.woocommerce-cart .cart-collaterals .cart_totals .shop_table th,
body.woocommerce-cart .cart-collaterals .cart_totals .shop_table td {
	padding: .85rem 0;
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--pb-line-soft);
}

body.woocommerce-cart .cart-collaterals .cart_totals .shop_table tr:last-child th,
body.woocommerce-cart .cart-collaterals .cart_totals .shop_table tr:last-child td {
	border-bottom: 0;
}

body.woocommerce-cart .cart-collaterals .cart_totals .order-total th,
body.woocommerce-cart .cart-collaterals .cart_totals .order-total td {
	padding-top: 1.05rem;
	font-size: 1.125rem;
	letter-spacing: var(--pb-tight);
}

body.woocommerce-cart .cart-collaterals .cart_totals .order-total .amount {
	font-weight: 800;
}

body.woocommerce-cart .wc-proceed-to-checkout {
	padding: 0 1.4rem 1.4rem;
	margin: 0;
}

body.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
body.woocommerce-cart a.checkout-button.button.alt {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: .95rem 1.4rem;
	margin: 0;
	border-radius: var(--pb-pill);
	border: 1px solid var(--pb-yellow-btn);
	background: var(--pb-yellow-btn);
	color: #1c1c1c;
	font-size: 1rem;
	font-weight: 700;
	box-shadow: 0 8px 22px -12px rgba(223, 169, 0, .8);
	text-decoration: none;
	transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease,
		transform .18s ease;
}

body.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
body.woocommerce-cart a.checkout-button.button.alt:hover {
	background: var(--pb-yellow-btn-hover);
	border-color: var(--pb-yellow-btn-hover);
	color: #000;
	box-shadow: 0 12px 28px -12px rgba(223, 169, 0, .9);
}

body.woocommerce-cart .wc-proceed-to-checkout .checkout-button:active,
body.woocommerce-cart a.checkout-button.button.alt:active {
	transform: translateY(1px);
}

/* Invision / Bootstrap leftovers on cart when those templates are active */
body.woocommerce-cart .shop-table-item-title,
body.woocommerce-cart .shop-table-item-title a,
body.woocommerce-checkout .shop-table-item .shop-table-item-title,
body.woocommerce-checkout .card-header,
body.woocommerce-checkout .card-header h3 {
	color: var(--pb-ink);
}

body.woocommerce-cart .shop-table-item,
body.woocommerce-checkout .shop-table-item {
	border-bottom-color: var(--pb-line-soft);
}

body.woocommerce-cart a.btn.btn-outline-default.btn-lg,
body.woocommerce-cart .coupon.input-group.input-group-sm button {
	background: var(--pb-yellow-btn);
	border-radius: var(--pb-pill);
	border-color: var(--pb-yellow-btn);
	color: #1c1c1c;
}

body.woocommerce-cart a.btn.btn-outline-default.btn-lg:hover,
body.woocommerce-cart .coupon.input-group.input-group-sm button:hover {
	background: var(--pb-yellow-btn-hover);
	border-color: var(--pb-yellow-btn-hover);
}

body.woocommerce-cart .coupon.input-group.input-group-sm input[type="text"] {
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	color: var(--pb-ink);
}

/* --- Checkout coupon / login notices above the form --- */

body.woocommerce-checkout .woocommerce-form-login-toggle,
body.woocommerce-checkout .woocommerce-form-coupon-toggle {
	margin-bottom: .65rem;
}

body.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	background: transparent;
	border: 0;
	border-left: 0;
	box-shadow: none;
	padding: .15rem 0;
	font-size: .8125rem;
	color: var(--pb-ink-soft);
}

body.woocommerce-checkout form.checkout_coupon,
body.woocommerce-checkout form.woocommerce-form-login {
	margin: 0 0 1rem;
	padding: .85rem 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

body.woocommerce-checkout form.checkout_coupon .form-row,
body.woocommerce-checkout form.woocommerce-form-login .form-row {
	margin-bottom: .75rem;
}

body.woocommerce-checkout form.checkout_coupon .button,
body.woocommerce-checkout form.woocommerce-form-login .button {
	min-height: 44px;
	padding: .65rem 1.2rem;
	border-radius: var(--pb-pill);
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	color: var(--pb-ink);
	box-shadow: none;
}

body.woocommerce-checkout form.checkout_coupon .button:hover,
body.woocommerce-checkout form.woocommerce-form-login .button:hover {
	border-color: var(--pb-ink);
	background: var(--pb-white);
	color: var(--pb-ink);
}

/* --- Checkout two-column layout --- */

@media (min-width: 960px) {
	body.woocommerce-checkout form.checkout.woocommerce-checkout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(340px, .98fr);
		column-gap: clamp(1.75rem, 3.5vw, 3rem);
		row-gap: 1.25rem;
		align-items: start;
	}

	body.woocommerce-checkout form.checkout #customer_details {
		grid-column: 1;
		grid-row: 1 / span 8;
	}

	body.woocommerce-checkout form.checkout #order_review_heading {
		grid-column: 2;
		grid-row: 1;
		margin: 0;
	}

	body.woocommerce-checkout form.checkout #order_review {
		grid-column: 2;
		grid-row: 2;
		position: static;
		max-height: none;
	}

	/* Billing + notes stack in the left column (not WC’s half-width floats). */
	body.woocommerce-checkout form.checkout #customer_details.col2-set::before,
	body.woocommerce-checkout form.checkout #customer_details.col2-set::after {
		content: none;
		display: none;
	}

	body.woocommerce-checkout form.checkout #customer_details.col2-set {
		display: flex;
		flex-direction: column;
		gap: 1.25rem;
		width: 100%;
		float: none;
	}

	body.woocommerce-checkout form.checkout #customer_details .col-1,
	body.woocommerce-checkout form.checkout #customer_details .col-2 {
		width: 100%;
		float: none;
		max-width: none;
		padding: 0;
		margin: 0;
	}
}

body.woocommerce-checkout .woocommerce-billing-fields,
body.woocommerce-checkout .woocommerce-shipping-fields {
	margin: 0;
	padding: 1.1rem 1.15rem 1rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	background: var(--pb-white);
	box-shadow: var(--pb-shadow);
}

/* Notes sit in the billing card. Hide leftover additional-fields chrome (empty h3 / attribution). */
body.woocommerce-checkout .woocommerce-additional-fields {
	display: none !important;
}

/* Empty shipping wrapper still gets card chrome and sat above the notes. */
body.woocommerce-checkout .woocommerce-shipping-fields:not(:has(#ship-to-different-address)):not(:has(.shipping_address)) {
	display: none !important;
}

body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-shipping-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3,
body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper + h3 {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: 0 0 .55rem;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: var(--pb-tight);
	color: var(--pb-ink);
}

body.woocommerce-checkout .woocommerce-billing-fields h3::before,
body.woocommerce-checkout .woocommerce-shipping-fields h3::before,
body.woocommerce-checkout .woocommerce-additional-fields h3::before,
body.woocommerce-checkout #order_review_heading::before {
	content: "";
	width: .55rem;
	height: 1.15em;
	border-radius: 999px;
	background: var(--pb-yellow);
	flex: 0 0 auto;
}

body.woocommerce-checkout #ship-to-different-address {
	margin: 0 0 1rem;
	font-size: 1rem;
}

body.woocommerce-checkout #ship-to-different-address label {
	display: flex;
	align-items: center;
	gap: .55rem;
	font-weight: 600;
	cursor: pointer;
}

body.woocommerce-checkout .woocommerce-shipping-fields .shipping_address {
	margin-top: .25rem;
}

/* Country / state Select2 — compact 38px, full styles later in checkout fields */

/* Order summary card */
body.woocommerce-checkout #order_review_heading {
	padding: .15rem 0 .35rem;
}

body.woocommerce-checkout #order_review {
	margin: 0;
	padding: 0;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	background: var(--pb-white);
	box-shadow: var(--pb-shadow);
	overflow: visible;
}

body.woocommerce-checkout #order_review .shop_table {
	border: 0;
	border-radius: 0;
	margin: 0;
	overflow: visible;
	background: transparent;
}

body.woocommerce-checkout #order_review .shop_table thead th {
	background: var(--pb-wash);
	border-bottom: 1px solid var(--pb-line);
	font-size: .8125rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--pb-ink-soft);
}

body.woocommerce-checkout #order_review .shop_table th,
body.woocommerce-checkout #order_review .shop_table td {
	padding: .55rem .85rem;
	vertical-align: middle;
}

body.woocommerce-checkout #order_review .shop_table tbody td.product-name {
	width: 68%;
}

body.woocommerce-checkout #order_review .shop_table tbody td.product-total {
	width: 32%;
	text-align: right;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	padding-top: .55rem;
}

body.woocommerce-checkout #order_review .shop_table tbody tr:hover td {
	background: rgba(255, 246, 218, .45);
}

body.woocommerce-checkout #order_review .shop_table tfoot th,
body.woocommerce-checkout #order_review .shop_table tfoot td {
	background: transparent;
	border-top: 1px solid var(--pb-line-soft);
}

body.woocommerce-checkout #order_review .shop_table .order-total th,
body.woocommerce-checkout #order_review .shop_table .order-total td {
	font-size: 1.125rem;
	letter-spacing: var(--pb-tight);
	background: var(--pb-wash-warm);
}

body.woocommerce-checkout #order_review .shop_table .order-total .amount {
	font-weight: 800;
}

/* Payment methods (Mollie + core radios) — always in normal flow */
body.woocommerce-checkout #payment,
body.woocommerce-checkout .woocommerce-checkout-payment {
	display: block;
	visibility: visible;
	opacity: 1;
	margin: 0;
	padding: .9rem .85rem 1rem;
	background: var(--pb-wash);
	border: 0;
	border-top: 1px solid var(--pb-line);
	border-radius: 0;
}

body.woocommerce-checkout #payment ul.payment_methods,
body.woocommerce-checkout #payment ul.wc_payment_methods {
	display: block;
	list-style: none;
	margin: 0 0 .85rem;
	padding: 0;
	border: 0;
}

body.woocommerce-checkout #payment ul.payment_methods li,
body.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method {
	margin: 0 0 .5rem;
	padding: .9rem 1rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius-sm);
	background: var(--pb-white);
	list-style: none;
	transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

body.woocommerce-checkout #payment ul.payment_methods li:last-child,
body.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method:last-child {
	margin-bottom: 0;
}

body.woocommerce-checkout #payment ul.payment_methods li:hover,
body.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method:hover {
	border-color: rgba(223, 169, 0, .45);
}

body.woocommerce-checkout #payment ul.payment_methods li:has(> input.input-radio:checked),
body.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method:has(> input.input-radio:checked) {
	border-color: var(--pb-yellow-deep);
	background: var(--pb-wash-warm);
	box-shadow: 0 0 0 3px rgba(255, 199, 47, .2);
}

body.woocommerce-checkout #payment ul.payment_methods li > input.input-radio,
body.woocommerce-checkout #payment ul.wc_payment_methods li > input.input-radio {
	margin: .35rem .7rem 0 0;
	float: left;
	width: 1.25rem;
	height: 1.25rem;
	accent-color: var(--pb-yellow-deep);
}

body.woocommerce-checkout #payment ul.payment_methods li > label,
body.woocommerce-checkout #payment ul.wc_payment_methods li > label {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .5rem .75rem;
	margin: 0;
	min-height: 1.5rem;
	font-size: .9375rem;
	font-weight: 700;
	cursor: pointer;
	line-height: 1.35;
}

body.woocommerce-checkout #payment ul.payment_methods li > label img,
body.woocommerce-checkout #payment ul.wc_payment_methods li > label img,
body.woocommerce-checkout #payment .mollie-gateway-icon {
	max-height: 28px;
	width: auto;
	vertical-align: middle;
}

body.woocommerce-checkout #payment div.payment_box {
	margin: .85rem 0 0;
	padding: .85rem 1rem;
	border-radius: var(--pb-radius-sm);
	background: var(--pb-wash-warm);
	border: 1px solid var(--pb-line-soft);
	color: var(--pb-ink-soft);
	font-size: .875rem;
	line-height: 1.5;
}

body.woocommerce-checkout #payment div.payment_box::before {
	display: none;
}

body.woocommerce-checkout #payment div.payment_box p {
	margin: 0;
}

.pb-account-instructions {
	margin: 1rem 0 0;
	padding: .85rem 1rem;
	border-radius: var(--pb-radius-sm);
	background: var(--pb-wash-warm);
	border: 1px solid var(--pb-line-soft);
	color: var(--pb-ink-soft);
	font-size: .875rem;
	line-height: 1.5;
}

.pb-account-instructions p {
	margin: 0;
}

body.woocommerce-checkout #payment .place-order {
	margin: 0;
	padding: 0;
	float: none;
	width: 100%;
}

body.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper,
body.woocommerce-checkout #payment .woocommerce-privacy-policy-text {
	margin: 0 0 1rem;
	font-size: .875rem;
	line-height: 1.55;
	color: var(--pb-ink-soft);
}

body.woocommerce-checkout #payment .woocommerce-privacy-policy-text a,
body.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper a {
	color: var(--pb-ink);
	text-decoration: underline;
	text-decoration-color: var(--pb-yellow);
	text-decoration-thickness: 2px;
	text-underline-offset: 2px;
}

body.woocommerce-checkout #payment .woocommerce-terms-and-conditions-checkbox-text {
	font-size: .875rem;
	line-height: 1.4;
	flex: 1 1 auto;
}

body.woocommerce-checkout #payment #place_order,
body.woocommerce-checkout #payment .place-order #place_order {
	display: flex;
	visibility: visible;
	width: 100%;
	max-width: none;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	margin: 0;
	padding: .75rem 1.15rem;
	float: none;
	border-radius: var(--pb-pill);
	border: 1px solid var(--pb-yellow-btn);
	background: var(--pb-yellow-btn);
	color: #1c1c1c;
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: var(--pb-tight);
	box-shadow: 0 10px 26px -12px rgba(223, 169, 0, .85);
	transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease,
		transform .18s ease;
}

body.woocommerce-checkout #payment #place_order:hover,
body.woocommerce-checkout #payment .place-order #place_order:hover {
	background: var(--pb-yellow-btn-hover);
	border-color: var(--pb-yellow-btn-hover);
	color: #000;
	box-shadow: 0 12px 28px -12px rgba(223, 169, 0, .9);
}

body.woocommerce-checkout #payment #place_order:active,
body.woocommerce-checkout #payment .place-order #place_order:active {
	transform: translateY(1px);
}

/* --- Checkout review products + payment heading --- */

.pb-checkout-pay-title {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: 0;
	padding: .7rem .85rem 0;
	font-size: .9375rem;
	letter-spacing: var(--pb-tight);
	color: var(--pb-ink);
	background: var(--pb-wash);
	border-top: 1px solid var(--pb-line);
}

.pb-checkout-pay-title::before {
	content: "";
	width: .45rem;
	height: 1em;
	border-radius: 999px;
	background: var(--pb-yellow);
	flex: 0 0 auto;
}

body.woocommerce-checkout.pb-quote-checkout #payment ul.payment_methods li > input.input-radio,
body.woocommerce-checkout.pb-quote-checkout #payment ul.wc_payment_methods li > input.input-radio {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

body.woocommerce-checkout.pb-quote-checkout #payment ul.payment_methods li,
body.woocommerce-checkout.pb-quote-checkout #payment ul.wc_payment_methods li.wc_payment_method {
	padding: 0;
	border: 0;
	background: transparent;
}

body.woocommerce-checkout.pb-quote-checkout #payment ul.payment_methods li > label,
body.woocommerce-checkout.pb-quote-checkout #payment ul.wc_payment_methods li > label {
	display: none;
}

.pb-review-product {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
	min-width: 0;
}

.pb-review-product__media {
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	border-radius: var(--pb-radius-sm);
	background: var(--pb-wash);
	overflow: hidden;
}

.pb-review-product__img,
.pb-review-product__media img {
	display: block;
	width: 48px;
	height: 48px;
	object-fit: contain;
	padding: 4px;
	background: var(--pb-wash);
}

.pb-review-product__body {
	min-width: 0;
	flex: 1 1 auto;
}

.pb-review-product__title {
	display: block;
	margin: 0;
	font-size: .875rem;
	font-weight: 700;
	letter-spacing: var(--pb-tight);
	line-height: 1.3;
	color: var(--pb-ink);
	text-decoration: none;
}

a.pb-review-product__title:hover {
	color: var(--pb-ink);
	text-decoration: underline;
	text-decoration-color: var(--pb-yellow);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

body.woocommerce-checkout .pb-review-product .pb-item-meta {
	display: block;
	margin: .12rem 0 0;
	max-height: 2.55em;
	overflow: hidden;
	line-height: 1.3;
}

body.woocommerce-checkout .pb-review-product .pb-item-meta__row {
	display: inline;
	grid-template-columns: none;
	gap: 0;
}

body.woocommerce-checkout .pb-review-product .pb-item-meta dt,
body.woocommerce-checkout .pb-review-product .pb-item-meta dd {
	display: inline;
	font-size: .75rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: var(--pb-ink-soft);
}

body.woocommerce-checkout .pb-review-product .pb-item-meta dt::after {
	content: ": ";
}

body.woocommerce-checkout .pb-review-product .pb-item-meta__row:not(:last-child) dd::after {
	content: " · ";
	font-weight: 400;
	color: var(--pb-muted);
}

.pb-review-line-total {
	display: inline-flex;
	align-items: baseline;
	justify-content: flex-end;
	gap: .3rem;
	white-space: nowrap;
}

.pb-review-qty {
	font-size: .75rem;
	font-weight: 600;
	color: var(--pb-muted);
}

.pb-checkout-trust-line {
	margin: .65rem 0 0;
	padding: 0;
	text-align: center;
	font-size: .75rem;
	line-height: 1.4;
	color: var(--pb-muted);
}

/* --- Quote + paid thank-you (order-received) --- */

body.woocommerce-order-received.pb-quote-thankyou .content-wrap,
body.woocommerce-order-received.pb-paid-thankyou .content-wrap {
	padding-top: 1rem;
}

body.woocommerce-order-received .page-hero--checkout {
	padding: .85rem 0 1.1rem;
}

body.woocommerce-order-received .page-hero--checkout h1 {
	max-width: none;
}

body.woocommerce-order-received .page-hero--checkout .page-hero__intro {
	margin: .35rem 0 0;
	max-width: 66ch;
	font-size: 1rem;
}

body.woocommerce-order-received .page-hero--checkout .pb-commerce-steps {
	margin-top: .9rem;
}

body.woocommerce-order-received .woocommerce-order,
body.woocommerce-order-received .pb-order-received-wrap,
body.woocommerce-order-received .pb-quote-received-wrap {
	width: 100%;
	max-width: none;
}

body.woocommerce-order-received.pb-quote-thankyou .woocommerce-thankyou-order-received,
body.woocommerce-order-received.pb-quote-thankyou .woocommerce-order-overview,
body.woocommerce-order-received.pb-quote-thankyou .woocommerce-order-details,
body.woocommerce-order-received.pb-quote-thankyou .woocommerce-customer-details,
body.woocommerce-order-received.pb-quote-thankyou .woocommerce-order-details__title,
body.woocommerce-order-received.pb-quote-thankyou #payment,
body.woocommerce-order-received.pb-quote-thankyou .wc-bacs-bank-details,
body.woocommerce-order-received.pb-quote-thankyou .woocommerce-notice--success:empty,
body.woocommerce-order-received.pb-paid-thankyou .woocommerce-thankyou-order-received,
body.woocommerce-order-received.pb-paid-thankyou .woocommerce-order-overview,
body.woocommerce-order-received.pb-paid-thankyou .woocommerce-order-details,
body.woocommerce-order-received.pb-paid-thankyou .woocommerce-customer-details,
body.woocommerce-order-received.pb-paid-thankyou .woocommerce-order-details__title,
body.woocommerce-order-received.pb-paid-thankyou .woocommerce-table--order-details,
body.woocommerce-order-received.pb-paid-thankyou .shop_table.order_details,
body.woocommerce-order-received.pb-paid-thankyou .pb-account-instructions,
body.woocommerce-order-received.pb-paid-thankyou .woocommerce-notice--success:empty {
	display: none !important;
}

body.woocommerce-order-received .woocommerce-order-details > h2,
body.woocommerce-order-received .woocommerce-order-details__title,
body.woocommerce-order-received .woocommerce-customer-details h2 {
	display: none !important;
}

body.woocommerce-order-received.pb-quote-thankyou,
body.woocommerce-order-received.pb-quote-thankyou h1,
body.woocommerce-order-received.pb-quote-thankyou h2,
body.woocommerce-order-received.pb-quote-thankyou h3,
body.woocommerce-order-received.pb-quote-thankyou p,
body.woocommerce-order-received.pb-quote-thankyou td,
body.woocommerce-order-received.pb-quote-thankyou th,
body.woocommerce-order-received.pb-quote-thankyou dt,
body.woocommerce-order-received.pb-quote-thankyou dd {
	color: var(--pb-ink);
}

body.woocommerce-order-received.pb-quote-thankyou h2,
body.woocommerce-order-received.pb-quote-thankyou h3,
body.woocommerce-order-received.pb-paid-thankyou h2,
body.woocommerce-order-received.pb-paid-thankyou h3 {
	font-weight: 700;
	text-transform: none;
	letter-spacing: var(--pb-tight);
	color: var(--pb-ink);
}

.pb-quote-received,
.pb-order-received {
	display: flex;
	flex-direction: column;
	gap: .75rem;
	width: 100%;
	max-width: none;
}

.pb-quote-received__main,
.pb-order-received__main {
	min-width: 0;
	width: 100%;
}

.pb-order-received__aside {
	display: flex;
	flex-direction: column;
	gap: .75rem;
	min-width: 0;
	width: 100%;
}

.pb-quote-received__card,
.pb-order-received__card {
	margin: 0;
	padding: 1.1rem 1.15rem 1rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	background: var(--pb-white);
	box-shadow: var(--pb-shadow);
}

.pb-order-received__card--quiet {
	box-shadow: none;
	background: var(--pb-wash-warm);
	border-color: var(--pb-line-soft);
}

.pb-quote-received__title,
.pb-order-received__title {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: 0 0 1rem;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: var(--pb-tight);
	color: var(--pb-ink);
	text-transform: none;
}

.pb-quote-received__title::before,
.pb-order-received__title::before {
	content: "";
	width: .55rem;
	height: 1.15em;
	border-radius: 999px;
	background: var(--pb-yellow);
	flex: 0 0 auto;
}

.pb-quote-received__facts,
.pb-order-received__facts {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: .7rem;
	margin: 0 0 1.15rem;
	padding: 0 0 1.05rem;
	border-bottom: 1px solid var(--pb-line-soft);
}

.pb-quote-received__fact,
.pb-order-received__fact {
	min-width: 0;
}

.pb-quote-received__fact.is-email,
.pb-order-received__fact.is-email {
	min-width: min(100%, 16rem);
}

.pb-quote-received__facts dt,
.pb-order-received__facts dt {
	margin: 0 0 .2rem;
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: none;
	color: var(--pb-muted);
}

.pb-quote-received__facts dd,
.pb-order-received__facts dd {
	margin: 0;
	font-size: .9375rem;
	font-weight: 700;
	color: var(--pb-ink);
	overflow-wrap: anywhere;
	word-break: break-word;
}

.pb-quote-received__fact.is-email dd,
.pb-order-received__fact.is-email dd {
	overflow-wrap: anywhere;
	word-break: break-word;
}

.pb-quote-received__products-title,
.pb-order-received__products-title {
	margin: 0 0 .65rem;
	font-size: .9375rem;
	font-weight: 700;
	letter-spacing: var(--pb-tight);
	color: var(--pb-ink);
	text-transform: none;
}

.pb-quote-received__items,
.pb-order-received__items {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius-sm);
	overflow: hidden;
	background: var(--pb-white);
}

.pb-quote-received__item,
.pb-order-received__item {
	padding: .75rem .85rem;
	border-bottom: 1px solid var(--pb-line-soft);
}

.pb-quote-received__item:last-child,
.pb-order-received__item:last-child {
	border-bottom: 0;
}

.pb-order-received__item {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: .85rem;
}

.pb-order-received__item .pb-review-product {
	flex: 1 1 auto;
	min-width: 0;
}

.pb-order-received__line-total {
	flex: 0 0 auto;
	margin: .15rem 0 0;
	font-size: .9375rem;
	font-weight: 700;
	color: var(--pb-ink);
	white-space: nowrap;
}

.pb-quote-received .pb-review-product,
.pb-order-received .pb-review-product {
	align-items: center;
}

.pb-quote-received .pb-review-product__qty,
.pb-order-received .pb-review-product__qty {
	display: inline-block;
	margin-left: .35rem;
	font-size: .75rem;
	font-weight: 600;
	color: var(--pb-muted);
}

.pb-quote-received .pb-item-meta,
.pb-order-received .pb-item-meta {
	display: block;
	margin: .2rem 0 0;
	line-height: 1.35;
}

.pb-quote-received .pb-item-meta__row,
.pb-order-received .pb-item-meta__row {
	display: inline;
}

.pb-quote-received .pb-item-meta dt,
.pb-quote-received .pb-item-meta dd,
.pb-order-received .pb-item-meta dt,
.pb-order-received .pb-item-meta dd {
	display: inline;
	font-size: .75rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: var(--pb-ink-soft);
}

.pb-quote-received .pb-item-meta dt::after,
.pb-order-received .pb-item-meta dt::after {
	content: ": ";
}

.pb-quote-received .pb-item-meta__row:not(:last-child) dd::after,
.pb-order-received .pb-item-meta__row:not(:last-child) dd::after {
	content: " · ";
	font-weight: 400;
	color: var(--pb-muted);
}

.pb-order-received__totals {
	display: grid;
	gap: .45rem 1rem;
	margin: .9rem 0 0;
	padding: .85rem 0 0;
	border-top: 1px solid var(--pb-line-soft);
}

.pb-order-received__total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin: 0;
}

.pb-order-received__totals dt {
	margin: 0;
	font-size: .8125rem;
	font-weight: 600;
	color: var(--pb-muted);
	text-transform: none;
}

.pb-order-received__totals dd {
	margin: 0;
	font-size: .875rem;
	font-weight: 700;
	color: var(--pb-ink);
}

.pb-order-received__total.is-grand dt,
.pb-order-received__total.is-grand dd {
	font-size: .9375rem;
	font-weight: 700;
	color: var(--pb-ink);
}

.pb-order-received__note {
	margin: .85rem 0 0;
	font-size: .8125rem;
	line-height: 1.45;
	color: var(--pb-ink-soft);
}

.pb-order-received__address-title {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: 0 0 .55rem;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: var(--pb-tight);
	color: var(--pb-ink);
	text-transform: none;
}

.pb-order-received__address-title::before {
	content: "";
	width: .55rem;
	height: 1.15em;
	border-radius: 999px;
	background: var(--pb-yellow);
	flex: 0 0 auto;
}

.pb-order-received__address {
	display: block;
	margin: 0;
	font-style: normal;
	font-size: .875rem;
	line-height: 1.5;
	color: var(--pb-ink-soft);
}

.pb-order-received__phone {
	display: block;
	margin-top: .25rem;
}

.pb-order-received__address-same {
	margin: .7rem 0 0;
	font-size: .8125rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--pb-muted);
}

@media (min-width: 768px) {
	.pb-quote-received:has(.pb-order-received__aside),
	.pb-order-received:has(.pb-order-received__aside) {
		display: grid;
		grid-template-columns: minmax(0, 1.55fr) minmax(16.5rem, 1fr);
		column-gap: clamp(1.25rem, 2.5vw, 2.25rem);
		row-gap: 1.25rem;
		align-items: start;
	}

	.pb-quote-received__facts,
	.pb-order-received__facts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: .85rem 1.5rem;
	}

	.pb-quote-received__fact.is-email,
	.pb-order-received__fact.is-email {
		grid-column: 1 / -1;
	}
}

body.woocommerce-checkout .woocommerce-account-fields {
	margin-top: 1.15rem;
	padding-top: 1.1rem;
	border-top: 1px solid var(--pb-line-soft);
}

body.woocommerce-checkout .woocommerce-account-fields .form-row {
	margin-bottom: 0;
}

body.woocommerce-checkout .woocommerce-account-fields label {
	display: flex;
	align-items: center;
	gap: .55rem;
	font-weight: 600;
	cursor: pointer;
}

body.woocommerce-checkout #payment .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: flex-start;
	gap: .45rem;
	cursor: pointer;
	font-size: .875rem;
	font-weight: 500;
	line-height: 1.4;
}

/* Native 16px box — beat checkout `p input` 38px/100% width and Invision padding. */
body.woocommerce-checkout #payment .woocommerce-form__label-for-checkbox input,
body.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper input[type="checkbox"],
body.woocommerce-checkout #payment #terms {
	-webkit-appearance: checkbox;
	appearance: auto;
	display: inline-block;
	flex: 0 0 1rem;
	width: 1rem !important;
	height: 1rem !important;
	min-width: 1rem !important;
	max-width: 1rem !important;
	min-height: 1rem !important;
	max-height: 1rem !important;
	margin: .15em 0 0;
	padding: 0 !important;
	vertical-align: top;
	box-sizing: border-box;
	border: 1px solid var(--pb-line) !important;
	border-radius: 3px !important;
	background: var(--pb-white) !important;
	box-shadow: none !important;
	transform: none !important;
	accent-color: var(--pb-yellow-deep);
}

body.woocommerce-checkout #order_review .woocommerce-shipping-methods {
	list-style: none;
	margin: 0;
	padding: 0;
}

body.woocommerce-checkout #order_review .woocommerce-shipping-methods li {
	margin: 0 0 .35rem;
}

body.woocommerce-checkout #custom_upload_field,
body.woocommerce-checkout #wc_checkout_add_ons,
body.woocommerce-checkout .wc-checkout-add-ons {
	display: none !important;
}

/*
 * Checkout fields — beat Invision’s 48% ID floats + 2-col wrapper grid.
 * 10 tracks: names 5+5; NL postcode+huisnummer+toevoeging 4+3+3;
 * other countries postcode+city 4+6; wide fields span all.
 * Compact conversion fields: ~38px inputs, 10px row gap.
 */
body.woocommerce-checkout form.checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout form.checkout .woocommerce-shipping-fields__field-wrapper,
body.woocommerce-checkout form.checkout .woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(10, minmax(0, 1fr));
	column-gap: 10px;
	row-gap: 10px;
	width: 100%;
}

body.woocommerce-checkout form.checkout .woocommerce-billing-fields__field-wrapper .form-row,
body.woocommerce-checkout form.checkout .woocommerce-shipping-fields__field-wrapper .form-row,
body.woocommerce-checkout form.checkout .woocommerce-additional-fields__field-wrapper .form-row,
body.woocommerce-checkout form.checkout .woocommerce-account-fields .form-row,
body.woocommerce-checkout form.checkout p#billing_first_name_field,
body.woocommerce-checkout form.checkout p#billing_last_name_field,
body.woocommerce-checkout form.checkout p#billing_eu_vat_number_field,
body.woocommerce-checkout form.checkout p#billing_country_field,
body.woocommerce-checkout form.checkout p#billing_postcode_field,
body.woocommerce-checkout form.checkout p#billing_house_number_field,
body.woocommerce-checkout form.checkout p#billing_house_addition_field,
body.woocommerce-checkout form.checkout p#billing_city_field,
body.woocommerce-checkout form.checkout p#billing_phone_field,
body.woocommerce-checkout form.checkout p#billing_email_field,
body.woocommerce-checkout form.checkout p#shipping_first_name_field,
body.woocommerce-checkout form.checkout p#shipping_last_name_field,
body.woocommerce-checkout form.checkout p#shipping_country_field,
body.woocommerce-checkout form.checkout p#shipping_postcode_field,
body.woocommerce-checkout form.checkout p#shipping_house_number_field,
body.woocommerce-checkout form.checkout p#shipping_house_addition_field,
body.woocommerce-checkout form.checkout p#shipping_city_field {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	clear: none !important;
	margin: 0;
	padding: 0;
	min-width: 0;
	box-sizing: border-box;
}

body.woocommerce-checkout form.checkout .woocommerce-billing-fields__field-wrapper .form-row-wide,
body.woocommerce-checkout form.checkout .woocommerce-billing-fields__field-wrapper .form-row.notes,
body.woocommerce-checkout form.checkout .woocommerce-shipping-fields__field-wrapper .form-row-wide,
body.woocommerce-checkout form.checkout .woocommerce-additional-fields__field-wrapper .form-row,
body.woocommerce-checkout form.checkout .woocommerce-account-fields .form-row,
body.woocommerce-checkout form.checkout p#billing_company_field,
body.woocommerce-checkout form.checkout p#billing_eu_vat_number_field,
body.woocommerce-checkout form.checkout p#billing_country_field,
body.woocommerce-checkout form.checkout p#shipping_country_field,
body.woocommerce-checkout form.checkout p#billing_address_1_field,
body.woocommerce-checkout form.checkout p#billing_address_2_field,
body.woocommerce-checkout form.checkout p#billing_state_field,
body.woocommerce-checkout form.checkout p#billing_phone_field,
body.woocommerce-checkout form.checkout p#billing_email_field,
body.woocommerce-checkout form.checkout p#order_comments_field {
	grid-column: 1 / -1;
}

body.woocommerce-checkout form.checkout .woocommerce-billing-fields__field-wrapper .form-row-first,
body.woocommerce-checkout form.checkout .woocommerce-shipping-fields__field-wrapper .form-row-first,
body.woocommerce-checkout form.checkout p#billing_first_name_field,
body.woocommerce-checkout form.checkout p#shipping_first_name_field {
	grid-column: span 5;
}

body.woocommerce-checkout form.checkout .woocommerce-billing-fields__field-wrapper .form-row-last,
body.woocommerce-checkout form.checkout .woocommerce-shipping-fields__field-wrapper .form-row-last,
body.woocommerce-checkout form.checkout p#billing_last_name_field,
body.woocommerce-checkout form.checkout p#shipping_last_name_field {
	grid-column: span 5;
}

body.woocommerce-checkout form.checkout p#billing_postcode_field,
body.woocommerce-checkout form.checkout p#shipping_postcode_field {
	grid-column: span 4;
}

body.woocommerce-checkout form.checkout p#billing_city_field,
body.woocommerce-checkout form.checkout p#shipping_city_field {
	grid-column: span 6;
}

body.woocommerce-checkout form.checkout p#billing_house_number_field,
body.woocommerce-checkout form.checkout p#shipping_house_number_field,
body.woocommerce-checkout form.checkout p.pb-nl-huisnummer {
	grid-column: span 4;
}

body.woocommerce-checkout form.checkout p#billing_house_addition_field,
body.woocommerce-checkout form.checkout p#shipping_house_addition_field,
body.woocommerce-checkout form.checkout p.pb-nl-toevoeging {
	grid-column: span 2;
}

body.woocommerce-checkout form.checkout:not(.pb-nl-address) p#billing_house_number_field,
body.woocommerce-checkout form.checkout:not(.pb-nl-address) p#billing_house_addition_field,
body.woocommerce-checkout form.checkout .woocommerce-billing-fields:not(.pb-nl-address) p#billing_house_number_field,
body.woocommerce-checkout form.checkout .woocommerce-billing-fields:not(.pb-nl-address) p#billing_house_addition_field,
body.woocommerce-checkout form.checkout .woocommerce-shipping-fields:not(.pb-nl-address) p#shipping_house_number_field,
body.woocommerce-checkout form.checkout .woocommerce-shipping-fields:not(.pb-nl-address) p#shipping_house_addition_field,
body.woocommerce-checkout form.checkout:not(.pb-nl-address) p#billing_nl_lookup_status,
body.woocommerce-checkout form.checkout .woocommerce-shipping-fields:not(.pb-nl-address) p#shipping_nl_lookup_status {
	display: none !important;
}

body.woocommerce-checkout form.checkout.pb-nl-address p#billing_city_field,
body.woocommerce-checkout form.checkout .woocommerce-billing-fields.pb-nl-address p#billing_city_field,
body.woocommerce-checkout form.checkout .woocommerce-shipping-fields.pb-nl-address p#shipping_city_field {
	grid-column: 1 / -1;
}

body.woocommerce-checkout form.checkout.pb-nl-address p#billing_address_2_field,
body.woocommerce-checkout form.checkout.pb-nl-address p#billing_state_field,
body.woocommerce-checkout form.checkout.pb-nl-address p#billing_eu_vat_number_field,
body.woocommerce-checkout form.checkout .woocommerce-shipping-fields.pb-nl-address p#shipping_address_2_field,
body.woocommerce-checkout form.checkout .woocommerce-shipping-fields.pb-nl-address p#shipping_state_field {
	display: none !important;
}

body.woocommerce-checkout form.checkout p#billing_eu_vat_number_field,
body.woocommerce-checkout form.checkout p.alg-wc-eu-vat-field {
	grid-column: 1 / -1;
}

body.woocommerce-checkout form.checkout .alg-wc-eu-vat-progress,
body.woocommerce-checkout form.checkout .wpfactory-wc-eu-vat-validating,
body.woocommerce-checkout form.checkout .wpfactory-wc-eu-vat-valid,
body.woocommerce-checkout form.checkout .wpfactory-wc-eu-vat-not-valid,
body.woocommerce-checkout form.checkout .wpfactory-wc-eu-vat-validation-failed {
	grid-column: 1 / -1;
	font-size: .8125rem;
}

body.woocommerce-checkout form.checkout p.pb-nl-lookup-status {
	grid-column: 1 / -1;
	margin: -4px 0 0;
	min-height: 0;
	font-size: .75rem;
	line-height: 1.35;
	color: var(--pb-muted, #5c5346);
}

body.woocommerce-checkout form.checkout p.pb-nl-lookup-status.is-error {
	color: #8a2b1a;
}

body.woocommerce-checkout form.checkout p.pb-nl-lookup-status.is-ok {
	color: #2d6a3a;
}

body.woocommerce-checkout form.checkout .form-row .input-text.pb-nl-filled,
body.woocommerce-checkout form.checkout .form-row input.pb-nl-filled {
	background: var(--pb-wash, #f7f4ee) !important;
}

body.woocommerce-checkout form.checkout .form-row > label:not(.screen-reader-text):not(.woocommerce-form__label-for-checkbox) {
	display: block !important;
	position: static;
	width: 100%;
	font-size: .8125rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--pb-ink);
	margin: 0 0 4px;
	letter-spacing: 0;
}

body.woocommerce-checkout form.checkout .form-row > label .optional {
	font-size: .75rem;
	font-weight: 500;
}

body.woocommerce-checkout form.checkout .form-row .woocommerce-input-wrapper {
	display: block;
	width: 100%;
}

body.woocommerce-checkout form.checkout .form-row .input-text,
body.woocommerce-checkout form.checkout .form-row select:not(.select2-hidden-accessible),
body.woocommerce-checkout form.checkout .form-row textarea,
body.woocommerce-checkout form.checkout .form-row .woocommerce-input-wrapper .input-text,
body.woocommerce-checkout form.checkout .form-row .woocommerce-input-wrapper select:not(.select2-hidden-accessible),
body.woocommerce-checkout form.checkout .form-row .woocommerce-input-wrapper textarea,
body.woocommerce-checkout form.checkout p.form-row input.input-text,
body.woocommerce-checkout form.checkout p.form-row textarea,
body.woocommerce-checkout form.checkout p.form-row select:not(.select2-hidden-accessible) {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	min-height: 38px !important;
	height: 38px;
	padding: 10px 12px !important;
	font-family: inherit;
	font-size: .875rem !important;
	line-height: 1.25;
	-webkit-text-size-adjust: 100%;
}

body.woocommerce-checkout form.checkout .form-row textarea,
body.woocommerce-checkout form.checkout .form-row .woocommerce-input-wrapper textarea,
body.woocommerce-checkout form.checkout p.form-row textarea {
	min-height: 80px !important;
	height: auto;
	line-height: 1.4;
}

body.woocommerce-checkout form.checkout .form-row select:not(.select2-hidden-accessible),
body.woocommerce-checkout form.checkout .form-row .woocommerce-input-wrapper select:not(.select2-hidden-accessible),
body.woocommerce-checkout form.checkout p.form-row select:not(.select2-hidden-accessible) {
	-webkit-appearance: none;
	appearance: none;
	background-color: var(--pb-white) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2315171b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.6' d='M4 6.2L8 10l4-3.8'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 12px center !important;
	background-size: 16px 16px !important;
	padding-right: 2.25rem !important;
}

body.woocommerce-checkout form.checkout .form-row select.select2-hidden-accessible,
body.woocommerce-checkout form.checkout .woocommerce-input-wrapper select.select2-hidden-accessible,
body.woocommerce-checkout select.select2-hidden-accessible {
	position: absolute !important;
	width: 1px !important;
	max-width: 1px !important;
	min-height: 0 !important;
	height: 1px !important;
	padding: 0 !important;
	margin: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	border: 0 !important;
	background: transparent !important;
	white-space: nowrap !important;
}

body.woocommerce-checkout form.checkout .select2-container,
body.woocommerce-checkout form.checkout .woocommerce-input-wrapper .select2-container,
body.woocommerce-checkout form.checkout p#billing_country_field .select2-container,
body.woocommerce-checkout form.checkout p#shipping_country_field .select2-container {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: 38px !important;
	margin: 0 !important;
	vertical-align: top;
}

body.woocommerce-checkout form.checkout .select2-container .selection {
	display: block;
	width: 100%;
	height: 38px;
}

body.woocommerce-checkout form.checkout .select2-container .select2-selection--single,
body.woocommerce-checkout form.checkout .select2-container--default .select2-selection--single,
body.woocommerce-checkout .select2-container--default .select2-selection--single {
	display: block !important;
	box-sizing: border-box !important;
	width: 100% !important;
	min-height: 38px !important;
	height: 38px !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden;
	background: var(--pb-white) !important;
	border: 1px solid var(--pb-line) !important;
	border-radius: var(--pb-radius-sm) !important;
	box-shadow: none !important;
	outline: 0;
}

body.woocommerce-checkout form.checkout .select2-container--focus .select2-selection--single,
body.woocommerce-checkout form.checkout .select2-container--open .select2-selection--single,
body.woocommerce-checkout .select2-container--focus .select2-selection--single,
body.woocommerce-checkout .select2-container--open .select2-selection--single {
	border-color: var(--pb-ink) !important;
	box-shadow: 0 0 0 3px rgba(255, 199, 47, .28) !important;
}

body.woocommerce-checkout form.checkout .select2-container--default .select2-selection--single .select2-selection__rendered,
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	display: block;
	padding: 0 2.25rem 0 12px !important;
	line-height: 36px !important;
	font-size: .875rem !important;
	font-family: inherit;
	color: var(--pb-ink) !important;
}

body.woocommerce-checkout form.checkout .select2-container--default .select2-selection--single .select2-selection__arrow,
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	position: absolute;
	top: 0 !important;
	right: 0 !important;
	width: 2.25rem !important;
	height: 38px !important;
}

body.woocommerce-checkout form.checkout .select2-container--default .select2-selection--single .select2-selection__arrow b,
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow b {
	top: 50% !important;
	left: 50% !important;
	width: 16px !important;
	height: 16px !important;
	margin: -8px 0 0 -8px !important;
	border: 0 !important;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2315171b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.6' d='M4 6.2L8 10l4-3.8'/%3E%3C/svg%3E") no-repeat center / 16px 16px;
}

body.woocommerce-checkout .select2-dropdown,
body.woocommerce-checkout .select2-container--open .select2-dropdown {
	border: 1px solid var(--pb-line) !important;
	border-radius: var(--pb-radius-sm);
	background: var(--pb-white);
	box-shadow: var(--pb-shadow);
	overflow: hidden;
	z-index: 100010;
}

body.woocommerce-checkout .select2-search--dropdown {
	padding: 8px;
}

body.woocommerce-checkout .select2-search--dropdown .select2-search__field {
	box-sizing: border-box;
	width: 100%;
	min-height: 38px;
	height: 38px;
	padding: 10px 12px;
	font-family: inherit;
	font-size: .875rem;
	line-height: 1.25;
	color: var(--pb-ink);
	background: var(--pb-white);
	border: 1px solid var(--pb-line) !important;
	border-radius: var(--pb-radius-sm);
	box-shadow: none;
}

body.woocommerce-checkout .select2-dropdown .select2-results__option {
	padding: 8px 12px;
	font-size: .875rem;
	line-height: 1.35;
	color: var(--pb-ink);
}

body.woocommerce-checkout .select2-container--default .select2-results__option--highlighted[aria-selected],
body.woocommerce-checkout .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
	background: var(--pb-wash);
	color: var(--pb-ink);
}

/* Checkout field focus overrides (beat Invision !important tints) */
body.woocommerce-checkout input[type="text"],
body.woocommerce-checkout input[type="email"],
body.woocommerce-checkout input[type="tel"],
body.woocommerce-checkout input[type="password"],
body.woocommerce-checkout input[type="number"],
body.woocommerce-checkout select:not(.select2-hidden-accessible),
body.woocommerce-checkout textarea,
body.woocommerce-checkout p input,
body.woocommerce-checkout p textarea {
	background: var(--pb-white) !important;
	border: 1px solid var(--pb-line) !important;
	border-radius: var(--pb-radius-sm) !important;
	color: var(--pb-ink) !important;
	box-shadow: none !important;
}

body.woocommerce-checkout input[type="text"],
body.woocommerce-checkout input[type="email"],
body.woocommerce-checkout input[type="tel"],
body.woocommerce-checkout input[type="password"],
body.woocommerce-checkout input[type="number"],
body.woocommerce-checkout select:not(.select2-hidden-accessible),
body.woocommerce-checkout p input {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	min-height: 38px;
	height: 38px;
	padding: 10px 12px;
	font-size: .875rem;
	line-height: 1.25;
}

body.woocommerce-checkout textarea,
body.woocommerce-checkout p textarea {
	height: auto;
	min-height: 80px;
	padding: 10px 12px;
	font-size: .875rem;
	line-height: 1.4;
}

body.woocommerce-checkout input[type="text"]:focus,
body.woocommerce-checkout input[type="email"]:focus,
body.woocommerce-checkout input[type="tel"]:focus,
body.woocommerce-checkout input[type="password"]:focus,
body.woocommerce-checkout input[type="number"]:focus,
body.woocommerce-checkout select:not(.select2-hidden-accessible):focus,
body.woocommerce-checkout textarea:focus {
	border-color: var(--pb-ink) !important;
	box-shadow: 0 0 0 3px rgba(255, 199, 47, .28) !important;
}

/* Upload / add-ons on checkout (Invision) */
.wc-checkout-add-ons-dropzone,
#wc_checkout_add_ons a.wc-checkout-add-ons-dropzone {
	background: var(--pb-wash) !important;
	border: 2px dashed var(--pb-line) !important;
	border-radius: var(--pb-radius) !important;
	color: var(--pb-ink);
}

.wc-checkout-add-ons-dropzone:hover,
.wc-checkout-add-ons-dropzone.dragover {
	border-color: var(--pb-yellow-deep) !important;
	background: var(--pb-wash-warm) !important;
}

#custom_upload_field {
	margin: 0 0 1.25rem;
	padding: 1.25rem 1.35rem;
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	background: var(--pb-white);
	box-shadow: var(--pb-shadow);
}

#custom_upload_field label {
	color: var(--pb-ink);
}

/* --- Cart / checkout responsive --- */

@media (max-width: 959.98px) {
	body.woocommerce-cart .woocommerce-cart-form .coupon {
		float: none;
		width: 100%;
		margin-bottom: .85rem;
	}

	body.woocommerce-cart .woocommerce-cart-form button[name="update_cart"] {
		float: none;
		width: 100%;
	}

	body.woocommerce-cart .cart-collaterals .cart_totals {
		margin-top: .25rem;
	}

	body.woocommerce-checkout .woocommerce-billing-fields,
	body.woocommerce-checkout .woocommerce-shipping-fields {
		padding: 1rem .95rem .9rem;
	}

	body.woocommerce-checkout #order_review_heading {
		margin: 1.5rem 0 .85rem;
	}

	body.woocommerce-checkout form.checkout .woocommerce-billing-fields__field-wrapper,
	body.woocommerce-checkout form.checkout .woocommerce-shipping-fields__field-wrapper,
	body.woocommerce-checkout form.checkout .woocommerce-additional-fields__field-wrapper {
		grid-template-columns: repeat(10, minmax(0, 1fr));
	}

	body.woocommerce-checkout #payment .place-order {
		position: static;
		margin: 0;
		padding: 0;
		background: transparent;
		border: 0;
		box-shadow: none;
	}
}

@media (max-width: 519.98px) {
	body.woocommerce-checkout form.checkout .woocommerce-billing-fields__field-wrapper,
	body.woocommerce-checkout form.checkout .woocommerce-shipping-fields__field-wrapper,
	body.woocommerce-checkout form.checkout .woocommerce-additional-fields__field-wrapper {
		grid-template-columns: minmax(0, 1fr);
	}

	body.woocommerce-checkout form.checkout .woocommerce-billing-fields__field-wrapper .form-row-first,
	body.woocommerce-checkout form.checkout .woocommerce-billing-fields__field-wrapper .form-row-last,
	body.woocommerce-checkout form.checkout .woocommerce-shipping-fields__field-wrapper .form-row-first,
	body.woocommerce-checkout form.checkout .woocommerce-shipping-fields__field-wrapper .form-row-last,
	body.woocommerce-checkout form.checkout p#billing_first_name_field,
	body.woocommerce-checkout form.checkout p#billing_last_name_field,
	body.woocommerce-checkout form.checkout p#billing_postcode_field,
	body.woocommerce-checkout form.checkout p#billing_house_number_field,
	body.woocommerce-checkout form.checkout p#billing_house_addition_field,
	body.woocommerce-checkout form.checkout p#billing_city_field,
	body.woocommerce-checkout form.checkout p#shipping_first_name_field,
	body.woocommerce-checkout form.checkout p#shipping_last_name_field,
	body.woocommerce-checkout form.checkout p#shipping_postcode_field,
	body.woocommerce-checkout form.checkout p#shipping_house_number_field,
	body.woocommerce-checkout form.checkout p#shipping_house_addition_field,
	body.woocommerce-checkout form.checkout p#shipping_city_field {
		width: 100%;
		float: none;
		grid-column: 1 / -1;
	}
}

@media (max-width: 767.98px) {
	.pb-commerce-steps {
		gap: .5rem 0;
	}

	.pb-commerce-steps__label {
		font-size: .8125rem;
	}

	.pb-commerce-steps__item:not(:last-child)::after {
		width: 1rem;
		margin-left: .5rem;
		margin-right: .5rem;
	}

	body.woocommerce-cart table.shop_table_responsive.cart thead {
		display: none;
	}

	body.woocommerce-cart table.shop_table_responsive.cart tr {
		display: block;
		padding: 1.1rem 0;
		border-bottom: 1px solid var(--pb-line-soft);
	}

	body.woocommerce-cart table.shop_table_responsive.cart tr:last-child {
		border-bottom: 0;
	}

	body.woocommerce-cart table.shop_table_responsive.cart td {
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: 1rem;
		padding: .45rem 1.15rem;
		border: 0 !important;
		text-align: right;
	}

	body.woocommerce-cart table.shop_table_responsive.cart td.product-thumbnail,
	body.woocommerce-cart table.shop_table_responsive.cart td.product-remove {
		justify-content: flex-start;
	}

	body.woocommerce-cart table.shop_table_responsive.cart td.actions {
		display: block;
		padding: 1.1rem 1.15rem;
		text-align: left;
	}

	body.woocommerce-cart table.shop_table_responsive.cart td::before {
		content: attr(data-title);
		font-weight: 600;
		color: var(--pb-muted);
		text-align: left;
	}

	body.woocommerce-cart table.shop_table_responsive.cart td.product-thumbnail::before,
	body.woocommerce-cart table.shop_table_responsive.cart td.product-remove::before,
	body.woocommerce-cart table.shop_table_responsive.cart td.actions::before {
		content: none;
	}

	body.woocommerce-checkout #payment ul.payment_methods li > label,
	body.woocommerce-checkout #payment ul.wc_payment_methods li > label {
		min-height: 52px;
	}

	body.woocommerce-checkout #order_review .shop_table thead {
		display: none;
	}

	body.woocommerce-checkout #order_review .shop_table tbody tr.pb-review-item,
	body.woocommerce-checkout #order_review .shop_table tbody tr.cart_item {
		display: block;
		padding: .1rem 0;
	}

	body.woocommerce-checkout #order_review .shop_table tbody td.product-name,
	body.woocommerce-checkout #order_review .shop_table tbody td.product-total {
		display: block;
		width: 100%;
		text-align: left;
		padding: .4rem .75rem;
	}

	body.woocommerce-checkout #order_review .shop_table tbody td.product-total {
		padding-top: 0;
		padding-left: calc(.75rem + 48px + .6rem);
		font-size: .875rem;
	}

	.pb-item-meta__row {
		grid-template-columns: minmax(3.5rem, 5.75rem) minmax(0, 1fr);
	}
}

/* --- Configurator on small screens ---
   Matches the plugin's own 767.98px breakpoint so the two do not disagree. */

@media (max-width: 767.98px) {
	.card-header.productconfig-group-header {
		padding: .9rem 1rem;
	}

	.productconfig-options {
		padding: .75rem .9rem 1rem;
	}

	.productconfig-group .list-group.productconfig-options-quantity,
	.list-group.productconfig-options.productconfig-options-quantity {
		padding: .25rem .85rem 1rem;
	}

	.quantity-tiers__head,
	.quantity-tiers .quantity-tier {
		grid-template-columns: 1.25rem minmax(2.75rem, .9fr) minmax(3.75rem, 1.1fr) minmax(3.5rem, 1fr);
		column-gap: .55rem;
	}

	.quantity-tiers__head {
		padding: .45rem .4rem .55rem;
		font-size: .75rem;
	}

	.quantity-tiers .quantity-tier.list-group-item,
	.productconfig-options-quantity > label.productconfig-option.quantity-tier {
		padding: .6rem .4rem;
	}

	.quantity-tier__qty,
	.quantity-tier__discount,
	.quantity-tier__price,
	.quantity-tier__price .woocommerce-Price-amount,
	.quantity-tier__price .woocommerce-Price-amount bdi {
		font-size: .8125rem !important;
	}

	.quantity-tiers__custom-controls {
		flex-direction: column;
		align-items: stretch;
	}

	.quantity-tiers__custom-input,
	.quantity-tiers__custom-input[type="number"] {
		max-width: none;
	}

	.quantity-tiers__custom-btn {
		width: 100%;
		text-align: center;
	}

	.productconfig-group .productconfig-options-labels {
		grid-template-columns: repeat(auto-fill, minmax(76px, 1fr));
		padding: .75rem .9rem 1rem;
	}

	.productconfig-pricetable,
	.productconfig-pricetable[data-pricetable-status="active"],
	.costs-breakdown-section {
		padding: 1rem 1.1rem;
	}

	/* Label left, amount right still fits; the plugin stacks them. */
	.productconfig-pricetable .price-per-piece-row {
		flex-direction: row;
		align-items: center;
		gap: .75rem;
	}

	.price-per-piece-amount .price-currency {
		font-size: 1.0625rem;
	}

	.price-per-piece-amount .price-integer {
		font-size: 1.5rem;
	}

	.price-per-piece-amount .price-decimal {
		font-size: 1rem;
		margin-top: 0;
	}

	/*
	 * Product CTAs. Plugin stacks them at width:100% and desktop quote
	 * uses flex:1 1 14rem, so Offerte becomes a full-bleed mega pill.
	 * Keep both on one compact row; 44px min tap height.
	 */
	.productconfig-addtocart__buttons {
		flex-direction: row !important;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: .4rem;
	}

	.productconfig-addtocart__buttons > button,
	.woocommerce button.single_add_to_cart_button.btn-quote,
	.woocommerce button.btn-quote,
	button.btn-quote,
	.woocommerce button.single_add_to_cart_button.btn-submit-design,
	.woocommerce button.btn-submit-design,
	button.btn-submit-design,
	.woocommerce form.cart:has(.btn-quote) .single_add_to_cart_button:not(.btn-quote) {
		flex: 1 1 0 !important;
		width: auto !important;
		max-width: none;
		min-width: 0;
		min-height: 44px;
		padding: .5rem .7rem !important;
		font-size: .875rem !important;
		letter-spacing: -.02em;
		line-height: 1.15;
		gap: .35rem;
		white-space: normal;
		text-align: center;
	}

	.productconfig-addtocart__buttons .btn-icon-document {
		width: 13px;
		height: 13px;
	}

	.productconfig-addtocart__buttons .pb-btn-spinner {
		width: 12px;
		height: 12px;
		border-width: 2px;
	}

	.productconfig-addtocart__buttons .pb-btn-loading-label {
		overflow: hidden;
		text-overflow: ellipsis;
	}
}

/* ==========================================================================
   15. Static pages, blog, search
   ========================================================================== */

.page-hero {
	padding: clamp(2.5rem, 5vw, 4.5rem) 0 clamp(2rem, 3.5vw, 3rem);
	border-bottom: 1px solid var(--pb-line);
	background: var(--pb-wash);
}

.page-hero--commerce {
	padding-bottom: clamp(1.75rem, 3vw, 2.5rem);
	background: var(--pb-wash);
}

.page-hero--checkout {
	padding: .7rem 0 .65rem;
	border-bottom: 1px solid var(--pb-line);
	background: transparent;
}

.page-hero--checkout h1 {
	max-width: none;
	font-size: clamp(1.2rem, 2vw, 1.45rem);
	letter-spacing: var(--pb-tight);
}

.page-hero h1 {
	margin: 0;
	max-width: 24ch;
}

.page-hero__intro {
	margin: .85rem 0 0;
	color: var(--pb-ink-soft);
	max-width: 66ch;
	font-size: 1.0625rem;
}

.content-wrap {
	padding: clamp(2.5rem, 4vw, 3.5rem) 0 clamp(3rem, 5vw, 4.5rem);
}

.cms-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem);
	gap: clamp(1.5rem, 3vw, 2.75rem);
	align-items: start;
}

.cms-article {
	min-width: 0;
}

.cms-aside {
	position: sticky;
	top: calc(var(--pb-headtop) + var(--pb-navh) + 1.25rem);
}

.cms-aside .advice-card {
	margin-top: 0;
}

.cms-aside .advice-card .btn + .btn {
	margin-top: .65rem;
}

.cms-aside__usps {
	list-style: none;
	margin: 1.15rem 0 0;
	padding: 0;
	display: grid;
	gap: .65rem;
}

.cms-aside__usps li {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
	font-size: .875rem;
	color: var(--pb-ink-soft);
	line-height: 1.4;
}

.cms-aside__usps .pb-check {
	flex: 0 0 auto;
	margin-top: 1px;
}

.cms-aside__shop {
	margin: 1.1rem 0 0;
	font-size: .875rem;
}

.empty-panel {
	max-width: 36rem;
	margin: 0 auto;
	padding: 2rem 2rem 2.25rem;
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius-xl);
	box-shadow: var(--pb-shadow);
	text-align: center;
}

.empty-panel p {
	margin: 0 0 1.15rem;
}

.empty-panel--404 {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 1.35rem;
	max-width: 28rem;
	padding: 2.25rem 2rem 2.5rem;
}

.empty-panel__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: .75rem;
}

.empty-panel__actions .btn {
	margin: 0;
}

.empty-panel__search {
	display: flex;
	align-items: stretch;
	gap: .65rem;
	width: 100%;
}

.empty-panel__search input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	padding: .85rem 1.15rem;
	font-family: inherit;
	font-size: .9375rem;
	color: var(--pb-ink);
	background: var(--pb-wash);
	border: 1px solid transparent;
	border-radius: var(--pb-pill);
	-webkit-appearance: none;
	appearance: none;
}

.empty-panel__search input[type="search"]::placeholder {
	color: var(--pb-muted);
}

.empty-panel__search input[type="search"]:focus {
	outline: 0;
	background: var(--pb-white);
	border-color: var(--pb-ink);
}

.empty-panel__search .btn {
	flex: 0 0 auto;
	white-space: nowrap;
}

@media (max-width: 480px) {
	.empty-panel--404 {
		padding: 1.75rem 1.25rem 2rem;
	}

	.empty-panel__actions .btn,
	.empty-panel__search .btn {
		width: 100%;
	}

	.empty-panel__search {
		flex-direction: column;
	}
}

.prose {
	max-width: 72ch;
	font-size: 1.0625rem;
	line-height: 1.7;
}

.prose h2 {
	margin-top: 2rem;
}

.prose h3 {
	margin-top: 1.5rem;
}

.prose a {
	text-decoration: underline;
	text-decoration-color: var(--pb-yellow);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

.prose img {
	border-radius: var(--pb-radius);
	margin: 1.5rem 0;
}

.prose blockquote {
	margin: 1.5rem 0;
	padding: .25rem 0 .25rem 1.25rem;
	border-left: 3px solid var(--pb-yellow);
	color: var(--pb-ink-soft);
	font-style: normal;
}

.post-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1rem, 1.8vw, 1.5rem);
}

.post-feature {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	gap: 0;
	margin: 0 0 2rem;
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius-xl);
	overflow: hidden;
	transition: border-color .2s ease, box-shadow .2s ease;
}

.post-feature:hover {
	border-color: transparent;
	box-shadow: var(--pb-shadow-hover);
}

.post-feature__media {
	display: block;
	position: relative;
	align-self: stretch;
	min-height: 18rem;
	background: var(--pb-wash);
}

.post-feature__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

.post-feature__media.is-empty,
.post-card__media.is-empty {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--pb-wash);
}

.post-feature__media.is-empty .pb-check,
.post-card__media.is-empty .pb-check {
	width: 48px;
	height: 52px;
}

.post-feature__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	gap: .45rem;
}

.post-feature__body h2 {
	font-size: clamp(1.35rem, 2.2vw, 1.85rem);
	letter-spacing: var(--pb-tight);
	margin: 0;
}

.post-feature__body p {
	color: var(--pb-ink-soft);
	margin: 0 0 .5rem;
}

.post-feature__body .btn {
	align-self: flex-start;
	margin-top: .5rem;
}

.post-card {
	display: flex;
	flex-direction: column;
	padding: 0;
	overflow: hidden;
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.post-card:hover {
	border-color: transparent;
	box-shadow: var(--pb-shadow-hover);
	transform: translateY(-4px);
}

.post-card h2 {
	font-size: 1.0625rem;
	margin: 0 0 .35rem;
}

.post-card time,
.post-feature time {
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--pb-muted);
}

.post-card p {
	color: var(--pb-ink-soft);
	font-size: .9375rem;
	margin: 0;
}

.post-card__media {
	display: block;
	aspect-ratio: 16 / 10;
	background: var(--pb-wash);
}

.post-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.post-card__body {
	display: flex;
	flex-direction: column;
	padding: 1.15rem 1.25rem 1.35rem;
	gap: .35rem;
	flex: 1;
}

.post-card__body .text-link {
	margin-top: auto;
	padding-top: .75rem;
}

.navigation.pagination {
	margin-top: 2.5rem;
}

.navigation.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	justify-content: center;
}

.navigation.pagination .page-numbers {
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 .85rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--pb-pill);
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	font-weight: 600;
	font-size: .875rem;
	color: var(--pb-ink);
}

.navigation.pagination a.page-numbers:hover {
	border-color: var(--pb-ink);
}

.navigation.pagination .page-numbers.current {
	background: var(--pb-yellow);
	border-color: var(--pb-yellow);
}

.navigation.pagination .page-numbers.dots {
	border: 0;
	background: transparent;
	min-width: 1.25rem;
}

.post-related {
	padding-top: 0;
}

.post-hero-image {
	width: 100%;
	height: auto;
	border-radius: var(--pb-radius);
	margin: 0 0 1.75rem;
}

.post-back {
	margin-top: 2.5rem;
}

/* --- Contact --- */

.contact-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(17rem, 22rem);
	gap: clamp(1.5rem, 3vw, 2.5rem);
	align-items: start;
}

.contact-form-wrap {
	padding: clamp(1.5rem, 2.5vw, 2.35rem);
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius-xl);
	box-shadow: var(--pb-shadow);
}

.contact-form-wrap h2 {
	margin: 0 0 .4rem;
	font-size: 1.35rem;
	letter-spacing: var(--pb-tight);
}

.contact-form-wrap__lede {
	margin: 0 0 1.5rem;
	color: var(--pb-ink-soft);
}

.form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.hp-field {
	position: absolute;
	left: -9999px;
}

.contact-form label {
	display: block;
	font-size: .875rem;
	font-weight: 600;
	margin-bottom: .35rem;
	color: var(--pb-ink);
}

.contact-form input,
.contact-form textarea,
.contact-form select {
	width: 100%;
	min-height: 48px;
	padding: .75rem .9rem;
	font-family: inherit;
	font-size: .9375rem;
	line-height: 1.35;
	color: var(--pb-ink);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius-sm);
	background: var(--pb-white);
	transition: border-color .15s ease, box-shadow .15s ease;
}

.contact-form textarea {
	min-height: 140px;
	resize: vertical;
}

.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus {
	outline: 0;
	border-color: var(--pb-ink);
	box-shadow: 0 0 0 3px rgba(255, 199, 47, .28);
}

.contact-form .form-grid > p:last-child,
.contact-form textarea {
	grid-column: 1 / -1;
}

.contact-form .btn {
	min-width: 12rem;
}

.contact-aside {
	display: grid;
	gap: 1rem;
}

.contact-aside__card {
	padding: clamp(1.35rem, 2vw, 1.75rem);
	background: var(--pb-wash-warm);
	border-radius: var(--pb-radius);
}

.contact-aside__card h2 {
	margin: 0 0 1rem;
	font-size: 1.05rem;
}

.contact-facts {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1rem;
}

.contact-facts li {
	display: grid;
	gap: .2rem;
	font-size: .9375rem;
}

.contact-facts__label {
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pb-muted);
}

.contact-facts__meta {
	margin: 1.15rem 0 0;
	font-size: .8125rem;
	color: var(--pb-muted);
	line-height: 1.5;
}

.contact-aside .advice-card {
	margin-top: 0;
}

.notice {
	padding: .85rem 1.1rem;
	border-radius: var(--pb-radius-sm);
	margin-bottom: 1.25rem;
	font-size: .9375rem;
	border-left: 3px solid var(--pb-line);
	background: var(--pb-wash);
}

.notice--ok {
	border-left-color: var(--pb-green);
}

.notice--err {
	border-left-color: #ee4242;
}

/* --- Widgets --- */

.widget {
	margin-bottom: 1.75rem;
	padding-bottom: 1.75rem;
	border-bottom: 1px solid var(--pb-line-soft);
}

.widget:last-child {
	border-bottom: 0;
}

.widget-title {
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pb-muted);
	margin-bottom: .8rem;
}

.widget ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.widget li a {
	display: block;
	padding: .3rem 0;
	font-size: .875rem;
	color: var(--pb-ink-soft);
}

.widget li a:hover {
	color: #000;
}

/* ==========================================================================
   16. Footer
   ========================================================================== */

.site-footer {
	margin-top: clamp(2rem, 3.5vw, 3rem);
}

.footer-usp {
	background: var(--pb-yellow);
	padding: 1.05rem 0;
}

.footer-usp__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1rem 2.5rem;
}

.footer-usp p {
	display: flex;
	align-items: center;
	gap: .45rem;
	margin: 0;
	font-size: .875rem;
	color: #1c1c1c;
}

.footer-usp a {
	color: #1c1c1c;
	font-weight: 700;
}

/* The hexagon is brand yellow, which disappears on the yellow strip. */
.footer-usp .pb-check > path:first-child {
	fill: rgba(0, 0, 0, .13);
}

.footer-main {
	background: var(--pb-dark);
	color: rgba(255, 255, 255, .68);
	padding: clamp(2.25rem, 3.5vw, 3.25rem) 0;
}

.footer-grid {
	display: grid;
	grid-template-columns: 1.25fr 1fr 1fr 1.15fr;
	gap: clamp(2rem, 3.5vw, 3.5rem);
}

.footer-col h3 {
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .5);
	margin-bottom: 1.1rem;
}

.footer-col p,
.footer-col li {
	font-size: .9375rem;
	color: rgba(255, 255, 255, .68);
}

.footer-col strong {
	color: var(--pb-white);
}

.footer-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-col a {
	color: rgba(255, 255, 255, .68);
}

.footer-col li a {
	display: block;
	padding: .28rem 0;
}

.footer-col a:hover {
	color: var(--pb-yellow);
}

/* The logo mark is dark ink, so lift it onto the dark panel. */
.footer-logo {
	width: 158px;
	margin-bottom: 1.25rem;
	padding: .5rem .7rem;
	background: var(--pb-white);
	border-radius: var(--pb-radius-sm);
	box-sizing: content-box;
}

.footer-col .kvk {
	font-size: .8125rem;
	color: rgba(255, 255, 255, .4);
}

.advice-card {
	margin-top: 1.5rem;
	padding: 1.35rem;
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
}

.footer-main .advice-card {
	background: rgba(255, 255, 255, .06);
	border-color: rgba(255, 255, 255, .12);
}

.advice-card strong {
	display: block;
	margin-bottom: .35rem;
	font-size: 1rem;
}

.advice-card p {
	font-size: .875rem;
	color: var(--pb-muted);
	margin-bottom: 1rem;
}

.footer-main .advice-card p {
	color: rgba(255, 255, 255, .6);
}

.advice-card .btn {
	width: 100%;
	padding: .7rem 1rem;
	font-size: .875rem;
}

.footer-main .advice-card .btn-dark {
	background: var(--pb-yellow-btn);
	border-color: var(--pb-yellow-btn);
	color: #1c1c1c;
}

.footer-main .advice-card .btn-dark:hover {
	background: var(--pb-yellow-btn-hover);
	border-color: var(--pb-yellow-btn-hover);
}

.footer-bottom {
	background: var(--pb-dark);
	border-top: 1px solid rgba(255, 255, 255, .1);
	padding: 1.25rem 0;
}

.footer-bottom__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .75rem 1.5rem;
}

.footer-bottom .legal ul {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem 1.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-bottom a,
.footer-bottom .copy {
	font-size: .8125rem;
	color: rgba(255, 255, 255, .55);
	margin: 0;
}

.footer-bottom a:hover {
	color: var(--pb-yellow);
}

/* ==========================================================================
   16b. Account, CMS blocks, landings
   ========================================================================== */

.woocommerce-account .woocommerce::before,
.woocommerce-account .woocommerce::after,
.woocommerce-account .woocommerce-MyAccount-navigation::before,
.woocommerce-account .woocommerce-MyAccount-navigation::after,
.woocommerce-account .woocommerce-MyAccount-content::before,
.woocommerce-account .woocommerce-MyAccount-content::after {
	content: none;
	display: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .u-column1,
.woocommerce-account .u-column2,
.woocommerce-account .col-1,
.woocommerce-account .col-2,
.woocommerce-account .woocommerce-Address {
	float: none !important;
	width: auto !important;
}

.woocommerce-account:not(.logged-in) .woocommerce {
	display: block;
	max-width: 28rem;
	margin: 0 auto;
	padding: 2rem 2rem 2.25rem;
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius-xl);
	box-shadow: var(--pb-shadow);
}

.woocommerce-account:not(.logged-in) .woocommerce:has(.col2-set),
.woocommerce-account:not(.logged-in) .woocommerce:has(.u-columns) {
	max-width: 52rem;
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
}

.woocommerce-account:not(.logged-in) .col2-set,
.woocommerce-account:not(.logged-in) .u-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.25rem;
	float: none;
	width: auto;
}

.woocommerce-account:not(.logged-in) .col2-set .col-1,
.woocommerce-account:not(.logged-in) .col2-set .col-2,
.woocommerce-account:not(.logged-in) .u-columns .u-column1,
.woocommerce-account:not(.logged-in) .u-columns .u-column2 {
	padding: 2rem;
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius-xl);
	box-shadow: var(--pb-shadow);
}

.woocommerce-account:not(.logged-in) .woocommerce > h2 {
	margin: 0 0 1.25rem;
	font-size: 1.25rem;
	letter-spacing: var(--pb-tight);
}

.woocommerce-account .lost_password {
	margin: 1rem 0 0;
	font-size: .875rem;
}

.woocommerce-account .woocommerce-form-login__rememberme {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: .15rem 0 1rem;
}

.woocommerce-account.logged-in .woocommerce {
	display: grid;
	grid-template-columns: minmax(13rem, 16.5rem) minmax(0, 1fr);
	gap: clamp(1.25rem, 2.5vw, 2rem);
	align-items: start;
}

.woocommerce-account.logged-in .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

.woocommerce-account .woocommerce-notices-wrapper:empty {
	display: none;
}

.woocommerce-MyAccount-navigation {
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	padding: .65rem;
	position: sticky;
	top: calc(var(--pb-headtop) + var(--pb-navh) + 1.25rem);
}

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: .15rem;
}

.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: .7rem .9rem;
	border-radius: var(--pb-radius-sm);
	font-weight: 600;
	font-size: .9375rem;
	color: var(--pb-ink-soft);
}

.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li a:hover {
	background: var(--pb-wash);
	color: var(--pb-ink);
}

.woocommerce-MyAccount-navigation li.is-active a {
	background: var(--pb-yellow-soft);
	color: var(--pb-ink);
}

.woocommerce-MyAccount-content {
	background: var(--pb-white);
	border: 1px solid var(--pb-line);
	border-radius: var(--pb-radius);
	padding: clamp(1.25rem, 2vw, 2rem);
	min-width: 0;
}

.woocommerce-MyAccount-content > h2 {
	margin: 0 0 1rem;
	font-size: 1.25rem;
	letter-spacing: var(--pb-tight);
}

.woocommerce-MyAccount-content > p {
	color: var(--pb-ink-soft);
}

.woocommerce-account .woocommerce-Addresses,
.woocommerce-account .u-columns.woocommerce-Addresses {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.15rem;
	float: none;
	width: auto;
}

.woocommerce-account .woocommerce-Address {
	padding: 1.25rem 1.35rem;
	background: var(--pb-wash);
	border-radius: var(--pb-radius);
}

.woocommerce-account .woocommerce-Address-title h3 {
	margin: 0 0 .65rem;
	font-size: 1rem;
}

.woocommerce-EditAccountForm {
	max-width: 36rem;
}

.woocommerce-account .woocommerce-Button,
.woocommerce-account button.button,
.woocommerce-account a.button {
	border-radius: var(--pb-pill);
}

.cms-content {
	font-size: 1.0625rem;
	line-height: 1.7;
}

.cms-content > * {
	max-width: 72ch;
}

.cms-content > .alignwide,
.cms-content > .alignfull,
.cms-content > .wp-block-columns,
.cms-content > .wp-block-cover,
.cms-content > .wp-block-gallery,
.cms-content > .wp-block-image,
.cms-content > .wp-block-media-text,
.cms-content > .wp-block-group,
.cms-content > .wp-block-buttons {
	max-width: none;
}

.cms-content > .wp-block-cover:first-child:not(:has(img)):not(:has(.wp-block-image)),
.cms-content > .wp-block-cover:first-child:not(:has(img)) + .wp-block-spacer {
	display: none;
}

.cms-content h1 {
	font-size: clamp(1.45rem, 2.2vw, 1.85rem);
	letter-spacing: var(--pb-tight);
	margin: 0 0 1rem;
}

.cms-content h2 {
	margin: 2rem 0 .75rem;
}

.cms-content a {
	text-decoration: underline;
	text-decoration-color: var(--pb-yellow);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

.cms-content .wp-block-cover {
	border-radius: var(--pb-radius-xl);
	overflow: hidden;
	min-height: 220px;
	margin: 0 0 2rem;
}

.cms-content .has-pale-cyan-blue-background-color {
	background-color: var(--pb-wash-warm) !important;
}

.cms-content .wp-block-columns {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(1.25rem, 3vw, 2.5rem);
	margin: 1.75rem 0;
}

.cms-content .wp-block-column {
	flex: 1 1 16rem;
	min-width: 0;
}

.cms-content .wp-block-columns.has-5-columns {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1rem;
	align-items: center;
}

.cms-content .wp-block-columns.has-5-columns .wp-block-column {
	flex: none;
}

.cms-content .wp-block-image,
.cms-content figure {
	margin: 0 0 1.5rem;
}

.cms-content img {
	border-radius: var(--pb-radius);
	height: auto;
}

.cms-content .wp-block-separator {
	border: 0;
	height: 1px;
	max-width: 4rem;
	margin: 1.5rem 0;
	background: var(--pb-line);
}

.cms-content .wp-block-spacer {
	max-height: 2.5rem;
}

.cms-content > .cms-cta {
	max-width: none;
	margin-top: 2.75rem;
	padding: clamp(1.25rem, 2vw, 1.75rem) clamp(1.35rem, 2.5vw, 2rem);
	background: var(--pb-wash-warm);
	border-radius: var(--pb-radius-xl);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 1.5rem;
}

.cms-cta p {
	margin: .35rem 0 0;
	color: var(--pb-ink-soft);
}

.cms-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: .65rem;
}

.landing__lede {
	max-width: 66ch;
	color: var(--pb-ink-soft);
	font-size: 1.0625rem;
	margin: 0 0 2rem;
}

.landing__more {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	margin-top: 2rem;
}

.page-onze-werkwijze .cms-content h2.wp-block-heading {
	counter-increment: pb-step;
	display: flex;
	gap: .75rem;
	align-items: baseline;
}

.page-onze-werkwijze .cms-content {
	counter-reset: pb-step;
}

.page-onze-werkwijze .cms-content h2.wp-block-heading::before {
	content: counter(pb-step);
	flex: 0 0 2rem;
	height: 2rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--pb-pill);
	background: var(--pb-yellow);
	font-size: .875rem;
	font-weight: 800;
}

/* ==========================================================================
   17. Responsive
   ========================================================================== */

/* With the filter sidebar alongside, four columns still leaves cards readable. */
.shop-content ul.products {
	grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 1400px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products { grid-template-columns: repeat(4, 1fr); }
	.shop-content ul.products { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 1180px) {
	.cat-cards { grid-template-columns: repeat(3, 1fr); }
	.result-grid { grid-template-columns: repeat(3, 1fr); }
	.woocommerce ul.products,
	.woocommerce-page ul.products { grid-template-columns: repeat(3, 1fr); }
	.shop-layout { grid-template-columns: 232px minmax(0, 1fr); }
	.usp-row li:nth-child(3) { display: none; }
	.footer-grid { grid-template-columns: 1fr 1fr; }
	.post-list { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1080px) {
	.cat-mega { grid-template-columns: 1fr; }
	.cat-mega__aside { display: none; }

	.promo-hero__card { grid-template-columns: 1fr; }
	.promo-hero__body { order: 2; }

	.promo-hero__media {
		order: 1;
		width: min(100%, 380px);
		margin: 0 auto -.5rem;
	}

	.promo-hero__badge { right: 0; top: 0; }
	.woocommerce div.product { grid-template-columns: 1fr; gap: 2rem; }
	.value-grid { grid-template-columns: 1fr; }
	.post-feature { grid-template-columns: 1fr; }
	.post-feature__media { min-height: 14rem; max-height: 18rem; }
	.cms-layout,
	.contact-layout { grid-template-columns: 1fr; }
	.cms-aside { position: static; }
	.cms-content .wp-block-columns.has-5-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	:root { --pb-headtop: 68px; }
	.usp-row,
	.reviews-chip { display: none; }
	.nav-toggle { display: flex; }
	.site-nav { display: none; }
	.site-nav.is-open { display: block; }
	.site-nav__inner { flex-direction: column; align-items: stretch; gap: .75rem; }
	.cat-dropdown,
	.nav-phone { width: 100%; }
	.cat-toggle { width: 100%; justify-content: center; }

	/* Inline accordion instead of a floating panel. */
	.cat-panel {
		position: static;
		display: none;
		width: 100%;
		padding: .85rem 0 0;
		border: 0;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	.cat-dropdown.is-open .cat-panel { display: block; }
	.cat-panel::before { display: none; }
	.cat-mega { grid-template-columns: 1fr; }
	.cat-mega__split {
		grid-template-columns: 1fr;
		max-height: none;
	}
	.cat-mega__parents {
		max-height: 13.5rem;
		border-right: 0;
		border-bottom: 1px solid var(--pb-line);
	}
	.cat-mega__pane,
	.cat-mega__pane.is-active {
		max-height: min(48vh, 22rem);
	}
	.cat-mega__head { margin-bottom: .5rem; }
	.cat-panel .mega-list { columns: 2; }
	.nav-phone { flex-direction: row; align-items: center; gap: .5rem; padding: .5rem 0 0; border-left: 0; border-top: 1px solid var(--pb-line); }

	.steps { grid-template-columns: 1fr; }
	.post-list { grid-template-columns: 1fr; }
	.woocommerce-account.logged-in .woocommerce { grid-template-columns: 1fr; }
	.woocommerce-account:not(.logged-in) .col2-set,
	.woocommerce-account:not(.logged-in) .u-columns,
	.woocommerce-account .woocommerce-Addresses { grid-template-columns: 1fr; }
	.woocommerce-MyAccount-navigation { position: static; }

	.section-head { flex-direction: column; align-items: flex-start; }

	.shop-layout { grid-template-columns: 1fr; gap: 1.5rem; }
	.shop-sidebar { position: static; }
	.shop-sidebar .widget:nth-child(n+2) { display: none; }

	/*
	 * Stacked above the products the full tree ate the first screen, so it
	 * collapses to a one-line summary. theme.js closes it; without JS the
	 * panel stays open and behaves as before.
	 */
	.shop-sidebar .widget--categories {
		margin-bottom: 0;
		padding-bottom: 0;
		border-bottom: 0;
	}

	.shop-sidebar .filter-panel {
		padding: .7rem .9rem;
		border: 1px solid var(--pb-line);
		border-radius: var(--pb-radius-sm);
		background: var(--pb-white);
	}

	.filter-panel__toggle {
		cursor: pointer;
	}

	.filter-panel__current {
		display: block;
		margin-left: auto;
	}

	.filter-panel__toggle::after {
		display: block;
		margin-left: 0;
	}

	.filter-tree {
		max-height: min(60vh, 26rem);
	}
}

@media (max-width: 640px) {
	body { font-size: 15px; }
	.cat-cards { grid-template-columns: repeat(2, 1fr); }
	.result-grid { grid-template-columns: repeat(2, 1fr); }
	.woocommerce ul.products,
	.woocommerce-page ul.products,
	.shop-content ul.products { grid-template-columns: repeat(2, 1fr); gap: .85rem; }
	.woocommerce ul.products li.product img { padding: 12px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title,
	.woocommerce ul.products li.product .price { padding-left: .8rem; padding-right: .8rem; }
	.woocommerce ul.products li.product .button { margin: .8rem .8rem .9rem; padding: .55rem .75rem; }
	.form-grid { grid-template-columns: 1fr; }
	.footer-grid { grid-template-columns: 1fr; gap: 1.75rem; }
	.cms-content .wp-block-columns.has-5-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.brand-track img { max-height: 30px; }
	.logo img { width: 148px; }
	.footer-bottom__inner { justify-content: center; text-align: center; }
	.promo-hero__media { width: min(100%, 300px); }
	.cat-mega__children { grid-template-columns: 1fr; }
	.cat-mega__aside { display: none; }
}

/* ==========================================================================
   CookieYes — revisit icon + banner controls
   Theme `img { max-width:100%; height:auto; display:block }` and the
   generic `button` type styles squash the 45px cookie button (SVG as
   <img>, often to a sliver) and throw off close icons. CookieYes CSS
   loads after this file, so size needs !important.
   ========================================================================== */

.cky-btn-revisit-wrapper {
	overflow: hidden;
	line-height: 0;
}

.cky-btn-revisit-wrapper .cky-btn-revisit {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 45px;
	height: 45px;
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	font-size: 0;
	line-height: 0;
}

.cky-btn-revisit-wrapper .cky-btn-revisit img {
	display: block !important;
	max-width: none !important;
	width: 30px !important;
	height: 30px !important;
	object-fit: contain;
	flex-shrink: 0;
}

.cky-consent-bar .cky-banner-btn-close img,
.cky-preference-header .cky-btn-close img {
	display: block !important;
	max-width: none !important;
	width: 10px !important;
	height: 10px !important;
	object-fit: contain;
}
